51 #include <visp3/core/vpHomogeneousMatrix.h> 52 #include <visp3/core/vpMath.h> 53 #include <visp3/io/vpParseArgv.h> 54 #include <visp3/robot/vpSimulatorCamera.h> 55 #include <visp3/visual_features/vpFeatureBuilder.h> 56 #include <visp3/visual_features/vpFeaturePoint.h> 57 #include <visp3/vs/vpServo.h> 60 #define GETOPTARGS "h" 62 void usage(
const char *name,
const char *badparam);
63 bool getOptions(
int argc,
const char **argv);
73 void usage(
const char *name,
const char *badparam)
76 Simulation of a 2D visual servoing on a point:\n\ 77 - eye-in-hand control law,\n\ 78 - velocity computed in the camera frame,\n\ 91 fprintf(stdout,
"\nERROR: Bad parameter [%s]\n", badparam);
104 bool getOptions(
int argc,
const char **argv)
112 usage(argv[0], NULL);
117 usage(argv[0], optarg_);
123 if ((c == 1) || (c == -1)) {
125 usage(argv[0], NULL);
126 std::cerr <<
"ERROR: " << std::endl;
127 std::cerr <<
" Bad argument " << optarg_ << std::endl << std::endl;
134 int main(
int argc,
const char **argv)
138 if (getOptions(argc, argv) ==
false) {
177 std::cout << std::endl;
186 unsigned int iter = 0;
188 while (iter++ < 100) {
189 std::cout <<
"---------------------------------------------" << iter << std::endl;
208 std::cout <<
"|| s - s* || = " << (task.
getError()).sumSquare() << std::endl;
216 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)