39 #include <visp3/core/vpConfig.h>
40 #include <visp3/robot/vpRobotPioneer.h>
41 #include <visp3/core/vpCameraParameters.h>
42 #include <visp3/gui/vpDisplayGDI.h>
43 #include <visp3/gui/vpDisplayX.h>
44 #include <visp3/blob/vpDot2.h>
45 #include <visp3/visual_features/vpFeatureBuilder.h>
46 #include <visp3/visual_features/vpFeatureDepth.h>
47 #include <visp3/visual_features/vpFeaturePoint.h>
48 #include <visp3/core/vpHomogeneousMatrix.h>
49 #include <visp3/core/vpImage.h>
50 #include <visp3/core/vpImageConvert.h>
51 #include <visp3/sensor/vp1394TwoGrabber.h>
52 #include <visp3/sensor/vp1394CMUGrabber.h>
53 #include <visp3/sensor/vpOpenCVGrabber.h>
54 #include <visp3/sensor/vpV4l2Grabber.h>
55 #include <visp3/core/vpVelocityTwistMatrix.h>
57 #if defined(VISP_HAVE_DC1394) || defined(VISP_HAVE_V4L2) || defined(VISP_HAVE_CMU1394) || (VISP_HAVE_OPENCV_VERSION >= 0x020100)
58 #if defined(VISP_HAVE_X11) || defined(VISP_HAVE_GDI)
59 #if defined(VISP_HAVE_PIONEER)
60 # define TEST_COULD_BE_ACHIEVED
65 #undef VISP_HAVE_OPENCV // To use a firewire camera
66 #undef VISP_HAVE_V4L2 // To use a firewire camera
87 #ifdef TEST_COULD_BE_ACHIEVED
88 int main(
int argc,
char **argv)
94 double coef = 1./6.77;
97 ArArgumentParser parser(&argc, argv);
98 parser.loadDefaultArguments();
102 ArRobotConnector robotConnector(&parser, &robot);
103 if(!robotConnector.connectRobot())
105 ArLog::log(ArLog::Terse,
"Could not connect to the robot.");
106 if(parser.checkHelpAndWarnUnparsed())
112 if (!Aria::parseArgs())
125 std::cout <<
"Robot connected" << std::endl;
131 #if defined(VISP_HAVE_OPENCV)
133 std::cout <<
"Use device: " << device << std::endl;
134 cv::VideoCapture g(device);
135 g.set(CV_CAP_PROP_FRAME_WIDTH, 640);
136 g.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
145 #elif defined(VISP_HAVE_V4L2)
154 #elif defined(VISP_HAVE_DC1394)
161 #elif defined(VISP_HAVE_CMU1394)
172 #if defined(VISP_HAVE_OPENCV)
180 #if defined(VISP_HAVE_X11)
182 #elif defined(VISP_HAVE_GDI)
236 #if defined(VISP_HAVE_OPENCV) && (VISP_HAVE_OPENCV_VERSION >= 0x020100)
267 v = -lambda * (L * cVe * eJe).pseudoInverse() * error;
269 std::cout <<
"Send velocity to the pionner: " << v[0] <<
" m/s "
284 std::cout <<
"Ending robot thread..." << std::endl;
288 robot.waitForRunExit();
291 std::cout <<
"Catch an exception: " << e << std::endl;
298 std::cout <<
"You don't have the right 3rd party libraries to run this example..." << std::endl;
Implementation of a matrix and operations on matrices.
vpMatrix interaction(const unsigned int select=FEATURE_ALL)
void setVideoMode(unsigned long format, unsigned long mode)
void open(vpImage< unsigned char > &I)
void stack(const double &d)
static void convert(const vpImage< unsigned char > &src, vpImage< vpRGBa > &dest)
void get_eJe(vpMatrix &eJe)
void open(vpImage< unsigned char > &I)
vpColVector error(const vpBasicFeature &s_star, const unsigned int select=FEATURE_ALL)
Display for windows using GDI (available on any windows 32 platform).
void setEllipsoidBadPointsPercentage(const double &percentage=0.0)
void stack(const vpMatrix &A)
vpVelocityTwistMatrix get_cVe() const
void setVelocity(const vpRobot::vpControlFrameType frame, const vpColVector &vel)
void buildFrom(const double x, const double y, const double Z, const double LogZoverZstar)
Define the X11 console to display images.
void setDevice(const std::string &devname)
Class that defines a 3D point visual feature which is composed by one parameters that is that defin...
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...
Interface for Pioneer mobile robots based on Aria 3rd party library.
This tracker is meant to track a blob (connex pixels with same gray level) on a vpImage.
void track(const vpImage< unsigned char > &I)
static void flush(const vpImage< unsigned char > &I)
void initPersProjWithoutDistortion(const double px, const double py, const double u0, const double v0)
vpMatrix interaction(const unsigned int select=FEATURE_ALL)
void setGrayLevelPrecision(const double &grayLevelPrecision)
Firewire cameras video capture based on CMU 1394 Digital Camera SDK.
void setFramerate(unsigned long fps)
static unsigned int selectX()
void acquire(vpImage< unsigned char > &I)
static void display(const vpImage< unsigned char > &I)
VISP_EXPORT void sleepMs(double t)
Generic class defining intrinsic camera parameters.
void setComputeMoments(const bool activate)
Implementation of a velocity twist matrix and operations on such kind of matrices.
void setScale(unsigned scale=vpV4l2Grabber::DEFAULT_SCALE)
void setEllipsoidShapePrecision(const double &ellipsoidShapePrecision)
void setInput(unsigned input=vpV4l2Grabber::DEFAULT_INPUT)
void buildFrom(const double x, const double y, const double Z)
Class for the Video4Linux2 video device.
static double deg(double rad)
Implementation of column vector and the associated operations.
void initTracking(const vpImage< unsigned char > &I, unsigned int size=0)
Class for firewire ieee1394 video devices using libdc1394-2.x api.
virtual bool getClick(bool blocking=true)=0
virtual void displayLine(const vpImagePoint &ip1, const vpImagePoint &ip2, const vpColor &color, unsigned int thickness=1)=0
vpColVector error(const vpBasicFeature &s_star, const unsigned int select=FEATURE_ALL)
static void create(vpFeaturePoint &s, const vpCameraParameters &cam, const vpDot &d)
void setGraphics(const bool activate)
void setFramerate(vpV4l2FramerateType framerate)