别再踩坑了!宇树激光雷达 (Livox) 全网最详教程,含 SDK/ROS/ 点云滤波
本文基于宇树官方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机器人肩部网口,使用千兆直连网线(建议选用质量较好的网线,避免因网线质量问题导致的连接不稳定、丢包等情况)。
操作步骤:
-
关闭G1机器人电源和电脑电源,避免带电插拔网线导致设备损坏;
-
将千兆网线的一端插入电脑的有线网口(确保电脑网口正常可用,若电脑无有线网口,可使用USB转网口适配器,建议选用千兆适配器);
-
将网线的另一端插入G1机器人肩部的网口(注意区分机器人肩部的网口和其他接口,避免插错);
-
分别开启电脑和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驱动开发需用到),配置步骤如下:
-
打开Ubuntu系统的“设置”(Settings),找到“网络”(Network)选项,点击进入;
-
在网络设置中,找到已连接的有线网络(通常显示为“PCI Ethernet”,状态为“Connected - 1000 MD/s”),点击右侧的设置图标;
-
在弹出的窗口中,切换到“IPv4”选项卡,将“IPv4 Method”从默认的“Automatic (DHCP)”改为“Manual”(手动配置);
-
点击“Addresses”下方的“+”号,添加IP地址配置,具体参数如下:
-
Address(IP地址):192.168.123.123(可设置为192.168.123.xxx,xxx范围为2-254,避免与雷达IP 192.168.123.120冲突);
-
Netmask(子网掩码):255.255.255.0(固定值,不可修改);
-
Gateway(网关):192.168.123.1(固定值,不可修改)。
-
DNS设置保持默认的“Automatic”即可,无需手动修改;
-
点击窗口右下角的“Apply”(应用),等待配置生效,生效后有线网络会重新连接,状态仍为“Connected”。

2.2.2 Windows系统(适合快速调试、上位机操作)
Windows系统配置步骤如下,以Windows 10为例:
-
右键点击桌面右下角的网络图标,选择“打开网络和Internet设置”;
-
在弹出的窗口中,点击“高级网络设置”,然后选择“更多网络适配器选项”;
-
在“网络连接”窗口中,找到连接雷达的有线网络(通常显示为“以太网”,可能标注为“以太网8”等,根据实际连接情况区分),右键点击该网络,选择“属性”;
-
在弹出的“以太网属性”窗口中,找到“Internet 协议版本 4 (TCP/IPv4)”,选中该选项后点击“属性”;
-
在“TCP/IPv4属性”窗口中,选择“使用下面的IP地址”,输入以下参数:
-
IP地址:192.168.123.123(与Ubuntu系统一致,避免与雷达IP冲突);
-
子网掩码:255.255.255.0(固定值);
-
默认网关:192.168.123.1(固定值)。
-
DNS服务器地址保持默认的“自动获得DNS服务器地址”,无需手动输入;
-
点击“确定”保存配置,再点击“以太网属性”窗口的“确定”,完成IP配置。

