Software Engineering and Applications
Vol.06 No.05(2017), Article ID:22428,10 pages
10.12677/SEA.2017.65015

Analysis and Evaluation of SLAM Algorithm Based on Environmental Characteristics

Quan Lv, Wenzhi Li, Ying Ji*

College of Information and Science & Technology, Agricultural University of Hebei, Baoding Hebei

Received: Oct. 5th, 2017; accepted: Oct. 17th, 2017; published: Oct. 24th, 2017

ABSTRACT

In order to study robot SLAM algorithm of adaptive capacity in different environments, based on the experimental simulation data, this paper presents the simulation and comparison of several kinds of robot algorithms in Matlab software. First comparing analysis of EKF-SLAM and UKF-SLAM algorithms, analysis results show that UKF-SLAM algorithm with respect to the EKF-SLAM algorithm in different environments has better time complexity and robustness. Then comparing UKF-SLAM algorithm with better performance and Fast SLAM algorithm simulation, the simulation results show that, under the relative environment and the strong noise environment, Fast SLAM algorithm has better estimation performance, while time complexity is low.

Keywords:Robot, SLAM, Environmental Characteristics

基于环境特征的SLAM算法分析与评价

吕权,李文至,籍颖*

河北农业大学信息科学与技术学院,河北 保定

收稿日期:2017年10月5日;录用日期:2017年10月17日;发布日期:2017年10月24日

摘 要

为了研究机器人的SLAM算法在不同环境下的适应能力,以实验仿真数据为依据,对当前普遍存在的几种SLAM算法在Matlab软件中进行仿真对比分析。首先对EKF-SLAM算法和 UKF-SLAM算法进行比较分析,分析结果表明:UKF-SLAM算法相对于EKF-SLAM算法在不同的几种环境特征中具有较好的时间复杂性和鲁棒性。再将性能较好的UKF-SLAM算法与Fast SLAM算法仿真对比,仿真结果表明:在相对大环境和强噪声环境中,Fast SLAM算法具有较好的估计性能,同时时间复杂性低。

关键词 :机器人,SLAM,环境特征

Copyright © 2017 by authors and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

http://creativecommons.org/licenses/by/4.0/

1. 引言

机器人是集微电子技术、信息技术、计算机技术、通讯技术、传感器技术等于一身的产物。其中移动机器人同时定位与地图构建技术(SLAM)是机器人领域比较热门的一项技术,在农业机械化、人工智能等方面具有很好的应用前景 [1] [2] 。这项技术的广泛应用使机器人具有决策控制能力、环境感知能力、自主运行、自主组织和规划能力,并且可以在复杂的环境下工作。

机器人应用领域越来越广泛,从传统的制造业向人类的生活和工作领域转变,此外机器人形态结构的发展也呈现出多样化的局面 [3] [4] 。高智能化的机器人是未来的机器人的趋势移动机器人,所以研究重点是如何实现自主导航和自主完成任务。而实现移动机器人的自主导航,我们需要面临的关键性技术之一就是移动机器人同时定位与地图构建。

本文提出了四种环境特征作为仿真地图,针对机器人行走环境的不同特点,人为选取了:相对小规模环境、相对大规模环境、增强噪声环境、稀疏特征环境。对目前比较常见的三种SLAM算法通过仿真实验进行评估,得到不同环境下对于三种算法的优先选择顺序。

2. 基于扩展卡尔曼滤波的SLAM研究

卡尔曼滤波是一种基础的卡尔曼滤波算法 [5] 。如今广泛在信号处理、通信等领域流传并应用,成为非常有效和基础的工具。

2.1. 扩展卡尔曼滤波SLAM算法

