三轴加速度传感器角度值转换原理

本文介绍了在芯片水平静置和有角度偏移的情况下,如何通过ADXL345加速度传感器测量的加速度值,结合立体几何和勾股定理计算出X、Y、Z轴的角速度值,并将其转换为角度值。同时提及了利用磁场数据和加速度数据来计算初始姿态角的方法。
摘要由CSDN通过智能技术生成

文章转载自:https://blog.csdn.net/ylzmm/article/details/78453347

  • 如果芯片水平静置,X、Y方向的重力分量为0g,而Z轴方向的重力分量为g。如下图所示,X=0;Y=0 Z=g

                                                                         图1 芯片水平静置                                                                           

  • 如果各边与水平方向有一些夹角,则其图像如图2所示,X轴方向的加速度大小为Ax,其与水平线的夹角为α1,与重力加速度的夹角α;同理,Y轴方向的加速度为Ay,与水平线的加速度为 β1,与重力加速度g的夹角为β;Z轴方向的加速度为Az,与水平线的加速度为 γ1,与重力加速度g的夹角为γ。

  • 图2  各边夹角

  • 基于2中的夹角概念,它们的关系为α = 90度- α1, β = 90度- β1 , γ = 90度- γ1。

  • g在各轴方向上的分量为:Ax = gcosα, Ay = gcosβ , Az = gcosγ; 将3中数据代入得:Ax = gcosα = gcos(90度- α1) =gsinα1 , 同理 Ay = gsinβ1 , Az = gsin γ1.如图3所示。(其中各垂直虚线的大小为:g*g = Ax*Ax + gcosα1*gcosα1, 则gcosα1 = squr(g*g - Ax*Ax) ,gcosβ1 =squr (g*g - Ay*Ay ),gcosγ1 =squr(g*g - Az*Az ))勾股定理和三角函数的应用.

  • 图3 重力加速度g在各轴上的分量

  • 根据立体几何中,g相当于立方体的对角线,Ax、Ay、Az相当于三条边,如图4所示,虚线大小等于 Ay*Ay+Az*Az,所以根据勾股定理Ax*Ax + Ay*Ay + Az*Az = g*g

  • 由4和5可以知道,(以X轴为例) sinα1 = Ax/g, cosα1 = squr(g*g - Ax*Ax) / g , 那么,tanα1 =( Ax/g) / [squr(g*g - Ax*Ax) / g] = Ax / squr(g*g - Ax*Ax) = Ax / squr(Ay*Ay + Az*Az) 。 同理 tanβ1 =  Ay / squr(Ax*Ax+Az*Az) ,  tanγ1 =  Az / squr(Ax*Ax +Ay*Ay)。

  • 图4  重力加速度g 作为立方体的对角线

     最后得出ADXL345加速度传感器值与角速度值(弧度)的关系为:

                                                                                                    tanα1 =  Ax / squr(Ay*Ay + Az*Az) ,

                                                                                                    tanβ1 =  Ay / squr(Ax*Ax+Az*Az) ,

                                                                                                    tanγ1 =  Az / squr(Ax*Ax +Ay*Ay)。

其中 α1 、β1 、γ1分别是X、Y、Z轴和水平线的角速度值即弧度值(并不是我们所说的角度值),Ax 、Ay、Az是三个轴上的加速度值。

那么弧度值分别为:

α1 = arctan(Ax / squr(Ay*Ay + Az*Az))

β1= arctan(Ay / squr(Ax*Ax+Az*Az))

γ1= arctan( Az / squr(Ax*Ax +Ay*Ay))

接下来就得使用数据公式:弧度= θπR/180 。 这样算得θ = 弧度*180/πR,其中R取1。最后得到的各轴的角度值分别为:

θx = α1*180/π = [arctan(Ax / squr(Ay*Ay + Az*Az))] *180/π

θy =β1*180/π = [arctan(Ay / squr(Ax*Ax+Az*Az))]*180/π

θz =γ1*180/π = [arctan( Az / squr(Ax*Ax +Ay*Ay))]*180/π      

另外一篇博主的文章:
由磁场数据和加速度数据计算初始姿态角 - 知乎

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值