/scancontrol

Micro Epsilon scanCONTROL ROS Driver

Primary LanguageC++

micro_epsilon_scancontrol

CI License

Overview

ROS device driver for the scanCONTROL series of laser line scanners of Micro Epsilon using the scanCONTROL Linux C++ SDK 0.2. The driver allows to connect to a (specific) scanCONTROL device, configure the sensor using predefined settings or at runtime and publishes the sensor data as point clouds.

Author: D. Kroezen (GitHub username: dave992)
Affiliation: SAM|XL, TU Delft
Maintainer: D. Kroezen, d.kroezen@tudelft.nl

The micro_epsilon_scancontrol package has been tested under ROS Melodic and Ubuntu 18.04.

Installation

Dependencies

Building

To build from source, clone the latest version from this repository into your catkin workspace and compile the package using:

cd catkin_ws/src
git clone https://github.com/sam-xl/micro_epsilon_scancontrol.git
cd ../
catkin build

Usage

Run the main driver node with:

roslaunch micro_epsilon_scancontrol_driver load_driver.launch

Launch files

  • driver.launch: Launch a single scanCONTROL driver node and the configuration window.

Nodes

scancontrol_driver_node

The scancontrol_driver_node connects to the scanCONTROL device and allows control of most settings through the provided services. By default the driver only extracts the xyz data from the measurement buffer to create the point cloud message. For now the additional measurement data such as reflections are discarted.

Published Topics

  • /scancontrol_pointcloud (sensor_msgs/PointCloud2)

    The laser scan data filtered by the partial profile settings. The last point(s) may get lost, as a timestamp overwrites the last 4 bytes of the measurement buffer.

Services

Most servives are wrappers of the scanCONTROL API. For more information on the available settings and values see the documentation as part of the scanCONTROL Linux C++ SDK 0.2. The rqt plugin uses these services to change the settings during runtime.

Parameters

Device Settings

  • resolution (int)

    Define a prefered resolution setting for the laser scan. By default the highest available resolution is selected.

The following parameters are available to allow using multiple scanCONTROL devices.

  • serial (string)

    Define a prefered scanCONTROL device by its serial number. If not defined, the driver will try to connect to the first device it is able to find.

  • topic_name (string, default: scancontrol_pointcloud)

    Define a custom name for the topic to publish the point cloud data on.

  • frame_id (string, default: scancontrol)

    Define a custom name for the measurement frame in which the point clouds are published.

scancontrol_driver_nodelet

Encapsulates the same driver class as the scancontrol_driver_node, but instead allows for zero-copy data transfer. The Topics, services and paremeters are the same as described for the scancontrol_driver_node above.

Bugs & Feature Requests

Please report bugs and request features using the Issue Tracker.