CN103644903B - 基于分布式边缘无味粒子滤波的同步定位与地图构建方法 - Google Patents

基于分布式边缘无味粒子滤波的同步定位与地图构建方法 Download PDF

Info

Publication number
CN103644903B
CN103644903B CN201310424318.8A CN201310424318A CN103644903B CN 103644903 B CN103644903 B CN 103644903B CN 201310424318 A CN201310424318 A CN 201310424318A CN 103644903 B CN103644903 B CN 103644903B
Authority
CN
China
Prior art keywords
filter
particle
sub
robot
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201310424318.8A
Other languages
English (en)
Other versions
CN103644903A (zh
Inventor
裴福俊
李昊洋
武玫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN201310424318.8A priority Critical patent/CN103644903B/zh
Publication of CN103644903A publication Critical patent/CN103644903A/zh
Application granted granted Critical
Publication of CN103644903B publication Critical patent/CN103644903B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

本发明涉及一种基于分布式边缘无味粒子滤波的同步定位与地图构建方法,首先建立坐标系并初始化环境地图;然后分别给匹配成功的各路标点建立子滤波器;接着在机器人运动模型的基础上,分别在各子滤波器中产生粒子群,获得每个粒子的状态向量及其方差;引入噪声,利用无味变换计算扩展后的粒子状态向量,并更新扩展后的粒子优化粒子群;然后计算粒子权值并归一化,统计每个子滤波器的聚合数据并将数据传送给主滤波器;接着计算全局估计和方差;其次判断每个子滤波器的有效抽样尺度和采样阈值,对粒子退化严重的子滤波器进行重采样;然后输出机器人状态向量和其方差,并存入地图。最后使用卡尔曼滤波算法更新路标点状态,直到机器人不再运行为止。

Description

基于分布式边缘无味粒子滤波的同步定位与地图构建方法
一、技术领域
基于分布式边缘无味粒子滤波的同步定位与地图构建方法能够使机器人在未知环境中实现自主定位与地图创建,属于机器人自主导航领域。
二、背景技术
同步定位与地图构建(SimultaneousLocalizationandMapping,SLAM)其基本思想是:让机器人在未知环境中从未知位置开始移动,通过自身所带传感器扫描到的路标点的信息进行自身位置估计,同时构建增量式地图。自从移动机器人诞生以来,对定位问题的研究就和地图创建问题密切相关,因而同步定位与地图构建有着重要的理论与应用价值,被很多学者认为是实现机器人真正自主移动的关键,现已被广泛用于众多领域。
粒子滤波(ParticleFilter)被认为是目前最适于解决非线性非高斯模型的方法。近年来发展起来的基于分布式粒子滤波的同步定位与地图构建方法将SLAM中的状态向量分解为机器人状态(位姿)估计和路标点状态估计两部分,依据传感器在当前时刻测得的并已经在地图中存在的每个路标点(即匹配的路标点)分别建立子滤波器,从而实现对机器人位姿和路标的估计,能够有效提高系统的容错能力。因此,分布式粒子滤波相比其他方法更适于解决SLAM问题。然而,采用粒子滤波对SLAM进行状态估计无可避免的会受到粒子滤波固有问题的制约,因而存在以下主要的缺陷:
(1)粒子退化问题:随着迭代次数的增加,重要性权重的方差随时间递增,粒子权重逐渐集中到少数粒子上,有较大权值的粒子被多次选择,使得粒子集多样性变差,不足以用来近似表达后验概率分布,因而难以保证估计精度,导致滤波容易发散。
(2)重要性函数选择问题:一般粒子滤波算法选择先验概率密度作为重要密度函数,没有考虑当前测量值和模型噪声,从重要性概率密度中取样得到的样本与从真实后验概率密度采样得到的样本有很大偏差,从而影响估计精度。
三、发明内容
本发明针对现有分布式粒子滤波SLAM方法的不足,提出一种分布式边缘无味粒子滤波SLAM方法,以抑制粒子退化现象,提高系统的估计精度。
本发明方法的整体流程见图1。该方法的整体流程可分为三个部分:数据关联部分,状态估计部分及地图更新部分。其中数据关联部分包括在传感器测量范围内通过传感器测得环境路标点状态信息(即路标点与机器人的相对距离和角度),并与构建的环境地图中已存储的路标点相匹配(即该路标点已经在地图中存在);状态估计部分包括对所有匹配的路标点分别建立子滤波器并对机器人位姿进行估计,然后对各个子滤波器的估计结果进行汇总并将其传送给主滤波器,从而获得精确的机器人位姿估计;地图更新部分包括将传感器测得的周围环境信息加以处理,结合机器人位姿估计值完成从传感器观测到全局地图的映射,并对机器人和路标点位置信息进行实时更新。该方法首先进行初始化并建立坐标系。根据首次传感器扫描结果建立并存储初始环境地图。然后分别给传感器测得的能匹配路标点(首次扫描不考虑匹配)建立粒子滤波器滤波器,作为子滤波器并行分布处理各个传感器数据。接着在机器人运动模型的基础上,在各子滤波器中产生粒子群,并获得每个粒子的状态向量及其方差。引入噪声,扩展粒子的状态向量和方差的维数。经过无味变换,计算粒子状态的扩展向量,并对变换后的粒子群进行时间更新和测量更新。然后计算粒子权值并归一化,统计每个子滤波器的聚合数据并将数据传送给主滤波器。接着计算全局估计和方差,从而得到较为准确的机器人状态。其次分别计算各子滤波器的有效抽样尺度,根据每个子滤波器的有效粒子数和门限值间关系,对粒子退化严重的子滤波器进行重采样,并定期对主滤波器进行全局重采样。然后输出机器人状态向量和其方差,并存入地图。最后使用卡尔曼滤波算法对路标点状态和方差进行更新更新,时间后置为下一时刻,判断机器人是否继续运动,如继续则传感器重新扫描环境信息,获得新的路标点状态信息,若新测得的路标点能与地图中信息相匹配则建立子滤波器程序循环,否则将没匹配上的路标点状态直接存储到地图中,如机器人不继续运行则程序终止。本方法能够有效抑制粒子的退化现象,并具有很好的滤波精度。本发明在分布式SLAM方法的基础上选取易于采样的高斯分布函数近似机器人系统状态的真实分布,融入了当前观测值,使得重要性函数尽可能接近机器人系统状态的真实后验概率分布,从而提高算法的滤波精度;优化分布式粒子滤波中粒子的权值,减小权系数的方差,增加有效抽样尺度的估计值,从而解决粒子退化问题;在各个子滤波器自适应的根据样本情况进行重采样的同时定期进行全局重采样,从而保证粒子集的一致性。该方法具体包括如下步骤:
1)初始化。
建立坐标系,以机器人初始时刻的位置为坐标原点,以正东和正北方向为x和y轴的正方向;
全局地图初始化,机器人在初始位置,利用传感器扫描测得的路标点位置信息建立环境地图,并把它与机器人初始时刻的位姿(即机器人的位置和角度)一起作为全局地图进行存储;
2)地图匹配并分布式产生粒子群。
获取机器人k-1时刻测得的路标点状态信息,并与已在全局地图中存储的路标点信息相匹配(初始时刻不需要考虑匹配),对于k-1时刻测得的未匹配上的路标点状态信息,直接将其添加至全局地图,与地图中已存储的路标点信息一起用于下一时刻的路标点匹配;对于k-1时刻测得的能够匹配上的路标点分别对其建立子滤波器,所述的子滤波器均为粒子滤波器,用于并行分布式对机器人下一时刻的状态和路标点信息进行估计,从而提高算法的容错能力和估计精度;
然后,在机器人运动模型的基础上,加入均值为0的高斯白噪声,从而在每个子滤波器中产生位置随机粒子数相等的粒子群,粒子群中每一个粒子的状态代表机器人可能的状态,粒子群中每个粒子群的位置均在机器人测量位置周围,用以精确估计机器人实际位置;
由于当前时刻机器人的状态向量等于上一时刻机器人状态向量和机器人在两时刻间机器人状态的变化量之和,因此第j个子滤波器中第i个粒子在k-1时刻的状态向量为
X k - 1 i , j = X k - 2 i , j + ΔX i , j
其中,包含三个分量分别为第j个子滤波器中第i个粒子在k-1时刻的位置和角度,为第j个子滤波器中第i个粒子在k-2时刻的状态向量,ΔXi,j为在k-1与k-2机器人状态向量的变化量;
3)引入噪声扩展粒子维数。
引入噪声扩展粒子维数,对步骤2中的引入噪声来扩展该状态向量的维数,以获得扩展后的各个子滤波器中粒子的状态向量和方差;
扩展后的k-1时刻的第j个子滤波器中第i个粒子的状态向量为:
X k - 1 i , j , a = E [ X k - 1 i , j ] = X k - 1 i , j 0 0 ;
其方差为:
P k - 1 i , j , a = E [ ( X k - 1 i , j - X ‾ k - 1 j ) ( X k - 1 i , j - X ‾ k - 1 j ) T ] = p k - 1 i , j 0 0 0 Q 0 0 0 R
其中a为扩展后状态向量和其方差矩阵的维数,为k-1时刻第j个子滤波器中第i个粒子的状态向量,为k-1时刻第j个子滤波器中第i个粒子的状态向量的方差,过程噪声和测量噪声均为不相关的零均值高斯白噪声,其方差分别为Q和R;
4)通过无味卡尔曼滤波算法更新优化粒子群。
首先对步骤3中得到的扩展后的粒子状态向量进行无味变换,得到变换后的粒子的状态向量然后对其进行时间更新和测量更新,最后根据更新结果对粒子群进行更新优化;
时间更新具体如下:
首先把k-1时刻的每个粒子对机器人状态估计的变换后的粒子状态向量分别代入机器人运动模型f(·)和路标点观测模型h(·),得到每个粒子对k时刻机器人状态的一步预测向量和观测向量的一步预测向量
然后计算每个粒子的一阶统计特性的权系数和二阶统计特性的权系数
最后根据以上数据计算每个子滤波器中所有粒子的状态向量的一步预测加权和和观测向量的一步预测加权和
测量更新具体如下:
首先计算每个子滤波器中粒子对机器人状态的一步预测误差和观测的一步预测误差
然后计算每个子滤波器的滤波增益Kj
最终得到k时刻的每个子滤波器对机器人状态的估计和其方差的估计
更新优化粒子群具体如下:
根据得到的k时刻的状态和方差分别在每个子滤波器中构造一个均值为方差为的高斯分布的函数,并根据该函数重新生成每个子滤波器的粒子群,得到新的每个子滤波器中粒子的状态向量计算粒子权值并归一化;
5)根据步骤4中生成的粒子群,计算每个子滤波器中粒子的权重值,其中第j个子滤波器中第i个粒子在k时刻的粒子权值的计算公式如下:
ω ~ k i , j = P ( Z k i , j | X k i , j ) Σ i = 1 N ω k - 1 i , j P ( X k i , j | X k - 1 i , j ) Σ i = 1 N ω k - 1 i , j q ( X k i , j | Z k i , j , X k - 1 i , j )
其中,为优化粒子群后得到的第j个子滤波器中第i个粒子在k时刻的状态向量,为当前时刻与第j个子滤波器中第i个粒子相对应的传感器测得的观测信息,为第j个子滤波器中第i个粒子在k-1时刻的权值,N为子滤波器中粒子数,为关于的后验估计,为关于的后验估计,为关于的后验密度函数;
然后归一化权值,具体如下:
计算k时刻每个子滤波器中粒子的权值和,其中第j个子滤波器中粒子在k时刻的权值和的计算公式如下:
ω k j = Σ i = 1 N ω ~ k i , j
计算k时刻每个子滤波器中每个粒子的归一化权值,其中第j个子滤波器中第i个粒子在k时刻的归一化权值的计算公式如下:
ω ‾ k i , j = ω ~ k i , j ω k j
6)根据步骤5中得到的中每个粒子的归一化权值计算每个子滤波器在k时刻的聚合数据,其中,表示第j个子滤波器在k时刻的聚合数据;
S k j = Σ i = 1 N ω ‾ k i , j
X k j = Σ i = 1 N X k i , j ω ‾ k i , j
G k j = Σ i = 1 N ( ω ‾ k i , j ) 2
P k j = Σ i = 1 N ω ‾ k i , j X k i , j ( X k i , j ) T
其中,为优化粒子群后得到的第j个子滤波器中第i个粒子在k时刻的状态向量,N为子滤波器中粒子数,为未归一化时子滤波器中粒子权重的和,为未归一化时的本地估计,为机器人的状态估计误差,为粒子权重的平方和,用于重采样时计算有效粒子数;
7)把所有子滤波器中所有粒子的状态向量及其权值传送给主滤波器,通过主滤波器对子滤波器中所有数据进行统计计算,最终输出k时刻机器人的全局状态估计和方差从而得到较为准确的机器人状态;
8)重采样,分别计算各子滤波器的有效抽样尺度,当所有子滤波器的有效抽样尺度均大于采样阈值时,直接进行第9步,否则,对于有效抽样尺度均小于采样阈值的子滤波器重复步骤2至8;
9)把所有子滤波器得到的最后一次k时刻机器人的全局状态估计和方差作为最终结果输出,并计算机器人的全局状态估计的均方根误差,然后把所有子滤波器得到的最后一次k时刻机器人的全局估计存入全局地图;
10)路标点更新,使用卡尔曼滤波算法对k-1时刻的路标点的状态向量及其方差进行时间更新和量测更新,获得k时刻路标点状态量的全局估计和方差,并将其存入全局地图,与全局地图中已存储的路标点一起用于下一时刻的地图匹配的;
11)判断机器人是否继续运动,如果继续则跳转至步骤2,否则程序终止。
四、有益效果
本发明方法保留了分布式粒子滤波SLAM方法的分布式思想,将SLAM问题分解为对移动机器人的状态估计和基于估计路径的环境特征的位置估计,从而降低状态量的维数,能够在降低算法的计算复杂度的同时提高系统的容错能力。在此基础上,本发明方法选取的重要性函数易于采样,并引入了当前观测信息,能够有效近似概率密度的真实分布,从而提高SLAM的估计精度;通过采用边缘化算法优化粒子的权值,降低粒子重要性权值方差,有效抑制粒子退化现象,从而提高滤波精度。因此,本发明方法能够有效解决一般分布式粒子滤波SLAM方法的粒子退化问题,同时具有良好的滤波精度。
五、附图说明
图1:基于本发明方法的整体流程图;
图2:车辆机器人参数具体位置示意图;
图3:车辆机器人坐标系-建立机器人运动模型;
图4:车辆基于本发明方法和DPF方法进行同步定位与地图构建并与GPS数据相比较的效果图;
图5:用本发明方法和DPF方法进行同步定位与地图构建的均方根误差比较图,其中:
图5(a)为在两种方法下车辆x方向的均方根误差、图5(b)为在两种方法下车辆y方向的均方根误差。
六、具体实施方式
1、系统模型
建立坐标系,机器人运动模型和路标点的状态模型建立在机器人坐标系中,路标点的观测模型建立在传感器坐标系中,车辆机器人坐标系如图3所示。从概率的角度考虑,SLAM问题中移动机器人在k时刻的运动状态可由k-1时刻的机器人运动状态决定。假设环境中路标点是静止不动的,可建立如下机器人运动模型:
其中,分别为机器人在前后两时刻间的在x方向和y方向位置变化量和机器人角度变化量,α为前后两时刻间机器人角度的变化量,为根据角度变化量和前一时刻的机器人角度求出的现在时刻的机器人角度值,vc为机器人移动速度,为机器人在k时刻的状态,
以及路标点的状态模型,此处假设路标点静止不动:
X k + 1 | k I = X k | k I = x k | k I y k | k I
将机器人状态量与观测到的路标点的信息相联系,可得到如下路标点的观测模型:
其中,Z=(riβi)T为每一个路标点的观测状态,其中ri为第i个路标点的传感器测得的机器人与路标点间距离,βi为第i个路标点路标点到机器人与水平方向的夹角,XI=(xiyi)T为每个路标点的坐标,(XLYL)T为机器人当前坐标,a为角度系数,η是引入的观测噪声。
2、本发明基于分布式边缘无味粒子滤波的同步定位与地图构建方法,参照图1和图2,本发明方法的具体实施步骤包括如下:
步骤1:初始化。
建立坐标系,以机器人初始时刻的位置为坐标原点,以正东和正北方向为x和y轴的正方向;
全局地图初始化,机器人在初始位置,利用传感器扫描测得的路标点位置信息建立环境地图,并把它与机器人初始时刻的位姿(即机器人的位置和角度)一起作为全局地图进行存储;
步骤2:地图匹配并分布式产生粒子群。
获取机器人k-1时刻测得的路标点状态信息,并与已在全局地图中存储的路标点信息相匹配,对于k-1时刻测得的未匹配上的路标点状态信息,直接将其添加至全局地图;对于k-1时刻测得的能够匹配上的路标点分别对其建立子滤波器,所述的子滤波器均为粒子滤波器,用于并行分布式对机器人下一时刻的状态和路标点信息进行估计;
然后,在机器人运动模型的基础上,加入均值为0的高斯白噪声,从而在每个子滤波器中产生位置随机粒子数相等的粒子群,粒子群中每一个粒子的状态代表机器人可能的状态;
其中第j个子滤波器中第i个粒子在k-1时刻的状态向量为
X k - 1 i , j = X k - 2 i , j + ΔX i , j
其中,包含三个分量分别为第j个子滤波器中第i个粒子在k-1时刻的位置和角度,为第j个子滤波器中第i个粒子在k-2时刻的状态向量,ΔXi,j为在k-1与k-2机器人状态向量的变化量;
步骤3:引入噪声扩展粒子维数。
引入噪声扩展粒子维数,对步骤2中的引入噪声来扩展该状态向量的维数,以获得扩展后的各个子滤波器中粒子的状态向量和方差;
扩展后的k-1时刻的第j个子滤波器中第i个粒子的状态向量为:
X k - 1 i , j , a = E [ X k - 1 i , j ] = X k - 1 i , j 0 0
方差为:
P k - 1 i , j , a = E [ ( X k - 1 i , j - X ‾ k - 1 j ) ( X k - 1 i , j - X ‾ k - 1 j ) T ] = p k - 1 i , j 0 0 0 Q 0 0 0 R
其中,x为状态向量的维数,a为方差矩阵的维数,为k-1时刻第j个子滤波器中第i个粒子的状态向量,为k-1时刻第j个子滤波器中第i个粒子的状态向量的方差,过程噪声和测量噪声均为不相关的零均值高斯白噪声,其方差分别为Q和R;
步骤4:通过无味卡尔曼滤波算法更新优化粒子群。
通过无味卡尔曼滤波算法更新优化粒子群,具体为,首先对步骤3中得到的扩展后的粒子状态向量进行无味变换,得到变换后的粒子的状态向量然后对其进行时间更新和测量更新,最后根据更新结果对粒子群进行更新优化;
时间更新:
首先把k-1时刻的每个粒子对机器人状态估计的变换后的粒子状态向量分别代入机器人运动模型f(·)和路标点观测模型h(·),得到每个粒子对k时刻机器人状态的一步预测向量和观测向量的一步预测向量
然后计算每个粒子的一阶统计特性的权系数和二阶统计特性的权系数
最后根据以上数据计算每个子滤波器中所有粒子的状态向量的一步预测加权和和观测向量的一步预测加权和
其具体过程为:
X k | k - 1 i , j = f ( X ~ k - 1 i , j , a )
X ‾ k | k - 1 j = Σ i = 0 N W i , j m X k | k - 1 i , j
Z k | k - 1 i , j = h ( X ~ k - 1 i , j , a )
Z ‾ k | k - 1 j = Σ i = 0 N W i , j m Z k | k - 1 i , j
测量更新:
首先计算每个子滤波器中粒子对机器人状态的一步预测误差和观测的一步预测误差
然后计算每个子滤波器的滤波增益Kj
最终得到k时刻的每个子滤波器对机器人状态和其方差的估计;
其具体过程为:
P k | k - 1 j = Σ i = 0 N W i , j c [ X k | k - 1 i , j - X ‾ k | k - 1 j ] [ X k | k - 1 i . j - X ‾ k | k - 1 j ] T
P z k | k - 1 z k | k - 1 j = Σ i = 0 N W i , j c [ Z k | k - 1 i , j - Z ‾ k | k - 1 j ] [ Z k | k - 1 i , j - Z ‾ k | k - 1 j ] T
P x k | k - 1 z k | k - 1 j = Σ i = 0 N W i , j c [ X k | k - 1 i , j - X ‾ k | k - 1 j ] [ Z k | k - 1 i , j - Z ‾ k | k - 1 j ] T
K j = P x k | k - 1 z k | k - 1 j ( P z k | k - 1 z k | k - 1 j ) - 1
X ‾ k j = X ‾ k | k - 1 j + K j ( Z k - Z ‾ k | k - 1 j )
P ‾ k j = P k | k - 1 j - K j P z k | k - 1 z k | k - 1 j ( K j ) T
其中,Zk为k时刻路标点的观测向量;
最后,更新优化粒子群,
根据得到的k时刻的状态和方差分别在每个子滤波器中构造一个均值为方差为的高斯分布的函数,并根据该函数重新生成每个子滤波器的粒子群,得到新的每个子滤波器中粒子的状态向量
步骤5:计算粒子权值并归一化。
根据步骤4中生成的粒子群,计算每个子滤波器中粒子的权重值,其中第j个子滤波器中第i个粒子在k时刻的粒子权值的计算公式如下:
ω ~ k i , j = P ( Z k i , j | X k i , j ) Σ i = 1 N ω k - 1 i , j P ( X k i , j | X k - 1 i , j ) Σ i = 1 N ω k - 1 i , j q ( X k i , j | Z k i , j , X k - 1 i , j )
其中,为优化粒子群后得到的第j个子滤波器中第i个粒子在k时刻的状态向量,为当前时刻与第j个子滤波器中第i个粒子相对应的传感器测得的观测信息,为第j个子滤波器中第i个粒子在k-1时刻的权值,N为子滤波器中粒子数,为关于的后验估计,为关于的后验估计,为关于的后验密度函数;
然后归一化权值,具体如下:
计算每个子滤波器中粒子的权值和其中第j个子滤波器中粒子在k时刻的的权值和为的计算公式如下:
ω k j = Σ i = 1 N ω ~ k i , j
计算每个子滤波器中每个粒子的归一化权值其中第j个子滤波器中第i个粒子在k时刻的归一化权值的计算公式如下:
ω ‾ k i , j = ω ~ k i , j ω k j
步骤6:计算聚合数据
根据步骤5中得到的中每个粒子的归一化权值计算每个子滤波器在k时刻的聚合数据,其中,表示第j个子滤波器在k时刻的聚合数据;
S k j = Σ i = 1 N ω ‾ k i , j
X k j = Σ i = 1 N X k i , j ω ‾ k i , j
G k j = Σ i = 1 N ( ω ‾ k i , j ) 2
P k j = Σ i = 1 N ω ‾ k i , j X k i , j ( X k i , j ) T
其中,为优化粒子群后得到的第j个子滤波器中第i个粒子在k时刻的状态向量,N为子滤波器中粒子数,为未归一化时子滤波器中粒子权重的和,为未归一化时的本地估计,为机器人的状态估计误差,为粒子权重的平方和用于重采样时计算有效粒子数;
步骤7:建立主滤波器,并对子滤波器数据处理。
把子滤波器中所有粒子的状态向量及其权值传送给主滤波器,通过主滤波器对子滤波器中所有数据进行统计计算,最终输出k时刻机器人的全局状态估计和方差
所有子滤波器中粒子权重和为:
C k = Σ j = 1 J Σ i = 1 N ω ‾ k i , j = Σ j = 1 J S k j
全局估计为:
X ^ k = Σ j = 1 J Σ i = 1 N ω ‾ k i , j X k i , j = Σ j = 1 J X k j C k
全局方差为:
P ^ k = Σ j = 1 J P k j C k - X ^ k X ^ k T
其中J为子滤波器个数。
步骤8:重采样。
重采样,分别计算各子滤波器的有效抽样尺度,当所有子滤波器的有效抽样尺度均大于采样阈值时,直接进行第9步,否则,对于有效抽样尺度均小于采样阈值的子滤波器重复步骤2至8;
每个子滤波器的有效粒子数定义如下:
N ^ eff j = 1 Σ i = 1 N ( ω ‾ k i , j ) 2
其中,为第j个子滤波器的有效粒子数。
分别计算各子滤波器的有效粒子数,如果门限值,则对该子滤波器进行重采样。为了进一步保证粒子集的一致性还可以定期进行全局重采样,即对主滤波器进行重采样。
步骤9:输出最终结果。
把所有子滤波器得到的最后一次k时刻机器人的全局状态估计和方差作为最终结果输出,并计算机器人的全局状态估计的均方根误差,然后把所有子滤波器得到的最后一次k时刻机器人的全局估计存入全局地图;
通过计算算法的均方根误差函数,以验证算法的精度和性能。
位置均方根误差函数(RMSE)定义如下:
RMSE = 1 N Σ k = 1 N ( X k - 1 i , j - X ^ k ) 2
其中表示k时刻第j次采样的估计偏差。分别计算机器人在x和y方向上的位置均方根误差。
步骤10:路标点更新。
路标点更新,使用卡尔曼滤波算法对k-1时刻的路标点的状态向量及其方差进行时间更新和量测更新,获得k时刻路标点状态量的全局估计和方差,并将其存入全局地图,与全局地图中已存储的路标点一起用于下一时刻的地图匹配的;
假设环境信息不变,路标点下一时刻的位置信息仍然等于上一时刻,每个路标点状态模型的时间更新方程均为:
X k + 1 | k I = X k | k I
Pk+1|k=Pk|k+Q
其中,为路标点在k时刻的状态向量,为路标点状态在k时刻的一步预测向量,Pk|k为误差矩阵,Pk+1|k为一步预测误差。
量测方程为:
K k + 1 = P k + 1 | k H k + 1 T ( H k + 1 P k + 1 | k H k + 1 T + R ) - 1
X k + 1 | k + 1 I = X k + 1 | k I + K k + 1 ( Z k + 1 - H k + 1 X k + 1 | k I )
P k + 1 | k + 1 = P k + 1 | k - K k + 1 H k + 1 K k + 1 T
其中,Hk+1为k+1时刻的测量矩阵,Zk+1为k+1时刻的路标点观测向量。
为了进一步提高滤波精度可以引入过程噪声和量测噪声,Q和R分别为过程噪声和量测噪声的方差。
步骤11:判断机器人是否继续运动,如果继续则跳转至步骤2,否则程序终止。
3本发明方法的效果可以通过以下仿真实验进一步说明
1)仿真条件及参数
本方法所用传感器数据是由悉尼大学的研究人员在维多利亚公园利用激光测距传感器测得的,我们把其输入到计算机中,作为机器人传感器测得的路标点状态信息。车辆机器人参数为L=2.83,b=0.5,a=3.78,机器人初始位姿 X 0 = x 0 y 0 φ 0 T = 0 0 - 112 × π 180 T 过程噪声和量测噪声均为均值为0的高斯白噪声,每个子滤波器的粒子数均为N=285,仿真持续时间T=375s。
2)仿真内容及结果分析
在相同粒子数的条件下分别用本发明方法(DUMPF)和基于分布式粒子滤波(DPF)的同步定位与地图构建(SLAM)方法对传感器测量得的自然路标点的信息进行滤波估计,得到车辆和路标点位置估计,并和同步机器人自带GPS测得的数据相比较;同时计算本发明方法和分布式粒子滤波SLAM方法的估计均方根误差,仿真实验结果分别见图4和图5。
由图4可知,随着机器人运动时间的增加,分布式粒子滤波SLAM方法的估计精度逐渐变差。随着运动时间的增加,分布式粒子滤波SLAM方法估计得到的行驶轨迹已经明显偏离GPS数据,而本发明方法仍能很好地利用传感器信息对机器人位置进行估计。图中有些地方由于GPS覆盖盲区而不能获得GPS测量数据。
如图5所示,随着仿真时间的增加,分布式粒子滤波SLAM方法在x和y方向上的位置均方根误差逐渐增大且明显大于本发明方法,与分布式粒子滤波SLAM方法相比本发明方法的均方根误差平均值小,且不会随时间变化而大幅增加。
仿真结果表明:分布式边缘无味粒子滤波SLAM方法具有很好的滤波估计精度和性能,能够有效克服一般分布式粒子滤波SLAM方法粒子退化和估计精度低的缺点。

