Hi ROS 2 Community,
I’m happy to announce the release of a new ROS 2 driver for Slamtec RPLIDAR devices: rplidar_ros2_driver.
GitHub Repository: GitHub - frozenreboot/rplidar_ros2_driver
Why another driver? While working with existing RPLIDAR drivers, I noticed that most are direct ports of legacy code, often missing out on modern ROS 2 features or lacking clean state management. I wanted a driver that feels “native” to ROS 2.
Key Features:
Modern C++ (C++17): Written from scratch using modern paradigms (std::optional, smart pointers) ensuring memory safety and readability.
Lifecycle Node Support: Fully supports the Managed Node state machine (Unconfigured → Inactive → Active). Perfect for fleet management and deterministic startup.
Dynamic Reconfiguration: Supports ROS 2 Parameter Callbacks. You can change the motor RPM or toggle geometric correction at runtime without restarting the node.
Performance Oriented: Optimized to minimize runtime memory allocation (pre-allocated buffers) for consistent latency.
Hardware Support: Verified on A-Series, S-Series, and the new C1 (ToF) model.
I’ve been testing it on ROS 2 Jazzy, and it seems stable.
I am actively looking for feedback and contributors. If you have an RPLIDAR unit gathering dust, please give it a try and let me know what you think!