4. IMU参数调优:IMU积分频率、加速度计噪声、陀螺仪噪声、IMU与视觉/惯导对齐

好,咱们进入正题。IMU参数调优,说白了就是让飞控的“感觉”更准。你想想看,EKF2融合算法再牛,如果IMU数据本身就有问题,那后面全是白搭。我个人习惯把这一章叫做“地基工程”——地基没打好,楼盖得再高也得塌。

咱们先看一张图,把这一章的知识脉络理清楚。

IMU参数调优 IMU积分频率 加速度计噪声 陀螺仪噪声 IMU与视觉/惯导对齐 IMU_GYRO_RATEMAX IMU_ACCEL_CUTOFF IMU_GYRO_CUTOFF EKF2_EV_* 参数 目标:最小化延迟 + 抑制噪声 + 坐标系对齐

4.1 IMU积分频率:快还是慢?这是个问题

IMU积分频率,对应PX4里的参数是 IMU_GYRO_RATEMAXIMU_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_XEKF2_EV_POS_YEKF2_EV_POS_Z(位置偏移)和 EKF2_EV_YAW(角度偏移)。

说白了,就是告诉EKF2:视觉传感器装在飞机的哪个位置,朝向哪里。如果这个参数不对,视觉数据和IMU数据就“对不上”,融合结果会非常诡异。

我曾经帮一个团队调视觉SLAM无人机,起飞后总是往左偏。查了所有参数都没问题,最后发现是 EKF2_EV_YAW 设成了90度,而实际摄像头是朝前的。你想想看,EKF2以为摄像头在朝右看,实际它在朝前看,那融合出来的位置能对吗?

对齐方法:

  1. 先确定IMU在飞机上的安装位置(通常是飞控中心)。
  2. 测量视觉传感器(摄像头、激光雷达等)相对于IMU的物理偏移。
  3. 将偏移量填入 EKF2_EV_POS_* 参数。
  4. 角度对齐:如果传感器和IMU的朝向一致,EKF2_EV_YAW 设为0。

避坑指南:我曾经见过有人把 EKF2_EV_POS_Z 填成负数,结果飞机一上天就往下掉。原因是视觉传感器装在飞机下方,但参数填反了,EKF2以为传感器在飞机上方,导致高度估计完全错误。

最后说一句,IMU参数调优没有“万能公式”。每架飞机、每个传感器都有自己的脾气。我的建议是:先按经验值设一个基础参数,然后飞一次,看日志,再微调。别指望一次搞定。


公众号:蓝海资料掘金营,微信deep3321