上一篇文章是从人类角度来分析SLAM技术,其实任何计算机技术的实现都是从人类思维出发去解决实际问题。本篇从技术实现角度讲解SLAM的实现框架。
SLAM在自主导航中的位置
在整个移动机器人自主导航(包括自动驾驶)中,区分为几大块:
感知(位姿、地图);
规划(局部、全局);
控制(包括轨迹跟踪)。
上图中的橙黄色部分的感知是可以加入人工智能技术进行目标识别,然后把目标识别出来的语义反馈给SLAM进行进一步的定位和建图。在整个机器人自主导航中SLAM占据中间枢纽的作用,是导航不可缺失的关键部分。
SLAM是同步定位与地图构建(Simultaneous Localization And Mapping)的缩写,最早由Hugh Durrant-Whyte 和 John J.Leonard提出。SLAM主要用于解决移动机器人在未知环境中运行时定位导航与地图构建的问题。SLAM更像是一个概念而不是一个算法。
这里说的同步定位和地图构建,其中的定位是指机器人对自身的定位,包括当前的位姿(位置和姿态)。地图构建是对周围环境的的重建,一般是3D环境。同步定位和建图是同步进行的,没有先后顺序。这里就存在一个先有鸡还是现有蛋的问题。
SLAM的整体框架
SLAM的整个框架如下: