PlayerCc::LaserProxy Class Reference

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

#include <playerc++.h>

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

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. More...
 
void RequestConfigure ()
 Request the current laser configuration; it is read into the relevant class attributes. More...
 
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. More...
 
player_pose3d_t GetPose ()
 Accessor for the pose of the laser with respect to its parent object (e.g., a robot). More...
 
player_pose3d_t GetRobotPose ()
 Accessor for the pose of the laser's parent object (e.g., a robot). More...
 
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. More...
 
- 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_laser_tmDevice
 
double min_angle
 
double max_angle
 
double scan_res
 
double range_res
 
double scanning_frequency
 
bool intensity
 

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

◆ Configure()

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

◆ GetPose()

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 playerc_laser_t::pose, player_pose3d::px, player_pose3d::py, and player_pose3d::pyaw.

◆ GetRobotPose()

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, player_pose3d::pyaw, and playerc_laser_t::robot_pose.

◆ MinLeft()

double PlayerCc::LaserProxy::MinLeft ( ) const
inline
Deprecated:
Minimum range reading on the left side

◆ MinRight()

double PlayerCc::LaserProxy::MinRight ( ) const
inline
Deprecated:
Minimum range reading on the right side

◆ operator[]()

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

◆ RequestConfigure()

void PlayerCc::LaserProxy::RequestConfigure ( )

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

◆ RequestGeom()

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: