No version for distro humble showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro kilted showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro lyrical showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro rolling showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro ardent showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro bouncy showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro crystal showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro eloquent showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro dashing showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro galactic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro foxy showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro iron showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro lunar showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro jade showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro indigo showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro hydro showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro kinetic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro melodic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange

No version for distro noetic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rplidar_driver package from rplidar_driver repo

rplidar_driver

ROS Distro
jazzy

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

A modern, lifecycle-managed ROS2 driver for Slamtec RPLidar. Features multithreaded scanning, non-blocking I/O, and C++17 architecture.

Maintainers

  • frozenreboot
  • cosmicog
  • Błażej Sowa

Authors

No additional authors.

🛡️ Robust RPLIDAR ROS 2 Driver (Industrial-Grade)

[!CAUTION] BETA VERSION Please use with caution in production environments. Issues and PRs are highly welcome!

ROS2 Jazzy C++17 License Build Status

“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:

  1. Lidar Model: (e.g., A1, A2, S1…)
  2. Recovery Log: (Copy paste the terminal output when you unplug/replug)
  3. Screenshot: rqt_graph or rviz2

👉 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.

Architecture Diagram


👤 Author & Maintainer

  • frozenreboot - Initial Refactoring & Architecture Design

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rplidar_driver at Robotics Stack Exchange