slam初认识
slam简介
slam 全称 Simultaneous Localization and Mapping, 中文译成 “同时定位与建图”。它是在没有已知环境信息的情况下,根据传感器数据估计运动并建立环境模型的技术。
主要分为:以相机为主要传感器的slam,称为 “视觉slam”
以激光雷达为主要传感器的slam, 称为 “激光slam”
视觉slam
激光slam
slam的组成
要使机器人拥有自主运动能力,首先就是对周围环境进行感知,否则对路径的规划和机器人的控制就没法实现,就相当于婴儿走路,先明白了墙在什么位置,才会不撞到墙。这便是slam存在的意义。
一个机器人宛如一个婴儿,它首先要明白两个问题:我在哪(定位)和 周围环境是怎样的(建图)。
定位: 通过传感器获得机器人本体信息,并进一步估计当前位姿。
传感器分类:1.携带于机器人本体上(imu,激光雷达,相机)
2.安装在环境中(二维码定位,导轨)
《视觉slam十四讲》一书主要介绍视觉slam,因此详细介绍相机模型,若想研究激光slam可以观看《概率机器人》一书
相机分类:
单目相机(Monocular Slam): 利用在运动时,观察到近处物体移动快,远处物体移动慢,从而知道物体的远近,但丢失尺度,只知道远近,无法知道实际距离,因为图像放大缩小倍数景象一样。
双目相机:类比人眼,以左右眼之间的距离为基线(baseline)长度,通过左右眼不同角度图像求得深度。缺点:深度量程和精度受基线和分辨率影响,基线距离越大,深度量程越大。
深度相机(又称RGB-D相机):可通过结构光或Tof原理测得深度,可以获得彩色图和对应的深度图。
经典slam框架
下图为经典slam框架的结构图:
1.传感器信息读取。在视觉slam中主要是相机图像信息的读取和预处理。
2.前端视觉里程计(又称VO)。从相邻帧图片估计相机运动,以及局部地图的样子。
3.后端优化(Optimization)。后端接收前端估计的相机位姿,并接收来自回环检测的信息,对它们进行优化,矫正地图。
4.回环检测(Loop Closure Detection)。检测是否到过此位置,并将信息发送给后端。
5.建图(Mapping)。根据估计轨迹和需要,建立地图。
地图大体分类:
度量地图。强调精确的表示物体位置关系,位置状态分为占据,空闲,未知。举个例子:拼积木(积木均为相同正方体),以单个积木为量度,确定某个区域是否有这一个积木。缺点:需要大量储存空间。
拓扑地图。强调地图元素间的关系。例如:只关注A,B两点是否连通,不细化A到B的路径。
总结:简述slam过程,就是先从传感器获得数据并计算出机器人位姿和局部地图信息,但是在这个过程中会出现误差累积(漂移),通过后端和回环检测消除误差,最终建立较为准确的地图。
作者为小白,若有错误请指出,敬请原谅。