MID360S调试

1. Ubuntu 20.04 配置有线网卡 IP

让电脑和 Mid-360S 在同一个局域网内互相通信

Mid-360S 默认采用静态 IP。其默认地址规则为:

复制代码
雷达 IP = 192.168.1.1XX

其中 XX 是雷达序列号最后两位数字。

例如:

序列号末两位 雷达默认 IP
05 192.168.1.105
32 192.168.1.132
88 192.168.1.188

电脑网口建议设置为:

复制代码
192.168.1.50
子网掩码:255.255.255.0

这是 Mid-360S 用户手册给出的首次直连配置方式。

1.确认有线网卡名称

打开终端,输入

bash 复制代码
ip -br link

输出

bash 复制代码
lo               UNKNOWN        00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP> 
enp8s0           UP             bc:ec:a0:48:4e:80 <BROADCAST,MULTICAST,UP,LOWER_UP> 
wlp0s20f3        UP             4c:5f:70:75:f0:30 <BROADCAST,MULTICAST,UP,LOWER_UP> 
enx00e04c36016f  UP             00:e0:4c:36:01:6f <BROADCAST,MULTICAST,UP,LOWER_UP> 

拔掉电脑自带网线后

输入

bash 复制代码
ip -br link

输出

bash 复制代码
lo               UNKNOWN        00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP> 
enp8s0           DOWN           bc:ec:a0:48:4e:80 <NO-CARRIER,BROADCAST,MULTICAST,UP> 
wlp0s20f3        UP             4c:5f:70:75:f0:30 <BROADCAST,MULTICAST,UP,LOWER_UP> 
enx00e04c36016f  UP             00:e0:4c:36:01:6f <BROADCAST,MULTICAST,UP,LOWER_UP> 

雷达连接使用的网卡是 enx00e04c36016f

原因是拔掉另一根电脑网线后:

复制代码
enp8s0           DOWN
enx00e04c36016f  UP

说明:

复制代码
enp8s0            原来连接的另一根网线,当前已断开
enx00e04c36016f   仍保持物理连接,就是连接 Mid-360S 的 USB 转网口
wlp0s20f3         Wi-Fi,暂时不要改

接下来所有雷达网络命令中的网卡名,都使用:

复制代码
enx00e04c36016f

2.确认雷达物理链路正常

先执行:

复制代码
cat /sys/class/net/enx00e04c36016f/carrier

如果输出:

复制代码
1

说明雷达与电脑之间的网线物理连接已经建立。

也可以继续执行:

复制代码
sudo ethtool enx00e04c36016f | grep "Link detected"

正常应显示:

复制代码
Link detected: yes

如果提示没有 ethtool,先不用管,carrier 输出为 1 就可以继续。

3:查看这个网卡当前是否已有 IP

执行:

复制代码
复制代码
ip -4 addr show dev enx00e04c36016f

发现没有输出。重点看里面是否存在类似,没有输出也不妨碍下面的进程,继续往下进行:

复制代码
inet xxx.xxx.xxx.xxx/xx

其实不管当前有没有 IP,下面我们都将它临时设置为雷达调试所需的:

复制代码
192.168.1.50/24

4:给雷达网卡配置静态 IP

直接逐行执行下面命令:

复制代码
sudo ip link set enx00e04c36016f up
sudo ip addr flush dev enx00e04c36016f
sudo ip addr add 192.168.1.50/24 dev enx00e04c36016f
ip -4 addr show dev enx00e04c36016f

最后一条命令执行后,正常应看到:

复制代码
inet 192.168.1.50/24 scope global enx00e04c36016f

完整结果:

bash 复制代码
5: enx00e04c36016f: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 192.168.1.50/24 scope global enx00e04c36016f
       valid_lft forever preferred_lft forever

这就说明电脑上的雷达网口 IP 已经配置成功。

