视觉SLAM介绍

前言

还记得在上家公司时,我就常常看到身边的同事拿着机器人小车在公司的走廊上跑来跑去,有时运行得很顺利,有时候却总是撞上墙壁,那是我就感到这个东西很好玩,什么时候自己也能玩一下。最近终于有机会接触到机器人的视觉问题,于是开始查询相关资料,而视觉SLAM作为机器人视觉定位和导航主流的研究方向,也是我最主要关注的方面。鉴于我自己对这方面的知识并没有一个系统的认识,所以我把我最近找到的资料做一些整理,试图梳理一下相关的知识之间的联系。

SLAM是什么?SLAM技术的对于机器人的重要性

SLAM的全称是:Simultaneous Localization and Mapping,中文翻译为即时定位与地图构建。需要理解的是,SLAM并非单一的算法而是更像是一中概念,是各种用于定位和建图的算法的集合。

视觉SLAM是通过机器视觉的方法来处理定位和建图的问题,但是SLAM并不只有视觉SLAM一种,它也可以通过其他方法来处理其相关核心问题。只是由于视觉图像携带信息的丰富性,各种视觉传感器摄像头的发展,以及各种计算机处理视觉图像方法的成熟,让使用机器视觉来处理SLAM问题,成为了当前主流SLAM研究方向。

对一个需要实现自由移动的机器人而言,它首先要解决的最基础的问题就是对它所处环境的了解,而SLAM技术可以分别从两个方面,即:机器人自身的位置和周围环境的情况,给予机器人对于自身和所处环境的:位置和地图这两个关键信息,所以对这类机器人而言,SLAM技术是它实现自由移动的关键之一。

SLAM的应用方向

  1. 自动驾驶
  2. 无人机自动返航于蔽障
  3. 工业运输机器人
  4. VR和AR设备

关键设备

在SLAM中最重要的设备就是其感知周围信息的传感器了,传感器类型的选择对SLAM的实现方式和难易程度都密切相关。当前SLAM使用的传感器主要分一下两类:

  1. 激光雷达

激光雷达的作用是提供机器人本体与周围环境障碍物的距离信息,实物如下图所示:

激光雷达

优点:

  • 扫描精度高
  • 速度快
  • 计算量相对较小
  • 研究历史久技术比较成熟

缺点:

  • 价格昂贵
  • 不易表示回环和线性误差严重
  1. 视觉摄像头

视觉SLAM采用的是各种类型的摄像头作为传感器的,当前主要的摄像头类型有以下三类:单目双目RGBD。对于以上三类,SLAM实现的难度为:单目视觉 > 双目视觉 > RGBD。

单目相机简称MonoSLAM,主要优点是成本低、装置简单,但是缺陷也是很明显:缺乏深度信息,只能购过其他手段来估测,这使得SLAM实现其他会比较困难。

双目相机通过两个摄像头拍摄物体的时差来获取深度信息,因此对比单目相机它获取深度信息相对来说会容易一些,但是双目相机的配置与标定都较为复杂,对计算量要求较高。

RGBD相机是普通的摄像头加上深度摄像头组成,他最大的优点是它可以直接获得深度图像信息,而不需要通过其他手段计算后才能获得,所以其实现SLAM是三者中最简单的一个,但是由于这种相机出现较晚,目前还存在测量范围窄、噪声大、视野小等诸多问题。

视觉SLAM的框架

针对于视觉SLAM,一般都有一个基本的框架:数据采集、VO、后端、建图、回环检测

SLAM框架

相关学习资料链接

  1. OpenSLAM:https://openslam.org/
  2. Andrew Davison的课程: http://www.doc.ic.ac.uk/~ajd/Robotics/index.html
  3. 创客智造:http://www.ncnynl.com/category/slam-learning/
  4. 半仙居士blog: http://www.cnblogs.com/gaoxiang12/
  5. 泡泡机器人课件:http://www.rosclub.cn/article/list/id/9/p/9.html
Compartir