YARP
Yet Another Robot Platform

rpLidar: Documentation to be added More...

#include <rpLidar/rpLidar.h>

+ Inheritance diagram for RpLidar:

Public Member Functions

 RpLidar (double period=0.01)
 
 ~RpLidar ()
 
bool open (yarp::os::Searchable &config) override
 Open the DeviceDriver. More...
 
bool close () override
 Close the DeviceDriver. More...
 
bool threadInit () override
 Initialization method. More...
 
void threadRelease () override
 Release method. More...
 
void run () override
 Loop function. More...
 
bool getRawData (yarp::sig::Vector &data) override
 Get the device measurements. More...
 
bool getLaserMeasurement (std::vector< LaserMeasurementData > &data) override
 Get the device measurements. More...
 
bool getDeviceStatus (Device_status &status) override
 
bool getDeviceInfo (std::string &device_info) override
 get the device hardware charactestics More...
 
bool getDistanceRange (double &min, double &max) override
 get the device detection range More...
 
bool setDistanceRange (double min, double max) override
 set the device detection range. More...
 
bool getScanLimits (double &min, double &max) override
 get the scan angular range. More...
 
bool setScanLimits (double min, double max) override
 set the scan angular range. More...
 
bool getHorizontalResolution (double &step) override
 get the angular step between two measurments. More...
 
bool setHorizontalResolution (double step) override
 get the angular step between two measurments (if available) More...
 
bool getScanRate (double &rate) override
 get the scan rate (scans per seconds) More...
 
bool setScanRate (double rate) override
 set the scan rate (scans per seconds) More...
 
- Public Member Functions inherited from yarp::os::PeriodicThread
 PeriodicThread (double period, ShouldUseSystemClock useSystemClock=ShouldUseSystemClock::No)
 Constructor. More...
 
virtual ~PeriodicThread ()
 
bool start ()
 Call this to start the thread. More...
 
void step ()
 Call this to "step" the thread rather than starting it. More...
 
void stop ()
 Call this to stop the thread, this call blocks until the thread is terminated (and releaseThread() called). More...
 
void askToStop ()
 Stop the thread. More...
 
bool isRunning () const
 Returns true when the thread is started, false otherwise. More...
 
bool isSuspended () const
 Returns true when the thread is suspended, false otherwise. More...
 
bool setPeriod (double period)
 Set the (new) period of the thread. More...
 
double getPeriod () const
 Return the current period of the thread. More...
 
void suspend ()
 Suspend the thread, the thread keeps running by doLoop is never executed. More...
 
void resume ()
 Resume the thread if previously suspended. More...
 
void resetStat ()
 Reset thread statistics. More...
 
double getEstimatedPeriod () const
 Return estimated period since last reset. More...
 
void getEstimatedPeriod (double &av, double &std) const
 Return estimated period since last reset. More...
 
unsigned int getIterations () const
 Return the number of iterations performed since last reset. More...
 
double getEstimatedUsed () const
 Return the estimated duration of the run() function since last reset. More...
 
void getEstimatedUsed (double &av, double &std) const
 Return estimated duration of the run() function since last reset. More...
 
int setPriority (int priority, int policy=-1)
 Set the priority and scheduling policy of the thread, if the OS supports that. More...
 
int getPriority () const
 Query the current priority of the thread, if the OS supports that. More...
 
int getPolicy () const
 Query the current scheduling policy of the thread, if the OS supports that. More...
 
- Public Member Functions inherited from yarp::dev::IRangefinder2D
virtual ~IRangefinder2D ()
 
virtual bool getDeviceStatus (Device_status &status)=0
 get the device status More...
 
- Public Member Functions inherited from yarp::dev::DeviceDriver
 ~DeviceDriver () override=default
 Destructor. More...
 
template<class T >
bool view (T *&x)
 Get an interface to the device driver. More...
 
virtual DeviceDrivergetImplementation ()
 Some drivers are bureaucrats, pointing at others. More...
 
- Public Member Functions inherited from yarp::os::IConfig
virtual ~IConfig ()
 Destructor. More...
 
virtual bool configure (Searchable &config)
 Change online parameters. More...
 

Protected Attributes

PolyDriver driver
 
ISerialDevicepSerial
 
std::mutex mutex
 
rpLidarCircularBufferbuffer
 
int sensorsNum
 
double min_angle
 
double max_angle
 
double min_distance
 
double max_distance
 
double resolution
 
bool clip_max_enable
 
bool clip_min_enable
 
bool do_not_clip_infinity_enable
 
std::vector< Range_trange_skip_vector
 