说明:

  • enx00e04c36016f 已确认是雷达连接网口;
  • 电脑端静态 IP 已成功设置为 192.168.1.50
  • LOWER_UP 表示以太网物理链路已经建立,雷达线束至少在网络物理连接层面是通的。

下一步是:找到雷达实际 IP,并 ping 通它。


5. 先看雷达本体标签

  1. 雷达确实是 Livox MID-360S,不是老款 MID-360。

  2. 雷达侧面二维码标签下方可读到编号:

    ARMCP160034649

末两位是 49。按照 Mid-360S 出厂默认静态 IP 规则,当前首先尝试的雷达地址应为:

复制代码
192.168.1.149

你电脑连接雷达的网口已经正确设置为:

复制代码
网卡:enx00e04c36016f
电脑 IP:192.168.1.50/24

官方手册规定:Mid-360S 默认静态 IP 为 192.168.1.1XXXX 为设备序列号最后两位;默认子网掩码为 255.255.255.0,首次连接电脑端设置为 192.168.1.50


6先把雷达放好,不要继续手持调试

从照片看雷达已经通电。现在将雷达放在桌面上,蓝色光学窗口朝上,周围不要有遮挡物:

复制代码
          蓝色光学窗口
               ↑
       ┌────────────┐
       │  MID-360S  │
       └────────────┘
        平放在桌面上

注意:

  • 不要用手覆盖蓝色光学窗口;
  • 不要让另一个激光雷达正对着它扫描;
  • 不要扭转已经接好的黑色线缆;
  • 调试阶段蓝白等功能线继续悬空并绝缘;
  • RJ45 只接普通网口,不接 PoE 供电设备。

Mid-360S 的工作电压范围是 9--27 V DC ,推荐 12 V ;正常功耗约 6.5 W ,在常温下启动功率可达到约 18 W 并持续约 8 秒。若你当前使用的不是确认过极性的 9--27 V 直流电源,应先断电检查供电。


7.现在测试默认 IP:192.168.1.149

你当前电脑网口已经配好,不需要重新设置 IP。

直接执行下面三条命令:

复制代码
cat /sys/class/net/enx00e04c36016f/carrier
ping -I enx00e04c36016f -c 4 192.168.1.149
ip neigh show dev enx00e04c36016f

1. 第一条命令的正常结果

复制代码
cat /sys/class/net/enx00e04c36016f/carrier

输出:

复制代码
1

表示电脑和雷达之间的物理网线连接正常。

你之前的输出中已经有:

复制代码
<UP,LOWER_UP>

所以这一项大概率已经没问题。


2. 第二条命令的正常结果

复制代码
ping -I enx00e04c36016f -c 4 192.168.1.149

若雷达仍使用出厂默认地址,会看到类似,这个确实看到了:

bash 复制代码
PING 192.168.1.149 (192.168.1.149) from 192.168.1.50 enx00e04c36016f: 56(84) bytes of data.
64 字节,来自 192.168.1.149: icmp_seq=1 ttl=255 时间=2.39 毫秒
64 字节,来自 192.168.1.149: icmp_seq=2 ttl=255 时间=1.73 毫秒
64 字节,来自 192.168.1.149: icmp_seq=3 ttl=255 时间=1.97 毫秒

这表示:

复制代码
雷达供电正常
电脑与雷达的网线链路正常
电脑 IP 配置正常
雷达当前 IP 为 192.168.1.149

3. 第三条命令可能出现的结果

复制代码
ip neigh show dev enx00e04c36016f

若看到:

bash 复制代码
192.168.1.149 lladdr 88:29:85:a3:fd:bc REACHABLE

或者:

复制代码
192.168.1.149 lladdr xx:xx:xx:xx:xx:xx STALE

都说明电脑已经通过这个网口识别到了雷达。

成功了,你的 MID-360S 已经完成网络层连通测试

你现在的状态是:

