Skip to content

踩坑github.com7 天前

Livox Mid-360 倾斜或倒装在四足/人形机身时 FAST-LIO2 里程计发散飘飞 ​

硬件与软件环境 ​

  • 传感器:览沃 Livox Mid-360 混合固态激光雷达(内置 6 轴 IMU)
  • 适配本体:宇树 G1(头部倒装)、宇树 Go2(车头下倾安装)、行业四足巡检平台
  • 算法栈:livox_ros_driver2 + FAST-LIO2

故障现象与报错 ​

雷达水平放置桌面时建图完全正常;但一旦按机器人结构要求**倒装(Roll = 180°)或前倾下视(如 Pitch = 30°)**安装到机器人本体后,启动 FAST-LIO2 并在原地轻微晃动机身,RViz2 中的点云和 Odometry 轨迹在 2~3 秒内沿 Z 轴或水平方向加速飘飞至数千米外。

根因分析 ​

  1. Mid-360 内置 IMU 单位为 g 而非 m/s²:livox_ros_driver2 发布 /livox/imu 时线性加速度单位为重力加速度 g(静止模长约为 1.0),若外部算法误按 9.81 m/s² 处理且关闭了在线重力模长归一化,会导致加速度积分尺度错误。
  2. extrinsic_R 配置错误或驱动层重复旋转:如果在 config.json(livox_ros_driver2)里已经填写了 roll/pitch/yaw 做了点云硬件坐标旋转,同时又在 mid360.yaml(FAST-LIO2)的 extrinsic_R 中填了旋转矩阵,会导致点云与 IMU 之间的相对外参被错误破坏(Mid-360 内部激光与内置 IMU 之间的固联外参是出厂固定的,不应随整机安装倾角改变!)。

解决步骤 ​

  1. 保持 livox_ros_driver2 内部外参全零:在 MID360_config.json 的 extrinsic_parameter 中保持 roll: 0, pitch: 0, yaw: 0, x: 0, y: 0, z: 0,确保点云和内置 IMU 均工作在雷达原生坐标系,此时 mid360.yaml 中的 extrinsic_R 保持单位阵 I_3、extrinsic_T: [-0.011, -0.02329, 0.04412] 即可稳定建图。
  2. 在 TF 树而非驱动内部处理机身倾角:启动 FAST-LIO2 时保持機器人静止 3 秒完成重力方向初始化,然后通过 static_transform_publisher 发布 base_link -> body(包含实际安装俯仰角或 180° 倒装翻滚角)将里程计对齐回机器人底盘水平系。

来源

本页事实对应的公开页面,以原文为准。

  1. GitHub hku-mars/FAST_LIO访问 2026-10-21
  2. GitHub Livox-SDK/livox_ros_driver2访问 2026-10-21