第二讲
基本概念
视觉里程计(Visual Odometry, VO)
视觉里程计任务是估算相邻图像间相机的运动,它只计算相邻时刻的运动。仅仅通过 VO 来估计轨迹,将出现累计漂移。解决这个问题需要后端优化和回环检测。
后端优化(Optimization)
处理 SLAM 过程中的噪声问题,从带有噪声的数据中,估计整个系统的状态,以及状态估计的不确定性有多大,称为最大后验概率估计(MAP)。
回环检测(Loop Closing)
解决位置估计的时间漂移问题,即让机器人具有识别曾经到达过的场景的能力。主要利用了图像之间的相似性。
建图(Maping)
分为 度量地图 和 拓扑地图 两种
- 度量地图强调精确的表示地图中物体的位置关系,用 Sparse 和 Dense 来分类。
- 拓扑地图强调地图元素间的关系,拓扑地图是一个 图(Graph),由边和节点组成,要考虑他们之间的连通性。
数学描述
运动方程
$$
x_k=f(x_{k-1},u_k,w_k)
$$
$x_k$ 表示 k 时刻的位置,$u_k$ 表示传感器在 k 时刻的读数。观测方程
$$
z_{k,j}=h(y_j,x_k,v_{k,j})
$$
$z_{k,j}$ 表示观测数据。
这两个方程讲 SLAM 建模为一个状态估计的问题,根据方程和噪声的种类分为 线性/非线性 和 高斯/非高斯 系统。
C++
CMakeLists.txt 声明 cmake 命令要做的事情。
cmake 生成 makefile 文件,make 根据 makefile 编译整个工程。
1
2
3
4make bulid
cd build
cmake ..
make上面这行命令会在build文件夹里生成可执行文件。
头文件和库文件
.h文件是头文件,内含函数声明、宏定义、结构体定义等内容