Claims (1)

1.基于分布式边缘无味粒子滤波的同步定位与地图构建方法,基于四轮机器人,其特征在于依次包括下述步骤:
1)初始化,
建立坐标系,以机器人初始时刻的位置为坐标原点;
全局地图初始化,机器人在初始位置,利用传感器扫描测得的路标点位置信息建立环境地图,并把它与机器人初始时刻的位姿一起作为全局地图进行存储;
2)获取机器人k-1时刻测得的路标点状态信息,并与已在全局地图中存储的路标点信息相匹配,对于k-1时刻测得的未匹配上的路标点状态信息,直接将其添加至全局地图,与地图中已存储的路标点信息一起用于下一时刻的路标点匹配;对于k-1时刻测得的能够匹配上的路标点分别对其建立子滤波器,所述的子滤波器均为粒子滤波器,用于并行分布式对机器人下一时刻的状态和路标点信息进行估计;
然后,在机器人运动模型的基础上,加入均值为0的高斯白噪声,从而在每个子滤波器中产生位置随机粒子数相等的粒子群,粒子群中每一个粒子的状态代表机器人可能的状态;
其中,第j个子滤波器中第i个粒子在k-1时刻的状态向量为
其中,分别为第j个子滤波器中第i个粒子在k-1时刻的位置和角度,为第j个子滤波器中第i个粒子在k-2时刻的状态向量,ΔXi,j为在k-1与k-2机器人状态向量的变化量;
3)引入噪声扩展粒子维数,对步骤2)中的引入噪声来扩展该状态向量的维数,以获得扩展后的各个子滤波器中粒子的状态向量和方差;
扩展后的k-1时刻的第j个子滤波器中第i个粒子的状态向量为:
X k - 1 i , j , a = X k - 1 i , j 0 0
其方差为: P k - 1 i , j , a = P k - 1 i , j 0 0 0 Q 0 0 0 R
其中,a为扩展后状态向量和其方差矩阵的维数,为k-1时刻第j个子滤波器中第i个粒子的状态向量,为k-1时刻第j个子滤波器中第i个粒子的状态向量的方差,过程噪声和测量噪声均为不相关的零均值高斯白噪声,其方差分别为Q和R;
4)通过无味卡尔曼滤波算法更新优化粒子群,具体为,对步骤3中得到的扩展后的粒子状态向量进行无味变换,得到变换后的粒子的状态向量然后对其进行时间更新和测量更新,最后根据更新结果对粒子群进行更新优化;
时间更新具体如下:
首先把k-1时刻的每个粒子对机器人状态估计的变换后的粒子状态向量分别代入机器人运动模型f(·)和路标点观测模型h(·),得到每个粒子对k时刻机器人状态的一步预测向量和观测向量的一步预测向量
然后计算每个粒子的一阶统计特性的权系数和二阶统计特性的权系数
最后根据以上数据计算每个子滤波器中所有粒子的状态向量的一步预测加权和和观测向量的一步预测加权和
测量更新具体如下:
首先计算每个子滤波器中粒子对机器人状态的一步预测误差和观测的一步预测误差 X k | k - 1 i , j - Z ‾ k | k - 1 j ;
然后计算每个子滤波器的滤波增益Kj
最终得到k时刻的每个子滤波器对机器人状态的估计和其方差的估计
更新优化粒子群具体如下:
根据得到的k时刻的和方差分别在每个子滤波器中构造一个均值为方差为的高斯分布的函数,并根据该函数重新生成每个子滤波器的粒子群,得到新的每个子滤波器中粒子的状态向量
5)计算每个子滤波器中的粒子权值并归一化;
根据步骤4)中重新生成的粒子群,计算每个子滤波器中粒子的权重,其中第j个子滤波器中第i个粒子在k时刻的粒子权重的计算公式如下:
ω ~ k i , j = P ( Z k i , j | X k i , j ) Σ i = 1 N ω k - 1 i , j P ( X k i , j | X k - 1 i , j ) Σ i = 1 N ω k - 1 i , j q ( X k i , j | Z k i , j , X k - 1 i , j )
其中,为优化粒子群后得到的第j个子滤波器中第i个粒子在k时刻的状态向量,为当前时刻与第j个子滤波器中第i个粒子相对应的传感器测得的观测信息,为第j个子滤波器中第i个粒子在k-1时刻的权值,N为子滤波器中粒子数,为关于的后验估计,为关于的后验估计,为关于的后验密度函数;
然后归一化权值,具体如下:
计算每个子滤波器中粒子的权值和其中第j个子滤波器中粒子在k时刻的的权值和为的计算公式如下:
ω k j = Σ i = 1 N ω ~ k i , j
计算每个子滤波器中每个粒子的归一化权值其中第j个子滤波器中第i个粒子在k时刻的归一化权值的计算公式如下:
ω ‾ k i , j = ω ~ k i , j ω k j
6)根据步骤5)中得到的每个粒子的归一化权值计算每个子滤波器在k时刻的聚合数据,其中,表示第j个子滤波器在k时刻的聚合数据;
S k j = Σ i = 1 N ω ‾ k i , j
X k j = Σ i = 1 N X k i , j ω ‾ k i , j
G k j = Σ i = 1 N ( ω ‾ k i , j ) 2
P k j = Σ i = 1 N ω ‾ k i , j X k i , j ( X k i , j ) T
其中,为优化粒子群后得到的第j个子滤波器中第i个粒子在k时刻的状态向量,N为子滤波器中粒子数,为未归一化时子滤波器中粒子权重的和,为未归一化时的本地估计,为机器人的状态估计误差,为粒子权重的平方和,用于重采样时计算有效粒子数;
7)把所有子滤波器中所有粒子的权值和状态向量传送给主滤波器,通过主滤波器对子滤波器中所有数据进行统计计算,最终输出k时刻机器人的全局状态估计和方差
8)重采样,分别计算k时刻各子滤波器的有效抽样尺度,当所有子滤波器的有效抽样尺度均大于采样阈值时,直接进行第9步,否则,对于有效抽样尺度均小于采样阈值的子滤波器重复步骤2)至步骤8);
9)把所有子滤波器得到的最后一次k时刻机器人的全局状态估计和方差作为最终结果输出,并计算机器人的全局状态估计的均方根误差,然后把所有子滤波器得到的最后一次k时刻机器人的全局估计存入全局地图;
10)路标点更新,使用卡尔曼滤波算法对k-1时刻的路标点的状态向量及其方差进行时间更新和量测更新,获得k时刻路标点状态量的全局估计和方差,并将其存入全局地图,与全局地图中已存储的路标点一起用于下一时刻的地图匹配的;
11)判断机器人是否继续运动,如果继续则跳转至步骤2),否则程序终止。
CN201310424318.8A 2013-09-17 2013-09-17 基于分布式边缘无味粒子滤波的同步定位与地图构建方法 Expired - Fee Related CN103644903B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310424318.8A CN103644903B (zh) 2013-09-17 2013-09-17 基于分布式边缘无味粒子滤波的同步定位与地图构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310424318.8A CN103644903B (zh) 2013-09-17 2013-09-17 基于分布式边缘无味粒子滤波的同步定位与地图构建方法

