Main MRPT website > C++ reference
MRPT logo
Public Types | Public Member Functions | Public Attributes | Private Member Functions

mrpt::hwdrivers::CPtuDPerception Class Reference


Detailed Description

This class implements initialization and comunication methods to control a Pan and Tilt Unit model PTU-46-17.5, working in radians .

Definition at line 38 of file CPtuDPerception.h.

#include <mrpt/hwdrivers/CPtuDPerception.h>

Inheritance diagram for mrpt::hwdrivers::CPtuDPerception:
Inheritance graph
[legend]

List of all members.

Public Types

enum  {
  NoError = 1, ComError = 2, TimeoutError = 3, InitError = 5,
  PanHitError = 7, TiltHitError = 11, PanTiltHitError = 13, MaxLimitError = 17,
  MinLimitError = 19, OutOfRange = 23, IllegalCommandError = 29, UnExpectedError = 31
}
enum  { Pan = 'P', Tilt = 'T' }
enum  { Regular = 'R', High = 'H', Low = 'L', Off = 'O' }
enum  { Com1 = 1, Com2 = 2, Com3 = 3, Com4 = 4 }

Public Member Functions

 CPtuDPerception ()
 Default constructor.
virtual ~CPtuDPerception ()
 Destructor.
virtual bool rangeMeasure ()
 Search limit forward.
virtual bool moveToAbsPos (char axis, double nRad)
 Specification of positions in absolute terms.
virtual bool absPosQ (char axis, double &nRad)
 Query position in absolute terms.
virtual bool moveToOffPos (char axis, double nRad)
 Specify desired axis position as an offset from the current position.
virtual bool offPosQ (char axis, double &nRad)
 Query position in relative terms.
virtual bool maxPosQ (char axis, double &nRad)
 Query max movement limit of a axis in absolute terms.
virtual bool minPosQ (char axis, double &nRad)
 Query min movement limit of a axis in absolute terms.
virtual bool enableLimitsQ (bool &enable)
 Query if exist movement limits.
virtual bool enableLimits (bool set)
 Enable/Disable movement limits.
virtual bool inmediateExecution (bool set)
 With I mode (default) instructs pan-tilt unit to immediately execute positional commands.
virtual bool aWait (void)
 Wait the finish of the last position command to continue accept commands.
virtual bool haltAll ()
 Inmediately stop all.
virtual bool halt (char axis)
 Inmediately stop.
virtual bool speed (char axis, double radSec)
 Specification of turn speed.
virtual bool speedQ (char axis, double &radSec)
 Query turn speed.
virtual bool aceleration (char axis, double radSec2)
 Specification (de/a)celeration in turn.
virtual bool acelerationQ (char axis, double &radSec2)
 Query (de/a)celeration in turn.
virtual bool baseSpeed (char axis, double radSec)
 Specification of velocity to which start and finish the (de/a)celeration.
virtual bool baseSpeedQ (char axis, double &radSec)
 Query velocity to which start and finish the (de/a)celeration.
virtual bool upperSpeed (char axis, double radSec)
 Specification of velocity upper limit.
virtual bool upperSpeedQ (char axis, double &radSec)
 Query velocity upper limit.
virtual bool lowerSpeed (char axis, double radSec)
 Specification of velocity lower limit.
virtual bool lowerSpeedQ (char axis, double &radSec)
 Query velocity lower limit.
virtual bool reset (void)
 Reset PTU to initial state.
virtual bool save (void)
 Save or restart default values.
virtual bool restoreDefaults (void)
 Restore default values.
virtual bool restoreFactoryDefaults (void)
 Restore factory default values.
virtual bool version (char *nVersion)
 Version and CopyRights.
virtual void nversion (double &nVersion)
 Number of version.
virtual bool powerModeQ (bool transit, char &mode)
 Query power mode.
virtual bool powerMode (bool transit, char mode)
 Specification of power mode.
virtual double status (double &rad)
 Check if ptu is moving.
virtual bool setLimits (char axis, double &l, double &u)
 Set limits of movement.
virtual bool changeMotionDir ()
virtual int checkErrors ()
 Check errors, returns 0 if there are not errors or error code in otherwise Error codes:
bool noError ()
bool comError ()
bool timeoutError ()
bool initError ()
bool panTiltHitError ()
bool panHitError ()
bool tiltHitError ()
bool maxLimitError ()
bool minLimitError ()
bool outOfRange ()
bool illegalCommandError ()
bool unExpectedError ()
virtual void clearErrors ()
 Clear errors.
