一、前言

最近在鲁班猫(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中查看:

  1. 运行 rviz_MID360_launch.py

  2. 在左侧Displays中添加PointCloud2

  3. Topic选择 /livox/lidar

  4. 调整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

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