-
 

sick_scan package from sick_scan repo

sick_scan

Package Summary

Tags No category tags.
Version 1.10.1
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/SICKAG/sick_scan.git
VCS Type git
VCS Version master
Last Updated 2022-09-05
Dev Status DEVELOPED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A ROS driver for the SICK TiM and SICK MRS series of lidars. This package is based on the original sick_tim-repository of Martin Günther et al.

Additional Links

Maintainers

  • Michael Lehning

Authors

  • Michael Lehning
  • Jochen Sprickerhof
  • Martin Günther

IMPORTANT: This repository will not be maintained further. The sources have been completely transferred to the repository https://github.com/SICKAG/sick_scan_xd. The repository will be deleted after 12/31/2022 in 2023 without further notice.

sick_scan

This stack provides a ROS driver for the SICK lidar and radar sensors mentioned in the following list. The SICK MRS6124 is a multi-layer, multi-echo 3D laser scanner that is geared towards rough outdoor environments.

Remark

During the last years we have developed different repositories within the driver development with the projects sick_scan, sick_scan2 and sick_scan_base, with which many lidars and radars of our company can be used under ROS1, ROS2 and generically under C++. For harmonization, due to customer requests and to increase clarity, we decided to combine these developments in the future. As a result of this work, at the end of 2021 we have created the repository sick_scan_xd, where we will continue future developments. We recommend using this new repository for development so that you can continue to benefit from our improvements and additions to our drivers.

Table of Contents

Supported Hardware

This driver should work with all of the following products.

ROS Device Driver for SICK lidar and radar sensors - supported scanner types:

device name part no. description tested?
MRS6124 6065086 24 layer max. range: 200 m, ang. resol. 0.13 [deg] hor., 0.0625 [deg] ver. ✔ [stable]
    Scan-Rate: 10 Hz  
MRS1104 1081208 4 layer max. range: 64 m, ang. resol. 0.25 [deg] hor., 2.50 [deg] ver. ✔ [stable]
    Scan-Rate: 50 Hz, 4x12.5 Hz  
LMS1104 1092445 1 layer max. range: 64 m, ang. resol. 0.25 [deg] ✔ [stable]
    Scan-Rate: 150 Hz, 4x37.5 Hz  
TiM240 1104981 1 layer max. range: 10 m, ang. resol. 1.00 [deg], 240 [deg] ✔ [prototype]
    Scan-Rate: 14.5 Hz  
TiM433 prototype 1 layer range: 0.05 m … 15 m, ang. resol. 0.33 [deg], 240 [deg] ✔ [prototype]
    Scan-Rate: 15.0 Hz  
TiM443 prototype 1 layer range: 0.05 m … 15 m, ang. resol. 0.33 [deg], 240 [deg] ✔ [prototype]
    Scan-Rate: 15.0 Hz  
TiM551 1060445 1 layer max. range: 10 m, ang. resol. 1.00[deg] ✔ [stable]
    Scan-Rate: 15 Hz  
TiM561 1071419 1 layer max. range: 10 m, ang. resol. 0.33 [deg] ✔ [stable]
    Scan-Rate: 15 Hz  
TiM571 1079742 1 layer max. range: 25 m, ang. resol. 0.33 [deg] ✔ [stable]
    Scan-Rate: 15 Hz  
TiM771S 1105052 1 layer max. range: 25 m, ang. resol. 0.33 [deg] ✔ [stable]
    Scan-Rate: 15 Hz  
TiM781 1096807 1 layer max. range: 25 m, ang. resol. 0.33 [deg] ✔ [stable]
    Scan-Rate: 15 Hz  
TiM781S 1096363 1 layer max. range: 25 m, ang. resol. 0.33 [deg] ✔ [stable]
    Scan-Rate: 15 Hz  
LMS511-10100 PRO e.g. 1046135 1 layer max. range: 80 m, ang. resol. 0.167 [deg] ✔ [stable]
    Scan-Rate: 100 Hz  
LMS1xx-Family e.g. 1041114 1 layer max. range: 28 m, ang. resol. 0.25 [deg] ✔ [stable]
    Scan-Rate: 15 Hz  
NAV310 e.g. 1052928 1 layer max. range: 250 m, ang. resol. 0.125 [deg] ✔ [stable]
    Scan-Rate: 8 Hz  
NAV210+NAV245 e.g. 1074308 1 layer max. range: 100 m, ang. resol. 0.25 [deg] ✔ [stable]
    Scan-Rate: 25 Hz  
LMS4xxx-Family e.g. 1091423 1 layer max. range: 3 m, ang. resol. 0,0833 [deg] ✔ [stable]
    Scan-Rate: 600 Hz  
    Opening angle: +/- 50 [deg]  
RMS3xx 8021530 Radar Sensor ✔ [stable]

IMU Support

Devices of the MRS6xxx and MRS1xxx series are available with an optionally built-in IMU. Further information on the implementation and use of the experimental Imu support can be found on the Imu page.

Start Node

Use the following command to start ROS node:

  • For MRS6124:
roslaunch sick_scan sick_mrs_6xxx.launch

  • For MRS1104:
roslaunch sick_scan sick_mrs_1xxx.launch

  • For LMS1104:
roslaunch sick_scan sick_lms_1xxx.launch

  • For TiM240-prototype:
roslaunch sick_scan sick_tim_240.launch

  • For TiM4xx-family:
roslaunch sick_scan sick_tim_4xx.launch

  • For TiM5xx-family:
roslaunch sick_scan sick_tim_5xx.launch

  • For TiM7xx-family (no safety scanner):
roslaunch sick_scan sick_tim_7xx.launch

  • For TiM7xxS-family (safety scanner):
roslaunch sick_scan sick_tim_7xxS.launch

  • For LMS1xx-family:
roslaunch sick_scan sick_lms_1xx.launch

  • For LMS5xx-family:
roslaunch sick_scan sick_lms_5xx.launch

  • For LMS4xxx-family:
roslaunch sick_scan sick_lms_4xxx.launch

  • For NAV210:
roslaunch sick_scan sick_nav_2xx.launch

  • For NAV245:
roslaunch sick_scan sick_nav_2xx.launch

  • For NAV310:
roslaunch sick_scan sick_nav_3xx.launch

  • For RMS3xx-family:
roslaunch sick_scan sick_rms_3xx.launch (under
opment)

Starting Scanner with Specific Ip Address

To start the scanner with a specific IP address, the launch command can be used for most launch files as follows. The hostname is the ip-address of the scanner:

roslaunch <launch-file> hostname:=<ip-address>

e.g.

roslaunch sick_scan sick_tim_5xx.launch hostname:=192.168.0.71

Start Multiple Nodes

Take the launchfile “sick_tim_5xx_twin.launch” as an example. Rempping the scan and cloud topics is essential to distinguish the scanndata and provide TF information.

Parameter

The use of the parameters can be looked up in the launch files. This is also recommended as a starting point.

Common parameters

  • scanner_type Name of the used scanner. Usually this is also the name of the launch file. This entry is used to differentiate between the various scanner properties within the software code.

  • hostname IP-address of the scanner (default: 192.168.0.1)

  • port IP-port of the scanner (default: 2112)

  • min_ang Start angle in [rad]

  • max_ang End angle in [rad]

  • use_binary_protocol Switch between SOPAS Binary and SOPAS ASCII protocol

  • intensity Enable or disable transport of intensity values

  • intensity_resolution_16bit If true, the intensity values is transferred as 16 bit value. If false, as 8 bit value.

  • min_intensity If min_intensity > 0, all range values in a LaserScan message are set to infinity, if their intensity value is below min_intensity

  • cloud_topic Topic name of the published pointcloud2 data

  • frame_id Frame id used for the published data

Further useful parameters and features

  • timelimit Timelimit in [sec] for max. wait time of incoming sensor reply

  • sw_pll_only_publish If true, the internal Software PLL is fored to sync the scan generation time stamp to a system timestamp

  • Angle compensation: For highest angle accuracy the NAV-Lidar series supports an angle compensation mechanism.

  • Field monitoring: The LMS1xx, LMS5xx, TiM7xx and TiM7xxS families have extended settings for field monitoring.

Sopas Mode

This driver supports both COLA-B (binary) and COLA-A (ASCII) communication with the laser scanner. Binary mode is activated by default. Since this mode generates less network traffic. If the communication mode set in the scanner memory is different from that used by the driver, the scanner’s communication mode is changed. This requires a restart of the TCP-IP connection, which can extend the start time by up to 30 seconds. There are two ways to prevent this:

  1. [Recommended] Set the communication mode with the SOPAS ET software to binary and save this setting in the scanner’s EEPROM.
  2. Use the parameter “use_binary_protocol” to overwrite the default settings of the driver.
  3. Setting “use_binary_protocol” to “False” activates COLA-A and disables COLA-B (default)