扩展卡尔曼滤波(EKF)的是卡尔曼滤波的一种改进形式,其方法是把复杂系统进行泰勒一级展开,通常这些复杂系统不满足线性特征,一般为非线性系统 [6] 。扩展卡尔曼滤波算法的滤波误差和测量误差在机器人SLAM算法中算是比较小的,对于非线性逼近该系统能够获得满意的估计精度,但当初始过滤协方差下降过快的时候,会导致不稳定过滤现象。此外,它还要求噪声必须服从高斯分布,这大大降低了它的应用范围。

2.2. 无迹卡尔曼滤波SLAM算法

UKF-SLAM算法建立在EKF-SLAM算法的基础上,能够将泰勒级数展开到二级的形式,这样的做法有效的提高了算法的精确度。与EKF算法相比,不需要计算雅可比矩阵而是采用UT变换的方法,这些省略的过程使得UKF-SLAM算法具有较高的准确度 [7] [8] 。UT变换思维在UKF算法中起到重要的作用,这种思维是UKF-SLAM算法区别于EKF-SLAM算法的核心 [9] 。

2.3. 仿真实验过程与结果分析

在Matlab软件中搭建不同仿真环境下,来分析EKF-SLAM算法与UKF-SLAM算法的适用性和估计性能。仿真环境的搭建分为四种情况相对小规模环境、相对大环境、噪声环境、稀疏特征环境。

2.3.1. 实验1相对小环境

在Matlab软件里搭建一个走廊环境,由19个路标连接成的预设路径,长度200 m,宽度50m,有46个路标特征点分布在这个环境中,如图1图2所示。机器人从起点(0,0)开始到终点(50,0)为一个路径周期,同时对机器人各种运行指标进行假定,在本文中设定机器人速度v = 3 m/s,传感器探测范围为30 m为半径的圆,最大允许转向角30˚,采样时间定为0.025 s,速度误差σv = 0.3 m/s,角度误差 σg = 3˚。同时设定观测噪声速度误差σv = 0.1 m/s,角度误差σg = 1˚算法在仿真过程中,a是机器人的估计路径,b是实际路径,c是机器人的估计环境特征,即图中星形部分。

对机器人横纵坐标上的偏差度以及机器人转向角误差数值见表1

Figure 1. EKF-SLAM algorithm simulation results

图1. EKF-SLAM算法仿真结果

Table 1. Comparison of EKF-SLAM and UKF-SLAM algorithms under small environment

表1. 小环境下EKF-SLAM和UKF-SLAM算法对比

Figure 2. UKF-SLAM algorithm simulation results

图2. UKF-SLAM算法仿真结果图

小环境特征是相对大环境特征而言的,EKF-SLAM算法和UKF-SLAM算法差异性不大。可以得出结论:在简单的非线性结构化环境中,EKF-SLAM和UKF-SLAM都具有较好的估计特性,均有较强的鲁棒性和较小的时间复杂性。

2.3.2. 实验2相对大环境

在Matlab软件里搭建一个环形仿真地图环境250 m * 200 m,由17个航标连接成的预设路径,如图3图4所示,设置若干路标特征点分布在这个环境。

本实验设置75个路标特征点分布在这个仿真地图环境中。机器人从起点(0,0)开始逆时针运动一圈,设置机器人速度v = 3 m/s,最大允许转向角30˚,传感器有效探测距离30 m,采样时间定为0.025 s,速度误差σv = 0.3 m/s,角度误差σg = 3˚。同时设定观测噪声速度误差σv = 0.1 m/s,角度误差σg = 1˚。

仿真结果图中EKF-SLAM算法运行51.3090 s,UKF-SLAM算法运行141.6875 s。对机器人X方向误差、机器人Y方向误差和机器人位置误差的结果数据见表2

相比于小环境下估计效果,在大环境中EKF-SLAM比UKF-SLAM估计效果没有明显优势,估计偏差略大,UKF-SLAM估计效果较为精确。

2.3.3. 实验3增强噪声环境

