加速度计、磁力计求初始姿态角

1.几个基本概念。

地理坐标系:北东地。北为X轴、东为Y轴、地为Z轴。

机体坐标系:见下图。

姿态角:我的理解是,roll角是Zb在ZOY平面与Z轴的夹角。pitch角是Zb在ZOX平面与Z轴的夹角。yaw角是Xb在XOY平面与X轴的夹角。

旋转矩阵:地理坐标系到机体坐标系的转换矩阵。旋转矩阵为正交阵,逆即转置。

传感器:都是基于机体坐标系的。加速度计测三轴的加速度,磁力计测三轴的磁感应强度,陀螺仪测三轴的角速度。注意角速度的定义,方向是沿着三轴的。得到姿态角主要靠陀螺仪测得的角速度积分,但存在漂移误差,因此要用加速度计和磁力计随时校正。

很重要的:在地理坐标系下,重力加速度坐标始终为(0,0,1g),磁场坐标为(M,0,D)。在地球表面,磁场始终是沿着磁感应线指北的,某点的磁场强度为磁感应线在该点的切线,它在北方有个分量,在垂直方向有个分量,在Y轴是没有分量的,即(M,0,D)。这里还有一点,地理的北极和磁场的北极是不重合的,有一定的夹角,即磁偏角。根据经纬度是可以查到这个夹角的大小的。我们定义的地理坐标系的北当然是地理的北。但用磁力计求得实际是Xb与地磁的北的夹角,我们最后会加上磁偏角,这样就是Xb与地理北的夹角了,就是真正的航向角啦。

理解重力加速度和磁感应强度的概念是非常重要的。

好了,我们可以开始求初始姿态角了。

2.加速度计求roll,pitch角。

飞机静止放在放地上时,地理坐标系下重力加速度为(0,0,g),机体坐标系下加速度测量的三轴加速度为(ax,ay,az)

它们两者之间的关系是怎么表示呢,可以想象一个长方体,(ax,ay,az)是三条边,(0,0,g)是对角线。

这个图可以清晰的说明一切啦。画图花了我好久。求姿态角就是求两个坐标系的夹角关系。在求俯仰角和横滚角时,我们完全可以把Z轴当做参考来求。上面我说俯仰角是Zb在XOZ平面的投影与Z轴的夹角,这里我是把Z轴投影到XbOZb平面上的,仔细想想是一样的,Z轴在XbOZb平面上的投影和Zb轴的夹角依然是俯仰角啦。横滚同理。

这样roll=arctan(ay/az),pitch =-arctan(ax/az) 方向的正负号是自己定义的。

3.磁力计求航向角。

地理坐标系下该点的磁场强度为(M,0,D),磁力计测得的三轴磁场强度为(mx,my,mz)。

当我们认为飞机是完全水平放在地上的时候,即Z轴和Zb轴是平行的时候,完全不用考虑垂直方向了。我们只用考虑XOY平面了。

那么yaw=arctan(my/mx)

很简单对不对,但实际上飞机是不可能水平放在地面上的,肯定会有一点倾斜的,也就是说肯定会有roll和pitch角啦。只要飞机倾斜,磁力计测得的磁场强度mx就不是真正的水平X轴上的分量了,my当然也不是了。我们必须把根据mx,my,mz,roll,pitch求出投影在XOY面上的两个量了。

我们是先用加速度计求出roll和pitch角,然后根据求得的roll和pitch角,磁力计的测量的(mx,my,mz)来求yaw角。对,这才是求初始姿态角正确的打开方式。

直接按思路求出XOY上投影量比较复杂,但绝对是可以的,下面有一种比较巧妙的办法。

4.好吧,我们在这里又要讲另外一个很重要的线性代数知识。才能理解上面图片里说的什么。

根据上图可以得到一个重要结论,那就是,从机体坐标系到地理坐标系的转换矩阵的第3行的三个元素即重力加速度在机体坐标的三个分量,即地理坐标系下[0,0,g]对应机体坐标系下[ax,ay,az]!同理,磁力计的三个分量,也就是可以认为地理坐标系下[M,0,D]对应机体坐标系下[mx,my,mz]。

时间: 2024-08-03 14:17:38

加速度计、磁力计求初始姿态角的相关文章

简单VR照片 使用陀螺仪、姿态角(Roll、Pitch、Yaw )、四元数

最近在做一个类似VR照片的demo,跟全景图片也很像,只是VR照片与全景720度显示,我只做了180度.但我发现他们实现的原理有一丝相似,希望可以给一些想入行AR.VR的朋友一些提示吧. 要想根据用户摇晃手机的行为轨迹展示相应的场景,那必须要使用移动端的陀螺仪.加速器等传感器来做相应的协调.现在的移动端已经提供了很多传感器,你可以根据自己的需要获取相应的数据. 刚开始的时候,我使用传感器提供的姿态角,也称为欧拉角:pitch yaw roll 来显示.这种 姿态角/欧拉角 比较常用在航空上,无人

[UVA]Pixhawk之姿态解算篇(2)

