RTC:HokuyoAIST is an RT Component for the OpenRTM-aist middleware. It provides a driver for Hokuyo laser range sensors. It wraps the HokuyoAIST library. It functions with all current models of laser scanner, including the URG-04LX (Classic-URG), UHG-08LX (Hi-URG), UTM-30LX (Top-URG) and UXM-30LX/UXM-30LX-E (Tough-URG).
The laser remains off until the component is activated. The laser is then turned on, unless the component is configured to be in pull mode. On start-up, the laser’s internal clock is calibrated to the computer’s clock, including the communications delay. Time stamps in the range data are calculated using this calibrated time, so no calibration is necessary by users of the data.
For a full list of classes and functions, see the API documentation.
RTC:HokuyoAIST uses the HokuyoAIST library for its functionality. At least version 3.0.0 is required. A compiled copy of this library is included in the installer for users of Windows.
RTC:HokuyoAIST requires the C++ version of OpenRTM-aist-1.0.0 or greater.
RTC:HokuyoAIST uses the CMake build system. You will need at least version 2.8 to be able to build the component.
RTC:HokuyoAIST works on Windows, Linux and Mac OS X. It uses the Flexiport library for communications with the laser. This must be installed. A compiled copy of this library is included in the installer for users of Windows.
Users of Windows can install the component using the binary installer. This will install the component and all its necessary dependencies. It is the recommended method of installation in Windows.
The component can be launched by double-clicking the rtc_hokuyoaist_standalone executable. The rtc_hokuyoaist library is available for loading into a manager, using the initialisation function rtc_init.
Follow these steps to install RTC:HokuyoAIST from source in any operating system:
Download the source, either from the repository or a source archive, and extract it somewhere:
tar -xvzf rtc_hokuyoaist-3.0.0.tar.gz
Change to the directory containing the extracted source:
cd rtc_hokuyoaist-3.0.0
Create a directory called build:
mkdir build
Change to that directory:
cd build
Run cmake or cmake-gui:
cmake ../
If no errors occurred, run make:
make
Finally, install the component. Ensure the necessary permissions to install into the chosen prefix are available:
make install
The install destination can be changed by executing ccmake and changing the variable CMAKE_INSTALL_PREFIX:
ccmake ../
The component is now ready for use. See the next section for instructions on configuring the component.
RTC:HokuyoAIST can be launched in stand-alone mode by executing the rtchokuyoaist_standalone executable (installed into ${prefix}/bin). Alternatively, librtchokuyoaist.so can be loaded into a manager, using the initialisation function rtc_init. This shared object can be found in ${prefix}/lib or ${prefix}/lib64.
The available configuration parameters are described below:
Parameter | Effect |
---|---|
port_opts | Change the options used to open the port to the laser. See flexiport for details. |
start_angle | The angle to begin scanning at, in radians. Set this to 0 to begin at the default for a full scan. |
end_angle | The angle to stop scanning at, in radians. Set this to 0 to end at the default for a full scan. |
cluster_count | The number of readings to group into each cluster. The default is 1. |
enable_intensity | When set to true, intensity data will also be sent. |
high_sensitivity | Some models feature a high sensitivity mode. Use this to enable it. |
pull_mode | Switch to pull mode. You will need to request each scan through the HokuyoAist service interface. |
new_data_mode | When set to true, new data will be requested each time. Otherwise, the most recent data will be sent. |
error_time | The minimum time between errors, in seconds. If errors occur closer together than this value, the component will transition to the error state. Otherwise, it will attempt to reset the laser and continue. |
x, y, z | The laser’s position in 3D space. |
roll, pitch, yaw | The laser’s orientation in 3D space. |
The ports provided by the component are described below:
Name | Type | Data type | Purpose |
---|---|---|---|
ranges | OutPort | RTC::RangeData | Range data scanned by the laser. |
intensities | OutPort | RTC::IntensityData | Intensity data scanned by the laser. Only available when intensity data is enabled. |
ranger | Service | Ranger HokuyoAist | Service port providing the generic RTC::Ranger interface. Service port providing the HokuyoAist interface, for specialised features not supported by the generic RTC::Ranger interface. |
The communications protocol used by the Hokuyo lasers reports error values within the range data using values less than 20. This component filters out these values and replaces them with 0m. You should consider all zero values as unknown when processing sensor data.
An example configuration file is provided in the ${prefix}/share/rtc_hokuyoaist/examples/conf/ directory.
This software is developed at the National Institute of Advanced Industrial Science and Technology. Approval number H23PRO-????. This software is licensed under the Lesser General Public License. See COPYING.LESSER.