2.3 连通性测试(验证网络配置是否成功)
IP配置完成后,需通过ping命令测试电脑与雷达的连通性,确认网络连接正常,步骤如下:
-
打开电脑的终端(Ubuntu系统)或命令提示符(Windows系统,按下Win+R,输入cmd后回车);
-
在终端/命令提示符中输入以下命令:
ping 192.168.123.120 -
按下回车后,观察ping的结果:
-
成功情况:出现“Reply from 192.168.123.120: bytes=32 time<1ms TTL=64”的提示,且持续输出,表明电脑与雷达已成功连通;
-
失败情况:出现“Request timed out”(请求超时)或“Destination host unreachable”(目标主机不可达),表明网络配置存在问题,需重新检查IP配置、网线连接。
-
测试完成后,按下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),步骤如下:
-
打开Livox Mid-360资料下载页:https://www.livoxtech.com/mid-360/downloads;
-
下拉页面找到“Software”板块,可看到以下相关资源:
-
Livox Viewer 2 Release Notes(版本说明,可了解版本更新内容);
-
Livox Viewer 2 User Manual(用户手册,详细介绍上位机的使用方法);
-
Livox Viewer 2 - Windows(Windows系统版本,2023-01-10发布);
-
Livox Viewer 2 - Ubuntu(Ubuntu系统版本,2023-02-07发布)。
-
根据自己的电脑系统,点击对应的“Downloads”下载上位机安装包;
-
安装步骤:
-
Windows系统:双击下载的安装包,按照提示下一步安装,可自定义安装路径,安装完成后桌面会出现快捷方式;
-
Ubuntu系统:下载的是压缩包,解压后进入解压目录,找到可执行文件,赋予执行权限后即可运行(具体命令:chmod +x LivoxViewer2,然后./LivoxViewer2)。
3.2 上位机操作与点云查看
前提:已完成硬件连接和网络配置,电脑与雷达正常连通(ping测试通过)。
-
打开Livox Viewer 2上位机,启动后会自动检测网络适配器;
-
在软件界面左上角的“Adapter”下拉框中,选择我们配置的IP地址(192.168.123.123),若未自动出现,可手动输入后点击刷新;
-
等待几秒后,软件会自动搜索雷达,在“Lidar List”(雷达列表)中会显示Mid-360雷达的设备信息(如设备编号47MDL130010006),表明雷达已被成功识别;
-
点击雷达列表中的雷达,软件会自动连接雷达,连接成功后,界面右侧会实时显示雷达的点云数据;
-
上位机界面核心参数说明(可实时观察):
-
Point Size(点大小):默认1 pixel,可根据需求调整,越大点云越清晰;
-
Color(颜色):默认按Reflectivity(反射率)着色,反射率越高,颜色越亮(从0到255渐变);
-
FrameTime(帧间隔):默认100ms,对应帧率10Hz,可在设置中调整;
-
Points Num(点云数量):实时显示每帧的点云数量,正常情况下稳定在约19968点/帧(与官方示例一致);
-
Filtered Points Num(过滤后点云数量):默认0,可开启过滤功能后查看。
-
额外操作:可点击界面上方的“Record Mode”(录制模式),选择LVX2格式,点击开始录制,将实时点云数据保存到本地,用于后续的点云后处理、算法测试。

