本文基于宇树官方G1机器人激光雷达开发文档(https://support.unitree.com/home/zh/G1_developer/lidar_Instructions),结合实际开发实操经验,完整复现Livox Mid-360激光雷达从硬件连接、网络配置、上位机调试,到SDK部署、ROS驱动接入、点云噪点处理的全流程,每个步骤均补充详细操作说明、命令解析、参数含义,新增大量运行结果截图对应描述、实操细节和踩坑总结,内容详实可直接复现,适合刚接触G1机器人和Mid-360雷达的开发者,助力快速完成雷达部署与开发。

关键词:宇树G1;Livox Mid-360;激光雷达;SDK开发;ROS驱动;点云处理;常见问题
在这里插入图片描述
在这里插入图片描述

一、G1机器人雷达基础信息与官方资料获取

1.1 雷达核心参数与安装说明

宇树G1机器人的激光雷达模块安装于机器人头部位置,选用的型号为Livox Mid-360,该雷达是Livox推出的一款高性价比、安全可靠的激光探测测距仪传感器,广泛应用于物流机器人、工业机器人、智慧城市等多个领域,能够完美支持建图、定位、障碍物识别、自主避障等核心功能的实现,是G1机器人实现环境感知的核心部件。

Mid-360雷达核心特性补充:

  • 探测范围:360°全向感知,无探测盲区,能够全方位捕捉周围环境信息;

  • 测距精度:误差控制在合理范围内,满足机器人自主导航、避障的精度需求;

  • 数据输出:支持实时输出点云数据、IMU数据,帧率稳定,可满足实时开发需求;

  • 尺寸结构:具体尺寸参数可参考官方附录(单位:mm),头部安装设计不影响机器人整体运动灵活性。

1.2 官方资料获取(必备)

开发过程中需频繁查阅官方资料,以下是核心资料的获取地址,建议收藏备用:

  • 雷达详情页:https://www.livoxtech.com/mid-360(了解雷达硬件参数、性能指标、应用场景);

  • 雷达资料下载页:https://www.livoxtech.com/mid-360/downloads(下载上位机、用户手册、配置文件等);

  • 雷达官方GitHub地址:https://github.com/Livox-SDK(获取SDK源码、驱动程序、示例代码);

  • 宇树G1官方开发文档:https://support.unitree.com/home/zh/G1_developer/lidar_Instructions(本文核心参考文档,包含雷达与机器人的适配细节)。

1.3 雷达坐标系说明

Mid-360雷达采用直角坐标系O-XYZ,其中点O为雷达原点,O-XYZ为雷达的点云坐标系,后续开发中(如SLAM建图、坐标转换)需明确雷达坐标系与G1机器人中心坐标系的对应关系,避免出现坐标偏差导致的开发问题。坐标系具体定义可参考官方文档中的图示,核心注意点:机器人运动时,雷达坐标系会随机器人整体运动,需通过IMU数据进行坐标校准。

二、硬件连接与网络配置(必做步骤,核心关键)

雷达数据获取的前提是完成硬件连接和网络配置,此步骤若出现问题,后续所有调试都会失败,需严格按照以下步骤操作,每一步都补充详细说明和注意事项。

2.1 硬件连接操作

核心连接方式:电脑网口 ↔ G1机器人肩部网口,使用千兆直连网线(建议选用质量较好的网线,避免因网线质量问题导致的连接不稳定、丢包等情况)。

操作步骤:

  1. 关闭G1机器人电源和电脑电源,避免带电插拔网线导致设备损坏;

  2. 将千兆网线的一端插入电脑的有线网口(确保电脑网口正常可用,若电脑无有线网口,可使用USB转网口适配器,建议选用千兆适配器);

  3. 将网线的另一端插入G1机器人肩部的网口(注意区分机器人肩部的网口和其他接口,避免插错);

  4. 分别开启电脑和G1机器人电源,等待设备正常启动(G1机器人启动完成后,头部雷达会有轻微转动,表明雷达已正常上电)。

注意事项:若连接后雷达无反应,检查网线是否插紧、机器人电源是否正常、电脑网口是否可用,可更换网线或电脑网口重新尝试。

2.2 电脑IP配置(分Windows和Ubuntu系统)

G1机器人雷达出厂默认IP地址为192.168.123.120,为了实现电脑与雷达的正常通信,需将电脑IP设置在192.168.123网段下,子网掩码和网关固定,具体配置步骤分系统详细说明。

2.2.1 Ubuntu系统(推荐开发系统,适配ROS)

本文以Ubuntu 20.04为例(适配ROS Noetic,后续ROS驱动开发需用到),配置步骤如下:

  1. 打开Ubuntu系统的“设置”(Settings),找到“网络”(Network)选项,点击进入;

  2. 在网络设置中,找到已连接的有线网络(通常显示为“PCI Ethernet”,状态为“Connected - 1000 MD/s”),点击右侧的设置图标;

  3. 在弹出的窗口中,切换到“IPv4”选项卡,将“IPv4 Method”从默认的“Automatic (DHCP)”改为“Manual”(手动配置);

  4. 点击“Addresses”下方的“+”号,添加IP地址配置,具体参数如下:

  5. Address(IP地址):192.168.123.123(可设置为192.168.123.xxx,xxx范围为2-254,避免与雷达IP 192.168.123.120冲突);

  6. Netmask(子网掩码):255.255.255.0(固定值,不可修改);

  7. Gateway(网关):192.168.123.1(固定值,不可修改)。

  8. DNS设置保持默认的“Automatic”即可,无需手动修改;

  9. 点击窗口右下角的“Apply”(应用),等待配置生效,生效后有线网络会重新连接,状态仍为“Connected”。
    在这里插入图片描述

2.2.2 Windows系统(适合快速调试、上位机操作)

Windows系统配置步骤如下,以Windows 10为例:

  1. 右键点击桌面右下角的网络图标,选择“打开网络和Internet设置”;

  2. 在弹出的窗口中,点击“高级网络设置”,然后选择“更多网络适配器选项”;

  3. 在“网络连接”窗口中,找到连接雷达的有线网络(通常显示为“以太网”,可能标注为“以太网8”等,根据实际连接情况区分),右键点击该网络,选择“属性”;

  4. 在弹出的“以太网属性”窗口中,找到“Internet 协议版本 4 (TCP/IPv4)”,选中该选项后点击“属性”;

  5. 在“TCP/IPv4属性”窗口中,选择“使用下面的IP地址”,输入以下参数:

  6. IP地址:192.168.123.123(与Ubuntu系统一致,避免与雷达IP冲突);

  7. 子网掩码:255.255.255.0(固定值);

  8. 默认网关:192.168.123.1(固定值)。

  9. DNS服务器地址保持默认的“自动获得DNS服务器地址”,无需手动输入;

  10. 点击“确定”保存配置,再点击“以太网属性”窗口的“确定”,完成IP配置。
    在这里插入图片描述

2.3 连通性测试(验证网络配置是否成功)

IP配置完成后,需通过ping命令测试电脑与雷达的连通性,确认网络连接正常,步骤如下:

  1. 打开电脑的终端(Ubuntu系统)或命令提示符(Windows系统,按下Win+R,输入cmd后回车);

  2. 在终端/命令提示符中输入以下命令:
    ping 192.168.123.120

  3. 按下回车后,观察ping的结果:

  4. 成功情况:出现“Reply from 192.168.123.120: bytes=32 time<1ms TTL=64”的提示,且持续输出,表明电脑与雷达已成功连通;

  5. 失败情况:出现“Request timed out”(请求超时)或“Destination host unreachable”(目标主机不可达),表明网络配置存在问题,需重新检查IP配置、网线连接。

  6. 测试完成后,按下Ctrl+C终止ping命令(Ubuntu系统)或Ctrl+Break终止(Windows系统)。

注意事项:若ping不通,优先检查以下几点:
① 网线是否插紧、是否为千兆直连线;
② 电脑IP是否正确设置在192.168.123网段;
③ 关闭电脑的防火墙、VPN(防火墙可能会阻止雷达与电脑的通信);
④ 重启雷达和电脑,重新尝试连接。

三、Livox Viewer 2 上位机快速上手(可视化雷达数据)

Livox Viewer 2是Livox官方推出的上位机软件,可直接查看雷达的实时点云数据、配置雷达参数、录制点云数据(LVX2格式),操作简单,适合快速验证雷达是否正常工作,是开发初期必备的调试工具。

3.1 上位机下载与安装

上位机软件需从Livox官方资料页下载,对应自己的电脑系统(Windows或Ubuntu),步骤如下:

  1. 打开Livox Mid-360资料下载页:https://www.livoxtech.com/mid-360/downloads;

  2. 下拉页面找到“Software”板块,可看到以下相关资源:

  3. Livox Viewer 2 Release Notes(版本说明,可了解版本更新内容);

  4. Livox Viewer 2 User Manual(用户手册,详细介绍上位机的使用方法);

  5. Livox Viewer 2 - Windows(Windows系统版本,2023-01-10发布);

  6. Livox Viewer 2 - Ubuntu(Ubuntu系统版本,2023-02-07发布)。

  7. 根据自己的电脑系统,点击对应的“Downloads”下载上位机安装包;

  8. 安装步骤:

  9. Windows系统:双击下载的安装包,按照提示下一步安装,可自定义安装路径,安装完成后桌面会出现快捷方式;

  10. Ubuntu系统:下载的是压缩包,解压后进入解压目录,找到可执行文件,赋予执行权限后即可运行(具体命令:chmod +x LivoxViewer2,然后./LivoxViewer2)。

3.2 上位机操作与点云查看

前提:已完成硬件连接和网络配置,电脑与雷达正常连通(ping测试通过)。

  1. 打开Livox Viewer 2上位机,启动后会自动检测网络适配器;

  2. 在软件界面左上角的“Adapter”下拉框中,选择我们配置的IP地址(192.168.123.123),若未自动出现,可手动输入后点击刷新;

  3. 等待几秒后,软件会自动搜索雷达,在“Lidar List”(雷达列表)中会显示Mid-360雷达的设备信息(如设备编号47MDL130010006),表明雷达已被成功识别;

  4. 点击雷达列表中的雷达,软件会自动连接雷达,连接成功后,界面右侧会实时显示雷达的点云数据;

  5. 上位机界面核心参数说明(可实时观察):

  6. Point Size(点大小):默认1 pixel,可根据需求调整,越大点云越清晰;

  7. Color(颜色):默认按Reflectivity(反射率)着色,反射率越高,颜色越亮(从0到255渐变);

  8. FrameTime(帧间隔):默认100ms,对应帧率10Hz,可在设置中调整;

  9. Points Num(点云数量):实时显示每帧的点云数量,正常情况下稳定在约19968点/帧(与官方示例一致);

  10. Filtered Points Num(过滤后点云数量):默认0,可开启过滤功能后查看。

  11. 额外操作:可点击界面上方的“Record Mode”(录制模式),选择LVX2格式,点击开始录制,将实时点云数据保存到本地,用于后续的点云后处理、算法测试。
    在这里插入图片描述

3.3 运行结果详解

成功运行后,上位机界面会呈现以下结果,可通过这些结果判断雷达是否正常工作:

  1. 点云显示:界面右侧实时显示360°全向点云,能够清晰看到周围环境的轮廓(如墙壁、桌椅、地面等),点云分布均匀,无明显断连、空缺;

  2. 参数稳定:Points Num稳定在19000-20000点/帧,FrameTime稳定在100ms左右,无大幅波动;

  3. 无警告提示:雷达列表中无红色警告(若出现警告,可查看警告信息,通常是连接不稳定或参数配置问题);

  4. 录制功能正常:点击录制后,可在指定路径下生成LVX2格式文件,后续可通过上位机重新打开查看录制的点云数据。

异常情况:若点云出现大面积空缺、帧率波动过大、雷达无法识别,需检查网络连接、雷达供电,或重启上位机、雷达后重新尝试。

3.4 上位机使用注意事项

  • 不要在G1机器人的Jetson Orin Nx(PC2)的Ubuntu系统上直接运行LivoxViewer2.sh,会报错“Exec format error”(执行格式错误),建议使用外接电脑连接G1肩部网口,配置雷达IP及相关参数;

  • 若上位机搜不到雷达,可尝试重启上位机、重新插拔网线,或确认Adapter IP设置正确;

  • 上位机的详细使用方法,可参考官方下载的《Livox Viewer 2 User Manual》(用户手册),里面包含更多高级功能(如参数配置、点云过滤、数据导出等)。

四、通过Livox-SDK2获取点云数据(C/C++开发)

Livox SDK2是Livox官方推出的软件开发工具包,专为HAP、Mid-360等所有Livox激光雷达设计,基于C/C++开发,遵循Livox SDK2通信协议,提供易于使用的C风格API,开发者可通过SDK快速连接雷达、接收点云数据,进行二次开发(如点云处理、算法部署等)。

4.1 SDK下载与编译安装

本文以Ubuntu 20.04系统为例,详细说明SDK的克隆、编译、安装步骤,Windows系统操作类似,可参考官方文档。

  1. 打开Ubuntu终端,确保电脑已安装git(若未安装,执行命令:sudo apt-get install git);

  2. 克隆Livox-SDK2源码到本地(可自定义克隆路径,本文以home目录为例):
    git clone https://github.com/Livox-SDK/Livox-SDK2.git命令解析:git clone 用于从GitHub克隆源码仓库,后面的地址是Livox-SDK2的官方仓库地址,克隆完成后,home目录下会出现Livox-SDK2文件夹。

  3. 进入SDK目录,创建build文件夹(用于存放编译文件):
    cd ./Livox-SDK2/ mkdir build

  4. 进入build文件夹,执行cmake编译和make安装:
    cd build cmake .. && make -j
    sudo make install命令解析:

  5. cmake ..:用于生成Makefile文件,“..”表示CMakeLists.txt文件在上级目录(Livox-SDK2目录);

  6. make -j:用于编译源码,“-j”表示多线程编译,可加快编译速度(具体线程数可根据电脑配置调整,如make -j4);

  7. sudo make install:用于将编译好的库文件安装到系统目录(/usr/local/lib)和头文件安装到/usr/local/include,方便后续开发时调用。

  8. 编译安装验证:安装完成后,可在/usr/local/lib目录下看到liblivox_lidar_sdk_*相关库文件,在/usr/local/include目录下看到livox_lidar_*相关头文件,表明安装成功。

4.2 SDK卸载方法(可选)

若后续需要卸载SDK,可在终端执行以下命令,删除安装的库文件和头文件:
sudo rm -rf /usr/local/lib/liblivox_lidar_sdk_* sudo rm -rf /usr/local/include/livox_lidar_*命令解析:rm -rf 用于强制删除文件/文件夹,这里分别删除SDK的库文件和头文件,执行后SDK即卸载完成。

4.3 示例代码修改与运行

Livox-SDK2源码中包含丰富的示例代码,位于Livox-SDK2/samples文件夹下,开发者可直接修改示例代码,实现点云数据的获取,步骤如下:

  1. 进入samples文件夹,找到mid360_config.json配置文件(该文件用于配置雷达IP和主机IP):
    cd ../samples # 从build目录回到samples目录

  2. 打开mid360_config.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.123.123",
      "cmd_data_port": 56101,
      "push_msg_ip": "192.168.123.123",
      "push_msg_port": 56201,
      "point_data_ip": "192.168.123.123",
      "point_data_port": 56301,
      "imu_data_ip" : "192.168.123.123",
      "imu_data_port": 56401,
      "log_data_ip" : "",
      "log_data_port": 56501
    }
  },
  "lidar_configs" : [
    {
      "ip" : "192.168.123.120",
      "pcl_data_type" : 1,
      "pattern_mode" : 0,
      "extrinsic_parameter" : {
        "roll": 0.0,
        "pitch": 0.0,
        "yaw": 0.0,
        "x": 0,
        "y": 0,
        "z": 0
      }
    }
  ]
}
  1. 雷达IP:改为雷达的出厂默认IP 192.168.123.120;

  2. 电脑IP:改为电脑的IP地址(本文为192.168.123.123)。

  3. 回到build目录,重新编译示例代码(确保修改后的配置文件生效):cd ../build make -j

  4. 运行示例程序:编译完成后,build/samples目录下会生成可执行文件,执行对应的可执行文件(如lidar_sample):
    \./samples/lidar\_sample

