方向余弦矩阵(DCM)简介
——定向运动学简介——
1 前言
这篇文章是翻译Starlino_DCM_Tutorial.pdf而来,
链接为:http://www.starlino.com/dcm_tutorial.html,各位看官可以对照着原文看,翻译不尽人意之处,请各位轻拍!
这篇文章主要是介绍无人机方向余弦矩阵相关的知识,另外增加了定向运动学的主题。文章先通过一些理论介绍,然后结合一些实际的例子展开讨论。该文章的算法是通过融合陀螺仪和加速度计数据,利用方向余弦矩阵(DCM、Direction Consine Matrix)的方法,以估计设备在空间中的方位。
符号说明:向量以粗体文本标记 - 例如,“v”是向量,“v”是标量。
2 DCM矩阵
通常来说,定向运动学处理的问题为计算本体坐标系相对全局坐标系的相对方位。我们将本体坐标系定义为Oxyz,另外一个全局坐标系定义为OXYZ,两坐标系的具有相同的原点O,如图 1所示。本体坐标系的x、y、z轴对应的单位向量分别为i,j,k;全局坐标系X、Y、Z轴对应的单位向量分别为I,J,K。
图1坐标系定义
因此,通过定义,全局坐标系下的单位向量I,J,K表示形式可写为:
IG = {1,0,0} T, JG={0,1,0} T , KG = {0,0,1} T
相应的,本体坐标系下的单位向量i,j,k表示形式可写为:
iB = {1,0,0} T, jB={0,1,0} T , kB = {0,0,1} T
现在让我们看看是否可以在全局坐标系下表示向量i,j,k。让我们以向量i为例,写出它在全局坐标系下的坐标:
iG = {ixG , iyG , izG} T
作为示例,让我们分析X坐标轴的分量ixG,它的值为i向量投影到全局坐标系下X轴上的长度。
ixG = |i| cos(X,i) = cos(I,i)
其中,|i|为单位向量i的范数(长度),cos(I,i)为向量I与i形成的夹角余弦,由于I与i均为单位向量,上式又可写成:
ixG = cos(I,i) = |I||i| cos(I,i) = I.i
其中,I.i为I与i的标量(点)乘积,为了计算标量积I.i。标量积在哪个坐标系中测量这些矢量并不重要,只要他们在同一个系统中表示,因为旋转不改变矢量的夹角。因此:I.i = IB.iB = IG.iG = cos(IB.iB) = cos(IG.iG) ,为了表示简便,本文一下部分将忽略I.i , J.j , K.k以及 cos(I,i), cos(J,j), cos(K,k)的上标。类似地,我们可以得出iyG = J.i , izG=K.i 。
所以现在我们可以将全局坐标系中的向量i写为:iG= { I.i, J.i, K.i}T
此外,类似的可以得出jG= { I.j, J.j, K.j} T , kG= { I.k, J.k, K.k} T
现在本体坐标系下的 i, j, k在全局坐标系下有一套完整的表示,我们可以将这些向量组成一个方便的矩阵:
Eq.1. 1
该矩阵为方向余弦矩阵,很明显,它是由本体坐标系和全局坐标系单位向量所有可能组合的角度的余弦组成。
类似的,在本体坐标系中表示全局坐标系统的单位向量 IB, JB, KB本质上是对称的,并且可以简单的将I, J, K和 i, j, k交换实现,其结果是:
IB= { I.i, I.j, I.k}T , JB= { J.i, J.j, J.k}T , KB= { K.i, K.j, K.k}T
组成矩阵的形式为:
Eq.1. 2
现在很容易注意到DCMB = (DCMG)T或者DCMG = (DCMB)T,换句话说,两个矩阵是可以相互转换,我们将会在后面使用这一重要属性。
另外,我们可以发现DCMB. DCMG = (DCMG)T .DCMG = DCMB. (DCMB)T = I3 ,其中I3是一个3*3的单位矩阵,换句话说DCM是正交的Eq.1. 3