坐标与坐标系

这里所考虑的3维坐标系由原点、3个相互垂直、尺度一致的坐标轴的单位向量确定。
存在唯一不变的世界坐标系 ( o x w , o y w , o z w ) 、 ( e x w , e y w , e z w ) (ox_w,oy_w,oz_w)、(ex_w,ey_w,ez_w) (oxw,oyw,ozw)(exw,eyw,ezw)。点的位置由世界坐标系下的坐标 ( x w , y w , z w ) (x_w,y_w,z_w) (xw,yw,zw)确定,位置为 ( x w ∗ e x w , y w ∗ e y w , z w ∗ e z w ) (x_w*ex_w,y_w*ey_w,z_w*ez_w) (xwexw,yweyw,zwezw)
其他坐标系由世界坐标系进行平移、旋转得到。
平移容易理解,即 ( o x l − o x w , o y l − o y w , o z l − o z w ) (ox_l-ox_w,oy_l-oy_w,oz_l-oz_w) (oxloxw,oyloyw,ozlozw)
旋转的表达就比较多了。

点的旋转

在这里插入图片描述

v v v绕着一个方向 u u u旋转 θ \theta θ角度,变成了 v θ v_{\theta} vθ
v θ = v cos ⁡ θ + ( u × v ) sin ⁡ θ + u ( u ⋅ v ) ( 1 − cos ⁡ θ ) \boldsymbol{v}_{\theta}=\boldsymbol{v} \cos \theta+(\boldsymbol{u} \times \boldsymbol{v}) \sin \theta+\boldsymbol{u}(\boldsymbol{u} \cdot \boldsymbol{v})(1-\cos \theta) vθ=vcosθ+(u×v)sinθ+u(uv)(1cosθ)

有没有一个坐标系 o x y z i oxyz_i oxyzi,旋转后的点坐标就是 v v v?是存在这样的坐标系的。这样就存在点旋转与坐标系旋转(当前坐标系旋转到 o x y z r oxyz_r oxyzr)的“对偶”分析。

寻找与点旋转“对偶”的坐标系旋转

e x w 、 e y w 、 e z w ex_w、ey_w、ez_w exweywezw旋转后的向量为 e x r 、 e y r 、 e z r ex_r、ey_r、ez_r exreyrezr,则在以 e x r 、 e y r 、 e z r ex_r、ey_r、ez_r exreyrezr为基向量的坐标系中,旋转后的点坐标是 v v v
两组坐标基向量存在如下关系, R R R的旋转矩阵:
( e x r , e y r , e z r ) = ( e x w , e y w , e z w ) R (ex_r,ey_r,ez_r)=(ex_w,ey_w,ez_w)R (exr,eyrezr)=(exw,eywezw)R
根据上式,基向量的特征,易证 R R R是正交矩阵,行列式为+1。
记一个点在两个坐标系下的坐标分别是 ( x w , y w , z w ) T 、 ( x r , y r , z r ) T (x_w,y_w,z_w)^T、(x_r,y_r,z_r)^T (xw,yw,zw)T(xr,yr,zr)T,则
( e x w , e y w , e z w ) ∗ ( x w , y w , z w ) T = ( e x r , e y r , e z r ) ∗ ( x r , y r , z r ) T = ( e x w , e y w , e z w ) ∗ R ( x r , y r , z r ) T (ex_w,ey_w,ez_w)*(x_w,y_w,z_w)^T=(ex_r,ey_r,ez_r)*(x_r,y_r,z_r)^T\\ =(ex_w,ey_w,ez_w)*R(x_r,y_r,z_r)^T (exw,eywezw)(xw,yw,zw)T=(exr,eyrezr)(xr,yr,zr)T=(exw,eywezw)R(xr,yr,zr)T
所以,
( x w , y w , z w ) T = R ( x r , y r , z r ) T (x_w,y_w,z_w)^T=R(x_r,y_r,z_r)^T (xw,yw,zw)T=R(xr,yr,zr)T
v θ = R v v_\theta=Rv vθ=Rv

旋转矩阵的欧拉角表示

在这里插入图片描述
用 z-y’-x’'的欧拉角表示,其中三个旋转角度也叫作yaw(航向角),pitch(俯仰角)和roll(横滚角)。

  1. z轴旋转,使得y'轴在另一个坐标的zy平面;
  2. y'轴旋转,使得z''轴在另一个坐标的zy平面。且x''与另一个坐标系的x轴重合;
  3. x''轴旋转,使得y''、z''与另一个坐标系重合
    在这里插入图片描述
    R ( ψ , θ , ϕ ) = R z ( ψ ) R y ( θ ) R x ( ϕ ) \mathbf{R}(\psi, \theta, \phi)=\mathbf{R}_{z}(\psi) \mathbf{R}_{y}(\theta) \mathbf{R}_{x}(\phi) R(ψ,θ,ϕ)=Rz(ψ)Ry(θ)Rx(ϕ)

