视觉SLAM之旅 二

三维空间的刚体运动

叉积与反对称矩阵

a × b = [ i j k a 1 a 2 a 3 b 1 b 2 b 3 ] = [ a 2 b 3 − a 3 b 2 a 3 b 1 − a 1 b 3 a 1 b 2 − a 2 b 1 ] = a ∧ b a\times b= \begin{bmatrix}i &j& k\\ a_1 & a_2 & a_3\\b_1&b_2&b_3\end{bmatrix}=\begin{bmatrix}a_2b_3-a_3b_2\\a_3b_1-a_1b_3\\a_1b_2-a_2b_1\end{bmatrix}={a}^{\wedge}b a×b=ia1b1ja2b2ka3b3=a2b3a3b2a3b1a1b3a1b2a2b1=ab
a × b a\times b a×b所得向量与a与b垂直,且模长为|a||b|sin<a,b>

齐次方程

什么是齐次方程?
(x,y)->(x,y,1)
(x,y,z)->(x,y,z,1)
简单地说其次方程就是在原有坐标系上加入一个维度

SLAM中使用齐次方程有什么好处?
在不使用齐次方程时表达旋转与平移如下:
a ′ = R a + t a ′ ′ = R ′ ( a ′ ) + t = R ′ ( R a + t ) + t a'=Ra+t\\a''=R'(a')+t=R'(Ra+t)+t a=Ra+ta=R(a)+t=R(Ra+t)+t
使用齐次方程后:
[ a ′ 1 ] = [ R 1 0 T 1 ] [ a 1 ] ≜ T [ a 1 ] \begin{bmatrix}a'\\1\end{bmatrix}=\begin{bmatrix}R&1\\0^T&1\end{bmatrix}\begin{bmatrix}a\\1\end{bmatrix}\triangleq T\begin{bmatrix}a\\1\end{bmatrix} [a1]=[R0T11][a1]T[a1]

[ a ′ ′ 1 ] = T ′ T [ a 1 ] \begin{bmatrix}a''\\1\end{bmatrix}=T'T\begin{bmatrix}a\\1\end{bmatrix} [a1]=TT[a1]
T − 1 = [ R T − R T t 0 T 1 ] T^{-1}=\begin{bmatrix}R^{T}&-R^{T}t\\0^{T}&1\end{bmatrix} T1=[RT0TRTt1]
使用齐次方程还有其它的一些好处,比如可以方便的表达点是否在平面或者直线上,表达直线与直线的交点,平面与平面的交点,日后在总结。。。

表达旋转的方式

  1. 旋转矩阵(Rotation Matrix)
    基变换与坐标变换,线性空间的同构
  2. 旋转向量(Rotation Vector)
  3. 欧拉角(Euler Angle)
    分为绕定轴和动轴转动的欧拉角,存在万向锁问题
  4. 四元数(Quaternion)
    2D情况下的旋转可以用一个单位复数表达,欧拉公式
    2D情况下的旋转则可以用一个单位4元数来表达
    要掌握几种表达旋转的方式之间的转换关系

Eigen几何模块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值