virtual bool init (const std::string port)
 PTU and serial port initialization.
virtual void close ()
 Close conection with serial port.
virtual double radError (char axis, double nRadMoved)
 To obtains the mistake for use discrete values when the movement is expressed in radians.
virtual long radToPos (char axis, double nRad)
 To obtain the discrete value for a number of radians.
virtual double posToRad (char axis, long nPos)
 To obtain the number of radians for a discrete value.
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 verboseQ (bool &modo)
 Query verbose mode.
virtual bool verbose (bool set)
 Set verbose.
virtual bool echoModeQ (bool &mode)
 Query echo mode.
virtual bool echoMode (bool mode)
 Enable/Disable echo response with command.
virtual bool resolution (void)
 Query the pan and tilt resolution per position moved and initialize local atributes.

Public Attributes

int nError
 TimeoutError: Only occurs if the communication is cut with PTU so it is advisable to check the connection and initialize again the comunication.

Private Member Functions

virtual bool transmit (const char *command)
 To transmition commands to the PTU.
virtual bool receive (const char *command, char *response)
 To receive the responseof the PTU.
virtual bool radQuerry (char axis, char command, double &nRad)
 Used to obtains a number of radians.
virtual bool radAsign (char axis, char command, double nRad)
 Method used for asign a number of radians with a command.
virtual double convertToDouble (char *sDouble)
 Convert string to double.
virtual long convertToLong (char *sLong)
 Convert string to long.

Member Enumeration Documentation

anonymous enum
Enumerator:
NoError 
ComError 
TimeoutError 
InitError 
PanHitError 
TiltHitError 
PanTiltHitError 
MaxLimitError 
MinLimitError 
OutOfRange 
IllegalCommandError 
UnExpectedError 

Definition at line 368 of file CPtuDPerception.h.

anonymous enum
Enumerator:
Pan 
Tilt 

Definition at line 380 of file CPtuDPerception.h.

anonymous enum
Enumerator:
Regular 
High 
Low 
Off 

Definition at line 381 of file CPtuDPerception.h.

anonymous enum
Enumerator:
Com1 
Com2 
Com3 
Com4 

Definition at line 382 of file CPtuDPerception.h.


Constructor & Destructor Documentation

mrpt::hwdrivers::CPtuDPerception::CPtuDPerception (  )  [inline]

Default constructor.

Definition at line 40 of file CPtuDPerception.h.

virtual mrpt::hwdrivers::CPtuDPerception::~CPtuDPerception (  )  [inline, virtual]

Destructor.

Definition at line 44 of file CPtuDPerception.h.


Member Function Documentation

virtual bool mrpt::hwdrivers::CPtuDPerception::absPosQ ( char  axis,
double &  nRad 
) [virtual]

Query position in absolute terms.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::aceleration ( char  axis,
double  radSec2 
) [virtual]

Specification (de/a)celeration in turn.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::acelerationQ ( char  axis,
double &  radSec2 
) [virtual]

Query (de/a)celeration in turn.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::aWait ( void   )  [virtual]

Wait the finish of the last position command to continue accept commands.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::baseSpeed ( char  axis,
double  radSec 
) [virtual]

Specification of velocity to which start and finish the (de/a)celeration.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::baseSpeedQ ( char  axis,
double &  radSec 
) [virtual]

Query velocity to which start and finish the (de/a)celeration.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::changeMotionDir (  )  [virtual]
virtual int mrpt::hwdrivers::CPtuDPerception::checkErrors (  )  [virtual]

Check errors, returns 0 if there are not errors or error code in otherwise Error codes:

        1: Com error
        2: Time out error
        3: Init error
        4: Pan tilt hit error
        5: Pan hit error
        6: Tilt hit error
        7: Max limit error
        8: Min limit error
        9: Out of range
        10: Illegal command error
        11: Unexpected error

Implements mrpt::hwdrivers::CPtuBase.

virtual void mrpt::hwdrivers::CPtuDPerception::clearErrors (  )  [inline, virtual]

Clear errors.

Implements mrpt::hwdrivers::CPtuBase.

Definition at line 257 of file CPtuDPerception.h.

References TiltHitError.

virtual void mrpt::hwdrivers::CPtuDPerception::close (  )  [virtual]

Close conection with serial port.

Implements mrpt::hwdrivers::CPtuBase.

bool mrpt::hwdrivers::CPtuDPerception::comError (  )  [inline]

