刚体变换
定义
一个映射g:R3→R3如果满足一下两个特性,则是刚体变换
1. 长度保持不变:∥g(p)−g(q)=∥p−q∥, 所有p,q∈R3
2. 叉乘保持不变:g∗(v×w)=g∗(v)×g∗(w),所有向量v,w∈R3
旋转矩阵
A坐标系
XA=[1 0 0]T
YA=[0 1 0]T
在A坐标系下的B坐标系
XB=cosθXA+sinθYA=[cosθ 0 0]T+[0 sinθ 0]T=[cosθ sinθ 0]T
YB=−sinθXA+cosθYA=[−sinθ 0 0]T+[0 cosθ 0]T=[−sinθ cosθ 0]T
构造矩阵
将XB YB放到一个矩阵里Rab=[XB YB],将之称为旋转矩阵
意义
将一个点的坐标值在不同的基底下进行变换
P点在B坐标系下为PB(a,b),可以进行一下变换
P=[XB YB][ab] =aXB+bYB =(cosθXA+sinθYA)a+(−sinθXA+cosθYA)b =[XA YA][cosθsinθ−sinθcosθ][ab] =[XA YA]Rab[ab]
可以看到,我们把基底从[XB YB]换成了[XA YA],也就是同一个点,在B坐标系下的坐标为[a b]T,在A坐标系下的坐标为R[a b]T,可以理解为是空间中同一个点在不同的坐标系中(坐标系旋转了)的表示,也可以理解为同一个坐标系下,是点在运动(假设坐标系没动,那么动的就是点)。
平移变换
刚体变换除了旋转外还有平移运动,假设变换后的坐标系B的原点在原来坐标系A下为PAB=[x1 y1]T则
PA=RABPB+PAB
结合以上的推导,我们可以将刚体变换写成齐次坐标的形式
PA=[RAB0PAB1][PB1]
以上的推导同样可以拓展到三维空间里
绕Z轴旋转的旋转矩阵
RZ(θ)=⎣⎡cosθsinθ0−sinθcosθ0001⎦⎤
绕Y轴旋转的旋转矩阵
RY(θ)=⎣⎡cosθ0−sinθ010sinθ0cosθ⎦⎤
绕X轴旋转的旋转矩阵
RX(θ)=⎣⎡1000cosθsinθ0−sinθcosθ⎦⎤