零基础制作两轮自平衡小车


layout: wiki

title: 为什么要用加速度计和陀螺仪两个传感器?

参考《第七届全国大学生“飞思卡尔”杯智能汽车竞赛电磁组直立行车参考设计方案》

加速度传感器

加速度传感器,有些人也叫它加速度计,你只要记住其实是一个东西两个名字而已。

加速度传感器,顾名思义,用于测量由地球引力作用或者物体运动所产生的加速度。

如果你在高中时期没有只顾着泡妞和在课堂睡觉,那么想必已经学过重力相关的知识了。

为了方便理解,我将加速度分为两种:由地球引力产生的重力加速度,只要地球还在,重力就不会消失;由物体运动产生的运功加速度,根据牛二定理,只要有外力作用,便产生加速度。加速度传感器测量的是这个加速度的总和。物体静止加速度计测量的就是重力加速度。

给出一个“小球-盒子”模型,将重力加速度看成一个实体黑色“小球”,加速计就看成“盒子”。当物体失重时,盒子不受重力。如图1。

失重状态

图1 失重状态

当物体放在水平面地面上时,仅Z轴受重力。如图2。

放置于水平地面

图2 放置于水平地面时

当物体右倾斜放45°放在地上时, X轴和Z轴受重力的分力。如图3。

图3 当物体右倾斜放45°放在地上时

根据加速度计的各轴受重力分量可以计算出物体的倾角(俯仰角和横滚角)。但当物体有外力作用时,各个轴受的是重力+未知外力,计算结果不准确。如果,此时人为增加一个运动加速度后计算的倾角就误差很大了。如图4中红色圈部分。

图4

陀螺仪

陀螺仪,没错,它就只叫陀螺仪,没有其他名字。

陀螺仪,顾名思义,你猜不出它是干嘛的也很正常。但是,现在你要记住了,陀螺仪可以用来测量物体的旋转角速度。

我们小时候玩四驱车的时候,常说这个电机10000转每秒很牛逼,单位转/秒,那你怎么知道它10000转每秒,它这样写你就信了?如果我们有陀螺仪,把陀螺仪挂到电机轴上,那么陀螺仪测量的是旋转角速度,再除于三百六十度(一转)就可以知道这个电机转速了。实际上我们不会这样测转速-。 -,这里仅举个例子让你明白陀螺仪是干啥的。

陀螺仪利用了旋转坐标系中的物体会受到科里奥利力的原理。在陀螺仪中利用压电陶瓷做成振动单元,当旋转(陀螺仪)时会改变振动频率从而反映出物体旋转的角速度。

点击观看精妙的MPU-6050内部图片

要获得角度,就需要对陀螺仪角速度进行积分Angle+ 。Angle是带有正负的,正值表示按正向旋转,负值表示按负向旋转。具体怎么定义正负方向,就得看你的运用了。

例如MPU-6050的正负方向如图5所示。

图5 MPU-6050方向正负示意图

由于从陀螺仪角速度获得角度信息,需要经过积分运算。如果角速度信号存在微小 的偏差和漂移,经过积分运算之后,变化形成积累误差。这个误差会随着时间延长逐步 增加,最终导致电路饱和,无法形成正确的角度信。如图6所示。

图6 陀螺仪角速度积分漂移现象

为什么要用加速度计和陀螺仪两个传感器?

似乎只需要加速度传感器就可以获得车模的倾角,再对此角度值进行微分便可以获得倾角速度。但在实际车体运行过程中,由于车体本身的摆动所产生的加速度会产生很大的干扰信号,它叠加在上述测量信号上使得输出信号无法准确反映车体的倾角,如图7所示。

图7 车体运动引起加速度信号波动

由于陀螺仪输出的是车体的角速度,不会受到车体运动的影响,因此该信号中噪声很小。车体的角度又是通过对角速度积分而得,这可进一步平滑信号,从而使得角度信号更加稳定。因此车模控制所需要的角度和角速度可以使用陀螺仪所得到的信号。

由于从陀螺仪角速度获得角度信息,需要经过积分运算。如果角速度信号存在微小的偏差和漂移,经过积分运算之后,变化形成积累误差。这个误差会随着时间延长逐步增加,最终导致电路饱和,无法形成正确的角度信号,如图8所示。

图8 陀螺仪积分误差

如何消除陀螺仪的累积误差呢?

一种简单的方法就是通过加速度传感器获得的角度信息对此进行校正。通过对比陀螺仪积分所得到的角度与重力加速度所得到的角度,使用它们之间的偏差改变陀螺仪的输出,从而积分的角度逐步跟踪到加速度传感器所得到的角度。

一言蔽之,陀螺仪噪声很小,角速度数据精准,通过积分得到角度,但是长期积分会产生累积误差,需要加速度传感器来校正此误差,获得正确的姿态数据。