旋转向量

1. 轴角法

用一个轴绕着一定角度旋转表示旋转变换
轴角法表示:(x,y,z,θ)(x,y,z,\theta)(x,y,z,θ)
其中包含两个部分:

  • 轴:(x,y,z)(x,y,z)(x,y,z)
  • 角度:θ\thetaθ

2. 旋转向量

  1. 轴角法的轴:(x,y,z)(x,y,z)(x,y,z)方向的单位向量n⃗\vec nn
  2. 轴角法的角度:θ\thetaθ
    旋转向量如下:
    (xiθ,yiθ,ziθ)(x^i \theta,y^i \theta,z^i \theta)(xiθ,yiθ,ziθ)

旋转向量与旋转矩阵之间的转换

R=cos⁡θI+(1−cosθ)nnT+sinθn∧ R=\cos\theta I+(1-cos\theta)n n^T+sin \theta n^{\wedge}R=cosθI+(1−cosθ)nnT+sinθn∧
通过以上公式就可以获得旋转矩阵与旋转向量的转换。
同理反向公式:
θ=arccostr(R)−12\theta=arccos \frac{tr(R)-1}{2}θ=arccos2tr(R)−1​
Rn=nRn=nRn=n
因此对应于特征值为1的特征向量
这里介绍下反对称化符号^:
v=[a,b,c]v=[a,b,c]v=[a,b,c]
v∧=[0−cbc0−a−ba0]v^{\wedge} = \left[\begin{matrix} 0 &-c&b \\ c&0&-a \\ -b&a&0 \end{matrix}\right]v∧=⎣⎡​0c−b​−c0a​b−a0​⎦⎤​
v∧b=v×bv^{\wedge} b=v \times bv∧b=v×b


欧拉角

按固定和相对分类

  • 固定轴旋转,左乘
  • 相对轴旋转,右乘
  • 按不同轴分类(roll-z,pitch-y,yaw-x)

XYZ

  • YZY
  • ZYZ
  • ZYX
  • 等
    欧拉角关于万向锁的问题,欧拉角比较直观,但是由于这个万向锁的问题,导致相关的迭代比较困难,因此在计算的时候,一般不用欧拉角,欧拉角一般用于输出和测试中,供认测试观看。

四元数

四元数理解相对比较困难,我们记住一些转换既可以了。

  • 欧拉角和旋转矩阵带有奇异性(如万象锁)

  • 所以四元数的优势就出来了(但是四元数不直观阿,但是没有奇异性导致他计算比较有优势)
    q=[cos⁡(θ2),nxsin⁡(θ2),nysin⁡(θ2),nzsin⁡(θ2)] q=[\cos(\frac{\theta}{2}),n_x\sin(\frac{\theta}{2}),n_y\sin(\frac{\theta}{2}),n_z\sin(\frac{\theta}{2})]q=[cos(2θ​),nx​sin(2θ​),ny​sin(2θ​),nz​sin(2θ​)]

  • 其中nx,ny,nzn_x,n_y,n_znx​,ny​,nz​为轴角法中的轴单位向量,θ\thetaθ为旋转角

下面进一步的介绍四元数
  1. 加法和减法
  2. 乘法
  3. 模长
    1. 模长
    2. 两模长乘法公式
  4. 共厄
    1. 共厄公式
    2. 共厄和自己相乘
  5. 逆
    1. 逆的公式
    2. 逆与本身相乘
    3. 括号逆
  6. 数乘

如何用四元数表示旋转

三维点 p=[x,y,z]p=[x,y,z]p=[x,y,z]:对应的四元数[0,x,y,z]T[0,x,y,z]^T[0,x,y,z]T
三维点p′=[x′,y′,z′]p'=[x',y',z']p′=[x′,y′,z′]:对应的四元数[0,x,y,z]T[0,x,y,z]^T[0,x,y,z]T
q是一个单位四元数,它指定了旋转,那么转换公式如下:
p′=qpq−1 p'=qpq^{-1}p′=qpq−1
最后把q′的虚部取出来就可以了,就是转换后的坐标点q'的虚部取出来就可以了,就是转换后的坐标点q′的虚部取出来就可以了,就是转换后的坐标点


四元数变旋转矩阵

q+=[s−vTvsI+v∧]q^+=\left[\begin{matrix} s & -v^T \\ v & sI+v^\wedge \end{matrix}\right]q+=[sv​−vTsI+v∧​]
q⊕=[s−vTvsI−v∧] q^⊕= \left[\begin{matrix} s& -v^T \\ v& sI-v^{\wedge} \end{matrix}\right]q⊕=[sv​−vTsI−v∧​]

[100TR]=q+q−1⊕\left[\begin{matrix} 1 & 0 \\ 0^T & R \end{matrix}\right]=q^+ q^{-1^⊕}[10T​0R​]=q+q−1⊕

R=vvT+s2I+2sv∧+(v∧)2R=v v^T +s^2 I+2sv^{\wedge}+(v^{\wedge})^2R=vvT+s2I+2sv∧+(v∧)2

相似-仿射-射影变换

  1. 欧式变换
    正常变换,旋转加平移
  2. 相似变换
    可大可小,但体积比保持不变,形状变了
  3. 仿射变换
    可大可小,不但体积比不变,形状也可以变换,但平行性保持不变
  4. 射影变换
    可大可小,都变了
    image
Logo

聚焦RDK与具身智能,汇集机器人开发教程、开源案例和技术交流

更多推荐