1.1. SLAM概述
首先,本人认为需要思考一个问题:为什么要做SLAM?SLAM技术可以解决什么问题?简单的引入,这个问题的回答可以是:1.大部分的路径规划需要基础地图,2.定位时,为消除IMU、Wheel Odometry等里程计模型的“误差累加”特性引入观测参考,3. 提供一个全局表征(frame、origin)的参考,等。
再回到SLAM概念的定义:S.L.A.M.全称为Simultaneous Localization and Mapping,是以定位和建图两大技术为目标的一个研究领域。目前主流的slam技术应用为激光slam(基于激光雷达)和视觉slam(基于单/双目摄像头),实现上主要分为基于滤波 (Filter-Based) 的SLAM,和基于图优化(Graph-Based)的SLAM。归结其本质,其实就是—State Estimation in Robotics
SLAM框架
SLAM系统框架如图所示,一般分为五个模块,包括传感器数据、视觉里程计、后端、建图及回环检测。
传感器数据:主要用于采集实际环境中的各类型原始数据。包括激光扫描数据、视频图像数据、点云数据等。
视觉里程计:主要用于不同时刻间移动目标相对位置的估算。包括特征匹配、直接配准等算法的应用。
后端:主要用于优化视觉里程计带来的累计误差。包括滤波器、图优化等算法应用。
建图:用于三维地图构建。
回环检测:主要用于空间累积误差消除