视觉SLAM十四讲 第2讲 初识SLAM

1、相机速度

普通相机能以30张图片每秒钟的速度采集图像,高速相机更快。

2、单目相机的尺度不确定性

首先,单目相机能够得到单张的相片,但是我们从单张之中是无法得到其\color{red}{深度距离}的;
因此,我们对单目相机进行了移动,造成双目相机的效果,在图像运用上出现了视差,此时,可以得到其距离信息;
但,该值仍旧是一个\color{red}{相对值},原因是:如果把相机的运动和场景大小同时放大两倍,其在相机中的图像是一样的,\color{red}{真实尺度(实际物体的大小)}缺失了。

书中的一句话:平移之后才能确定深度,以及无法确定真实尺度。
我的理解是:通过平移得到类似双目相机的效果,由于视差的出现可以得到深度,但此时的深度是具有不确定性的,因为尺度未知。所谓的确定深度指的是能够通过数学计算获取深度信息。

视觉SLAM十四讲 第2讲 初识SLAM

3、双目测距原理

双目相机其实是通过两个单目相机组成,但线\color{red}{相机间的距离(基线)}已知,基线越大,能够测量的深度范围越远.

缺点:
计算量大,配置与标定复杂,视差的计算消耗资源\color{red}{(???不是已知吗)},需要GPU和FPGA加速。
大多数立体匹配算法计算出来的视差都是一些离散的特定整数值,可满足一般应用的精度要求。
线\color{red}{但在一些精度要求比较高的场合,如精确的三维重构中,就需要在初始视差获取后采用一些措施对视差进行细化,如匹配代价的曲线拟合、图像滤波、图像分割等。}

4、深度相机测距原理(RGBD相机)

红外结构光测量
time-of-flight飞行时间测量法
kinect,xtion.pro.live,realsense\color{red}{kinect , xtion.pro.live , realsense}

5、为什么单目通过移动还不知道真实深度,而双目可以?

这是由于双目中的视差是已知的,因此能得到尺度信息,
但是单目相机中两张图的距离是未知的。我们无法说两张图片之间的位置信息。(顶多也是大概,且需人为测量,每次)

6、SLAM 框架

视觉SLAM十四讲 第2讲 初识SLAM

传感器数据:在这里主要是视觉,相机图像的读取和预处理。机器人中码盘和惯性传感器
VO视觉里程计:估算相邻图像帧间的相机运动,以及局部地图的样子。存在误差
后端优化:接收前端信息以及回环检测的信息,优化后得到全局一致的轨迹和地图。
回环检测:
建图:建立与任务对应的地图。

7、 SLAM数学描述

\color{red}{运动方程}:视觉SLAM十四讲 第2讲 初识SLAM
其中,xkx_k表示的是k时刻的位置,uku_k表示的是传感器输入,wkw_k表示的是噪声。
\color{red}{观测方程}:视觉SLAM十四讲 第2讲 初识SLAM
其中,yjy_j表示的是在某位置看到的路标,zkz_k,_,j_j表示的是观测数据,v表示观测噪声。
\color{red}{当观测到多个路标时,可产生多个观测方程。}

\color{red}{例子一:}
视觉SLAM十四讲 第2讲 初识SLAM

8、编程基础

(1)当前目录下,在功能包下cmake,在通过make命令编译
视觉SLAM十四讲 第2讲 初识SLAM
(2) 使用build文件夹
视觉SLAM十四讲 第2讲 初识SLAM
(3)使用库
。。。。。