Publications (2)

Publication Number Publication Date
CN103644903A CN103644903A (zh) 2014-03-19
CN103644903B true CN103644903B (zh) 2016-06-08

Family

ID=50250155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310424318.8A Expired - Fee Related CN103644903B (zh) 2013-09-17 2013-09-17 基于分布式边缘无味粒子滤波的同步定位与地图构建方法

Country Status (1)

Country Link
CN (1) CN103644903B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104597900A (zh) * 2014-12-02 2015-05-06 华东交通大学 一种基于类电磁机制优化的FastSLAM方法
CN105467838B (zh) * 2015-11-10 2017-12-05 山西大学 一种随机有限集框架下的同步定位与地图构建方法
CN105509755B (zh) * 2015-11-27 2018-10-12 重庆邮电大学 一种基于高斯分布的移动机器人同步定位与地图构建方法
CN105333879B (zh) * 2015-12-14 2017-11-07 重庆邮电大学 同步定位与地图构建方法
CN107132504B (zh) * 2016-02-29 2020-12-22 富士通株式会社 基于粒子滤波的定位追踪装置、方法及电子设备
CN105606104B (zh) * 2016-03-17 2019-04-30 北京工业大学 基于航向辅助分布式slam的机器人自主导航方法
CN106441279B (zh) * 2016-12-08 2019-03-29 速感科技(北京)有限公司 基于自主定位和边缘探索的机器人定位方法、系统
CN106597435A (zh) * 2016-12-08 2017-04-26 北京康力优蓝机器人科技有限公司 实现基于粒子滤波slam算法的方法及系统
CN107589748A (zh) * 2017-08-21 2018-01-16 江苏科技大学 基于UnscentedFastSLAM算法的AUV自主导航方法
CN107741745B (zh) * 2017-09-19 2019-10-22 浙江大学 一种实现移动机器人自主定位与地图构建的方法
CN107589749B (zh) * 2017-09-19 2019-09-17 浙江大学 水下机器人自主定位与节点地图构建方法
CN109542093B (zh) * 2017-09-22 2022-06-07 华为技术有限公司 一种处理数据的方法和装置
CN109959377A (zh) * 2017-12-25 2019-07-02 北京东方兴华科技发展有限责任公司 一种机器人导航定位系统及方法
CN109489666B (zh) * 2018-11-14 2022-04-05 新疆工程学院 温室喷药机器人同步定位与地图构建的方法
CN109885046B (zh) * 2019-01-18 2020-10-02 中国矿业大学 一种基于粒子滤波的移动机器人定位加速方法
CN110455294A (zh) * 2019-08-28 2019-11-15 北京工业大学 基于ros环境下的多线程分布式slam系统的实现方法
EP3832262B1 (en) * 2019-12-05 2022-09-14 Aptiv Technologies Limited Methods and systems for determining an initial ego-pose for initialization of self-localization
CN110986956B (zh) * 2019-12-23 2023-06-30 苏州寻迹智行机器人技术有限公司 一种基于改进的蒙特卡洛算法的自主学习全局定位方法
CN112489176B (zh) * 2020-11-26 2021-09-21 香港理工大学深圳研究院 一种融合ESKF,g2o和点云匹配的紧耦合建图方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1923763A1 (en) * 2006-11-16 2008-05-21 Samsung Electronics Co., Ltd. Method, apparatus, and medium for estimating pose of mobile robot using particle filter
CN101920498A (zh) * 2009-06-16 2010-12-22 泰怡凯电器(苏州)有限公司 实现室内服务机器人同时定位和地图创建的装置及机器人
CN103105852A (zh) * 2011-11-14 2013-05-15 联想(北京)有限公司 位移计算方法和设备及即时定位与地图构建方法和设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1923763A1 (en) * 2006-11-16 2008-05-21 Samsung Electronics Co., Ltd. Method, apparatus, and medium for estimating pose of mobile robot using particle filter
CN101920498A (zh) * 2009-06-16 2010-12-22 泰怡凯电器(苏州)有限公司 实现室内服务机器人同时定位和地图创建的装置及机器人
CN103105852A (zh) * 2011-11-14 2013-05-15 联想(北京)有限公司 位移计算方法和设备及即时定位与地图构建方法和设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Evaluations of diferent simultaneous localization and mapping(SLAM) algorithms;Tuna G et al.;《Conference on IEEE Industrial Electronics Society》;20120131;第2963-2968页 *
分布式Unscented粒子滤波跟踪;肖延国等;《光学精密工程》;20090731;第17卷(第7期);第1707-1713页 *
基于分布式动态簇结构的WSN自适应目标跟踪算法;刘立阳等;《传感技术学报》;20120131;第25卷(第1期);第110-113页 *