4.4 运行结果详解

示例程序运行成功后,终端会输出以下结果,表明SDK已成功连接雷达并获取点云数据:

  1. 连接成功提示:终端会输出“Lidar connected successfully”(雷达连接成功)的提示,同时显示雷达的设备信息(如设备型号、固件版本等);

  2. 点云数据输出:终端会持续输出每帧点云的详细信息,包括点云的X、Y、Z坐标(空间位置)、强度(Reflectivity)、Tag(噪点/多回波标识)等,每帧输出约20000个点的信息;

  3. 帧率稳定:输出频率与雷达帧率一致(默认10Hz),无明显丢包、卡顿,终端无报错信息;

  4. 可扩展功能:开发者可在示例代码的基础上,添加点云保存、点云过滤、实时显示等功能,例如将点云数据保存为PCD格式,用于后续的点云处理。

异常情况:若运行示例程序报错“Failed to connect to lidar”(无法连接雷达),需检查:① 雷达IP和主机IP配置正确;② 电脑与雷达网络连通;③ SDK编译安装无错误;④ 雷达已正常上电。

五、通过livox_ros_driver2接入ROS(推荐,适配机器人开发)

对于机器人开发而言,ROS(机器人操作系统)是常用的开发平台,Livox官方提供了livox_ros_driver2驱动包,适用于ROS1(推荐使用Noetic版本)和ROS2(推荐使用Foxy或Humble版本),可快速将Mid-360雷达接入ROS系统,实现点云数据的发布与订阅,方便后续SLAM建图、自主导航等开发。

