36 #include <visp3/core/vpConfig.h>
37 #include <visp3/robot/vpRobotException.h>
38 #include <visp3/robot/vpRobotPioneer.h>
44 #include <visp3/core/vpMath.h>
45 #include <visp3/core/vpDebug.h>
47 #ifdef VISP_HAVE_PIONEER
66 std::cout <<
"Ending robot thread..." << std::endl;
113 if (vel.
size() != 2) {
126 this->setVel(vel_sat[0] * 1000.);
137 this->setVel2(vel_sat[0] * 1000.,
143 "Cannot send the robot velocity in the specified control frame");
161 this->runAsync(
true);
163 this->enableMotors();
197 velocity[0] = this->getLeftVel() / 1000.;
198 velocity[1] = this->getRightVel() / 1000;
203 velocity[0] = this->getVel() / 1000.;
209 "Cannot get the robot volocity in the specified control frame");
240 #elif !defined(VISP_BUILD_SHARED_LIBS)
242 void dummy_vpRobotPioneer() { };
unsigned int size() const
Return the number of elements of the 2D array.
Implementation of column vector and the associated operations.
void resize(unsigned int i, bool flagNullify=true)
@ dimensionError
Bad dimension.
static double rad(double deg)
static double deg(double rad)
Generic functions for Pioneer mobile robots.
Error that can be emitted by the vpRobot class and its derivatives.
@ wrongStateError
Wrong robot state.
virtual ~vpRobotPioneer() VP_OVERRIDE
void getVelocity(const vpRobot::vpControlFrameType frame, vpColVector &velocity)
void setVelocity(const vpRobot::vpControlFrameType frame, const vpColVector &vel) VP_OVERRIDE
static vpColVector saturateVelocities(const vpColVector &v_in, const vpColVector &v_max, bool verbose=false)
double getMaxRotationVelocity(void) const
double getMaxTranslationVelocity(void) const