sick_scan_xd
ROS 1 and 2 driver for SICK scanner
Links
- Documentation
- IMU Support
- Activating IMU Messages
- Adding new Device
- Angle Compensation
- sick_scan_xd releases using bloom:
- Checking driver in combination of MRS6xxx and RMSxxxx
- Coordinate transforms
- Unit tests
- Encoder in Laserscanners
- Field monitoring for LMS1xx, LMS5xx, TiM7xx and TiM7xxS
- Git Large File Storage
- Google Cartographer
- Interlacing
- MRS6xxx Timing
- How to run multiple sensors concurrently
- NAV350
- sick_scan_xd networking FAQ
- Profiling
- Radar
- Radar Datagram
- Raspberry Pi
- picoScan100/multiScan100
- SOPAS support for sick_scan_segment_xd
- Slam
- Software Overview
- SoftwarePLL
- Startup Sequence
- Timestamping
- Time synchronization
- Data buffering in MRS 1xxx
- ipconfig/
- tim240/
- combination_rms_1xxx_lms_1xx/
- sick_scan_api/
README
sick_scan_xd
This project provides a driver for the SICK LiDARs and Radar sensors mentioned here. The driver supports both Linux (native, ROS1, ROS2) and Windows (native and ROS2). See the CHANGELOG.md for the latest updates.
Table of Contents
Executive Summary
sick_scan_xd supports
ROS1 (Linux)
ROS2 (Linux and Windows)
a Driver for generic use (Linux and Windows native)
a API for C/C++ or python applications
x64 and ARM-64 architecture
sick_scan_xd provides a driver for the SICK LiDARs and Radar sensors mentioned here.
sick_scan_xd is designed to easily integrate new devices, features and improvements on all targets.
sick_scan_xd has no dependencies to 3rd party libraries like boost or pthread.
sick_scan_xd offers all features on all targets if the devices support the features.
Repository organization
The repository supports two main branches.
The “master” branch is the branch that contains official releases that are tagged and versioned and also included in the ROS distribution.
If you want to work with this official branch, you must explicitly specify this branch in the ‘git clone’ command by adding “-b master”.
The “develop” branch is the default branch and contains the latest development status.
Example:
Checking out the latest revision (usually older than the develop version, but officially released):
git clone -b master https://github.com/SICKAG/sick_scan_xd.git
Checking out the latest development status:
git clone https://github.com/SICKAG/sick_scan_xd.git
Build targets
sick_scan_xd can be build on 64-bit Linux and Windows, with and without ROS, with and without LDMRS. The following table shows the allowed combinations and how to build.
target |
cmake settings |
build script |
---|---|---|
Linux, native, LDMRS |
BUILD_WITH_LDMRS_SUPPORT ON |
cd test/scripts && chmod a+x ./*.bash && ./makeall_linux.bash |
Linux, native, no LDMRS |
BUILD_WITH_LDMRS_SUPPORT OFF |
cd test/scripts && chmod a+x ./*.bash && ./makeall_linux_no_ldmrs.bash |
Linux, ROS-1, LDMRS |
BUILD_WITH_LDMRS_SUPPORT ON |
cd test/scripts && chmod a+x ./*.bash && ./makeall_ros1.bash |
Linux, ROS-1, no LDMRS |
BUILD_WITH_LDMRS_SUPPORT OFF |
cd test/scripts && chmod a+x ./*.bash && ./makeall_ros1_no_ldmrs.bash |
Linux, ROS-2, LDMRS |
BUILD_WITH_LDMRS_SUPPORT ON |
cd test/scripts && chmod a+x ./*.bash && ./makeall_ros2.bash |
Linux, ROS-2, no LDMRS |
BUILD_WITH_LDMRS_SUPPORT OFF |
cd test/scripts && chmod a+x ./*.bash && ./makeall_ros2_no_ldmrs.bash |
Windows, native, no LDMRS |
BUILD_WITH_LDMRS_SUPPORT OFF |
cd test\scripts && make_win64.cmd |
Windows, ROS-2, no LDMRS |
BUILD_WITH_LDMRS_SUPPORT OFF |
cd test\scripts && make_ros2.cmd |
If you’re using ROS, set your ROS-environment before running one of these scripts, f.e.
source /opt/ros/noetic/setup.bash
for ROS-1 noetic, orsource /opt/ros/foxy/setup.bash
for ROS-2 foxy, orsource /opt/ros/humble/setup.bash
for ROS-2 humble.
See the build descriptions for more details:
sick_scan_xd supports 64 bit Linux and Windows, 32 bit systems are not supported.
Driver API
sick_scan_xd provides a C API, which can be used by any programming language with C-bindings, e.g. in C/C++ or python applications. See sick_scan_api.md for further details.
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.
Radar support
See radar documentation for RMSxxxx support.
multiScan100 support
See sick_scan_segment_xd for multiScan100 support.
Software PLL
A software pll is used to convert LiDAR timestamps in ticks to the ros system time. See software_pll for further details.
Field Evaluation Information
The LMS1xx, LMS5xx, TiM7xx and TiM7xxS families support extensions for field monitoring. See field_monitoring_extensions for further details.
Run sick_scan_xd driver
See USAGE how to run and configure the sick_scan_xd driver.
Software Overview
An overview over the software and its modules can be found in software_overview.
FAQ
FAQ: FAQ
Keywords
MRS1000 MRS1104 LMS1000 LMS1104 MRS6000 MRS6124 RMS1xxx RMS1000 RMSxxxx 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 LDMRS LRS4000 LD-LRS3600 LD-LRS3601 LD-LRS3611 LD-OEM1500 LD-OEM1501 multiScan100 multiScan picoScan100 picoScan