学习惯导这么久,还是没有形成自己的体系,应该说还是没有入门(手动尴尬)。所以在此对看过的内容进行解释,加深印象。本文的内容针对秦永元老师《惯性导航(第二版)》中“9.2.2 四元数与姿态阵间的关系”进行备忘。
一、前提
如图所示(为了便于理解,我把原图擦去了一部分),假定有刚体金刚圈AB,坐标系R,注意这个坐标系不与金刚圈固联(无论金刚圈怎么转,我坐标系坚决不动,相当于这是一个导航坐标系)。当看到这个图,你肯定不知道坐标系R在哪了。没关系,这都不重要,可以这么认为,坐标系就假定是以O为原点的右手系(O隐藏的很深,仔细看)。
金刚圈跟坐标系R介绍完了,就该谈一谈其中的元素了。请看下面这个被我蹂躏得比较轻的图。连接OO’(O’为圆心)得矢量
OO′→
,连接O’A得矢量
O′A→
,连接O’B得矢量
O′B→
(
O′A→
垂直于
O′B→
),连接OA得矢量
OA→
记为
r⃗
。把这些元素定义好了,金刚圈就开始绕
OO′→
转动,转动方向沿短弧沿短弧
A−→−−沿短弧B
。
圆圈的转动还是要作一下说明,如下图所示(这个图没有遭到我的毒手)。在
OO→
上取单位矢量
u⃗
,该矢量可以等效成刚体的旋转轴。
O′A→
旋转角度
θ
得到
O′A′→
,连接OA’得到
OA′→
记为
r⃗ ′
。
到此为止,把旋转的关系理清楚了。下面请看四元数与姿态阵关系的推导过程。
二、推导
推导的过程其实就是分析转动前后的矢量
r⃗
与
r⃗ ′
的关系。
根据前面的描述,首先可以得到:
OO′→=(r⃗ ⋅u⃗ )u⃗
为什么呢?因为:
OO′→=(|r⃗ |⋅|u⃗ |⋅cos<r⃗ ,u⃗ >)u⃗ =|OO′→|⋅u⃗ =OO′→
那么可求:
O′A→=r⃗ −OO′→=r⃗ −(r⃗ ⋅u⃗ )u⃗
O′B→=u⃗ ×O′A→=u⃗ ×r⃗ −u⃗ ×(r⃗ ⋅u⃗ )u⃗ =u⃗ ×r⃗ −(r⃗ ⋅u⃗ )u⃗ ×u⃗ =u⃗ ×r⃗
这一步,点乘是一个实数,所以会有
u⃗ ×u⃗
,而
u⃗ ×u⃗ =0
。
说到这里又要再加一个图了,如下图,这个图的意思不用我多说了吧。
通过这个图求
O′A′→
:
O′A′→=O′A→cosθ+O′B→sinθ=r⃗ cosθ−(r⃗ ⋅u⃗ )u⃗ cosθ+u⃗ ×r⃗ sinθ
这样,
r⃗ ′
就可以求得:
r⃗ ′=OO′→+O′A′→=r⃗ cosθ+(1−cosθ)(r⃗ ⋅u⃗ )u⃗ +u⃗ ×r⃗ sinθ
另外有这样一个公式,在推导的过程中需要用到(公式来源:向量积-拉格朗日公式):
a⃗ ×(b⃗ ×c⃗ )=b⃗ (a⃗ ⋅c⃗ )−c⃗ (a⃗ ⋅b⃗ )
我们知道向量的点乘满足交换律,所以可以写成:
a⃗ ×(b⃗ ×c⃗ )=b⃗ (a⃗ ⋅c⃗ )−(a⃗ ⋅b⃗ )c⃗
这时候令
a⃗ =b⃗ =u⃗
,
c⃗ =r⃗
,可得:
u⃗ ×(u⃗ ×r⃗ )=u⃗ (u⃗ ⋅r⃗ )−(u⃗ ⋅u⃗ )r⃗
现在就跟书上的对照起来啦。接下来还有
u⃗ ⋅u⃗ =1
,所以上式可表示为:
u⃗ ×(u⃗ ×r⃗ )=u⃗ (u⃗ ⋅r⃗ )−r⃗ =(r⃗ ⋅u⃗ )u⃗ −r⃗
所以可以得到:
(r⃗ ⋅u⃗ )u⃗ =r⃗ +u⃗ ×(u⃗ ×r⃗ )
够详细了吧,我这颗心那,就怕以后看不懂!!
所以可以得到:
r⃗ ′=OO′→+O′A′→=r⃗ cosθ+(1−cosθ)(r⃗ ⋅u⃗ )u⃗ +u⃗ ×r⃗ sinθ=r⃗ cosθ+(1−cosθ)[r⃗ +u⃗ ×(u⃗ ×r⃗ )]+u⃗ ×r⃗ sinθ=r⃗ +u⃗ ×r⃗ sinθ+(1−cosθ)u⃗ ×(u⃗ ×r⃗ )
下面就是将
r⃗ ′
向R系内投影,表示为:
r⃗ ′R=r⃗ R+(u⃗ ×r⃗ )Rsinθ+(1−cosθ)[u⃗ ×(u⃗ ×r⃗ )]R
记
r⃗ ′R=⎡⎣⎢r′xr′yr′z⎤⎦⎥, r⃗ R=⎡⎣⎢rxryrz⎤⎦⎥, u⃗ R=⎡⎣⎢lmn⎤⎦⎥
看到这肯定又不懂了。其实就是将转动后得到的
OA′→
投影到原来的R系中,然后在R系内将投影的向量用坐标表示出来了。
此时根据叉乘表达式可以得到:
(u⃗ ×r⃗ )R=⎡⎣⎢0n−m−n0lm−l0⎤⎦⎥⎡⎣⎢r⃗ xr⃗ yr⃗ z⎤⎦⎥
记
U=⎡⎣⎢0n−m−n0lm−l0⎤⎦⎥(1)
这又是什么鬼?不要慌,下面来拓展反对称阵。
设
a⃗ =⎡⎣⎢a1a2a3⎤⎦⎥, b⃗ =⎡⎣⎢b1b2b3⎤⎦⎥
a⃗ ×b⃗ =∣∣∣∣∣i⃗ a1b1j⃗ a2b2k⃗ a3b3∣∣∣∣∣=⎡⎣⎢a2b3−a3b2a3b1−a1b3a1b2−a2b1⎤⎦⎥
而
⎡⎣⎢0a3−a2−a30a1a2−a10⎤⎦⎥⎡⎣⎢b1b2b3⎤⎦⎥=⎡⎣⎢a2b3−a3b2a3b1−a1b3a1b2−a2b1⎤⎦⎥
则记
(a×)=⎡⎣⎢0a3−a2−a30a1a2−a10⎤⎦⎥, a⃗ ×b⃗ =(a×)b⃗
因此可以继续往下推导:
(u⃗ ×r⃗ )R=Ur⃗ R, [u⃗ ×(u⃗ ×r⃗ )]R=U⋅Ur⃗ R
所以:
r⃗ ′R=r⃗ R+(u⃗ ×r⃗ )Rsinθ+(1−cosθ)[u⃗ ×(u⃗ ×r⃗ )]R=r⃗ R+Ur⃗ Rsinθ+(1−cosθ)U⋅Ur⃗ R=(I+2Usinθ2cosθ2+2sin2θ2U⋅U)r⃗ R(2)
令:
D=I+2Usinθ2cosθ2+2sin2θ2U⋅U(3)
那么
r⃗ ′R=Dr⃗ R(4)
之后的关系递推比较简单,假定刚体的固联坐标系为
b0
,刚体未转动时,刚体固联坐标系与参考坐标系
R重合,就是对向量
r⃗
(注意,这是刚体没有转动的向量)而言,在两个坐标系中的矢量是相等的:
r⃗ R=r⃗ b0
在刚体转动后,因为向量
r⃗
与坐标系
b0
都随着刚体一起转动,转动结束后得到向量
r⃗
和坐标系
b。向量
r⃗ ′
可以说相对于坐标系
b没动:
r⃗ b0=r⃗ ′b
所以:
r⃗ R=r⃗ ′b
带入(4)可得:
r⃗ ′R=Dr⃗ ′b
那么
b系到
R系的旋转矩阵即为
D:
CRb=D=I+2Usinθ2cosθ2+2sin2θ2U⋅U
后面的展开用四元数表示就不再赘述,但在此列出:
定义:
q0=cosθ2q1=lsinθ2q2=msinθ2q3=nsinθ2
有:
CRb=⎡⎣⎢⎢q20+q21−q22−q232(q1q2+q0q3)2(q1q3−q0q2)2(q1q2−q0q3)q20−q21+q22−q232(q2q3+q0q1)2(q1q3+q0q2)2(q2q3−q0q1)q20−q21−q22+q23⎤⎦⎥⎥
资源:
惯性导航-该资源仅供学术交流,如有侵权,请联系删除 密码:iml9
学术不需要积分!