旋转矩阵、旋转向量、欧拉角、四元数【SLAM】

本文探讨了三维旋转的不同表示形式,包括n维旋转矩阵的定义、SO(n)特殊正交群、旋转向量(轴角)的使用及其与矩阵之间的转换,以及欧拉角和四元数(特别是JPL与Hamilton四元数)的优势和奇异性。着重介绍了四元数在紧凑表示旋转并避免奇异性中的作用。

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

1、旋转矩阵

nnn维旋转矩阵的集合定义:
SO(n)={R∈Rn×n∣RRT=I,det(R)=1}SO(n) = \{ R \in \mathbb{R}^{n \times n} \mid RR^{T} = I, det(R) = 1 \}SO(n)={RRn×nRRT=I,det(R)=1}
SO(n)SO(n)SO(n)是特殊正交群(Special Orthogonal Group)。RRR是正交矩阵,满足RRT=IRR^{T} = IRRT=I。行列式为111是人为定义的,实际行列式可以为±1\pm1±1,行列式为−1-11的称为瑕旋转,即一次旋转加一次反射,三维矩阵行列式的意义是变换后的体积与原体积的比,行列式为111说明体积不变,旋转变换就是体积不变。

缺点:
1、SO(3)SO(3)SO(3)的旋转矩阵有999个量,一次旋转只有333个自由度,所以这种表达方式是冗余的。
2、旋转矩阵自身带有约束,必须满足正交矩阵和行列式为111,在优化旋转矩阵的情况中给求解带来困难。

2、旋转向量

用旋转轴和旋转角来表示一个旋转。使用一个向量,方向与旋转轴一致,长度等于旋转角,称为旋转向量,或轴角/角轴(Axis-Angle)。

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

θn\theta \mathbf{n}θn为旋转向量,转换为旋转矩阵用罗德里格斯公式
R=cosθI+(1−cosθ)nnT+sinθn∧R = cos\theta I + (1 - cos\theta)nn^{T} + sin\theta n^{\wedge}R=cosθI+(1cosθ)nnT+sinθn

旋转矩阵RRR转换为旋转向量:
θ=arccostr(R)−12\theta = arccos \frac{tr(R) - 1}{2}θ=arccos2tr(R)1
n\mathbf{n}n是矩阵RRR特征值为111的特征向量。

3、欧拉角

把一个旋转分解成三次绕不同的轴旋转。
缺点:万向锁问题,例如ZYX欧拉角,Y为90度时,Z和X在旋转时是同一个直线上的轴,使系统丢失一个自由度。理论上可以证明,只要想用3个实数表达三维旋转就会碰到奇异性问题,旋转向量也具有奇异性,发生在转角θ\thetaθ超过2π2\pi2π而产生周期性时。

4、四元数

旋转矩阵表示有冗余性,旋转向量和欧拉角表示具有奇异性。四元数是紧凑的,且没有奇异性。四元数分为JPL四元数和Hamilton四元数,JPL四元数是ij=−kij=-kij=k,Hamilton四元数是ij=kij=kij=k,这里用Hamilton四元数。

三维旋转用单位四元数表示。
三维空间点ppp用虚四元数表示,给一个旋转变换qqq,结果为:
p′=qpq−1p' = qpq^{-1}p=qpq1
结果一定是虚四元数。

四元数到旋转矩阵的变换

单位四元数q=[s,vT]Tq=[s, \mathbf{v}^{T}]^{T}q=[s,vT]T,旋转矩阵为:
R=vvT+s2I+2sv∧+(v∧)2R=\mathbf{v}\mathbf{v}^{T} + s^{2}I + 2s\mathbf{v}^{\wedge} + (\mathbf{v}^{\wedge})^{2}R=vvT+s2I+2sv+(v)2

四元数到旋转向量的变换

θ=2arccos(s)\theta = 2arccos(s)θ=2arccos(s)
n=vsinθ2\mathbf{n} = \frac{\mathbf{v}}{sin \frac{\theta}{2}}n=sin2θv

旋转向量到四元数的变换

q=[cosθ2,nTsinθ2]Tq = [cos \frac{\theta}{2}, \mathbf{n}^{T} sin \frac{\theta}{2}]^{T}q=[cos2θ,nTsin2θ]T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值