复制代码
雷达型号:Livox MID-360S
雷达编号:ARMCP160034649
雷达 IP:192.168.1.149
电脑雷达网口:enx00e04c36016f
电脑网口 IP:192.168.1.50/24
网络状态:物理链路正常,Ping 正常,邻居表可识别雷达

你的结果中:

复制代码
carrier = 1

表示网线物理连接正常;

复制代码
64 字节,来自 192.168.1.149

表示电脑已经能访问雷达;

复制代码
192.168.1.149 lladdr 88:29:85:a3:fd:bc REACHABLE

表示电脑已经识别到雷达设备。

4.先固定雷达访问路由

你刚才使用 ping -I enx00e04c36016f 强制走了雷达网口。但 Livox Viewer 2 不一定会采用同样的强制方式,因此先给雷达增加一条明确路由,避免 Wi-Fi 或其他网口干扰。

执行:

复制代码
sudo ip route replace 192.168.1.149/32 dev enx00e04c36016f src 192.168.1.50

检查路由:

复制代码
ip route get 192.168.1.149

正常应显示:

复制代码
192.168.1.149 dev enx00e04c36016f src 192.168.1.50

再做一次不指定网卡的测试:

复制代码
ping -c 4 192.168.1.149

如果仍然能收到回复,说明后续 Viewer 和 ROS 访问雷达时的网络路径基本正确。

当前通过 ip addr addip route replace 设置的是临时配置,电脑重启或重新插拔 USB 网卡后可能失效。等 Viewer 和 ROS 调试完成后,再将它设置成永久配置。


二、下载 Livox Viewer 2 - Linux

1. 保持当前连接方式不变

现在不要断开:

  • MID-360S 电源;
  • RJ45 网线;
  • USB 转网口;
  • 雷达航空插头。

雷达保持放在桌面上,蓝色光学窗口不要被手或线缆遮挡。

2. 从官网下载安装包

在 Ubuntu 浏览器中进入 Livox Mid-360S Downloads 页面,网址Downloads - Mid-360S LiDAR Sensor - Livox找到:

下载 Linux 版本。官方页面已列出适用于 Mid-360S 的 Linux 版 Viewer。

下载完成后,在终端中查看文件:

三、解压并启动 Livox Viewer 2

下载文件是 .zip

执行:

bash 复制代码
mkdir -p ~/LivoxViewer2
cd "$(xdg-user-dir DOWNLOAD)"
unzip LViewer2_2.5.9_Linux.zip -d ~/LivoxViewer2

找到启动脚本

启动:

bash 复制代码
chmod +x ~/LivoxViewer2/Viewer2_2.5.9_Linux/LivoxViewer2.sh
cd ~/LivoxViewer2/Viewer2_2.5.9_Linux
./LivoxViewer2.sh

四、Viewer 打开后具体怎么操作

1. 查看是否发现设备

软件打开后,在左侧或设备列表区域查看是否出现:

复制代码
MID-360S

或者设备编号:

复制代码
ARMCP160034649

设备地址应显示为:

复制代码
192.168.1.149

如果设备出现,说明 Viewer 已成功发现雷达。

2. 连接雷达

选中设备后,点击类似以下功能按钮:

复制代码
Connect
Start
Sampling
Play

具体文字随 Viewer 版本界面可能略有不同。

连接成功后,主窗口中应出现实时三维点云。

3. 正常点云应该是什么样

雷达平放在桌面时,你应该看到:

  • 桌面或地面形成较连续的平面点云;
  • 周围墙面、显示器、键盘等形成空间轮廓;
  • 轻轻移动一个纸箱或手臂时,点云会实时变化。

这一步的目标不是建图,而是确认:

复制代码
雷达能够正常输出点云
光学扫描部分正常
网络数据传输稳定
设备没有报错

4. 在 Viewer 中记录三项信息

进入设备信息区域后,记录:

复制代码
设备型号:MID-360S
设备 IP:192.168.1.149
固件版本:________

