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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

Repo symbol

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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

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

rplidar_driver repository

rplidar_driver

ROS Distro
jazzy

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 (-)

Packages

Name Version
rplidar_driver 1.3.1

README

πŸ›‘οΈ 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