40 #include <visp3/core/vpConfig.h>
42 #include <visp3/robot/vpRobotPioneer.h>
43 #include <visp3/blob/vpDot2.h>
44 #include <visp3/core/vpCameraParameters.h>
45 #include <visp3/core/vpHomogeneousMatrix.h>
46 #include <visp3/core/vpImage.h>
47 #include <visp3/core/vpImageConvert.h>
48 #include <visp3/core/vpVelocityTwistMatrix.h>
49 #include <visp3/gui/vpDisplayGDI.h>
50 #include <visp3/gui/vpDisplayX.h>
51 #include <visp3/sensor/vp1394CMUGrabber.h>
52 #include <visp3/sensor/vp1394TwoGrabber.h>
53 #include <visp3/sensor/vpOpenCVGrabber.h>
54 #include <visp3/sensor/vpV4l2Grabber.h>
55 #include <visp3/visual_features/vpFeatureBuilder.h>
56 #include <visp3/visual_features/vpFeatureDepth.h>
57 #include <visp3/visual_features/vpFeaturePoint.h>
58 #include <visp3/vs/vpServo.h>
60 #if defined(VISP_HAVE_DC1394) || defined(VISP_HAVE_V4L2) || defined(VISP_HAVE_CMU1394) || \
61 (VISP_HAVE_OPENCV_VERSION >= 0x020100)
62 #if defined(VISP_HAVE_X11) || defined(VISP_HAVE_GDI)
63 #if defined(VISP_HAVE_PIONEER)
64 #define TEST_COULD_BE_ACHIEVED
69 #undef VISP_HAVE_OPENCV
94 #ifdef TEST_COULD_BE_ACHIEVED
95 int main(
int argc,
char **argv)
101 double coef = 1. / 6.77;
105 ArArgumentParser parser(&argc, argv);
106 parser.loadDefaultArguments();
110 ArRobotConnector robotConnector(&parser, &robot);
111 if (!robotConnector.connectRobot()) {
112 ArLog::log(ArLog::Terse,
"Could not connect to the robot.");
113 if (parser.checkHelpAndWarnUnparsed()) {
118 if (!Aria::parseArgs()) {
130 std::cout <<
"Robot connected" << std::endl;
137 #if defined(VISP_HAVE_OPENCV)
139 std::cout <<
"Use device: " << device << std::endl;
140 cv::VideoCapture g(device);
141 g.set(CV_CAP_PROP_FRAME_WIDTH, 640);
142 g.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
151 #elif defined(VISP_HAVE_V4L2)
161 #elif defined(VISP_HAVE_DC1394)
169 #elif defined(VISP_HAVE_CMU1394)
181 #if defined(VISP_HAVE_OPENCV)
189 #if defined(VISP_HAVE_X11)
191 #elif defined(VISP_HAVE_GDI)
217 std::cout <<
"cVe: \n" << cVe << std::endl;
222 std::cout <<
"eJe: \n" << eJe << std::endl;
249 std::cout <<
"Z " << Z << std::endl;
262 #if defined(VISP_HAVE_OPENCV) && (VISP_HAVE_OPENCV_VERSION >= 0x020100)
292 std::cout <<
"Send velocity to the pionner: " << v[0] <<
" m/s " <<
vpMath::deg(v[1]) <<
" deg/s" << std::endl;
307 std::cout <<
"Ending robot thread..." << std::endl;
311 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 emited 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 setVelocity(const vpRobot::vpControlFrameType frame, const vpColVector &vel)
void get_eJe(vpMatrix &eJe)
void setInteractionMatrixType(const vpServoIteractionMatrixType &interactionMatrixType, const vpServoInversionType &interactionMatrixInversion=PSEUDO_INVERSE)
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()
void addFeature(vpBasicFeature &s, vpBasicFeature &s_star, unsigned int select=vpBasicFeature::FEATURE_ALL)
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)