没有合适的资源?快使用搜索试试~ 我知道了~
首页IMU(加速度计和陀螺仪设备)在嵌入式应用中使用的指南
资源详情
资源评论
资源推荐

加速度计和陀螺仪指南——数学模型和基本算法
本帖转自 http://www.geek-workshop.com/thread-1695-1-1.html
本帖翻译自 IMU(加速度计和陀螺仪设备)在嵌入式应用中使用的指南。
这篇文章主要介绍加速度计和陀螺仪的数学模型和基本算法,以及如何融合这两
者,侧重算法、思想的讨论.
介绍
本指南旨在向兴趣者介绍惯性 MEMS(微机电系统)传感器,特别是加速度计和
陀螺仪以及其他整合 IMU(惯性测量单元)设备。
IMU 单元例子:上图中 MCU 顶端的 ACC Gyro 6DOF,名为 USBThumb,支持 USB/
串口通信
在这篇文章中我将概括这么几个基本并且重要的话题:
- 加速度计(accelerometer)检测什么
- 陀螺仪(gyroscope,也称作 gyro)检测什么
- 如何将传感器 ADC 读取的数据转换为物理单位(加速度传感器的单位是 g,陀
螺仪的单位是 度/秒)

- 如何结合加速度传感器和陀螺仪的数据以得到设备和地平面之间的倾角的准
确信息
在整篇文章中我尽量将数学运算降低到最少。如果你知道什么是正弦、余弦、正
切函数,那无论你的项目使用哪种平台你应该都会明白和运用这篇文章中的思想,
这些平台如 Arduino、Propeller、Basic Stamp、Ateml 芯片、PIC 芯片等等。
总有些人认为使用 IMU 单元需要复杂的数学运算(复杂的 FIR 或 IIR 滤波,如卡
尔曼滤波,Parks-McClellan 滤波等)。你如果研究这些会得到很棒且很复杂的
结果。我解释事情的方式,只需要基本的数学。我非常坚信简单的原则。我认为
一个简单的系统更容易操作和监控,另外许多嵌入式设备并不具备能力和资源去
实现需要进行矩阵运算的复杂算法。
我会用我设计的一个新 IMU 模块——Acc_Gyro Accelerometer + Gyro IMU 作为
例子。在下面的例子中我们会使用这个设备的参数。用这个模块作为介绍非常合
适,因为它由 3 个设备组成:
- LIS331AL (datasheet) – 3 轴 2G 模拟加速度计
- LPR550AL (datasheet) – 双轴(俯仰、翻滚) 500°/s 加速度传感器
- LY550ALH (datasheet) –单轴(偏航)陀螺仪 最后这个设备在这篇介绍中不
使用,不过他在 DCM Matrix implementation 中有重要作用
它们一起组成了一个 6 自由度的惯性测量单元。这是个花哨的名字!然而,在花
哨的名字后面是个非常有用的设备组合,接下来我们会详细介绍之。
第一部分 加速度计
要了解这个模块我们先从加速度计开始。当我们在想象一个加速度计的时候我们
可以把它想作一个圆球在一个方盒子中。你可能会把它想作一个饼干或者甜圈,
但我就把它当做一个球好了:

我们假定这个盒子不在重力场中或者其他任何会影响球的位置的场中,球处于盒
子的正中央。你可以想象盒子在外太空中,远离任何天体,如果很难想象,那就
当做盒子在航天飞机中,一切东西都处于无重力状态。在上面的图中你可以看到
我们给每个轴分配了一对墙(我们移除了 Y+以此来观察里面的情况)。设想每
面墙都能感测压力。如果我们突然把盒子向左移动(加速度为 1g=9.8m/s^2),
那么球会撞上 X-墙。然后我们检测球撞击墙面产生的压力,X 轴输出值为-1g
请注意加速度计检测到得力的方向与它本身加速度的方向是相反的。这种力量通
常被称为惯性力或假想力 。在这个模型中你你应该学到加速度计是通过间接测
量力对一个墙面的作用来测量加速度的,在实际应用中,可能通过弹簧等装置来

测量力。这个力可以是加速度引起的,但在下面的例子中,我们会发现它不一定
是加速度引起的。
如果我们把模型放在地球上,球会落在 Z-墙面上并对其施加一个 1g 的力,见下
图:
在这种情况下盒子没有移动但我们任然读取到 Z 轴有-1g 的值。球在墙壁上施加
的压力是由引力造成的。在理论上,它可以是不同类型的力量 - 例如,你可以
想象我们的球是铁质的,将一个磁铁放在盒子旁边那球就会撞上另一面墙。引用
这个例子只是为了说明加速度计的本质是检测力而非加速度。只是加速度所引起
的惯性力正好能被加速度计的检测装置所捕获。
虽然这个模型并非一个 MEMS 传感器的真实构造,但它用来解决与加速度计相关
的问题相当有效。实际上有些类似传感器中有金属小球,它们称作倾角开关,但
是它们的功能更弱,只能检测设备是否在一定程度内倾斜,却不能得到倾斜的程
度。
到目前为止,我们已经分析了单轴的加速度计输出,这是使用单轴加速度计所能
得到的。三轴加速度计的真正价值在于它们能够检测全部三个轴的惯性力。让我
们回到盒子模型,并将盒子向右旋转 45 度。现在球会与两个面接触:Z-和 X-,

见下图:
0.71g 这个值是不是任意的,它们实际上是 1/2 的平方根的近似值。我们介绍加
速度计的下一个模型时这一点会更清楚。
在上一个模型中我们引入了重力并旋转了盒子。在最后的两个例子中我们分析了
盒子在两种情况下的输出值,力矢量保持不变。虽然这有助于理解加速度计是怎
么和外部力相互作用的,但如果我们将坐标系换为加速度的三个轴并想象矢量力
剩余22页未读,继续阅读



















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1