表示旋转变换的参数形式:旋转矩阵,轴角,欧拉角和四元数。
两个坐标系a和b,坐标系b各个坐标轴 b 1 、 b 2 、 b 3 b_1、b_2、b_3 b1、b2、b3在坐标系a中的表示为:
b 1 = R 11 a 1 + R 21 a 2 + R 31 a 3 b_1=R_{11}a_1+R_{21}a_2+R_{31}a_3 b1=R11a1+R21a2+R31a3
b 2 = R 12 a 1 + R 22 a 2 + R 32 a 3 b_2=R_{12}a_1+R_{22}a_2+R_{32}a_3 b2=R12a1+R22a2+R32a3
b 3 = R 13 a 1 + R 23 a 2 + R 33 a 3 b_3=R_{13}a_1+R_{23}a_2+R_{33}a_3 b3=R13a1+R23a2+R33a3
旋转矩阵 R B A R_B^A RBA
R B A = [ b 1 , b 2 , b 3 ] = [ R 11 R 12 R 13 R 21 R 22 R 23 R 31 R 32 R 33 ] R_B^A=[b_1,b_2,b_3]=\begin{bmatrix} R_{11} & R_{12} & R_{13} \\ R_{21} & R_{22} & R_{23} \\ R_{31} & R_{32} & R_{33} \end{bmatrix} RBA=[b1,b2,b3]=⎣⎡R11R21R31R12R22R32R13R23R33⎦⎤
同一点P,在b坐标系下的表示为 P B ( P b 1 , P b 2 , P b 3 ) T P_B(P_{b1},P_{b2},P_{b3})^T PB(Pb1,Pb2,Pb3)T,在a系下的表示为 P A ( P a 1 , P a 2 , P a 3 ) T P_A(P_{a1},P_{a2},P_{a3})^T PA(Pa1,Pa2,Pa3)T,根据坐标的定义有:
P A = P b 1 b 1 + P b 2 b 2 + P b 3 b 3 = R B A P B P_{A} = P_{b1}b_1 + P_{b2}b_2 +P_{b3}b_3=R_B^AP_B PA=Pb1b1+Pb2b2+Pb3b3=RBAPB
总结: 旋 转 矩 阵 R B A 每 一 列 代 表 B 坐 标 系 的 坐 标 轴 在 A 系 中 的 表 示 , 也 表 示 B 坐 标 系 在 A 系 中 的 旋 转 , 同 时 该 旋 转 矩 阵 能 将 B 系 的 坐 标 点 转 换 到 A 系 旋转矩阵R_B^A每一列代表B坐标系的坐标轴在A系中的表示,也表示B坐标系在A系中的旋转,同时该旋转矩阵能将B系的坐标点转换到A系 旋转矩阵RBA每一列代表B坐标系的坐标轴在A系中的表示,也表示B坐标系在A系中的旋转,同时该旋转矩阵能将B系的坐标点转换到A系
旋转矩阵的性质:
1,正交性
2,乘法封闭
3,旋转矩阵的逆也是旋转矩阵
4, R R T = I RR^T=I RRT=I
1,绕z轴旋转 ψ \psi ψ角:
R z , ψ = [ cos ( ψ ) − sin ( ψ ) 0 sin ( ψ ) cos ( ψ ) 0 0 0 1 ] R_{z,\psi}=\begin{bmatrix} \cos (\psi) & -\sin (\psi) & 0 \\ \sin (\psi) & \cos(\psi) & 0 \\ 0& 0& 1\end{bmatrix} Rz,ψ=⎣⎡cos(ψ)sin(ψ)0−sin(ψ)cos(ψ)0001⎦⎤
R z , ψ R_{z,\psi} Rz,ψ 可以将变换后坐标系(图中蓝色)中的点转换到原来坐标系(图中红色)中。
2,绕y轴旋转 θ \theta θ角:
R y , θ = [ cos ( θ ) 0 sin ( θ ) 0 1 0 − sin ( θ ) 0 cos ( θ ) ] R_{y,\theta}=\begin{bmatrix} \cos (\theta) & 0 & \sin (\theta) \\ 0 & 1 & 0 \\ -\sin (\theta)& 0& \cos (\theta) \end{bmatrix} Ry,θ=⎣⎡cos(θ)0−sin(θ)010sin(θ)0cos(θ)⎦⎤
3,绕x旋转 ϕ \phi ϕ角度
R x , ϕ = [ 1 0 0 0 cos ( ϕ ) − sin ( ϕ ) 0 sin ( ϕ ) cos ( θ ) ] R_{x,\phi}=\begin{bmatrix} 1 & 0 & 0\\ 0 & \cos (\phi) & -\sin (\phi) \\ 0& \sin (\phi)& \cos (\theta) \end{bmatrix} Rx,ϕ=⎣⎡1000cos(ϕ)sin(ϕ)0−sin(ϕ)cos(θ)⎦⎤
4,符合旋转:右乘联体左乘基(联体是指旋转后的坐标系,基是指开始时候的固定坐标系)
5,向量旋转:
总结:旋转矩阵可以表示将A系中的向量、点旋转到新的位置,也可以表示从A系到B系的旋转,还可以将B系的坐标点转换到A系下。
6,齐次变换:
P A = R B A P B + O B A P_A=R_B^AP_B+O_B^A PA=RBAPB+OBA
齐次形式 [ P A 1 ] = T B A P B = [ R B A O B A 0 1 ] \begin{bmatrix} P_A\\1\end{bmatrix}=T_B^AP_B=\begin{bmatrix} R_B^A&O_B^A\\0&1\end{bmatrix} [PA1]=TBAPB=[RBA0OBA1]
欧拉角:任何旋转都可以用3个线性无关轴的连续旋转来描述。
欧拉角存在的奇异值-万向节死锁
为了避免万向节死锁问题,工程师发明了四元数来表示旋转
四元数定义: q = [ a , b , c , d ] = [ cos θ 2 , r sin θ 2 ] q=[a,b,c,d]=[\cos \frac{\theta}{2},r\sin \frac {\theta}{2}] q=[a,b,c,d]=[cos2θ,rsin2θ],a为实部,b,c,d为虚部。
r 、 θ r、\theta r、θ分别表示旋转轴和旋转角度
共轭: q ˉ = [ cos θ 2 , − r sin θ 2 ] \bar{q}=[\cos \frac{\theta}{2},-r\sin \frac {\theta}{2}] qˉ=[cos2θ,−rsin2θ]
模: ∣ ∣ q ∣ ∣ = a 2 + b 2 + c 2 + d 2 = 1 ||q||=\sqrt{a^2+b^2+c^2+d^2}=1 ∣∣q∣∣=a2+b2+c2+d2=1
逆: q − 1 = q ˉ ∣ ∣ q ∣ ∣ q^{-1}=\frac {\bar q}{||q||} q−1=∣∣q∣∣qˉ
乘法:
用四元数对向量进行旋转:
p = [ x , y , z ] T , p a = [ 0 , x , y , z ] T p=[x,y,z]^T,p_a=[0,x,y,z]^T p=[x,y,z]T,pa=[0,x,y,z]T
p ′ = R p = q ∗ p a ∗ q − 1 p^{'}=Rp=q*p_a*q^{-1} p′=Rp=q∗pa∗q−1
四元数与旋转矩阵: