第二节:IMU工作原理——加速度计与陀螺仪的物理原理、测量模型与坐标系定义
各位同学,今天我们来啃一块硬骨头——IMU的工作原理。
说实话,我刚入行那会儿,觉得IMU就是个黑盒子,往板子上一焊,数据就出来了。直到有一次做四旋翼的悬停控制,飞机在天上疯狂漂移,我才意识到——不懂原理,你连问题出在哪都不知道。
好,咱们今天就把这个黑盒子拆开看看。
一、加速度计:你感受到的“重力”其实是加速度
加速度计测量的是什么?很多人会脱口而出:“重力加速度”。
嗯,对了一半。
加速度计测量的其实是比力(Specific Force)——也就是物体受到的惯性力与重力的矢量和。说白了,它测的是“除了重力之外,还有没有别的力在推你”。
核心公式:
a_meas = a_linear + g
其中 a_meas 是加速度计的输出,a_linear 是物体的线性加速度,g 是重力加速度矢量。
注意:当物体静止时,a_linear = 0,所以 a_meas = g。这就是为什么静止时加速度计读数是 1g。
我做过一个有意思的实验:把IMU绑在无人机上,然后自由落体。你猜怎么着?加速度计读数变成了0!因为这时候没有支撑力了,只有重力在作用,而加速度计测的是“支撑力”对应的加速度。
加速度计的物理原理
最常见的MEMS加速度计是电容式的。里面有个微小的质量块,用弹簧悬着。当有加速度时,质量块会移动,改变电容值。测出电容变化,就能反推出加速度。
你可以想象成:你坐在车里,急刹车时身体前倾。质量块就是你的身体,弹簧就是安全带。前倾的幅度越大,说明刹车越猛。
我的经验:选型时别只看量程,还要看噪声密度。我踩过坑——选了个大厂的低噪声加速度计,结果发现它的带宽只有10Hz,做不了振动分析。后来换了宽带宽的型号,问题才解决。
二、陀螺仪:角速度的“旋转感知器”
陀螺仪测量的是角速度,单位是 °/s 或 rad/s。
它的原理比加速度计稍微绕一点。MEMS陀螺仪用的是科里奥利效应——当一个质量块在振动时,如果给它施加一个旋转,它就会产生一个垂直于振动方向的力。
嗯,我知道这听起来有点抽象。我换个说法:
想象你站在旋转木马上,手里拿着一个水盆。你左右晃动水盆(振动),旋转木马一转(旋转),水就会往外甩(科里奥利力)。这个力的大小和旋转速度成正比。
陀螺仪内部就是靠检测这个科里奥利力来推算角速度的。
注意:陀螺仪对振动非常敏感。我在做机器人足部IMU时,发现陀螺仪数据里全是高频噪声。后来查资料才知道,那是电机振动通过结构传递到了IMU。解决办法是加装减震垫,或者做软件滤波。
三、测量模型:从物理量到数字量
无论是加速度计还是陀螺仪,它们的测量模型都可以写成:
y = K * (x + b + n)
其中:
- y:传感器输出的数字量(通常是ADC值或经过标定的物理量)
- K:标度因数(Scale Factor),也就是灵敏度
- x:真实的物理量(加速度或角速度)
- b:零偏(Bias),也就是传感器静止时的输出偏移
- n:随机噪声
这个模型看着简单,但实际工程中坑很多。
举个例子:零偏b不是常数。它会随温度变化,随供电电压变化,甚至随使用时间漂移。我做过一个测试——把IMU放在恒温箱里,从-40°C升到85°C,陀螺仪的零偏漂移了将近 0.5°/s。这在导航里是致命的。
标定要解决的核心问题:
- 确定K(标度因数)
- 确定b(零偏)
- 确定轴间对准误差(Cross-axis sensitivity)
- 确定非线性误差
四、坐标系定义:别让“正负”搞死你
坐标系定义是IMU使用中最容易出问题的地方。我见过太多人因为坐标系搞反,导致姿态解算结果完全错误。
常见的IMU坐标系有两种:
| 坐标系 | X轴 | Y轴 | Z轴 | 右手法则 |
|---|---|---|---|---|
| ENU(东-北-天) | 东 | 北 | 天 | 是 |
| NED(北-东-地) | 北 | 东 | 地 | 是 |
大多数消费级IMU(比如MPU6050、ICM-20948)用的是右手坐标系,但具体哪个轴朝哪个方向,不同厂家不一样。
我个人的习惯是:拿到一个新IMU,第一件事就是看数据手册里的坐标系定义图。然后做个简单测试——把IMU平放,看Z轴输出是不是接近1g;绕Z轴旋转,看陀螺仪Z轴是不是有响应。
避坑指南:我曾经在一个项目里,把IMU的X轴和Y轴搞反了。结果姿态解算出来的俯仰角和横滚角完全对调。查了两天才发现是坐标系定义的问题。从那以后,我每次都会写一个坐标系验证脚本,跑一遍才放心。
五、知识体系总览
下面这张图是我自己画的,把IMU工作原理的核心逻辑串起来了。你可以把它当作本章的“地图”。
从这张图你可以看到,IMU的核心就是加速度计和陀螺仪两个传感器。它们各自有物理原理、测量模型,最后统一到坐标系定义下进行数据融合。
嗯,到这里,IMU的工作原理就讲完了。下一节我们会聊怎么把这些原始数据变成有用的姿态信息——那就是姿态解算的事了。
本章要点回顾:
- 加速度计测的是比力,不是纯线性加速度
- 陀螺仪利用科里奥利效应测量角速度
- 测量模型包含标度因数、零偏、噪声三个关键参数
- 坐标系定义是工程中的常见坑,务必先验证再使用
可可精品资料库