46#include <visp3/core/vpConfig.h>
48#if defined(VISP_HAVE_REALSENSE2) && defined(VISP_HAVE_DISPLAY) && defined(VISP_HAVE_AFMA6)
50#include <visp3/core/vpImage.h>
51#include <visp3/core/vpHomogeneousMatrix.h>
52#include <visp3/core/vpLine.h>
53#include <visp3/core/vpMath.h>
54#include <visp3/gui/vpDisplayFactory.h>
55#include <visp3/robot/vpRobotAfma6.h>
56#include <visp3/sensor/vpRealSense2.h>
57#include <visp3/me/vpMeLine.h>
58#include <visp3/visual_features/vpFeatureBuilder.h>
59#include <visp3/visual_features/vpFeatureLine.h>
60#include <visp3/vs/vpServo.h>
61#include <visp3/vs/vpServoDisplay.h>
65#ifdef ENABLE_VISP_NAMESPACE
76 std::cout <<
"WARNING: This example will move the robot! "
77 <<
"Please make sure to have the user stop button at hand!" << std::endl
78 <<
"Press Enter to continue..." << std::endl;
84 config.enable_stream(RS2_STREAM_COLOR, width, height, RS2_FORMAT_RGBA8, fps);
85 config.enable_stream(RS2_STREAM_DEPTH, width, height, RS2_FORMAT_Z16, fps);
86 config.enable_stream(RS2_STREAM_INFRARED, width, height, RS2_FORMAT_Y8, fps);
91 for (
size_t i = 0;
i < 10; ++
i) {
97 robot.getCameraParameters(cam, I);
98 std::cout <<
"cam:\n" <<
cam << std::endl;
140 task.addFeature(s_line, s_line_d);
148 bool final_quit =
false;
149 bool send_velocities =
false;
151 while (!final_quit) {
169 if (!send_velocities) {
177 std::stringstream ss;
178 ss <<
"Left click to " << (send_velocities ?
"stop the robot" :
"servo the robot") <<
", right click to quit.";
192 send_velocities = !send_velocities;
205 std::cout <<
"Stop the robot " << std::endl;
209 while (!final_quit) {
228 std::cout <<
"Test failed with exception: " <<
e << std::endl;
236 std::cout <<
"You do not have an afma6 robot connected to your computer..." << std::endl;
Generic class defining intrinsic camera parameters.
vpCameraParametersProjType
@ perspectiveProjWithDistortion
Perspective projection with distortion model.
Implementation of column vector and the associated operations.
static const vpColor green
static bool getClick(const vpImage< unsigned char > &I, bool blocking=true)
static void display(const vpImage< unsigned char > &I)
static void flush(const vpImage< unsigned char > &I)
static void displayText(const vpImage< unsigned char > &I, const vpImagePoint &ip, const std::string &s, const vpColor &color)
error that can be emitted by ViSP classes.
static void create(vpFeaturePoint &s, const vpCameraParameters &cam, const vpDot &d)
Class that defines a 2D line visual feature which is composed by two parameters that are and ,...
void display(const vpCameraParameters &cam, const vpImage< unsigned char > &I, const vpColor &color=vpColor::green, unsigned int thickness=1) const VP_OVERRIDE
Implementation of an homogeneous matrix and operations on such kind of matrices.
Definition of the vpImage class member functions.
Class that defines a 3D line in the object frame and allows forward projection of the line in the cam...
void setWorldCoordinates(const double &oA1, const double &oB1, const double &oC1, const double &oD1, const double &oA2, const double &oB2, const double &oC2, const double &oD2)
static double rad(double deg)
Class that tracks in an image a line moving edges.
void display(const vpImage< unsigned char > &I, const vpColor &color, unsigned int thickness=1)
void track(const vpImage< unsigned char > &I)
void initTracking(const vpImage< unsigned char > &I)
void setDisplay(vpMeSite::vpMeSiteDisplayType select)
void setPointsToTrack(const int &points_to_track)
void setRange(const unsigned int &range)
void setLikelihoodThresholdType(const vpLikelihoodThresholdType likelihood_threshold_type)
void setThreshold(const double &threshold)
void setSampleStep(const double &sample_step)
void acquire(vpImage< unsigned char > &grey, double *ts=nullptr)
bool open(const rs2::config &cfg=rs2::config())
Control of Irisa's gantry robot named Afma6.
@ STATE_VELOCITY_CONTROL
Initialize the velocity controller.
@ STATE_STOP
Stops robot motion especially in velocity and acceleration control.
std::shared_ptr< vpDisplay > createDisplay()
Return a smart pointer vpDisplay specialization if a GUI library is available or nullptr otherwise.
VISP_EXPORT double measureTimeMs()