2 #include <visp3/gui/vpDisplayX.h>
3 #include <visp3/gui/vpDisplayOpenCV.h>
4 #include <visp3/gui/vpDisplayGDI.h>
5 #include <visp3/visual_features/vpFeatureBuilder.h>
6 #include <visp3/io/vpImageIo.h>
7 #include <visp3/robot/vpImageSimulator.h>
8 #include <visp3/vs/vpServo.h>
9 #include <visp3/vs/vpServoDisplay.h>
10 #include <visp3/robot/vpSimulatorCamera.h>
28 : sim_(), target_(), cam_()
32 for (
int i = 0; i < 4; i++) X_[i].resize(3);
34 X_[0][0] = -0.1; X_[1][0] = 0.1; X_[2][0] = 0.1; X_[3][0] = -0.1;
35 X_[0][1] = -0.1; X_[1][1] = -0.1; X_[2][1] = 0.1; X_[3][1] = 0.1;
36 X_[0][2] = 0; X_[1][2] = 0; X_[2][2] = 0; X_[3][2] = 0;
43 sim_.
init(target_, X_);
71 static std::vector<vpImagePoint> traj[4];
72 for (
unsigned int i=0; i<4; i++) {
73 traj[i].push_back(dot[i].getCog());
75 for (
unsigned int i=0; i<4; i++) {
76 for (
unsigned int j=1; j<traj[i].size(); j++) {
85 #if defined(VISP_HAVE_X11) || defined(VISP_HAVE_GDI) || defined(VISP_HAVE_OPENCV)
93 std::vector<vpPoint> point;
94 point.push_back(
vpPoint(-0.1,-0.1, 0) );
95 point.push_back(
vpPoint( 0.1,-0.1, 0) );
96 point.push_back(
vpPoint( 0.1, 0.1, 0) );
97 point.push_back(
vpPoint(-0.1, 0.1, 0) );
107 #if defined(VISP_HAVE_X11)
109 #elif defined(VISP_HAVE_GDI)
111 #elif defined(VISP_HAVE_OPENCV)
114 std::cout <<
"No image viewer is available..." << std::endl;
119 "Click in the 4 dots to initialise the tracking and start the servo",
124 std::vector<vpDot2> dot(4);
126 for (
unsigned int i = 0 ; i < 4 ; i++) {
127 point[i].track(cdMo);
130 dot[i].setGraphics(
true);
131 dot[i].initTracking(I);
152 for (
unsigned int i = 0 ; i < 4 ; i++) {
157 point[i].changeFrame(cMo, cP) ;
163 display_trajectory(I, dot);
176 std::cout <<
"Catch an exception: " << e << std::endl;
VISP_EXPORT int wait(double t0, double t)
void init(const vpImage< unsigned char > &I, vpColVector *X)
void setVelocity(const vpRobot::vpControlFrameType frame, const vpColVector &vel)
unsigned int getWidth() const
double getSamplingTime() const
Implementation of an homogeneous matrix and operations on such kind of matrices.
Class that defines the simplest robot: a free flying camera.
void getImage(vpImage< unsigned char > &I, const vpCameraParameters &cam)
Display for windows using GDI (available on any windows 32 platform).
static void displayText(const vpImage< unsigned char > &I, const vpImagePoint &ip, const std::string &s, const vpColor &color)
Define the X11 console to display images.
void acquire(vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo)
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...
vpVirtualGrabber(const std::string &filename, const vpCameraParameters &cam)
static const vpColor green
static void flush(const vpImage< unsigned char > &I)
Class that defines what is a point.
virtual void setSamplingTime(const double &delta_t)
void setCameraPosition(const vpHomogeneousMatrix &cMt)
vpColVector computeControlLaw()
void setInterpolationType(const vpInterpolationType interplt)
static void display(const vpImage< unsigned char > &I)
The vpDisplayOpenCV allows to display image using the opencv library.
Generic class defining intrinsic camera parameters.
Class which enables to project an image in the 3D space and get the view of a virtual camera...
vpHomogeneousMatrix getPosition() const
void setInteractionMatrixType(const vpServoIteractionMatrixType &interactionMatrixType, const vpServoInversionType &interactionMatrixInversion=PSEUDO_INVERSE)
static double rad(double deg)
Implementation of column vector and the associated operations.
void setCleanPreviousImage(const bool &clean, const vpColor &color=vpColor::white)
vpHomogeneousMatrix inverse() const
unsigned int getHeight() const
virtual bool getClick(bool blocking=true)=0
void set_Z(const double Z)
virtual void displayLine(const vpImagePoint &ip1, const vpImagePoint &ip2, const vpColor &color, unsigned int thickness=1)=0
static void create(vpFeaturePoint &s, const vpCameraParameters &cam, const vpDot &d)
static void read(vpImage< unsigned char > &I, const char *filename)
void setServo(const vpServoType &servo_type)
static void display(const vpServo &s, const vpCameraParameters &cam, const vpImage< unsigned char > &I, vpColor currentColor=vpColor::green, vpColor desiredColor=vpColor::red, unsigned int thickness=1)