Bugs and Feature Requests

  • Stability issues: Driver is experimental for the RMS3xx
  • Sopas protocol mapping: – All scanners: COLA-B (Binary)
  • Software should be further tested, documented and beautified
  • Setting of “topic” should not be hardcoded to /cloud in the future. This allows the simultaneous operation of several scanners. Each point cloud can then be converted using its own TF transformation.

Tools

Various tools exist in the repository to improve the operation of the scanners. It is also recommended to read the following section “Troubleshooting”. Overview of the tools:

  • Search for scanner in the network: Use the Python3 tool “sick_generic_device_finder.py” in the tools/sick_generic_device_finder directory. The tools will output the IP addresses of the connected scanners and some more information about the scanner.
    Call it with python3, i.e. python3 sick_generic_device_finder.py
  • Setting new IP address: With the help of the parameter “new_IP” a new IP address can be assigned when calling the node sick_scan. The launch file sick_new_ip.launch in the launch directory shows an example of how to use this parameter.
  • Converting of pointclouds to images: With the tool pcl_converter.cpp one can convert pointcloud2-data to image. That is especial convenient for 24-layers scanners like the MRS6124.
  • Setting up a brand new scanner: To set up a brand new scanner, it is recommended to use the two tools “sick_generic_device_finder.py” to find the scanner in the network and the launch file sick_new_ip.launch to set a new IP address. If further settings are to be saved that cannot be made via ROS parameters, we recommend using the Windows tool “Sopas ET” from SICK.
  • Unit tests: For a quick unit test after installation without the sensor hardware, a test server is provided to simulate a scanner. See emulator for further details.

Troubleshooting

  1. Check Scanner IP in the launch file.
  2. Check Ethernet connection to scanner with netcat e.g. nc -z -v -w5 $SCANNERIPADDRESS 2112 . For further details about setting up the correct ip settings see IP configuration
  3. View node startup output wether the IP connection could be established
  4. Check the scanner status using the LEDs on the device. The LED codes are described in the above mentioned operation manuals.
  5. Further testing and troubleshooting informations can found in the file test/readme_testplan.txt
  6. If you stop the scanner in your debugging IDE or by other hard interruption (like Ctrl-C), you must wait until 60 sec. before the scanner is up and running again. During this time the MRS6124 reconnects twice. If you do not wait this waiting time you could see one of the following messages:
    • TCP connection error
    • Error-Message 0x0d
  7. Amplitude values in rviz: If you see only one color in rviz try the following: Set the min/max-Range of intensity display in the range [0…200] and switch on the intensity flag in the launch file
  8. In case of network problems check your own ip address and the ip address of your laser scanner (by using SOPAS ET).
    • List of own IP-addresses: ifconfig grep “inet addr”
    • Try to ping scanner ip address (used in launch file)
  9. If the driver stops during init phase please stop the driver with ctrl-c and restart (could be caused due to protocol ASCII/Binary cola-dialect).

FAQ

Support

  • In case of technical support please open a new issue. For optimal support, add the following information to your request:
    1. Scanner model name,
    2. Ros node startup log,
    3. Sopas file of your scanner configuration. The instructions at http://sickusablog.com/create-and-download-a-sopas-file/ show how to create the Sopas file.
  • In case of application support please use https://supportportal.sick.com .
  • Issue Handling: Issues, for which no reply was received from the questioner for more than 7 days, are closed by us because we assume that the user has solved the problem.

Installation

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

From Binaries

The driver is released at longer intervals as a binary package and can therefore be installed via the package manager. To be able to use all new functions of the driver, the driver should be built from the sources published in this reposity:

sudo apt-get install ros-<rosdistro>-sick-scan

From Source

source /opt/ros/<rosdistro>/setup.bash
mkdir -p ~/ros_catkin_ws/src/
cd ~/ros_catkin_ws/src/
git clone git://github.com/SICKAG/sick_scan.git
cd ..
catkin_make install
source ~/ros_catkin_ws/install/setup.bash

Development branch

A “devel” branch is also maintained for the very latest developments and tests. Add-ons and support for brand new scanners are usually first tested in this branch and can be checked out as needed as follows:

source /opt/ros/<rosdistro>/setup.bash
mkdir -p ~/ros_catkin_ws/src/
cd ~/ros_catkin_ws/src/
git clone -b devel --single-branch git://github.com/SICKAG/sick_scan.git
cd ..
catkin_make install
source ~/ros_catkin_ws/install/setup.bash

Quick Start

roslaunch sick_scan sick_mrs6xxx.launch
rosrun rviz rviz
publish to point cloud

Testing

The sick_scan_test program was developed for testing the driver. This program checks elementary properties of the scanner. In a first implementation stage, the shots per scan are checked. The test program works according to the following principle:

  1. The parameters from an original launch file are read.
  2. These parameters are modified according to the instructions in the test control file.
  3. The modified parameters including all other parameter settings from the original launch file are copied to a test launch file.
  4. The test launch file is started.
  5. The parameters are checked.
  6. The result of the check is transferred to a result file. The basic procedure can be seen in the following figure: Alt text More information about the structure of the individual files in the test run can be found here:

Keywords

MRS1000 MRS1104 LMS1000 LMS1104 MRS6000 MRS6124 RMS3xx RMS320 ROS LiDAR SICK LiDAR SICK Laser SICK Laserscanner SICK Radar LMS1xx MRS1xxx LMS1xxx MRS6xxx TiM5xx TiM551 TiM561 TiM571 TiM781 TiM781S LMS5xx LMS511 NAV210 NAV245 NAV310

Creators

Michael Lehning

on behalf of SICK AG


Lehning Logo

CHANGELOG

Changelog for package sick_scan

1.12.1

  • Corrected angle shift parameter for LMS-4xxx

1.12.0

  • bugfix #158 (driver terminates)
  • modified SOPAS-startup sequence

1.11.0 (2021-07-13)

  • Added option min_intensity

1.10.1 (2021-03-18)

  • Update ipconfig.md
  • Update ipconfig.md
  • Update ipconfig.md
  • Contributors: Michael Lehning

1.7.8 (2020-09-02)

  • fixes #100
  • Update software_pll.md
  • software pll information added
  • Update angular_compensation.md
  • angle compensator
  • compensation example plot updated
  • angle compensation fixed for NAV2xx
  • sizt_t warning reduced, bugfix for result flag by changing ip address
  • network comp. to windows
  • pcl dependency modified
  • Contributors: Michael Lehning

1.6.0 (2020-05-14)

  • NAV 210+NAV245 support added code reformated
  • NAV310 added
  • Contributors: Michael Lehning

1.4.2 (2019-11-14)

  • fixed timing issues with MRS6124
  • added launch info for lms4xxx
  • added LMS 4xxx support
  • tim_7xxS dependencys included
  • Adding info for 7xxS-Launch-file
  • safety scanner added
  • added dependency for thrusty
  • added information about TIM 7xx launch
  • IMU Support, scan freq. and angle. resolution settings added
  • TiM7xx integrated
  • typical startup sequence
  • added lms1xx hires mode
  • added support for high ang. resolution for LMS 1xx
  • added pointcloud chopping
  • Issue resolve handling added
  • Pointcloud splitting prepared
  • added timing documentation
  • cartographer support improved
  • improved IMU support
  • Update google_cartographer.md
  • added Networktiming PLL
  • improved performance, start of tim7xx integration
  • Contributors: Michael Lehning

0.0.16 (2019-02-14)

  • Update README.md
  • Improved performance

