PlayerCc::Position2dProxy Class Reference

The Position2dProxy class is used to control a position2d device. More...

#include <playerc++.h>

Inheritance diagram for PlayerCc::Position2dProxy:
Collaboration diagram for PlayerCc::Position2dProxy:

List of all members.


Detailed Description

The Position2dProxy class is used to control a position2d device.

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

Public Member Functions

 Position2dProxy (PlayerClient *aPc, uint32_t aIndex=0)
 Constructor.
 ~Position2dProxy ()
 Destructor.
void SetSpeed (double aXSpeed, double aYSpeed, double aYawSpeed)
 Send a motor command for velocity control mode.
void SetSpeed (double aXSpeed, double aYawSpeed)
 Same as the previous SetSpeed(), but doesn't take the yspeed speed (so use this one for non-holonomic robots).
void SetSpeed (player_pose2d_t vel)
 Overloaded SetSpeed that takes player_pose2d_t as an argument.
void SetVelHead (double aXSpeed, double aYSpeed, double aYawHead)
 Send a motor command for velocity/heading control mode.
void SetVelHead (double aXSpeed, double aYawHead)
 Same as the previous SetVelHead(), but doesn't take the yspeed speed (so use this one for non-holonomic robots).
void GoTo (player_pose2d_t pos, player_pose2d_t vel)
 Send a motor command for position control mode.
void GoTo (player_pose2d_t pos)
 Same as the previous GoTo(), but doesn't take speed.
void GoTo (double aX, double aY, double aYaw)
 Same as the previous GoTo(), but only takes position arguments, no motion speed setting.
void SetCarlike (double aXSpeed, double aDriveAngle)
 Sets command for carlike robot.
void RequestGeom ()
 Get the device's geometry; it is read into the relevant class attributes.
player_pose3d_t GetOffset ()
 Accessor for the robot's pose with respect to its.
player_bbox3d_t GetSize ()
 Accessor for the size (fill it in by calling RequestGeom)
void SetMotorEnable (bool enable)
 Enable/disable the motors.
void ResetOdometry ()
 Reset odometry to (0,0,0).
void SetOdometry (double aX, double aY, double aYaw)
 Sets the odometry to the pose (x, y, yaw).
double GetXPos () const
 Get the device's X position.
double GetYPos () const
 Get the device's Y position.
double GetYaw () const
 Get the device's Yaw position (angle)
double GetXSpeed () const
 Get the device's X speed.
double GetYSpeed () const
 Get the device's Y speed.
double GetYawSpeed () const
 Get the device's angular (yaw) speed.
bool GetStall () const
 Is the device stalled?

Private Member Functions

void Subscribe (uint32_t aIndex)
void Unsubscribe ()

Private Attributes

playerc_position2d_tmDevice

Member Function Documentation

void PlayerCc::Position2dProxy::GoTo ( player_pose2d_t  pos,
player_pose2d_t  vel 
)

Send a motor command for position control mode.

Specify the desired pose of the robot as a player_pose_t. desired motion speed as a player_pose_t.

void PlayerCc::Position2dProxy::RequestGeom ( )

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

Call GetOffset() to access this data.

void PlayerCc::Position2dProxy::SetMotorEnable ( bool  enable)

Enable/disable the motors.

Set state to 0 to disable or 1 to enable. Be VERY careful with this method! Your robot is likely to run across the room with the charger still attached.

void PlayerCc::Position2dProxy::SetOdometry ( double  aX,
double  aY,
double  aYaw 
)

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

Note that x and y are in m and yaw is in radians.

void PlayerCc::Position2dProxy::SetSpeed ( double  aXSpeed,
double  aYawSpeed 
) [inline]

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

References SetSpeed().

Referenced by SetSpeed().

Here is the call graph for this function:

void PlayerCc::Position2dProxy::SetSpeed ( double  aXSpeed,
double  aYSpeed,
double  aYawSpeed 
)

Send a motor command for velocity control mode.

Specify the forward, sideways, and angular speeds in m/sec, m/sec, and radians/sec, respectively.

void PlayerCc::Position2dProxy::SetVelHead ( double  aXSpeed,
double  aYSpeed,
double  aYawHead 
)

Send a motor command for velocity/heading control mode.

Specify the forward and sideways velocity (m/sec), and angular heading (rads).

void PlayerCc::Position2dProxy::SetVelHead ( double  aXSpeed,
double  aYawHead 
) [inline]

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

References SetVelHead().

Referenced by SetVelHead().

Here is the call graph for this function:


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