Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/frozenreboot/rplidar_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-18 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rplidar_driver | 1.4.1 |
README
🛡️ Robust RPLIDAR ROS 2 Driver
“Because the official driver shouldn’t crash just because you pulled the plug.”
A fault-tolerant ROS 2 driver for Slamtec RPLIDAR, built around a Lifecycle State Machine and a thread-safe architecture. Your robot keeps running even under hardware disconnection or permission failures.
⚡ Why Use This?
Most existing RPLIDAR drivers assume the hardware never misbehaves. This driver assumes the opposite. Compared to the reference implementation:
| Capability | Reference Driver | This Driver |
|---|---|---|
| Hot-plug recovery | Not handled | ✅ Auto-reconnect via lifecycle FSM |
| Permission failure reporting | Silent failure | ✅ Explicit diagnostics |
| Runtime reconfiguration | Restart required | ✅ Live RPM / scan-mode update |
| Component composition | Standalone only | ✅ rclcpp_components support |
| SDK coupling | Direct calls throughout | ✅ Interface-based abstraction layer |
🚀 Getting Started
Option A — Binary install (coming soon)
This package has been submitted to the ROS 2 build farm. Once it syncs, you will be able to install it directly:
sudo apt install ros-${ROS_DISTRO}-rplidar-driver
Supported distros: Humble, Jazzy, Lyrical, and Rolling.
Option B — Build from source
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
Quick Launch
ros2 launch rplidar_driver rplidar.launch.py serial_port:=/dev/ttyUSB0
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
🧪 Call for Experiments: “Does it survive?”
We need your help to validate this driver on various robots! If you use this driver, please stress-test it (e.g., unplug USB while scanning, change RPM dynamically) and share your results.
📢 How to Submit a Report
Please open an issue with the title [Experiment] Your_Robot_Name and include:
- Lidar Model: (e.g., A1, A2, S1…)
- Recovery Log: (Copy paste the terminal output when you unplug/replug)
-
Screenshot:
rqt_graphorrviz2
👉 Submit your Experiment Report Here
🏗️ Architecture
This driver uses a 3-Layer Design to decouple ROS 2 logic from the vendor SDK.
- Node Layer: Handles Lifecycle & Parameters.
File truncated at 100 lines see the full file