PlayerCc::Position3dProxy Class Reference

The Position3dProxy class is used to control a interface_position3d device. More...

#include <playerc++.h>

Inheritance diagram for PlayerCc::Position3dProxy:
Inheritance graph
Collaboration diagram for PlayerCc::Position3dProxy:
Collaboration graph

Detailed Description

The Position3dProxy class is used to control a interface_position3d device.

The latest position data is contained in the attributes xpos, ypos, etc.

Public Member Functions

 Position3dProxy (PlayerClient *aPc, uint32_t aIndex=0)
 Constructor.
 
 ~Position3dProxy ()
 Destructor.
 
void SetSpeed (double aXSpeed, double aYSpeed, double aZSpeed, double aRollSpeed, double aPitchSpeed, double aYawSpeed)
 Send a motor command for a planar robot. More...
 
void SetSpeed (double aXSpeed, double aYSpeed, double aZSpeed, double aYawSpeed)
 Send a motor command for a planar robot. More...
 
void SetSpeed (double aXSpeed, double aYSpeed, double aYawSpeed)
 simplified version of SetSpeed
 
void SetSpeed (double aXSpeed, double aYawSpeed)
 Same as the previous SetSpeed(), but doesn't take the sideways speed (so use this one for non-holonomic robots). More...
 
void SetSpeed (player_pose3d_t vel)
 Overloaded SetSpeed that takes player_pose3d_t as input.
 
void GoTo (player_pose3d_t aPos, player_pose3d_t aVel)
 Send a motor command for position control mode. More...
 
void GoTo (player_pose3d_t aPos)
 Same as the previous GoTo(), but does'n take vel argument.
 
void GoTo (double aX, double aY, double aZ, double aRoll, double aPitch, double aYaw)
 Same as the previous GoTo(), but only takes position arguments, no motion speed setting.
 
void SetMotorEnable (bool aEnable)
 Enable/disable the motors. More...
 
void SelectVelocityControl (int aMode)
 Select velocity control mode. More...
 
void ResetOdometry ()
 Reset odometry to (0,0,0,0,0,0).
 
void SetOdometry (double aX, double aY, double aZ, double aRoll, double aPitch, double aYaw)
 Sets the odometry to the pose (x, y, z, roll, pitch, yaw). More...
 
void RequestGeom ()
 Get the device's geometry; it is read into the relevant class attributes. More...
 
double GetXPos () const
 Get device X position.
 
double GetYPos () const
 Get device Y position.
 
double GetZPos () const
 Get device Z position.
 
double GetRoll () const
 Get device Roll angle.
 
double GetPitch () const
 Get device Pitch angle.
 
double GetYaw () const
 Get device Yaw angle.
 
double GetXSpeed () const
 Get device X speed.
 
double GetYSpeed () const
 Get device Y speed.
 
double GetZSpeed () const
 Get device Z speed.
 
double GetRollSpeed () const
 Get device Roll speed.
 
double GetPitchSpeed () const
 Get device Pitch speed.
 
double GetYawSpeed () const
 Get device Yaw speed.
 
bool GetStall () const
 Is the device stalled?
 
- Public Member Functions inherited from PlayerCc::ClientProxy
bool IsValid () const
 Proxy has any information. More...
 
bool IsFresh () const
 Check for fresh data. More...
 
void NotFresh ()
 Reset Fresh flag. More...
 
std::string GetDriverName () const
 Get the underlying driver's name. More...
 
double GetDataTime () const
 Returns the received timestamp of the last data sample [s].
 
double GetElapsedTime () const
 Returns the time between the current data time and the time of the last data sample [s].
 
PlayerClientGetPlayerClient () const
 Get a pointer to the Player Client. More...
 
uint32_t GetIndex () const
 Get device index. More...
 
uint32_t GetInterface () const
 Get Interface Code. More...
 
std::string GetInterfaceStr () const
 Get Interface Name. More...
 
void SetReplaceRule (bool aReplace, int aType=-1, int aSubtype=-1)
 Set a replace rule for this proxy on the server. More...
 
int HasCapability (uint32_t aType, uint32_t aSubtype)
 Request capabilities of device. More...
 
