REF:室内移动机器人的SLAM 算法综述

目前室内激光SLAM算法,基于滤波的激光SLAM采用GMapping算法,基于图优化的激光SLAM算法采用Cartographer算法

1.1 Gmapping算法:基于粒子滤波的二维算法
Gmapping算法适用于室内小场景和低特征环境下的定位与建图,精度较高且计算量小。初始化阶段对位姿进行初始化,搜索阶段随机分布粒子获得反馈的目标相似度信息,决策阶段利用一系列随机样本的加权和近似后验概率密度函数求和来获得近似积分,进行粒子的权值计算;重采样阶段按照粒子权值在整体粒子权值中的占比复制粒子,有目的地重新分布粒子

1.2 Cartographer算法:基于图优化的开源算法
建图过程中实时构建位姿图,机器人的位姿作为节点,各个节点之间的转换关系作为边,与基于滤波方法的SLAM不同的是,基于图优化的SLAM分为前端和后端两个模块,前端引入了子图概念,前端进行数据提取和数据关联时,每次扫描而得的数据帧会与上一次得到的子图进行比对并且插入上一次得到的子图中,子图的更新优化依赖于数据帧的不断插入,当没有数据帧插入时则形成完整优化的子图,此处主要应用非线性最小二乘法来进行求解;后端引入了闭环检测环节,对前端获得的若干个子图进行优化,通过全局计算得到优化后的位姿,可用来消除累计误差,图优化类算法可以适应面积较大的场景,利用闭环检测可以消除误差,避免误差累积造成的建图不准确。

1.3 Hector算法:基于高斯-牛顿法的图优化算法
在建图过程中,前端进行激光扫描,获得栅格地图,雷达获得新的数据时,将其与上一时刻的地图进行匹配,为使雷达数据映射到栅格地图中,采用双线性插值的方法来获得连续的栅格地图;后端采用高斯-牛顿法对邻近帧进行匹配,使地图数据误差最小,得到优化的地图;最后选用了3种分辨率的地图,其分辨率逐个增加,目的是为了避免匹配值局部最小。算法能估计6个自由度的位姿,可以胜任崎岖路面环境及空中的定位与建图工作,也可应用于无人机室内导航
视觉SLAM算法拥有经典的框架,包含前端视觉里程计、后端优化、闭环检测和建图4个主要部分,相机获得环境信息,搭载不同的相机进行特征提取、选择关键帧获得不同的建图效果。单目相机、双目相机和 RGB-D相机在实际运用过程中应结合各自的特点。

2.1 ORB-SLAM算法:基于单目相机进行特征提取的算法 基于ORB描述量进行特征匹配和重定位,分3个线程运行,包括特征检测与跟踪、建立地图、闭环检测与校正:

2.2 SVO-SLAM算法:半直接视觉里程计算法 对图像中特征点周围的小图像块进行直接匹配,主要分为前端运动估计和后端地图构建两个线程:

基于多传感器融合的SLAM算法较单一传感器的SLAM算法在面对复杂特殊环境时更具灵活性和可靠性,系统更具鲁棒性,常见激光视觉融合、视觉IMU融合、激光视觉IMU融合等传感器融合,融合方法包括加权平均法、卡尔曼滤波法、贝叶斯估计法等

3.1 加权平均法:
加权平均法具有简便、直观的特点,适用于构建动态实时系统,直接对数据源进行操作,可将一组传感器提供的冗余信息进行加权平均,其结果作为融合值,确定各传感器输入数据的权重是加权平均法的核心问题

3.2 卡尔曼滤波法:
该方法用于融合低层次实时动态的多传感器数据,用测量模型的统计特性得到统计意义下的数据最优融合方式和数据估计,假设有n个观测方程,w 为噪声,则多传感器信息融合系统方程可定义如下,建立滤波所需的状态方程和观测方程是卡尔曼滤波法的核心问题

3.3 贝叶斯估计法: 贝叶斯估计用来描述两个条件概率之间的关系,是融合静态环境中的多传感器高层信息的常用方法,主要分为3个步骤:

深度学习技术与SLAM的结合主要体现在3个方面:帧间估计、闭环检测和语义地图构建
4.1 帧间估计: 帧间估计即视觉里程计,作为SLAM前端的主要任务,其根据两个相邻帧的图像信息来判断相机的位姿,根据训练方法和数据集标签化程度的不同,将基于深度学习的帧间估计方法分为监督学习、无监督学习、半监督学习3类:
4.2 闭环检测: 利用深度神经网络自发学习先前从大量关键帧中提取的特征,将当前的信息与之前的学习结果进行比对,判断是否存在闭环,基于神经网络的判断比人为设定特征阈值更加精确,可以得到信息更丰富的图像

4.3 语义地图构建:
语义SLAM的出现在SLAM实际运行过程中丰富了传统SLAM的内容,使地图信息更加全面,室内环境建图时,语义SLAM可以为物体建立标签信息,有助于机器人与环境进行交互