std::string info
 
Device_status device_status
 
yarp::sig::Vector laser_data
 

Additional Inherited Members

- Public Types inherited from yarp::dev::IRangefinder2D
enum  Device_status {
  DEVICE_OK_STANBY = 0,
  DEVICE_OK_IN_USE = 1,
  DEVICE_GENERAL_ERROR = 2,
  DEVICE_TIMEOUT = 3
}
 
- Protected Member Functions inherited from yarp::os::PeriodicThread
virtual void beforeStart ()
 Called just before a new thread starts. More...
 
virtual void afterStart (bool success)
 Called just after a new thread starts (or fails to start), this is executed by the same thread that calls start(). More...
 

Detailed Description

rpLidar: Documentation to be added

Definition at line 184 of file rpLidar.h.

Constructor & Destructor Documentation

◆ RpLidar()

RpLidar::RpLidar ( double  period = 0.01)
inline

Definition at line 211 of file rpLidar.h.

◆ ~RpLidar()

RpLidar::~RpLidar ( )
inline

Definition at line 228 of file rpLidar.h.

Member Function Documentation

◆ close()

bool RpLidar::close ( )
overridevirtual

Close the DeviceDriver.

Returns
true/false on success/failure.

Reimplemented from yarp::dev::DeviceDriver.

Definition at line 206 of file rpLidar.cpp.

◆ getDeviceInfo()

bool RpLidar::getDeviceInfo ( std::string &  device_info)
overridevirtual

get the device hardware charactestics

Parameters
device_infostring containing the device infos
Returns
true/false.

Implements yarp::dev::IRangefinder2D.

Definition at line 735 of file rpLidar.cpp.

◆ getDeviceStatus()

bool RpLidar::getDeviceStatus ( Device_status status)
override

Definition at line 310 of file rpLidar.cpp.

◆ getDistanceRange()

bool RpLidar::getDistanceRange ( double &  min,
double &  max 
)
overridevirtual

get the device detection range

Parameters
minthe minimum detection distance
maxthe maximum detection distance
Returns
true/false.

Implements yarp::dev::IRangefinder2D.

Definition at line 223 of file rpLidar.cpp.

◆ getHorizontalResolution()

bool RpLidar::getHorizontalResolution ( double &  step)
overridevirtual

get the angular step between two measurments.

Parameters
stepthe angular step between two measurments
Returns
true/false.

Implements yarp::dev::IRangefinder2D.

Definition at line 255 of file rpLidar.cpp.

◆ getLaserMeasurement()

bool RpLidar::getLaserMeasurement ( std::vector< LaserMeasurementData > &  data)
overridevirtual

Get the device measurements.

Parameters
dataa vector containing the measurement data, expressed in cartesian/polar format
Returns
true/false..

Implements yarp::dev::IRangefinder2D.

Definition at line 292 of file rpLidar.cpp.

◆ getRawData()

bool RpLidar::getRawData ( yarp::sig::Vector data)
overridevirtual

Get the device measurements.

Parameters
rangesthe vector containing the raw measurement data, as acquired by the device.
Returns
true/false.

Implements yarp::dev::IRangefinder2D.

Definition at line 284 of file rpLidar.cpp.

◆ getScanLimits()

bool RpLidar::getScanLimits ( double &  min,
double &  max 
)
overridevirtual

get the scan angular range.

Parameters
minstart angle of the scan
maxend angle of the scan
Returns
true/false.

Implements yarp::dev::IRangefinder2D.

Definition at line 239 of file rpLidar.cpp.

◆ getScanRate()

bool RpLidar::getScanRate ( double &  rate)
overridevirtual

get the scan rate (scans per seconds)

Parameters
ratethe scan rate
Returns
true/false.

Implements yarp::dev::IRangefinder2D.

Definition at line 269 of file rpLidar.cpp.

◆ open()

bool RpLidar::open ( yarp::os::Searchable config)
overridevirtual

Open the DeviceDriver.

Parameters
configis a list of parameters for the device. Which parameters are effective for your device can vary. See device invocation examples. If there is no example for your device, you can run the "yarpdev" program with the verbose flag set to probe what parameters the device is checking. If that fails too, you'll need to read the source code (please nag one of the yarp developers to add documentation for your device).
Returns
true/false upon success/failure

Reimplemented from yarp::dev::DeviceDriver.

Definition at line 62 of file rpLidar.cpp.

◆ run()

void RpLidar::run ( )
overridevirtual

Loop function.

