【鲁班猫ARM开发】Livox MID-360激光雷达在ROS2 Humble下的完整配置指南
一、前言
最近在鲁班猫(LubanCat,ARM架构)上配置Livox MID-360激光雷达,走了不少弯路。Livox Viewer 2官方只有x86_64版本,无法在ARM设备上直接运行,必须使用SDK2 + ROS2驱动。本文将完整记录配置过程,希望对同样使用ARM设备(如鲁班猫、树莓派、Jetson系列)的朋友有所帮助。
硬件环境:
-
鲁班猫(ARM64架构)
-
Livox MID-360激光雷达
-
Ubuntu 22.04 + ROS2 Humble
网络配置:
-
雷达IP:192.168.144.174
-
鲁班猫IP:192.168.144.100
二、整体流程概览
text
安装Livox-SDK2 → 编译livox_ros_driver2 → 配置网络IP → 修改配置文件 → 编译工作空间 → 运行驱动
重要提示: 必须先安装Livox-SDK2,否则编译livox_ros_driver2时会报错找不到库。
三、详细步骤
3.1 安装Livox-SDK2
Livox-SDK2是Livox官方提供的第二代SDK,支持MID-360、HAP等新型号雷达。
bash
# 克隆SDK仓库 cd ~ git clone https://github.com/Livox-SDK/Livox-SDK2.git # 进入目录 cd Livox-SDK2 # 创建build目录并编译 mkdir build && cd build cmake .. && make -j # 安装到系统目录(默认/usr/local/lib) sudo make install # 更新动态链接库缓存 sudo ldconfig
编译输出说明:
-
liblivox_lidar_sdk_static.a- 静态库 -
liblivox_lidar_sdk_shared.so- 动态库 -
头文件安装在
/usr/local/include/
验证安装:
bash
ls /usr/local/lib/liblivox_lidar_sdk* # 应显示:liblivox_lidar_sdk_shared.so liblivox_lidar_sdk_static.a
3.2 创建工作空间并克隆驱动
bash
# 创建工作空间目录 cd ~ mkdir -p ros2_c/src cd ros2_c/src # 克隆livox_ros_driver2 git clone https://github.com/Livox-SDK/livox_ros_driver2.git
3.3 编译livox_ros_driver2
第一次编译(会失败):
bash
cd ~/ros2_c/src/livox_ros_driver2 ./build.sh humble
可能的错误:
text
CMake Error: Could not find LIVOX_LIDAR_SDK_LIBRARY
这是因为还没安装Livox-SDK2。
安装完SDK2后,再次编译:
bash
cd ~/ros2_c/src/livox_ros_driver2 ./build.sh humble
编译成功标志:
text
Summary: 1 package finished [xx.xs]
注意: ./build.sh humble 是一个bash脚本,不是二进制文件,可以在ARM架构上正常运行。它会根据当前系统架构(ARM64)编译出匹配的二进制文件。
3.4 配置网络IP
首先查看网口名称:
bash
ifconfig
常见网口名称:
-
eth0- 第一个有线网口 -
eth1- 第二个有线网口 -
wlan0- 无线网卡
根据实际情况配置IP(本例使用eth1):
bash
# 设置静态IP(与雷达同一网段) sudo ifconfig eth1 192.168.144.100 netmask 255.255.255.0 # 验证IP是否设置成功 ifconfig eth1 | grep inet # 应显示:inet 192.168.144.100 # 测试与雷达的连通性 ping 192.168.144.174
ping通示例:
text
64 bytes from 192.168.144.174: icmp_seq=1 ttl=255 time=2.60 ms 64 bytes from 192.168.144.174: icmp_seq=2 ttl=255 time=2.93 ms
如何找到自己的网口:
-
连接雷达后,观察哪个网口有数据包
-
使用
ip addr查看所有网口状态 -
网口状态
UP表示已启用
取消IP配置的方法:
bash
# 删除指定IP sudo ip addr del 192.168.144.100/24 dev eth1 # 恢复DHCP自动获取 sudo dhclient eth1 # 清除网口所有IP sudo ip addr flush dev eth1
3.5 修改雷达配置文件
编辑配置文件:
bash
nano ~/ros2_c/src/livox_ros_driver2/config/MID360_config.json
完整配置文件内容(根据你的IP修改):
json
{
"lidar_summary_info": {
"lidar_type": 8
},
"MID360": {
"lidar_net_info": {
"cmd_data_port": 56100,
"push_msg_port": 56200,
"point_data_port": 56300,
"imu_data_port": 56400,
"log_data_port": 56500
},
"host_net_info": {
"cmd_data_ip": "192.168.144.100",
"cmd_data_port": 56101,
"push_msg_ip": "192.168.144.100",
"push_msg_port": 56201,
"point_data_ip": "192.168.144.100",
"point_data_port": 56301,
"imu_data_ip": "192.168.144.100",
"imu_data_port": 56401,
"log_data_ip": "",
"log_data_port": 56501
}
},
"lidar_configs": [
{
"ip": "192.168.144.174",
"pcl_data_type": 1,
"pattern_mode": 0,
"extrinsic_parameter": {
"roll": 0.0,
"pitch": 0.0,
"yaw": 0.0,
"x": 0,
"y": 0,
"z": 0
}
}
]
}
配置项说明:
| 字段 | 说明 | 示例 |
|---|---|---|
lidar_type | 雷达类型(8=MID-360) | 8 |
host_net_info | 主机(鲁班猫)网络配置 | IP: 192.168.144.100 |
lidar_configs.ip | 雷达IP地址 | 192.168.144.174 |
pcl_data_type | 点云数据类型(1=PointXYZRTL) | 1 |
pattern_mode | 扫描模式(0=非重复扫描) | 0 |
extrinsic_parameter | 外参(旋转、平移) | 默认全0 |
3.6 编译工作空间
使用colcon编译:
bash
cd ~/ros2_c colcon build
编译输出:
text
Starting >>> livox_ros_driver2 Finished <<< livox_ros_driver2 [26.1s] Summary: 1 package finished [26.5s]
为什么需要colcon build?
-
./build.sh humble只编译了驱动本身 -
colcon build会生成完整的ROS2包结构(install目录) -
只有执行colcon build后,
ros2 launch才能找到包
3.7 设置环境变量
临时生效(每次新终端都需要执行):
bash
source ~/ros2_c/install/setup.bash
永久生效(添加到.bashrc):
bash
echo "source ~/ros2_c/install/setup.bash" >> ~/.bashrc source ~/.bashrc
验证环境是否生效:
bash
ros2 pkg list | grep livox # 应显示:livox_ros_driver2
3.8 运行雷达驱动
仅发布数据(无可视化):
bash
ros2 launch livox_ros_driver2 msg_MID360_launch.py
带RViz2可视化界面:
bash
ros2 launch livox_ros_driver2 rviz_MID360_launch.py
运行成功的标志:
text
[INFO] [livox_lidar_publisher]: Livox Ros Driver2 Version: 1.2.6 [INFO] [livox_lidar_publisher]: Init lds lidar success! [INFO] [livox_lidar_publisher]: livox/lidar publish use PointCloud2 format
3.9 验证数据(另开终端)
查看可用话题:
bash
source ~/ros2_c/install/setup.bash ros2 topic list
预期输出:
text
/livox/lidar /livox/imu /parameter_events /rosout
查看点云数据:
bash
ros2 topic echo /livox/lidar --once
在RViz2中查看:
-
运行
rviz_MID360_launch.py -
在左侧Displays中添加PointCloud2
-
Topic选择
/livox/lidar -
调整Fixed Frame为
livox_frame
四、常见问题及解决方案
4.1 编译时找不到LIVOX_LIDAR_SDK_LIBRARY
错误信息:
text
CMake Error: Could not find LIVOX_LIDAR_SDK_LIBRARY
解决方案:
bash
# 先安装Livox-SDK2 cd ~/Livox-SDK2/build sudo make install sudo ldconfig # 重新编译livox_ros_driver2 cd ~/ros2_c/src/livox_ros_driver2 ./build.sh humble
4.2 找不到launch文件
错误信息:
text
file 'msg_MID360.launch.py' was not found
原因: 文件名写错了。
解决方案:
bash
# 查看正确的文件名 ls ~/ros2_c/src/livox_ros_driver2/launch_ROS2/ # 正确名称是 msg_MID360_launch.py(注意下划线的位置) ros2 launch livox_ros_driver2 msg_MID360_launch.py
4.3 Package not found
错误信息:
text
Package 'livox_ros_driver2' not found
原因: 没有source环境变量或没有colcon build。
解决方案:
bash
cd ~/ros2_c colcon build source install/setup.bash ros2 launch livox_ros_driver2 msg_MID360_launch.py
4.4 无法ping通雷达
排查步骤:
bash
# 1. 检查网口IP是否正确 ifconfig eth1 # 2. 检查网线连接 # 雷达通常使用PoE供电,确保网线同时供电 # 3. 检查雷达指示灯状态 # 绿灯常亮:正常工作 # 绿灯闪烁:正在启动或异常 # 4. 抓包查看是否有数据 sudo tcpdump -i eth1 -n host 192.168.144.174
4.5 Exec format error
错误信息:
text
Exec format error
原因: 运行了x86_64的可执行文件,但系统是ARM架构。
解决方案:
-
确保所有编译都在ARM设备上完成
-
不要从x86电脑复制二进制文件到ARM设备
-
使用
file命令检查文件架构:bash
file ~/ros2_c/install/livox_ros_driver2/lib/livox_ros_driver2/livox_ros_driver2_node # ARM64应显示:ELF 64-bit LSB ARM aarch64
五、常用命令速查
bash
# 网络配置 sudo ifconfig eth1 192.168.144.100 netmask 255.255.255.0 ping 192.168.144.174 # 编译与运行 cd ~/ros2_c colcon build source install/setup.bash ros2 launch livox_ros_driver2 rviz_MID360_launch.py # 查看数据 ros2 topic list ros2 topic echo /livox/lidar --once ros2 topic hz /livox/lidar # 查看节点信息 ros2 node list ros2 node info /livox_lidar_publisher
更多推荐

所有评论(0)