首页 理论教育智能汽车技术概论:SLAM实现方法简介

智能汽车技术概论:SLAM实现方法简介

【摘要】:在SLAM中,一般采用基于贝叶斯估计的高斯滤波或者非参数滤波方法对位置状态进行滤波估计。1)基于Kalman滤波的SLAM方法基于Kalman滤波的SLAM方法利用包含智能汽车位姿向量和环境特征向量的增广向量表示空间环境,将智能汽车运动与环境特征的关系描述为两个非线性模型,即智能汽车运动模型和观测模型。粒子滤波被引入SLAM研究中,提出了一系列同步定位和地图创建算法。FastSLAM算法的实现需要预先设置人工路标。

在SLAM中,一般采用基于贝叶斯估计的高斯滤波或者非参数滤波方法对位置状态进行滤波估计。参数滤波方法包括Kalman滤波(Kalman Filter,KF)、扩展Kalman滤波(Extended Kalman Filter,EKF)、信息滤波(Information Filter,IF)、扩展信息滤波(Extended Information Filter,EIF)等,而非参数滤波则包括了直方图滤波(Histogram Filter,HF)和粒子滤波(Particle Filter,PF)等。其中,KF和IF要求系统状态方程线性,且系统噪声和观测噪声均为高斯白噪声;EKF和EIF允许系统状态方程为非线性,但也要求噪声为高斯型;粒子滤波通过采样值来拟合系统噪声,因其对于噪声类型具有广泛适应性,所以得到了极大的发展和应用。通过SLAM得到的结果与车体位姿信息进行融合后,将得到的位置信息与从该位置得到的传感器信息相融合,通过组合连续时刻不同位置的环境信息,则可以得到较为完整的环境重建结果。

1)基于Kalman滤波的SLAM方法

基于Kalman滤波的SLAM方法利用包含智能汽车位姿向量和环境特征向量的增广向量表示空间环境,将智能汽车运动与环境特征的关系描述为两个非线性模型,即智能汽车运动模型和观测模型。智能汽车控制信号输入到系统运动模型中,实现智能汽车的运动。Kalman滤波算法根据系统模型实现智能汽车位姿的预测,同时智能汽车根据系统观测模型获得对环境特征的观测。预测特征和观测特征之间要进行数据关联匹配的处理,选择最佳匹配特征,用于对智能汽车位姿的更新,而候选匹配特征被认为是对环境观测获得的新特征,用于对地图的增广。

Kalman滤波假设系统是线性系统,但是实际中智能汽车的运动模型与观测模型都是非线性的,因此通常采用EKF方法。EKF通过一阶Taylor展开,以近似表示非线性模型。

基于EKF的SLAM,可以归纳为一个循环迭代的估计-校正过程:首先通过运动模型估计智能汽车的新位置,并通过观测模型估计可能观测的环境特征,然后计算实际观测和估计观测间的误差,综合系统协方差计算Kalman滤波参数K,并用K对前面估计的智能汽车位置进行校正,最后将新观测环境特征加入地图。扩展Kalman滤波最大的缺陷是假设系统中的不确定性符合高斯分布,因此对系统中的其他模型的噪声无能为力。更进一步说,KF/EKF无法处理相关性问题,即数据关联问题。严重情况下,数据关联的不准确将导致算法发散。

应用EKF同时进行地图创建与定位所面临的最主要问题是定位的实时性问题。因为位姿和基于外部传感器信息的环境特征具有不确定性,用不确定的位姿去更新特征地图和用不确定的环境特征去更新位姿,它们的相关性度量是必需的,且智能汽车与环境特征之间的相关性不能独立传播。因此,在位姿与环境特征更新过程中,需计算车辆与环境特征、环境特征与环境特征之间的交叉相关性对应的协方差矩阵。降低计算复杂度的研究主要集中在减少次要特征、改进地图表示和更新等方面。

2)基于粒子滤波的SLAM方法

粒子滤波定位是用一个随机加权粒子集合来获得概率分布的近似,因此它不要求噪声必须严格遵循高斯分布,进而可处理任意部分的噪声。

