A lightweight, high-performance ROS 2 driver for Livox LiDAR sensors.
This package exposes Livox pointcloud and IMU data as standard
sensor_msgs/msg/PointCloud2 and sensor_msgs/msg/Imu messages. It is
designed for efficiency and low-latency use in production and research.
The following numbers are measured in our internal benchmarks and are provided as a reference for expected CPU usage improvements.
| Platform | CPU usage (livox_ros_driver2) | CPU usage (fast_livox_ros_driver) |
|---|---|---|
| RK3588 | 35% | 15% |
| Intel i7-11800H | 14% | 3% |
- Publishes pointclouds (
sensor_msgs/msg/PointCloud2). - Publishes IMU messages (
sensor_msgs/msg/Imu) when available. - Configurable frame, topics, QoS and SDK configuration file.
This package targets ROS 2 (Foxy/Iron/Humble/Rolling and newer). It is primarily tested on Linux. Other platforms (Windows/macOS) are not tested.
| ROS 2 distro | Build & test |
|---|---|
| humble | |
| iron | |
| jazzy | |
| kilted | |
| rolling |
- Build and install
Livox-SDK2. Please follow the guidance of installation in the Livox-SDK2/README.md.
git clone https://github.com/Livox-SDK/Livox-SDK2.git
cd ./Livox-SDK2/
mkdir build
cd build
cmake .. && make -j
sudo make install- Clone the repository into your workspace
src/:
cd /path/to/colcon_ws/src
git clone https://github.com/zz990099/fast_livox_ros_driver.git fast_livox_ros_driver- Build with colcon:
colcon build --packages-select fast_livox_ros_driver
source install/setup.bashThe node exposes several parameters to configure networking, topics and QoS.
frame_id(string): TF frame used for published messages.lidar_ip(string): IP address of the Livox device.config_file_path(string): Path to a Livox SDK configuration file.pointcloud_topic(string): Topic name for pointcloud output (default:/livox/lidar).imu_topic(string): Topic name for IMU output (default:/livox/imu).pointcloud_qos_depth(int): QoS history depth for pointcloud publisher.imu_qos_depth(int): QoS history depth for imu publisher.
See the packaged config directory and launch files for example parameter files.
Run the node directly after sourcing your workspace:
ros2 run fast_livox_ros_driver fast_livox_ros_driver_nodeOr use a params file:
ros2 run fast_livox_ros_driver fast_livox_ros_driver_node --ros-args --params-file /path/to/params.yamlUse the packaged launch file to start the node with example params and topic remapping:
ros2 launch fast_livox_ros_driver driver.launch.pyTo run multiple instances, remap the namespace for each instance.
Unit and integration tests (if present) can be run with colcon:
colcon build --packages-select fast_livox_ros_driver --cmake-args -DBUILD_TESTING=ON
colcon test --packages-select fast_livox_ros_driverThis project is released under the Apache-2.0 license. See the LICENSE
file for full terms.