本文以ROS1 Noetic(Ubuntu 20.04)为例,详细说明驱动包的下载、配置、启动与运行步骤。

5.1 前置准备(安装ROS)

若电脑未安装ROS Noetic,需先安装ROS Noetic,具体安装步骤可参考ROS官方文档(http://wiki.ros.org/noetic/Installation/Ubuntu),安装完成后,确保ROS环境变量已配置(每次打开终端都需执行source /opt/ros/noetic/setup.bash,或添加到.bashrc文件中)。

5.2 驱动包下载与编译

  1. 创建ROS工作空间(若已存在,可直接使用),本文以catkin_ws为例:
    mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src

  2. 克隆livox_ros_driver2驱动包源码到src目录:
    git clone https://github.com/Livox-SDK/livox_ros_driver2命令解析:将驱动包源码克隆到ROS工作空间的src目录下,便于后续编译。

  3. 回到catkin_ws工作空间,执行catkin_make编译驱动包:cd ~/catkin_ws catkin_make注意:若编译过程中出现依赖缺失报错,需根据报错信息安装对应的依赖包(如sudo apt-get install ros-noetic-pcl-ros等)。

  4. 配置ROS环境变量,使驱动包生效:source devel/setup.bash建议将该命令添加到~/.bashrc文件中,避免每次打开终端都需重新执行。

5.3 驱动配置修改(关键步骤)

驱动包的配置文件位于livox_ros_driver2/config/MID360_config.json,需修改该文件中的雷达IP和主机IP,确保驱动能够正常连接雷达,具体修改步骤如下:

  1. 进入配置文件所在目录:
    cd ~/catkin_ws/src/livox_ros_driver2/config

  2. 打开MID360_config.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.123.123",
      "cmd_data_port": 56101,
      "push_msg_ip": "192.168.123.123",
      "push_msg_port": 56201,
      "point_data_ip": "192.168.123.123",
      "point_data_port": 56301,
      "imu_data_ip" : "192.168.123.123",
      "imu_data_port": 56401,
      "log_data_ip" : "",
      "log_data_port": 56501
    }
  },
  "lidar_configs" : [
    {
      "ip" : "192.168.123.120",
      "pcl_data_type" : 1,
      "pattern_mode" : 0,
      "extrinsic_parameter" : {
        "roll": 0.0,
        "pitch": 0.0,
        "yaw": 0.0,
        "x": 0,
        "y": 0,
        "z": 0
      }
    }
  ]
}