Definition at line 243 of file CPtuDPerception.h.

virtual double mrpt::hwdrivers::CPtuDPerception::convertToDouble ( char *  sDouble  )  [private, virtual]

Convert string to double.

virtual long mrpt::hwdrivers::CPtuDPerception::convertToLong ( char *  sLong  )  [private, virtual]

Convert string to long.

virtual bool mrpt::hwdrivers::CPtuDPerception::echoMode ( bool  mode  )  [virtual]

Enable/Disable echo response with command.


        Example of use (EE supposed):
                PP * 22
                ED *
                <pp entered again, but not echoed>* 22

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::echoModeQ ( bool &  mode  )  [virtual]

Query echo mode.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::enableLimits ( bool  set  )  [virtual]

Enable/Disable movement limits.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::enableLimitsQ ( bool &  enable  )  [virtual]

Query if exist movement limits.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::halt ( char  axis  )  [virtual]

Inmediately stop.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::haltAll (  )  [virtual]

Inmediately stop all.

Implements mrpt::hwdrivers::CPtuBase.

bool mrpt::hwdrivers::CPtuDPerception::illegalCommandError (  )  [inline]

Definition at line 252 of file CPtuDPerception.h.

References ComError.

virtual bool mrpt::hwdrivers::CPtuDPerception::init ( const std::string  port  )  [virtual]

PTU and serial port initialization.

Implements mrpt::hwdrivers::CPtuBase.

bool mrpt::hwdrivers::CPtuDPerception::initError (  )  [inline]

Definition at line 245 of file CPtuDPerception.h.

virtual bool mrpt::hwdrivers::CPtuDPerception::inmediateExecution ( bool  set  )  [virtual]

With I mode (default) instructs pan-tilt unit to immediately execute positional commands.


In S mode instructs pan-tilt unit to execute positional commands only when an Await Position Command Completion command is executed or when put into Immediate Execution Mode.

        Example of use of S mode:
                DR *
                S *
                PP1500 *
                TP-900 *
                PP * Current Pan position is 0
                TP * Current Tilt position is 0
                A *
                PP * Current Pan position is 1500
                TP * Current Tilt position is -900

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::lowerSpeed ( char  axis,
double  radSec 
) [virtual]

Specification of velocity lower limit.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::lowerSpeedQ ( char  axis,
double &  radSec 
) [virtual]

Query velocity lower limit.

Implements mrpt::hwdrivers::CPtuBase.

bool mrpt::hwdrivers::CPtuDPerception::maxLimitError (  )  [inline]

Definition at line 249 of file CPtuDPerception.h.

virtual bool mrpt::hwdrivers::CPtuDPerception::maxPosQ ( char  axis,
double &  nRad 
) [virtual]

Query max movement limit of a axis in absolute terms.

Implements mrpt::hwdrivers::CPtuBase.

bool mrpt::hwdrivers::CPtuDPerception::minLimitError (  )  [inline]

Definition at line 250 of file CPtuDPerception.h.

virtual bool mrpt::hwdrivers::CPtuDPerception::minPosQ ( char  axis,
double &  nRad 
) [virtual]

Query min movement limit of a axis in absolute terms.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::moveToAbsPos ( char  axis,
double  nRad 
) [virtual]

Specification of positions in absolute terms.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::moveToOffPos ( char  axis,
double  nRad 
) [virtual]

Specify desired axis position as an offset from the current position.


This method recives the number of radians to move.

        Example of use:
                TT-500 *
                A *
                TO * Current Tilt position is -500
                TO500 *
                A *
                TT * Current Pan position is 1000 

Implements mrpt::hwdrivers::CPtuBase.

bool mrpt::hwdrivers::CPtuDPerception::noError (  )  [inline]

Definition at line 242 of file CPtuDPerception.h.

virtual void mrpt::hwdrivers::CPtuDPerception::nversion ( double &  nVersion  )  [virtual]

Number of version.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::offPosQ ( char  axis,
double &  nRad 
) [virtual]

Query position in relative terms.

Implements mrpt::hwdrivers::CPtuBase.

bool mrpt::hwdrivers::CPtuDPerception::outOfRange (  )  [inline]

Definition at line 251 of file CPtuDPerception.h.

bool mrpt::hwdrivers::CPtuDPerception::panHitError (  )  [inline]

Definition at line 247 of file CPtuDPerception.h.

bool mrpt::hwdrivers::CPtuDPerception::panTiltHitError (  )  [inline]

Definition at line 246 of file CPtuDPerception.h.

