Livox ROS2 驱动使用教程
·
1. 驱动简介
Livox ROS Driver 2 是 Livox 公司推出的第二代 LiDAR 设备驱动程序包,支持 ROS1 和 ROS2 系统。本教程主要介绍 ROS2 环境下的使用方法。
1.1 支持的设备
- MID360: 中距离高精度激光雷达
- HAP: 高精度激光雷达
- 混合模式: 同时支持多种设备
1.2 支持的系统
- Ubuntu 20.04 + ROS2 Foxy
- Ubuntu 22.04 + ROS2 Humble
2. 工作空间结构
ws_livox/
├── src/
│ └── livox_ros_driver2/
│ ├── config/ # 配置文件目录
│ │ ├── MID360_config.json # MID360 配置文件
│ │ ├── HAP_config.json # HAP 配置文件
│ │ └── *.rviz # RViz 配置文件
│ ├── launch_ROS2/ # ROS2 启动文件
│ │ ├── msg_MID360_launch.py # MID360 消息启动文件
│ │ ├── rviz_MID360_launch.py # MID360 可视化启动文件
│ │ └── ... # 其他启动文件
│ ├── msg/ # 自定义消息类型
│ │ ├── CustomMsg.msg # 自定义点云消息
│ │ └── CustomPoint.msg # 自定义点结构
│ └── src/ # 源代码目录
├── build/ # 编译输出目录
└── install/ # 安装输出目录
3. 安装与编译
3.1 前置依赖
# 安装 ROS2 (以 Humble 为例)
sudo apt update
sudo apt install ros-humble-desktop
# 安装 Livox-SDK2
git clone https://github.com/Livox-SDK/Livox-SDK2.git
cd Livox-SDK2
mkdir build && cd build
cmake ..
make -j
sudo make install
3.2 编译驱动
# 进入工作空间
cd ./ws_livox
# 设置环境变量
source /opt/ros/humble/setup.bash
# 编译 (使用项目提供的编译脚本)
./src/livox_ros_driver2/build.sh humble
# 或者使用 colcon 编译
colcon build --packages-select livox_ros_driver2
4. 配置文件说明
4.1 MID360 配置文件 (config/MID360_config.json)
{
"lidar_summary_info": {
"lidar_type": 8 // 雷达类型 (8=MID360)
},
"MID360": {
"lidar_net_info": { // 雷达网络信息
"cmd_data_port": 56100, // 命令数据端口
"push_msg_port": 56200, // 推送消息端口
"point_data_port": 56300, // 点云数据端口
"imu_data_port": 56400, // IMU 数据端口
"log_data_port": 56500 // 日志数据端口
},
"host_net_info": { // 主机网络信息
"cmd_data_ip": "192.168.1.50", // 主机 IP 地址
"point_data_ip": "192.168.1.50", // 点云数据接收 IP
// ... 其他网络配置
}
},
"lidar_configs": [
{
"ip": "192.168.1.129", // 雷达设备 IP
"pcl_data_type": 1, // 点云数据类型
"pattern_mode": 0, // 扫描模式
"extrinsic_parameter": { // 外参标定
"roll": 0.0, "pitch": 0.0, "yaw": 0.0,
"x": 0, "y": 0, "z": 0
}
}
]
}
4.2 重要配置参数
| 参数名 | 描述 | 默认值 |
|---|---|---|
publish_freq | 点云发布频率 (Hz) | 10.0 |
multi_topic | 多话题模式 (0=单话题, 1=多话题) | 0 |
xfer_format | 点云格式 (0=PointXYZRTLT, 1=自定义格式) | 1 |
frame_id | 坐标系名称 | “livox_frame” |
output_data_type | 输出数据类型 | 0 |
5. 启动文件说明
5.1 可用启动文件
| 启动文件 | 功能描述 |
|---|---|
msg_MID360_launch.py | MID360 基础消息发布 |
rviz_MID360_launch.py | MID360 + RViz 可视化 |
msg_HAP_launch.py | HAP 基础消息发布 |
rviz_HAP_launch.py | HAP + RViz 可视化 |
rviz_mixed.py | 混合设备可视化 |
5.2 启动文件结构 (以 msg_MID360_launch.py 为例)
# 用户配置参数
xfer_format = 1 # 点云格式
multi_topic = 0 # 话题模式
publish_freq = 10.0 # 发布频率
frame_id = 'livox_frame' # 坐标系
# 启动节点
def generate_launch_description():
livox_driver = Node(
package='livox_ros_driver2',
executable='livox_ros_driver2_node',
name='livox_lidar_publisher',
output='screen',
parameters=livox_ros2_params
)
return LaunchDescription([livox_driver])
6. 运行驱动
6.1 设置环境
# 设置 ROS2 环境
source /opt/ros/humble/setup.bash
# 设置工作空间环境
cd ./ws_livox
source install/setup.bash
6.2 启动驱动
仅发布点云数据:
ros2 launch livox_ros_driver2 msg_MID360_launch.py
启动可视化:
ros2 launch livox_ros_driver2 rviz_MID360_launch.py
混合设备模式:
ros2 launch livox_ros_driver2 rviz_mixed.py
7. 数据格式说明
7.1 自定义点云消息 (CustomMsg)
Header header # 标准 ROS 消息头
uint64 timebase # 第一个点的时间戳
uint32 point_num # 点云总数
uint8 lidar_id # 雷达设备 ID
CustomPoint[] points # 点云数据数组
7.2 自定义点结构 (CustomPoint)
uint32 offset_time # 相对基准时间的偏移
float32 x, y, z # 3D 坐标 (米)
uint8 reflectivity # 反射率 (0-255)
uint8 tag # Livox 标签
uint8 line # 激光器线束号
8. 话题与服务
8.1 发布的话题
| 话题名 | 消息类型 | 描述 |
|---|---|---|
/livox/lidar | CustomMsg | 自定义格式点云 |
/livox/lidar_pcl | PointCloud2 | 标准点云格式 |
/livox/imu | Imu | IMU 数据 |
8.2 常用命令
# 查看话题列表
ros2 topic list
# 查看点云话题信息
ros2 topic info /livox/lidar
# 查看点云数据
ros2 topic echo /livox/lidar --no-arr
# 检查节点状态
ros2 node list
ros2 node info /livox_lidar_publisher
9. 故障排除
9.1 常见问题
-
网络连接问题
- 检查雷达 IP 地址配置
- 确认主机与雷达在同一网段
- 检查防火墙设置
-
编译错误
- 确保安装了 Livox-SDK2
- 检查 ROS2 环境变量设置
- 清理编译缓存重新编译
-
无数据输出
- 检查配置文件中的 IP 地址
- 确认雷达电源和网络连接
- 查看节点日志信息
9.2 调试命令
# 查看节点日志
ros2 run rqt_console rqt_console
# 检查网络连接
ping 192.168.1.129
# 查看进程状态
ros2 node info /livox_lidar_publisher
10. 性能优化
10.1 参数调优
- 根据应用需求调整
publish_freq - 选择合适的
xfer_format格式 - 合理设置
multi_topic模式
10.2 网络优化
- 使用千兆以太网连接
- 优化网络缓冲区大小
- 减少网络延迟
附录
A. 快速启动脚本
创建快速启动脚本 start_livox.sh:
#!/bin/bash
cd ./ws_livox
source /opt/ros/humble/setup.bash
source install/setup.bash
ros2 launch livox_ros_driver2 rviz_MID360_launch.py
B. 相关链接
更多推荐



所有评论(0)