3.3 运行结果详解
成功运行后,上位机界面会呈现以下结果,可通过这些结果判断雷达是否正常工作:
-
点云显示:界面右侧实时显示360°全向点云,能够清晰看到周围环境的轮廓(如墙壁、桌椅、地面等),点云分布均匀,无明显断连、空缺;
-
参数稳定:Points Num稳定在19000-20000点/帧,FrameTime稳定在100ms左右,无大幅波动;
-
无警告提示:雷达列表中无红色警告(若出现警告,可查看警告信息,通常是连接不稳定或参数配置问题);
-
录制功能正常:点击录制后,可在指定路径下生成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系统操作类似,可参考官方文档。
-
打开Ubuntu终端,确保电脑已安装git(若未安装,执行命令:sudo apt-get install git);
-
克隆Livox-SDK2源码到本地(可自定义克隆路径,本文以home目录为例):
git clone https://github.com/Livox-SDK/Livox-SDK2.git命令解析:git clone 用于从GitHub克隆源码仓库,后面的地址是Livox-SDK2的官方仓库地址,克隆完成后,home目录下会出现Livox-SDK2文件夹。 -
进入SDK目录,创建build文件夹(用于存放编译文件):
cd ./Livox-SDK2/ mkdir build -
进入build文件夹,执行cmake编译和make安装:
cd build cmake .. && make -j
sudo make install命令解析: -
cmake ..:用于生成Makefile文件,“..”表示CMakeLists.txt文件在上级目录(Livox-SDK2目录);
-
make -j:用于编译源码,“-j”表示多线程编译,可加快编译速度(具体线程数可根据电脑配置调整,如make -j4);
-
sudo make install:用于将编译好的库文件安装到系统目录(/usr/local/lib)和头文件安装到/usr/local/include,方便后续开发时调用。
-
编译安装验证:安装完成后,可在/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文件夹下,开发者可直接修改示例代码,实现点云数据的获取,步骤如下:
-
进入samples文件夹,找到mid360_config.json配置文件(该文件用于配置雷达IP和主机IP):
cd ../samples # 从build目录回到samples目录 -
打开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
}
}
]
}
-
雷达IP:改为雷达的出厂默认IP 192.168.123.120;
-
电脑IP:改为电脑的IP地址(本文为192.168.123.123)。
-
回到build目录,重新编译示例代码(确保修改后的配置文件生效):
cd ../build make -j -
运行示例程序:编译完成后,build/samples目录下会生成可执行文件,执行对应的可执行文件(如lidar_sample):
\./samples/lidar\_sample
4.4 运行结果详解
示例程序运行成功后,终端会输出以下结果,表明SDK已成功连接雷达并获取点云数据:
-
连接成功提示:终端会输出“Lidar connected successfully”(雷达连接成功)的提示,同时显示雷达的设备信息(如设备型号、固件版本等);
-
点云数据输出:终端会持续输出每帧点云的详细信息,包括点云的X、Y、Z坐标(空间位置)、强度(Reflectivity)、Tag(噪点/多回波标识)等,每帧输出约20000个点的信息;
-
帧率稳定:输出频率与雷达帧率一致(默认10Hz),无明显丢包、卡顿,终端无报错信息;
-
可扩展功能:开发者可在示例代码的基础上,添加点云保存、点云过滤、实时显示等功能,例如将点云数据保存为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 驱动包下载与编译
-
创建ROS工作空间(若已存在,可直接使用),本文以catkin_ws为例:
mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src -
克隆livox_ros_driver2驱动包源码到src目录:
git clone https://github.com/Livox-SDK/livox_ros_driver2命令解析:将驱动包源码克隆到ROS工作空间的src目录下,便于后续编译。 -
回到catkin_ws工作空间,执行catkin_make编译驱动包:
cd ~/catkin_ws catkin_make注意:若编译过程中出现依赖缺失报错,需根据报错信息安装对应的依赖包(如sudo apt-get install ros-noetic-pcl-ros等)。 -
配置ROS环境变量,使驱动包生效:
source devel/setup.bash建议将该命令添加到~/.bashrc文件中,避免每次打开终端都需重新执行。
5.3 驱动配置修改(关键步骤)
驱动包的配置文件位于livox_ros_driver2/config/MID360_config.json,需修改该文件中的雷达IP和主机IP,确保驱动能够正常连接雷达,具体修改步骤如下:
-
进入配置文件所在目录:
cd ~/catkin_ws/src/livox_ros_driver2/config -
打开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
-
lidar_type:雷达类型,Mid-360对应的值为8,不可修改;
-
lidar_net_info:雷达的网络端口配置,固定值,无需修改;
-
host_net_info:主机的网络配置,IP需与电脑IP一致,端口可默认;
-
extrinsic_parameter:雷达的外参(roll、pitch、yaw、x、y、z),默认值为0,后续可根据机器人实际安装情况校准。
-
修改launch文件中的配置文件路径:进入livox_ros_driver2/launch_ROS1目录,打开msg_MID360.launch文件,找到"user_config_path"参数,确保其路径指向修改后的MID360_config.json文件,默认路径如下(无需修改,若修改了配置文件路径,需对应调整):
5.4 启动驱动节点与查看话题
-
打开终端,启动ROS核心节点(roscore):
roscore注意:roscore必须先启动,否则无法启动驱动节点。 -
打开新的终端,启动livox_ros_driver2驱动节点(确保ROS环境变量已配置):
roslaunch livox_ros_driver2 msg_MID360.launch命令解析:roslaunch用于启动launch文件,msg_MID360.launch是Mid-360雷达的专用launch文件,启动后会自动连接雷达并发布点云、IMU话题。 -
启动成功后,终端会输出“Livox lidar driver started successfully”(驱动启动成功)的提示,同时显示雷达的连接信息;
-
打开新的终端,查看ROS话题列表,确认点云话题和IMU话题已正常发布:
rostopic list输出结果中,会看到以下两个核心话题: -
/livox/lidar:雷达点云数据话题,发布点云信息;
-
/livox/imu:雷达IMU数据话题,发布姿态、加速度等信息。
-
查看话题详情(可选):可通过rostopic echo命令查看话题的具体数据,例如查看点云话题:
rostopic echo /livox/lidar终端会持续输出点云的详细数据,包括点云的坐标、强度、Tag等信息。
5.5 RViz可视化点云(直观查看)
ROS中可通过RViz工具直观查看点云数据,步骤如下:
-
在启动驱动节点的前提下,打开新的终端,启动RViz:
rviz -
在RViz界面中,进行以下配置:
-
设置Fixed Frame:在界面左侧“Global Options”下的“Fixed Frame”下拉框中,选择“livox_frame”(与launch文件中的msg_frame_id参数一致);
-
添加PointCloud2话题:点击界面左侧“Displays”下的“Add”,选择“PointCloud2”,然后在“Topic”下拉框中选择“/livox/lidar”;
-
调整点云显示:在“PointCloud2”的配置中,可调整“Size (m)”(点大小)、“Color Transformer”(颜色映射方式,建议选择“Intensity”,按反射率着色),使点云显示更清晰。
5.6 运行结果详解
驱动启动并完成RViz配置后,会呈现以下运行结果,表明雷达已成功接入ROS系统:
-
驱动节点运行正常:启动驱动的终端无报错信息,持续输出雷达的工作状态(如帧率、点云数量等);
-
话题发布正常:rostopic list可看到/livox/lidar和/livox/imu话题,rostopic echo可正常查看话题数据;
-
RViz可视化正常:RViz界面中可实时显示360°稠密点云,能够清晰看到周围环境的轮廓,点云无明显抖动、漂移、畸变;
-
可直接用于后续开发:发布的点云话题可直接被FAST-LIO、LOAM等SLAM算法订阅,用于建图;IMU话题可用于机器人姿态校准、导航定位。
补充说明:launch文件中的核心参数(可根据需求调整):
| 参数名称 | 详细说明 | 默认值 |
|---|---|---|
| publish_freq | 点云发布频率,浮点型数据,推荐值5.0、10.0、20.0、50.0Hz,最大为100.0Hz | 10.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为最低位):
| bit7 | bit6 | bit5-bit4 | bit3-bit2 | bit1 | bit0 |
|---|---|---|---|---|---|
| 保留位(无含义) | 保留位(无含义) | 回波序号: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 噪点处理运行结果
添加噪点过滤代码后,点云质量会得到明显提升,具体运行结果如下:
-
噪点去除效果:过滤掉大量空中噪点、玻璃/镜面反射产生的伪影点、远距离无效点,点云整体更干净;
-
点云稳定性提升:过滤后点云的抖动、漂移现象减少,环境轮廓更清晰,便于后续的特征提取、匹配;
-
算法适配性提升:过滤后的点云可直接用于SLAM建图、障碍物检测等算法,减少算法的计算量,提升算法运行效率和精度;
-
点云数量变化:过滤后每帧点云数量会略有减少(具体减少量取决于环境中的噪点数量),但核心有效点保留完整,不影响环境感知。
七、常见问题与解决方法(亲测有效,避坑必备)
结合实际开发过程中遇到的问题,整理了以下常见问题、报错原因及解决方法,覆盖网络连接、上位机、SDK、ROS驱动等各个环节,帮助开发者快速排查问题,提高开发效率。
7.1 网络连接类问题
问题1:ping 192.168.123.120 提示请求超时(Request timed out)
原因分析:
-
网线未插紧、网线质量不佳,或网线不是千兆直连线;
-
电脑IP配置错误(如网段错误、网关错误);
-
电脑防火墙、VPN阻止了通信;
-
雷达未正常上电,或雷达硬件故障。
更多推荐

所有评论(0)