Public Member Functions | Private Member Functions | Private Attributes | List of all members
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

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
 Accessor method.
 
double GetYPos () const
 Accessor method.
 
double GetZPos () const
 Accessor method.
 
double GetRoll () const
 Accessor method.
 
double GetPitch () const
 Accessor method.
 
double GetYaw () const
 Accessor method.
 
double GetXSpeed () const
 Accessor method.
 
double GetYSpeed () const
 Accessor method.
 
double GetZSpeed () const
 Accessor method.
 
double GetRollSpeed () const
 Accessor method.
 
double GetPitchSpeed () const
 Accessor method.
 
double GetYawSpeed () const
 Accessor method.
 
bool GetStall () const
 Accessor method.
 
- Public Member Functions inherited from PlayerCc::ClientProxy
bool IsValid () const
 Returns true if we have received any data from the device.
 
bool IsFresh () const
 Fresh is set to true on each new read. More...
 
void NotFresh ()
 This states that the data in a client is currently not Fresh.
 
std::string GetDriverName () const
 Returns the driver name. More...
 
double GetDataTime () const
 Returns the received timestamp [s].
 
double GetElapsedTime () const
 Returns the received timestamp [s].
 
PlayerClientGetPlayerClient () const
 Returns a pointer to the Player Client.
 
uint32_t GetIndex () const
 Returns device index.
 
uint32_t GetInterface () const
 Returns device interface.
 
std::string GetInterfaceStr () const
 Returns device interface.
 
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.
 
int SetBoolProp (char *aProperty, bool aValue)
 Set a boolean property.
 
int GetIntProp (char *aProperty, int32_t *aValue)
 Request an integer property.
 
int SetIntProp (char *aProperty, int32_t aValue)
 Set an integer property.
 
int GetDblProp (char *aProperty, double *aValue)
 Request a double property.
 
int SetDblProp (char *aProperty, double aValue)
 Set a double property.
 
int GetStrProp (char *aProperty, char **aValue)
 Request a string property.
 
int SetStrProp (char *aProperty, char *aValue)
 Set a string property.
 
template<typename T >
connection_t ConnectReadSignal (T aSubscriber)
 Connect a signal to this proxy For more information check out Signals & multithreading.
 
void DisconnectReadSignal (connection_t aSubscriber)
 Disconnect a signal to this proxy.
 

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
 

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.

Member Function Documentation

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

void PlayerCc::Position3dProxy::RequestGeom ( )

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

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

Select velocity control mode.

This is driver dependent.

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.
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.

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.

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.

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:

Last updated 12 September 2005 21:38:45