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)
static bool getClick(const vpImage< unsigned char > &I, bool blocking=true)
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)
Use the X11 console to display images on unix-like OS. Thus to enable this class X11 should be instal...
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. Thus to enable this class OpenC...
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)
static void read(vpImage< unsigned char > &I, const std::string &filename)
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
void set_Z(const double Z)
static void displayLine(const vpImage< unsigned char > &I, const vpImagePoint &ip1, const vpImagePoint &ip2, const vpColor &color, unsigned int thickness=1)
static void create(vpFeaturePoint &s, const vpCameraParameters &cam, const vpDot &d)
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)