Home

Awesome

sick_ldmrs_laser

Build Status

This stack provides a ROS driver for the SICK LD-MRS series of laser scanners. The SICK LD-MRS is a multi-layer, multi-echo 3D laser scanner that is geared towards rough outdoor environments and also provides object tracking. The driver also works for the identical devices from IBEO.

Supported Hardware

This driver has been tested and confirmed working on the following products. If you have successfully used this driver with a LD-MRS scanner which is not on this list, please contact us so we can add it.

device nameidentical topart no.description
LD-MRS40000110450464 layer (standard)
LD-MRS400001S01IBEO LUX Standard10529604 layer (standard, includes object tracking)
LD-MRS400102 HD10471454 layer (heavy duty)
LD-MRS400102S01 HDIBEO LUX HD10529614 layer (heavy duty, includes object tracking)
LD-MRS800001S01IBEO LUX 8L10694088 layer (standard)

Installation

In the following instructions, replace <rosdistro> with the name of your ROS distro (e.g., indigo).

source /opt/ros/<rosdistro>/setup.bash
mkdir -p ~/ros_catkin_ws/src/
cd ~/ros_catkin_ws/src/
git clone https://github.com/SICKAG/libsick_ldmrs.git
git clone -b <rosdistro> https://github.com/SICKAG/sick_ldmrs_laser.git
cd ..
catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
source ~/ros_catkin_ws/install_isolated/setup.bash

Quick Start

roslaunch sick_ldmrs_tools sick_ldmrs_demo.launch
rosrun rviz rviz -d $(rospack find sick_ldmrs_tools)/config/sick_ldmrs.rviz
rosrun rqt_reconfigure rqt_reconfigure
rosrun rqt_robot_monitor rqt_robot_monitor

Package overview

ROS API

sick_ldmrs_node

Published Topics

cloud (sensor_msgs/PointCloud2)

objects (sick_ldmrs_msgs/ObjectArray)

diagnostics (diagnostic_msgs/DiagnosticArray)

Parameters

Dynamically Reconfigurable Parameters

See the dynamic_reconfigure package for details on dynamically reconfigurable parameters.

~frame_id (str, default: ldmrs)

~start_angle (double, default: 0.872664625997)

~end_angle (double, default: -1.0471975512)

~scan_frequency (int, default: 0)

~sync_angle_offset (double, default: 0.0)

~angular_resolution_type (int, default: 1)

~layer_range_reduction (int, default: 0)

~ignore_near_range (bool, default: False)

~sensitivity_control (bool, default: False)

~flexres_start_angle1 (double, default: 0.872664625997)

~flexres_start_angle2 (double, default: 0.610865238198)

~flexres_start_angle3 (double, default: 0.523598775598)

~flexres_start_angle4 (double, default: 0.349065850399)

~flexres_start_angle5 (double, default: 0.0)

~flexres_start_angle6 (double, default: -0.349065850399)

~flexres_start_angle7 (double, default: -0.523598775598)

~flexres_start_angle8 (double, default: -0.698131700798)

~flexres_resolution1 (int, default: 32)

~flexres_resolution2 (int, default: 16)

~flexres_resolution3 (int, default: 8)

~flexres_resolution4 (int, default: 4)

~flexres_resolution5 (int, default: 8)

~flexres_resolution6 (int, default: 16)

~flexres_resolution7 (int, default: 32)

~flexres_resolution8 (int, default: 16)

~contour_point_density (int, default: 2)

~min_object_age (int, default: 0)

~max_prediction_age (int, default: 0)

Not Dynamically Reconfigurable Parameters

~hostname (string, default: "192.168.0.1")

Notes on FlexRes

Please observe the following constraints when setting the FlexRes parameters (user-defined sectors of angular resolution):

The reason for the last two constraints is that the scanner increases the shooting frequency when increasing angular resolution. To avoid overheating the scanner and limit the amount of data to be processed, it's not possible to use 0.125° angular resolution for the full range.

Unused Scanner Parameters

The scanner provides a number of parameters that are not exposed via the ROS API. Specifically:


SICK Logo DFKI Logo