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);国家留学基金委资助。
NOTES
*通讯作者。