点旋转与旋转矩阵的转换

点旋转的表达是 ( u , θ ) (u,\theta) (u,θ),旋转矩阵的表达是 R R R,表征了两个坐标系的转换。
根据点旋转的描述,来构造 R R R
需要一个中间的坐标系 o x y z ′ oxyz' oxyz来过渡, z ′ z' z与旋转轴重合。这样,就是绕z'轴旋转 θ \theta θ,坐标变换关系易得;
o x y z oxyz oxyz o x y z ′ oxyz' oxyz的左边变化关系,也易得。

根据 R R R来构造 ( u , θ ) (u,\theta) (u,θ)o-x-x'o-y-y'o-z-z'的中垂面的交线就是旋转轴。旋转角度易得。

旋转的李代数表示

知识1:点旋转,也叫罗戈里格斯旋转
知识2:矩阵的指数运算
exp ⁡ ( ϕ ∧ ) = ∑ n = 0 ∞ 1 n ! ( ϕ ∧ ) n \exp(\mathbf{\phi}^\wedge) = \sum\limits_{n = 0}^\infty {\frac{1}{{n!}}{ (\mathbf{\phi}^{\wedge})^n}} exp(ϕ)=n=0n!1(ϕ)n
知识3:反对称矩阵的性质
ϕ ϕ T = ϕ ∧ ϕ ∧ + ∥ ϕ ∥ 2 I 3 × 3 ϕ ∧ ϕ ∧ ϕ ∧ = − ϕ ∧ ϕ × v = ϕ ∧ v \mathbf{\phi} \mathbf{\phi}^T = \mathbf{\phi}^{\wedge} \mathbf{\phi}^{\wedge} + \| \mathbf{\phi} \|^2 \mathbf{I}_{3 \times 3}\\ \mathbf{\phi}^{\wedge} \mathbf{\phi}^{\wedge} \mathbf{\phi}^{\wedge} = - \mathbf{\phi}^{\wedge}\\ \mathbf{\phi}×v = \mathbf{\phi}^{\wedge}v ϕϕT=ϕϕ+ϕ2I3×3ϕϕϕ=ϕϕ×v=ϕv

点旋转 ( u , θ ) (u, \theta) (u,θ)
exp ⁡ ( ϕ ∧ ) = exp ⁡ ( θ u ∧ ) = ∑ n = 0 ∞ 1 n ! ( θ u ∧ ) n = I + θ u ∧ + 1 2 ! θ 2 u ∧ u ∧ + 1 3 ! θ 3 u ∧ u ∧ u ∧ + 1 4 ! θ 4 ( u ∧ ) 4 + . . . = u u T − u ∧ u ∧ + θ u ∧ + 1 2 ! θ u ∧ u ∧ − 1 3 ! θ 3 u ∧ + 1 4 ! θ 4 ( u ∧ ) 4 + . . . = u u T + ( θ − 1 3 ! θ 3 + 1 5 ! θ 5 − . . . ) u ∧ − ( 1 − 1 2 ! θ 2 + 1 4 ! θ 4 − . . . ) u ∧ u ∧ = u ∧ u ∧ + I + sin ⁡ θ u ∧ − cos ⁡ θ u ∧ u ∧ = ( 1 − cos ⁡ θ ) u ∧ u ∧ + I + sin ⁡ θ u ∧ = cos ⁡ θ I + ( 1 − cos ⁡ θ ) u u T + sin ⁡ θ u ∧ \begin{align*} \exp \left( {{\mathbf{\phi} ^ \wedge }} \right) &= \exp \left( {\theta {\mathbf{u}^ \wedge }} \right) = \sum\limits_{n = 0}^\infty {\frac{1}{{n!}}{{\left( {\theta {\mathbf{u}^ \wedge }} \right)}^n}} \\ &= \mathbf{I} + \theta {\mathbf{u}^ \wedge } + \frac{1}{{2!}}{\theta ^2}{\mathbf{u}^ \wedge }{\mathbf{u}^ \wedge } + \frac{1}{{3!}}{\theta ^3}{\mathbf{u}^ \wedge }{\mathbf{u}^ \wedge }{\mathbf{u}^ \wedge } + \frac{1}{{4!}}{\theta ^4}{\left( {{\mathbf{u}^ \wedge }} \right)^4} + ...\\ &= \mathbf{u} {\mathbf{u}^T} - {\mathbf{u}^ \wedge }{\mathbf{u}^ \wedge } + \theta {\mathbf{u}^ \wedge } + \frac{1}{{2!}}\theta {\mathbf{u}^ \wedge }{\mathbf{u}^ \wedge } - \frac{1}{{3!}}{\theta ^3}{\mathbf{u}^ \wedge } + \frac{1}{{4!}}{\theta ^4}{\left( {{\mathbf{u}^ \wedge }} \right)^4} + ...\\ &= \mathbf{u}{\mathbf{u}^T} + \left( {\theta - \frac{1}{{3!}}{\theta ^3} + \frac{1}{{5!}}{\theta ^5} - ...} \right){\mathbf{u}^ \wedge } - \left( {1 - \frac{1}{{2!}}{\theta ^2} + \frac{1}{{4!}}{\theta ^4} - ...} \right){\mathbf{u}^ \wedge }{\mathbf{u}^ \wedge }\\ &= {\mathbf{u}^ \wedge }{\mathbf{u}^ \wedge } + \mathbf{I} + \sin \theta {\mathbf{u}^ \wedge } - \cos \theta {\mathbf{u}^ \wedge }{\mathbf{u}^ \wedge }\\ &= (1 - \cos \theta ){\mathbf{u}^ \wedge }{\mathbf{u}^ \wedge } + I + \sin \theta {\mathbf{u}^ \wedge }\\ &= \cos \theta \mathbf{I} + (1 - \cos \theta )\mathbf{u}{\mathbf{u}^T} + \sin \theta {\mathbf{u}^ \wedge } \\ \end{align*} exp(ϕ)=exp(θu)=n=0n!1(θu)n=I+θu+2!1θ2uu+3!1θ3uuu+4!1θ4(u)4+...=uuTuu+θu+2!1θuu3!1θ3u+4!1θ4(u)4+...=uuT+(θ3!1θ3+5!1θ5...)u(12!1θ2+4!1θ4...)uu=uu+I+sinθucosθuu=(1cosθ)uu+I+sinθu=cosθI+(1cosθ)uuT+sinθu

