学习总结来自于《视觉SLAM十四讲——从理论到实践》,原著:高翔、张涛等,在这里总结只是为了记录学习过程和方便归纳知识点,如有版权问题请联系我。
1.SLAM定义:Simultaneous Localization and Mapping同时定位与地图构建
2.视觉SLAM所用的三种传感器:
①单目相机:二维反映三维,在相机移动时估计运动和图像中的结构,但具有尺度不确定性,只能观察到物体之间的相对远近,但不知道具体的距离。
②双目相机:两个单目相机组成,利用基线(已知的两个相机的距离) 估计每个像素的空间位置,基线越长可测距离越长。
③深度相机:RGB-D,可用红外结构光或者ToF发射光并接收光测距,但易受干扰。
3.经典视觉SLAM框架流程:
传感器(采集数据和图像)——前端(VO):视觉里程计(估算相邻图像间相机的运动和局部地图)——后端:非线性优化(接收不同时刻视觉里程计测量的位姿,以及回环检测的信息,并且进行优化)——建图(根据估计的轨迹建立地图)
另外还有闭环检测:连接前端和后端部分,解决累积误差,判断机器人是否回到原来到过的位置
4.地图种类:
度量地图:稀疏地图(只选取路标,用于定位足够)、稠密地图(按分辨率形成,用于导航)
拓扑地图:由节点和边组成,只考虑连通性,放松对精确位置与细节的需求。
5.SLAM的数学描述:
时间序列:1、2、...、k
自身位姿:
地图由N个路标构成:
运动:k和k-1时刻的位置变化
观测:在k时刻的位置观测到了路标,产生一个观测数据
运动方程:,其中为k时刻的运动传感器数据,是k时刻的噪声
观测方程:,其中是噪声数据
SLAM可视作一个状态估计问题:通过带有噪声的测量数据,估计内部、隐藏的状态变量。
6.SLAM系统分类:①根据运动方程和观测方程是否为线性分为线性和非线性系统。
②根据噪声是否服从高斯分布分为高斯和非高斯系统。
线性高斯系统的无偏最优估计可由卡尔曼滤波给出。非线性高斯系统可由扩展卡尔曼滤波和非线性优化给出
第一讲习题部分答案:
1.b=0时,Ax=0是齐次方程组,设系数矩阵A的秩为r,列数(即未知数个数)为n,当r=n时方程组只有0解,当r<n时方程组有非零解(有无穷多解)。
b不等于0时,Ax=b为非齐次方程组,B为A和b组成的增广矩阵,列数为n,设系数矩阵A的秩为r,增广矩阵B的秩为b,有解的充分必要条件是r=b。当r=n时有唯一解,当r<n时有无穷多解。
2.高斯分布就是正态分布,
一维正态分布,
多维正态分布
3.C++的里的类就是定义了数据结构和用法,STL是标准模板库,有为容器(containers)、迭代器(iterators)、空间配置器(allocator)、配接器(adapters)、算法(algorithms)、仿函数(functors)六个部分。