一.开篇 还是没能进入到源码部分研究,对姿态解算过程太过于模糊,所以主要开始研究一下关于姿态解算的过程和实现,本篇博文主要是以mahony的算法为基础理解姿态解算的过程,主要参考的论文就是William Premerlani and Paul Bizard的关于DCM的一篇经典论文<Direction Cosine Matrix IMU_Theory>,一定要搞透这偏论文,没看过它都不敢称自己研究过飞控算法:然后接下来还有madgwick和mahony的论文需要研究,看英文的比较费时间,但是还

[UVA]Pixhawk之姿态解算篇(3)_源码姿态解算算法分析

一.开篇 终于到ardupilot源代码的姿态解算了,有了前期关于mahony姿态解算算法的基础以后,理解源代码的姿态解算算法就快多了,所有的东西都在脑海中初步有了一个框架:首先要做什么,然后再做什么,再然后捏~~~反正容易上手的. 2016.04.04日晚,别人都在嗨,而我却在实验室苦逼的工作着,今晚最大的收获就是发现了"新大陆"-----"北航可靠飞行控制研究组",其喜悦之情绝不亚于哥伦布发现新大陆.他们才是专业的啊,看看他们毕业生的去向,不是研究所就是出国深造

谈一谈 MPU6050 姿态融合(转)

姿态角(Euler角)pitch yaw roll飞行器的姿态角并不是指哪个角度,是三个角度的统称.它们是:俯仰.滚转.偏航.你可以想象是飞机围绕XYZ三个轴分别转动形成的夹角. 地面坐标系(earth-surface inertial reference frame)Sg--------OXgYgZg<ignore_js_op> ①在地面上选一点Og②使Xg轴在水平面内并指向某一方向③Zg轴垂直于地面并指向地心(重力方向)④Yg轴在水平面内垂直于Xg轴,其指向按右手定则确定 机体坐标系(Ai

已知三个点坐标,求由这三个点构成的多边形的最大面积。

给出A(x0, y0) B(x1, y1) C(x2, y2) 1.求3边a,b,c 2. 先求外接圆半径.(一定存在) 海伦公式 + 正弦定理   得  R = a * b * c / (4 * S)   S = sqrt(q * (q - a) * (q - b) * (q -c));  q = (a + b + c) / 2; -----因为是正多边形. 那么只要求出一边与两半径围成的面积 * N 就好. 3. 余弦定理 求3个角. 求最大公约数就是  正多边形 每一份   最小的角度.

POSIT算法的原理--opencv 3D姿态估计

3D姿态估计-POSIT算法 POSIT算法,Pose from Orthography and Scaling with Iterations, 比例正交投影迭代变换算法: 用于估计物体的3D姿态(相对于镜头的平移和旋转量).算法正常工作的前提是物体在Z轴方向的"厚度"远小于其在Z轴方向的平均深度,比如距离镜头10米远的一张椅子. 算法流程: 假设待求的姿态,包括旋转矩阵R和平移向量T,分别为 透视投影变换为: 上式中的f是摄像机的焦距,它的具体值并不重要,重要的是f与x和y之间的比

四轴之互补滤波与四元数算法最详细分析

有人问我关于四元数姿态解算算法的分析,每次都解释好久,今日空闲,特发一帖,供大家参考.本分析将结合程序,分析姿态解算思路,由于能力有限,难免有错误之处请谅解,同时希望能够抛砖引玉,得到大神指点.再此感谢圆点博士提供资料参考. 为尊重原创,转载请注明原出处,谢谢. 原创:冰三点水 关键字:姿态解算 互补滤波 四元数 下面进入正题. 第一部分 传感器说明 通常我们开源小四轴使用mpu6050姿态传感器,可以输出三轴加速度和三轴角速度数据.角速度数据就是x.y.z三个轴的旋转角速度.而加速度是沿三个轴

张正友相机标定Opencv实现以及标定流程&amp;&amp;标定结果评价&amp;&amp;图像矫正流程解析(附标定程序和棋盘图)

使用Opencv实现张正友法相机标定之前,有几个问题事先要确认一下,那就是相机为什么需要标定,标定需要的输入和输出分别是哪些? 相机标定的目的:获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的选择和平移矩阵),内参和外参系数可以对之后相机拍摄的图像就进行矫正,得到畸变相对很小的图像. 相机标定的输入:标定图像上所有内角点的图像坐标,标定板图像上所有内角点的空间三维坐标(一般情况下假定图像位于Z=0平面上). 相机标定的输出:摄像机的内参.外参系数. 这三个基础的问题就决定了使用Openc

51获取6050原始数据并通过匿名上位机显示波形

其实之前就用stm32获取过6050的原始数据,但是当时只是为了用而用,对他的理解并不深入,也不明白到底是怎么获得这些数据的. 这几天回归原始,通过STC89C52RC,再一次对6050进行驱动,并获取原始数据.经过几天的努力,现在其实感觉6050没有想象中的那么复杂,复杂的是后面对他的数据进行的滤波和姿态解算.获取数据其实就是对里面的一些寄存器进行配置.但是要求熟练掌握单片机的 IIC 通信协议.通信协议这东西其实看着很简单,但是实际用起来有很多细节方面的东旭需要注意.关于具体 IIC 的通信