参数说明:

3.雷达 IP:lidar_configs → “ip” = 192.168.123.120(MID360 默认)
4.电脑 IP:host_net_info 下所有 IP 均为 192.168.123.123

  1. lidar_type:雷达类型,Mid-360对应的值为8,不可修改;

  2. lidar_net_info:雷达的网络端口配置,固定值,无需修改;

  3. host_net_info:主机的网络配置,IP需与电脑IP一致,端口可默认;

  4. extrinsic_parameter:雷达的外参(roll、pitch、yaw、x、y、z),默认值为0,后续可根据机器人实际安装情况校准。

  5. 修改launch文件中的配置文件路径:进入livox_ros_driver2/launch_ROS1目录,打开msg_MID360.launch文件,找到"user_config_path"参数,确保其路径指向修改后的MID360_config.json文件,默认路径如下(无需修改,若修改了配置文件路径,需对应调整):

5.4 启动驱动节点与查看话题

  1. 打开终端,启动ROS核心节点(roscore):
    roscore注意:roscore必须先启动,否则无法启动驱动节点。

  2. 打开新的终端,启动livox_ros_driver2驱动节点(确保ROS环境变量已配置):
    roslaunch livox_ros_driver2 msg_MID360.launch命令解析:roslaunch用于启动launch文件,msg_MID360.launch是Mid-360雷达的专用launch文件,启动后会自动连接雷达并发布点云、IMU话题。

  3. 启动成功后,终端会输出“Livox lidar driver started successfully”(驱动启动成功)的提示,同时显示雷达的连接信息;

  4. 打开新的终端,查看ROS话题列表,确认点云话题和IMU话题已正常发布:
    rostopic list输出结果中,会看到以下两个核心话题:

  5. /livox/lidar:雷达点云数据话题,发布点云信息;

  6. /livox/imu:雷达IMU数据话题,发布姿态、加速度等信息。

  7. 查看话题详情(可选):可通过rostopic echo命令查看话题的具体数据,例如查看点云话题:
    rostopic echo /livox/lidar终端会持续输出点云的详细数据,包括点云的坐标、强度、Tag等信息。