为了验证EKF-SLAM和UKF-SLAM在强噪声中的估计性能,使用与实验2相同的仿真地图环境和特征点,机器人设置速度误差σv = 0.8 m/s,角度误差σg = 8˚。同时设定观测噪声速度误差σv = 0.5 m/s,角度误差σg = 5˚,其他与实验2参数相同。仿真结果如图5图6所示。

Figure 3. EKF-SLAM algorithm simulation results

图3. EKF-SLAM算法仿真结果图

Figure 4. UKF-SLAM algorithm simulation results

图4. UKF-SLAM算法仿真结果图

Figure 5. EKF-SLAM algorithm simulation results

图5. EKF-SLAM算法仿真结果图

Figure 6. UKF-SLAM algorithm simulation results

图6. UKF-SLAM算法仿真结果图

Table 2. Comparison of EKF-SLAM and UKF-SLAM algorithms in large environment

表2. 大环境下EKF-SLAM和UKF-SLAM算法

算法在仿真过程中,EKF-SLAM算法运行了53.1105 s,UKF-SLAM算法运行了160.1747 s。对机器人坐标上的偏差度以及机器人转向角误差结果见表3

在 EKF-SLAM算法估计过程中,机器人位置估计误差不断增大并不断叠加,UKF-SLAM在强噪声环境中仍然能够保持良好的估计性能,可见 UKF-SLAM算法对非线性系统采用Sigma采样和UT变换的形式,提高了UKF-SLAM算法的噪声适应能力。

2.3.4. 实验4稀疏特征环境

采用实验2的仿真地图环境,但是设置7个路标特征点分布在这个环境中,其他设置同实验2相同。仿真结果如图7图8所示。

算法在仿真过程中,EKF-SLAM算法运行了29.2412 s,UKF-SLAM算法运行了41.0943 s。机器人横纵坐标上的偏差度以及机器人转向角误差结果的精确值见表4

从实验数据可以中看出,在稀疏环境特性的情况下,UKF-SLAM误差明显要大于EKF-SLAM。时间复杂性上EKF-SLAM也具有优于UKF-SLAM的效果。

3. 基于粒子滤波的SLAM研究

Fast SLAM算法是SLAM算法中一种比较经典的算法,他的出现建立在EKF-SLAM算法的基础上,Fast SLAM算法目前应用比较广泛的是Fast SLAM2.0算法 [10] [11] 。

根据实验比较,UKF-SLAM算法明显比EKF-SLAM算法在偏差度和适应度等方面更强一些,所以选择UKF-SLAM算法与Fast SLAM算法进行对比,用来确定各种算法在不同环境下优劣程度。该实验与2.3的实验环境和操作一样,因此直接给出实验的结果与分析。

相对小环境:通过表5中的数据,从转向角偏差和均方根偏差中来看,相对于Fast SLAM的算法,UKF-SLAM算法偏差度较小,同时UKF-SLAM算法的运行时间较短。

相对大环境:通过表6可以看出在大环境中两种算法位置偏差和转向角偏差值相差不大,但是UKF-SLAM算法耗时较多。

增强噪声环境:通过表7看出在强噪声中,UKF-SLAM算法运行时间低于Fast SLAM算法,但转向角偏差和路径偏差均大于Fast SLAM算法。

稀疏特征环境:通过表8的实验结果,可以得到两种算法对机器人的位置估计都偏差在可接受范围周围,但UKF-SLAM算法运行时间低于Fast SLAM算法。

4. 结论

确定了三种SLAM算法的仿真环境,使用Matlab软件在相对大规模环境、相对小规模环境、增强噪声环境、稀疏特征环境这四种环境特征下进行仿真分析,并从算法的时间复杂性和鲁棒性着手进行比较。实验结果表明:在相对小规模环境中EKF-SLAM与UKF-SLAM算法要比Fast SLAM算法有良好的估计效果;在相对大环境下,Fast SLAM算法表现出较强的估计能力和时间复杂性;在运行环境中加强噪声

Figure 7. EKF-SLAM algorithm simulation results

