外观
踩坑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 轴或水平方向加速飘飞至数千米外。
根因分析
- Mid-360 内置 IMU 单位为
g而非m/s²:livox_ros_driver2发布/livox/imu时线性加速度单位为重力加速度g(静止模长约为 1.0),若外部算法误按9.81 m/s²处理且关闭了在线重力模长归一化,会导致加速度积分尺度错误。 extrinsic_R配置错误或驱动层重复旋转:如果在config.json(livox_ros_driver2)里已经填写了roll/pitch/yaw做了点云硬件坐标旋转,同时又在mid360.yaml(FAST-LIO2)的extrinsic_R中填了旋转矩阵,会导致点云与 IMU 之间的相对外参被错误破坏(Mid-360 内部激光与内置 IMU 之间的固联外参是出厂固定的,不应随整机安装倾角改变!)。
解决步骤
- 保持
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]即可稳定建图。 - 在 TF 树而非驱动内部处理机身倾角:启动 FAST-LIO2 时保持機器人静止 3 秒完成重力方向初始化,然后通过
static_transform_publisher发布base_link -> body(包含实际安装俯仰角或 180° 倒装翻滚角)将里程计对齐回机器人底盘水平系。
来源
本页事实对应的公开页面,以原文为准。
- GitHub hku-mars/FAST_LIO访问 2026-10-21
- GitHub Livox-SDK/livox_ros_driver2访问 2026-10-21