APM姿态旋转理论基础
一、坐标系
无人机领域中最重要的就是惯性坐标系和机体坐标系。
1.1 NED坐标系
因为在现实中通常需要在平面控制无人机,因此NED坐标系通常作为无人机领域的导航坐标系使用。
NED坐标系如下图绿色坐标系,即北东地坐标系,三个方向始终保持不变。
1.2 机体坐标系
机体坐标系始终与无人机本体固连,同时也表明了无人机当前的姿态。其原点位于无人机的重心,X轴朝向机头,Y轴垂直于X轴指向机身右方,Z轴按照右手法则正交于X和Y轴(这边先关注轴即可,旋转和角度表示后面需要再统一一下标准)。
通常无人机的姿态一般由惯性测量单元IMU来获取,其中陀螺仪用于获取角速度,加速度计顾名思义获取3轴的加速度,如果带有磁力计,则可以获取到磁场方向。
后面过程NED坐标系会简称为n系,机体坐标系会简称为b系。
举例来说,在n系下我们获取到的是无人机的“东南西北”的绝对位置信息,而在b系下,我们会要求无人机进行“前后左右”的增量式运动,如何将我们给机体的期望运动与导航给我们反馈的n系下的位置、姿态等绝对信息联系起来,就是我们后面要做的事情。
二、欧拉角
借一张已经被用烂了的图简单来说一下欧拉角的一些基本概念:
欧拉角是利用3次独立的绕轴旋转运动来确定三维空间中的某一刚体姿态;
欧拉角可以绕着固定轴(大地坐标系) 和 运动轴(机体坐标系) 两种类型的轴进行旋转,运动过程对于前者称为外旋,后者称为内旋;
对于绕轴的顺序,科学界并没有明确的规定,实际上根据不同轴旋转顺序总共有24种(外旋12种,内旋12种,在各自的12种中使用2轴还是3轴旋转又可以向内各分为6种)
使用欧拉角时必须指明旋转顺序以及参考轴,同时不同行业内部会有具体的欧拉角定义,比如无人机类型的使用的zyx
理论上用欧拉角确实可以表示任意姿态,实际上在实际使用过程中会存在万向节死锁问题
绕固定轴进行3次旋转之后的最终姿态和以绕运动轴按相反顺序进行3次旋转之后可以获得相同的最终姿态。由此会有绕定轴旋转X-Y-Z的RPY角和绕动轴Z-Y-X旋转之分,但是两者的最终姿态是一致的(当然需要按照特定角度)
通常欧拉角并不用于计算过程,一般使用的是四元数进行计算,而最终的可视化是转化为欧拉角进行表示的。
在无人机领域中,我们通常使用的欧拉角旋转方式表示为(根据国内标准统一符号,记住此处的角度符号,会在旋转矩阵中用到):
绕 Z轴 进行的 偏航 运动,称为 Yaw ,角度符号通常用 ψ 来表示。
绕 Y轴 进行的 俯仰 运动,称为 Pitch ,角度符号通常用 θ 来表示。
绕 X轴 进行的 滚转 运动,称为 Roll ,角度符号通常用 Φ 来表示
三、旋转矩阵
旋转矩阵表示的是坐标系的旋转
3.1 基本公式
推导就不推导了,直接给出结论,常用的绕X、Y、Z轴方向的旋转矩阵如下(注意推导时根据旋转方向会有正负号的差异)。我们通常用Φ,θ,ψ表示绕X、Y、Z轴的旋转角度。
绕轴顺序不同的话最后得到的旋转矩阵也会不同,在无人机领域通常是按照Z-Y-X进行旋转的,结论直接给出
明确旋转矩阵自身为一个正交矩阵(转置与逆相等)
3.2 矩阵作差
由此可见旋转矩阵中通过左乘一个旋转矩阵的逆表示姿态作差。
四、四元数
首先明确四元数描述的是三维空间的旋转过程,而不是一个点。
基础理论和数学计算方式这边将不再介绍,后面均表示为国内统一标准。
首先明确四元数描述的是三维空间的旋转过程,而不是一个点。
基础理论和数学计算方式这边将不再介绍,后面均表示为国内统一标准。
注意:单位四元数的逆等于它的共轭
在统一使用国内标准描述四元数时,四元数与旋转矩阵也可以像旋转矩阵一样上下标约去。
4.1 四元数与轴角的相互转换
前提:轴角已知
四元数本身也是存储了一个旋转轴和一个旋转角度。如果已知一个由轴角n和θ指定的旋转。其中
并且向量n为单位向量
则用四元数描述这个旋转过程为
表示为
那么反过来也可以求得轴角
四元数恢复轴角形式
虽然上面给出了公式,然而一种更直观的计算方法如下,前提是已知四元数表达
下图来自旋转表达之四元数
4.2 四元数表示旋转
4.3 四元数与旋转矩阵
4.4 四元数与欧拉角
欧拉角转换为四元数。
回忆一下我们通常用φ,θ,ψ表示绕X、Y、Z轴的旋转角度
四元数反推欧拉角