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.pyMID360 基础消息发布
rviz_MID360_launch.pyMID360 + RViz 可视化
msg_HAP_launch.pyHAP 基础消息发布
rviz_HAP_launch.pyHAP + 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/lidarCustomMsg自定义格式点云
/livox/lidar_pclPointCloud2标准点云格式
/livox/imuImuIMU 数据

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 常见问题

  1. 网络连接问题

    • 检查雷达 IP 地址配置
    • 确认主机与雷达在同一网段
    • 检查防火墙设置
  2. 编译错误

    • 确保安装了 Livox-SDK2
    • 检查 ROS2 环境变量设置
    • 清理编译缓存重新编译
  3. 无数据输出

    • 检查配置文件中的 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. 相关链接


Logo

立足具身智能前沿赛道,致力于搭建全球化、开源化、全栈式技术交流与实践共创平台。

更多推荐