距离上一部分关于四元数的理解写完已经有段不短的日子里,这次终于理解了所谓θ
2
的真谛。
这里我就一一道来。
首先经常看到网络中的关于四元数与旋转的关系中看到这样的描
述;q=(cosθ
2,℮n sinθ
2
)其中℮n为旋转轴的单位向量θ表示旋转的角度;有的甚至在后面描述
为“四元数表达式的形式跟其旋转的角度θ以及旋转轴℮n有一定的关系”。
这种模糊不清的关系令人存疑。
笔者认为这只是大神们在解读解算程序语言时对于姿态解算中部分程序的误读造成的。
正如笔者在上一部分中提到的:
若存在两个向量A,B其中B为单位向量且A,B的夹角为θ则有:B=−r cosθ+
r℮n sinθ A−1=−1
r
r cosθ+r℮n sinθ−1−A∗=cosθ+℮n sinθ(−A∗)其中(−A∗)表的是一个方向与A相同的单位向量,而式子前段的cosθ+℮n sinθ部分,℮n很显然表示一个垂直于A,B的向量,θ角表示A,B两个向量之间的夹角。
其中℮n确实表示旋转轴且这个向量是一个单位向量,而θ的的确确是旋转的角度,这一点也能从推导过程中看出端倪。
那么问题究竟出在哪里呢?其实问题就在相乘的顺序上,通过阅读网上的博文我们注意到一般的文章中对于四元数表达的方式是这样的:
存在一个单位四元数q=(cosθ
2,℮n sinθ
2
);P是一个没有实部的单位四元数,表述为(0,v)(P的
模为1);p′=qpq−1;好了,到了这里细心地读者已经发现一点问题了。
虽然这里,向量的表示换成了没有实部的四元数(例如p,p′)。
但是在这里我们发现,在变换向量的时候不但用q左乘向量p同时也用q−1右乘。
到这里笔者又要啰嗦些关于四元数的性质(尽可能详细的解读)。
如果您对这一部分有所了解同时时间有限的话可以直接略过!虽然笔者的上一篇文档提到了四元数的一部分内容,不过那只是笔者对于其本质在空间几何中的一些猜想。
在这里我就重新梳理一遍关于四元数的前世今生(大雾)。
在正式说明之前首先我希望明确一点,不论是用空间向量的方式表述还是用复数表达,他们都表达的是同一事物。
同时复数空间与几何空间也是密不可分并且能够相互联系的。
四元数通常表述为:
a+bi+cj+dk(a,b,c,d∈R)
i2=j2=k2=−1;
ij=−ji=k; jk=−kj=i; ki=−ik=j
以上是四元数的基本规则(之前已经讲解过辣);下面将提到四元数的一些运算法则
定义两个四元数:
q=a+u=a+bi+cj+dk;
p=t+v=t+xi+yj+zk;
其中u表示矢量(b,c,d); v表示矢量(x,y,z)
四元数加法p+q:
p+q=a+t+u+v+a+t+b+x i+c+y j+d+z k;
四元数乘法pq:
pq=at−v∙u+av+tu+v×u;
pq=at−bx−cy−dz+ax+bt+cz−dy i+ay−bz+ct+dx j+(az+dt−cx+by)k
这里应该注意四元数乘法的不可交换性即pq≠qp;
四元数点积p∙q:
p∙q=at+u⋅v=at+bx+cy+dz
p∙q=
p∗q+q∗p
值得注意的是上式的形式有助于分离四元数中的某个元,例如p∙i=x; 四元数的外积:
Outer p,q=p∗q−q∗p
2
Outer p,q=tu−av−v×u;
Outer p,q=tb−ax+cz−dy i+tc−ay−bz+dx j+(td−az−xc+by)k;
好吧我承认这段是百度上抄来的,正确性不明有兴趣的小伙伴可以自己验证
四元数的叉积p×q:
p×q=
pq−qp
p×q=v×u;
四元数转置p−1:
四元数的转置用p−1p=1的方式被定义
p−1=
p∗p⋅p
通过这个定义方式,我们可以知道很多有趣的结论。
例如说我们可以得到p与p∗的模长的关系以及其向量部
分方向的关系。
首先我们看到p−1=p∗
p⋅p
通过之前的学习我们知道p⋅p的结果是一个标量p∙p=a2+b2+
c2+d2=p2;则就有式子p−1=p∗
p 2
成立,通过这一式我们不难理解p−1和p∗之间的关系就是其模长的不
同,综合之前提到的p∙q=p∗q+q∗p
2
我们可以发现p∗p=p∙p说明t∗t−v∗∙v+t∗v+tv∗+v∗×v=tt+
v⋅v若四元数的实部为零且由于式子的值应为一个标量则可以将等式简化为−v∗∙v=v⋅v的形式;分析化简的等式我们不难得出结论;若四元数的实部为零则p∗表示的向量与p表示的向量模长相等方向相反。
再结
合p−1=p∗
p 不难看出在实部为零的前提下p−1表示的向量是一个方向与p相反且模长只有p的1
p
的向量。
四元数的模p(双竖杠表示是为了区别绝对值):
p=p∙p= a2+b2+c2+d2
好了有了上面这些关于四元数的基本性质的数学表达我们就可以进行深入一点的讨论了。
到这里不知道各位看官有没有笔者的这些疑惑。
1.既然四元数的乘法不满足交换律,那么四元数在表示旋转时左乘和右乘又有什么不同呢?
2.四元数和他的逆在旋转中表示的是什么关系?
猜想:1.表示旋转的四元数是否同它的逆是方向相反的同一种旋转,即q pp−1=q是否成立?
2.左乘和右乘是否只是方向相反的同种旋转的,即pqp=q是否成立?
对于第一种猜想的结果是不言而喻的,因为有定义式p−1p=1存在,并且通过之前的性质可
以知道有p−1p=p∗
p2p=p∙p
p2
=p p∗
p2
=pp−1;因此qpp−1=p−1pq=q;同时成立。
由此可知
四元数的逆在表示旋转时就是方向相反的同一种旋转。
至于第二点猜想证明起来要稍微多花点力气了,首先我们设表示向量的四元数q=(0,v);表
示旋转的四元数p=(cosθ,℮0sinθ),同时规定℮0⊥v,并令℮1与℮0, v同时垂直,用表达式表示为℮0v=℮1,℮1℮0=v;
pqp=cosθ+℮0sinθ0,v p
cosθ+℮0sinθ0,v p=(v cosθ+℮0v sinθ)p
(v cosθ+℮0v sinθ)p=(v cosθ+℮1sinθ)cosθ+℮0sinθ
=v cos2θ+v℮0cosθsinθ+℮1sinθcosθ+℮1℮0sin2θ
=v cos2θ−℮1cosθsinθ+℮1sinθcosθ+v sin2θ
=v cos2θ+sin2θ
=0,v
)到了这里我们已经总结出两个规律了,即
可以很容易的吧qpq−1转化成各种形式比如说qpq−1=qqp=pq−1q−1再通过其表示的旋转
含义去理解很容易明白所谓q=(cosθ
2,℮n sinθ
2
)不过是将一次旋转拆成两个相同的部分,用
不同的表达形式(左乘和右乘)施加在同一个向量上达到旋转的目的。
(以上推导只代表笔者的个人意见如果有偏颇之处还望各位看官指出E-mail:gaoqi2357@。
以上推导过程并不涉及严格的数学推导,只为表达笔者个人意见。
特此声明)。