50 #include <visp3/visual_features/vpFeatureBuilder.h>
51 #include <visp3/visual_features/vpFeaturePoint.h>
52 #include <visp3/core/vpHomogeneousMatrix.h>
53 #include <visp3/core/vpMath.h>
54 #include <visp3/io/vpParseArgv.h>
55 #include <visp3/vs/vpServo.h>
56 #include <visp3/robot/vpSimulatorCamera.h>
59 #define GETOPTARGS "h"
61 void usage(
const char *name,
const char *badparam);
62 bool getOptions(
int argc,
const char **argv);
72 void usage(
const char *name,
const char *badparam)
75 Simulation of a 2D visual servoing on a point:\n\
76 - eye-in-hand control law,\n\
77 - velocity computed in the camera frame,\n\
90 fprintf(stdout,
"\nERROR: Bad parameter [%s]\n", badparam);
103 bool getOptions(
int argc,
const char **argv)
110 case 'h': usage(argv[0], NULL);
return false;
break;
113 usage(argv[0], optarg_);
118 if ((c == 1) || (c == -1)) {
120 usage(argv[0], NULL);
121 std::cerr <<
"ERROR: " << std::endl;
122 std::cerr <<
" Bad argument " << optarg_ << std::endl << std::endl;
130 main(
int argc,
const char ** argv)
134 if (getOptions(argc, argv) ==
false) {
172 std::cout << std::endl ;
181 unsigned int iter=0 ;
185 std::cout <<
"---------------------------------------------" << iter <<std::endl ;
204 std::cout <<
"|| s - s* || = " << ( task.
getError() ).sumSquare() <<std::endl ;
213 std::cout <<
"Catch a ViSP exception: " << e << std::endl;
void setVelocity(const vpRobot::vpControlFrameType frame, const vpColVector &vel)
Implementation of an homogeneous matrix and operations on such kind of matrices.
Class that defines the simplest robot: a free flying camera.
void addFeature(vpBasicFeature &s, vpBasicFeature &s_star, const unsigned int select=vpBasicFeature::FEATURE_ALL)
error that can be emited by ViSP classes.
Class that defines a 2D point visual feature which is composed by two parameters that are the cartes...
static bool parse(int *argcPtr, const char **argv, vpArgvInfo *argTable, int flags)
Class that defines what is a point.
vpColVector getError() const
vpColVector computeControlLaw()
vpHomogeneousMatrix getPosition() const
void buildFrom(const double x, const double y, const double Z)
Implementation of column vector and the associated operations.
vpHomogeneousMatrix inverse() const
void print(const vpServo::vpServoPrintType display_level=ALL, std::ostream &os=std::cout)
static void create(vpFeaturePoint &s, const vpCameraParameters &cam, const vpDot &d)
void setServo(const vpServoType &servo_type)