PlayerCc::LaserProxy Class Reference

The LaserProxy class is used to control a laser device. More...

#include <playerc++.h>

Inheritance diagram for PlayerCc::LaserProxy:
Collaboration diagram for PlayerCc::LaserProxy:

List of all members.


Detailed Description

The LaserProxy class is used to control a laser device.

The latest scan data is held in two arrays: ranges and intensity. The laser scan range, resolution and so on can be configured using the Configure() method.

Public Member Functions

 LaserProxy (PlayerClient *aPc, uint32_t aIndex=0)
 Constructor.
 ~LaserProxy ()
 Destructor.
uint32_t GetCount () const
 Number of points in scan.
double GetMaxRange () const
 Max range for the latest set of data (meters)
double GetScanRes () const
 Angular resolution of scan (radians)
double GetRangeRes () const
 Range resolution of scan (mm)
double GetScanningFrequency () const
 Scanning Frequency (Hz)
double GetMinAngle () const
 Scan range for the latest set of data (radians)
double GetMaxAngle () const
 Scan range for the latest set of data (radians)
double GetConfMinAngle () const
 Scan range from the laser config (call RequestConfigure first) (radians)
double GetConfMaxAngle () const
 Scan range from the laser config (call RequestConfigure first) (radians)
bool IntensityOn () const
 Whether or not reflectance (i.e., intensity) values are being returned.
player_point_2d_t GetPoint (uint32_t aIndex) const
 Scan data (Cartesian): x,y (m)
double GetRange (uint32_t aIndex) const
 get the range
double GetBearing (uint32_t aIndex) const
 get the bearing
int GetIntensity (uint32_t aIndex) const
 get the intensity
int GetID () const
 get the laser ID, call RequestId first
void Configure (double aMinAngle, double aMaxAngle, uint32_t aScanRes, uint32_t aRangeRes, bool aIntensity, double aScanningFrequency)
 Configure the laser scan pattern.
void RequestConfigure ()
 Request the current laser configuration; it is read into the relevant class attributes.
void RequestID ()
 Request the ID of the laser; read it with GetID()
void RequestGeom ()
 Get the laser's geometry; it is read into the relevant class attributes.
player_pose3d_t GetPose ()
 Accessor for the pose of the laser with respect to its parent object (e.g., a robot).
player_pose3d_t GetRobotPose ()
 Accessor for the pose of the laser's parent object (e.g., a robot).
player_bbox3d_t GetSize ()
 Accessor for the size (fill it in by calling RequestGeom)
double GetMinLeft () const
 Minimum range reading on the left side.
double GetMinRight () const
 Minimum range reading on the right side.
double MinLeft () const
double MinRight () const
double operator[] (uint32_t index) const
 Range access operator.

Private Member Functions

void Subscribe (uint32_t aIndex)
void Unsubscribe ()

Private Attributes

playerc_laser_tmDevice
double min_angle
double max_angle
double scan_res
double range_res
double scanning_frequency
bool intensity

Member Function Documentation

void PlayerCc::LaserProxy::Configure ( double  aMinAngle,
double  aMaxAngle,
uint32_t  aScanRes,
uint32_t  aRangeRes,
bool  aIntensity,
double  aScanningFrequency 
)

Configure the laser scan pattern.

Angles min_angle and max_angle are measured in radians. scan_res is measured in units of 0.01 degrees; valid values are: 25 (0.25 deg), 50 (0.5 deg) and 100 (1 deg). range_res is measured in mm; valid values are: 1, 10, 100. Set intensity to true to enable intensity measurements, or false to disable. scanning_frequency is measured in Hz

player_pose3d_t PlayerCc::LaserProxy::GetPose ( ) [inline]

Accessor for the pose of the laser with respect to its parent object (e.g., a robot).

Fill it in by calling RequestGeom.

References player_pose3d::px, player_pose3d::py, and player_pose3d::pyaw.

player_pose3d_t PlayerCc::LaserProxy::GetRobotPose ( ) [inline]

Accessor for the pose of the laser's parent object (e.g., a robot).

Filled in by some (but not all) laser data messages.

References player_pose3d::px, player_pose3d::py, and player_pose3d::pyaw.

double PlayerCc::LaserProxy::MinLeft ( ) const [inline]
Deprecated:
Minimum range reading on the left side
double PlayerCc::LaserProxy::MinRight ( ) const [inline]
Deprecated:
Minimum range reading on the right side
double PlayerCc::LaserProxy::operator[] ( uint32_t  index) const [inline]

Range access operator.

This operator provides an alternate way of access the range data. For example, given an LaserProxy named lp, the following expressions are equivalent: lp.GetRange(0) and lp[0].

void PlayerCc::LaserProxy::RequestConfigure ( )

Request the current laser configuration; it is read into the relevant class attributes.

void PlayerCc::LaserProxy::RequestGeom ( )

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


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