第三章:IMU传感器原理与建模

大家好,我是你们的讲师。今天我们来聊聊IMU,也就是惯性测量单元。这东西在机器人、无人机、自动驾驶里太常见了。说白了,它就是给系统一个“本体感觉”——知道自己转没转,加没加速。

我刚开始做机器人那会儿,总觉得IMU是个黑盒子。后来踩了不少坑,才明白它的脾气。今天我就把加速度计和陀螺仪的原理、模型、噪声特性,还有标定方法,掰开了揉碎了讲给你听。

3.1 加速度计的工作原理

加速度计测量的是比力(specific force),不是单纯的加速度。什么意思?你想想看,一个静止放在桌上的加速度计,它读数是9.8 m/s²,指向天。因为它测的是支撑力带来的加速度,抵消了重力。

常见的MEMS加速度计,内部是一个微小的质量块,连着弹簧。当外界有加速度时,质量块会位移,电容变化,然后转换成电压信号。嗯,这里要注意:它测的是“感受到的力”,不是运动加速度。

核心公式:

a_m = a - g + n_a + b_a

其中:a_m是测量值,a是真实运动加速度,g是重力矢量,n_a是高斯白噪声,b_a是零偏(bias)。

我在项目中遇到过一个问题:无人机悬停时,加速度计Z轴读数不是9.8,而是9.6。一开始我以为是传感器坏了,后来才发现是温度变化导致的零偏漂移。所以,标定真的很重要。

3.2 陀螺仪的工作原理

陀螺仪测量角速度。MEMS陀螺仪用的是科里奥利效应。一个振动的质量块,当它旋转时,会受到一个垂直于振动方向和旋转轴方向的力。这个力的大小和角速度成正比。

说白了,就是让一个东西来回振,然后看它有没有被“带偏”。偏了多少,就是角速度。

陀螺仪的测量模型是这样的:

核心公式:

ω_m = ω + b_g + n_g + S·ω

其中:ω_m是测量值,ω是真实角速度,b_g是零偏,n_g是高斯白噪声,S是尺度因子误差矩阵。

我习惯把陀螺仪比作一个“积分器”。你给它角速度,它给你角度。但积分会累积误差,这就是为什么纯陀螺仪的姿态会漂移。

3.3 噪声特性与Allan方差

IMU的噪声不是简单的白噪声。它有多种成分。怎么分析?Allan方差是工业界标准方法。

Allan方差的做法很简单:采集一段长时间的静态数据,然后计算不同时间尺度下的方差。你会得到一条曲线,从曲线上能读出噪声参数。

噪声类型 Allan方差曲线斜率 物理含义
角度随机游走(ARW) -1/2 白噪声积分后的角度误差
零偏不稳定性(Bias Instability) 0(谷底) 零偏的低频漂移
速率随机游走(RRW) +1/2 零偏的缓慢变化
量化噪声 -1 AD转换的量化误差

我曾经用Allan方差分析过一个国产IMU,发现它的零偏不稳定性比datasheet标称值大了三倍。后来跟厂家沟通,才知道他们测试条件太理想了。所以,拿到IMU第一件事,自己跑一遍Allan方差。

实用技巧:采集Allan方差数据时,建议至少采集2小时以上。采样率设到100Hz或200Hz。数据要保证IMU完全静止,最好放在大理石平台上。

3.4 标定方法

标定IMU,说白了就是找出零偏、尺度因子、轴间耦合这些误差参数。我把它分成两步:确定性误差标定和随机误差标定。

3.4.1 六位置法(加速度计标定)

这个方法很经典。把IMU的每个轴分别朝上、朝下放置,记录读数。六个位置,解六个方程,就能算出零偏和尺度因子。

// 伪代码示例:六位置法标定加速度计
// 采集六个位置的均值:gx+, gx-, gy+, gy-, gz+, gz-
// 假设真实重力为9.81
scale_x = (gx+ - gx-) / (2 * 9.81)
bias_x = (gx+ + gx-) / 2
// 同理计算y轴和z轴

嗯,这里要注意:六位置法假设转台水平。我刚开始做的时候,用手拿着翻,结果误差很大。后来买了个简易的直角夹具,精度就上来了。

3.4.2 陀螺仪标定

陀螺仪标定需要转台。给一个已知角速度,比如10°/s,然后对比测量值。如果没有转台,可以用地球自转来标定——但地球自转只有15°/h,对MEMS来说太小了,基本测不出来。

我个人的习惯是:对于消费级IMU,陀螺仪只标定零偏。把IMU静止放几分钟,取均值就是零偏。尺度因子一般用出厂值,除非你要求很高。

避坑指南:我曾经犯过一个错误——在标定完加速度计后,直接用它来修正陀螺仪的俯仰和横滚角。结果发现,加速度计的振动噪声会耦合进陀螺仪的姿态估计。后来我加了低通滤波,才解决了这个问题。

3.5 知识体系总览

下面这张图,是我自己画的IMU知识体系。你可以把它当作一个思维导图来看。

IMU传感器原理与建模 加速度计 工作原理:质量块-弹簧 测量模型:a_m = a - g + n + b 陀螺仪 工作原理:科里奥利效应 测量模型:ω_m = ω + b + n + S·ω 噪声特性 Allan方差分析 ARW / Bias Instability / RRW 标定方法 六位置法(加速度计) 转台标定(陀螺仪) 静态零偏标定 核心:理解噪声 → 准确标定 → 融合定位

这张图把加速度计、陀螺仪、噪声特性和标定方法串在了一起。你想想看,如果不理解噪声,标定就是盲人摸象。如果不标定,融合就是空中楼阁。

3.6 实战建议

最后,给你几个实战建议:

  • 选型时:别只看datasheet的噪声指标。我习惯先看Allan方差曲线,尤其是零偏不稳定性那个谷底值。
  • 标定时:温度影响很大。我建议在恒温箱里做标定,或者至少记录温度,做温度补偿。
  • 使用时:IMU数据一定要做时间戳同步。我见过太多人因为时间戳没对齐,导致融合结果一塌糊涂。

一个小技巧:如果你没有转台,可以用“旋转法”粗略标定陀螺仪尺度因子。把IMU固定在一个已知角度的转盘上,手动旋转90度,对比积分角度和真实角度。虽然精度不高,但够用。

好了,IMU的原理和建模就讲到这里。记住,IMU是个好东西,但也是个“娇气”的东西。你摸透了它的脾气,它就能帮你干大事。

可可精品资料库