virtual double mrpt::hwdrivers::CPtuDPerception::posToRad ( char  axis,
long  nPos 
) [virtual]

To obtain the number of radians for a discrete value.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::powerMode ( bool  transit,
char  mode 
) [virtual]

Specification of power mode.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::powerModeQ ( bool  transit,
char &  mode 
) [virtual]

Query power mode.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::radAsign ( char  axis,
char  command,
double  nRad 
) [private, virtual]

Method used for asign a number of radians with a command.

Implements mrpt::hwdrivers::CPtuBase.

virtual double mrpt::hwdrivers::CPtuDPerception::radError ( char  axis,
double  nRadMoved 
) [virtual]

To obtains the mistake for use discrete values when the movement is expressed in radians.

Parameters are the absolute position in radians and the axis desired

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::radQuerry ( char  axis,
char  command,
double &  nRad 
) [private, virtual]

Used to obtains a number of radians.

Implements mrpt::hwdrivers::CPtuBase.

virtual long mrpt::hwdrivers::CPtuDPerception::radToPos ( char  axis,
double  nRad 
) [virtual]

To obtain the discrete value for a number of radians.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::rangeMeasure (  )  [virtual]

Search limit forward.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::receive ( const char *  command,
char *  response 
) [private, virtual]

To receive the responseof the PTU.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::reset ( void   )  [virtual]

Reset PTU to initial state.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::resolution ( void   )  [virtual]

Query the pan and tilt resolution per position moved and initialize local atributes.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::restoreDefaults ( void   )  [virtual]

Restore default values.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::restoreFactoryDefaults ( void   )  [virtual]

Restore factory default values.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::save ( void   )  [virtual]

Save or restart default values.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::scan ( char  axis,
int  wait,
float  initial,
float  final,
double  radPre 
) [virtual]

Performs a scan in the axis indicated and whit the precision desired.


Parameters:
<axis> {Pan or Till}
<tWait> {Wait time betwen commands}
<initial> {initial position}
<final> {final position}
<radPre> {radians precision for the scan}

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::setLimits ( char  axis,
double &  l,
double &  u 
) [virtual]

Set limits of movement.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::speed ( char  axis,
double  radSec 
) [virtual]

Specification of turn speed.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::speedQ ( char  axis,
double &  radSec 
) [virtual]

Query turn speed.

Implements mrpt::hwdrivers::CPtuBase.

virtual double mrpt::hwdrivers::CPtuDPerception::status ( double &  rad  )  [inline, virtual]

Check if ptu is moving.

Implements mrpt::hwdrivers::CPtuBase.

Definition at line 210 of file CPtuDPerception.h.

bool mrpt::hwdrivers::CPtuDPerception::tiltHitError (  )  [inline]

Definition at line 248 of file CPtuDPerception.h.

bool mrpt::hwdrivers::CPtuDPerception::timeoutError (  )  [inline]

Definition at line 244 of file CPtuDPerception.h.

virtual bool mrpt::hwdrivers::CPtuDPerception::transmit ( const char *  command  )  [private, virtual]

To transmition commands to the PTU.

Implements mrpt::hwdrivers::CPtuBase.

bool mrpt::hwdrivers::CPtuDPerception::unExpectedError (  )  [inline]

Definition at line 253 of file CPtuDPerception.h.

References TimeoutError.

virtual bool mrpt::hwdrivers::CPtuDPerception::upperSpeed ( char  axis,
double  radSec 
) [virtual]

Specification of velocity upper limit.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::upperSpeedQ ( char  axis,
double &  radSec 
) [virtual]

Query velocity upper limit.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::verbose ( bool  set  )  [virtual]

Set verbose.


Example of response with FV (verbose) active: FV * PP * Current pan position is 0 Example of response with FT (terse) active: FT * PP * 0

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::verboseQ ( bool &  modo  )  [virtual]

Query verbose mode.

Implements mrpt::hwdrivers::CPtuBase.

virtual bool mrpt::hwdrivers::CPtuDPerception::version ( char *  nVersion  )  [virtual]

Version and CopyRights.

Implements mrpt::hwdrivers::CPtuBase.


Member Data Documentation

TimeoutError: Only occurs if the communication is cut with PTU so it is advisable to check the connection and initialize again the comunication.

Definition at line 378 of file CPtuDPerception.h.




Page generated by Doxygen 1.7.1 for MRPT 0.9.4 SVN: at Mon Jan 10 23:33:19 UTC 2011