文档详情

加速度计和陀螺仪设备在嵌入式应用中使用的指南.pdf

发布:2017-08-09约1.41万字共14页下载文档
文本预览下载声明
本帖翻译自 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 度。现在球会与两个面接
显示全部
相似文档