第一章:IMU基础与数据特性

大家好,我是老张。做IMU融合这些年,踩过的坑比走过的路还多。今天咱们就从最基础的开始聊——加速度计和陀螺仪到底是怎么回事,它们的数据里藏着哪些坑。

说实话,很多人一上来就调卡尔曼滤波,结果数据质量不行,怎么调都白搭。我个人的习惯是,先花时间把传感器特性摸透,后面能省一半的调试时间。

1.1 加速度计原理

加速度计测的是什么?说白了就是比力。不是速度的变化率,而是物体受到的惯性力与重力的合力。

微机电系统(MEMS)加速度计内部有个质量块,固定在弹簧上。当芯片加速时,质量块会偏移,电容值跟着变。测出电容变化,就能反推出加速度。

关键点:静止时加速度计测的是重力加速度g,方向竖直向上。这个特性常被用来做姿态初始对准。

我在项目中遇到过一件事:有次把IMU装在无人机上,地面测试时数据正常,一上天就飘。排查了半天,发现是振动导致加速度计输出严重失真。嗯,这里要注意,加速度计对高频振动特别敏感。

1.2 陀螺仪原理

陀螺仪测角速度,单位是°/s。MEMS陀螺仪用的是科里奥利效应——一个振动的质量块,在旋转时会受到一个垂直于振动方向的力。测这个力的大小,就能算出角速度。

你想想看,这个原理本身就决定了陀螺仪对温度很敏感。温度一变,振动频率和阻尼都会变,输出自然就漂了。

个人经验:我建议每次上电后先让IMU预热3-5分钟,等温度稳定了再开始采集数据。这个习惯帮我避免了很多温漂问题。

1.3 零偏与噪声

零偏是什么?就是传感器静止时,输出不为零的那个值。加速度计静止时应该输出g,但实际可能差一点。陀螺仪静止时应该输出0,但实际可能有个小偏移。

为什么会这样?制造工艺的微小偏差、封装应力、温度梯度,都会导致零偏。我见过最夸张的一次,某款廉价IMU的陀螺仪零偏达到5°/s,这要是直接积分算角度,一秒就偏5度,根本没法用。

误差类型 典型值 影响
加速度计零偏 ±50 mg 姿态误差约3°
陀螺仪零偏 ±0.5 °/s 积分后角度发散
加速度计噪声 100 μg/√Hz 高频抖动
陀螺仪噪声 0.01 °/s/√Hz 角度随机游走

噪声这东西,说白了就是随机误差。你拿100个样本看,每次都不一样。但噪声有个好处——它是零均值的,多采几个点平均一下,就能把噪声压下去。

1.4 温漂问题

温漂是IMU最大的敌人之一。温度变化10度,零偏可能漂移好几倍。我记得有次做车载测试,夏天车内温度从25度升到60度,陀螺仪零偏直接翻了三倍。

避坑指南:我曾经在项目里忽略了温漂,结果融合算法在冷启动时表现很好,跑半小时后就开始发散。后来加了温度补偿模型,才把问题解决。如果你用的IMU没有内置温补,一定要自己做标定。

温漂的补偿方法有两种:一种是查表法,提前在不同温度下标定零偏,运行时查表插值;另一种是建模法,用多项式拟合温度-零偏曲线。我个人更推荐查表法,简单可靠。

1.5 采样率与时间戳对齐

IMU的采样率通常从100Hz到1000Hz不等。加速度计和陀螺仪的采样率可能不一样,这就需要做时间戳对齐。

为什么对齐这么重要?你想想看,融合算法里要用加速度计的姿态去修正陀螺仪的积分误差。如果两个数据的时间戳对不上,一个快一个慢,那修正就乱套了。

我建议的做法是:

  • 用硬件触发信号同步两个传感器
  • 或者用高精度时钟给每个数据打时间戳
  • 后处理时做线性插值,把数据对齐到同一时间轴
// 时间戳对齐示例代码
void align_timestamps(imu_data_t *accel, int accel_len,
                      imu_data_t *gyro, int gyro_len) {
    int i = 0, j = 0;
    while (i < accel_len && j < gyro_len) {
        if (accel[i].timestamp < gyro[j].timestamp) {
            // 对加速度计数据做插值
            i++;
        } else {
            // 对陀螺仪数据做插值
            j++;
        }
    }
}

小技巧:如果两个传感器的采样率是整数倍关系,比如加速度计100Hz、陀螺仪200Hz,那对齐就简单多了。我一般会故意把采样率设成整数倍,省去很多麻烦。

1.6 知识体系总览

下面这张图是我自己整理的IMU数据特性知识框架,你可以照着这个思路去理解整个体系:

IMU数据特性 加速度计 原理:质量块-弹簧-电容 测量:比力(重力+惯性力) ⚠ 易受振动干扰 陀螺仪 原理:科里奥利效应 测量:角速度 (°/s) ⚠ 温漂严重 误差来源 数据对齐 零偏 · 噪声 · 温漂 采样率 · 时间戳对齐 理解数据特性 → 做好融合算法

这张图把IMU数据特性的核心脉络理清楚了。左边是加速度计,右边是陀螺仪,下面是误差来源和数据对齐。你顺着这个结构去理解,后面学融合算法会轻松很多。

好了,第一章的内容就到这里。记住一句话:数据质量决定算法上限。花时间把传感器特性吃透,比盲目调参有用得多。

可可精品资料库