YARP
Yet Another Robot Platform
LaserFromRosTopic Class Reference

laserFromRosTopic: Documentation to be added More...

#include <laserFromRosTopic/LaserFromRosTopic.h>

+ Inheritance diagram for LaserFromRosTopic:

Public Member Functions

 LaserFromRosTopic (double period=0.01)
 
 ~LaserFromRosTopic ()
 
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 setDistanceRange (double min, double max) override
 set the device detection range. More...
 
bool setScanLimits (double min, double max) override
 set the scan angular range. More...
 
bool setHorizontalResolution (double step) override
 get the angular step between two measurements (if available) More...
 
bool setScanRate (double rate) override
 set the scan rate (scans per seconds) More...
 
bool acquireDataFromHW () override final
 This method should be implemented by the user, and contain the logic to grab data from the hardware. More...
 
- Public Member Functions inherited from yarp::dev::Lidar2DDeviceBase
bool parseConfiguration (yarp::os::Searchable &config)
 
 Lidar2DDeviceBase ()
 
bool getRawData (yarp::sig::Vector &data, double *timestamp=nullptr) override
 Get the device measurements. More...
 
bool getLaserMeasurement (std::vector< LaserMeasurementData > &data, double *timestamp=nullptr) override
 Get the device measurements. More...
 
bool getDeviceStatus (Device_status &status) override
 get the device status More...
 
bool getDeviceInfo (std::string &device_info) override
 get the device hardware characteristics More...
 
bool getDistanceRange (double &min, double &max) override
 get the device detection range More...
 
bool getScanLimits (double &min, double &max) override
 get the scan angular range. More...
 
bool getHorizontalResolution (double &step) override
 get the angular step between two measurements. More...
 
bool getScanRate (double &rate) override
 get the scan rate (scans per seconds) More...
 
- Public Member Functions inherited from yarp::dev::IRangefinder2D
virtual ~IRangefinder2D ()
 
virtual bool getLaserMeasurement (std::vector< LaserMeasurementData > &data, double *timestamp=nullptr)=0
 Get the device measurements. More...
 
virtual bool getRawData (yarp::sig::Vector &data, double *timestamp=nullptr)=0
 Get the device measurements. More...
 
virtual bool getDeviceStatus (Device_status &status)=0
 get the device status More...
 
virtual bool getDistanceRange (double &min, double &max)=0
 get the device detection range More...
 
virtual bool setDistanceRange (double min, double max)=0
 set the device detection range. More...
 
virtual bool getScanLimits (double &min, double &max)=0
 get the scan angular range. More...
 
virtual bool setScanLimits (double min, double max)=0
 set the scan angular range. More...
 
virtual bool getHorizontalResolution (double &step)=0
 get the angular step between two measurements. More...
 
virtual bool setHorizontalResolution (double step)=0
 get the angular step between two measurements (if available) More...
 
virtual bool getScanRate (double &rate)=0
 get the scan rate (scans per seconds) More...
 
virtual bool setScanRate (double rate)=0
 set the scan rate (scans per seconds) More...
 
virtual bool getDeviceInfo (std::string &device_info)=0
 get the device hardware characteristics More...
 
- Public Member Functions inherited from yarp::os::PeriodicThread
 PeriodicThread (double period, ShouldUseSystemClock useSystemClock=ShouldUseSystemClock::No, PeriodicThreadClock clockAccuracy=PeriodicThreadClock::Relative)
 Constructor. More...
 
 PeriodicThread (double period, PeriodicThreadClock clockAccuracy)
 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::DeviceDriver
 DeviceDriver ()
 
 DeviceDriver (const DeviceDriver &other)=delete
 
 DeviceDriver (DeviceDriver &&other) noexcept=delete
 
DeviceDriveroperator= (const DeviceDriver &other)=delete
 
DeviceDriveroperator= (DeviceDriver &&other) noexcept=delete
 
 ~DeviceDriver () override
 
bool open (yarp::os::Searchable &config) override
 Open the DeviceDriver. More...
 
bool close () override
 Close the DeviceDriver. More...
 
virtual std::string id () const
 Return the id assigned to the PolyDriver. More...
 
virtual void setId (const std::string &id)
 Set the id for this device. 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 open (Searchable &config)
 Initialize the object. More...
 
virtual bool close ()
 Shut the object down. More...
 
virtual bool configure (Searchable &config)
 Change online parameters. More...
 

Protected Member Functions

void calculate (yarp::dev::LaserScan2D scan, yarp::sig::Matrix m)
 
- Protected Member Functions inherited from yarp::dev::Lidar2DDeviceBase
virtual bool updateLidarData ()
 This utility method calls in sequence: grabDataFromHW(), updateTimestamp and applyLimitsOnLaserData(). More...
 
virtual bool updateTimestamp ()
 By default, it automatically updates the internal timestamp with the yarp time. More...
 
virtual bool applyLimitsOnLaserData ()
 Apply the limits on the internally stored lidar measurements. More...
 
virtual bool acquireDataFromHW ()=0
 This method should be implemented by the user, and contain the logic to grab data from the hardware. More...
 
- Protected Member Functions inherited from yarp::os::PeriodicThread
virtual bool threadInit ()
 Initialization method. More...
 
virtual void threadRelease ()
 Release method. More...
 
virtual void run ()=0
 Loop function. More...
 
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...
 

Protected Attributes

bool m_option_override_limits
 
std::vector< std::string > m_port_names
 
yarp::os::Nodem_ros_node = nullptr
 
std::vector< InputPortProcessorm_input_ports
 
std::vector< yarp::os::Stampm_last_stamp
 
