The LaserProxy class is used to control a laser device.
More...
#include <playerc++.h>


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]. | |
| PlayerClient * | GetPlayerClient () 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_t * | mDevice |
| 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 > | |
| 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 | |
| PlayerClient * | mPc |
| playerc_client_t * | mClient |
| playerc_device_t * | mInfo |
| 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()
|
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()
|
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()
|
inline |
- Deprecated:
- Minimum range reading on the left side
◆ MinRight()
|
inline |
- Deprecated:
- Minimum range reading on the right side
◆ operator[]()
|
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:

Public Member Functions inherited from 