Skip to content

MID-360雷达环境搭建

很多人第一次拿到 Livox Mid360,最容易卡住的不是算法,而是最前面的那几步:设备怎么接、网口 IP 怎么配、上位机为什么看不到回传、驱动装完为什么 RViz 里没有点云。等这些基础链路都跑通以后,后面的 Fast-LIO 建图、PCD 地图保存,其实反而顺了不少。

这篇文章我就按一条完整的实操链路来整理:先把 Mid360 连到主机并确认设备回传,再装 Livox SDK 和 livox_ros_driver2,然后在 ROS2 里把点云跑起来,最后接 Fast-LIO 做实时建图,并把地图保存成 .pcd 文件。整篇会尽量按“步骤 + 原理 + 坑点”的方式来写,适合第一次接触 Mid360 的同学直接照着走。

先说一下这篇文章默认的使用场景:你手上已经有一台 Livox Mid360,一台装了 Ubuntu 22.04 和 ROS2 Humble 的主机,你希望先把雷达跑通,再进一步做点云建图。如果你现在还停留在“设备插上了但完全不知道下一步做什么”的阶段,那这篇正好就是给你看的。

首先要做的是准备好软件和连接环境。你至少需要这几样东西:Livox Mid360 本体、一台 Ubuntu 主机、一根网线,以及后面会用到的 Livox 官方上位机、你手头这份 Livox SDK2 v1.3.0、livox_ros_driver2 v1.2.5 和 Fast-LIO。这里建议你先有一个整体认知:这套流程其实可以拆成两段。前半段是“把雷达和电脑打通”,后半段是“让 ROS2 和算法真正吃到点云数据”。前半段没通,后面所有编译和建图都只是在空转。

一、先把 Mid360 和电脑连通

第一步先去 Livox 官网下载 Mid360 对应的上位机软件。下载完成后把压缩包解压,然后用网线把 Mid360 直接接到你的主机网口上。这里视频里是接到 NUC 上,本质上就是把雷达和 Ubuntu 主机放到一条独立的有线网络链路里。

很多人这一步会下意识想当然,觉得“网线插上了就该有数据”。但雷达类设备和普通家用网络设备不一样,它通常不会像路由器那样自动帮你把网络配好。你需要主动把主机的有线网卡改到和雷达同一网段里,不然上位机打不开、驱动连不上、点云不出来,往往都只是这个最底层的问题没有解决。

二、配置有线网卡 IP

这一步是整篇里最关键的基础步骤之一。按照视频里的配置方式,需要把主机有线连接改成手动设置,并把 IPv4 地址设成:

text
IP 地址:192.168.1.50
子网掩码:255.255.255.0
网关:可留空

设置完成后直接应用即可。这样做的目的,是让主机和 Mid360 处于一个能够直接通信的局域网网段里。很多教程写到这里只给参数,不解释为什么这么做,但其实原理很简单:雷达设备本身有固定通信方式,主机如果不落在对应网段,就算物理上已经插好网线,上层软件也还是看不到它。

这里顺手提醒两个很常见的坑。第一,很多人会把子网掩码输错,尤其是手打配置时最容易写错数字;第二,如果你的机器同时开着别的网络管理配置,比如桥接、虚拟机网卡或者多个有线网口,最后真正生效的未必是你以为的那块网卡。所以上位机一旦连不上,优先回头检查这里,不要一上来就怀疑驱动或者算法。

三、用上位机确认雷达已经有回传

IP 配好以后,启动刚刚下载的 Mid360 上位机,把通信地址切换到你设置好的 192.168.1.50 这一侧,正常情况下就能看到设备回传的点云图像或者相关数据画面。

这一环节的意义非常大,因为它帮你先确认了一个事实:现在至少“设备通电 + 网线连接 + 网口 IP 配置”这条链路是打通的。只要上位机已经能看到数据,后面就可以比较安心地进入 SDK 和 ROS2 的安装流程;反过来,如果上位机这一步都还没有回传,那就不建议立刻往后装驱动,因为后面九成还是会绕回来排查网络配置。

四、安装你这份 Livox SDK2 v1.3.0

