2 #include <visp/vpFeatureBuilder.h>
3 #include <visp/vpServo.h>
4 #include <visp/vpSimulatorCamera.h>
5 #include <visp/vpPlot.h>
24 for (
int i = 0 ; i < 4 ; i++) {
38 #ifdef VISP_HAVE_DISPLAY
39 vpPlot plotter(2, 250*2, 500, 100, 200,
"Real time curves plotter");
40 plotter.setTitle(0,
"Visual features error");
41 plotter.setTitle(1,
"Camera velocities");
43 plotter.initGraph(0, 8);
44 plotter.initGraph(1, 6);
46 plotter.setLegend(0, 0,
"x1");
47 plotter.setLegend(0, 1,
"y1");
48 plotter.setLegend(0, 2,
"x2");
49 plotter.setLegend(0, 3,
"y2");
50 plotter.setLegend(0, 4,
"x3");
51 plotter.setLegend(0, 5,
"y3");
52 plotter.setLegend(0, 6,
"x4");
53 plotter.setLegend(0, 7,
"y4");
55 plotter.setLegend(1, 0,
"v_x");
56 plotter.setLegend(1, 1,
"v_y");
57 plotter.setLegend(1, 2,
"v_z");
58 plotter.setLegend(1, 3,
"w_x");
59 plotter.setLegend(1, 4,
"w_y");
60 plotter.setLegend(1, 5,
"w_z");
63 for (
unsigned int iter=0; iter < 150; iter ++) {
66 for (
int i = 0 ; i < 4 ; i++) {
73 #ifdef VISP_HAVE_DISPLAY
74 plotter.plot(0, iter, task.
getError());
75 plotter.plot(1, iter, v);
81 #ifdef VISP_HAVE_DISPLAY
82 plotter.saveData(0,
"error.dat");
83 plotter.saveData(1,
"vc.dat");
void setVelocity(const vpRobot::vpControlFrameType frame, const vpColVector &vel)
The class provides a data structure for the homogeneous matrices as well as a set of operations on th...
Class that defines the simplest robot: a free flying camera.
void addFeature(vpBasicFeature &s, vpBasicFeature &s_star, const unsigned int select=vpBasicFeature::FEATURE_ALL)
create a new ste of two visual features
void setLambda(double _lambda)
set the gain lambda
void track(const vpHomogeneousMatrix &cMo)
Class that defines a 2D point visual feature which is composed by two parameters that are the cartes...
Class that defines what is a point.
virtual void setSamplingTime(const double &delta_t)
void kill()
destruction (memory deallocation if required)
vpColVector getError() const
vpColVector computeControlLaw()
compute the desired control law
void getPosition(vpHomogeneousMatrix &wMc) const
void setInteractionMatrixType(const vpServoIteractionMatrixType &interactionMatrixType, const vpServoInversionType &interactionMatrixInversion=PSEUDO_INVERSE)
Set the type of the interaction matrix (current, mean, desired, user).
static double rad(double deg)
Class that provides a data structure for the column vectors as well as a set of operations on these v...
vpHomogeneousMatrix inverse() const
This class enables real time drawing of 2D or 3D graphics. An instance of the class open a window whi...
virtual bool getClick(bool blocking=true)=0
static void create(vpFeaturePoint &s, const vpCameraParameters &cam, const vpDot &d)
Class required to compute the visual servoing control law descbribed in and .
void setServo(vpServoType _servo_type)
Choice of the visual servoing control law.
void setWorldCoordinates(const double ox, const double oy, const double oz)
Set the point world coordinates. We mean here the coordinates of the point in the object frame...