This is the thread itself. The thread calls the run() function every <period> ms. At the end of each run, the thread will sleep the amounth of time required, taking into account the time spent inside the loop function. Example: requested period is 10ms, the run() function take 3ms to be executed, the thread will sleep for 7ms.

Note: after each run is completed, the thread will call a yield() in order to facilitate other threads to run.

Implements yarp::os::PeriodicThread.

Definition at line 491 of file rpLidar.cpp.

◆ setDistanceRange()

bool RpLidar::setDistanceRange ( double  min,
double  max 
)
overridevirtual

set the device detection range.

Invalid setting will be discarded.

Parameters
minthe minimum detection distance
maxthe maximum detection distance
Returns
true/false on success/failure.

Implements yarp::dev::IRangefinder2D.

Definition at line 231 of file rpLidar.cpp.

◆ setHorizontalResolution()

bool RpLidar::setHorizontalResolution ( double  step)
overridevirtual

get the angular step between two measurments (if available)

Parameters
stepthe angular step between two measurments
Returns
true/false on success/failure.

Implements yarp::dev::IRangefinder2D.

Definition at line 262 of file rpLidar.cpp.

◆ setScanLimits()

bool RpLidar::setScanLimits ( double  min,
double  max 
)
overridevirtual

set the scan angular range.

Parameters
minstart angle of the scan
maxend angle of the scan
Returns
true/false on success/failure.

Implements yarp::dev::IRangefinder2D.

Definition at line 247 of file rpLidar.cpp.

◆ setScanRate()

bool RpLidar::setScanRate ( double  rate)
overridevirtual

set the scan rate (scans per seconds)

Parameters
ratethe scan rate
Returns
true/false on success/failure.

Implements yarp::dev::IRangefinder2D.

Definition at line 276 of file rpLidar.cpp.

◆ threadInit()

bool RpLidar::threadInit ( )
overridevirtual

Initialization method.

The thread executes this function when it starts and before "run". This is a good place to perform initialization tasks that need to be done by the thread itself (device drivers initialization, memory allocation etc). If the function returns false the thread quits and never calls "run". The return value of threadInit() is notified to the class and passed as a parameter to afterStart(). Note that afterStart() is called by the same thread that is executing the "start" method.

Reimplemented from yarp::os::PeriodicThread.

Definition at line 317 of file rpLidar.cpp.

◆ threadRelease()

void RpLidar::threadRelease ( )
overridevirtual

Release method.

The thread executes this function once when it exits, after the last "run". This is a good place to release resources that were initialized in threadInit() (release memory, and device driver resources).

Reimplemented from yarp::os::PeriodicThread.

Definition at line 725 of file rpLidar.cpp.

Member Data Documentation

◆ buffer

rpLidarCircularBuffer* RpLidar::buffer
protected

Definition at line 191 of file rpLidar.h.

◆ clip_max_enable

bool RpLidar::clip_max_enable
protected

Definition at line 200 of file rpLidar.h.

◆ clip_min_enable

bool RpLidar::clip_min_enable
protected

Definition at line 201 of file rpLidar.h.

◆ device_status

Device_status RpLidar::device_status
protected

Definition at line 206 of file rpLidar.h.

◆ do_not_clip_infinity_enable

bool RpLidar::do_not_clip_infinity_enable
protected

Definition at line 202 of file rpLidar.h.

◆ driver

PolyDriver RpLidar::driver
protected

Definition at line 187 of file rpLidar.h.

◆ info

std::string RpLidar::info
protected

Definition at line 205 of file rpLidar.h.

◆ laser_data

yarp::sig::Vector RpLidar::laser_data
protected

Definition at line 208 of file rpLidar.h.

◆ max_angle

double RpLidar::max_angle
protected

Definition at line 196 of file rpLidar.h.

◆ max_distance

double RpLidar::max_distance
protected

Definition at line 198 of file rpLidar.h.

◆ min_angle

double RpLidar::min_angle
protected

Definition at line 195 of file rpLidar.h.

◆ min_distance

double RpLidar::min_distance
protected

Definition at line 197 of file rpLidar.h.

◆ mutex

std::mutex RpLidar::mutex
protected

Definition at line 190 of file rpLidar.h.

◆ pSerial

ISerialDevice* RpLidar::pSerial
protected

Definition at line 188 of file rpLidar.h.

◆ range_skip_vector

std::vector<Range_t> RpLidar::range_skip_vector
protected

Definition at line 203 of file rpLidar.h.

◆ resolution

double RpLidar::resolution
protected

Definition at line 199 of file rpLidar.h.

◆ sensorsNum

int RpLidar::sensorsNum
protected

Definition at line 193 of file rpLidar.h.


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