设备能连通以后,下一步就是安装 Livox 官方提供的 SDK。这里建议直接去 Livox 官方文档和官方 GitHub 仓库,按 README 的步骤来做,不要随便找二手教程抄命令。原因很现实:雷达驱动和 SDK 这一层,版本兼容、依赖项、系统环境都很容易出小问题,最稳的办法还是以官方文档为准。

常用入口建议直接记住这几个:

  • Livox 官网:https://www.livoxtech.com/
  • Mid360 产品页:https://www.livoxtech.com/mid-360
  • Livox SDK2 仓库:https://github.com/Livox-SDK/Livox-SDK2
  • livox_ros_driver2 仓库:https://github.com/Livox-SDK/livox_ros_driver2
  • Fast-LIO 仓库:https://github.com/hku-mars/FAST_LIO

如果你走的是 Ubuntu 22.04 + ROS2 Humble 这条链路,建议就直接固定在你现在这套材料上:Livox SDK2 v1.3.0 + livox_ros_driver2 v1.2.5 + Fast-LIO。这样后面复制命令、对配置和排问题都会顺手得多,不用来回切版本。

安装 SDK 时,最实用的做法就是直接用你发来的这份本地包,不再额外去 GitHub 拉一份。为了后面操作统一,我已经把它整理到了 workspace 下面:

Ubuntu 22.04 + ROS2 Humble 下,直接按下面这组命令装就行:

bash
#准备Livox_SDK2这个SDK
cd Livox_SDK2
mkdir -p build
cd build
cmake ..
make -j$(nproc)
sudo make install

这一步你可以把它理解成后续整个驱动链路的基础。如果 SDK 没装好,那么后面 livox_ros_driver2 能不能正常工作、点云能不能顺利发布,都会受到影响。视频里提到安装完 SDK 之后最好重启一下环境,这个建议我觉得是值得听的。很多时候不是非重启不可,而是你刚装完依赖、改完环境变量或者系统状态还没完全刷新,重启一次能省掉很多莫名其妙的问题。

五、安装并配置你这份 livox_ros_driver2 v1.2.5

接下来就进入 ROS2 这一侧了。这里的核心工作是获取 livox_ros_driver2,按官方说明编译,然后修改配置文件,让它知道应该去接哪一台 Mid360。

bash
#准备livox_ros_driver2这个SDK

这份驱动自带 build.sh,而且 README 里明确给了 Humble 的编译方式,所以直接照它这套来最省事。建议把它放进你的 Humble 工作空间,例如:

bash
mkdir -p ~/ws_livox/src
cp -r /home/ubuntu/livox_ros_driver2 ~/ws_livox/src/
cd ~/ws_livox/src/livox_ros_driver2
source /opt/ros/humble/setup.bash
./build.sh humble

这份 build.sh 会在工作空间根目录执行 colcon build,所以你最好保持它的目录结构就是 ~/ws_livox/src/livox_ros_driver2 这种官方 README 里的形式。

真正容易卡住的不是编译,而是配置。视频里有一个比较关键的细节:配置时需要根据雷达机身标签值去填设备标识。做法大致是取标签值的末尾两位,前面补一个 1。例如末尾是 76,那就写成 176。这个细节看起来有点像“教程里的固定套路”,但本质上还是在做设备识别和参数匹配,所以建议你一定按官方说明核对,不要凭记忆乱填。

这一节建议你特别关注两类配置:一类是 Mid360 的网络通信地址,一类是驱动配置文件里和设备识别相关的参数。很多人编译驱动没报错,就以为配置也没问题,但实际情况往往是“程序能起来,数据却没有”。这类问题十有八九都出在参数没有对应上真实设备。

如果你后面发现驱动进程已经起来,但 RViz 里就是没有点云,第一优先检查的也不是 Fast-LIO,而是这里的配置文件。你这份驱动包里已经自带了现成的 Mid360 配置:

text
/mid360_humble_sdk/livox_ros_driver2/config/MID360_config.json

里面默认能看到这些关键值:

  • 主机 IP:192.168.1.5
  • 雷达 IP:192.168.1.12
  • Mid360 端口组:56100 ~ 56500
  • 主机接收端口组:56101 ~ 56501