Also Published As

Publication number Publication date
CN103644903A (zh) 2014-03-19

Similar Documents

Publication Publication Date Title
CN103644903B (zh) 基于分布式边缘无味粒子滤波的同步定位与地图构建方法
Dissanayake et al. A review of recent developments in simultaneous localization and mapping
CN106599368B (zh) 基于改进粒子提议分布和自适应粒子重采样的FastSLAM方法
CN101975575B (zh) 基于粒子滤波的被动传感器多目标跟踪方法
EP3159658A1 (en) Method and device for real-time target location and map creation
CN108645413A (zh) 一种移动机器人的同时定位与地图创建的动态纠正方法
CN108896047B (zh) 分布式传感器网络协同融合与传感器位置修正方法
CN106772524B (zh) 一种基于秩滤波的农业机器人组合导航信息融合方法
KR100816269B1 (ko) 언센티드 필터를 적용한 강인한 동시 위치 추정 및 지도작성 방법
CN106197428A (zh) 一种利用测量信息优化分布式ekf估计过程的slam方法
CN103940433B (zh) 一种基于改进的自适应平方根ukf算法的卫星姿态确定方法
Saulnier et al. Information theoretic active exploration in signed distance fields
CN107084714A (zh) 一种基于RoboCup3D的多机器人协作目标定位方法
CN111190211B (zh) 一种gps失效位置预测定位方法
CN105467838A (zh) 一种随机有限集框架下的同步定位与地图构建方法
CN105157704A (zh) 一种基于贝叶斯估计的粒子滤波重力辅助惯导匹配方法
CN110986956A (zh) 一种基于改进的蒙特卡洛算法的自主学习全局定位方法
Shojaei et al. Experimental study of iterated Kalman filters for simultaneous localization and mapping of autonomous mobile robots
Ruddick et al. Design and performance evaluation of an infotaxis-based three-dimensional algorithm for odor source localization
CN103575298A (zh) 基于自调节的ukf失准角初始对准方法
CN114608585A (zh) 一种移动机器人同步定位与建图方法及装置
Quintas et al. AUV path planning, navigation, and control using geophysical data
Duan et al. An improved FastSLAM algorithm for autonomous vehicle based on the strong tracking square root central difference Kalman filter
CN113050658A (zh) 一种基于狮群算法优化的slam算法
CN108507587A (zh) 一种基于坐标变换的三维车载定位导航方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160608

CF01 Termination of patent right due to non-payment of annual fee