v θ = v cos ⁡ θ + ( u × v ) sin ⁡ θ + u ( u ⋅ v ) ( 1 − cos ⁡ θ ) = exp ⁡ ( θ u ∧ ) ∗ v = R v \boldsymbol{v}_{\theta}=\boldsymbol{v} \cos \theta+(\boldsymbol{u} \times \boldsymbol{v}) \sin \theta+\boldsymbol{u}(\boldsymbol{u} \cdot \boldsymbol{v})(1-\cos \theta)=\exp (\theta{\mathbf{u}^ \wedge })*v=Rv vθ=vcosθ+(u×v)sinθ+u(uv)(1cosθ)=exp(θu)v=Rv

李代数表示的优势在于求导优化。可以通过指数展开,舍弃高次方项,推导出简洁的线性公式。
核心是用李代数形式的旋转来表示这次迭代优化要得到的微量旋转, R ∗ e x p ( θ u ∧ ) R*exp(\theta u^{\wedge}) Rexp(θu) e x p ( θ u ∧ ) ∗ R exp(\theta u^{\wedge})*R exp(θu)R

旋转描述

旋转矩阵

每个旋转有唯一的旋转矩阵。
默认,x->y、y->z、z->x的旋转为正角度。逆时针旋转为正、右手螺旋
在这里插入图片描述

这里,第2个是z->x旋转,但是x坐标在z坐标前面,所以,旋转矩阵要调整下。
在这里插入图片描述
在这里插入图片描述

欧拉角

每个旋转可以有无数个欧拉角。因为旋转 2 π 2\pi 2π就会回到原来的位置。
把旋转分解成沿三个轴转动的量:滚转角-俯仰角-偏航角(roll-pitch-yaw)。它的好处是十分的直观,且只有三个参数描述。缺点是会碰到著名的万向锁问题:在俯仰为±90∘时,表达某个姿态的形式不唯一。此外,它也不易于插值和迭代。
旋转

万向锁,表达某个姿态的形式不唯一。因为第二次旋转90°后,第一次旋转、和第三次旋转是旋转轴一样的。丢失了一个维度的自由度。我觉得迭代优化时,这个问题也可以接受呀。
在这里插入图片描述
欧拉角计算复杂,所以不易于插值和迭代。记录这样一个变换,至少需要三个角的sine和cosine值,也就是一共存储6个单位数据。
在这里插入图片描述

罗格里格斯旋转

求一个向量绕任意轴旋转 [公式] 后的向量是多少。我们可以使用罗德里格公式解得。

在这里插入图片描述
在这里插入图片描述
公式–>旋转矩阵
在这里插入图片描述

四元数

知乎链接
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

李代数

李代数
矩阵指数函数
e
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

上面模型是 R ∗ θ R*\theta Rθ。还有一种建模是 θ ∗ R \theta * R θR

更多推荐