图7. EKF-SLAM算法仿真结果

Figure 8. UKF-SLAM algorithm simulation results

图8. UKF-SLAM算法仿真结果图

Table 3. Contrast between EKF-SLAM and UKF-SLAM algorithms in strong noise environment

表3. 强噪声环境下EKF-SLAM和UKF-SLAM算法对比

Table 4. Comparison of EKF-SLAM and UKF-SLAM algorithms in sparse feature environment

表4. 稀疏特征环境下EKF-SLAM和UKF-SLAM算法对比

Table 5. Comparison of two algorithms under small environment

表5. 小环境下两种算法对比

Table 6. Comparison of two algorithms under the large environment

表6. 大环境下两种算法对比

Table 7. Comparison of two algorithms in strong noise environment

表7. 强噪声环境下两种算法对比

Table 8. Comparison of two algorithms in sparse feature environment

表8. 稀疏特征环境下两种算法对比

维度时,Fast SLAM算法具有较强的抗干扰能力;在稀疏特征环境中, EKF-SLAM算法优于UKF-SLAM算法和Fast SLAM算法。可以SLAM方面的研究人员在不同环境特征下选取算法问题提供一定的参考。

基金项目

河北省教育厅项目(QN2014095);国家留学基金委资助。

文章引用

吕 权,李文至,籍 颖. 基于环境特征的SLAM算法分析与评价
Analysis and Evaluation of SLAM Algorithm Based on Environmental Characteristics[J]. 软件工程与应用, 2017, 06(05): 135-144. http://dx.doi.org/10.12677/SEA.2017.65015

参考文献 (References)

  1. 1. 李郁峰. 履带式移动机器人及其无线控制的实现[D]: [硕士学位论文]. 太原: 太原理工大学, 2005.

  2. 2. 张艳霞. 基于力觉和视觉的机械手伺服控制研究[D]: [硕士学位论文]. 洛阳: 河南科技大学, 2012.

  3. 3. 王才东. 六自由度教学机器人控制系统设计及实验研究[D]: [硕士学位论文]. 哈尔滨: 哈尔滨工程大学, 2008.

  4. 4. 周旭. 基于改进粒子滤波的SLAM算法研究[D]: [硕士学位论文]. 南京: 南京理工大学, 2014.

  5. 5. 康轶非, 宋永端, 宋宇, 等. 平方根容积卡尔曼滤波在移动机器人SLAM中的应用[J]. 机器人, 2013, 35(2): 186-193.

  6. 6. 周亚凌. 基于OpenCV的交通车流量检测系统[D]: [硕士学位论文]. 北京: 北京邮电大学, 2015.

  7. 7. 洪梅, 杨静, 刘勤, 等. EKF和UKF在地形辅助导航中的应用研究[C]//中国仪器仪表学会. 第六届全国信息获取与处理学术会议论文集. 焦作: 中国仪器仪表学会, 2008: 438-443.

  8. 8. 刘要龙. 移动机器人同时定位与地图创建的算法研究[D]: [硕士学位论文]. 秦皇岛: 燕山大学, 2013.

  9. 9. 郭剑辉, 赵春霞, 石杏喜. 一种改进的联合相容SLAM数据关联方法[J]. 仪器仪表学报, 2008, 29(11): 2260-2265.

  10. 10. Montemerlo, M., Thrun, S., Roller, D. and Wegbreit, B. (2003) Fast SLAM 2.0: An Improved Particle Filtering Algorithm for Simultaneous Localization and Mapping That Provably Converges. In: International Joint Conference on Artificial Intelligence, Morgan Kaufmann Publishers Inc., Burlington, MA, 1151-1156.

  11. 11. 郭利进. 大尺度环境下移动机器人同时定位与地图创建研究[D]: [博士学位论文]. 太原: 中北大学, 2009.

  12. NOTES

    *通讯作者。

期刊菜单