文章目录
第 3 讲 三维空间刚体运动
3.1 旋转矩阵
3.1.1 点、向量和坐标系
位置=坐标,姿态=向量
三维空间中的某个点的坐标也可以用 R 3 \mathbb{R}^3 R3 来描述。假设在这个线性空间中,找到了该空间的一组基 ( e 1 , e 2 , e 3 ) \left(e_1,e_2,e_3\right) (e1,e2,e3),那么,任意向量 a a a 在这组基下就有一个坐标: a = [ e 1 , e 2 , e 3 ] [ a 1 a 2 a 3 ] = a 1 e 1 + a 2 e 2 + a 3 e 3 a=\left[e_1,e_2,e_3\right]\begin{bmatrix}a_1 \\a_2\\a_3 \end{bmatrix}=a_1e_1+a_2e_2+a_3e_3 a=[e1,e2,e3]⎣⎡a1a2a3⎦⎤=a1e1+a2e2+a3e3这里的 ( a 1 , a 2 , a 3 ) T \left(a_1,a_2,a_3\right)^T (a1,a2,a3)T 称为 a a a 在此基下的坐标。
通常意义下的内积可以写成 a ⋅ b = a T b = ∑ i = 1 3 a i b i = ∣ a ∣ ∣ b ∣ c o s < a , b > . a\cdot{b}=a^Tb=\sum_{i=1}^3a_ib_i=|a||b|cos\left<a,b\right>. a⋅b=aTb=i=1∑3aibi=∣a∣∣b∣cos⟨a,b⟩.其中 < a , b > \left<a,b\right> ⟨a,b⟩ 指向量 a , b a,b a,b 的夹角。
外积可以写成这个样子: a × b = [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] b = a ∧ b . a\times{b}= \begin{bmatrix}0 & -a_3 & a_2 \\a_3 & 0 & -a_1 \\ -a_2 & a_1 & 0 \end{bmatrix}b=a^{\wedge}b. a×b=⎣⎡0a3−a2−a30a1a2−a10⎦⎤b=a∧b.外积的结果是一个向量,它的方向垂直于这个向量,大小为 ∣ a ∣ ∣ b ∣ s i n < a , b > |a||b|sin\left<a,b\right> ∣a∣∣b∣sin⟨a,b⟩,是两个向量张成的四边形的有向面积。这里使用 ∧ ^\wedge ∧ 符号,将 a a a 写成一个矩阵,这个矩阵事实上是一个反对称矩阵。这样子外积 a × b a\times{b} a×b 就可以表示为矩阵和向量的乘法 a ∧ b a^{\wedge}b a∧b ,把它变成了线性运算。此处的矩阵和反对称矩阵是一一对应的。
3.1.2 坐标系间的欧式变换
如果考虑到运动的机器人,常见的做法是设定一个惯性坐标系(或者叫世界坐标系,worldmap)。那么,相机视野中的某个向量 p p p ,它在相机坐标系下的坐标为 p c p_c pc ,而从世界坐标系下看,它的坐标为 p w p_w pw ,那么,这两个坐标之间是如何转换的呢?我们可以使用一个矩阵 T T T 来描述机器人位姿和世界坐标系之间的变换关系。
两个坐标系之间的运动由一个旋转加上一个平移组成,这种运动称为刚体运动。在刚体运动过程中,同一个向量在各个坐标系下的长度和夹角都不会发生变化。可以说相机坐标系和世界坐标系之间差了一个欧式变换(Euclidean Transform)
欧式变换由旋转和平移组成。由于一个向量在欧式变换中自身并没有发生变换,故可以得到在两个坐标系下不同的坐标,有: [ e 1 , e 2 , e 3 ] [ a 1 a 2 a 3 ] = [ e 1 ′ , e 2 ′ , e 3 ′ ] [ a 1 ′ a 2 ′ a 3 ′ ] . \left[e_1,e_2,e_3\right]\begin{bmatrix}a_1 \\a_2\\a_3 \end{bmatrix}=\left[e_1',e_2',e_3'\right]\begin{bmatrix}a_1' \\a_2'\\a_3' \end{bmatrix}. [e1,e2,e3]⎣⎡a1a2a3⎦⎤=[e1′,e2′,e3′]⎣⎡a1′a2′a3′⎦⎤.对上述等式的左右两边同时左乘 [ e 1 T e 2 T e 3 T ] \begin{bmatrix}e_1^T \\e_2^T\\e_3^T \end{bmatrix} ⎣⎡e1Te2Te3T

本文深入探讨了三维空间中的刚体运动,包括旋转矩阵、旋转向量、欧拉角和四元数等多种旋转表示方法及其相互转换。重点介绍了四元数在表示旋转方面的优势,并详细阐述了从四元数到其他旋转表示形式的转换公式。
最低0.47元/天 解锁文章
432

被折叠的 条评论
为什么被折叠?



