INTRODUCTION
Overview
Download and Install
Documentation
Publications

REPOSITORY
Libraries

DEVELOPER
Dev Guide
Dashboard

PEOPLE
Contributors
Users

SourceForge.net Logo
Project
Download
Mailing lists

 

         

Hokuyo URG laser scanner driver. More...

Namespaces

 hokuyo_aist
 Hokuyo laser scanner driver name space.
 

Classes

class  hokuyo_aist::BaseError
 General error class. More...
 
class  hokuyo_aist::LogicError
 Logic error class. More...
 
class  hokuyo_aist::RuntimeError
 Runtime error class. More...
 
class  hokuyo_aist::ReadError
 Read error class. More...
 
class  hokuyo_aist::WriteError
 Write error class. More...
 
class  hokuyo_aist::BaudrateError
 Baudrate error class. More...
 
class  hokuyo_aist::CloseError
 Close error class. More...
 
class  hokuyo_aist::NoDestinationError
 No destination error class. More...
 
class  hokuyo_aist::FirmwareError
 Bad firmware error class. More...
 
class  hokuyo_aist::ScipVersionError
 SCIP version error class. More...
 
class  hokuyo_aist::UnknownScipVersionError
 Unknown SCIP version error class. More...
 
class  hokuyo_aist::UnsupportedError
 Unsupported feature error class. More...
 
class  hokuyo_aist::ArgError
 Bad argument error class. More...
 
class  hokuyo_aist::NoDataError
 No data error class. More...
 
class  hokuyo_aist::NotSerialError
 Not a serial connection error class. More...
 
class  hokuyo_aist::IndexError
 Bad index error class. More...
 
class  hokuyo_aist::SetIPError
 Set IP error class. More...
 
class  hokuyo_aist::MotorSpeedError
 Invalid motor speed error class. More...
 
class  hokuyo_aist::StartStepError
 Bad start step error class. More...
 
class  hokuyo_aist::EndStepError
 Bad end step error class. More...
 
class  hokuyo_aist::ProtocolError
 Base protocol error. More...
 
class  hokuyo_aist::ChecksumError
 Bad checksum error. More...
 
class  hokuyo_aist::DataCountError
 Incorrect number of data sets read error. More...
 
class  hokuyo_aist::MisplacedLineFeedError
 Misplaced line feed error. More...
 
class  hokuyo_aist::UnknownLineError
 UnknownLine error. More...
 
class  hokuyo_aist::ParseError
 Parse error. More...
 
class  hokuyo_aist::MissingFirmSpecError
 Missing firmware specification error. More...
 
class  hokuyo_aist::ResponseError
 Bad response error - may be sent in response to any command. More...
 
class  hokuyo_aist::Scip1ResponseError
 Bad response error (SCIP1 version) More...
 
class  hokuyo_aist::CommandEchoError
 Command echo error. More...
 
class  hokuyo_aist::ParamEchoError
 Parameter echo error. More...
 
class  hokuyo_aist::InsufficientBytesError
 Insufficient bytes to calculate checksum error. More...
 
class  hokuyo_aist::LineLengthError
 Incorrect line length error. More...
 
class  hokuyo_aist::ScanData
 Structure to store data returned from the laser scanner. More...
 
struct  hokuyo_aist::IPAddr
 Structure to store an IP address. More...
 
class  hokuyo_aist::Sensor
 Hokuyo laser scanner class. More...
 
class  hokuyo_aist::SensorInfo
 Sensor information. More...
 

Enumerations

enum  hokuyo_aist::MultiechoMode
 Possible values of the multiecho mode setting. More...
 
enum  hokuyo_aist::LaserModel
 Laser models.
 
enum  hokuyo_aist::RotationDirection
 Sensor direction of rotation.
 

Detailed Description

Hokuyo URG laser scanner driver.

Utility to get the serial number of an Hokuyo laser scanner driver.

This library provides a driver for Hokuyo laser scanner devices using the SCIP protocol version 1 or

  1. It has been tested with the Hokuyo URG-04LX, UBG-04LX, UHG-08LX, UTM-30LX and UXM-30LX-E but it should work with any scanner that conforms to these protocol versions, including the URG-04LX-F01 and the URG-04LX-UG01 (Simple-URG).

For a full list of classes and functions, see hokuyo_aist.

If this library is compiled as static on Windows, you must define the HOKUYO_AIST_STATIC preprocessor variable when compiling code that includes hokuyo_aist.h.

Header file:

#include <hokuyo_aist/hokuyo_aist.h>
Example
See test/example.cpp
Style guidelines
  • Naming conventions:
    • Class methods start with a capital letter.
    • VariableNamesLikeThis.
    • Private member variables start with an underscore _like _this.
    • Avoid using #defines. #define'd values in all capitals when necessary.
  • Formatting:
    • 1 tab indentation at start of lines, spaces only for inside lines (e.g. before commands).
    • Function declarations on one line.
    • Space between function name and arguments.
  • C++ API.
    • Functionality provided through classes.
  • Units:
    • All internal units are in millimetres and radians.
Copyright
Geoffrey Biggs
Responsible Developer
Geoffrey Biggs
License
EPL1.0 (http://www.opensource.org/licenses/eclipse-1.0.txt)
Dependencies
Flexiport
Known issues
  • There has been a report that retrieving data over the serial connection of a URG-04LX is unusually slow (~1Hz).

This code is a stripped down version of the hokuyo_aist_example that just connects to the device, prints out its serial number, and closes the device.

It is useful to write udev scripts to create permanent symlinks to your lasers, in the case you have more than one laser. Acutally iy would be easier if the serial number were provided by hardware as a udev attribute, but it is not. So, this small soft must be called to find the serial number, in order to discriminate between various laser scanners.

The file 96-hokuyo.rules should be copied to /etc/udev/rules.d, and then the udev deamon should be restarted with:

sudo /etc/init.d/udev stop sudo /etc/init.d/udev start

Attention: use stop and start instead of only restart. It appears that the restart script does not reload the rules. You should see a message about reloading hardware drivers when the start command is issued.

Afterwards when a hokuyo is plugged, the device /dev/ttyACM* will be generated as before, but besides that a symbolic link called hokuyo_XXXXXX will be generated, where XXXXX is the laser serial number.

Responsible Developer
Luiz Mirisola
License
LGPL
Dependencies
Flexiport
Known issues
  • When the user plugs the hokuyo, the udev rules call this program, that will connect to the laser. This process is quite slow.
  • When the rule fires, there is no /dev/ttyACM* yet. Therefore, the N tag in the rule returns the name of a temporary device in order that the software may connect to the laser. This solves the chicken-egg problem.

Enumeration Type Documentation

Possible values of the multiecho mode setting.

The Tough-URG features multiecho detection capability. To use this, set the sensor to use any mode other than ME_OFF. The sensor can register up to three echos for a single reading. The multiecho mode determines how these are combined into a single value:

  • ME_FRONT: only the closest reading will be used.
  • ME_MIDDLE: the middle reading will be used, or the closest reading if there are only two echos.
  • ME_REAR: the furthest reading will be used.
  • ME_AVERAGE: the average of all two or three echos will be used. In all cases, if there is only one echo, then this setting has no effect.
 

Generated for GearBox by  doxygen 1.4.5