张国荣 王志亮 赵振栋 王明涛 张心印
摘要:移动机器人同时定位与地图构建(Simuhaneous Localization and Mapping,SLAM)是近年研究热点。介绍了常用的卡尔曼滤波SLAM、图优化SLAM原理和基础理论,阐述卡尔曼滤波SLAM、图优化SLAM关键技术及研究进展,并对机器人SLAM未来研究进行了展望。
关键词:SLAM;卡尔曼滤波;图优化
DOI:10.11907/rjdk.191818开放科学(资源服务)标识码(OSID):
中图分类号:TP3-0文献标识码:A 文章编号:1672-7800(2019)010-0005-03
0引言
机器人领域一个重要问题是实现机器人在陌生环境中自主定位、导航和理解环境信息,进而实现机器人(机器人群)自主移动和信息交流。为实现机器人的自主定位和导航,目前大多数研究都是在机器人上安装多种传感器,如陀螺仪、GPS、激光測距和气压传感器等进行机器人自身定位,安装单目相机、双目相机、深度相机、激光雷达和声呐等实现机器人的环境感知、地图构建与定位。SLAM技术不断发展,其中以卡尔曼滤波SLAM和图优化理论最为经典,早期都是采用卡尔曼滤波(Kalman filter,KF)为原理的机器人进行研究;2007年后提出图优化理论,由于其能通过闭环检测减小系统累计误差,提高定位和建图精度,目前成为研究主流。
1基于卡尔曼滤波的概率SLAn
卡尔曼滤波理论在机器人导航、传感器数据融合、雷达目标跟踪和控制等领域应用已有几十年。卡尔曼滤波SLAM核心思想是递推求解,分为观测、预测和更新3个步骤。下面介绍卡尔曼滤波SLAM的滤波和定位导航过程。
如图1所示,设机器人初始位置为B点,定位不确定区域概率为椭圆B;当机器人从B移动xi位置时,椭圆xi区域为定位不确定的概率区域。随着机器人的移动,传感器误差累积造成的位置不确定区域增加,这时就需要另外的传感器提供观测zi以减小误差,此时的概率为条件概率P(Zi|Xi),由此得到机器人预测概率P(Xi)和观测概率P(Zi|Xi,B)。
通过全概率公式和贝叶斯公式得到式(1)。
(5)为滤波后的数据融合。
卡尔曼增益严格依赖于方差大小比较,方差越大信任概率越小,方差越小信任概率越大。许多学者对卡尔曼滤波进行改进,其中扩展卡尔曼滤波(Extended Kalman Filter,EKF)是将卡尔曼滤波放进非线性领域,通过泰勒级数展开式对非线性函数展开,滤除二阶以上的高阶项以达到线性化目的。粒子滤波是卡尔曼在机器人SLAM中的具体应用。由于粒子滤波的非线性和处理多峰分布的特点,决定它比扩展卡尔曼应用更广,但粒子滤波需要足够的粒子样本才能更确切地近似后验概率密度。每个粒子都会占用较大内存,因此会造成算法内存占用过大;粒子滤波的另一个问题是粒子耗散,即随着重采样增加,粒子多样性会耗散掉。针对粒子滤波的粒子数量和粒子耗散问题,学者采用proposal分布保持粒子数量在一个较小的值,并选择采样Fast-SLAM。
基于滤波的概率SLAM中,传感器非线性分布噪声随时间增加非线性误差累计较大,对此学者提出一些改进方法,如罗元等提出改进的Rao-Blackwellized算法等,这些算法在一定程度上提高了机器人应用场景大小和算法速度,但是没有从根本上解决大范围场景定位精度问题,更重要的是基于卡尔曼滤波的概率SLAM无法进行全局优化,因此出现了基于图优化理论的SLAM。
2图优化SLAn
基于概率的SLAM都是局部递推式优化,无法进行闭环回路检测。回环检测保证SLAM能够有效抑制累计误差,机器人通过回溯关键帧进行回环检测以减小全局累计误差。图2是机器人移动中的建图过程:机器人在移动中通过当前ti时刻的xi位置运动,预计机器人ti时刻的xj位置和相同特征点在x2位置时,以及当相机运动到tj时刻xj位置时,观测到同一特征点位置与预测的差值应该为零。其中,Zij为xi与xj位置观测到的同一特征点,Ω为观测噪声。
上述过程为图优化SLAM原理。图优化SLAM相继发展出SLAM++和iSAME等。图优化解决SLAM问题时需要对SLAM进行建模,常用的建模方法有动态贝叶斯网络、因子图、马尔科夫等。不同的建模方法对后期矩阵的稀疏性和非线性优化产生不同影响。动态贝叶斯建模时变量较多,因子图建模和马尔科夫建模隐藏变量较多。
关键帧是通过计算机器人移动过程中拍摄照片之间的欧式空间距离决定生成数据库,它包含了机器人的位姿和特征点。因为特征的存在,使机器人可以在移动过程中通过新、旧关键帧对比特征点进行回路检测。若机器人检测到之前到过该位置,则向约束中添加位姿约束。但这样带来的问题是随着时间的推移,机器人建图规模会越来越大,如城市运用的清洁机器人和大场景运用的服务机器人等,不仅需要比较的关键帧数量会呈线性无限增长,而且系统计算量会变得异常庞大。针对降低因子图复杂性的优化主要有稀疏化方法和多机器人(或多处理器)并行计算。
稀疏化通过向因子图中添加或减少节点解决问题。Johannsson通过在现有节点之间引入新约束避免向图中添加新节点,使变量的数量仅随探索空间大小增长,而不是随着映射持续时间而增长;郭润提出一种基于熵稀疏规则的改进SLAM算法,该算法利用熵性质、综合当前以及下一观测时刻选择与位姿关联性最弱的环境特征作为稀疏特征点;Mazuran分别介绍了通用线性约束(GLC)因子和非线性图形稀疏化(NGS)方法;Tong将轨迹的参数化从基础曲线改变为高斯过程,其中因子图中的节点是实际的机器人姿势,并可通过计算给定时间的后验平均值来插值任何其它姿势;Barfoot提出了一个具有精确稀疏逆核的高斯过程,大大减少了批处理解的计算时间。
多机器人或多处理器并行分配计算思想是:把因子图划分为不同的子图,通过局部和全局优化整个过程。朱福利等尝试使用并行计算处理大规模建图时的计算问题;Strasdat采用两阶段方法,首先优化局部姿势特征图,然后优化姿势图;Williams等提出高频滤波器中的分离因子图优化和低频平滑器。
3SLAn研究展望
(1)多机器人协同建图。多机器人同时建图,并保证尺度的一致性和地图有效拼接,形成机器人群的定位建图信息共享。
(2)地图语义表达。人在导航时除预测与观测外,还有对地图的显著特征(ID)表达,如人在去某地导航时,能很好地理解和表达地图;机器人在运动过程中无法形成自己理解的语义地图,并对语义进行表达。有学者提出Bag-words方法。Bag-words能很好地压缩图片信息,但是丢弃了特征的空间位置,因此如何更好地压缩信息,形成更好的语义是研究热点。
(3)大场景SLAM数据处理。当机器人面临的不是狭小室内环境,而是一座城市或一个国家时,计算机要存储的数据量是巨大的。怎么管理、压缩和回溯数据是SLAM未来研究的关键问题之一。
(4)动态场景下的SLAM。当前SLAM研究是假设机器人处于静态(准静态)环境中,周围的物体为刚体。这种假设只适合短期动态,不适合剧烈变化的环境。机器人在长时间运行过程中环境会发生变化,因此如何自我調节异常值,考虑特征退化避免系统故障,不同环境选择不同的参数是研究的关键问题之一。
(5)深度学习与视觉SLAM。视觉SLAM系统可以很好地采集和储存图像,但缺乏对图像的深度分析、识别和挖掘。有了深度学习,视觉SLAM系统就可以进行物体识别,使机器人更好地理解世界,进一步从路径规划拓展到更广领域进行任务规划,然后根据不同的任务选择不同的传感器和执行器去完成任务。但深度学习都是建立在高性能计算机和GPU上进行大数据和长时间的训练,视觉SLAM应用深度学习理论面临的首要问题是:如何在嵌入式系统中提供足够的计算能力或小样本推进深度学习算法的进步。计算能力问题只能依赖于计算机硬件的进步或更好的网络提供高性能的分布式云计算来解决,但视觉SLAM算法如何把估计、感知和人工智能(控制、导航和深度学习)等有机结合,实现良好的任务规划值得深入研究。
(6)机器人SLAM硬件可靠性。硬件可靠性主要体现在长时间运行过程中故障率和噪声模型的变化,这些硬件故障和噪声模型的变化在无人驾驶领域都可能是致命的。因此,机器人要能在运转过中识别CPU、GPU、内存等硬件的消耗,调整自身资源消耗,并能识别传感器老化和噪声模型的变化,进行动态参数调整和预判故障,这是SLAM研究领域的一个关键性问题。