std::vector< yarp::dev::LaserScan2Dm_last_scan_data
 
yarp::dev::PolyDriver m_tc_driver
 
yarp::dev::IFrameTransformm_iTc = nullptr
 
std::vector< std::string > m_src_frame_id
 
std::string m_dst_frame_id
 
yarp::sig::Vector m_empty_laser_data
 
base_enum m_base_type
 
- Protected Attributes inherited from yarp::dev::Lidar2DDeviceBase
yarp::sig::Vector m_laser_data
 
yarp::os::Stamp m_timestamp
 
yarp::dev::IRangefinder2D::Device_status m_device_status
 
std::mutex m_mutex
 
std::string m_info
 
double m_scan_rate
 
size_t m_sensorsNum
 
double m_min_angle
 
double m_max_angle
 
double m_min_distance
 
double m_max_distance
 
double m_resolution
 
bool m_clip_max_enable
 
bool m_clip_min_enable
 
bool m_do_not_clip_and_allow_infinity_enable
 
std::vector< Range_tm_range_skip_vector
 

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
}
 

Detailed Description

laserFromRosTopic: Documentation to be added

Definition at line 71 of file LaserFromRosTopic.h.

Constructor & Destructor Documentation

◆ LaserFromRosTopic()

LaserFromRosTopic::LaserFromRosTopic ( double  period = 0.01)
inline

Definition at line 93 of file LaserFromRosTopic.h.

◆ ~LaserFromRosTopic()

LaserFromRosTopic::~LaserFromRosTopic ( )
inline

Definition at line 99 of file LaserFromRosTopic.h.

Member Function Documentation

◆ acquireDataFromHW()

bool LaserFromRosTopic::acquireDataFromHW ( )
finaloverridevirtual

This method should be implemented by the user, and contain the logic to grab data from the hardware.

Returns
true/false if the method is successful.

Implements yarp::dev::Lidar2DDeviceBase.

Definition at line 412 of file LaserFromRosTopic.cpp.

◆ calculate()

void LaserFromRosTopic::calculate ( yarp::dev::LaserScan2D  scan,
yarp::sig::Matrix  m 
)
protected

Definition at line 339 of file LaserFromRosTopic.cpp.

◆ close()

bool LaserFromRosTopic::close ( )
overridevirtual

Close the DeviceDriver.

Returns
true/false on success/failure.

Reimplemented from yarp::dev::DeviceDriver.

Definition at line 280 of file LaserFromRosTopic.cpp.

◆ open()

bool LaserFromRosTopic::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

@<-OK

Reimplemented from yarp::dev::DeviceDriver.

Definition at line 118 of file LaserFromRosTopic.cpp.

◆ run()

void LaserFromRosTopic::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 476 of file LaserFromRosTopic.cpp.

◆ setDistanceRange()

bool LaserFromRosTopic::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 296 of file LaserFromRosTopic.cpp.

◆ setHorizontalResolution()

bool LaserFromRosTopic::setHorizontalResolution ( double  step)
overridevirtual

get the angular step between two measurements (if available)

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

Implements yarp::dev::IRangefinder2D.

Definition at line 313 of file LaserFromRosTopic.cpp.

◆ setScanLimits()

bool LaserFromRosTopic::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 304 of file LaserFromRosTopic.cpp.

◆ setScanRate()

bool LaserFromRosTopic::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 320 of file LaserFromRosTopic.cpp.

◆ threadInit()

bool LaserFromRosTopic::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 329 of file LaserFromRosTopic.cpp.

◆ threadRelease()

void LaserFromRosTopic::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 483 of file LaserFromRosTopic.cpp.

Member Data Documentation

◆ m_base_type

base_enum LaserFromRosTopic::m_base_type
protected

Definition at line 88 of file LaserFromRosTopic.h.

◆ m_dst_frame_id

std::string LaserFromRosTopic::m_dst_frame_id
protected

Definition at line 86 of file LaserFromRosTopic.h.

◆ m_empty_laser_data

yarp::sig::Vector LaserFromRosTopic::m_empty_laser_data
protected

Definition at line 87 of file LaserFromRosTopic.h.

◆ m_input_ports

std::vector<InputPortProcessor> LaserFromRosTopic::m_input_ports
protected

Definition at line 79 of file LaserFromRosTopic.h.

◆ m_iTc

yarp::dev::IFrameTransform* LaserFromRosTopic::m_iTc = nullptr
protected

Definition at line 83 of file LaserFromRosTopic.h.

◆ m_last_scan_data

std::vector<yarp::dev::LaserScan2D> LaserFromRosTopic::m_last_scan_data
protected

Definition at line 81 of file LaserFromRosTopic.h.

◆ m_last_stamp

std::vector<yarp::os::Stamp> LaserFromRosTopic::m_last_stamp
protected

Definition at line 80 of file LaserFromRosTopic.h.

◆ m_option_override_limits

bool LaserFromRosTopic::m_option_override_limits
protected

Definition at line 76 of file LaserFromRosTopic.h.

◆ m_port_names

std::vector<std::string> LaserFromRosTopic::m_port_names
protected

Definition at line 77 of file LaserFromRosTopic.h.

◆ m_ros_node

yarp::os::Node* LaserFromRosTopic::m_ros_node = nullptr
protected

Definition at line 78 of file LaserFromRosTopic.h.

◆ m_src_frame_id

std::vector<std::string> LaserFromRosTopic::m_src_frame_id
protected

Definition at line 85 of file LaserFromRosTopic.h.

◆ m_tc_driver

yarp::dev::PolyDriver LaserFromRosTopic::m_tc_driver
protected

Definition at line 82 of file LaserFromRosTopic.h.


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