在粒子滤波定位初始,需要设置一个初始样本集合。集合中的每一个粒子都有相应的权值,代表智能汽车在该粒子所在位置的可能性。然后应用重要性采样技术在每个递归过程中首先根据运动模型预测样本中每个粒子的后验概率,通过感知模型计算每个样本的重要性因子,再根据重要性因子决定最可能的样本。这样经过多次递归迭代,权值大的样本可能被多次选中,而权值小的粒子则很可能被丢弃。于是,误差较大位置逐渐被更可能的位置取代,即逐渐得到了智能汽车的精确位置。粒子滤波被引入SLAM研究中,提出了一系列同步定位和地图创建算法。

(1)FastSLAM算法。

FastSLAM算法由Michael Montemerlo提出。为了解决EKF-SLAM算法在大范围真实环境中计算复杂和对于失败的数据关联敏感的问题,将SLAM问题分解为定位问题和基于位姿估计的路标集合估计问题。FastSLAM算法利用粒子滤波进行路径估计。路标位姿估计利用Kalman滤波实现,而每个不同的路标都采用独立的滤波器,用于路径估计条件下的路标位置估计。

(2)DP-SLAM算法。

FastSLAM算法的实现需要预先设置人工路标。为提高算法的实用性,Austin Eliazar等提出了DP-SLAM算法,不需要预先设置任何人工路标。该算法以激光雷达作为环境感知设备,使用粒子滤波器近似环境地图和移动智能汽车位姿的联合概率分布,进行同步定位和地图创建。

(3)基于Rao-Blackwellized粒子滤波的SLAM算法。

在Blackwellized算法中,每一个粒子代表智能汽车一种可能的运动轨迹,同时每一个粒子都具有自己的全局地图。它们和该粒子的轨迹相对应。因此,该算法能够较好地近似智能汽车位姿和环境地图的联合概率密度,但当粒子数目增多,环境地图的尺寸增大时,算法会占用大量的内存,而且在重采样过程中,全局地图进行拷贝需要大量的存储空间。在RB滤波SLAM的基础上,H.Jacky Chang等提出了基于预测的SLAM方法(P-SLAM),通过预测未探测区域,并将其与已知区域进行比较,实现同步定位与地图创建。

3)基于期望最大化的SLAM方法

基于Kalman模型的地图创建模型中,感知信息与存储信息之间的关系仅利用一次,以后不会重新考虑。如果未来的观测结果证明,智能汽车位置的先前估计是错误的或者不够精确的,也无法根据未来的信息及时修正先前的数据关联和地图更新。针对上述问题,可以使用基于EM(Expectation Maximization)算法的SLAM解决方案。该方案将地图创建认为是在基于智能汽车运动和感知特性的概率约束条件下的最大似然估计问题。模型基于EM算法对两个阶段(E步和M步)进行迭代处理,生成最可能的地图和智能汽车路径,达到似然空间的局部最大化。基于EM算法的同步地图创建与定位解决方法,充分利用过去若干时间点的数据和新的传感器数据,修改历史位置估计,因而对观测值具有鲁棒性,且观测的环境特征不必非常清晰,甚至可以是错误的。与EKF相比,绕过了对观测值与地图中元素数据关联的准确性的依赖,提高了算法的收敛性;但EM算法是局部离线最优方法,算法时间复杂度随时间递增,在M步最优计算中存在高维求解难的问题,制约了其在大规模环境下的应用。

4)基于信息滤波器的SLAM方法

与EKF相同,IF是一种参数滤波方法,同样对于运动和观测中产生的噪声采用高斯模型。IF与EKF的不同之处在于表示高斯噪声的形式:Kalman滤波方法中,采用均值μ和方差σ描述高斯噪声;信息滤波中采用规范化表示,由信息矩阵Ω=σ-1和信息向量ξ=σ-1μ描述。对于任意x~N(μ,σ),其概率表达式为:

其中,η=img为常数。高斯模型的规范化表达式为:

由于传统的EKF-SLAM方法在计算时间上与特征数量的平方成正比,严重影响了SLAM在大规模环境中的实时性,有学者提出了基于稀疏扩展信息滤波器(Sparse Extended Information Filters,SEIFS)的SLAM方法。该方法通过发掘SLAM问题的内在结构,将地图用环境特征的局部网状结构来表示,实现了定步长且更新时间与特征数量无关的SLAM方法。