1 第一讲 介绍
- 不要想着把VIM变成一个IDE,它只是一个编辑器
- 不要沉迷于ubuntu的不必要的配置,它只是一个工具
2 第二讲 SLAM基础知识
SLAM主要完成的两个问题是:
- 定位
- 建立地图
完成SLAM依赖sensor:
- 环境中的sensor
- marker
- 导轨
- 磁条
- 机器人本体上的sensor(主流方向,限制少)
- monocular
- stereo
- RGBD
- laser
- GPS
完整的一个SLAM流程图:
SLAM中的数学描述包括两个方程:
- 运动方程
x k = f ( x k − 1 , u k , ω k ) x_k = f(x_{k-1},u_k, \omega_k) xk=f(xk−1,uk,ωk)
x k x_k xk表示state of robot,这个state可以是机器人的位置,速度等
u k u_k uk表示输入,比如我们对车可以控制它的加速减速
ω k \omega_k ωk表示运动模型的噪声 - 观测方程(sensor)
z k , j = h ( x k , y j , v k ) z_{k,j}=h(x_k,y_j,v_k) zk,j=h(xk,yj,vk)
y j y_j yj表示第 j j j个路标点
v k v_k vk表示sensor观测噪声
z k , j z_{k,j} zk,j表示机器人在 x k x_k xk位置观察到 y j y_j yj路标的时候的观测量
3 第三讲 刚体运动描述
描述刚体在空间中的旋转有如下几种方式:
- 旋转向量, 幅值 θ \theta θ, 单位向量 a a a
- 旋转矩阵 R R R
- 四元数 q 1 , q 2 , q 3 , q 4 q_1,q_2,q_3,q_4 q1,q2,q3,q4
- 欧拉角,一般来讲用ZYX旋转,记为 y a w ( Z ) , p i t c h ( Y ) , r o l l ( X ) yaw(Z),pitch(Y),roll(X) yaw(Z),pitch(Y),roll(X)
可以使用Eigen库进行相互转换
4 第四讲 李群与李代数
对于描述刚体的运动我们已经可以使用李群(Lie Group)来描述了,比如:
S
O
(
3
)
=
{
R
∈
R
3
∗
3
∣
R
R
T
=
I
,
d
e
t
(
R
)
=
1
}
SO(3)=\{R \in \mathbb{R}^{3*3} | RR^T=I, det(R)=1\}
SO(3)={R∈R3∗3∣RRT=I,det(R)=1}
S
E
(
3
)
=
{
T
=
[
R
t
o
T
1
]
∈
R
4
∗
4
∣
R
∈
S
O
(
3
)
,
t
∈
R
3
}
SE(3)=\{T = \begin{bmatrix} R & t\\ o^T & 1 \end{bmatrix} \in \mathbb{R}^{4*4} | R \in SO(3), t \in \mathbb{R}^3\}
SE(3)={T=[RoTt1]∈R4∗4∣R∈SO(3),t∈R3}
为什么还要引出李代数呢?
主要是因为旋转矩阵是带约束的,进行优化的时候不方便,但是转成Lie Algebra就会变成了无约束优化。
Group满足四个性质:
- 封闭性
- 结合律
- 幺元(单位元)
- 逆
Lie Group是一种特殊的group,它具有连续光滑的性质,直观来理解就是三维物体在空间中的运动是连续的。
所以引出Lie Algebra的主要目的是为了方便求导。
Lie Algebra的定义住一个集合
V
\mathbb{V}
V,一个数域
F
\mathbb{F}
F和一个二元运算
[
,
]
[,]
[,](也称之为李括号)组成。
Lie Algebra也有四个性质:
- 封闭性
- 双线性
- 自反性(存在一个元素的反)
- 雅克比等价
Lie Algebra本质生表达了两个元素的差异。
Lie Algebra s o ( 3 ) , s e ( 3 ) so(3), se(3) so(3),se(3)的推导是非常有意思的,它们其实来源于旋转向量和平移向量。
Lie Group和Lie Algebra是一一对应的,可以通过指数对数映射互相转换。
引出Lie Algebra的目的既然是为了求导,那么求导的话,需要先理解BCH公式,它描述的是在李群上两个元素的乘法和对应两个元素在李代数上的加法的关系。
求导有两个思路:
- 李代数直接求导,发现结果复杂
- 扰动模型(左乘和右乘两种),结果简单
S O ( 3 ) 和 S E ( 3 ) SO(3)和SE(3) SO(3)和SE(3)的左扰动模型求导直接参考slam14讲。
最后值得一提的是Sophus实现了李代数的基本运算,其实是对Eigen库的一个高级封装。