SLAM学习笔记

文章目录

  • 初识SLAM
    • 引子
    • 经典SLAM框架
    • SLAM问题的数学表述
  • 三维空间刚体运动
    • 旋转矩阵
    • 四元数
    • 相似、仿射、射影变换
  • 相机与图像
    • 相机模型
      • 单目相机模型
      • 双目相机模型

初识SLAM

引子

SLAM:Simultaneous Localization And Mapping,即时定位与地图构建。就是知道两件事,我在什么地方,周围环境是什么。

传感器来进行定位,主要有两类:在机器人本体和在环境中。在环境中的传感器,约束了环境,不具有普遍性。而在机器人本体上的传感器对环境没有要求,这种定位方案更适用于未知环境。机器人本体的相机分为单目(Monocular)相机、双目(Stereo)相机和深度相机(RGB-D)。

单目相机:只使用一个相机进行SLAM的做法成为单目SLAM(Monocular SLAM)。单目相机拍摄图像只是三维空间的二维投影。想恢复三维结构,必须改变相机的视角,移动相机(这里可以得到相对深度,但仍然无法确定真实尺度)。但是单目SLAM估计的轨迹和地图将与真实的轨迹和地图相差一个因子,也就是所谓的尺度(Scale),单目SLAM无法确定这个真实尺度,也称作尺度不确定性

双目相机和深度相机:通过某种手段测量物体和相机的距离,克服单目的缺点。一旦知道了距离,场景的三维结构就可以通过单个图像恢复出来,消除尺度不确定性。

双目相机:已知两个相机的距离,通过大量计算可以估计每个像素点的深度。测量深度范围与基线有关。基线距离越大,能够测量的就越远。

深度相机:又称RGB-D相机。分为结构光和Tof(Time-of-Flight)两种。物理测量手段,可以节省大量计算。但现在的RGB-D相机还存在测量范围窄,视野小,易受日光干扰的问题,只适用于室内,室外则较难应用。

视觉SLAM的目标是:通过相机拍摄的一系列图像,进行定位和地图构建。

经典SLAM框架

SLAM学习笔记_第1张图片
传感器信息读取。在视觉SLAM中主要为相机图像信息的读取和预处理。如果是在机器人中,还可能有码盘、惯性传感器等信息的读取和同步。

视觉里程计( Visual Odometry, VO)。视觉里程计的任务是估算相邻图像间相机的运动,以及局部地图的样子。vo又称为前端( Front End )。

后端优化(Optimization )。后端接受不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。由于接在 vo之后,又称为后端(Back End )。

回环检测( Loop Closing)。回环检测判断机器人是否到达过先前的位置。如果检测到回环,它会把信息提供给后端进行处理。回环检测负责把“机器人回到原始位置”的事情检测出来,而后端优化则根据该信息,校正整个轨迹的形状。

建图(Mapping)。它根据估计的轨迹,建立与任务要求对应的地图。可分为度量地图(稀疏和稠密)和拓扑地图。

SLAM问题的数学表述

运动和观测:从一点移动到另一点是运动,在某个时刻观测到某个路标是观测。运动方程(定位)和观测方程(建图)。

三维空间刚体运动

旋转矩阵

内积可以描述向量间的投影关系。外积垂直于两向量,大小为两向量组成的平行四边形的面积。外积可以描述旋转。

四元数

四元数表示旋转

相似、仿射、射影变换

相似变换:比欧式变化多了一个缩放。体积比。
仿射变换:也叫正交投影,立方体不再是方的。平行性,体积比。
射影变换:接触面的相交喝相切。

相机与图像

相机模型

单目相机模型

相机的内参数矩阵。相机的内参在出厂时固定的。有的厂商会告诉,如果没有,就要自己标定。

相机的外参数是指相机的位姿。

双目相机模型

你可能感兴趣的:(机器人学,计算机视觉,SLAM)