所以如果你后面实际网络打算用 192.168.1.50 这套,就记得把这里的 host_net_infolidar_configs 一起对齐,不然 launch 正常也照样收不到数据。

六、编译并启动驱动,在 RViz 中查看点云

配置完成之后,就可以继续按官方步骤编译代码,然后运行对应的启动文件。视频里这一步的逻辑很清楚:先把基础驱动跑起来,再进入 RViz 看 Mid360 的点云显示效果。

这一段在你这套材料里其实已经很明确了,因为驱动包直接给了 ROS2 的 Mid360 launch 文件。编译完成后,先 source Humble 和工作空间:

bash
source /opt/ros/humble/setup.bash
source ~/ws_livox/install/setup.bash

如果你想直接连驱动并顺手打开 RViz,用它自带的这个启动文件就行:

bash
ros2 launch livox_ros_driver2 rviz_MID360_launch.py

如果你只想启动驱动节点、不自动拉起 RViz,那就用:

bash
ros2 launch livox_ros_driver2 msg_MID360_launch.py

这两个文件都在你这份驱动包里:

text
launch_ROS2/rviz_MID360_launch.py
launch_ROS2/msg_MID360_launch.py

当你真的在 RViz 里看到点云的时候,这件事的意义不只是“画面出来了”。它其实说明四层东西同时成立:

  • 主机和雷达已经能正常通信
  • Livox SDK 这层已经打通
  • livox_ros_driver2 能正常工作
  • ROS2 的点云消息链路是通的

换句话说,到了这一步,你就已经从“设备通电”正式跨进“数据可用”的阶段了。后面的建图和算法,才真正有了运行基础。

七、接入 Fast-LIO 做实时建图

如果你的目标不只是看原始点云,而是继续做位姿估计和建图,那下一步就可以接 Fast-LIO。视频里接入的是 ROS2 版本的 Fast-LIO,它本质上是一套实时激光雷达惯性里程计框架,适合把雷达数据进一步组织成连续的空间地图。

这里的顺序一定不要搞反:先确认 livox_ros_driver2 已经在正常发布 Mid360 的点云数据,再去编译和启动 Fast-LIO。因为 Fast-LIO 本身不是替你解决设备连接问题的,它是建立在“前面的点云数据已经正常流出来”这个前提上的。

比较顺手的做法,是把 Fast-LIO 也放进同一个 Humble 工作空间里,然后和驱动一起编译。命令可以直接写死成:

bash
cd ~/ws_livox/src
git clone https://github.com/hku-mars/FAST_LIO.git
cd ~/ws_livox
source /opt/ros/humble/setup.bash
colcon build --symlink-install
source install/setup.bash

编译完成后,再启动 Fast-LIO 的建图 launch 文件。视频里提到的就是一个偏 mapping 的启动入口,这也很符合我们现在这个目标:先把实时建图跑起来。具体 launch 名称还是建议你以本地仓库 README 为准,但工作流上就是:先起 livox_ros_driver2,再起 Fast-LIO 的 mapping launch

八、观察实时建图效果

Fast-LIO 启动成功后,你会看到一个很有代表性的现象:画面里不再只是简单地刷新一帧一帧的原始点云,而是随着你移动和晃动 Mid360,环境中的点云数据被持续补全,逐渐形成一张越来越完整的地图。

这一步很重要,因为它说明系统已经不只是“收到了雷达数据”,而是在持续做状态估计和地图融合。对于初学者来说,很多时候直到看到这一幕,才会真正理解“点云显示”和“建图运行”其实不是一回事。前者更像是数据可视化,后者才是算法真正开始工作。

九、保存点云地图为 PCD 文件

实时建图跑起来以后,下一步通常就是把地图保存下来。视频里的做法是调用 Fast-LIO 提供的保存地图服务,把当前建好的点云地图导出成 .pcd 文件。

这一步的核心不是命令本身,而是思路:先确认 Fast-LIO 里对应的地图保存服务已经存在,然后再去调用它。你可以先列一下当前 ROS2 服务,看看和地图保存有关的接口是否已经起来:

bash
source /opt/ros/humble/setup.bash
source ~/ws_livox/install/setup.bash
ros2 service list

确认服务存在后,再根据该项目的接口定义去调用保存服务。不同版本项目的服务名和参数格式可能略有区别,所以最稳的方式还是先看 README 或 ros2 interface 输出,再执行 ros2 service call。调用成功之后,你应该能在工作目录或者指定输出位置看到一个类似 test.pcd 的文件。

如果你之前只是在 RViz 里“看见了点云”,那到了保存出 .pcd 这一步,才算真正把结果落盘。这个区别挺重要的,因为很多后续工作,比如重定位、地图复用、离线查看、导航实验,都是从这个导出的地图文件开始的。

十、查看导出的 PCD 地图

地图保存完成以后,可以再用一个 PCD 查看工具把它打开确认效果。视频里提到的是借助 VS Code 的相关扩展来快速预览,这种方式对日常检查其实挺方便,不一定非得上特别重的点云软件。

这一步的作用主要有两个:一是确认你保存出来的文件不是空的,二是确认地图整体形状是否符合预期。如果这里看到的地图结构已经比较完整,那说明从 Mid360 连接、驱动发布到 Fast-LIO 建图这整条链路基本就已经跑顺了。

十一、这些地图后续可以做什么

很多人第一次把 .pcd 文件导出来,容易停在“我终于把地图存下来了”这一步。但实际上,这种点云地图真正有价值的地方在于后续应用。比如它可以作为重定位的参考地图,也可以用于导航相关算法,或者作为你之后继续做 SLAM、感知融合、机器人实验的基础数据。

所以从学习路径上看,这套流程的意义不只是把 Mid360 点亮,而是把你从“硬件能连通”推进到“地图已经可以作为算法输入”。这一步跨过去之后,后面无论是做建图优化,还是做定位与导航,思路都会清楚很多。

十二、几个我觉得最容易踩的坑

最后补几个我觉得最容易出问题的地方,你后面真的上手时大概率会遇到。

第一个坑是网口 IP 没配对。这几乎是所有问题的源头。上位机连不上、驱动没数据、RViz 空白,第一反应都应该先回去看 IP 和子网掩码。

第二个坑是上位机通了,但 ROS2 侧还是没点云。这种情况通常就不要再盯着网络看了,而是重点检查 SDK、livox_ros_driver2 的编译和配置文件,尤其是设备参数有没有填对。

第三个坑是Fast-LIO 起得来,但地图效果不对。这时候要区分清楚是“点云源头就不稳定”,还是“算法参数或环境运动方式有问题”。如果前面的原始点云都不稳定,那建图结果一定也不会好。

第四个坑是保存地图服务没有正常调用。如果 .pcd 文件始终没生成,就优先检查对应服务有没有起来、调用有没有成功,而不是先去怀疑查看工具。

另外,如果你是在虚拟机、桥接网卡或者 ARM 平台上折腾,这些环境因素本身也会额外引入不少兼容性问题。很多看起来像“驱动问题”的现象,最后查出来其实都是网络接口或者系统环境的问题。

资料来源

  • Livox 官网:https://www.livoxtech.com/
  • Mid360 产品页:https://www.livoxtech.com/mid-360
  • Livox SDK2:https://github.com/Livox-SDK/Livox-SDK2
  • livox_ros_driver2:https://github.com/Livox-SDK/livox_ros_driver2
  • Fast-LIO:https://github.com/hku-mars/FAST_LIO
  • 视频来源:B站《【MRobot小课堂】视觉组:Hello Mid360 (使用非讲解)》

写在最后

我自己的看法是,Mid360 这类设备真正难的,从来不是“怎么把一个命令敲出来”,而是你要先建立一条正确的调试顺序:先确认设备联通,再确认上位机回传,然后装 SDK 和驱动,把点云在 RViz 里跑起来,最后再去接 Fast-LIO 做建图。

只要顺序对了,很多问题其实都不会乱。最怕的是前面网络还没通,后面已经开始怀疑算法;或者驱动参数都没对上,就急着调建图效果。工程里真正省时间的方法,从来都不是到处试,而是把链路一层层打通。

最近更新