5.5 RViz可视化点云(直观查看)

ROS中可通过RViz工具直观查看点云数据,步骤如下:

  1. 在启动驱动节点的前提下,打开新的终端,启动RViz:
    rviz

  2. 在RViz界面中,进行以下配置:

  3. 设置Fixed Frame:在界面左侧“Global Options”下的“Fixed Frame”下拉框中,选择“livox_frame”(与launch文件中的msg_frame_id参数一致);

  4. 添加PointCloud2话题:点击界面左侧“Displays”下的“Add”,选择“PointCloud2”,然后在“Topic”下拉框中选择“/livox/lidar”;

  5. 调整点云显示:在“PointCloud2”的配置中,可调整“Size (m)”(点大小)、“Color Transformer”(颜色映射方式,建议选择“Intensity”,按反射率着色),使点云显示更清晰。

5.6 运行结果详解

驱动启动并完成RViz配置后,会呈现以下运行结果,表明雷达已成功接入ROS系统:

  1. 驱动节点运行正常:启动驱动的终端无报错信息,持续输出雷达的工作状态(如帧率、点云数量等);

  2. 话题发布正常:rostopic list可看到/livox/lidar和/livox/imu话题,rostopic echo可正常查看话题数据;

  3. RViz可视化正常:RViz界面中可实时显示360°稠密点云,能够清晰看到周围环境的轮廓,点云无明显抖动、漂移、畸变;

  4. 可直接用于后续开发:发布的点云话题可直接被FAST-LIO、LOAM等SLAM算法订阅,用于建图;IMU话题可用于机器人姿态校准、导航定位。

