|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rplidar_driver at Robotics Stack Exchange
|
rplidar_driver package from rplidar_driver reporplidar_driver |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-23 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- frozenreboot
- cosmicog
- Błażej Sowa
Authors
🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)
[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!
“Because the official driver shouldn’t crash just because you pulled the plug.”
This is a heavily refactored, fault-tolerant ROS 2 driver for Slamtec RPLIDAR. Designed with a Lifecycle State Machine and Thread-Safe Architecture, ensuring your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This? (Table of Shame)
| Feature | Official Slamtec ROS 2 | This Driver (frozenreboot) |
|---|---|---|
| Hot-plug Recovery | ❌ Crash / Hang | ✅ Auto-reconnect via FSM |
| Permission Denied | ❌ Silent Fail / Garbage Data | ✅ Explicit Diagnostics |
| Dynamic Reconfigure | ❌ Restart Required | ✅ Runtime RPM/Mode Update |
| Zero-Copy Optimization | ❌ N/A | ✅ Smart Pointer & Move Semantics |
| Architecture | ❌ Tight SDK Coupling | ✅ Interface-based Abstraction |
🧪 Call for Experiments: “Does it survive?”
I need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🚀 Getting Started
1. Installation
cd ~/ros2_ws/src
git clone https://github.com/frozenreboot/rplidar_driver.git
cd ..
# Install dependencies
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# Build the workspace
colcon build --symlink-install
2. Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
3. Dynamic Reconfigure (Runtime)
You can change the motor speed without killing the node:
ros2 param set /rplidar_node rpm 1000
ros2 param set /rplidar_node scan_mode DenseBoost
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
-
Node Layer: Handles Lifecycle & Parameters.
-
Wrapper Layer: Handles Threading & Mutex.
-
SDK Layer: Raw data fetching.

👤 Author & Maintainer
- frozenreboot - Initial Refactoring & Architecture Design
File truncated at 100 lines see the full file
Changelog for package rplidar_driver
Forthcoming
- Added GTest-based test infrastructure, including mock driver tests and lifecycle/publication tests.
- Added driver state and driver sequence documentation.
- Updated README to mark the current release status as beta and document related cautions.
- Clarified that the angle_offset parameter is specified in radians, following REP-103.
- Removed the angle_offset launch argument and rely on YAML parameters instead.
- Fixed QoS parameter inconsistency by initializing the QoS parameter and applying the configured policy.
- Added governance documentation and maintainer information.
- Added an AI disclosure section for OSRF compliance.
- Contributors: frozenreboot, cosmicog
v1.3.0 (2026-01-18)
- Added scan interpolation via the [interpolated_rays]{.title-ref} parameter to generate high-density, mathematical line-segment-based measurements.
- Added [publish_point_cloud]{.title-ref} and [intensities_as_angles]{.title-ref} parameters for debugging and analysis.
- Added configurable ROS 2 QoS profiles via the [qos_policy]{.title-ref} parameter.
- Deprecated [scan_processing]{.title-ref} in favor of the explicit [interpolated_rays]{.title-ref} parameter.
- Removed the [inverted]{.title-ref} parameter. Use TF or [angle_offset]{.title-ref} instead.
- Set the default [scan_mode]{.title-ref} to [Standard]{.title-ref} to prevent ghost points on S-series devices.
- Fixed segmentation faults in [dummy_mode]{.title-ref} caused by unsafe dynamic casting.
- Fixed an index out-of-bounds crash in the interpolation loop.
- Fixed [LifecycleNode]{.title-ref} activation issues where publishers remained silent after state transition.
- Fixed a [TypeError]{.title-ref} in the composition launch file.
- Contributors: cosmicog, frozenreboot
v1.2.0 (2026-01-09)
- Updated copyright years to 2026.
- Fixed scan data mirroring issue where left and right were inverted.
- Fixed launch arguments overriding parameter file settings.
- Contributors: frozenreboot
v1.1.0 (2026-01-06)
- Refactored [RPlidarNode]{.title-ref} into a [rclcpp_component]{.title-ref} to enable component composition and improve IPC performance.
- Added diagnostics for frequency and connection status via [diagnostic_updater]{.title-ref}.
- Updated scan data output to use [Inf]{.title-ref} for out-of-range measurements according to REP-117.
- Contributors: frozenreboot
v1.0.1 (2026-01-03)
- Fixed diagnostic messages when the driver is in a disconnected state.
- Contributors: frozenreboot