ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Livox Mid-360 室内无人机定位测试全流程:从驱动安装到 FAST-LIO 算法接入

Livox Mid-360 室内无人机定位测试全流程:从驱动安装到 FAST-LIO 算法接入 这次我们来看 Livox Mid-360 在室内无人机定位测试里的完整使用流程。Mid-360 是 Livox 推出的一颗 360° 非重复扫描激光雷达和传统 2D 单线雷达不同它直接输出 3D 点云水平视场角约 360°、垂直视场角约 59°有效测距约 40 米10% 反射率下点频约 200k 点/秒还支持双回波模式。把这个传感器装到无人机上以后室内天花板、墙壁、桌椅、立柱这些结构都能被持续扫描进来点云在中心区域会随帧数累积变密这对室内定位和建图来说非常关键。这篇文章的核心思路是“先确认能不能跑再决定怎么接算法”。我会从硬件清单讲起然后是 Livox SDK2 在 Ubuntu 22.04 ROS2 下的安装、点云可视化验证、rosbag 数据采集再接入 FAST-LIO / Point-LIO 这类 LiDAR-Inertial 里程计算法做定位测试最后给出一套室内无人机定位测试的常见问题排查清单。读者在看完以后至少能把 Mid-360 从“上电”跑到“输出定位轨迹”整条链路打通并且知道哪些参数需要按自己的无人机和室内环境去调。先说核心结论Mid-360 在室内无人机定位测试里并不是一颗“接了就能用”的雷达它需要驱动层Livox SDK2、ROS 封装层livox_ros_driver2、定位算法层FAST-LIO/Point-LIO 等三层协同工作。如果不安装对应版本的 Livox SDK2后面所有点云话题和定位算法都起不来。而一旦链路跑通这颗雷达的优势会非常明显360° 视场角 非重复扫描可以在低纹理室内环境中拿到比视觉 VIO 稳定得多的点云特征很适合无人机、机器人的室内自主定位测试。1. 核心能力速览能力项说明传感器类型360° 非重复扫描激光雷达输出 3D 点云视场角水平约 360°垂直约 59°以官方手册为准测距范围约 40m 10% 反射率以官方手册为准点频约 200k 点/秒支持双回波模式通信协议Livox SDK2 / livox_ros_driver2支持系统Ubuntu 20.04 / 22.04ROS1Noetic、ROS2Humble 等实测角色室内无人机位姿估计、点云建图、SLAM 数据采集常用定位算法FAST-LIO、Point-LIO、LIO-SAM、LIO-SAM 变体是否支持 CPU是点云预处理和 LIO 算法以 CPU 计算为主接口方式ROS 话题如 /livox/lidar可通过 Python/C 订阅处理批量任务可通过 rosbag 批量采集数据再离线跑定位算法建议测试对象室内走廊、房间、办公区、仓库、低特征环境从上面的表格可以看出来这颗雷达更偏向“给机器人和无人机做传感器融合定位”而不是单纯用来做避障。避障用短距离 2D 雷达或深度相机可能更省成本但要做无人机室内定位测试需要的是稳定的 3D 环境观测和足够高的点云覆盖Mid-360 在这类场景里非常合适。2. 适用场景与使用边界2.1 适合谁用Mid-360 室内定位测试本质上是在验证“无人机能不能在没有 GPS 的室内用激光雷达和惯性测量单元融合出自身位置和姿态”。比较适合这几类读者参考无人机自主飞行的研究者需要一套可重复的室内定位测试方法。机器人 SLAM 方向的工程师想用 360° 3D 雷达替换单线雷达提升建图稳定性。做巡检、仓储、地下空间测绘项目的团队需要先在室内小场景验证传感器和算法。刚接触 Livox 传感器和 FAST-LIO / Point-LIO 的开发者想搞清楚从驱动到算法的完整安装链。2.2 能解决什么问题室内定位难在 GPS 信号丢失、视觉纹理不足、重复结构多。比如长走廊、白墙房间摄像头可能会很快丢特征而激光雷达点云对光照不敏感Mid-360 的 360° 视场角还能同时扫到天花板和墙壁给 LIO 算法提供更稳的几何约束。它的 59° 垂直视场角在室内非常关键无人机飞行时即使有俯仰倾斜也能持续观测到地面、墙面和天花板。2.3 不适合什么场景室内定位测试不适合把 Mid-360 当“消防锤”来用如果只是做小范围避障短距离雷达或深度相机更便宜。如果是在极空旷的大房间四周没有墙、天花板太高纯激光雷达定位会退化需要额外的 UWB 或动捕系统辅助。如果机载计算单元性能很弱比如只有树莓派级别 CPU直接跑 FAST-LIO 会比较吃力需要降采样和降频率。如果在强反光、大量玻璃墙、镜面材质的室内环境点云会出现错误回波定位精度会下降。2.4 合规与安全边界室内无人机定位测试涉及飞行安全和隐私风险必须提前做好管理。测试场地要在合法合规的室内空间进行禁止在禁飞区域、人员密集区域飞行。无人机旋翼存在伤人风险测试时保持安全距离建议加装螺旋桨保护罩。如果室内有其他人员需要提前说明并控制飞行范围。采集的点云数据可能包含人员、设备、办公环境等敏感信息不要随意公开分享商用前要确认数据合规性。涉及激光雷达的标定、外参、点云数据使用时只使用自己有权使用的设备和场地数据避免侵犯第三方权益。安全边界写清楚以后下面进入实际部署环节。3. 环境准备与前置条件3.1 硬件清单要做 Mid-360 室内无人机定位测试建议准备以下硬件设备用途说明Livox Mid-360 激光雷达3D 点云采集随附网线/供电线无人机机架搭载雷达和计算单元机架尺寸需支持雷达固定机载或地面计算单元运行驱动和定位算法可用 x86 笔记本/迷你主机如 NUCIMU惯性测量单元提供角速度和加速度部分无人机飞控自带独立 IMU 更易标定路由器或直连网线雷达与计算单元通信出厂 IP 通常为静态 IP注意兼容供电模块给雷达和计算单元供电电压电流需满足雷达和主机要求Mid-360 默认通信方式是通过以太网接口与上位机连接端口和数据格式都由 Livox SDK2 统一处理。第一次测试时最好先不要把雷达装上无人机而是放在桌面或三脚架上确认点云话题正常后再固定到无人机上这样可以减少故障变量。3.2 软件环境从网络搜索材料里可以看到很多人踩过livox sdk2 ubuntu 22.04的坑。这里推荐一套常见组合Ubuntu 22.04 LTSROS2 HumbleLivox SDK2官方仓库livox_ros_driver2官方 ROS2 驱动定位算法FAST-LIO 或 Point-LIO需要按自己的雷达和 IMU 配置修改 yaml 参数如果项目团队更熟悉 ROS1也可以选择 Ubuntu 20.04 ROS1 Noetic livox_ros_driverROS1 版本但 Ubuntu 22.04 下官方对 ROS2 的支持更主流。下面以 ROS2 Humble 为例展开。需要注意Ubuntu 22.04 默认没有安装 ROS2 Humble必须先完成 ROS2 基础环境的安装。如果直接apt install ros-humble-desktop报Unable to locate package ros-humble-desktop通常是因为没有添加 ROS2 apt 源或者没有执行apt update。3.3 网络与权限检查Mid-360 通过以太网与计算单元通信官方默认会配置一个静态地址段。实际测试时建议先查阅当前雷达固件对应的默认 IP 和端口然后手动把电脑的有线网卡调整到同一网段。另外如果使用 LinuxUSB 转网口设备在部分场景下会涉及设备权限问题。虽然没有找到确切材料说明 Mid-360 的 USB 权限问题但按常见 Linux 传感器调试经验可以先检查设备是否被系统识别ip addr show dmesg | grep -i eth如果网卡链路正常再用 Livox Viewer 2 或 livox_ros_driver2 检查点云数据如果链路异常优先检查 IP 网段、供电和网线。4. 安装部署与启动方式4.1 安装 Livox SDK2Livox SDK2 是 Livox 官方提供的二次开发库livox_ros_driver2 依赖它来解析点云数据。安装方式按照官方 README 最常见的流程git clone https://github.com/Livox-SDK/Livox-SDK2.git cd Livox-SDK2 mkdir build cd build cmake .. make sudo make install需要注意这里的https://github.com/Livox-SDK/Livox-SDK2.git是官方公开仓库地址实际执行时请确认网络环境可以正常访问。如果下载失败可以检查网络配置或改用代理环境镜像。编译过程中如果报缺少 cmake 或依赖库先安装基础依赖sudo apt install cmake build-essential4.2 编译安装 livox_ros_driver2livox_ros_driver2 是 ROS2 驱动直接放在你的 ROS2 工作空间里编译mkdir -p ~/livox_ws/src cd ~/livox_ws/src git clone https://github.com/Livox-SDK/livox_ros_driver2.git cd ~/livox_ws colcon build --symlink-install编译完成后source install/setup.bash需要说明一下livox_ros_driver2 的仓库中通常包含多个 ROS2 版本分支确保你 checkout 的分支和本机 ROS2 版本匹配。常见做法是直接切换到master或官方默认主线再根据 ROS2 Humble 的编译提示处理依赖。如果 colcon 未安装先安装sudo apt install python3-colcon-common-extensions4.3 修改雷达配置livox_ros_driver2 启动时默认读取一个 config 文件里面包含雷达的 IP、数据端口、广播码等参数。需要修改config目录下的config.json或对应的 launch 参数至少检查这几项{ lidar_configs: [ { ip: 192.168.1.1, port: 7500, pcl_data_type: 1, pattern_mode: 0 } ] }不同版本的驱动字段名不完全一样请以实际 clone 到的仓库 README 和 config 文件注释为准。不要直接照搬这个 JSON字段名可能因为版本更新而变化。4.4 启动 Radar 驱动启动驱动的常见命令如下ros2 launch livox_ros_driver2 rviz_H02.launch.py如果你使用的是 Mid-360官方仓库通常会提供对应的启动文件实际文件名可能是rviz_mid360.launch.py或msg_MID360.launch.py。不建议照抄一个启动文件名先ls查看一下ls ~/livox_ws/install/livox_ros_driver2/share/livox_ros_driver2/launch/找到匹配的 launch 文件后再启动例如ros2 launch livox_ros_driver2 msg_MID360.launch.py也可以不带 rviz 直接启动驱动节点然后把点云话题发布到一个已存在的 rviz 窗口里。这样能灵活控制是否加载可视化界面避免在远程连接时画面卡顿。4.5 验证驱动是否正常启动后检查 ROS2 话题列表ros2 topic list正常情况下应该能看到类似/livox/lidar的点云话题以及/livox/imu这样的 IMU 数据话题。接着查看话题频率ros2 topic hz /livox/lidar如果频率长时间为 0说明驱动没有收到雷达数据需要回头检查网络 IP、供电和广播码配置。5. 功能测试与效果验证驱动跑通以后下面进入真正的定位测试环节。这一部分按“点云可视化 → IMU 检查 → 数据采集 → 跑 LIO 算法 → 轨迹评估”五步展开。5.1 点云可视化验证启动 rviz 并订阅/livox/lidar话题如果话题类型为sensor_msgs/PointCloud2可以直接用 PointCloud2 显示。在 rviz 中添加 PointCloud2 显示后把 Fixed Frame 设置为livox_frame或base_link具体名称看驱动发布内容。室内环境下你应该能看到天花板平面和墙壁平面明显可见。点云围绕雷达本体形成接近球形的覆盖。近距离物体点云较密远处物体点云变稀疏。这是最基础的验证如果这一步都不通过后面跑 SLAM 基本无从谈起。5.2 IMU 数据检查Mid-360 内部通常集成 IMU室内无人机定位算法一般需要 IMU 数据做运动预测。检查一下/livox/imu话题ros2 topic echo /livox/imu --once正常输出应该包含angular_velocity和linear_acceleration。拿在手里轻轻晃动雷达数值应该随之变化。如果 IMU 数据不动或全为 0说明驱动配置中 IMU 参数没生效需要检查配置文件中的 IMU 开关和话题发布设置。5.3 数据采集与 rosbag 录制跑定位算法前建议先录制一段 rosbag方便离线反复测试算法参数避免每次都要搬着无人机到现场。录制命令ros2 bag record -o indoor_test_01 /livox/lidar /livox/imu录制时长建议 1 到 3 分钟包含以下动作静止 10 秒方便后续初始化。缓慢平移让点云特征充分变化。旋转 360° 一圈。如果无人机已经装好可以小范围上下移动或俯仰。录制结束后查看 bag 信息ros2 bag info indoor_test_01注意激光雷达点云数据 rosbag 体积非常大Mid-360 在大约 200k 点/秒的情况下长时间录包会占用数 GB 甚至十几 GB 空间。录制前检查磁盘剩余空间或者使用max duration参数限制录制时长。实际存储量取决于点云频率和是否启用双回波建议先用 30 秒短录包测试磁盘写入速度再决定正式录制时长。5.4 运行 FAST-LIO / Point-LIO 定位算法定位算法本身不是 Mid-360 自带功能需要单独下载和编译。以 FAST-LIO 为例常见流程是git clone https://github.com/hku-mars/FAST_LIO.git cd FAST_LIO colcon build --symlink-install编译完成后关键点是修改config目录下的 yaml 文件让算法使用 Mid-360 的点云话题和 IMU 话题。至少需要确认lid_topic是否设置为/livox/lidarimu_topic是否设置为/livox/imulidar_type是否匹配 Livox 雷达外参矩阵是否根据 Mid-360 实际安装位置设置IMU 噪声参数是否和传感器手册一致这里有一个容易踩的坑不同版本的 FAST-LIO 使用的话题名称和字段名不同如果算法启动后没有点云输入先用ros2 topic info /livox/lidar确认话题类型再检查 FAST-LIO 的配置数据类型是否匹配。启动方式通常是ros2 launch fast_lio mapping.launch.py config_file:mid360.yaml更稳妥的做法是先看仓库里提供的 launch 文件和 config 文件名再修改为自己的配置。5.5 定位轨迹验证算法跑起来以后rviz 中通常会显示雷达轨迹。验证定位是否可信可以参考这几点静止时轨迹点应该基本不动漂移量很小。绕房间一圈后轨迹应该能回到起点附近闭环误差是重要指标。点云地图中墙面是否平整有没有重影、错层。无人机俯仰或旋转时姿态输出是否平滑。如果室内环境没有外部真值最简单的验证方式是“回到原点”测试从起点出发走一圈回到起点观察轨迹终点与起点的偏移。偏移越小定位一致性越好。如果需要更高精度可以用 motion capture 系统或 UWB 定位系统做真值对比把 LIO 轨迹和真值轨迹对齐后计算 ATE绝对轨迹误差。5.6 长时运行测试室内无人机定位不能只看十几秒的效果。建议做一次 5 到 10 分钟的长时运行测试关注几点算法是否在长时间运行后漂移增大。CPU 占用是否持续升高内存是否泄漏。点云话题频率是否一直稳定。雷达是否出现过热或数据中断。如果长时运行后漂移明显优先检查 IMU 标定和外参是否准其次是点云畸变补偿和时间同步。6. 接口 API 与批量任务6.1 ROS2 话题接口Mid-360 在 ROS2 里提供的话题接口非常直观主要关注两个话题话题名示例消息类型内容/livox/lidarsensor_msgs/PointCloud23D 点云数据/livox/imusensor_msgs/Imu角速度和加速度数据实际话题名以你使用的 livox_ros_driver2 版本为准。查看本话题列表是定位所有接口问题的第一步。6.2 Python 订阅点云下面给出一个通用的 Python 订阅点云示例适用于 ROS2 Humble。使用时需要根据实际话题名和回调逻辑调整import rclpy from rclpy.node import Node from sensor_msgs.msg import PointCloud2 class LidarSubscriber(Node): def __init__(self): super().__init__(lidar_subscriber) self.subscription self.create_subscription( PointCloud2, /livox/lidar, self.listener_callback, 10 ) def listener_callback(self, msg): self.get_logger().info( fget point cloud: width{msg.width}, height{msg.height} ) def main(argsNone): rclpy.init(argsargs) node LidarSubscriber() rclpy.spin(node) node.destroy_node() rclpy.shutdown() if __name__ __main__: main()这个脚本只能验证话题数据是否在持续发布如果要处理点云内容建议使用 PCL 或 Open3D 库。实际项目里可以把点云转成numpy数组做体素降采样、平面分割或聚类但要注意点云消息坐标系的含义不同帧下点云坐标是否已经变换到同一坐标系需要单独确认。6.3 批量采集数据集如果把“批量任务”理解为多段测试数据自动采集可以用脚本循环录包。下面是一个通用 shell 脚本模板#!/bin/bash # 批量录制 rosbag 的通用模板 # 使用时请根据环境替换 bag 名称和录制话题 for i in $(seq 1 5); do echo start record bag_$i ros2 bag record -o indoor_bag_$i /livox/lidar /livox/imu \ --max-duration 60 sleep 5 done这个脚本会连续录制 5 段 60 秒的 bag中间停 5 秒。实际场景中建议在每段录制的间隔里移动无人机到新的位置让数据集覆盖不同区域。6.4 批量离线跑定位批量任务更常见的用法是“录完一堆 bag然后离线跑定位算法”。这个过程中需要重点关注不同 bag 的外参是否一致如果不一致需要分开处理。bag 播放速度是否和实际一致用ros2 bag play --rate 1.0保证实时或离线处理。算法每次输出的轨迹是否独立保存不要互相覆盖。失败任务要有日志和重试机制特别是长时间运行时 ROS2 节点可能因为断连退出。离线处理的意义在于可以一次录制、反复调参。先录制一段包含典型运动模式的 bag再修改 FAST-LIO / Point-LIO 的参数多次播放对比轨迹质量比每次上机测试效率高得多。6.5 与飞控的接口对接如果把 Mid-360 定位结果提供给无人机飞控通常需要把 LIO 输出的位姿发布成标准 ROS2 TF 或 odometry 消息。飞控端通过订阅里程计话题结合自身惯导做融合或直接切换位姿来源。这个环节需要特别注意坐标系定义。LIO 算法输出的轨迹通常在地图坐标系下无人机飞控可能使用 NED北东地或者 ENU东北天坐标系中间需要做坐标变换。如果直接对接飞控的航向和位置可能会出现“反转”“左右颠倒”等明显错误。接口对接前先确认地图坐标系与飞控坐标系的旋转关系最好在地面上完成全流程闭环测试再上电飞行。7. 资源占用与性能观察7.1 观察方式室内定位测试中资源占用主要看三部分CPU 占用、内存占用、磁盘写入速度。观察方式很直接# 查看 CPU 和内存占用 top -u $USER # 查看 ROS2 节点进程状态 ps aux | grep ros2另外ros2 topic hz /livox/lidar可以反映点云发布频率ros2 topic bw /livox/lidar可以查看话题带宽。这两个命令很实用。7.2 CPU 和内存占用Mid-360 驱动本身 CPU 占用不高真正吃 CPU 的是 FAST-LIO / Point-LIO 这类 LIO 算法。在 x86 机载设备上通常能跑但在树莓派或低功耗 ARM 设备上CPU 占用会明显升高。实际占用和点云频率、地图分辨率、算法窗口大小强相关没有一个固定值建议以本机测试为准。如果 CPU 占用过高常见降载手段包括降低点云发布频率比如从 10Hz 降到 5Hz。对点云做体素降采样减少单帧点数。关闭双回波模式减少无效点。降低地图分辨率或算法中的最大迭代次数。7.3 磁盘占用与数据管理室内定位测试最容易被忽略的是磁盘空间。一个包含点云和 IMU 数据的 rosbag录制 3 分钟可能就超过 1GB。批量采集数据前先确认磁盘剩余空间df -h建议给数据集建立独立目录livox_test/ ├── bags/ │ ├── indoor_01/ │ └── indoor_02/ ├── config/ │ ├── mid360.yaml │ └── imu_params.yaml ├── result/ │ ├── trajectory_01.txt │ └── map_01.pcd └── logs/ ├── driver_log.txt └── lio_log.txt7.4 如何判断性能是否正常判断系统是否跟得上数据流可以这样看点云话题发布频率是否稳定如果忽高忽低说明驱动或网络带宽受限。SLAM 算法输出频率是否明显低于点云输入频率如果长期滞后说明 CPU 算力不够。实时运行时轨迹是否有抖动或延迟如果严重则需要降采样或换更强计算单元。这里的核心原则是“宁可用降频保证稳定也不要用满频但频繁卡顿”。室内无人机测试对实时性要求很高定位输出一旦卡住几秒飞控就可能失控。8. 常见问题与排查方法问题现象可能原因排查方式解决方案启动驱动后ros2 topic list没有 /livox/lidar网络 IP 网段不对检查网卡 IP 和雷达默认 IP查看 dmesg 和驱动日志将电脑静态 IP 调整到雷达网段点云话题有发布但频率为 0雷达与主机通信中断、供电不足ros2 topic hz持续观察检查网线和供电更换网线、确认供电电压电流、重启驱动点云出现“空心圆”或周期性丢帧网络丢包或带宽不足查看top中 CPU 占用检查网卡负载优化网络环境、降频或关闭双回波rviz 中看不到点云Fixed Frame 设置错误检查 rviz 的 Fixed Frame 是否与驱动发布的 frame_id 一致设置为 livox_frame 或 base_linkUbuntu 22.04 下安装 ROS2 报unable to locate package ros-humble-desktop未添加 ROS2 apt 源或未 apt update检查/etc/apt/sources.list.d/ros2.list添加 ROS2 官方源后重新 updateFAST-LIO 启动后没有轨迹输出话题名或消息类型不匹配查看算法配置中的 lid_topic 和 imu_topic修改为 /livox/lidar 和 /livox/imu确认消息类型IMU 数据全为 0驱动配置关闭了 IMU 发布或 IMU 固件异常ros2 topic echo /livox/imu查看原始数据打开驱动配置中的 IMU 开关重新上电静止时轨迹漂移很大IMU 噪声参数未标定、外参不准对比静止时刻轨迹输出检查 yaml 参数重新标定 IMU 噪声和雷达到 IMU 外参长时间运行后点云频率逐渐降低内存泄漏或硬盘写入瓶颈观察top和 CPU/内存趋势重启节点、清理日志、降低数据输出频率rosbag 录制体积过大点云话题数据量本身就大ros2 bag info查看每条 bag 大小缩短录制时长或只录制所需话题8.1 驱动编译失败Livox SDK2 或 livox_ros_driver2 编译失败绝大多数情况是缺少依赖。先检查cmake、make、gcc、g、ROS2 开发环境是否齐备sudo apt update sudo apt install cmake build-essential sudo apt install ros-humble-desktop如果是 livox_ros_driver2 在 colcon build 时提示找不到livox_sdk2先确认 Livox SDK2 是否已经sudo make install并把 CMAKE_PREFIX_PATH 配置正确。8.2 点云畸变和运动补偿问题Mid-360 是非重复扫描雷达在无人机快速运动时点云会因为运动产生畸变。如果 FAST-LIO / Point-LIO 没有正确使用 IMU 做运动补偿会出现“点云错位”“地面变厚”等现象。通常解决方案是确保雷达驱动和 IMU 时间对齐并让定位算法启用点云畸变补偿而不是把每一帧点云当作刚性扫描直接匹配。8.3 室内环境退化问题室内最容易出现的定位退化是“方向退化”与“特征缺失”。无人机在一个没有明显几何特征的房间里悬停雷达扫到的可能只有平整的地面和天花板这种情况下 LIO 算法很难约束水平方向的位移。解决办法保证飞行路径上有墙、柱子、桌椅等几何特征。提高雷达扫描频率或降低飞行速度。在算法中增加回环检测和图优化。用 UWB 或动捕系统为关键帧提供额外约束。9. 最佳实践与使用建议9.1 先从桌面测试开始不要一上来就把 Mid-360 固定在无人机上跑算法。先把雷达放在桌面或三脚架上完成驱动、话题、rviz 可视化、rosbag 录制全流程确认传感器本身没有问题再转移到无人机平台。这样能把“传感器问题”和“无人机装机问题”分开排查。9.2 保留一套最小可运行配置每次测试前保留一份能稳定启动的最小配置雷达的 IP 和端口。驱动 launch 文件的最终可用版本。和传感器匹配的 yaml 参数。一条已经验证过的指令序列。这样即使修改参数调试失败也能快速回到可用状态避免浪费大量时间在环境恢复上。9.3 数据目录和日志分开管理前文已经提过目录建议这里再强调一次bags/放原始 rosbag。config/放所有 yaml 和 json 配置。result/放轨迹和地图结果。logs/放驱动和算法日志。每次测试记录一下雷达固件版本、驱动版本、算法版本、参数变更内容后面定位漂移时能更快定位原因。9.4 外参标定要重视Mid-360 到 IMU 的外参误差是室内无人机定位漂移的最大来源之一。如果外参不准确点云和 IMU 数据融合时会产生系统性偏差表现为轨迹旋转、漂移或建图错层。建议使用官方标定工具或滤波器方法在每次装载位置改变后重新标定。9.5 批量任务加日志和失败重试批量采集数据或批量跑定位算法时一定要加日志。对一个 100 段的批量任务来说中途某一段失败是非常正常的。建议在每个 bag 录制脚本和算法处理循环里加上输出日志、记录进度、失败重试机制。比如for bag in ./bags/*.bag; do echo processing $bag logs/process.log if ros2 bag play $bag --rate 1.0; then echo ok: $bag logs/process.log else echo failed: $bag logs/process.log continue fi done这里只是一个通用循环模板实际使用时需要把ros2 bag play替换成你正在使用的离线算法处理命令并且确认当前环境能连续处理多个 bag。9.6 合规测试和数据安全Mid-360 采集的点云数据属于环境感知数据测试时必须注意以下几点只在授权的室内场地测试飞行前检查无人机状态。录制数据前告知范围内的人员避免摄录到不必要的隐私信息。数据文件不要随意上传公开平台如果确实需要分享先做脱敏处理。如果是公司或实验室项目数据管理遵循内部安全规范。任何时候都不要在禁飞区域或不合规场景开展无人机定位测试。10. 总结与下一步这次我们完整梳理了 Livox Mid-360 在室内无人机定位测试中的使用链路从硬件和软件环境准备到 Livox SDK2 和 livox_ros_driver2 的安装再到 rviz 点云可视化、rosbag 录制、FAST-LIO / Point-LIO 的接入和轨迹验证最后是资源占用观察与常见问题排查。核心思路是先保证驱动和数据链路稳定再考虑算法调参最后接入无人机飞控。这个项目最值得先验证的是点云话题的稳定输出也就是能不能在 rviz 里清楚看到房间结构。驱动层不稳定后面所有 SLAM 和定位测试都没有意义。最容易踩的坑有两个一是 Ubuntu 22.04 下 ROS2 依赖和 Livox SDK2 版本不对齐二是雷达 IP 网段和电脑网卡不在同一网段导致点云丢帧或频率为 0。做任何无人机飞行测试前请一定先在桌面完成全流程验证确认外参、IMU 和定位轨迹都稳定后再上机测试。后续可以继续扩展的方向包括把 FAST-LIO 替换为 Point-LIO 对比精度接入 UWB 或视觉标签做多传感器融合批量采集多个室内场景的数据集后离线调优算法参数以及把定位结果通过 MAVROS/MAVSDK 对接飞控实现室内自主悬停或航线飞行。如果这篇文章帮你在 Mid-360 室内无人机定位测试上少踩一个坑那就值得收藏备用。
返回列表