int GetBoolProp (char *aProperty, bool *aValue)
 Request a boolean property. More...
 
int SetBoolProp (char *aProperty, bool aValue)
 Set a boolean property. More...
 
int GetIntProp (char *aProperty, int32_t *aValue)
 Request an integer property. More...
 
int SetIntProp (char *aProperty, int32_t aValue)
 Set an integer property. More...
 
int GetDblProp (char *aProperty, double *aValue)
 Request a double property. More...
 
int SetDblProp (char *aProperty, double aValue)
 Set a double property. More...
 
int GetStrProp (char *aProperty, char **aValue)
 Request a string property. More...
 
int SetStrProp (char *aProperty, char *aValue)
 Set a string property. More...
 
template<typename T >
connection_t ConnectReadSignal (T aSubscriber)
 Connect a read signal to this proxy. More...
 
void DisconnectReadSignal (connection_t aSubscriber)
 Disconnect a signal from this proxy. More...
 

Private Member Functions

void Subscribe (uint32_t aIndex)
 
void Unsubscribe ()
 

Private Attributes

playerc_position3d_tmDevice
 

Additional Inherited Members

- Public Types inherited from PlayerCc::ClientProxy
typedef int connection_t
 
typedef boost::mutex::scoped_lock scoped_lock_t
 
typedef int read_signal_t
 
- Protected Member Functions inherited from PlayerCc::ClientProxy
 ClientProxy (PlayerClient *aPc, uint32_t aIndex)
 
template<typename T >
GetVar (const T &aV) const
 
template<typename T >
void GetVarByRef (const T aBegin, const T aEnd, T aDest) const
 
- Protected Attributes inherited from PlayerCc::ClientProxy
PlayerClientmPc
 
playerc_client_tmClient
 
playerc_device_tmInfo
 
bool mFresh
 

Member Function Documentation

◆ GoTo()

void PlayerCc::Position3dProxy::GoTo ( player_pose3d_t  aPos,
player_pose3d_t  aVel 
)

Send a motor command for position control mode.

Specify the desired pose of the robot as a player_pose3d_t structure desired motion speed as a player_pose3d_t structure

◆ RequestGeom()

void PlayerCc::Position3dProxy::RequestGeom ( )

Get the device's geometry; it is read into the relevant class attributes.

◆ SelectVelocityControl()

void PlayerCc::Position3dProxy::SelectVelocityControl ( int  aMode)

Select velocity control mode.

This is driver dependent.

◆ SetMotorEnable()

void PlayerCc::Position3dProxy::SetMotorEnable ( bool  aEnable)

Enable/disable the motors.

Set state to 0 to disable or 1 to enable.

Attention
Be VERY careful with this method! Your robot is likely to run across the room with the charger still attached.

◆ SetOdometry()

void PlayerCc::Position3dProxy::SetOdometry ( double  aX,
double  aY,
double  aZ,
double  aRoll,
double  aPitch,
double  aYaw 
)

Sets the odometry to the pose (x, y, z, roll, pitch, yaw).

Note that x, y, and z are in m and roll, pitch, and yaw are in radians.

◆ SetSpeed() [1/3]

void PlayerCc::Position3dProxy::SetSpeed ( double  aXSpeed,
double  aYSpeed,
double  aZSpeed,
double  aRollSpeed,
double  aPitchSpeed,
double  aYawSpeed 
)

Send a motor command for a planar robot.

Specify the forward, sideways, and angular speeds in m/s, m/s, m/s, rad/s, rad/s, and rad/s, respectively.

◆ SetSpeed() [2/3]

void PlayerCc::Position3dProxy::SetSpeed ( double  aXSpeed,
double  aYSpeed,
double  aZSpeed,
double  aYawSpeed 
)
inline

Send a motor command for a planar robot.

Specify the forward, sideways, and angular speeds in m/s, m/s, and rad/s, respectively.

◆ SetSpeed() [3/3]

void PlayerCc::Position3dProxy::SetSpeed ( double  aXSpeed,
double  aYawSpeed 
)
inline

Same as the previous SetSpeed(), but doesn't take the sideways speed (so use this one for non-holonomic robots).


The documentation for this class was generated from the following file: