写在前面
正在学习姿轨一体化建模,姿态运动使用四元数可以很好的描述,加入轨道和姿态耦合影响之后,四元数显得不够用了,结合对偶数的对偶四元数可以很好的解决这个问题。在利用对偶四元数建立动力学的过程中,不可避免地需要用到对偶四元数的逆,在学习过程中我遇到了一些问题,写在这里供自己和同好查看。
https://zhuanlan.zhihu.com/p/381127772
知乎大佬在这篇文档里介绍了对偶四元数的基本性质,可以前往查看,这里不赘述,并且符号沿用该文档,建议观看到其中的公式(7),如遇到问题再来。
在求解对偶四元数的逆时,用到的公式为:
(1)
上式中,u为一个对偶四元数,写在程序中就是一个八维向量,前四维为一个四元数,后四维为一个四元数。u是u的共轭,需要注意的是,u是将u中2-4,6-8维数据取负,具体意义是将两个四元数取共轭。事情到这里本来岁月静好,但是令人纠结的是||u||^2,这个东西是u的2范数,可以按照
求解。uu*本该是个8维的对偶四元数,但是由于两个四元数的虚部都成了0,退化为一个二维的对偶数。可以写为:
(2)
这种形式,a1,b1是两个常数。于是对偶四元数的逆的变为了,一个八维的对偶四元数u*比上一个二维的对偶数,事情变得奇怪了起来。
经过数值验证,使用对偶数乘法与对偶数的逆公式来解决这个问题,毕竟对偶四元数也可以看为对偶数。
使用到的公式如下:
则,式(1)可以写为u*(a1-b1E) / a1^2
根据对偶数乘法计算公式
最终对偶四元数逆的公式就可以得到了:
u − 1 = [ q r a 1 , − b 1 q r + a 1 q d ] / a 1 2 u^{-1} = [q_ra_1,-b_1q_r+a_1q_d]/a_1^2 u−1=[qra1,−b1qr+a1qd]/a12
其中,
q
r
是
u
∗
的
实
部
四
元
数
,
q
d
是
u
∗
的
虚
部
四
元
数
,
a
1
,
b
1
通
过
u
u
∗
q_r是u^*的实部四元数,q_d是u^*的虚部四元数,a_1,b_1通过uu^*
qr是u∗的实部四元数,qd是u∗的虚部四元数,a1,b1通过uu∗获得。
上面是一个8维对偶四元数,下面是一个常数,可以直接运算,经过验证,该逆与原对偶四元数相乘为1.
参考网页:
https://zhuanlan.zhihu.com/p/380140763 对偶数
https://zhuanlan.zhihu.com/p/368676086 四元数
写在后面
由于网上没有这样的详细说明,大佬们都不屑于解释太多,就只能由我这样的菜鸟谈谈想法,有什么理解不到位的地方欢迎和我多交流,共同进步。
水平有限,请有幸看到的您多多指正。在工作之余,祝您早安,午安,晚安。Have a nice day。
(可能的话点个赞再走吧)
P.S.博主还会不定时更新的,喜欢的话就收藏吧。