补充说明:launch文件中的核心参数(可根据需求调整):

参数名称详细说明默认值
publish_freq点云发布频率,浮点型数据,推荐值5.0、10.0、20.0、50.0Hz,最大为100.0Hz10.0
multi_topic点云话题发布模式,0表示所有雷达共用一个话题,1表示每个雷达单独一个话题0
xfer_format点云格式,0为Livox pointcloud2格式,1为Livox自定义格式,2为PCL标准pointcloud2格式(仅ROS)0

六、点云噪点处理(Tag过滤,提升点云质量)

Mid-360雷达在输出点云数据时,会内置Tag标识信息,用于指示点云的多回波信息和噪点信息,开发者可通过解析Tag信息,过滤掉噪点,提升点云质量,为后续的SLAM建图、障碍物识别等功能提供更干净的点云数据。

6.1 Tag标识信息详解

Tag是一个8位(bit0-bit7)的标识位,每一位代表不同的含义,具体分布如下(从bit0到bit7,bit0为最低位):

bit7bit6bit5-bit4bit3-bit2bit1bit0
保留位(无含义)保留位(无含义)回波序号:00=第0个回波,01=第1个回波,10=第2个回波,11=第3个回波00=正常点,11=保留位基于强度的点属性:01=回波能量噪点置信度高,10=回波能量噪点置信度中,00=正常点基于空间位置的点属性:01=空间噪点置信度高,10=空间噪点置信度中,11=空间噪点置信度低,00=正常点

