YARP  2.3.70.1
Yet Another Robot Platform
laserHokuyo Class Reference

#include <laserHokuyo/laserHokuyo.h>

+ Inheritance diagram for laserHokuyo:

Classes

struct  sensor_property_struct
 

Public Member Functions

 laserHokuyo (int period=20)
 
 ~laserHokuyo ()
 
virtual bool open (yarp::os::Searchable &config) override
 Open the DeviceDriver. More...
 
virtual bool close () override
 Close the DeviceDriver. More...
 
virtual bool threadInit () override
 Initialization method. More...
 
virtual void threadRelease () override
 Release method. More...
 
virtual void run () override
 Loop function. More...
 
virtual bool getRawData (yarp::sig::Vector &data) override
 Get the device measurements. More...
 
virtual bool getLaserMeasurement (std::vector< LaserMeasurementData > &data) override
 Get the device measurements. More...
 
virtual bool getDeviceStatus (Device_status &status) override
 get the device status More...
 
virtual bool getDeviceInfo (yarp::os::ConstString &device_info) override
 get the device hardware charactestics More...
 
virtual bool getDistanceRange (double &min, double &max) override
 get the device detection range More...
 
virtual bool setDistanceRange (double min, double max) override
 set the device detection range. More...
 
virtual bool getScanLimits (double &min, double &max) override
 get the scan angular range. More...
 
virtual bool setScanLimits (double min, double max) override
 set the scan angular range. More...
 
virtual bool getHorizontalResolution (double &step) override
 get the angular step between two measurments. More...
 
virtual bool setHorizontalResolution (double step) override
 get the angular step between two measurments (if available) More...
 
virtual bool getScanRate (double &rate) override
 get the scan rate (scans per seconds) More...
 
virtual bool setScanRate (double rate) override
 set the scan rate (scans per seconds) More...
 
- Public Member Functions inherited from yarp::os::RateThread
 RateThread (int period)
 Constructor. More...
 
virtual ~RateThread ()
 
bool start ()
 Call this to start the thread. More...
 
bool 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 ()
 Returns true when the thread is started, false otherwise. More...
 
bool isSuspended ()
 Returns true when the thread is suspended, false otherwise. More...
 
bool setRate (int period)
 Set the (new) rate of the thread. More...
 
double getRate ()
 Return the current rate 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 getEstPeriod ()
 Return estimated period since last reset. More...
 
void getEstPeriod (double &av, double &std)
 Return estimated period since last reset. More...
 
unsigned int getIterations ()
 Return the number of iterations performed since last reset. More...
 
double getEstUsed ()
 Return the estimated duration of the run() function since last reset. More...
 
void getEstUsed (double &av, double &std)
 Return estimated duration of the run() function since last reset. 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...
 
int setPriority (int priority, int policy=-1)
 Set the priority and scheduling policy of the thread, if the OS supports that. More...
 
int getPriority ()
 Query the current priority of the thread, if the OS supports that. More...
 
int getPolicy ()
 Query the current scheduling policy of the thread, if the OS supports that. More...
 
- Public Member Functions inherited from yarp::dev::IRangefinder2D
virtual ~IRangefinder2D ()
 
- Public Member Functions inherited from yarp::dev::DeviceDriver
virtual ~DeviceDriver ()
 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 Types

enum  Laser_mode_type {
  FAKE_MODE =2,
  GD_MODE =1,
  MD_MODE =0
}
 
enum  Error_code {
  HOKUYO_STATUS_ACQUISITION_COMPLETE =1,
  HOKUYO_STATUS_OK = 0,
  HOKUYO_STATUS_ERROR_BUSY = -1,
  HOKUYO_STATUS_ERROR_INVALID_COMMAND = -2,
  HOKUYO_STATUS_ERROR_INVALID_CHECKSUM = -3,
  HOKUYO_STATUS_ERROR_NOTHING_RECEIVED = -4,
  HOKUYO_STATUS_NOT_READY = -5
}
 

Protected Attributes

PolyDriver driver
 
ISerialDevicepSerial
 
yarp::os::Semaphore mutex
 
int cardId
 
int period
 
int sensorsNum
 
int start_position
 
int end_position
 
double min_angle
 
double max_angle
 
int error_codes
 
int internal_status
 
std::string info
 
Device_status device_status
 
Laser_mode_type laser_mode
 
struct laserHokuyo::sensor_property_struct sensor_properties
 
yarp::sig::Vector laser_data
 

Private Member Functions

int calculateCheckSum (const char *buffer, int size, char actual_sum)
 
long decodeDataValue (const char *data, int data_byte)
 
int readData (const Laser_mode_type laser_mode, const char *text_data, const int lext_data_len, int current_line, yarp::sig::Vector &values)
 

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

Definition at line 28 of file laserHokuyo.h.

Member Enumeration Documentation

◆ Error_code

enum laserHokuyo::Error_code
protected
Enumerator
HOKUYO_STATUS_ACQUISITION_COMPLETE 
HOKUYO_STATUS_OK 
HOKUYO_STATUS_ERROR_BUSY 
HOKUYO_STATUS_ERROR_INVALID_COMMAND 
HOKUYO_STATUS_ERROR_INVALID_CHECKSUM 
HOKUYO_STATUS_ERROR_NOTHING_RECEIVED 
HOKUYO_STATUS_NOT_READY 

Definition at line 49 of file laserHokuyo.h.

◆ Laser_mode_type

