发布日期:2022-10-09 点击率:111
相关推荐
低成本更加精确的微型陀螺仪 比智能手机使用的高1...据外媒报道,当自动驾驶汽车或无人机失去GPS联系时它会利用惯性测量单元(IMU)来跟踪自己在空间中的....发表于 2020-03-25 15:44?
113次阅读通过智能扫地机器人陀螺仪来构建地图导航方案随着人们生活水平的提高,智能扫地机机器人已经进入千千万万的家庭,解放人们的双手。发表于 2020-03-25 09:36?
40次阅读【科普详解】目前传感器的种类(五)【科普详解】目前传感器的种类(五) 传感器是信息时代的必备产品,几乎随处可见。它是人类从外界获取信息....发表于 2020-03-24 09:35?
37次阅读【科普详解】目前传感器的种类(六)【科普详解】目前传感器的种类(六) 传感器是信息时代的必备产品,几乎随处可见。它是人类从外界获取信息....发表于 2020-03-24 09:16?
19次阅读4G三防平板终端有哪些?4G三防平板终端 4G三防平板: ①支持Android 6.0 系统; ②IP68标准防尘防水; ③....发表于 2020-03-19 15:38?
12次阅读石油测井仪器专题(二)石英挠性加速度计本文针对组成测斜探管(定向传感器)的石英挠性加速度计展开介绍。 石英挠性加速度计属于单轴重力加速度计....发表于 2020-03-17 16:26?
12次阅读手持陀螺仪传感器的原理是怎样的而陀螺仪传感器是一个简单易用的基于自由空间移动和手势的定位和控制系统,它原本是运用到直升机模型上,现....发表于 2020-03-16 16:37?
111次阅读INDEMIND发布扫地机视觉避障核心部件从随机清扫到陀螺仪导航再到激光导航,扫地机器人不断进行技术升级,但随着激光导航技术的不断成熟,行业进....发表于 2020-03-16 09:54?
256次阅读详解五种类型的运动传感器运动传感器,顾名思义,指检测物体或人运动的装置,包括重力,线性加速度,旋转矢量、振动频率等。运动传感....发表于 2020-03-14 11:14?
457次阅读浅谈高端惯性传感器技术的未来运用市场《高端惯性传感器技术及市场-2020版》 2020-03-04 15:13:24来源:麦姆斯咨询评论....发表于 2020-03-08 12:41?
329次阅读TDK IAM- MEMS MotionTracking器件TDK IAM- 6轴MotionTracking器件在3mm x 3mm x 0.75mm的小尺寸封装中集成了3轴陀螺仪和3轴加速度计。IA...发表于 2020-03-07 09:23?
104次阅读MEMS加速度计的三种类型简介MEMS加速度计的三种类型简介 随着MEMS技术的发展,惯性传感器目前是最为成功应用最广泛的微机电系....发表于 2020-03-06 11:14?
213次阅读MEMS加速度计芯片的使用环境通过测量由于重力引起的加速度,你可以计算出设备相对于水平面的倾斜角度。 通过分析动态加速度,你可以分....发表于 2020-03-06 11:02?
57次阅读MWD随钻测井中高温加速度计应用介绍MWD随钻测井中高温加速度计应用介绍 在石油勘探行业,青岛智腾提供的传感器产品有很多:倾角传感器高温....发表于 2020-03-06 10:51?
80次阅读石英振梁加速度计的未来与现状石英振梁加速度计是一种基于振梁谐振和力频特性原理的新型全固态惯性传感器,具有高精度、大量程、低功耗、....发表于 2020-03-05 14:18?
74次阅读石英摆式加速度计在各种极端环境下的运用我们是世界上最早进行石油钻井的国家。早在西汉宣帝时(公元前6070年),在现在的四川省和陕西省掘凿盐....发表于 2020-03-05 14:12?
74次阅读加速度计怎么运用到工业中和相关模块方案高精度的振动加速度计 振动测量可以使用放置在被监测元件附近的加速度计进行。这种传感器可以是压电式,也....发表于 2020-03-05 09:29?
52次阅读自动驾驶的惯性测量单元基础知识什么惯性测量单元(Inertialmeasurementunit,简称IMU)被定义为“无需外部参考的可....发表于 2020-02-12 15:58?
818次阅读PID到底是什么PID的本质详细分析入住头条有1年多了,第一次发文。我是一只在无人机领域的嵌入式工程狮,看了头条上很多的对PID解说的专....发表于 2020-02-06 14:43?
1219次阅读ADXL345数字加速度计的介绍将任何文件另存为CircuitPython板上的 code.py ,或从Python运行在您的Lin....发表于 2020-01-31 17:47?
549次阅读自动驾驶惯性测量单元的组成部分与分类惯性测量单元(Inertialmeasurementunit,简称IMU)被定义为“无需外部参考的可....发表于 2020-01-23 11:49?
552次阅读航向陀螺仪的组成_航向陀螺仪的功能航向陀螺仪(directiONalgyroscope)就是利用陀螺特性测量飞机航向的飞行仪表,测量飞....发表于 2020-01-11 06:37?
660次阅读BMA425加速度计应用问题使用把那425加速度计进行fifo读取。但是发现fifo内存的数据前4组是正确的,后面的几组都不对且为0。有人用过这东西吗?...发表于 2020-01-05 10:00?
351次阅读陀螺仪传感器工作原理_陀螺仪传感器的应用陀螺仪传感器是一个简单易用的基于自由空间移动和手势的定位和控制系统,它原本是运用到直升机模型上,现已....发表于 2019-12-30 16:40?
1510次阅读苹果推出Apple Watch Series 4...日前,苹果官方推出了Apple Watch Series 4官翻机,其中,最便宜的40mm版本App....发表于 2019-12-24 15:26?
1811次阅读加速度传感器的工作原理解析加速度传感器是用来将加速度这一物理信号转变成便于测量的电信号的测试仪器。它是工业、国防等许多领域中进....发表于 2019-12-16 15:41?
667次阅读怎样使用加速度计和RF收发器对的手势控制流动站现在,将USB电缆的一端插入分线板,另一端插入PC并按通常的方式上载代码:启动Arduino IDE....发表于 2019-12-11 11:36?
811次阅读传统式和非传统式陀螺仪的发展趋势国外的相关研究起步较早,积累的经验比较丰富,已经形成了系列技术成熟的工业产品。目前国外最先进的摆式陀....发表于 2019-11-30 10:14?
1666次阅读线加速度计的工作原理解析加速度传感器是一种能够测量加速力的电子设备。加速力就是当物体在加速过程中作用在物体上的力,就好比地球....发表于 2019-11-27 15:34?
507次阅读如何同时使用陀螺仪和加速度计测量角度要测试系统,我使用一个名为Termite的程序保存了数据,然后将其导入excel并绘制图形以查看过滤....发表于 2019-11-22 15:21?
1472次阅读怎样使OLED和加速度计交互每次我们在屏幕上移动球时,都需要跟踪x和y轴的变化。如前所述,这是通过在每次球的原点发生变化时将....发表于 2019-11-19 10:54?
738次阅读地磁传感器有什么用_地磁传感器与陀螺仪区别本文主要阐述了地磁传感器的作用,另外还阐述了地磁传感器与陀螺仪区别。发表于 2019-11-18 10:58?
1395次阅读Xbox360控制器陀螺仪转向模块的制作将控制器拆回的方式与您拆开控制器的方式相同(减去左侧)模拟棒。现在应该可以工作了。我发现没有明显的延....发表于 2019-11-15 11:52?
1424次阅读如何将ADLX345加速度计IC连接到labVI...该项目是使用chipKIT Max32和PmodACL设计的。但是,您可以替换以下内容。发表于 2019-11-15 10:33?
1103次阅读选择正确的加速度计,以进行预测性维护发表于 2019-11-14 13:53?
1198次阅读选择正确的加速度计,以进行预测性维护传统维护一般是预防性或纠正性维护,通常会占用很大一部分生产成本。现在,使用IIoT(工业物联网)监测....发表于 2019-11-13 15:37?
250次阅读怎样用树莓派和3轴加速度计LIS3DHTR检查3...相信这项工作会刺激进一步的实验。 该I2C传感器具有出色的适应性,适度且可用。由于这是一个非常棒的非....发表于 2019-11-11 17:32?
1140次阅读如何将加速度计和陀螺仪数据融合在一起在研究了陀螺仪和加速度计的特性之后,我们知道它们各有优缺点。根据加速度计数据计算出的倾斜角具有较慢的....发表于 2019-11-11 17:19?
2060次阅读航向陀螺仪有什么功能?航向陀螺仪主要有陀螺电机、万向支架、随动托架系统、水平修正装置、信号输出装置、输电装置、减震装置、电连接器、外...发表于 2019-11-11 09:02?
739次阅读请问用加速度计积分得到位移,能测量厘米级别(精度不要求太高)的位移测量吗问题如上,加速度传感器是否不靠谱?如果是的话那应该是用那种传感器?
...发表于 2019-11-05 15:49?
285次阅读请问飞行器中各种陀螺仪该怎么使用?求大神举例介绍一下各类陀螺仪的使用,或者用单片机怎么写程序控制控制(最好有电路图)...发表于 2019-11-04 01:43?
243次阅读惯性传感器对车辆稳定系统有什么影响?汽车走进千家万户,安全愈加显的重要。驾乘人员的安全和所用车辆的电子系统是否先进密切相关。安全气囊ABS(AnTI...发表于 2019-10-31 07:34?
128次阅读高性能MEMS传感器的发展趋势是什么?微机电系统(MEMS)运动IC在走向更高的集成度、更小的芯片尺寸、更低的成本以及更高的性能和可靠性。这些趋势在最...发表于 2019-10-29 07:52?
275次阅读激光陀螺仪有什么特点?激光陀螺仪的光环路实际上是一种光学振荡器,按光腔形状分有三角形陀螺和正方形陀螺,腔体结构有组件式和整体式两种,...发表于 2019-10-23 09:00?
286次阅读倾斜角传感器的测量原理是什么?由加速度传感器测量倾斜角的途径很多,文献中提出了一种基于两轴加速度传感器ADXL213的倾角测量装置,实现了全摆幅...发表于 2019-10-23 06:24?
418次阅读伺服概念是如何应用于制造极高精度压力传感器的伺服加速度计如下所示,悬挂在铰链上的是一个下垂的高磁导率质量。“向下”或“零位置”由零检测器检测,平....发表于 2019-10-16 15:04?
311次阅读我国在激光陀螺技术上的进展如何由于现代武器讲究远射程大速度,高过载,所以需要高精度的测量设备,所以全世界都在陀螺仪上下功夫,并开发....发表于 2019-10-15 15:16?
415次阅读基于三重冗余惯性传感器而设计的OpenRTK33...OpenRTK330内置的多频段RTK/GNSS接收器,可与冗余惯性传感器相结合,在GNSS中断期间....发表于 2019-10-11 15:07?
288次阅读九轴传感器之陀螺仪发表于 2019-09-26 18:55?
2437次阅读伺服压力传感器的工作原理解析伺服压力传感器一般都很大,通常不适用于动态压力测量或物理敌对环境,但非常适合于在更良性的物理环境中进....发表于 2019-09-23 15:18?
377次阅读九轴传感器之加速度计发表于 2019-09-20 10:54?
1646次阅读Xsens全新MTi 600系列工业级惯性传感器...全新模块的优秀表现,有赖Xsens 对融合算法引进行了大量创新构思,从而优化新加速度计、陀螺仪和磁力....发表于 2019-09-18 14:10?
321次阅读
#传感器的原理
加速度计:
加速度计—我们可以把它想作一个圆球在一个方盒子中。
假定这个盒子不在重力场中或者其他任何会影响球的位置的场中,球处于盒子的正中央。
你可以想象盒子在外太空中,或远在航天飞机中,离任何天体,一切东西都处于无重力状态。
在图中你可以看到我们给每个轴分配了一对墙(我们移除了Y+以此来观察里面的情况)。
设想每面墙都能感测压力。如果我们突然把盒子向左移动(加速度为1g=9.8m/s^2),那么球会撞上X-墙。
然后我们检测球撞击墙面产生的压力,X轴输出值为-1g。
加速度计检测到力的方向与它本身加速度的方向是相反的。这种力量通常被称为惯性力。
在这个模型中,加速度计是通过间接测量力对一个墙面的作用来测量加速度的,在实际应用中,可能通过弹簧等装置来测量力。
这个力可以是加速度引起的,也不一定是加速度引起的。
如果把模型放在地球上,球会落在Z-墙面上并对其施加一个1g的力。
在这种情况下盒子没有移动但我们任然读取到Z轴有-1g的值。球在墙壁上施加的压力是由引力造成的。
在理论上,它可以是不同类型的力量 - 例如,你可以想象我们的球是铁质的,将一个磁铁放在盒子旁边那球就会撞上另一面墙。引用这个例子只是为了说明加速度计的本质是检测力而非加速度。只是加速度所引起的惯性力正好能被加速度计的检测装置所捕获。
虽然这个模型并非一个MEMS传感器的真实构造,但它用来解决与加速度计相关的问题相当有效。
实际上有些类似传感器中有金属小球,它们称作倾角开关,但是它们的功能更弱,只能检测设备是否在一定程度内倾斜,却不能得到倾斜的程度。
到目前为止,我们已经分析了单轴的加速度计输出,这是使用单轴加速度计所能得到的。三轴加速度计的真正价值在于它们能够检测全部三个轴的惯性力。
让我们回到盒子模型,并将盒子向右旋转45度。现在球会与两个面接触:Z-和X-,见下图:
0.71g这个值是不是任意的,它们实际上是1/2的平方根的近似值。我们介绍加速度计的下一个模型时这一点会更清楚。
在上一个模型中我们引入了重力并旋转了盒子。在最后的两个例子中我们分析了盒子在两种情况下的输出值,力矢量保持不变。
虽然这有助于理解加速度计是怎么和外部力相互作用的,但如果我们将坐标系换为加速度的三个轴并想象矢量力在周围旋转,这会更方便计算。
请看看在上面的模型,我保留了轴的颜色,以便你的思维能更好的从上一个模型转到新的模型中。
想象新模型中每个轴都分别垂直于原模型中各自的墙面。矢量R是加速度计所检测的矢量(它可能是重力或上面例子中惯性力的合成)。
RX,RY,RZ是矢量R在X,Y,Z上的投影。
请注意下列关系:
,R ^ 2 = RX ^ 2 + RY ^ 2 + RZ ^ 2(公式1)
此公式等价于三维空间勾股定理。
还记得我刚才说的1/2的平方根0.71不是个随机值吧。
如果你把它们代回上式,回顾一下重力加速度是1g,那我们就能验证:
1 ^ 2 =(SQRT(1/2))^ 2 + 0 ^ 2 +(SQRT(1/2))^ 2
在公式1中简单的取代: R=1, Rx = -SQRT(1/2), Ry = 0 , Rz = -SQRT(1/2)
经过一大段的理论序言后,我们和实际的加速度计很靠近了。RX,RY,RZ值是实际中加速度计输出的线性相关值,你可以用它们进行各种计算。
在我们运用它之前我们先讨论一点获取加速度计数据的方法。
大多数加速度计可归为两类:数字和模拟。
数字加速度计可通过I2C,SPI或USART方式获取信息,而模拟加速度计的输出是一个在预定范围内的电压值,你需要用ADC(模拟量转数字量)模块将其转换为数字值。
我将不会详细介绍ADC是怎么工作的,部分原因是这是个很广的话题,另一个原因是不同平台的ADC都会有差别。有些MCU具有内置ADC模块,而有些则需要外部电路进行ADC转换。
不管使用什么类型的ADC模块,你都会得到一个在一定范围内的数值。例如一个10位ADC模块的输出值范围在0 .. 1023间,请注意,1023 = 2 ^ 10 -1。
一个12位ADC模块的输出值范围在0 .. 4095内,注意,4095 = 2 ^ 12-1。
我们继续,先考虑下一个简单的例子,假设我们从10位ADC模块得到了以下的三个轴的数据:
AdcRx = 586
AdcRy = 630
AdcRz = 561
每个ADC模块都有一个参考电压,假设在我们的例子中,它是3.3V。要将一个10位的ADC值转成电压值,我们使用下列公式:
VoltsRx = AdcRx * VREF / 1023
小注:8位ADC的最大值是255 = 2 ^ 8 -1,12位ADC最大值是4095 = 2 ^ 12 -1。
将3个轴的值代入上式,得到:
VoltsRx = 586 * 3.3 / 1023 =~1.89V(结果取两位小数)
VoltsRy = 630 * 3.3 / 1023 =~2.03V
VoltsRz = 561 * 3.3 / 1023 =~1.81V
每个加速度计都有一个零加速度的电压值,你可以在它的说明书中找到,这个电压值对应于加速度为0g。
通过计算相对0g电压的偏移量我们可以得到一个有符号的电压值。比方说,0g电压值 VzeroG= 1.65V,通过下面的方式可以得到相对0g电压的偏移量:
DeltaVoltsRx = 1.89V - 1.65V = 0.24V
DeltaVoltsRy = 2.03V - 1.65V = 0.38V
DeltaVoltsRz = 1.81V - 1.65V = 0.16V
现在我们得到了加速度计的电压值,但它的单位还不是g(9.8m/s^2),
最后的转换,我们还需要引入加速度计的灵敏度(Sensitivity),单位通常是 mV/g。
比方说,加速度计的灵敏度 Sensitivity= 478.5mV / g = 0.4785V /g。
灵敏度值可以在加速度计说明书中找到。要获得最后的单位为g的加速度,我们使用下列公式计算:
RX = DeltaVoltsRx /Sensitivity
RX = 0.24V / 0.4785V / G =~0.5g
RY = 0.38V / 0.4785V / G =~0.79g
RZ = 0.16V / 0.4785V / G =~0.33g
当然,我们可以把所有的步骤全部放在一个式子里,但我想通过介绍每一个步骤以便让你了解怎么读取一个ADC值并将其转换为单位为g的矢量力的分量。
Rx = (AdcRx * Vref / 1023 – VzeroG) / Sensitivity (公式2)
Ry = (AdcRy * Vref / 1023 – VzeroG) / Sensitivity
Rz = (AdcRz * Vref / 1023 – VzeroG) / Sensitivity
现在我们得到了惯性力矢量的三个分量,如果设备除了重力外不受任何外力影响,那我们就可以认为这个方向就是重力矢量的方向。
如果你想计算设备相对于地面的倾角,可以计算这个矢量和Z轴之间的夹角。
如果你对每个轴的倾角都感兴趣,你可以把这个结果分为两个分量:X轴、Y轴倾角,这可以通过计算重力矢量和X、Y轴的夹角得到。
计算这些角度比你想象的简单,现在我们已经算出了Rx,Ry,Rz的值,让我们回到我们的上一个加速度模型,再加一些标注上去:
我们感兴趣的角度是向量R和X,Y,Z轴之间的夹角,那就令这些角度为Axr,Ayr,Azr。观察由R和Rx组成的直角三角形:
cos(Axr) = Rx / R , 类似的:
cos(Ayr) = Ry / R
cos(Azr) = Rz / R
从公式1我们可以推导出 R = SQRT( Rx^2 + Ry^2 + Rz^2)
通过arccos()函数(cos()的反函数)我们可以计算出所需的角度:
Axr = arccos(Rx/R)
Ayr = arccos(Ry/R)
Azr = arccos(Rz/R)
我们花了大段的篇幅来解释加速度计模型,最后所要的只是以上这几个公式。
根据你的应用场合,你可能会用到我们推导出来的几个过渡公式。
加速度传感器可以用来测量加速度,或者检测倾斜、冲击、振动等运动状态,
帮助实现工业、医疗、通信、消费电子和汽车等领域中的多种应用。
根据不同的应用,加速度传感器的测量范围从几g 到几十g 不等。
数字输出的加速度传感器还会集成多种中断模式。
这些特性可以为用户提供更加方便灵活的解决方案。
陀螺仪:
接下来要介绍陀螺仪模块。
但在此之前,我们再介绍几个很常用的公式:
cosX = cos(Axr) = Rx / R
cosY = cos(Ayr) = Ry / R
cosZ = cos(Azr) = Rz / R
这三个公式通常称作方向余弦 ,它主要表达了单位向量(长度为1的向量)和R向量具有相同的方向。
你可以很容易地验证:
SQRT(cosX ^ 2 + COSY ^ 2 + cosZ ^ 2)= 1
这是个很好的性质,因为它避免了我们一直检测R向量的模(长度)。
通常如果我们只是对惯性力的方向感兴趣,那标准化模长以简化其他计算是个明智的选择。
陀螺仪的每个通道检测一个轴的旋转。
例如,一个2轴陀螺仪检测绕X和Y轴的旋转。
为了用数字来表达这些旋转,我们先引进一些符号。首先我们定义:
Rxz – 惯性力矢量R在XZ平面上的投影
Ryz – 惯性力矢量R在YZ平面的上投影
在由Rxz和Rz组成的直角三角形中,运用勾股定理可得:
Rxz^2 = Rx^2 + Rz^2 ,同样:
Ryz^2 = Ry^2 + Rz^2
同时注意:
R^2 = Rxz^2 + Ry^2 ,这个公式可以公式1和上面的公式推导出来,也可由R和Ryz所组成的直角三角形推导出来
R ^ 2 = Ryz ^ 2 + RX ^ 2
相反,我们按如下方法定义Z轴和Rxz、Ryz向量所成的夹角:
AXZ - Rxz(矢量R在XZ平面的投影)和Z轴所成的夹角
AYZ - Ryz(矢量R在YZ平面的投影)和Z轴所成夹角
陀螺仪测量上面定义的角度的变化率。
换句话说,它会输出一个与上面这些角度变化率线性相关的值。
为了解释这一点,我们先假设在t0时刻,我们已测得绕Y轴旋转的角度(也就是Axz),定义为Axz0,之后在t1时刻我们再次测量这个角度,得到Axz1。
角度变化率按下面方法计算:
RateAxz = (Axz1 – Axz0) / (t1 – t0).
如果用度来表示角度,秒来表示时间,那这个值的单位就是 度/秒。这就是陀螺仪检测的东西。
在实际运用中,陀螺仪一般都不会直接给你一个单位为度/秒的值(除非它是个特殊的数字陀螺仪)。
得到一个ADC值并且要用类似公式2的式子将其转换成单位为 度/秒的值。
让我们来介绍陀螺仪输出值转换中的ADC部分(假设使用10位ADC模块,如果是8位ADC,用1023代替255,如果是12为ADC用4095代替1023)。
RateAxz = (AdcGyroXZ * Vref / 1023 – VzeroRate) / Sensitivity 公式3
RateAyz = (AdcGyroYZ * Vref / 1023 – VzeroRate) / Sensitivity
AdcGyroXZ,AdcGyroYZ - 这两个值由ADC读取,它们分别代表矢量R的投影在XZ和YZ平面内里的转角,也可等价的说,旋转可分解为单独绕Y和X轴的运动。
Vref – ADC的参考电压,上例中我们使用3.3V
VzeroRate – 是零变化率电压,换句话说它是陀螺仪不受任何转动影响时的输出值,对Acc Gyro板来说,可以认为是1.23V(此值通常可以在说明书中找到——但千万别相信这个值,因为大多数的陀螺仪在焊接后会有一定的偏差,所以可以使用电压计测量每个通道的输出值,通常这个值在焊接后就不会改变,如果有跳动,在设备使用前写一个校准程序对其进行测量,用户应当在设备启动的时候保持设备静止以进行校准)。
Sensitivity –陀螺仪的灵敏度,单位mV/(deg/s),通常写作mV/deg/s,它的意思就是如果旋转速度增加1°/s,陀螺仪的输出就会增加多少mV。Acc_Gyro板的灵敏度值是2mV/deg/s或0.002V/deg/s
让我们举个例子,假设我们的ADC模块返回以下值:
AdcGyroXZ = 571
AdcGyroXZ = 323
用上面的公式,在代入Acc Gyro板的参数,可得:
RateAxz = (571 * 3.3V / 1023 – 1.23V) / ( 0.002V/deg/s) =~ 306 deg/s
RateAyz = (323 * 3.3V / 1023 – 1.23V) / ( 0.002V/deg/s) =~ -94 deg/s
换句话说设备绕Y轴(也可以说在XZ平面内)以306°/s速度和绕X轴(或者说YZ平面内)以-94°/s的速度旋转。
请注意,负号表示该设备朝着反方向旋转。按照惯例,一个方向的旋转是正值。一份好的陀螺仪说明书会告诉你哪个方向是正的,否则你就要自己测试出哪个旋转方向会使得输出脚电压增加。最好使用示波器进行测试,因为一旦你停止了旋转,电压就会掉回零速率水平。如果你使用的是万用表,你得保持一定的旋转速度几秒钟并同时比较电压值和零速率电压值。如果值大于零速率电压值那说明这个旋转方向是正向。
加速度计和陀螺仪的数据融合算法:
注:具体的代码实现和算法测试,请阅读这篇文章:?
融合加速度计和陀螺仪时,首先要做的就是统一它们的坐标系。
最简单的办法就是将加速度计作为参考坐标系。
大多数的加速度计规格书都会指出对应于物理芯片或设备的XZY轴方向。
例如,下面就是Acc Gyro板的说明书中给出的XYZ轴方向:
接下来的步骤是:
- 确定陀螺仪的输出对应到上述讨论的RateAxz,RateAyz值。
- 根据陀螺仪和加速度计的位置决定是否要反转输出值
不要设想陀螺仪陀的输出有XY,它会适应加速度计坐标系里的任何轴,尽管这个输出是IMU模块的一部分。最好的办法就是测试。
接下来的示例用来确定哪个陀螺仪的输出对应RateAxz。
- 首先将设备保持水平。加速度计的XY轴输出会是零加速度电压(Acc Gyro板的值是1.65V)
- 接下来将设备绕Y轴旋转,换句话说就是将设备在XZ平面内旋转,所以X、Z的加速度输出值会变化而Y轴保持不变。
- 当以匀速旋转设备的时候,注意陀螺仪的哪个通道输出值变化了,其他输出应该保持不变。
- 在陀螺仪绕Y轴旋转(在XZ平面内旋转)的时候输出值变化的就是AdcGyroXZ,用于计算RateAxz
- 最后一步,确认旋转的方向是否和我们的模型对应,因为陀螺仪和加速度的位置关系,有时候你可能要把RateAxz值反向
- 重复上面的测试,将设备绕Y轴旋转,这次查看加速度计的X轴输出(也就是AdcRx)。如果AdcRx增大(从水平位置开始旋转的第一个90°),那AdcGyroXZ应当减小。这是因为我们观察的是重力矢量,当设备朝一个方向旋转时矢量会朝相反的方向旋转(相对坐标系运动)。
所以,如果你不想反转RateAxz,你可以在公式3中引入正负号来解决这个问题:
RateAxz = InvertAxz * (AdcGyroXZ * Vref / 1023 – VzeroRate) / Sensitivity ,其中InvertAxz= 1 或-1
同样的方法可以用来测试RateAyz,将设备绕X轴旋转,你就能测出陀螺仪的哪个输出对应于RateAyz,以及它是否需要反转。
一旦你确定了InvertAyz,你就能可以用下面的公式来计算RateAyz:
RateAyz = InvertAyz * (AdcGyroYZ * Vref / 1023 – VzeroRate) / Sensitivity
如果对Acc Gyro板进行这些测试,你会得到下面的这些结果:
- RateAxz的输出管脚是GX4,InvertAxz = 1
- RateAyz输出管脚是GY4,InvertAyz = 1
从现在开始我们认为你已经设置好了IMU模块并能计算出正确的Axr,Ayr,Azr值(在第一部分加速度计中定义)以及RateAyz,RateAyz(在第二部分陀螺仪中)。
下一步,我们分析这些值之间的关系并得到更准确的设备和地平面之间的倾角。
你可能会问自己一个问题,如果加速度计已经告诉我们Axr,Ayr,Azr的倾角,为什么还要费事去得到陀螺仪的数据?答案很简单:加速度计的数据不是100%准确的。
还有几个原因,还记加速度计测量的是惯性力,这个力可以由重力引起(理想情况只受重力影响),当也可能由设备的加速度(运动)引起。
因此,就算加速度计处于一个相对比较平稳的状态,它对一般的震动和机械噪声很敏感。这就是为什么大部分的IMU系统都需要陀螺仪来使加速度计的输出更平滑。
但是怎么办到这点呢?陀螺仪不受噪声影响吗?
陀螺仪也会有噪声,但由于它检测的是旋转,因此对线性机械运动没那么敏感,不过陀螺仪有另外一种问题,比如漂移(当选择停止的时候电压不会回到零速率电压)。
然而,通过计算加速度计和陀螺仪的平均值我们能得到一个相对更准确的当前设备的倾角值,这比单独使用加速度计更好。
误差或错误数据的卡尔曼滤波算法:
我们要介绍一种算法,算法受卡尔曼滤波中的一些思想启发,但是它更简单并且更容易在嵌入式设备中实现。
在此之前,让我们先看看我们需要算法计算什么值。
所要算的就是重力矢量R=[Rx,Ry,Rz],它可由其他值推导出来,如Axr,Ayr,Azr或者cosX,cosY,cosZ,由这些值我们能得到设备相对地平面的倾角值,这些关系我们在第一部分已经讨论过。
有人可能会说-根据第一部分的公式2我们不是已经得到Rx,Ry,Rz的值了吗?
是的,但是这些值只是由加速度计数据推导出来的,如果你直接将它们用于你的程序你会得到难以忍受的噪声。
为了避免进一步的混乱,我们重新定义加速度计的测量值:
Racc – 是由加速度计测量到得惯性力矢量,它可分解为下面的分量(在XYZ轴上的投影):
RxAcc = (AdcRx * Vref / 1023 – VzeroG) / Sensitivity
RyAcc = (AdcRy * Vref / 1023 – VzeroG) / Sensitivity
RzAcc = (AdcRz * Vref / 1023 – VzeroG) / Sensitivity
现在我们得到了一组只来自于加速度计ADC的值。
我们把这组数据叫做“vector”,并使用下面的符号:
Racc = [RxAcc,RyAcc,RzAcc]
因为这些Racc的分量可由加速度计数据得到,我们可以把它当做算法的输入。
请注意Racc测量的是重力,如果你得到的矢量长度约等于1g那么你就是正确的:
|Racc| = SQRT(RxAcc^2 +RyAcc^2 + RzAcc^2),
但是请确定把矢量转换成下面的矢量非常重要:
Racc(normalized) = [RxAcc/|Racc| , RyAcc/|Racc| , RzAcc/|Racc|].
这可以确保标准化Racc始终是1。
接来下引进一个新的向量:
Rest = [RxEst,RyEst,RzEst]
这就是算法的输出值,它经过陀螺仪数据的修正和基于上一次估算的值。
这是算法所做的事:
-加速度计告诉我们:“你现在的位置是Racc”
? ? ? ? ?我们回答:“谢谢,但让我确认一下”
-然后根据陀螺仪的数据和上一次的Rest值修正这个值并输出新的估算值Rest。
-我们认为Rest是当前设备姿态的“最佳值”。
让我们看看它是怎么实现的。
数列的开始,我们先认为加速度值正确并赋值:
Rest(0) = Racc(0)
Rest和Racc是向量,所以上面的式子可以用3个简单的式子代替,注意别重复了:
RxEst(0)= RxAcc(0)
RyEst(0)= RyAcc(0)
RzEst(0)= RzAcc(0)
接下来我们在每个等时间间隔T秒做一次测量,得到新的测量值,并定义为Racc(1),Racc(2),Racc(3)等等。
同时,在每个时间间隔我们也计算出新的估算值Rest(1),Rest(2),Rest(3),等等。
假设我们在第n步。我们有两列已知的值可以用:
Rest(n-1) – 前一个估算值,Rest(0) = Racc(0)
Racc(n) – 当前加速度计测量值
在计算Rest(n)前,我们先引进一个新的值,它可由陀螺仪和前一个估算值得到。
叫做Rgyro,同样它是个矢量并由3个分量组成:
Rgyro = [RxGyro,RyGyro,RzGyro]
我们分别计算这个矢量的分量,从RxGyro开始。
首先观察陀螺仪模型中下面的关系,根据由Rz和Rxz组成的直角三角形我们能推出:
tan(Axz) = Rx/Rz => Axz = atan2(Rx,Rz)
你可能从未用过atan2这个函数,它和atan类似,但atan返回值范围是(-PI/2,PI/2),atan2返回值范围是(-PI,PI),并且他有两个参数。
它能将Rx,Rz值转换成360°(-PI,PI)内的角度。更多信息请阅读 atan2.
所以,知道了RxEst(n-1)和RzEst(n-1)我们发现:
Axz(n-1) = atan2( RxEst(n-1) , RzEst(n-1) ).
陀螺仪测量的是Axz角度变化率,因此,我们可以按如下方法估算新的角度Axz(n):
Axz(n) = Axz(n-1) + RateAxz(n) * T
RateAxz可由陀螺仪ADC读取得到。
通过使用平均转速可由得到一个更准确的公式:
RateAxzAvg =(RateAxz(N)+ RateAxz(N-1))/ 2
Axz(n) = Axz(n-1) + RateAxzAvg * T
同理可得:
Ayz(n) = Ayz(n-1) + RateAyz(n) * T
好了,我们有了Axz(n),Ayz(n)。
现在我们如何推导出RxGyro/RyGyro?
根据公式1我们可以把Rgyro长度写成下式:
| Rgyro | = SQRT(RxGyro ^ 2 + RyGyro ^ 2 + RzGyro ^ 2)
同时,因为我们已经将Racc标准化,我们可以认为它的长度是1并且旋转后保持不变,所以写成下面的方式相对比较安全:
| Rgyro | = 1
我们暂时采用更短的符号进行下面的计算:
x =RxGyro , y=RyGyro, z=RzGyro
根据上面的关系可得:
x = x / 1 = x / SQRT(x^2+y^2+z^2)
分子分母同除以SQRT(X ^ 2 + Z ^ 2)
x = ( x / SQRT(x^2 + z^2) ) / SQRT( (x^2 + y^2 + z^2) / (x^2 + z^2) )
注意x / SQRT(x^2 + z^2) = sin(Axz), 所以:
x = sin(Axz) / SQRT (1 + y^2 / (x^2 + z^2) )
将SQRT内部分式的分子分母同乘以z^2
x = sin(Axz) / SQRT (1 + y^2 ?* z ^2 / (z^2 * (x^2 + z^2)) )
注意 z / SQRT(x^2 + z^2) = cos(Axz), y / z = tan(Ayz), 所以最后可得:
x = sin(Axz) / SQRT (1 + cos(Axz)^2 * tan(Ayz)^2 )
替换成原来的符号可得:
RxGyro = sin(Axz(n)) / SQRT (1 + cos(Axz(n))^2 * tan(Ayz(n))^2 )
同理可得:
RyGyro = sin(Ayz(n)) / SQRT (1 + cos(Ayz(n))^2 * tan(Axz(n))^2 )
提示:这个公式还可以更进一步简化。分式两边同除以sin(axz(你))可得:
RxGyro = ?1 ?/ SQRT (1/ sin(Axz(n))^2 ?+ cos(Axz(n))^2 / sin(Axz(n))^2 ?* tan(Ayz(n))^2 )
RxGyro = ?1 ?/ SQRT (1/ sin(Axz(n))^2 ?+ cot(Axz(n))^2 ?* sin(Ayz(n))^2 ?/ cos(Ayz(n))^2 ) ?
现在加减 ? cos(Axz(n))^2/sin(Axz(n))^2 ? = cot(Axz(n))^2?
RxGyro = ?1 ?/ SQRT (1/ sin(Axz(n))^2 ?- ?cos(Axz(n))^2/sin(Axz(n))^2 ? + cot(Axz(n))^2 ?* sin(Ayz(n))^2 ?/ cos(Ayz(n))^2 ?+ cot(Axz(n))^2 )
综合条件1、2和3、4可得:
RxGyro = ?1 ?/ SQRT (1 ?+ ? cot(Axz(n))^2 * sec(Ayz(n))^2 ), ? ? 其中 ?cot(x) = 1 / tan(x) ?, sec(x) = 1 / cos(x)
这个公式只用了2个三角函数并且计算量更低。
如果你有Mathematica程序,通过使用 FullSimplify [Sin[A]^2/ ( 1 + Cos[A]^2 * Tan[B]^2)]你可以验证这个公式。
现在我们发现:
RzGyro ?= ?Sign(RzGyro)*SQRT(1 – RxGyro^2 – RyGyro^2).
其中,当 RzGyro>=0时,Sign(RzGyro) = 1 , 当 RzGyro
? {zeroflag=1001;? //确保zeroflag不会溢出
//——————————————————————————————————————————-
Acc_z = Acc_z - ;? //加速度计采集的AD值减去直立时的输出值
Gyro1_zero=zerosub/1000; //陀螺仪开机自检累加1000次后取均值 得到陀螺仪零偏值
Gyro1? = Gyro1?- Gyro1_zero;? //陀螺仪AD采集值减去陀螺仪零偏值
Gyro_Data = Gyro1;?
accelerometer_angle=? Acc_z*180/(.71-.7);? //加速度计计算出的角度 归一化到-90 到+90
gyroscope_rate = Gyro1*0.0235*0.005;? //0.0235 是转换角度的比例值 0.005是控制周期
gyroscope_rat =gyroscope_rat-Gyro1*0.0235*0.005; //积分角速度得到角度
//卡尔曼五个公式的算法实现?
? NowData = RealData-gyroscope_rate;
? NowData_P = Q+RealData_P;
? Kg = NowData_P/(NowData_P+R);
? RealData = NowData +Kg*(accelerometer_angle - NowData);
? RealData_P =(1-Kg)*NowData_P;
? QingJiao =? RealData;?//将准确角度结果给QingJiao
? }
}
?
假如已经得到准确角度,自然是开始以此作为控制量,那我们要控制成啥样?想一想也知道是要把这个角度值控制成0度(例如:将直立时定义为0度),那么自然使用常用的PID算法,偏差自然就是QingJiao-0=QingJiao,当然也可以反过来,这根据自己对方向的定义。我们来个最简单的位置式PD算法:
fValue = (float) P *QingJiao -(float) D*Gyro_Data;
P就是PID的P参数 D就是PID的D参数,QingJiao反映幅度,Gyro_Data反映快慢。(这也需要不断调试出来的。)再把fvalue值给平衡车的直流电机的控制调速PWM输出就可以了。
实际在做的时候,往往没那么简单,所以一定要一步一步做好之后再做后面的,假如你第二部没做好,在第三部时你怎么也直立不起来,你不知道到底是PD参数不对,还是卡尔曼出来的角度本身不准。所以个人经验:得到准确角度是整个过程至关重要的一步。平衡车的直立是一直是一个动态过程,即使最好的状态一动不动,也是在动态控制中,只是看不出而已。这里只针对直立控制,即最基本的自平衡。
参考:
加速度计和陀螺仪指南?
A Guide To using IMU (Accelerometer and Gyroscope Devices) in Embedded Applications. ? ? ? ? ? ? Posted on: December 29, 2009 by starlino
6轴和9轴传感器:惯性测量单元 和?航姿参考系统
IMU(Inertial measurement unit?)和AHRS (Attitude and heading reference system)
2016年2月19日
在研究技术问题之前,我并不关心这些传感器的细节,但要上新的产品、需要更新的技术的时候,市场上找人不是一件容易的事情。
与其等工程师都会的时候,可能你的产品也没什么竞争力了。无奈,自己跟着参与吧。
就算少数人会使用新技术,你也需要有足够的人际技巧,其实不能说是技巧,应该是一套方法论来团结你的盟友,比如共同的理想(对未来的预见)、协调一致的目标、价值观及一致行动准则。这些远远要比编程设计复杂,有时候我在想马云真的是非常厉害的人物,能团结18罗汉在相当长的时间里,听他的”鬼话“,被他”忽悠“,这是需要怎样的一套方法呢!想想当下,如果你要团结一批人,是非常不容易的。
言归正传,不管什么IMU或AHRS对我来说都是传感器数量和结构的问题,但要采用前人的成果,就得大家说一样的话,就是这些专业术语。
AHRS由加速度计,磁场计,陀螺仪构成
AHRS的输出中的绝对方向来自于地球的重力场和地球的磁场,尤其是磁场
静态终精度取决于对磁场的测量精度和对重力的测量精度 ,而则陀螺决定了他的动态性能。
磁场和重力场越正交,则航姿测量效果越好;反之,如果磁场和重力场平行了,比如在地磁南北极,这里的磁场是向下的,即和重量场方向相同了。
这时航向角是没法测出的,这是航姿系统的缺陷。在高纬度的地方航线角误差会越来越大。当然,在实际非航天级的应用中很少遇到这种情况,故此段只是为了”知其所以然“可略去。
消费级陀螺仪和加速度计的噪声相对来说很大,
以平面陀螺为例用ADI的陀螺仪进行积分一分钟会漂移2度左右,这种前提下如果没有磁场和重力场来校正三轴陀螺的话,
那么基本上3分钟以后物体的实际姿态和测量输出姿态就完全变样了,所以,低价陀螺仪和加速度计的架构下必须运用场向量来进行修正。
AHRS利用三维的陀螺仪来快速跟踪被测物体的三维的姿态,它以陀螺仪为核心,同时也测量加速度和地磁场的方向为系统提供可靠的参考。
具体测量载体三个方向的的绝对角速率、加速度以及磁场强度,并采用特定姿态解算方法和卡尔曼滤波信息融合得到载体的四元数、姿态数据等。
需要实时的集成算法为系统提供准确,可靠,及时以及稳定的姿态输出。
从陀螺仪、加速度计、磁力计以及内部温度传感器得到的数据,全部被传输到嵌入式系统-MCU中。
MCU依据特定的算法以及存储在Flash存储器中的标定数据处理来自传感器的原始数据,
作为其基本算法,航姿参考系统(AHRS)采用自适应卡尔曼滤波算法,自动调整并适应不断变化的动态条件,无需外部人为的干预。
产品均在特定的环境实验条件下,参考已知温度下的加速度、角速率和磁场进行全面的标定,并将标定数据输入每个产品中。
产品应用:
船舶测控、工程机械、车辆、通讯天线和雷达、平台稳定系统、
机器人控制、无人机/直升机、虚拟现实、游戏、动画、体育、医疗康复等。
参考文献:
四元数与欧拉角之间的转换?
请教四轴AHRS算法的问题? ? ? ?
STM32可以用的卡尔曼滤波,附带AHRS姿态解算源码 ? ? ?
AHRS–APM飞控基于DCM算法的姿态及航向解算核心代码 ?
AHRS 姿态板首试 ? ?
The Extended Kalman Filter: An Interactive Tutorial for Non-Experts ? ?
捷联惯导算法心得? ?
9DOF姿态融合 四元数 欧拉角转换 有代码有内涵 ? ?
陀螺仪就是内部有一个陀螺,它的轴由于陀螺效应始终与初始方向平行,这样就可以通过与初始方向的偏差计算出实际方向。手机里陀螺仪实际上是一个结构非常精密的芯片,内部包含超微小的陀螺。
加速计是用来检测手机受到的加速度的大小和方向的,而手机静置的时候是只受到重力加速度(这个高中学过)的.所以很多人把加速计功能又叫做重力感应功能。
磁力计是测试磁场强度和方向的。
陀螺仪测量是参考标准是内部中间在与地面垂直的方向上进行转动的陀螺。通过设备与陀螺的夹角得到结果。
加速计是以内部测量组件在各个方向上的受力情况来得到结果。
磁力计的原理就是中学物理中涉及到的那个最简单的指南针了(那记得那根被磁化的钢针么)。
它们分别有自己的强项:
陀螺仪的强项在于测量设备自身的旋转运动。对设备自身运动更擅长。但不能确定设备的方位。
加速计的强项在于测量设备的受力情况。对设备相对外部参考物(比如,地面)的运动更擅长。但用来测量设备相对于地面的摆放姿势,则精确度不高。
磁力计的强项在于定位设备的方位。可以测量出当前设备与东南西北四个方向上的夹角。
举几个例子:
陀螺仪对设备旋转角度的检测是瞬时的而且是非常精确的,能满足一些需要高分辨率和快速反应的应用比如FPS游戏的瞄准。而且陀螺仪配合加速计可以在没有卫星和网络的情况下进行导航,这是陀螺仪的经典应用。加速度计可用于有固定的重力参考坐标系、存在线性或倾斜运动但旋转运动被限制在一定范围内的应用。同时处理直线运动和旋转运动时,就需要把加速度和陀螺仪计结合起来使用。如果还想设备在运动时不至于迷失方向,就再加上磁力计。
对于一个发射出去的导弹来说,要想精确追踪并调整导弹的轨道的话,下面几组数据必不可少:
GPS定位它的位置
加速计测量当前加速度
磁力计确定导弹头的方向(只能知道东南西北四个方向上的夹角),陀螺仪知道导弹的角速度。这两个仪器结合才能确定导弹的准确的立体运动方向。
加速计得到的结果就是XYZ三个值,分别代表三个方向的加速度。关于XYZ三值的介绍,可以看这里:
android 重力感应和屏幕旋转关系
用加速计和磁力计可以计算出orientation(方位计),orientation涉及到了三个概念:
Roll:左右倾斜角度,也叫滚转角
Pitch:前后倾斜,也叫俯仰角
Yaw:左右摇摆,也叫偏航角
?终于说到了正题,姿态解算这一部分很重要,主要的基础就是惯性导航和多传感器数据融合,很多公司都在招这方面的人才,如百度的无人驾驶在招传感器数据融合,网易的人机交互工程师也在找这方面的人,因为它是信息流的源泉,准确的姿态信息需要靠他们解算出来才能进行后续的步骤。
? ? 鉴于加速度计低频特性比较好,因为加速度的角度可以直接算出来,没有累积误差,所以长时间后也比较准。而陀螺仪长时间后由于积分误差的累加,会造成输出误差比较大,甚至无法使用。所以用互补滤波法根据他们的特性取长补短进行姿态解算,每过一段时间就让加速度计去校准一下陀螺仪。互补滤波就是在短时间内采用陀螺仪得到的角度做为最优值,定时对加速度采样来的加速度值进行取平均值来校正陀螺仪的得到的角度。短时间内用陀螺仪比较准确,以它为主;长时间用加速度计比较准确,这时候加大它的比重,这就是互补了,不过加速度计要滤掉高频信号,陀螺仪要滤掉低频信号,互补滤波器就是根据传感器特性不同,通过不同的滤波器(高通或低通,互补的),然后再相加得到整个频带的信号。互补是给他们不同的权重加权求和。
? ? 当然这里面还有一些问题:如加速度无法区分惯性加速度和运动加速度,在固定翼上这个问题更为显著,再者磁力计准确的偏角怎么得到?
? ?下面融合的一些框架图,先建立一个整体的概念:
? ? ? ?
? ? 下面这幅图才是准确的阐述了互补滤波的过程。正常情况下用陀螺仪的数据就可以进行姿态的更新,但是由于陀螺仪的积分误差,这里用acc和mag去校正,求出他们的误差用PI去弥补。注意看看pid的公式和作用,pid是作用于误差(实际个期望之间的差值),最终反复调节,让实际值=期望值。
? ?下面先说点基础内容,之后再贴源码:
? ?下面介绍三部分内容:
? ? 1、姿态的表示方法,在源码之中姿态的表示方法有DCM、四元数,欧拉角。欧拉角法在求解姿态时存在奇点(万向节死锁),不能用于全姿态的解算;方向余弦可用于全姿态的解算但计算量大,不能满足实时性要求。四元数法,其计算量小,无奇点且可以满足飞行器运动过程中姿态的实时解算。
? ?2、阐述一下姿态解算的原理。
? ? 姿态就是指飞行器的俯仰/横滚/航向情况。在咱们地球上,就是指飞行器在地球坐标系中的俯仰/横滚/航向情况。飞行器需要实时知道当前自己的姿态,才能够根据需要操控其接下来的动作,例如保持平稳,例如实现翻滚。
姿态是用来描述一个刚体的固连坐标系和参考坐标系之间的角位置关系,有一些数学表示方法。很常见的就是欧拉角,四元数,矩阵,轴角。
地球坐标系又叫做地理坐标系,是固定不变的。正北,正东,正向上构成了这个坐标系的X,Y,Z轴,我们用坐标系R表示。四轴飞行器上固定着一个坐标系,我们一般称之为机体坐标系,用坐标系r表示。那么我们就可以用欧拉角,四元数等来描述r和R的角位置关系。这就是四轴飞行器姿态解算的数学模型和基础。
? ? 欧拉角的姿态表示方法最为直观,可以看做飞机绕固定轴的三次旋转达到现在的姿态。
分解之后就是每次的旋转:
方向余弦矩阵是一个3*3阶的矩阵,矩阵的列表示载体坐标系中的单位矢量在参考坐标系中的投影。
这是一个总的旋转的表达,分解为三次旋转,可以理解为R=R3*R2*R1。
? ? 四元数姿态表达式是一个四参数的表达式。它的基本思路是:一个坐标系到另一个坐标系的变换可以通过绕一个定义在参考系中的矢量 的单次转动来实现。四元数用符号q表示,它是一个具有4个元素的矢量,这些元素是该矢量方向和转动大小的函数。定义 的大小和方向是使参考系绕 转动一个角度 ,就能与载体坐标系重合。
? ? 他们三者都可以表示姿态,求出一个就相当于知道其他的了。具体用什么形式表达,可以按照你的要求自己去换算,他们的之间的关系如下:
2、下面对姿态解算的原理进行阐述。
? ?姿态解算常用的算法有欧拉角法、方向余弦法和四元数法。 欧拉角法在求解姿态时存在奇点(万向节死锁),不能用于全姿态的解算; 方向余弦可用于全姿态的解算但计算量大,不能满足实时性要求。 四元数法,其计算量小,无奇点且可以满足飞行器运动过程中姿态的实时解算。
? ?姿态解算的原理:对于一个确定的向量,用不同的坐标系表示时,他们所表示的大小和方向一定是相同的。但是由于这两个坐标系的旋转矩阵存在误差,那么当一个向量经过这么一个有误差存在的旋转矩阵后,在另一个坐标系中肯定和理论值是有偏差的,我们通过这个偏差来修正这个旋转矩阵。这个旋转矩阵的元素是四元数,我们修正的就是四元数,这样姿态就被修正了。
? ?陀螺仪动态响应特性良好,但计算姿态时会产生累积误差。 磁力计和加速度计测量姿态没有累积误差,但动态响应较差。因此他们在频域上特性互补,所以采用互补滤波器融合这三种传感器的数据,提高测量精度和系统的动态性能。
3、四元数姿态解算的步骤:
好了到这里姿态解算的四路已经比较清晰了,最后给大家一个“杀手锏”:
? ?看到这些之后再结合源码,想必思路会清晰很多!
惯性传感器的原理
惯性传感器是一种传感器,主要是检测和测量加速度、倾斜、冲击、振动、旋转和多自由度(DoF)运动,是解决导航、定向和运动载体控制的重要部件。
(1)科里奥利(Coriolis)原理:也称科氏效应(科氏力正比于输入角速率)。该原理适用于机械式干式﹑液浮﹑半液浮﹑气浮角速率陀螺;挠性角速率陀螺;MEMS硅﹑石英角速率陀螺(含半球谐振角速率陀螺)等。Coriolis法国物理学家(1792年~1843年)。
(2)萨格纳(Sagnac)原理:也称萨氏效应(相位差正比于输入角速率)。该原理适用于光纤角速率陀螺;激光角速率陀螺等。Sagnac法国物理学家(1869年~1926年),居里夫妇的朋友。1913年发明萨氏效应。
惯性传感器构成
惯性传感器包括加速度计(或加速度传感计)和角速度传感器(陀螺)以及它们的单、双、三轴组合IMU(惯性测量单元),AHRS(包括磁传感器的姿态参考系统)。
MEMS加速度计是利用传感质量的惯性力测量的传感器,通常由标准质量块(传感元件)和检测电路组成。
IMU主要由三个MEMS加速度传感器及三个陀螺和解算电路组成。
惯性传感器分类
惯性传感器分为两大类:一类是角速率陀螺;另一类是线加速度计。
角速率陀螺又分为:机械式干式﹑液浮﹑半液浮﹑气浮角速率陀螺;挠性角速率陀螺;MEMS硅﹑石英角速率陀螺(含半球谐振角速率陀螺等);光纤角速率陀螺;激光角速率陀螺等。
线加速度计又分为:机械式线加速度计;挠性线加速度计;MEMS硅﹑石英线加速度计(含压阻﹑压电线加速度计);石英挠性线加速度计等。
对于运动图物体的物理测量,目前存在着大量的市场需求。惯性加速度传感器能够被用来检测并检测出物体的振动、选择、加速度,它可以高效地解决导航以及载体控制的重要部件,它充分利用传感器的惯性力,对其进行测量。那么关于惯性加速度传感器的原理,你都知道哪些呢?下面,就由传感器爱好者带您来了解一下!
惯性加速度传感器原理是什么
惯性加速度传感器通常包括有加速度计、也被叫做角速度传感器、或加速度传感器,下面我们来了解一下惯性加速度传感器原理。
惯性传感一般包括加速度计,它也叫加速度传感器和角速度传感器,角速度传感器也被叫做陀螺仪,在这里我们主要了解加速度计和陀螺仪的基本原理。
加速度计一般是由检测质量、支承、电位器、弹簧、阻尼器和壳体组成,但同时就是利用加速度的基本原理,即计算物体在空间运动的状态,一开始加速度计只是感应地表垂直方向加速度,初期也只是应用在检测飞机过载的仪表系统中。而后通过功能升级、优化,如今实际上可以认知到物体任意方向上的加速度主流的是3轴加速度计,测量的是物体在空间坐标系中X、Y、Z三轴上的加速度数据,可以全方面反映物体平移的运动性质。
惯性传感器怎么工作?
与加速度计测量维度不同,我们按照陀螺仪的定义,可以理解到陀螺仪主要是通过测量空间坐标系中陀螺转子的垂直轴与物体之间的夹角,如今的主流陀螺仪也是三轴,即测量物体在X、Y、Z轴上旋转的数据,分别为纵摇、横摇、垂摇。
最早的陀螺仪都是机械陀螺仪,内置高速旋转的陀螺,正因为陀螺在万向支架上能够保持高速稳定旋转,因此最早陀螺仪是航海中用来辨别方向,确定姿态以及计算角速度,之后逐渐被应用在飞机仪表上。不过机械式的对加工精度要求很高,还非常容易受外界震动影响,因此机械陀螺仪的计算精度始终都不高。
惯性加速度传感器原理是什么?惯性加速度传感器,通常可分为两类,一种是角速率陀螺,而另一种是线加速度计。在工业上,引起稳定高效的运行机制原理,被应用得比较广泛。惯性加速度传感器有别于传统的加速度传感器,在使用上也有所区别,是解决定向、导航和运动载体控制的重要部件。
下一篇: PLC、DCS、FCS三大控
上一篇: 电气控制线路图控制原