三维空间刚体运动
旋转矩阵
点和向量,坐标系
a=[e1,e2,e3]a1a2a3=a1e1+a2e2+a3e3
(e1,e2,e3)为线性空间的基
左手系和右手系

对于a,b∈R3,内积可以写成a⋅b=aTb=i=1∑3aibi=∣a∣∣b∣cos<a,b>
外积可以写成
a×b=ia1b1ja2b2ka3b3=(a2b3−a3b2)i+(a3b1−a1b3)j+(a1b2−a2b1)k 结果用向量表示就是a2b3−a3b2a3b1−a1b3a1b2−a2b1
所以
a×b=0a3−a2−a30a1a2−a10b≜a∧b
引入符号≜,把a 写成一个反对称矩阵(Skew-symmetric),这样可以把外积a×b写成矩阵与向量的乘法a∧b,把它变成线性运算。
外积只对三维向量存在定义,还能用外积表示向量的旋转
坐标系间的欧式变换
两个坐标系之间的旋转关系,再加上平移,统称为坐标系之间的变换关系,在机器人的运动过程中,常见的做法是设定一个惯性坐标系(世界坐标系),可以认为它是固定不动的,如下图中的xw,yw,zw定义的坐标系。同时,相机或者机器人则是一个移动的坐标系,例如xc,yc,zc定义的坐标系

相机视野中某个向量p,坐标为pc,而从世界坐标系下看,他的坐标是pw。这两个坐标的转换需要先得到该点针对机器人坐标系的坐标值,再根据机器人的位姿转换到世界坐标系中,这个转换关系由一个矩阵T来描述
相机运动是一个刚体运动,它保证了同一个向量在各个坐标系下的长度和夹角都不会发生变化。这种变换称为欧式变换
假设某个单位正交基(e1,e2,e3)经过一次旋转变成了(e1′,e2′,e3′)。那么对于同一个向量a(注意这个向量并没有随着坐标系的旋转而发生运动),它在两个坐标系下的坐标为[a1,a2,a3]T和[a1′,a2′,a3′]T
根据坐标的定义,有:
[e1,e2,e3]a1a2a3a1a2a3=[e1′,e2′,e3′]a1′a2′a3′=e1Te1′e1Te1′e1Te1′e1Te1′e1Te1′e1Te1′e1Te1′e1Te1′e1Te1′a1′a2′a3′≜Ra′ R描述了旋转本身,称为旋转矩阵
旋转矩阵是行列式为1的正交矩阵,反之,行列式为1的正交矩阵也是一个旋转矩阵
旋转矩阵的集合定义如下:
SO(n)={R∈Rn×n∣RRT=I,det(R)=1} SO(n)是特殊的正交群,旋转矩阵可以描述相机的旋转
因为旋转矩阵为正交阵,它的逆描述了一个相反的旋转,即
a′=R−1a=RTa 在世界坐标系中的向量a,经过一次旋转R和一个平移t后,得到a′,有
a′=Ra+t 变换矩阵与齐次坐标系
引入齐次坐标和变换矩阵重写式以解决多次变换后过于复杂的问题
[a′1]=[ROTt1][a1]≜T[a1] 变换矩阵T,左上角为旋转矩阵,右侧为平移向量,左下角为0向量,右下角为1。这种矩阵又称为特殊欧氏群(Special Euclidean Group)
SE(3)={T=[ROTt1]∈R4×4∣R∈SO(3),t∈(R)3} 该矩阵的逆表示一个反向的变换
T−1=[RTOT−RTt1] 四元数
复平面(Complex plane)
旋转 (opens new window)
四元数(Quaternion) 是Hamilton找到的一种扩展的复数。它既是紧凑的,也没有奇异性
一个四元数 q 拥有一个实部和三个虚部
q=q0+q1i+q2j+q3k 三个虚部i,j,k满足的关系:
⎩⎨⎧i2=j2=k2=−1ij=k,ji=−kjk=i,kj=−iki=j,ik=−j 四元数的其他表达方式,s为实部,v为虚部
q=[s,v],s=q0∈R,v=[q1,q2,q3]T∈R3 如果一个四元数虚部为 0,称之为实四元数。反之,若它的实部为 0,称之为虚四元数