10#ifndef CPtuDPerception_H
11#define CPtuDPerception_H
51 virtual bool absPosQ(
char axis,
double &nRad);
70 virtual bool offPosQ(
char axis,
double &nRad);
74 virtual bool maxPosQ(
char axis,
double &nRad);
78 virtual bool minPosQ(
char axis,
double &nRad);
125 virtual bool speed(
char axis,
double radSec);
129 virtual bool speedQ(
char axis,
double &radSec);
208 virtual bool setLimits(
char axis,
double &l,
double &u);
237 inline bool comError() {
return (nError % CPtuDPerception::ComError)==0; }
238 inline bool timeoutError() {
return (nError % CPtuDPerception::TimeoutError)==0; }
239 inline bool initError() {
return (nError % CPtuDPerception::InitError)==0; }
240 inline bool panTiltHitError() {
return (nError % CPtuDPerception::PanTiltHitError)==0; }
241 inline bool panHitError() {
return (nError % CPtuDPerception::PanHitError)==0; }
242 inline bool tiltHitError() {
return (nError % CPtuDPerception::TiltHitError)==0; }
243 inline bool maxLimitError() {
return (nError % CPtuDPerception::MaxLimitError)==0; }
244 inline bool minLimitError () {
return (nError % CPtuDPerception::MinLimitError)==0; }
245 inline bool outOfRange() {
return (nError % CPtuDPerception::OutOfRange)==0; }
247 inline bool unExpectedError() {
return (nError % CPtuDPerception::UnExpectedError)==0; }
260 virtual bool init(
const std::string &port);
271 virtual double radError(
char axis,
double nRadMoved);
289 virtual bool scan(
char axis,
int wait,
float initial,
float final,
double radPre);
340 virtual bool receive(
const char * command,
char * response);
344 virtual bool radQuerry(
char axis,
char command,
double &nRad);
348 virtual bool radAsign(
char axis,
char command,
double nRad);
362 enum { NoError = 1, ComError = 2, TimeoutError = 3,
363 InitError = 5,PanHitError = 7, TiltHitError = 11, PanTiltHitError=13,
364 MaxLimitError = 17, MinLimitError = 19, OutOfRange = 23,
365 IllegalCommandError = 29, UnExpectedError =31 };
374 enum { Pan =
'P', Tilt =
'T' };
375 enum { Regular =
'R', High =
'H', Low =
'L', Off =
'O' };
376 enum { Com1 = 1, Com2 = 2, Com3 = 3, Com4 = 4 };
This class implements initialization and comunication methods to control a generic Pan and Tilt Unit,...
This class implements initialization and comunication methods to control a Pan and Tilt Unit model PT...
virtual bool echoModeQ(bool &mode)
Query echo mode.
CPtuDPerception()
Default constructor.
virtual bool baseSpeed(char axis, double radSec)
Specification of velocity to which start and finish the (de/a)celeration.
virtual bool scan(char axis, int wait, float initial, float final, double radPre)
Performs a scan in the axis indicated and whit the precision desired.
virtual bool moveToOffPos(char axis, double nRad)
Specify desired axis position as an offset from the current position.
virtual bool lowerSpeed(char axis, double radSec)
Specification of velocity lower limit.
virtual long convertToLong(char *sLong)
Convert string to long.
virtual bool offPosQ(char axis, double &nRad)
Query position in relative terms.
virtual bool powerMode(bool transit, char mode)
Specification of power mode.
virtual bool radQuerry(char axis, char command, double &nRad)
Used to obtains a number of radians.
virtual bool baseSpeedQ(char axis, double &radSec)
Query velocity to which start and finish the (de/a)celeration.
virtual bool restoreFactoryDefaults(void)
Restore factory default values.
virtual bool aceleration(char axis, double radSec2)
Specification (de/a)celeration in turn.
virtual bool radAsign(char axis, char command, double nRad)
Method used for asign a number of radians with a command.
virtual bool enableLimitsQ(bool &enable)
Query if exist movement limits.
virtual bool moveToAbsPos(char axis, double nRad)
Specification of positions in absolute terms.
virtual ~CPtuDPerception()
Destructor.
virtual bool lowerSpeedQ(char axis, double &radSec)
Query velocity lower limit.
virtual bool haltAll()
Inmediately stop all.
virtual bool speedQ(char axis, double &radSec)
Query turn speed.
virtual bool changeMotionDir()
virtual bool resolution(void)
Query the pan and tilt resolution per position moved and initialize local atributes.
virtual bool minPosQ(char axis, double &nRad)
Query min movement limit of a axis in absolute terms.
virtual bool restoreDefaults(void)
Restore default values.
virtual void nversion(double &nVersion)
Number of version.
virtual void clearErrors()
Clear errors.
virtual bool verbose(bool set)
Set verbose.
virtual bool transmit(const char *command)
To transmition commands to the PTU.
int nError
TimeoutError: Only occurs if the communication is cut with PTU so it is advisable to check the connec...
virtual bool enableLimits(bool set)
Enable/Disable movement limits.
virtual bool absPosQ(char axis, double &nRad)
Query position in absolute terms.
virtual bool aWait(void)
Wait the finish of the last position command to continue accept commands.
virtual double radError(char axis, double nRadMoved)
To obtains the mistake for use discrete values when the movement is expressed in radians.
virtual bool speed(char axis, double radSec)
Specification of turn speed.
virtual bool reset(void)
Reset PTU to initial state.
virtual bool rangeMeasure()
Search limit forward.
virtual double posToRad(char axis, long nPos)
To obtain the number of radians for a discrete value.
virtual bool save(void)
Save or restart default values.
virtual bool powerModeQ(bool transit, char &mode)
Query power mode.
virtual bool inmediateExecution(bool set)
With I mode (default) instructs pan-tilt unit to immediately execute positional commands.
virtual double convertToDouble(char *sDouble)
Convert string to double.
virtual long radToPos(char axis, double nRad)
To obtain the discrete value for a number of radians.
virtual bool upperSpeedQ(char axis, double &radSec)
Query velocity upper limit.
virtual bool acelerationQ(char axis, double &radSec2)
Query (de/a)celeration in turn.
virtual bool echoMode(bool mode)
Enable/Disable echo response with command.
bool illegalCommandError()
virtual bool halt(char axis)
Inmediately stop.
virtual bool receive(const char *command, char *response)
To receive the responseof the PTU.
virtual bool maxPosQ(char axis, double &nRad)
Query max movement limit of a axis in absolute terms.
virtual bool upperSpeed(char axis, double radSec)
Specification of velocity upper limit.
virtual bool verboseQ(bool &modo)
Query verbose mode.
virtual void close()
Close conection with serial port.
virtual bool version(char *nVersion)
Version and CopyRights.
virtual bool setLimits(char axis, double &l, double &u)
Set limits of movement.
virtual double status(double &rad)
Check if ptu is moving.
virtual int checkErrors()
Check errors, returns 0 if there are not errors or error code in otherwise Error codes:
virtual bool init(const std::string &port)
PTU and serial port initialization.
#define MRPT_UNUSED_PARAM(a)
Can be used to avoid "not used parameters" warnings from the compiler.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.