0.0.15 (2019-02-05)

  • Update README.md
  • Support for Ubuntu Trusty [#001 <https://github.com/SICKAG/sick_scan/issues/001>]{.title-ref}
  • ip v4 parsing changed due to support of older linux version
  • Contributors: Michael Lehning, Unknown

0.0.14 (2019-01-31)

  • Merge branch 'devel'
  • ip address setting support, improved Debug MSG
  • Updated MRS6xxx launchfile
  • getting diagrams otimized for MRS6124
  • Warning option as comment added
  • compilation fixes for uninitialized variables and no return functions
  • writing ip address to eeprom prepared
  • improved imu support
  • added Python script to detect scanners
  • Added first implementation of imu support
  • IMU message handling prepared
  • added Ip arg name
  • Updated meshes
  • Sample file for launching and rviz-config files
  • Added lms1 and lms5 meshes and urdfs for them. The gazebo sensors might still need work
  • Lookup Table for multi echo fixed
  • Test tool integrated into CMakeLists.txt
  • Build receipt for sensor_alighment
  • Fix for startup procedure to enable automatic SOPAS ascii to SOPAS bin.
  • stopScanData introduced, init flag introduced, signal handler introduced change start process to state machine
  • radar_object_marker launch file updated
  • Radar Simulation optimized
  • Parsing of PreHeader fixed and simulation optimized Raw target added for simulatoin
  • RMS3xx documentation
  • Preheading Parsing optimized
  • Radar preheader parsing extended
  • Radar datagram explanation
  • Only first echo for MRS6124 as default to reduct data volume
  • radar visualization optimized
  • marker optimized
  • clean of of radar_object_marker
  • support hector slam
  • SLAM-Support documentation
  • hector slam support
  • initial radar documentation added
  • cleanup test program
  • test launch file added to show pointcloud2 AND scans for the MRS1xxx
  • timestamp of radar msg. improved, pointcloud2 debug messages for raw target and object targets added
  • launch file for rosbag testing added
  • Launch file for combination of laser scanner and radar added
  • PCL converter ignores missing intensity values
  • point cloud2image filter added, timestamping optimized
  • Device Identiier handling opimized for MRS1xxx and LMS1xxx
  • test files added
  • omitting of laserscan frameid fixed
  • debug messages removed from test script
  • generation of test launch file without starting the test can be controlled by using setting flag entry launch_only to true.
  • Switching of radar properties improved
  • Tracking method and output selection for radar
  • Test application for using min/max-interval checking and added more test parameter
  • support for rms3xx prepared
  • Copyright added
  • licensed under apache 2.0
  • file based simulation based on file name pattern added and evaluated.
  • patches for ubuntu
  • pointcloud2 prepared
  • Parsing and test driven development optimized
  • Simulation for objects added
  • support of radar simulation
  • Contributors: Dave Niewinski, Michael Lehning, Sai Kishor Kothakota, Unknown, unknown

0.0.13 (2018-05-02)

  • moved some cpp files to ensure Debian compatibility
  • Contributors: Unknown

0.0.12 (2018-04-25)

  • Added script to start all test sequentially
  • Added RSSi and Range Deviation Test to sick_scan_test
  • channel handling for 8 bit rssi values corrected
  • Defines for param keyword introduced
  • added ros param for rssi data size 16 or 8 Bit
  • added rssi resolution configswitch
  • support for LMS_5xx and LMS_1xx added
  • testprogramm can now handle comments;
  • Test instructions added
  • Generation of result file
  • inital test revisited
  • Initial version protocol tester
  • Tiny XML Parser added
  • added Sopas protocol param
  • Added Tools and driver folder, removed unnecessary libusb dep.
  • Added scanner_type to parameter set to allow the processing of parallel scanners
  • timeout handling improved
  • reading thread times after connection lost Timeout settings optimized
  • protocol switching supported
  • Protocol switching implemented
  • added timeout and binary/ascii detection
  • Support of LMS1104 debugged, skipping scan mgs. publish for MRS6124 (only pointcloud)
  • Adding MRS6124 link to supported scanner table Edited trouble shooting
  • Add documentation for network stack
  • scandataCfg for binary commands prepared
  • min_ang, max_ang adapted for MRS6xxx
  • LMS1000 support continue, Bug fix for parsing distance value MRS6xxx, mrs6xxx.launch modified
  • COLA_A and COLA_B prepared
  • Package handling optimized (for asynchron tcp data transfer)
  • Debug info added for receiving tcp packets
  • Support of MRS1104
  • Cleanup and supporting Tim571
  • errorhandler added
  • First version with 9413 bytes packet
  • tcp handling optimized
  • Queue introduced
  • colaa+colab libs included
  • Parsing of MRS6xxx-data packages integrated
  • Timeout incremented due to startup wait phase for MRS6xxx
* Sleep duration between inital commands changed from 2.0 to 0.2

Sleep of 10 Sec. introducted after start scandata to ensure that the scanner comes up.

0.0.11 (2018-01-24)

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/sick_new_ip.launch
    • !!!EXPERIMENTAL!!! !!! ONLY BINARY COMMAND SUPPORT !!! ********************************************** Lanch File for setting new ip address ********************************************** This is an experimental launch file to set a new ip address in the scanner. Maybe one should add a EEPROM-write command. But in our tests this was not necessary.
      • hostname [default: 192.168.0.1]
      • new_IP [default: 192.168.0.2]
  • launch/sick_mrs_1xxx_cartographer.launch
    • LAUNCH FILE
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
      • imu_frame_id [default: imu_link]
  • launch/sick_tim_5xx.launch
    • ********************************************** Launch File for TIM 5xx scanner ********************************************** Start and stop angle is given in [rad] Default min_angle is -135 degree. Default max_angle is +135 degree. Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/test_002_combi_live.launch
    • Example launch for testing live cooperation of radar and laserscanner
      • record_data [default: false]
  • launch/sick_mrs_6xxx_first_echo.launch
    • EXPERIMENTAL - brand new driver
      • hostname [default: 192.168.0.1]
  • launch/test_100_roscon_tim_twin.launch
    • Example launch of using two scanners in parallel In this example we use two TIM5xx-scanner with a mounting distance of 2 m. Do see the result in rviz we recommend the following settings: 1. Global Options->Fixed Frame: map 2. Pointcloud2->Topic: /cloud_1 3. Pointcloud2->Topic: /cloud_2 4. Modify the given ip addresses to your local setup. Remark: Add two Pointcloud2-Visualizer to the Displays-Windows. You can also add two Laserscan-Visualizer. Please set the topic for laserscan-Visualizer to /scan_1 and /scan_2 in this case.
  • launch/sick_tim_240.launch
    • ********************************************** Launch File for TIM 240 scanner ********************************************** Start and stop angle is given in [rad] Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • port [default: 2111]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/sick_rms_3xx_emul.launch
    • LAUNCH-FILE for RMS3xx - Radar device EXPERIMENTAL - brand new driver Only SOPAS-ASCII supported.
      • hostname [default: 192.168.0.1]
  • launch/sick_tim_7xxS.launch
    • ********************************************** Launch File for TIM 5xx scanner ********************************************** Start and stop angle is given in [rad] Default min_angle is -135 degree. Default max_angle is +135 degree. Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/sick_nav_3xx.launch
    • LAUNCH FILE FOR NAV310
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/t.launch
    • ***************************************************************************** * Launch Example File for SICK LMS 511 * *****************************************************************************
      • hostname [default: 192.168.0.151]
  • launch/sick_nav_3xx_ascii.launch
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/test_003_mrs1xxx_tf_show.launch
    • LAUNCH FILE
      • hostname [default: 192.168.0.1]
  • launch/pcl_converter.launch
    • LAUNCH FILE
  • launch/rviz/sick_twin_mrs6xxx_tim5xx.launch
    • Example launch of using two scanners in parallel In this example we use two TIM5xx-scanner with a mounting distance of 2 m. Do see the result in rviz we recommend the following settings: 1. Global Options->Fixed Frame: map 2. Pointcloud2->Topic: /cloud_1 3. Pointcloud2->Topic: /cloud_2 4. Modify the given ip addresses to your local setup. Remark: Add two Pointcloud2-Visualizer to the Displays-Windows. You can also add two Laserscan-Visualizer. Please set the topic for laserscan-Visualizer to /scan_1 and /scan_2 in this case.
  • launch/sick_rms_3xx.launch
    • LAUNCH-FILE for RMS3xx - Radar device EXPERIMENTAL - brand new driver Only SOPAS-ASCII supported.
      • hostname [default: 192.168.0.1]
      • emul_sensor [default: false]
  • launch/sick_lms_4xxx.launch
    • ********************************************** Launch File for LMS 4xxx scanner ********************************************** Start and stop angle is given in [rad] Default min_angle is -35 degree. Default max_angle is +35 degree. Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/sick_lms_4xxx_encoder.launch
    • ********************************************** Launch File for LMS 4xxx scanner ********************************************** Start and stop angle is given in [rad] Default min_angle is -35 degree. Default max_angle is +35 degree. Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/sick_mrs_1xxx.launch
    • LAUNCH FILE
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/test_001_pcl.launch
    • Example launch for testing pointcloud to image converter
  • launch/sick_tim_5xx_new_ip.launch
    • !!!EXPERIMENTAL!!! !!! ONLY BINARY COMMAND SUPPORT !!! ********************************************** Lanch File for setting new ip address ********************************************** This is an experimental launch file to set a new ip address in the scanner. Maybe one should add a EEPROM-write command. But in our tests this was not necessary.
      • hostname [default: 192.168.0.1]
      • new_IP [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/sick_mrs_6xxx_last_echo.launch
    • EXPERIMENTAL - brand new driver
      • hostname [default: 192.168.0.1]
  • launch/sick_tim_5xx_twin.launch
    • Example launch of using two scanners in parallel In this example we use two TIM5xx-scanner with a mounting distance of 2 m. Do see the result in rviz we recommend the following settings: 1. Global Options->Fixed Frame: map 2. Pointcloud2->Topic: /cloud_1 3. Pointcloud2->Topic: /cloud_2 4. Modify the given ip addresses to your local setup. Remark: Add two Pointcloud2-Visualizer to the Displays-Windows. You can also add two Laserscan-Visualizer. Please set the topic for laserscan-Visualizer to /scan_1 and /scan_2 in this case.
      • hostname1 [default: 192.168.0.1]
      • hostname2 [default: 192.168.0.2]
  • launch/sick_lms_1xxx.launch
    • FOR FUTURE USE. NOT SUPPORTED NOW. DO NOT USE IT.
      • hostname [default: 192.168.0.1]
  • launch/test_002_combi_live_traffic.launch
    • Example launch for testing live cooperation of radar and laserscanner
      • record_data [default: false]
  • launch/demo_roscon.launch
    • LAUNCH-FILE for RMS3xx - Radar device emulation and visualisation
      • emul_sensor [default: false]
      • rawtarget_sphere_radius [default: 1.0]
      • rawtarget_palette_name [default: viridis.pal]
      • rawtarget_palette_min_ampl [default: 30.0]
      • rawtarget_palette_max_ampl [default: 70.0]
      • rawtarget_arrow_scale [default: 1.0]
      • object_arrow_scale [default: 1.0]
      • hostname [default: 192.168.0.1]
      • rviz [default: true]
      • rviz_file [default: $(find sick_scan)/launch/rviz/demo_roscon.rviz]
  • launch/test_101_pcl.launch
    • Example launch for testing pointcloud to image converter
  • launch/sick_lms_1xx_encoder.launch
    • FOR FUTURE USE. NOT SUPPORTED NOW. DO NOT USE IT.
      • hostname [default: 192.168.0.1]
  • launch/radar_object_marker.launch
    • LAUNCH-FILE for RADAR OBJECT MARKER EXPERIMENTAL - brand new driver
  • launch/test_006_radar_emul_vis.launch
    • LAUNCH-FILE for RMS3xx - Radar device emulation and visualisation
      • emul_sensor [default: true]
      • rawtarget_sphere_radius [default: 1.0]
      • rawtarget_palette_name [default: viridis.pal]
      • rawtarget_palette_min_ampl [default: 30.0]
      • rawtarget_palette_max_ampl [default: 70.0]
      • rawtarget_arrow_scale [default: 1.0]
      • object_arrow_scale [default: 1.0]
      • hostname [default: 192.168.0.1]
      • rviz [default: true]
      • rviz_file [default: $(find sick_scan)/launch/rviz/radar.rviz]
  • launch/sick_mrs_6xxx.launch
    • EXPERIMENTAL - brand new driver
      • hostname [default: 192.168.0.1]
  • launch/sick_lms_5xx.launch
    • ***************************************************************************** * Launch Example File for SICK LMS 511 * *****************************************************************************
      • hostname [default: 192.168.0.1]
  • launch/sick_tim_5xx_ASCII.launch
    • ********************************************** Launch File for TIM 5xx scanner ********************************************** Start and stop angle is given in [rad] Default min_angle is -135 degree. Default max_angle is +135 degree. Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/sick_tim_240_bin.launch
    • ********************************************** Launch File for TIM 240 scanner ********************************************** Start and stop angle is given in [rad] Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • port [default: 2111]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/sick_nav_2xx.launch
      • hostname [default: 192.168.0.1]
  • launch/test_005_hector.launch
      • hostname [default: 192.168.0.1]
      • tf_map_scanmatch_transform_frame_name [default: /scanmatcher_frame]
      • base_frame [default: base_link]
      • odom_frame [default: base_link]
      • pub_map_odom_transform [default: true]
      • scan_subscriber_queue_size [default: 5]
      • scan_topic [default: scan]
      • map_size [default: 2048]
      • rviz [default: true]
      • rviz_file [default: $(find sick_scan)/launch/rviz/hector.rviz]
  • launch/sick_lms_5xx_encoder.launch
    • ***************************************************************************** * Launch Example File for SICK LMS 511 * *****************************************************************************
      • hostname [default: 192.168.0.1]
  • launch/sick_tim_4xx.launch
    • ********************************************** Launch File for TiM 4xx lidar family Family covers TiM 433 and TiM 443. ********************************************** Start and stop angle is given in [rad] Default min_angle is -120 degree (-2.09439510 rad). Default max_angle is +120 degree (+2.09439510 rad). Axis orientation is given in ROS standard notation. X . . . . Y .........+ (Z-Axis upwards to you - right hand rule) +............+ | | | Top View | | Device | | | +............+ . . . . . . Power Ethernet Cable Cacle Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/sick_tim_7xx.launch
    • ********************************************** Launch File for TIM 5xx scanner ********************************************** Start and stop angle is given in [rad] Default min_angle is -135 degree. Default max_angle is +135 degree. Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/laser_radar_combo.launch
    • LAUNCH-FILE for RMS3xx - Radar device EXPERIMENTAL - brand new driver Only SOPAS-ASCII supported.
  • launch/sick_lms_1xx.launch
    • FOR FUTURE USE. NOT SUPPORTED NOW. DO NOT USE IT.
      • hostname [default: 192.168.0.1]
  • launch/sick_mrs_6xxx_narrow.launch
    • EXPERIMENTAL - brand new driver
      • hostname [default: 192.168.0.1]
  • launch/test_004_mrs1xxx_slam.launch
    • LAUNCH FILE
      • hostname [default: 192.168.0.1]
  • test/emulator/launch/emulator_lms1xx.launch
      • scandatafiles [default: $(find sick_scan)/scandata/20210302_lms111.pcapng.json]
      • scandatatypes [default: sSN LMDscandata ,sSN LIDinputstate ,sSN LIDoutputstate ,sSN LFErec ]
  • test/emulator/launch/emulator_01_default.launch
      • scandatafiles [default: $(find sick_scan)/scandata/sopas_et_field_test_1_2_both_010.pcapng.json,$(find sick_scan)/scandata/20210113_tim871s_elephant.pcapng.json]
      • scandatatypes [default: sSN LMDscandata ,sSN LIDinputstate ,sSN LIDoutputstate ,sSN LFErec ]
  • test/emulator/launch/emulator_03_2nd_fieldset.launch
      • scandatafiles [default: $(find sick_scan)/scandata/lidinputstate_fieldset_01.json,$(find sick_scan)/scandata/20210125-tim781s-scandata.pcapng.json]
      • scandatatypes [default: sSN LMDscandata ,sSN LIDinputstate ,sSN LIDoutputstate ,sSN LFErec ]
  • test/emulator/launch/emulator_02_toggle_fieldsets.launch
      • scandatafiles [default: $(find sick_scan)/scandata/fieldset_trial_0001.pcapng.json]
      • scandatatypes [default: sSN LMDscandata ,sSN LIDinputstate ,sSN LIDoutputstate ,sSN LFErec ]
  • test/emulator/launch/emulator_04_fieldset_test.launch
      • scandatafiles [default: $(find sick_scan)/scandata/20210126-tim781s-test-fieldsets.pcapng.json]
      • scandatatypes [default: sSN LMDscandata ,sSN LIDinputstate ,sSN LIDoutputstate ,sSN LFErec ]
  • test/emulator/launch/emulator_lms5xx.launch
      • scandatafiles [default: $(find sick_scan)/scandata/20210301_lms511.pcapng.json,$(find sick_scan)/scandata/20210302_lms511.pcapng.json]
      • scandatatypes [default: sSN LMDscandata ,sSN LIDinputstate ,sSN LIDoutputstate ,sSN LFErec ]
  • test/sick_scan_test_mrs_1xxx.xml
  • test/sick_scan_test_tim_551_binary.xml
  • test/sick_scan_test_tim_561_ascii.xml
  • test/sick_scan_test_tim_5xx.xml
  • test/sick_scan_test_lms_1xxx_all_echos.xml
  • test/sick_scan_test_mrs_6xxx_all_echos.xml
  • test/sick_scan_test_lms_1xx.xml
  • test/sick_scan_test_mrs_6xxx.xml
  • test/sick_scan_test_tim_571_ascii.xml
  • test/sick_scan_test_tim_561_binary.xml
  • test/sick_scan_test_tim_571_binary.xml
  • test/sick_scan_test_lms_1xxx.xml
  • test/sick_scan_test_tim_551_ascii.xml
  • test/sick_scan_test_lms_5xx.xml

Services

Plugins

No plugins found.

Recent questions tagged sick_scan at Robotics Stack Exchange

sick_scan package from sick_scan repo

sick_scan

Package Summary

Tags No category tags.
Version 1.10.1
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/SICKAG/sick_scan.git
VCS Type git
VCS Version master
Last Updated 2022-09-05
Dev Status DEVELOPED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A ROS driver for the SICK TiM and SICK MRS series of lidars. This package is based on the original sick_tim-repository of Martin Günther et al.

Additional Links

Maintainers

  • Michael Lehning

Authors

  • Michael Lehning
  • Jochen Sprickerhof
  • Martin Günther

IMPORTANT: This repository will not be maintained further. The sources have been completely transferred to the repository https://github.com/SICKAG/sick_scan_xd. The repository will be deleted after 12/31/2022 in 2023 without further notice.

sick_scan

This stack provides a ROS driver for the SICK lidar and radar sensors mentioned in the following list. The SICK MRS6124 is a multi-layer, multi-echo 3D laser scanner that is geared towards rough outdoor environments.

Remark

During the last years we have developed different repositories within the driver development with the projects sick_scan, sick_scan2 and sick_scan_base, with which many lidars and radars of our company can be used under ROS1, ROS2 and generically under C++. For harmonization, due to customer requests and to increase clarity, we decided to combine these developments in the future. As a result of this work, at the end of 2021 we have created the repository sick_scan_xd, where we will continue future developments. We recommend using this new repository for development so that you can continue to benefit from our improvements and additions to our drivers.

Table of Contents

Supported Hardware

This driver should work with all of the following products.

ROS Device Driver for SICK lidar and radar sensors - supported scanner types:

device name part no. description tested?
MRS6124 6065086 24 layer max. range: 200 m, ang. resol. 0.13 [deg] hor., 0.0625 [deg] ver. ✔ [stable]
    Scan-Rate: 10 Hz  
MRS1104 1081208 4 layer max. range: 64 m, ang. resol. 0.25 [deg] hor., 2.50 [deg] ver. ✔ [stable]
    Scan-Rate: 50 Hz, 4x12.5 Hz  
LMS1104 1092445 1 layer max. range: 64 m, ang. resol. 0.25 [deg] ✔ [stable]
    Scan-Rate: 150 Hz, 4x37.5 Hz  
TiM240 1104981 1 layer max. range: 10 m, ang. resol. 1.00 [deg], 240 [deg] ✔ [prototype]
    Scan-Rate: 14.5 Hz  
TiM433 prototype 1 layer range: 0.05 m … 15 m, ang. resol. 0.33 [deg], 240 [deg] ✔ [prototype]
    Scan-Rate: 15.0 Hz  
TiM443 prototype 1 layer range: 0.05 m … 15 m, ang. resol. 0.33 [deg], 240 [deg] ✔ [prototype]
    Scan-Rate: 15.0 Hz  
TiM551 1060445 1 layer max. range: 10 m, ang. resol. 1.00[deg] ✔ [stable]
    Scan-Rate: 15 Hz  
TiM561 1071419 1 layer max. range: 10 m, ang. resol. 0.33 [deg] ✔ [stable]
    Scan-Rate: 15 Hz  
TiM571 1079742 1 layer max. range: 25 m, ang. resol. 0.33 [deg] ✔ [stable]
    Scan-Rate: 15 Hz  
TiM771S 1105052 1 layer max. range: 25 m, ang. resol. 0.33 [deg] ✔ [stable]
    Scan-Rate: 15 Hz  
TiM781 1096807 1 layer max. range: 25 m, ang. resol. 0.33 [deg] ✔ [stable]
    Scan-Rate: 15 Hz  
TiM781S 1096363 1 layer max. range: 25 m, ang. resol. 0.33 [deg] ✔ [stable]
    Scan-Rate: 15 Hz  
LMS511-10100 PRO e.g. 1046135 1 layer max. range: 80 m, ang. resol. 0.167 [deg] ✔ [stable]
    Scan-Rate: 100 Hz  
LMS1xx-Family e.g. 1041114 1 layer max. range: 28 m, ang. resol. 0.25 [deg] ✔ [stable]
    Scan-Rate: 15 Hz  
NAV310 e.g. 1052928 1 layer max. range: 250 m, ang. resol. 0.125 [deg] ✔ [stable]
    Scan-Rate: 8 Hz  
NAV210+NAV245 e.g. 1074308 1 layer max. range: 100 m, ang. resol. 0.25 [deg] ✔ [stable]
    Scan-Rate: 25 Hz  
LMS4xxx-Family e.g. 1091423 1 layer max. range: 3 m, ang. resol. 0,0833 [deg] ✔ [stable]
    Scan-Rate: 600 Hz  
    Opening angle: +/- 50 [deg]  
RMS3xx 8021530 Radar Sensor ✔ [stable]

IMU Support

Devices of the MRS6xxx and MRS1xxx series are available with an optionally built-in IMU. Further information on the implementation and use of the experimental Imu support can be found on the Imu page.

Start Node

Use the following command to start ROS node:

  • For MRS6124:
roslaunch sick_scan sick_mrs_6xxx.launch

  • For MRS1104:
roslaunch sick_scan sick_mrs_1xxx.launch

  • For LMS1104:
roslaunch sick_scan sick_lms_1xxx.launch

  • For TiM240-prototype:
roslaunch sick_scan sick_tim_240.launch

  • For TiM4xx-family:
roslaunch sick_scan sick_tim_4xx.launch

  • For TiM5xx-family:
roslaunch sick_scan sick_tim_5xx.launch

  • For TiM7xx-family (no safety scanner):
roslaunch sick_scan sick_tim_7xx.launch

  • For TiM7xxS-family (safety scanner):
roslaunch sick_scan sick_tim_7xxS.launch

  • For LMS1xx-family:
roslaunch sick_scan sick_lms_1xx.launch

  • For LMS5xx-family:
roslaunch sick_scan sick_lms_5xx.launch

  • For LMS4xxx-family:
roslaunch sick_scan sick_lms_4xxx.launch

  • For NAV210:
roslaunch sick_scan sick_nav_2xx.launch

  • For NAV245:
roslaunch sick_scan sick_nav_2xx.launch

  • For NAV310:
roslaunch sick_scan sick_nav_3xx.launch

  • For RMS3xx-family:
roslaunch sick_scan sick_rms_3xx.launch (under
opment)

Starting Scanner with Specific Ip Address

To start the scanner with a specific IP address, the launch command can be used for most launch files as follows. The hostname is the ip-address of the scanner:

roslaunch <launch-file> hostname:=<ip-address>

e.g.

roslaunch sick_scan sick_tim_5xx.launch hostname:=192.168.0.71

Start Multiple Nodes

Take the launchfile “sick_tim_5xx_twin.launch” as an example. Rempping the scan and cloud topics is essential to distinguish the scanndata and provide TF information.

Parameter

The use of the parameters can be looked up in the launch files. This is also recommended as a starting point.

Common parameters

  • scanner_type Name of the used scanner. Usually this is also the name of the launch file. This entry is used to differentiate between the various scanner properties within the software code.

  • hostname IP-address of the scanner (default: 192.168.0.1)

  • port IP-port of the scanner (default: 2112)

  • min_ang Start angle in [rad]

  • max_ang End angle in [rad]

  • use_binary_protocol Switch between SOPAS Binary and SOPAS ASCII protocol

  • intensity Enable or disable transport of intensity values

  • intensity_resolution_16bit If true, the intensity values is transferred as 16 bit value. If false, as 8 bit value.

  • min_intensity If min_intensity > 0, all range values in a LaserScan message are set to infinity, if their intensity value is below min_intensity

  • cloud_topic Topic name of the published pointcloud2 data

  • frame_id Frame id used for the published data

Further useful parameters and features

  • timelimit Timelimit in [sec] for max. wait time of incoming sensor reply

  • sw_pll_only_publish If true, the internal Software PLL is fored to sync the scan generation time stamp to a system timestamp

  • Angle compensation: For highest angle accuracy the NAV-Lidar series supports an angle compensation mechanism.

  • Field monitoring: The LMS1xx, LMS5xx, TiM7xx and TiM7xxS families have extended settings for field monitoring.

Sopas Mode

This driver supports both COLA-B (binary) and COLA-A (ASCII) communication with the laser scanner. Binary mode is activated by default. Since this mode generates less network traffic. If the communication mode set in the scanner memory is different from that used by the driver, the scanner’s communication mode is changed. This requires a restart of the TCP-IP connection, which can extend the start time by up to 30 seconds. There are two ways to prevent this:

  1. [Recommended] Set the communication mode with the SOPAS ET software to binary and save this setting in the scanner’s EEPROM.
  2. Use the parameter “use_binary_protocol” to overwrite the default settings of the driver.
  3. Setting “use_binary_protocol” to “False” activates COLA-A and disables COLA-B (default)

Bugs and Feature Requests

  • Stability issues: Driver is experimental for the RMS3xx
  • Sopas protocol mapping: – All scanners: COLA-B (Binary)
  • Software should be further tested, documented and beautified
  • Setting of “topic” should not be hardcoded to /cloud in the future. This allows the simultaneous operation of several scanners. Each point cloud can then be converted using its own TF transformation.

Tools

Various tools exist in the repository to improve the operation of the scanners. It is also recommended to read the following section “Troubleshooting”. Overview of the tools:

  • Search for scanner in the network: Use the Python3 tool “sick_generic_device_finder.py” in the tools/sick_generic_device_finder directory. The tools will output the IP addresses of the connected scanners and some more information about the scanner.
    Call it with python3, i.e. python3 sick_generic_device_finder.py
  • Setting new IP address: With the help of the parameter “new_IP” a new IP address can be assigned when calling the node sick_scan. The launch file sick_new_ip.launch in the launch directory shows an example of how to use this parameter.
  • Converting of pointclouds to images: With the tool pcl_converter.cpp one can convert pointcloud2-data to image. That is especial convenient for 24-layers scanners like the MRS6124.
  • Setting up a brand new scanner: To set up a brand new scanner, it is recommended to use the two tools “sick_generic_device_finder.py” to find the scanner in the network and the launch file sick_new_ip.launch to set a new IP address. If further settings are to be saved that cannot be made via ROS parameters, we recommend using the Windows tool “Sopas ET” from SICK.
  • Unit tests: For a quick unit test after installation without the sensor hardware, a test server is provided to simulate a scanner. See emulator for further details.

Troubleshooting

  1. Check Scanner IP in the launch file.
  2. Check Ethernet connection to scanner with netcat e.g. nc -z -v -w5 $SCANNERIPADDRESS 2112 . For further details about setting up the correct ip settings see IP configuration
  3. View node startup output wether the IP connection could be established
  4. Check the scanner status using the LEDs on the device. The LED codes are described in the above mentioned operation manuals.
  5. Further testing and troubleshooting informations can found in the file test/readme_testplan.txt
  6. If you stop the scanner in your debugging IDE or by other hard interruption (like Ctrl-C), you must wait until 60 sec. before the scanner is up and running again. During this time the MRS6124 reconnects twice. If you do not wait this waiting time you could see one of the following messages:
    • TCP connection error
    • Error-Message 0x0d
  7. Amplitude values in rviz: If you see only one color in rviz try the following: Set the min/max-Range of intensity display in the range [0…200] and switch on the intensity flag in the launch file
  8. In case of network problems check your own ip address and the ip address of your laser scanner (by using SOPAS ET).
    • List of own IP-addresses: ifconfig grep “inet addr”
    • Try to ping scanner ip address (used in launch file)
  9. If the driver stops during init phase please stop the driver with ctrl-c and restart (could be caused due to protocol ASCII/Binary cola-dialect).

FAQ

Support

  • In case of technical support please open a new issue. For optimal support, add the following information to your request:
    1. Scanner model name,
    2. Ros node startup log,
    3. Sopas file of your scanner configuration. The instructions at http://sickusablog.com/create-and-download-a-sopas-file/ show how to create the Sopas file.
  • In case of application support please use https://supportportal.sick.com .
  • Issue Handling: Issues, for which no reply was received from the questioner for more than 7 days, are closed by us because we assume that the user has solved the problem.

Installation

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

From Binaries

The driver is released at longer intervals as a binary package and can therefore be installed via the package manager. To be able to use all new functions of the driver, the driver should be built from the sources published in this reposity:

sudo apt-get install ros-<rosdistro>-sick-scan

From Source

source /opt/ros/<rosdistro>/setup.bash
mkdir -p ~/ros_catkin_ws/src/
cd ~/ros_catkin_ws/src/
git clone git://github.com/SICKAG/sick_scan.git
cd ..
catkin_make install
source ~/ros_catkin_ws/install/setup.bash

Development branch

A “devel” branch is also maintained for the very latest developments and tests. Add-ons and support for brand new scanners are usually first tested in this branch and can be checked out as needed as follows:

source /opt/ros/<rosdistro>/setup.bash
mkdir -p ~/ros_catkin_ws/src/
cd ~/ros_catkin_ws/src/
git clone -b devel --single-branch git://github.com/SICKAG/sick_scan.git
cd ..
catkin_make install
source ~/ros_catkin_ws/install/setup.bash

Quick Start

roslaunch sick_scan sick_mrs6xxx.launch
rosrun rviz rviz
publish to point cloud

Testing

The sick_scan_test program was developed for testing the driver. This program checks elementary properties of the scanner. In a first implementation stage, the shots per scan are checked. The test program works according to the following principle:

  1. The parameters from an original launch file are read.
  2. These parameters are modified according to the instructions in the test control file.
  3. The modified parameters including all other parameter settings from the original launch file are copied to a test launch file.
  4. The test launch file is started.
  5. The parameters are checked.
  6. The result of the check is transferred to a result file. The basic procedure can be seen in the following figure: Alt text More information about the structure of the individual files in the test run can be found here:

Keywords

MRS1000 MRS1104 LMS1000 LMS1104 MRS6000 MRS6124 RMS3xx RMS320 ROS LiDAR SICK LiDAR SICK Laser SICK Laserscanner SICK Radar LMS1xx MRS1xxx LMS1xxx MRS6xxx TiM5xx TiM551 TiM561 TiM571 TiM781 TiM781S LMS5xx LMS511 NAV210 NAV245 NAV310

Creators

Michael Lehning

on behalf of SICK AG


Lehning Logo

CHANGELOG

Changelog for package sick_scan

1.12.1

  • Corrected angle shift parameter for LMS-4xxx

1.12.0

  • bugfix #158 (driver terminates)
  • modified SOPAS-startup sequence

1.11.0 (2021-07-13)

  • Added option min_intensity

1.10.1 (2021-03-18)

  • Update ipconfig.md
  • Update ipconfig.md
  • Update ipconfig.md
  • Contributors: Michael Lehning

1.7.8 (2020-09-02)

  • fixes #100
  • Update software_pll.md
  • software pll information added
  • Update angular_compensation.md
  • angle compensator
  • compensation example plot updated
  • angle compensation fixed for NAV2xx
  • sizt_t warning reduced, bugfix for result flag by changing ip address
  • network comp. to windows
  • pcl dependency modified
  • Contributors: Michael Lehning

1.6.0 (2020-05-14)

  • NAV 210+NAV245 support added code reformated
  • NAV310 added
  • Contributors: Michael Lehning

1.4.2 (2019-11-14)

  • fixed timing issues with MRS6124
  • added launch info for lms4xxx
  • added LMS 4xxx support
  • tim_7xxS dependencys included
  • Adding info for 7xxS-Launch-file
  • safety scanner added
  • added dependency for thrusty
  • added information about TIM 7xx launch
  • IMU Support, scan freq. and angle. resolution settings added
  • TiM7xx integrated
  • typical startup sequence
  • added lms1xx hires mode
  • added support for high ang. resolution for LMS 1xx
  • added pointcloud chopping
  • Issue resolve handling added
  • Pointcloud splitting prepared
  • added timing documentation
  • cartographer support improved
  • improved IMU support
  • Update google_cartographer.md
  • added Networktiming PLL
  • improved performance, start of tim7xx integration
  • Contributors: Michael Lehning

0.0.16 (2019-02-14)

  • Update README.md
  • Improved performance

0.0.15 (2019-02-05)

  • Update README.md
  • Support for Ubuntu Trusty [#001 <https://github.com/SICKAG/sick_scan/issues/001>]{.title-ref}
  • ip v4 parsing changed due to support of older linux version
  • Contributors: Michael Lehning, Unknown

0.0.14 (2019-01-31)

  • Merge branch 'devel'
  • ip address setting support, improved Debug MSG
  • Updated MRS6xxx launchfile
  • getting diagrams otimized for MRS6124
  • Warning option as comment added
  • compilation fixes for uninitialized variables and no return functions
  • writing ip address to eeprom prepared
  • improved imu support
  • added Python script to detect scanners
  • Added first implementation of imu support
  • IMU message handling prepared
  • added Ip arg name
  • Updated meshes
  • Sample file for launching and rviz-config files
  • Added lms1 and lms5 meshes and urdfs for them. The gazebo sensors might still need work
  • Lookup Table for multi echo fixed
  • Test tool integrated into CMakeLists.txt
  • Build receipt for sensor_alighment
  • Fix for startup procedure to enable automatic SOPAS ascii to SOPAS bin.
  • stopScanData introduced, init flag introduced, signal handler introduced change start process to state machine
  • radar_object_marker launch file updated
  • Radar Simulation optimized
  • Parsing of PreHeader fixed and simulation optimized Raw target added for simulatoin
  • RMS3xx documentation
  • Preheading Parsing optimized
  • Radar preheader parsing extended
  • Radar datagram explanation
  • Only first echo for MRS6124 as default to reduct data volume
  • radar visualization optimized
  • marker optimized
  • clean of of radar_object_marker
  • support hector slam
  • SLAM-Support documentation
  • hector slam support
  • initial radar documentation added
  • cleanup test program
  • test launch file added to show pointcloud2 AND scans for the MRS1xxx
  • timestamp of radar msg. improved, pointcloud2 debug messages for raw target and object targets added
  • launch file for rosbag testing added
  • Launch file for combination of laser scanner and radar added
  • PCL converter ignores missing intensity values
  • point cloud2image filter added, timestamping optimized
  • Device Identiier handling opimized for MRS1xxx and LMS1xxx
  • test files added
  • omitting of laserscan frameid fixed
  • debug messages removed from test script
  • generation of test launch file without starting the test can be controlled by using setting flag entry launch_only to true.
  • Switching of radar properties improved
  • Tracking method and output selection for radar
  • Test application for using min/max-interval checking and added more test parameter
  • support for rms3xx prepared
  • Copyright added
  • licensed under apache 2.0
  • file based simulation based on file name pattern added and evaluated.
  • patches for ubuntu
  • pointcloud2 prepared
  • Parsing and test driven development optimized
  • Simulation for objects added
  • support of radar simulation
  • Contributors: Dave Niewinski, Michael Lehning, Sai Kishor Kothakota, Unknown, unknown

0.0.13 (2018-05-02)

  • moved some cpp files to ensure Debian compatibility
  • Contributors: Unknown

0.0.12 (2018-04-25)

  • Added script to start all test sequentially
  • Added RSSi and Range Deviation Test to sick_scan_test
  • channel handling for 8 bit rssi values corrected
  • Defines for param keyword introduced
  • added ros param for rssi data size 16 or 8 Bit
  • added rssi resolution configswitch
  • support for LMS_5xx and LMS_1xx added
  • testprogramm can now handle comments;
  • Test instructions added
  • Generation of result file
  • inital test revisited
  • Initial version protocol tester
  • Tiny XML Parser added
  • added Sopas protocol param
  • Added Tools and driver folder, removed unnecessary libusb dep.
  • Added scanner_type to parameter set to allow the processing of parallel scanners
  • timeout handling improved
  • reading thread times after connection lost Timeout settings optimized
  • protocol switching supported
  • Protocol switching implemented
  • added timeout and binary/ascii detection
  • Support of LMS1104 debugged, skipping scan mgs. publish for MRS6124 (only pointcloud)
  • Adding MRS6124 link to supported scanner table Edited trouble shooting
  • Add documentation for network stack
  • scandataCfg for binary commands prepared
  • min_ang, max_ang adapted for MRS6xxx
  • LMS1000 support continue, Bug fix for parsing distance value MRS6xxx, mrs6xxx.launch modified
  • COLA_A and COLA_B prepared
  • Package handling optimized (for asynchron tcp data transfer)
  • Debug info added for receiving tcp packets
  • Support of MRS1104
  • Cleanup and supporting Tim571
  • errorhandler added
  • First version with 9413 bytes packet
  • tcp handling optimized
  • Queue introduced
  • colaa+colab libs included
  • Parsing of MRS6xxx-data packages integrated
  • Timeout incremented due to startup wait phase for MRS6xxx
* Sleep duration between inital commands changed from 2.0 to 0.2

Sleep of 10 Sec. introducted after start scandata to ensure that the scanner comes up.

0.0.11 (2018-01-24)

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/sick_new_ip.launch
    • !!!EXPERIMENTAL!!! !!! ONLY BINARY COMMAND SUPPORT !!! ********************************************** Lanch File for setting new ip address ********************************************** This is an experimental launch file to set a new ip address in the scanner. Maybe one should add a EEPROM-write command. But in our tests this was not necessary.
      • hostname [default: 192.168.0.1]
      • new_IP [default: 192.168.0.2]
  • launch/sick_mrs_1xxx_cartographer.launch
    • LAUNCH FILE
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
      • imu_frame_id [default: imu_link]
  • launch/sick_tim_5xx.launch
    • ********************************************** Launch File for TIM 5xx scanner ********************************************** Start and stop angle is given in [rad] Default min_angle is -135 degree. Default max_angle is +135 degree. Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/test_002_combi_live.launch
    • Example launch for testing live cooperation of radar and laserscanner
      • record_data [default: false]
  • launch/sick_mrs_6xxx_first_echo.launch
    • EXPERIMENTAL - brand new driver
      • hostname [default: 192.168.0.1]
  • launch/test_100_roscon_tim_twin.launch
    • Example launch of using two scanners in parallel In this example we use two TIM5xx-scanner with a mounting distance of 2 m. Do see the result in rviz we recommend the following settings: 1. Global Options->Fixed Frame: map 2. Pointcloud2->Topic: /cloud_1 3. Pointcloud2->Topic: /cloud_2 4. Modify the given ip addresses to your local setup. Remark: Add two Pointcloud2-Visualizer to the Displays-Windows. You can also add two Laserscan-Visualizer. Please set the topic for laserscan-Visualizer to /scan_1 and /scan_2 in this case.
  • launch/sick_tim_240.launch
    • ********************************************** Launch File for TIM 240 scanner ********************************************** Start and stop angle is given in [rad] Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • port [default: 2111]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/sick_rms_3xx_emul.launch
    • LAUNCH-FILE for RMS3xx - Radar device EXPERIMENTAL - brand new driver Only SOPAS-ASCII supported.
      • hostname [default: 192.168.0.1]
  • launch/sick_tim_7xxS.launch
    • ********************************************** Launch File for TIM 5xx scanner ********************************************** Start and stop angle is given in [rad] Default min_angle is -135 degree. Default max_angle is +135 degree. Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/sick_nav_3xx.launch
    • LAUNCH FILE FOR NAV310
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/t.launch
    • ***************************************************************************** * Launch Example File for SICK LMS 511 * *****************************************************************************
      • hostname [default: 192.168.0.151]
  • launch/sick_nav_3xx_ascii.launch
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/test_003_mrs1xxx_tf_show.launch
    • LAUNCH FILE
      • hostname [default: 192.168.0.1]
  • launch/pcl_converter.launch
    • LAUNCH FILE
  • launch/rviz/sick_twin_mrs6xxx_tim5xx.launch
    • Example launch of using two scanners in parallel In this example we use two TIM5xx-scanner with a mounting distance of 2 m. Do see the result in rviz we recommend the following settings: 1. Global Options->Fixed Frame: map 2. Pointcloud2->Topic: /cloud_1 3. Pointcloud2->Topic: /cloud_2 4. Modify the given ip addresses to your local setup. Remark: Add two Pointcloud2-Visualizer to the Displays-Windows. You can also add two Laserscan-Visualizer. Please set the topic for laserscan-Visualizer to /scan_1 and /scan_2 in this case.
  • launch/sick_rms_3xx.launch
    • LAUNCH-FILE for RMS3xx - Radar device EXPERIMENTAL - brand new driver Only SOPAS-ASCII supported.
      • hostname [default: 192.168.0.1]
      • emul_sensor [default: false]
  • launch/sick_lms_4xxx.launch
    • ********************************************** Launch File for LMS 4xxx scanner ********************************************** Start and stop angle is given in [rad] Default min_angle is -35 degree. Default max_angle is +35 degree. Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/sick_lms_4xxx_encoder.launch
    • ********************************************** Launch File for LMS 4xxx scanner ********************************************** Start and stop angle is given in [rad] Default min_angle is -35 degree. Default max_angle is +35 degree. Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/sick_mrs_1xxx.launch
    • LAUNCH FILE
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/test_001_pcl.launch
    • Example launch for testing pointcloud to image converter
  • launch/sick_tim_5xx_new_ip.launch
    • !!!EXPERIMENTAL!!! !!! ONLY BINARY COMMAND SUPPORT !!! ********************************************** Lanch File for setting new ip address ********************************************** This is an experimental launch file to set a new ip address in the scanner. Maybe one should add a EEPROM-write command. But in our tests this was not necessary.
      • hostname [default: 192.168.0.1]
      • new_IP [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/sick_mrs_6xxx_last_echo.launch
    • EXPERIMENTAL - brand new driver
      • hostname [default: 192.168.0.1]
  • launch/sick_tim_5xx_twin.launch
    • Example launch of using two scanners in parallel In this example we use two TIM5xx-scanner with a mounting distance of 2 m. Do see the result in rviz we recommend the following settings: 1. Global Options->Fixed Frame: map 2. Pointcloud2->Topic: /cloud_1 3. Pointcloud2->Topic: /cloud_2 4. Modify the given ip addresses to your local setup. Remark: Add two Pointcloud2-Visualizer to the Displays-Windows. You can also add two Laserscan-Visualizer. Please set the topic for laserscan-Visualizer to /scan_1 and /scan_2 in this case.
      • hostname1 [default: 192.168.0.1]
      • hostname2 [default: 192.168.0.2]
  • launch/sick_lms_1xxx.launch
    • FOR FUTURE USE. NOT SUPPORTED NOW. DO NOT USE IT.
      • hostname [default: 192.168.0.1]
  • launch/test_002_combi_live_traffic.launch
    • Example launch for testing live cooperation of radar and laserscanner
      • record_data [default: false]
  • launch/demo_roscon.launch
    • LAUNCH-FILE for RMS3xx - Radar device emulation and visualisation
      • emul_sensor [default: false]
      • rawtarget_sphere_radius [default: 1.0]
      • rawtarget_palette_name [default: viridis.pal]
      • rawtarget_palette_min_ampl [default: 30.0]
      • rawtarget_palette_max_ampl [default: 70.0]
      • rawtarget_arrow_scale [default: 1.0]
      • object_arrow_scale [default: 1.0]
      • hostname [default: 192.168.0.1]
      • rviz [default: true]
      • rviz_file [default: $(find sick_scan)/launch/rviz/demo_roscon.rviz]
  • launch/test_101_pcl.launch
    • Example launch for testing pointcloud to image converter
  • launch/sick_lms_1xx_encoder.launch
    • FOR FUTURE USE. NOT SUPPORTED NOW. DO NOT USE IT.
      • hostname [default: 192.168.0.1]
  • launch/radar_object_marker.launch
    • LAUNCH-FILE for RADAR OBJECT MARKER EXPERIMENTAL - brand new driver
  • launch/test_006_radar_emul_vis.launch
    • LAUNCH-FILE for RMS3xx - Radar device emulation and visualisation
      • emul_sensor [default: true]
      • rawtarget_sphere_radius [default: 1.0]
      • rawtarget_palette_name [default: viridis.pal]
      • rawtarget_palette_min_ampl [default: 30.0]
      • rawtarget_palette_max_ampl [default: 70.0]
      • rawtarget_arrow_scale [default: 1.0]
      • object_arrow_scale [default: 1.0]
      • hostname [default: 192.168.0.1]
      • rviz [default: true]
      • rviz_file [default: $(find sick_scan)/launch/rviz/radar.rviz]
  • launch/sick_mrs_6xxx.launch
    • EXPERIMENTAL - brand new driver
      • hostname [default: 192.168.0.1]
  • launch/sick_lms_5xx.launch
    • ***************************************************************************** * Launch Example File for SICK LMS 511 * *****************************************************************************
      • hostname [default: 192.168.0.1]
  • launch/sick_tim_5xx_ASCII.launch
    • ********************************************** Launch File for TIM 5xx scanner ********************************************** Start and stop angle is given in [rad] Default min_angle is -135 degree. Default max_angle is +135 degree. Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/sick_tim_240_bin.launch
    • ********************************************** Launch File for TIM 240 scanner ********************************************** Start and stop angle is given in [rad] Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • port [default: 2111]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/sick_nav_2xx.launch
      • hostname [default: 192.168.0.1]
  • launch/test_005_hector.launch
      • hostname [default: 192.168.0.1]
      • tf_map_scanmatch_transform_frame_name [default: /scanmatcher_frame]
      • base_frame [default: base_link]
      • odom_frame [default: base_link]
      • pub_map_odom_transform [default: true]
      • scan_subscriber_queue_size [default: 5]
      • scan_topic [default: scan]
      • map_size [default: 2048]
      • rviz [default: true]
      • rviz_file [default: $(find sick_scan)/launch/rviz/hector.rviz]
  • launch/sick_lms_5xx_encoder.launch
    • ***************************************************************************** * Launch Example File for SICK LMS 511 * *****************************************************************************
      • hostname [default: 192.168.0.1]
  • launch/sick_tim_4xx.launch
    • ********************************************** Launch File for TiM 4xx lidar family Family covers TiM 433 and TiM 443. ********************************************** Start and stop angle is given in [rad] Default min_angle is -120 degree (-2.09439510 rad). Default max_angle is +120 degree (+2.09439510 rad). Axis orientation is given in ROS standard notation. X . . . . Y .........+ (Z-Axis upwards to you - right hand rule) +............+ | | | Top View | | Device | | | +............+ . . . . . . Power Ethernet Cable Cacle Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/sick_tim_7xx.launch
    • ********************************************** Launch File for TIM 5xx scanner ********************************************** Start and stop angle is given in [rad] Default min_angle is -135 degree. Default max_angle is +135 degree. Check IP-address, if you scanner is not found after roslaunch.
      • hostname [default: 192.168.0.1]
      • cloud_topic [default: cloud]
      • frame_id [default: cloud]
  • launch/laser_radar_combo.launch
    • LAUNCH-FILE for RMS3xx - Radar device EXPERIMENTAL - brand new driver Only SOPAS-ASCII supported.
  • launch/sick_lms_1xx.launch
    • FOR FUTURE USE. NOT SUPPORTED NOW. DO NOT USE IT.
      • hostname [default: 192.168.0.1]
  • launch/sick_mrs_6xxx_narrow.launch
    • EXPERIMENTAL - brand new driver
      • hostname [default: 192.168.0.1]
  • launch/test_004_mrs1xxx_slam.launch
    • LAUNCH FILE
      • hostname [default: 192.168.0.1]
  • test/emulator/launch/emulator_lms1xx.launch
      • scandatafiles [default: $(find sick_scan)/scandata/20210302_lms111.pcapng.json]
      • scandatatypes [default: sSN LMDscandata ,sSN LIDinputstate ,sSN LIDoutputstate ,sSN LFErec ]
  • test/emulator/launch/emulator_01_default.launch
      • scandatafiles [default: $(find sick_scan)/scandata/sopas_et_field_test_1_2_both_010.pcapng.json,$(find sick_scan)/scandata/20210113_tim871s_elephant.pcapng.json]
      • scandatatypes [default: sSN LMDscandata ,sSN LIDinputstate ,sSN LIDoutputstate ,sSN LFErec ]
  • test/emulator/launch/emulator_03_2nd_fieldset.launch
      • scandatafiles [default: $(find sick_scan)/scandata/lidinputstate_fieldset_01.json,$(find sick_scan)/scandata/20210125-tim781s-scandata.pcapng.json]
      • scandatatypes [default: sSN LMDscandata ,sSN LIDinputstate ,sSN LIDoutputstate ,sSN LFErec ]
  • test/emulator/launch/emulator_02_toggle_fieldsets.launch
      • scandatafiles [default: $(find sick_scan)/scandata/fieldset_trial_0001.pcapng.json]
      • scandatatypes [default: sSN LMDscandata ,sSN LIDinputstate ,sSN LIDoutputstate ,sSN LFErec ]
  • test/emulator/launch/emulator_04_fieldset_test.launch
      • scandatafiles [default: $(find sick_scan)/scandata/20210126-tim781s-test-fieldsets.pcapng.json]
      • scandatatypes [default: sSN LMDscandata ,sSN LIDinputstate ,sSN LIDoutputstate ,sSN LFErec ]
  • test/emulator/launch/emulator_lms5xx.launch
      • scandatafiles [default: $(find sick_scan)/scandata/20210301_lms511.pcapng.json,$(find sick_scan)/scandata/20210302_lms511.pcapng.json]
      • scandatatypes [default: sSN LMDscandata ,sSN LIDinputstate ,sSN LIDoutputstate ,sSN LFErec ]
  • test/sick_scan_test_mrs_1xxx.xml
  • test/sick_scan_test_tim_551_binary.xml
  • test/sick_scan_test_tim_561_ascii.xml
  • test/sick_scan_test_tim_5xx.xml
  • test/sick_scan_test_lms_1xxx_all_echos.xml
  • test/sick_scan_test_mrs_6xxx_all_echos.xml
  • test/sick_scan_test_lms_1xx.xml
  • test/sick_scan_test_mrs_6xxx.xml
  • test/sick_scan_test_tim_571_ascii.xml
  • test/sick_scan_test_tim_561_binary.xml
  • test/sick_scan_test_tim_571_binary.xml
  • test/sick_scan_test_lms_1xxx.xml
  • test/sick_scan_test_tim_551_ascii.xml
  • test/sick_scan_test_lms_5xx.xml

Services

Plugins

No plugins found.

Recent questions tagged sick_scan at Robotics Stack Exchange