3. 四元数约定,我的选择
3.1 四元数特色
有几种确定四元数的方法。它们基本上与四种二元选择有关:
-
元素的顺序——实部在前还是在后:
q = [ q w q v ] v s . q = [ q v q w ] . (140) \mathbf{q} = \left[\begin{matrix} q_w \\ \mathbf{q}_v \end{matrix}\right]~~~~vs.~~~~ \mathbf{q} = \left[\begin{matrix} \mathbf{q}_v \\ q_w \end{matrix}\right]~. \tag{140} q=[qwqv] vs. q=[qvqw] .(140) -
乘法公式——四元数代数的定义:
i j = − j i = k v s . j i = − i j = k , (141a) ij=-ji=k~~~~vs.~~~~ji = -ij=k~, \tag{141a} ij=−ji=k vs. ji=−ij=k ,(141a)
它们分别对应不同的手系:
r i g h t − h a n d e d v s . l e f t − h a n d e d . (141b) right-handed~~~~vs.~~~~left-handed~.\tag{141b} right−handed vs. left−handed .(141b)
这意味着,对于一个旋转轴 u \mathbf{u} u,一个四元数 q r i g h t { u θ } \mathbf{q}_{right}\{\mathbf{u}\theta\} qright{ uθ}使用右手定则绕轴 u \mathbf{u} u旋转向量 θ \theta θ角度,而另一个四元数 q l e f t { u θ } \mathbf{q}_{left}\{\mathbf{u}\theta\} qleft{ uθ}则使用左手定则。
-
旋转操作函数——旋转系或旋转向量:
P a s s i v e v s . A c t i v e . (142) Passive~~~~vs.~~~~Active.\tag{142} Passive vs. Active.(142) -
在passive的情况下,操作的方向——局部到全局或全局到局部:
x g l o b a l = q ⊗ x l o c a l ⊗ q ∗ v s . q ⊗ x g l o b a l ⊗ q ∗ (143) \mathbf{x}_{global} = \mathbf{q} \otimes \mathbf{x}_{local} \otimes \mathbf{q}^*~~~~vs.~~~~\mathbf{q} \otimes \mathbf{x}_{global} \otimes \mathbf{q}^* \tag{143} xglobal=q⊗xlocal⊗q∗ vs. q⊗xglobal⊗q∗(143)
多种选择导致12种不同的组合。历史的发展使某些约定胜于其他约定(Chou,1992; Yazell,2009)。今天,在现有文献中,我们发现了许多四元数flavors,如Hamilton,STS【16】,JPL【17】,ISS【18】,ESA【19】,工程学,机器人学以及可能有更多的教派。这些形式中的大多数可能相同,其他的则不同,但是这个事实很少被明确指出,并且许多工作对上述四种选择都缺乏足够的四元数描述。
【注16,框架变换系统,俗称美国宇航局的航天飞机】
【注17,喷气推进实验室。】
【注18,国际空间站】
【注19,欧洲航天局】
这些差异以非显而易见的方式影响旋转,组成等各个公式。因此,这些公式不兼容,我们需要从一开始就做出明确的选择。
Hamilton(140-143中左侧的选项)和JPL(右侧中的选项,以及(142)除外)是两种最常用的约定,也是记录最好的约定。表2总结了它们的特性。 JPL主要用于航空领域,而Hamilton则在其他工程领域(例如机器人技术)中更为常见-尽管不应以此为原则。
我的选择早在等式(2)中就采用了Hamilton约定,该约定是惯用右手的,并且与许多广泛使用的软件库相吻合。在Eigen,ROS,Google Ceres等机器人技术中的应用,以及大量有关使用IMU进行姿态估计的卡尔曼滤波的文献(Chou,1992; Kuipers,1999;Piniéset 等,2007; Roussillon 等,2011; Martinelli,2012年以及其他许多内容)。
至少在机器人技术领域,JPL约定可能不太常用。 (Trawny和Roumeliotis,2005年)对参考书进行了广泛的描述,该参考书的目的和范围非常接近当前的参考书目,但仅专注于JPL约定。 JPL四元数在JPL文献中(显然)以及在Li,Mourikis,Roumeliotis及其同事的关键论文中使用(请参阅(例如,Li和Mourikis,2012; Li等,2014)),这些文献来自Trawny和Roumeliotis的文件。这些工作是处理视觉惯性里程计和SLAM时的主要灵感来源,这就是我们的工作。
在本节剩下的部分,我们将更深入地分析这两个四元数约定。
3.1.1 四元数分量的顺序
Hamilton四元数和JPL四元数之间的最显着差异虽然不是最基本的,但在分量顺序上不同,标量部分位于最前(Hamilton)或最后(JPL)位置。这种变化的影响是显而易见的,不应该代表对解释的巨大挑战。实际上,只要保持其他三个方面,某些仍以四元数的实数部分结尾的工作(例如C ++库Eigen)仍被视为使用Hamilton约定【不管四元数的实部在前还是在后,并不影响四元数代数本身,只是在使用一些有关的四元数代数库的时候,参数传入需要注意下,不要弄错了顺序】。
为了提高清晰度,我们对四元数组件使用了下标 ( w , x , y , z ) (w,x,y,z) (w,x,y,z),而不是其它常用的下标 ( 0 , 1 , 2 , 3 ) (0,1,2,3) (0,1,2,3)。更改顺序时, q w q_w qw将始终表示实部,但不清楚 q 0 q_0 q0是否也会起作用——在某些情况下,人们可能会发现诸如 q = ( q 1 , q 2 , q 3 , q 0 ) q =(q_1, q_2, q_3, q_0)