c语言加速度积分得到速度_【底盘Z轴陀螺仪】ADI双轴加速度和单轴陀螺仪捷联传感器模块...

本文介绍了如何使用STM32单片机结合工业级陀螺仪ADXRS620测量机器人底盘的旋转角度。针对陀螺仪的零飘和噪声问题,提出了零偏矫正算法和Allan方差分析方法。并讨论了在底盘闭环和Pitch轴倾角测量中的应用。
摘要由CSDN通过智能技术生成

经过我们3个月的调试开发,支持CAN总线的的外置Z轴陀螺仪单元,终于初步调试通过。我们费劲心机的换掉了MPU6500/6050这个消费级的IMU,采用了ADXRS620工业级的陀螺仪和ADXL203(AD22293)工业级别的加速度计组成的外置(CAN接口的)测量单元,可以用于机器人地盘的位姿闭环。

71cab53371f015fcdc14d338716505ba.png

陀螺仪又叫角速度传感器,它可以用来测量物体旋转的速度,即角速度。

传统机械陀螺仪主要利用角动量守恒原理,即:对旋转的物体,它的转轴指向不会随着承载它的支架的旋转而变化。而使用MEMS,即微机电系统结构的陀螺仪主要利用科里奥利力(旋转物体在有径向运动时所受到的切向力)原理,MEMS陀螺仪的核心是一个微加工机械单元,在设计上按照一个音叉机制共振运动,通过科里奥利力原理把角速率转换成一个特定感测结构的位移。

51034a589785c88d27e00de1adb14c6d.png

两个相同的质量块以方向相反的做水平震荡,如水平方向箭头所示。当外部施加一个角速率,就会出现一个科氏力,力的方向垂直于质量运动方向,如垂直方向箭头所示。产生的科氏力使感测质量发生位移,位移大小与所施加的角速率大小成正比。因为感测器感测部分的动电极(转子)位于固定电极(定子)的侧边,上面的位移将会在定子和转子之间引起电容变化,因此,在陀螺仪输入部分施加的角速率被转化成一个专用电路可以检测的电子参数——电容量。

477790db25baff482fa0c60cb818bfa6.png

陀螺仪的讯号调节电路可以分为马达驱动和加速度计感测电路两个部分。其中,马达驱动部分是透过静电引动方法,使驱动电路前后振动,为机械元件提供激励;而感测部分透过测量电容变化来测量科氏力在感测质量上产生的位移。

因为科里奥利力来自于物体运动所具有的惯性,所以重量大的传感器,相比较而言就比较容易检测到其角速率的变化,同时,我们也可以较为精确的得到角速信息,这也是ADXRS620为什么比MPU系列的陀螺仪在各个参数上都优越的原因之一。

上面这部分内容,如果不是微电子专业的同学应该不会感兴趣。那我们来谈一谈怎么用ADXRS620得到地盘的旋转角度信息。

在没有旋转,即0°/s的角速度,ADXRS620会输出一个2.5V的模拟量信号,如果物体正在旋转,那么ADXRS620会以6mV/°/s的幅度更改其输出。例如如果此时ADXRS620输出2.512V,那么此刻的角速度为2°/s;如果此时ADXRS620输出2.488V,那么此刻的角速度为-2°/s。

首先,准确的测量如此小的电压变化,并不容易,对于STM32单片机来说,其12位ADC精度理论上能达到1/4096,3.3v参考电压就是0.8mV,但是大部分实验表明,这套AD系统一般具有正负5个LSB以上的误差,即误差就有4mV。同时,ADXRS620的电压输出范围在0-5V间,如果使用不够精确的分压电阻进行分压,也会引入误差,所以直接使用单片机的AD引脚来测量,应该是不够精确的。

所以我们使用了一款, 16 位的外置串行模数转换器--ADS8327,在Digkey上的售价,高达108元/片。

同样的,在整个过程中,我们还需要考虑以下两点:

1. 陀螺仪的零飘问题

陀螺仪输出的是角速度,要通过积分才能获得角度,但即使在零输入状态(角速度为0)时,陀螺依然是有输出的,它的输出是白噪声和慢变随机函数的叠加,并且由于地转偏向力和地球自转的存在,这项误差是不可避免的,小的误差会被淹没在大的误差里,受此影响,即便陀螺仪不动,他的实际输出也不是准确的2.5000000000000V。并且这个误差在实际中还是蛮大的,如何滤除这个误差,一般就需要零偏矫正算法,一般传感器是需要进行校准的,比如这里讲的陀螺仪。目前大多数的陀螺校准其实就是去掉零点偏移量,采集一定的数据,求平均。

陀螺仪的零偏可以认为是一个常值,这一点ADXRS620也在其Datasheet上给出了其幅值范围。

2.陀螺仪的噪声问题

陀螺仪包含的噪声成分主要有:角度随机游走、相关噪声、速率随机游走,

在积分的过程中,必然会引进累计误差,积分时间越长,误差就越大。这一点也无法避免。

学术界在分析陀螺仪的噪声问题时,通常是采集角速度信息,然后进行Allen方差分析。Allan方差最初由David W. Allan开发,用于测量精密仪器的频率稳定性。

关于这一技术的细节,可以参考这一篇文章:

https://blog.csdn.net/ouyangandy/article/details/97374654

3.应用场合

我们给出了两个典型的应用场合:

其一是底盘闭环

代码会在稍后一段时间发布。

其二是Pitch轴倾角测量

这一技术的代码已经公开在开发板C的附件资料中,说明书的最后也有流程图。

【封面图】

1f41f3656f3a716e0c2cd6179e178355.png

【说明书】

f1674c16178d57ea183b939bbeb50a58.png

dcbcea6c3ec3e9d126d8d89fac6532e0.png

21a506ef8fa490e93099fd5c117c880c.png

0c4c996eda6bb8e842259ccd3748bfca.png

1553b36e9cface74075df3c970194ddb.png

cd9a499755ab3ef3cbaae5801781b63f.png

bad72fb7506202944f755d656d797437.png

4367660d04a78a08075c4908c30e60fa.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值