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.
- Executive Summary
- Supported SICK LIDAR and Radar sensors
- Getting started
- Build targets
- Build on Linux generic without ROS
- Build on Linux ROS1
- Build on Linux ROS2
- Build on Windows
- Build on Windows ROS2
- USAGE
- Driver API
- IMU-Support
- Radar
- picoScan100/multiScan100
- NAV350
- Software PLL
- Field Evaluation Information
- SLAM-Support
- Software Overview
- Raspberry support
- FAQ
- Further support
- CREDITS
- 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.
sick_scan_xd can be build on 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/melodic/setup.bash
for ROS-1 melodic, orsource /opt/ros/eloquent/setup.bash
for ROS-2 eloquent, orsource /opt/ros/foxy/setup.bash
for ROS-2 foxy.
See the build descriptions for more details:
- Build on Linux generic without ROS
- Build on Linux ROS1
- Build on Linux ROS2
- Build on Windows
- Build on Windows ROS2
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.
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.
See radar documentation for RMSxxxx support.
See sick_scan_segment_xd for multiScan100 support.
A software pll is used to convert LiDAR timestamps in ticks to the ros system time. See software_pll for further details.
The LMS1xx, LMS5xx, TiM7xx and TiM7xxS families support extensions for field monitoring. See field_monitoring_extensions for further details.
See USAGE how to run and configure the sick_scan_xd driver.
An overview over the software and its modules can be found in software_overview.
- FAQ: FAQ
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