37 #include <visp3/core/vpConfig.h>
39 #include <visp3/blob/vpDot2.h>
40 #include <visp3/core/vpCameraParameters.h>
41 #include <visp3/core/vpHomogeneousMatrix.h>
42 #include <visp3/core/vpImage.h>
43 #include <visp3/core/vpImageConvert.h>
44 #include <visp3/core/vpVelocityTwistMatrix.h>
45 #include <visp3/gui/vpDisplayGDI.h>
46 #include <visp3/gui/vpDisplayX.h>
47 #include <visp3/robot/vpRobotPioneer.h>
48 #include <visp3/sensor/vp1394CMUGrabber.h>
49 #include <visp3/sensor/vp1394TwoGrabber.h>
50 #include <visp3/sensor/vpV4l2Grabber.h>
51 #include <visp3/visual_features/vpFeatureBuilder.h>
52 #include <visp3/visual_features/vpFeatureDepth.h>
53 #include <visp3/visual_features/vpFeaturePoint.h>
54 #include <visp3/vs/vpServo.h>
56 #if defined(HAVE_OPENCV_VIDEOIO)
57 #include <opencv2/videoio.hpp>
60 #if defined(VISP_HAVE_DC1394) || defined(VISP_HAVE_V4L2) || defined(VISP_HAVE_CMU1394) || defined(HAVE_OPENCV_VIDEOIO)
61 #if defined(VISP_HAVE_X11) || defined(VISP_HAVE_GDI)
62 #if defined(VISP_HAVE_PIONEER)
63 #define TEST_COULD_BE_ACHIEVED
68 #undef VISP_HAVE_OPENCV
93 #ifdef TEST_COULD_BE_ACHIEVED
94 int main(
int argc,
char **argv)
100 double coef = 1. / 6.77;
104 ArArgumentParser parser(&argc, argv);
105 parser.loadDefaultArguments();
109 ArRobotConnector robotConnector(&parser, &robot);
110 if (!robotConnector.connectRobot()) {
111 ArLog::log(ArLog::Terse,
"Could not connect to the robot.");
112 if (parser.checkHelpAndWarnUnparsed()) {
117 if (!Aria::parseArgs()) {
129 std::cout <<
"Robot connected" << std::endl;
136 #if defined(HAVE_OPENCV_VIDEOIO)
138 std::cout <<
"Use device: " << device << std::endl;
139 cv::VideoCapture g(device);
140 g.set(CV_CAP_PROP_FRAME_WIDTH, 640);
141 g.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
150 #elif defined(VISP_HAVE_V4L2)
160 #elif defined(VISP_HAVE_DC1394)
168 #elif defined(VISP_HAVE_CMU1394)
180 #if defined(HAVE_OPENCV_VIDEOIO)
188 #if defined(VISP_HAVE_X11)
190 #elif defined(VISP_HAVE_GDI)
216 std::cout <<
"cVe: \n" << cVe << std::endl;
221 std::cout <<
"eJe: \n" << eJe << std::endl;
248 std::cout <<
"Z " << Z << std::endl;
261 #if defined(HAVE_OPENCV_VIDEOIO)
291 std::cout <<
"Send velocity to the pioneer: " << v[0] <<
" m/s " <<
vpMath::deg(v[1]) <<
" deg/s" << std::endl;
306 std::cout <<
"Ending robot thread..." << std::endl;
310 robot.waitForRunExit();
317 std::cout <<
"Catch an exception: " << e << std::endl;
324 std::cout <<
"You don't have the right 3rd party libraries to run this example..." << std::endl;
Firewire cameras video capture based on CMU 1394 Digital Camera SDK.
void setVideoMode(unsigned long format, unsigned long mode)
void acquire(vpImage< unsigned char > &I)
void setFramerate(unsigned long fps)
void open(vpImage< unsigned char > &I)
Class for firewire ieee1394 video devices using libdc1394-2.x api.
@ vpVIDEO_MODE_640x480_MONO8
Generic class defining intrinsic camera parameters.
void initPersProjWithoutDistortion(double px, double py, double u0, double v0)
Implementation of column vector and the associated operations.
Display for windows using GDI (available on any windows 32 platform).
Use the X11 console to display images on unix-like OS. Thus to enable this class X11 should be instal...
static bool getClick(const vpImage< unsigned char > &I, bool blocking=true)
static void display(const vpImage< unsigned char > &I)
static void displayLine(const vpImage< unsigned char > &I, const vpImagePoint &ip1, const vpImagePoint &ip2, const vpColor &color, unsigned int thickness=1, bool segment=true)
static void flush(const vpImage< unsigned char > &I)
This tracker is meant to track a blob (connex pixels with same gray level) on a vpImage.
void track(const vpImage< unsigned char > &I, bool canMakeTheWindowGrow=true)
void setGraphics(bool activate)
void setGrayLevelPrecision(const double &grayLevelPrecision)
void setEllipsoidBadPointsPercentage(const double &percentage=0.0)
void setEllipsoidShapePrecision(const double &ellipsoidShapePrecision)
void setComputeMoments(bool activate)
void initTracking(const vpImage< unsigned char > &I, unsigned int size=0)
error that can be emitted by ViSP classes.
static void create(vpFeaturePoint &s, const vpCameraParameters &cam, const vpDot &d)
Class that defines a 3D point visual feature which is composed by one parameters that is that defin...
void buildFrom(double x, double y, double Z, double LogZoverZstar)
Class that defines a 2D point visual feature which is composed by two parameters that are the cartes...
void buildFrom(double x, double y, double Z)
static void convert(const vpImage< unsigned char > &src, vpImage< vpRGBa > &dest)
static double deg(double rad)
Implementation of a matrix and operations on matrices.
Interface for Pioneer mobile robots based on Aria 3rd party library.
void get_eJe(vpMatrix &eJe) vp_override
void setVelocity(const vpRobot::vpControlFrameType frame, const vpColVector &vel) vp_override
void setInteractionMatrixType(const vpServoIteractionMatrixType &interactionMatrixType, const vpServoInversionType &interactionMatrixInversion=PSEUDO_INVERSE)
void addFeature(vpBasicFeature &s_cur, vpBasicFeature &s_star, unsigned int select=vpBasicFeature::FEATURE_ALL)
void set_cVe(const vpVelocityTwistMatrix &cVe_)
void print(const vpServo::vpServoPrintType display_level=ALL, std::ostream &os=std::cout)
void set_eJe(const vpMatrix &eJe_)
void setServo(const vpServoType &servo_type)
vpColVector computeControlLaw()
vpVelocityTwistMatrix get_cVe() const
Class that is a wrapper over the Video4Linux2 (V4L2) driver.
void setFramerate(vpV4l2FramerateType framerate)
void setInput(unsigned input=vpV4l2Grabber::DEFAULT_INPUT)
void open(vpImage< unsigned char > &I)
void setScale(unsigned scale=vpV4l2Grabber::DEFAULT_SCALE)
void setDevice(const std::string &devname)
VISP_EXPORT void sleepMs(double t)