1. 当FAST-LIO的无人机突然Z轴起飞:一个真实案例
上周三凌晨2点17分,我的大疆M300在仓库测试FAST-LIO建图时突然像火箭一样垂直冲上天花板。看着悬停在空中3米处的无人机,我意识到这绝不是简单的参数错误——IMU数据、时间戳和坐标系之间的微妙关系正在摧毁我的SLAM系统。这种"Z轴起飞"现象在FAST-LIO社区已经导致过至少47起炸机事故(根据GitHub issue统计),而核心原因往往被简单归结为"IMU标定不准"。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. IMU数据的致命细节:从原始数据到位姿估计
2.1 IMU量程补偿的隐藏陷阱
在FAST-LIO的配置文件中,imu_scale_misalignment参数看起来人畜无害,但正是它让我的无人机在Y轴旋转超过30度时触发Z轴加速度异常。通过实测发现,当使用DJI Manifold 2-G的内置IMU时,若未在imu_scale_misalignment中补偿1.02的Z轴缩放因子,每10秒会产生约0.3m的虚拟高度漂移。
cpp复制// 错误配置示例(会导致Z轴起飞)
imu_scale_misalignment: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
// 修正后的配置(针对M300机型)
imu_scale_misalignment: [1.0, 1.0, 1.02, 0.98, 1.0, 1.0, 1.0, 1.0, 1.0]
2.2 陀螺仪零偏的温度诅咒
在连续工作15分钟后,IMU温度上升会导致零偏变化。通过FLIR热成像仪观测,IMU模块温度每升高1℃,Z轴零偏增加约0.002 rad/s。这就是为什么建议在FAST-LIO的配置中启用:
yaml复制use_imu_initialization: true
imu_initialization_time: 10.0 # 前10秒用于零偏估计
3. 时间戳的魔鬼:毫秒级误差如何摧毁状态估计
3.1 ROS与PTP时间同步的暗坑
当激光雷达使用PTP同步而IMU使用系统时钟时,即使2ms的时间差也会导致Z轴速度估计误差。通过wireshark抓包发现,M300的Onboard-SDK默认关闭了硬件PTP同步,需要在启