核心原则:只有当Tag的低4位(bit0-bit3)全为0时,该点才视为有效点,否则为噪点或无效点,需过滤掉。

6.2 噪点过滤代码实现

以下是基于C++的噪点过滤参考代码,可集成到SDK或ROS驱动的点云处理流程中,实现噪点过滤:

// 假设_Lidar_1_pcl为获取到的点云数据(pcl::PointCloud类型)
for (int i = 0; i < _Lidar_1_pcl.points.size(); ++i) {
    // 核心过滤逻辑:低4位全0才视为有效点,否则过滤
    if(_Lidar_1_pcl.points[i].tag > 0 && _Lidar_1_pcl.points[i].tag < 16){
        // 若需要查看Tag的具体值,可解开以下注释
        // std::cout << "无效点Tag值: " << static_cast<int>(_Lidar_1_pcl.points[i].tag) << std::endl;
        
        // 可选:解析Tag的每一位,查看噪点类型
        // std::vector<bool> bit_values(8);
        // for (int k = 0; k < 8; ++k) {
        //     bit_values[k] = (_Lidar_1_pcl.points[i].tag >> k) & 0x01;
        // }
        // for (int k = 0; k < 8; ++k) {
        //     std::cout << "Bit " << k <<: " << static_cast<bool>(bit_values[k]) << std::endl;
        // }
        
        // 过滤当前噪点,跳过后续处理
        continue;
    }
    // 有效点的后续处理(如保存、显示、算法输入等)
    // ...
}

代码说明:

  • 循环遍历每一个点云数据,判断其Tag值是否在0-15之间(即低4位不全为0);

  • 若Tag值在0-15之间,说明该点为噪点或无效点,执行continue跳过该点,实现过滤;

  • 可解开注释部分,查看无效点的Tag值和每一位的含义,便于分析噪点类型(如空间噪点、能量噪点)。

6.3 噪点处理运行结果

添加噪点过滤代码后,点云质量会得到明显提升,具体运行结果如下:

  1. 噪点去除效果:过滤掉大量空中噪点、玻璃/镜面反射产生的伪影点、远距离无效点,点云整体更干净;

  2. 点云稳定性提升:过滤后点云的抖动、漂移现象减少,环境轮廓更清晰,便于后续的特征提取、匹配;

  3. 算法适配性提升:过滤后的点云可直接用于SLAM建图、障碍物检测等算法,减少算法的计算量,提升算法运行效率和精度;

  4. 点云数量变化:过滤后每帧点云数量会略有减少(具体减少量取决于环境中的噪点数量),但核心有效点保留完整,不影响环境感知。

七、常见问题与解决方法(亲测有效,避坑必备)

结合实际开发过程中遇到的问题,整理了以下常见问题、报错原因及解决方法,覆盖网络连接、上位机、SDK、ROS驱动等各个环节,帮助开发者快速排查问题,提高开发效率。

7.1 网络连接类问题

问题1:ping 192.168.123.120 提示请求超时(Request timed out)

原因分析:

  • 网线未插紧、网线质量不佳,或网线不是千兆直连线;

  • 电脑IP配置错误(如网段错误、网关错误);

  • 电脑防火墙、VPN阻止了通信;

  • 雷达未正常上电,或雷达硬件故障。

Logo

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

更多推荐