4. IMU参数调优:IMU积分频率、加速度计噪声、陀螺仪噪声、IMU与视觉/惯导对齐
好,咱们进入正题。IMU参数调优,说白了就是让飞控的“感觉”更准。你想想看,EKF2融合算法再牛,如果IMU数据本身就有问题,那后面全是白搭。我个人习惯把这一章叫做“地基工程”——地基没打好,楼盖得再高也得塌。
咱们先看一张图,把这一章的知识脉络理清楚。
4.1 IMU积分频率:快还是慢?这是个问题
IMU积分频率,对应PX4里的参数是 IMU_GYRO_RATEMAX 和 IMU_ACCEL_RATEMAX。说白了,就是飞控每秒对IMU数据做多少次积分。
我见过不少新手,一上来就把积分频率拉到最高,觉得越快越好。其实不是这样的。你想想看,频率越高,CPU负担越重,而且高频噪声也会被积分放大。我在项目中遇到过一架四旋翼,悬停时高度漂移得厉害,查了半天发现是积分频率设得太高,把振动噪声全积分进去了。
核心原则:
- 高频率(如 1000Hz):适合高速机动、竞速无人机。延迟低,但噪声大。
- 低频率(如 200Hz):适合航拍、测绘等稳定平台。噪声小,但延迟稍高。
我个人习惯的做法是:先看你的IMU型号。如果是BMI088这种工业级IMU,跑800-1000Hz没问题。如果是MPU6000这种老将,建议400-500Hz,再高反而容易出问题。
调参小技巧:
在QGC的MAVLink Inspector里看 IMU_GYRO_RATEMAX 的实际输出。如果发现数据有大量毛刺,先降频试试,别急着调滤波器。
4.2 加速度计噪声:别让振动毁了你的数据
加速度计噪声参数是 IMU_ACCEL_CUTOFF,也就是低通滤波器的截止频率。这个参数直接影响EKF2对加速度数据的信任程度。
为什么会这样?因为加速度计对振动特别敏感。电机转动、机架共振,都会在加速度数据里留下痕迹。如果不做滤波,EKF2会把振动当成真实的加速度,结果就是位置和速度估计全乱套。
我记得有一次帮朋友调一架六旋翼,落地时总是弹跳。查日志发现加速度计Z轴数据里混入了明显的电机振动频率。把 IMU_ACCEL_CUTOFF 从80Hz降到30Hz,问题立刻解决。
| 场景 | 建议截止频率 | 说明 |
|---|---|---|
| 大型多旋翼(>10kg) | 20-30 Hz | 机架大,低频振动多 |
| 中型多旋翼(3-10kg) | 30-50 Hz | 平衡延迟和噪声 |
| 小型竞速机 | 50-80 Hz | 需要快速响应 |
| 固定翼 | 10-20 Hz | 振动小,更关注平滑 |
注意:截止频率设得太低(比如<10Hz),会导致加速度数据延迟过大,EKF2的位置估计会明显滞后。我曾经见过有人设到5Hz,结果飞机一推油门就抬头,因为加速度计反应太慢了。
4.3 陀螺仪噪声:角速度的“洁癖”
陀螺仪噪声参数是 IMU_GYRO_CUTOFF。和加速度计类似,它控制陀螺仪数据的低通滤波。
但陀螺仪有个特点——它比加速度计更“娇气”。加速度计对线性振动敏感,陀螺仪对高频角振动敏感。尤其是电机启停瞬间,陀螺仪数据会出现尖峰。
我个人的经验是:陀螺仪的截止频率通常可以比加速度计高一些。因为姿态控制需要更快的响应,而且陀螺仪的噪声特性通常比加速度计好。
经验值:
- 加速度计截止频率:30-50 Hz
- 陀螺仪截止频率:50-80 Hz
- 两者差值建议在20-30 Hz左右
嗯,这里要注意一点:如果你用了IMU内置的滤波器(比如BMI088的滤波器),PX4的软件滤波器就要相应调低。否则等于做了两次滤波,延迟会翻倍。
4.4 IMU与视觉/惯导对齐:坐标系不能错
这部分最容易出问题,也最容易被忽略。IMU与视觉/惯导对齐,涉及两个核心参数:EKF2_EV_POS_X、EKF2_EV_POS_Y、EKF2_EV_POS_Z(位置偏移)和 EKF2_EV_YAW(角度偏移)。
说白了,就是告诉EKF2:视觉传感器装在飞机的哪个位置,朝向哪里。如果这个参数不对,视觉数据和IMU数据就“对不上”,融合结果会非常诡异。
我曾经帮一个团队调视觉SLAM无人机,起飞后总是往左偏。查了所有参数都没问题,最后发现是 EKF2_EV_YAW 设成了90度,而实际摄像头是朝前的。你想想看,EKF2以为摄像头在朝右看,实际它在朝前看,那融合出来的位置能对吗?
对齐方法:
- 先确定IMU在飞机上的安装位置(通常是飞控中心)。
- 测量视觉传感器(摄像头、激光雷达等)相对于IMU的物理偏移。
- 将偏移量填入
EKF2_EV_POS_*参数。 - 角度对齐:如果传感器和IMU的朝向一致,
EKF2_EV_YAW设为0。
避坑指南:我曾经见过有人把 EKF2_EV_POS_Z 填成负数,结果飞机一上天就往下掉。原因是视觉传感器装在飞机下方,但参数填反了,EKF2以为传感器在飞机上方,导致高度估计完全错误。
最后说一句,IMU参数调优没有“万能公式”。每架飞机、每个传感器都有自己的脾气。我的建议是:先按经验值设一个基础参数,然后飞一次,看日志,再微调。别指望一次搞定。
公众号:蓝海资料掘金营,微信deep3321