SLAM-14讲第三章_2

本文详细讲解了旋转向量、轴角法、欧拉角和四元数在表示三维旋转中的应用,包括它们之间的转换公式,以及欧拉角的局限性和四元数的优劣势。重点介绍了四元数的运算、与旋转矩阵的关系,并展示了如何用四元数进行点的旋转和转换到旋转矩阵的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

旋转向量

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+(1cosθ)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=0cbc0aba0
v∧b=v×bv^{\wedge} b=v \times bvb=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θ),nxsin(2θ),nysin(2θ),nzsin(2θ)]

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

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

如何用四元数表示旋转

三维点 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=qpq1
最后把q′的虚部取出来就可以了,就是转换后的坐标点q'的虚部取出来就可以了,就是转换后的坐标点q


四元数变旋转矩阵

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

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

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值