Enumerator
FAKE_MODE 
GD_MODE 
MD_MODE 

Definition at line 48 of file laserHokuyo.h.

Constructor & Destructor Documentation

◆ laserHokuyo()

laserHokuyo::laserHokuyo ( int  period = 20)
inline

Definition at line 77 of file laserHokuyo.h.

◆ ~laserHokuyo()

laserHokuyo::~laserHokuyo ( )
inline

Definition at line 81 of file laserHokuyo.h.

Member Function Documentation

◆ calculateCheckSum()

int laserHokuyo::calculateCheckSum ( const char *  buffer,
int  size,
char  actual_sum 
)
inlineprivate

Definition at line 395 of file laserHokuyo.cpp.

◆ close()

bool laserHokuyo::close ( void  )
overridevirtual

Close the DeviceDriver.

Returns
true/false on success/failure.

Reimplemented from yarp::dev::DeviceDriver.

Definition at line 261 of file laserHokuyo.cpp.

◆ decodeDataValue()

long laserHokuyo::decodeDataValue ( const char *  data,
int  data_byte 
)
inlineprivate

Definition at line 409 of file laserHokuyo.cpp.

◆ getDeviceInfo()

bool laserHokuyo::getDeviceInfo ( yarp::os::ConstString 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 596 of file laserHokuyo.cpp.

◆ getDeviceStatus()

bool laserHokuyo::getDeviceStatus ( Device_status status)
overridevirtual

get the device status

Parameters
statusthe device status
Returns
true/false.

Implements yarp::dev::IRangefinder2D.

Definition at line 377 of file laserHokuyo.cpp.

◆ getDistanceRange()

bool laserHokuyo::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 282 of file laserHokuyo.cpp.

◆ getHorizontalResolution()

bool laserHokuyo::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 310 of file laserHokuyo.cpp.

◆ getLaserMeasurement()

bool laserHokuyo::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 352 of file laserHokuyo.cpp.

◆ getRawData()

bool laserHokuyo::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 334 of file laserHokuyo.cpp.

◆ getScanLimits()

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

◆ getScanRate()

bool laserHokuyo::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 322 of file laserHokuyo.cpp.

◆ open()

bool laserHokuyo::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 32 of file laserHokuyo.cpp.

◆ readData()

int laserHokuyo::readData ( const Laser_mode_type  laser_mode,
const char *  text_data,
const int  lext_data_len,
int  current_line,
yarp::sig::Vector values 
)
private

Definition at line 421 of file laserHokuyo.cpp.

◆ run()

void laserHokuyo::run ( )
overridevirtual

Loop function.

This is the thread itself.

Implements yarp::os::RateThread.

Definition at line 513 of file laserHokuyo.cpp.

◆ setDistanceRange()

bool laserHokuyo::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 290 of file laserHokuyo.cpp.

◆ setHorizontalResolution()

bool laserHokuyo::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 316 of file laserHokuyo.cpp.

◆ setScanLimits()

bool laserHokuyo::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 laserHokuyo.cpp.

◆ setScanRate()

bool laserHokuyo::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 328 of file laserHokuyo.cpp.

◆ threadInit()

bool laserHokuyo::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::RateThread.

Definition at line 385 of file laserHokuyo.cpp.

◆ threadRelease()

void laserHokuyo::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::RateThread.

Definition at line 588 of file laserHokuyo.cpp.

Member Data Documentation

◆ cardId

int laserHokuyo::cardId
protected

Definition at line 36 of file laserHokuyo.h.

◆ device_status

Device_status laserHokuyo::device_status
protected

Definition at line 46 of file laserHokuyo.h.

◆ driver

PolyDriver laserHokuyo::driver
protected

Definition at line 31 of file laserHokuyo.h.

◆ end_position

int laserHokuyo::end_position
protected

Definition at line 40 of file laserHokuyo.h.

◆ error_codes

int laserHokuyo::error_codes
protected

Definition at line 43 of file laserHokuyo.h.

◆ info

std::string laserHokuyo::info
protected

Definition at line 45 of file laserHokuyo.h.

◆ internal_status

int laserHokuyo::internal_status
protected

Definition at line 44 of file laserHokuyo.h.

◆ laser_data

yarp::sig::Vector laserHokuyo::laser_data
protected

Definition at line 74 of file laserHokuyo.h.

◆ laser_mode

Laser_mode_type laserHokuyo::laser_mode
protected

Definition at line 60 of file laserHokuyo.h.

◆ max_angle

double laserHokuyo::max_angle
protected

Definition at line 42 of file laserHokuyo.h.

◆ min_angle

double laserHokuyo::min_angle
protected

Definition at line 41 of file laserHokuyo.h.

◆ mutex

yarp::os::Semaphore laserHokuyo::mutex
protected

Definition at line 34 of file laserHokuyo.h.

◆ period

int laserHokuyo::period
protected

Definition at line 37 of file laserHokuyo.h.

◆ pSerial

ISerialDevice* laserHokuyo::pSerial
protected

Definition at line 32 of file laserHokuyo.h.

◆ sensor_properties

struct laserHokuyo::sensor_property_struct laserHokuyo::sensor_properties
protected

◆ sensorsNum

int laserHokuyo::sensorsNum
protected

Definition at line 38 of file laserHokuyo.h.

◆ start_position

int laserHokuyo::start_position
protected

Definition at line 39 of file laserHokuyo.h.


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