视觉SLAM十四讲 第2讲 初识SLAM
文章目录
1、相机速度
普通相机能以30张图片每秒钟的速度采集图像,高速相机更快。
2、单目相机的尺度不确定性
首先,单目相机能够得到单张的相片,但是我们从单张之中是无法得到其的;
因此,我们对单目相机进行了移动,造成双目相机的效果,在图像运用上出现了视差,此时,可以得到其距离信息;
但,该值仍旧是一个,原因是:如果把相机的运动和场景大小同时放大两倍,其在相机中的图像是一样的,缺失了。
书中的一句话:平移之后才能确定深度,以及无法确定真实尺度。
我的理解是:通过平移得到类似双目相机的效果,由于视差的出现可以得到深度,但此时的深度是具有不确定性的,因为尺度未知。所谓的确定深度指的是能够通过数学计算获取深度信息。
3、双目测距原理
双目相机其实是通过两个单目相机组成,但已知,基线越大,能够测量的深度范围越远.
缺点:
计算量大,配置与标定复杂,视差的计算消耗资源,需要GPU和FPGA加速。
大多数立体匹配算法计算出来的视差都是一些离散的特定整数值,可满足一般应用的精度要求。
4、深度相机测距原理(RGBD相机)
红外结构光测量
time-of-flight飞行时间测量法
5、为什么单目通过移动还不知道真实深度,而双目可以?
这是由于双目中的视差是已知的,因此能得到尺度信息,
但是单目相机中两张图的距离是未知的。我们无法说两张图片之间的位置信息。(顶多也是大概,且需人为测量,每次)
6、SLAM 框架
传感器数据:在这里主要是视觉,相机图像的读取和预处理。机器人中码盘和惯性传感器
VO视觉里程计:估算相邻图像帧间的相机运动,以及局部地图的样子。存在误差
后端优化:接收前端信息以及回环检测的信息,优化后得到全局一致的轨迹和地图。
回环检测:
建图:建立与任务对应的地图。
7、 SLAM数学描述
:
其中,表示的是k时刻的位置,表示的是传感器输入,表示的是噪声。
:
其中,表示的是在某位置看到的路标,表示的是观测数据,v表示观测噪声。
8、编程基础
(1)当前目录下,在功能包下cmake,在通过make命令编译
(2) 使用build文件夹
(3)使用库
。。。。。