暂时不要:

  • 修改雷达 IP;
  • 升级固件;
  • 修改扫描模式;
  • 修改外参;
  • 接入 FAST-LIVO2。

五、下载最新 Livox-SDK2和livox_ros_driver2

1. 下载 SDK2

为了不影响你以前可能存在的旧工程,这里使用单独目录:

复制代码
cd ~
git clone https://github.com/Livox-SDK/Livox-SDK2.git

编译并安装 SDK

复制代码
cd ~/Livox-SDK2
mkdir build

cd build

cmake ..

make -j

sudo make install
sudo ldconfig

编译完成后检查库文件是否已安装:

复制代码
ldconfig -p | grep livox

显示

2.建立独立 ROS 测试工作空间

你后面还要继续使用 FAST-LIVO2,因此先不要把驱动直接塞进现有的 FAST-LIVO2 工作空间。单独建立一个 MID-360S 驱动测试空间:

复制代码
mkdir -p ~/ws_livox_mid360s/src
cd ~/ws_livox_mid360s/src

git clone https://github.com/Livox-SDK/livox_ros_driver2.git

确认下载的是支持 MID-360S 的版本:

复制代码
ls ~/ws_livox_mid360s/src/livox_ros_driver2/config/MID360s_config.json
ls ~/ws_livox_mid360s/src/livox_ros_driver2/launch_ROS1/*MID360s*

正常应显示:

复制代码
/home/zdf/ws_livox_mid360s/src/livox_ros_driver2/config/MID360s_config.json
/home/zdf/ws_livox_mid360s/src/livox_ros_driver2/launch_ROS1/msg_MID360s.launch
/home/zdf/ws_livox_mid360s/src/livox_ros_driver2/launch_ROS1/rviz_MID360s.launch

当前官方仓库中确实存在这些 MID-360S 专用配置与 ROS1 启动文件。

3、编译 livox_ros_driver2

执行:

复制代码
cd ~/ws_livox_mid360s/src/livox_ros_driver2

source /opt/ros/noetic/setup.bash
./build.sh ROS1

编译过程中不要同时 source 你的 FAST-LIVO2 工作空间,也不要运行其他 Livox 驱动。

编译结束后检查工作空间是否生成:

复制代码
ls ~/ws_livox_mid360s/devel/setup.bash

若能看到该文件,说明 ROS 驱动编译完成。


4.、修改 MID-360S 配置文件

你的实际参数已经确定为:

复制代码
电脑网口 IP:192.168.1.50
雷达 IP:    192.168.1.149

官方 MID360s_config.json 默认写的是:

复制代码
"host_ip" : "192.168.1.5"

以及:

复制代码
"ip" : "192.168.1.12"

因此必须改成你的真实地址。

4.1. 备份原配置文件

复制代码
cd ~/ws_livox_mid360s/src/livox_ros_driver2/config
cp MID360s_config.json MID360s_config.json.bak

4.2. 自动替换 IP

执行:

复制代码
sed -i 's/"host_ip" : "192\.168\.1\.5"/"host_ip" : "192.168.1.50"/' MID360s_config.json
sed -i 's/"ip" : "192\.168\.1\.12"/"ip" : "192.168.1.149"/' MID360s_config.json

4.3. 检查修改结果

复制代码
grep -nE '"host_ip"|"ip"' MID360s_config.json

正常应看到:

复制代码
"host_ip" : "192.168.1.50",
"ip" : "192.168.1.149",

不要修改:

复制代码
"Mid360s"

也不要改动端口号、扫描模式或外参参数。


5、确认电脑网口配置仍然存在

你之前用 ip addr add 配置的是临时 IP。只要没有重启电脑或拔掉 USB 网卡,一般仍会保留。

执行:

复制代码
ip -4 addr show dev enx00e04c36016f

应能看到:

复制代码
inet 192.168.1.50/24

如果没有这一行,重新设置:

复制代码
sudo ip link set enx00e04c36016f up
sudo ip addr flush dev enx00e04c36016f
sudo ip addr add 192.168.1.50/24 dev enx00e04c36016f

再确认雷达仍可访问:

复制代码
ping -c 3 192.168.1.149

运行 ROS 前必须关闭 Livox Viewer

6、启动 RViz 查看 ROS 点云

配置文件改好、Viewer 关闭后,执行:

复制代码
source /opt/ros/noetic/setup.bash
source ~/ws_livox_mid360s/devel/setup.bash

roslaunch livox_ros_driver2 rviz_MID360s.launch

rviz_MID360s.launch 用于连接 MID-360S 并在 RViz 中显示 PointCloud2 点云;点云默认发布频率为 10.0 Hz

如果 RViz 打开后暂时没有显示点云,检查左侧:

复制代码
Global Options → Fixed Frame

将其设置为:

复制代码
livox_frame

7、确认 ROS 点云和 IMU 话题

保持驱动和 RViz 正在运行,另开一个终端:

复制代码
source /opt/ros/noetic/setup.bash
source ~/ws_livox_mid360s/devel/setup.bash

rostopic list | grep livox

继续检查:

复制代码
rostopic hz /livox/lidar
rostopic hz /livox/imu

正常目标是:

复制代码
/livox/lidar    约 10 Hz
/livox/imu      能持续输出频率

再查看一帧 IMU:

复制代码
rostopic echo -n 1 /livox/imu

你下次只为了在 RViz 里查看 MID-360S 点云,流程可以简化为:

复制代码
复制代码
source /opt/ros/noetic/setup.bash
source ~/ws_livox_mid360s/devel/setup.bash
roslaunch livox_ros_driver2 rviz_MID360s.launch

但有一个前提:电脑连接雷达的网卡必须仍然是 192.168.1.50/24

你之前使用的是临时配置:

复制代码
复制代码
sudo ip addr add 192.168.1.50/24 dev enx00e04c36016f

这种配置在重启电脑、拔插 USB 转网口或 NetworkManager 重新管理网卡后可能失效。因此,下次启动前先检查一次:

复制代码
复制代码
ip -4 addr show dev enx00e04c36016f

如果看到:

复制代码
复制代码
inet 192.168.1.50/24

就可以直接启动 ROS 驱动。

如果没有看到,则要先重新配置 IP:

复制代码
复制代码
sudo ip link set enx00e04c36016f up
sudo ip addr flush dev enx00e04c36016f
sudo ip addr add 192.168.1.50/24 dev enx00e04c36016f
ping -c 3 192.168.1.149

然后再启动:

复制代码
复制代码
source /opt/ros/noetic/setup.bash
source ~/ws_livox_mid360s/devel/setup.bash
roslaunch livox_ros_driver2 rviz_MID360s.launch
相关推荐
swipe1 天前
从 0 到 1 实现大文件上传:分片、秒传、断点续传、暂停、重试与服务端合并
前端·javascript·面试
爱勇宝1 天前
我做了一个只用来搜歌词的小 App
android·前端·后端
甲维斯1 天前
用AI还原《坦克大战》并3D化升级!
前端·人工智能·游戏开发
IT_陈寒1 天前
SpringBoot自动配置坑了我一晚上,原来问题出在这
前端·人工智能·后端
kyriewen1 天前
AI 生成的代码能跑就行?这 5 个坑迟早炸
前端·javascript·ai编程
程序猿大帅1 天前
别再只当调包侠了:用 Spring AI 落地 Function Calling,我被大模型硬生生砸出了三个大坑
java
谷子在生长1 天前
纯血鸿蒙自定义弹窗最佳实践:从「到处复制」到「一行调用」
前端·harmonyos
壹方秘境1 天前
我用Go语言开发了一个跨平台的HTTPS抓包和调试工具
前端·后端·ios
神秘面具男1 天前
HarmonyOS 6.0跨端远程控制
前端·后端
枫树下x1 天前
NestJS基础框架
前端