发明名称 基于模糊-自适应的SLAM数据关联方法
摘要 基于模糊-自适应的SLAM数据关联方法,本方法针对现有SLAM数据关联方法的不足,提出一种基于误差椭圆和关联阈值的模糊-自适应数据关联方法,将模糊逻辑规则运用到特征观测值与估计值的数据关联中,并能够根据环境和噪声的变化自适应地确定阈值,从而改善数据关联效果;为了有效地防止虚假路标,本发明根据观测数据来跟踪环境中的最小路标间距,将欧式距离最近的两个观测路标中的一个作为虚拟的新路标加入到系统状态中,并将另一观测量与虚拟路标通过模糊规则进行数据关联。仿真实验和真实实验证明了该方法能够解决数据关联问题,并能很好的适应环境和噪声的变化,从而有效地防止虚假路标并降低观测丢弃率。
申请公布号 CN104966123A 申请公布日期 2015.10.07
申请号 CN201510419783.1 申请日期 2015.07.16
申请人 北京工业大学 发明人 裴福俊;武小平;王晓君
分类号 G06N7/02(2006.01)I 主分类号 G06N7/02(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 沈波
主权项 基于模糊‑自适应的SLAM数据关联方法,其特征在于:将归一化新息以及观测误差椭圆和估计误差椭圆的重叠比例进行模糊化后作为输入变量,将数据关联结果作为模糊推理的执行结果;通过建立适当的模糊推理规则,进行模糊推理,最终将输入映射到输出,实现数据关联;建立三输入单输出的模糊系统,由模糊逻辑思想,可以看到围绕其中的两个关键要素:1)误差椭圆;2)模糊化;误差椭圆即描述待定点位置各方向上误差分布规律的椭圆,它表示估计值以一定概率落入以真实值为圆心的椭圆区域;误差椭圆由半长轴、半短轴和长轴方向3个参数确定,由误差协方差矩阵可以求出相应的误差椭圆参数;以某一目标起始位置为坐标原点建立坐标轴,设其真实位置矢量为X=[x<sub>e</sub>,y<sub>e</sub>]<sup>T</sup>,其估计矢量为<img file="FDA0000761462920000011.GIF" wi="293" he="92" />其中x<sub>e</sub>,y<sub>e</sub>表示目标的真实位姿坐标,<img file="FDA0000761462920000012.GIF" wi="128" he="75" />表示目标的估计位姿坐标,则估计的误差协方差矩阵为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>C</mi><mo>=</mo><mfenced open = '[' close = ']'><mtable><mtr><mtd><msubsup><mi>&sigma;</mi><mi>x</mi><mn>2</mn></msubsup></mtd><mtd><mrow><msub><mi>&rho;&sigma;</mi><mi>x</mi></msub><msub><mi>&sigma;</mi><mi>x</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>&rho;&sigma;</mi><mi>x</mi></msub><msub><mi>&sigma;</mi><mi>x</mi></msub></mrow></mtd><mtd><msubsup><mi>&sigma;</mi><mi>y</mi><mn>2</mn></msubsup></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000761462920000013.GIF" wi="1088" he="198" /></maths>其中σ<sub>x</sub>,σ<sub>y</sub>分别为矢量坐标的方差,ρ是协方差相关系数,由于C是正定矩阵,所以|ρ|≤1;估计矢量<img file="FDA0000761462920000014.GIF" wi="57" he="76" />以概率P落入以真实位置矢量X为中心的椭圆区域,其椭圆区域表达式和概率积分公式如下,其中D为椭圆区域;<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msup><mrow><mo>(</mo><mover><mi>X</mi><mo>^</mo></mover><mo>-</mo><mi>X</mi><mo>)</mo></mrow><mi>T</mi></msup><msup><mi>C</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mrow><mo>(</mo><mover><mi>X</mi><mo>^</mo></mover><mo>-</mo><mi>X</mi><mo>)</mo></mrow><mo>&le;</mo><msup><mi>D</mi><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000761462920000015.GIF" wi="1166" he="83" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>P</mi><mo>=</mo><munder><mstyle><mrow><mo>&Integral;</mo><mo>&Integral;</mo></mrow></mstyle><mrow><msup><mrow><mo>(</mo><mrow><mover><mi>X</mi><mo>^</mo></mover><mo>-</mo><mi>X</mi></mrow><mo>)</mo></mrow><mi>T</mi></msup><msup><mi>C</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mrow><mo>(</mo><mrow><mover><mi>X</mi><mo>^</mo></mover><mo>-</mo><mi>X</mi></mrow><mo>)</mo></mrow><mo>&le;</mo><msup><mi>D</mi><mn>2</mn></msup></mrow></munder><mfrac><mn>1</mn><mrow><mn>2</mn><mi>&pi;</mi><msqrt><mrow><mo>|</mo><mi>C</mi><mo>|</mo></mrow></msqrt></mrow></mfrac><mi>exp</mi><mrow><mo>{</mo><mrow><mo>-</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><msup><mrow><mo>(</mo><mrow><mover><mi>X</mi><mo>^</mo></mover><mo>-</mo><mi>X</mi></mrow><mo>)</mo></mrow><mi>T</mi></msup><msup><mi>C</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mrow><mo>(</mo><mrow><mover><mi>X</mi><mo>^</mo></mover><mo>-</mo><mi>X</mi></mrow><mo>)</mo></mrow></mrow><mo>}</mo></mrow><mi>d</mi><mi>x</mi><mi>d</mi><mi>y</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000761462920000016.GIF" wi="1501" he="170" /></maths>为推导椭圆区域D与概率P的关系,进行变量替换,令<img file="FDA0000761462920000017.GIF" wi="558" he="104" />对式(3)的积分区域进行替换,则该式可以写成:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>P</mi><mo>=</mo><munder><mstyle><mrow><mo>&Integral;</mo><mo>&Integral;</mo></mrow></mstyle><mrow><msup><mi>&zeta;</mi><mn>2</mn></msup><mo>+</mo><msup><mi>&eta;</mi><mn>2</mn></msup><mo>&le;</mo><msup><mi>D</mi><mn>2</mn></msup></mrow></munder><mfrac><mn>1</mn><mrow><mn>2</mn><mi>&pi;</mi></mrow></mfrac><mi>exp</mi><mrow><mo>{</mo><mrow><mo>-</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mrow><mo>(</mo><mrow><msup><mi>&zeta;</mi><mn>2</mn></msup><mo>+</mo><msup><mi>&eta;</mi><mn>2</mn></msup></mrow><mo>)</mo></mrow></mrow><mo>}</mo></mrow><mi>d</mi><mi>&zeta;</mi><mi>d</mi><mi>&eta;</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000761462920000018.GIF" wi="1480" he="161" /></maths>再将ζ和η转换到极坐标下,令ζ=r sinθ,η=r cosθ可得:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>p</mi><mo>=</mo><mfrac><mn>1</mn><mrow><mn>2</mn><mi>&pi;</mi></mrow></mfrac><munderover><mo>&Integral;</mo><mn>0</mn><mrow><mn>2</mn><mi>&pi;</mi></mrow></munderover><mo>{</mo><mrow><munderover><mo>&Integral;</mo><mn>0</mn><mi>D</mi></munderover><mi>exp</mi><mrow><mo>(</mo><mrow><mo>-</mo><mfrac><msup><mi>r</mi><mn>2</mn></msup><mn>2</mn></mfrac></mrow><mo>)</mo></mrow><mi>r</mi><mi>d</mi><mi>r</mi></mrow><mo>}</mo><mi>d</mi><mi>&theta;</mi><mo>=</mo><mn>1</mn><mo>-</mo><mi>exp</mi><mrow><mo>(</mo><mo>-</mo><msup><mi>D</mi><mn>2</mn></msup><mo>/</mo><mn>2</mn><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000761462920000019.GIF" wi="1510" he="166" /></maths>式中θ为长轴方向角,可得椭圆区域D与概率P具有如下关系<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mi>D</mi><mo>=</mo><msqrt><mrow><mo>-</mo><mn>2</mn><mi>l</mi><mi>n</mi><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>P</mi><mo>)</mo></mrow></mrow></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000761462920000021.GIF" wi="1117" he="91" /></maths>通常使用半长轴a、半短轴b和长轴方向θ三个参数确定椭圆,这三个参数通过协方差C和概率P计算;利用式(1)可将椭圆<img file="FDA0000761462920000022.GIF" wi="554" he="85" />表示为以下形式:<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mfrac><mn>1</mn><mrow><mn>1</mn><mo>-</mo><msup><mi>&rho;</mi><mn>2</mn></msup></mrow></mfrac><mrow><mo>&lsqb;</mo><mrow><mfrac><msup><mrow><mo>(</mo><mrow><mi>x</mi><mo>-</mo><mover><mi>x</mi><mo>^</mo></mover></mrow><mo>)</mo></mrow><mn>2</mn></msup><msubsup><mi>&sigma;</mi><mi>x</mi><mn>2</mn></msubsup></mfrac><mo>+</mo><mfrac><msup><mrow><mo>(</mo><mrow><mi>y</mi><mo>-</mo><mover><mi>y</mi><mo>^</mo></mover></mrow><mo>)</mo></mrow><mn>2</mn></msup><msubsup><mi>&sigma;</mi><mi>y</mi><mn>2</mn></msubsup></mfrac><mo>-</mo><mfrac><mrow><mn>2</mn><mi>&rho;</mi><mrow><mo>(</mo><mrow><mi>x</mi><mo>-</mo><mover><mi>x</mi><mo>^</mo></mover></mrow><mo>)</mo></mrow><mrow><mo>(</mo><mrow><mi>y</mi><mo>-</mo><mover><mi>y</mi><mo>^</mo></mover></mrow><mo>)</mo></mrow></mrow><mrow><msubsup><mi>&sigma;</mi><mi>x</mi><mn>2</mn></msubsup><msubsup><mi>&sigma;</mi><mi>y</mi><mn>2</mn></msubsup></mrow></mfrac></mrow><mo>&rsqb;</mo></mrow><mo>=</mo><msup><mi>D</mi><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000761462920000023.GIF" wi="1514" he="188" /></maths>若ρ=0,上式变为:<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><mfrac><msup><mrow><mo>(</mo><mi>x</mi><mo>-</mo><mover><mi>x</mi><mo>^</mo></mover><mo>)</mo></mrow><mn>2</mn></msup><msubsup><mi>&sigma;</mi><mi>x</mi><mn>2</mn></msubsup></mfrac><mo>+</mo><mfrac><msup><mrow><mo>(</mo><mi>y</mi><mo>-</mo><mover><mi>y</mi><mo>^</mo></mover><mo>)</mo></mrow><mn>2</mn></msup><msubsup><mi>&sigma;</mi><mi>y</mi><mn>2</mn></msubsup></mfrac><mo>=</mo><msup><mi>D</mi><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000761462920000024.GIF" wi="1168" he="172" /></maths>利用σ<sub>x</sub>和σ<sub>y</sub>可直接得到:当σ<sub>x</sub>≥σ<sub>y</sub>时,a=Dσ<sub>x</sub>,b=Dσ<sub>y</sub>,θ=0;当σ<sub>x</sub><σ<sub>y</sub>时,a=Dσ<sub>y</sub>,b=Dσ<sub>x</sub>,<img file="FDA0000761462920000025.GIF" wi="166" he="116" />若ρ≠0,进行坐标变换:<maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><mi>u</mi><mo>=</mo><mrow><mo>(</mo><mi>x</mi><mo>-</mo><mover><mi>x</mi><mo>^</mo></mover><mo>)</mo></mrow><mi>c</mi><mi>o</mi><mi>s</mi><mi>&theta;</mi><mo>+</mo><mrow><mo>(</mo><mi>y</mi><mo>-</mo><mover><mi>y</mi><mo>^</mo></mover><mo>)</mo></mrow><mi>s</mi><mi>i</mi><mi>n</mi><mi>&theta;</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000761462920000026.GIF" wi="1189" he="82" /></maths><maths num="0010" id="cmaths0010"><math><![CDATA[<mrow><mi>v</mi><mo>=</mo><mo>-</mo><mrow><mo>(</mo><mi>x</mi><mo>-</mo><mover><mi>x</mi><mo>^</mo></mover><mo>)</mo></mrow><mi>s</mi><mi>i</mi><mi>n</mi><mi>&theta;</mi><mo>+</mo><mrow><mo>(</mo><mi>y</mi><mo>-</mo><mover><mi>y</mi><mo>^</mo></mover><mo>)</mo></mrow><mi>c</mi><mi>o</mi><mi>s</mi><mi>&theta;</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000761462920000027.GIF" wi="1192" he="86" /></maths>椭圆在新坐标系的表达式为:<maths num="0011" id="cmaths0011"><math><![CDATA[<mrow><mfrac><msup><mi>u</mi><mn>2</mn></msup><msubsup><mi>&sigma;</mi><mi>u</mi><mn>2</mn></msubsup></mfrac><mo>+</mo><mfrac><msup><mi>v</mi><mn>2</mn></msup><msubsup><mi>&sigma;</mi><mi>&nu;</mi><mn>2</mn></msubsup></mfrac><mo>=</mo><msup><mi>D</mi><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>11</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000761462920000028.GIF" wi="1163" he="157" /></maths>此时下式成立:E|dudv|=ρσ<sub>x</sub>σ<sub>y</sub>(cos<sup>2</sup>θ<sup>‑</sup>sin<sup>2</sup>θ)+(σ<sub>x</sub><sup>2</sup>+σ<sub>y</sub><sup>2</sup>)cosθsinθ=0    (12)并且<maths num="0012" id="cmaths0012"><math><![CDATA[<mrow><msubsup><mi>&sigma;</mi><mi>u</mi><mn>2</mn></msubsup><mo>=</mo><msubsup><mi>&sigma;</mi><mi>x</mi><mn>2</mn></msubsup><msup><mi>cos</mi><mn>2</mn></msup><mi>&theta;</mi><mo>+</mo><msubsup><mi>&sigma;</mi><mi>y</mi><mn>2</mn></msubsup><msup><mi>sin</mi><mn>2</mn></msup><mi>&theta;</mi><mo>+</mo><mn>2</mn><msub><mi>&rho;&sigma;</mi><mi>x</mi></msub><msub><mi>&sigma;</mi><mi>y</mi></msub><mi>s</mi><mi>i</mi><mi>n</mi><mi>&theta;</mi><mi>c</mi><mi>o</mi><mi>s</mi><mi>&theta;</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>13</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000761462920000029.GIF" wi="1427" he="90" /></maths><maths num="0013" id="cmaths0013"><math><![CDATA[<mrow><msubsup><mi>&sigma;</mi><mi>v</mi><mn>2</mn></msubsup><mo>=</mo><msubsup><mi>&sigma;</mi><mi>x</mi><mn>2</mn></msubsup><msup><mi>sin</mi><mn>2</mn></msup><mi>&theta;</mi><mo>+</mo><msubsup><mi>&sigma;</mi><mi>y</mi><mn>2</mn></msubsup><msup><mi>cos</mi><mn>2</mn></msup><mi>&theta;</mi><mo>-</mo><mn>2</mn><msub><mi>&rho;&sigma;</mi><mi>x</mi></msub><msub><mi>&sigma;</mi><mi>y</mi></msub><mi>s</mi><mi>i</mi><mi>n</mi><mi>&theta;</mi><mi>c</mi><mi>o</mi><mi>s</mi><mi>&theta;</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>14</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA00007614629200000210.GIF" wi="1427" he="89" /></maths>最终获得误差椭圆的参数:半长轴:a=max(Dσ<sub>u</sub>,Dσ<sub>v</sub>)               (15)半短轴:b=min(Dσ<sub>u</sub>,Dσ<sub>v</sub>)             (16)长轴方向角:<maths num="0014" id="cmaths0014"><math><![CDATA[<mrow><mi>&theta;</mi><mo>=</mo><mfenced open = '{' close = ''><mtable><mtr><mtd><mrow><mfrac><mn>1</mn><mn>2</mn></mfrac><msup><mi>tg</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mrow><mo>(</mo><mfrac><mrow><mn>2</mn><msub><mi>&sigma;</mi><mi>x</mi></msub><msub><mi>&sigma;</mi><mi>y</mi></msub></mrow><mrow><msubsup><mi>&sigma;</mi><mi>x</mi><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>&sigma;</mi><mi>y</mi><mn>2</mn></msubsup></mrow></mfrac><mo>)</mo></mrow></mrow></mtd><mtd><mrow><msub><mi>&sigma;</mi><mi>x</mi></msub><mo>&gt;</mo><msub><mi>&sigma;</mi><mi>y</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><mfrac><mn>1</mn><mn>2</mn></mfrac><msup><mi>tg</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mrow><mo>(</mo><mfrac><mrow><mn>2</mn><msub><mi>&sigma;</mi><mi>x</mi></msub><msub><mi>&sigma;</mi><mi>y</mi></msub></mrow><mrow><msubsup><mi>&sigma;</mi><mi>x</mi><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>&sigma;</mi><mi>y</mi><mn>2</mn></msubsup></mrow></mfrac><mo>)</mo></mrow><mo>+</mo><mfrac><mi>&pi;</mi><mn>2</mn></mfrac></mrow></mtd><mtd><mrow><msub><mi>&sigma;</mi><mi>x</mi></msub><mo>&lt;</mo><msub><mi>&sigma;</mi><mi>y</mi></msub></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>17</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000761462920000031.GIF" wi="1132" he="330" /></maths>当σ<sub>x</sub>=σ<sub>y</sub>时,若ρ>0,则<img file="FDA0000761462920000032.GIF" wi="156" he="116" />若ρ<0,则<img file="FDA0000761462920000033.GIF" wi="230" he="132" />表1列出了几种误差椭圆以及所对应估计值落入其椭圆区域的概率;表1误差椭圆及其概率<img file="FDA0000761462920000034.GIF" wi="1395" he="523" />若选择较小的概率值,则椭圆区域面积较小,有较多的估计点被排除在区域之外;若选择较大的概率值,则椭圆区域面积较大,落入误差椭圆的估计点也比较多;为了获得较高的数据关联正确率,同时考虑到算法计算量问题,要选择适当的误差椭圆进行计算;对于特征密度较大的环境,选择较小的误差椭圆可以降低计算量,同时避免一些错误数据关联;对于特征分布稀疏的环境,选择较大的误差椭圆能保证关联正确率,同时减少丢弃正确关联假设的可能;另外环境中噪声干扰和传感器观测的不确定性也会对误差椭圆的选取产生一定的影响;对于每一时刻传感器获得的观测信息中的某一观测值和环境地图中某一待匹配特征状态估计值,利用上述方法分别计算它们对应的误差椭圆;为了保证误差椭圆具有实际意义,要避免长轴出现“无穷大”的情况,因此设定一个阈值,当计算得到的椭圆半长轴值超过阈值时,认为该观测值为无效数据,无需对其进行关联匹配;当半长轴在阈值范围内,才继续对其进行关联处理;①归一化新息及其模糊化对于每一个特征的一对椭圆间有一个最大的重叠区域,这个区域在椭圆中所占比例可以反映观测——估计对之间的相关性;两个误差椭圆相离(可将两椭圆相切视为这类相对位置的特殊情况),分别为两椭圆中心连线与椭圆的交点,此时residual≥1;两个误差椭圆相交,且两椭圆中心不在重叠区域中,A仍为两椭圆中心连线与椭圆的交点,此时1/2≤residual≤1;两个椭圆相交,且圆心落入重叠区域内为两椭圆圆中心连线的延长线与椭圆的交点,此时0≤residual≤1/2;两椭圆的圆心重合,将此时的归一化新息定义为0;定义归一化新息如下,其中O<sub>1</sub>,O<sub>2</sub>为两椭圆的中心;<maths num="0015" id="cmaths0015"><math><![CDATA[<mrow><mi>r</mi><mi>e</mi><mi>s</mi><mi>i</mi><mi>d</mi><mi>u</mi><mi>a</mi><mi>l</mi><mo>=</mo><mfrac><mrow><mo>|</mo><mrow><msub><mi>O</mi><mn>1</mn></msub><msub><mi>O</mi><mn>2</mn></msub></mrow><mo>|</mo></mrow><mrow><mrow><mo>|</mo><mrow><msub><mi>O</mi><mn>1</mn></msub><msub><mi>A</mi><mn>1</mn></msub></mrow><mo>|</mo></mrow><mo>+</mo><mrow><mo>|</mo><mrow><msub><mi>O</mi><mn>2</mn></msub><msub><mi>A</mi><mn>2</mn></msub></mrow><mo>|</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>18</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000761462920000041.GIF" wi="1206" he="164" /></maths>将上述清晰的归一化新息按照语言模糊集进行模糊化,用于描述归一化新息的模糊语言变量为Very close、Close、Medium、Far和Very far,模糊化后的变量也将被映射到五个模糊集合中;②两误差椭圆重合比例及其模糊化对于几种误差椭圆位置关系中,特征状态估计值和观测值对应的误差椭圆的重叠区域能反映出它们之间的关联关系;直观上来看,重叠区域的面积越大,估计值和观测值的关联程度越大,但估计值和观测值的不确定性受到环境噪声、观测噪声、系统噪声等多种因素的影响,因此其误差椭圆的大小也是不断变化的;为了对误差椭圆重叠区域能反映出的关联程度进行定量考察,将重叠区域面积与两椭圆面积之比作为输入变量;对于两椭圆相交形成的重叠区域,难以直接计算其面积;本发明使用八边形近似的方法,首先在椭圆内根据半长轴和半短轴与椭圆交点建立对称八边形,就可以将两个椭圆相交的重叠区域近似为两八边形的重叠区域,然后再将重叠区域分解为若干个三角形,三角形的面积是易于计算的,这样就可以得到两椭圆重叠面积的近似值;将两误差椭圆的重叠区域近似为两个八边形重叠区域,这是一个多边形区域,将其再划分为四个三角形,每个三角形的面积可通过海伦公式计算:<maths num="0016" id="cmaths0016"><math><![CDATA[<mrow><msub><mi>S</mi><mi>i</mi></msub><mo>=</mo><msqrt><mrow><mi>p</mi><mrow><mo>(</mo><mi>p</mi><mo>-</mo><mi>a</mi><mo>)</mo></mrow><mrow><mo>(</mo><mi>p</mi><mo>-</mo><mi>b</mi><mo>)</mo></mrow><mrow><mo>(</mo><mi>p</mi><mo>-</mo><mi>c</mi><mo>)</mo></mrow></mrow></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>19</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000761462920000042.GIF" wi="1236" he="98" /></maths>式中:p=(a+b+c)/2,a、b、c分别为三角形的三条边长;最终两椭圆重叠区域面积area近似为三角形面积之和:<maths num="0017" id="cmaths0017"><math><![CDATA[<mrow><mi>a</mi><mi>r</mi><mi>e</mi><mi>a</mi><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>S</mi><mi>i</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>20</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000761462920000051.GIF" wi="1254" he="136" /></maths>再分别计算重叠区域在每个椭圆中所占比例:per<sub>obs</sub>=area/ellipse<sub>obs</sub>              (21)per<sub>est</sub>=area/ellipse<sub>est</sub>               (22)其中per<sub>obs</sub>和per<sub>est</sub>分别为特征观测值和特征估计值对应的误差椭圆的重叠区域在各自椭圆中所占比例,ellipse<sub>obs</sub>和ellipse<sub>est</sub>分别为两误差椭圆的面积;定义描述椭圆重叠区域比例的模糊语言变量为Seldom、Little、Medium、Most和Major,这些模糊集合对应的隶属函数,将清晰的重叠比例量映射到上述模糊集合中进行模糊化处理;将待匹配的特征观测值和特征估计值的关联程度作为模糊推理系统的输出值,记作Degree,其取值在[0,1]之间;定义描述关联程度的模糊语言变量为VeryLow、Low、Medium、High和Very High,这些模糊集合对应的隶属函数,将清晰地输出变量映射到模糊集合中进行模糊化;数据关联算法除了要有正确的关联率之外,还需要防止引入虚假的新路标;其由两种途径产生:a、将已有环境路标的观测错误判断为新路标;b、将虚假的环境路标观测判断为新的路标;其中第一种途径的影响更为严重,在特征环境中,将一个路标识别为两个路标将导致在两者之间分配该路标的观测数据错误;定义传感器返回M个观测量,记为z={z<sub>1</sub>,...,z<sub>m</sub>};对于第m个观测量z<sub>m</sub>,计算z<sub>m</sub>与地图中每一个路标之间的马氏距离D<sub>e</sub>,记其中最小的为D<sub>m</sub>。为了有效地防止虚假路标,在基于固定关联阈值G<sub>1</sub>的基础上,引入增广阈值G<sub>2</sub>;若D<sub>m</sub><G<sub>1</sub>,则观测值与环境中的路标可作为关联对;若G<sub>2</sub><D<sub>m</sub>,则其观测值作为一个新路标的观测;若G<sub>1</sub>≤D<sub>m</sub>≤G<sub>2</sub>,则丢弃该观测;用自适应的方法来调节增广阈值G<sub>2</sub>;其方法如下:1)计算当前传感器观测中距离最近的两个观测:z<sub>m</sub>,z<sub>n</sub>;2)定义当前机器人位姿估计为X<sup>v</sup>和P<sup>v</sup>,将z<sub>m</sub>作为虚拟的新路标加入到系统状态中,即X=[X<sup>v</sup> g(z<sub>m</sub>)]                    (23)<maths num="0018" id="cmaths0018"><math><![CDATA[<mrow><mi>P</mi><mo>=</mo><mfenced open = '[' close = ']'><mtable><mtr><mtd><msup><mi>P</mi><mi>v</mi></msup></mtd><mtd><mrow><msub><mi>G</mi><mi>v</mi></msub><mo>&CenterDot;</mo><msup><mi>P</mi><mi>v</mi></msup></mrow></mtd></mtr><mtr><mtd><mrow><msup><mi>P</mi><mi>v</mi></msup><mo>&CenterDot;</mo><msubsup><mi>G</mi><mi>v</mi><mi>T</mi></msubsup></mrow></mtd><mtd><mrow><msub><mi>G</mi><mi>v</mi></msub><mo>&CenterDot;</mo><msup><mi>P</mi><mi>v</mi></msup><mo>&CenterDot;</mo><msubsup><mi>G</mi><mi>v</mi><mi>T</mi></msubsup><mo>+</mo><msub><mi>G</mi><mi>z</mi></msub><mo>&CenterDot;</mo><mi>R</mi><mo>&CenterDot;</mo><msubsup><mi>G</mi><mi>z</mi><mi>T</mi></msubsup></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>24</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000761462920000061.GIF" wi="1196" he="171" /></maths>其中,g(z<sub>m</sub>)为逆观测模型,G<sub>v</sub>和G<sub>z</sub>分别为g关于X<sup>v</sup>和z<sub>m</sub>的雅克比矩阵,R为观测噪声;3)将z<sub>n</sub>作为虚拟路标的观测量,并计算记录z<sub>n</sub>与虚拟路标之间的马氏距离D<sub>e</sub>;4)如果观测只有一个观测量,则D<sub>e</sub>取为所有已得到的{D<sub>e</sub>}中的最小值;5)G<sub>2</sub>=max(D<sub>e</sub>,G<sub>2low</sub>),其中G<sub>2low</sub>为设定的下限值;在最近邻关联算法中,错误的数据关联将导致SLAM过程的发散,因此通常设置较低的关联阈值来保证数据关联的正确性;但是较低的关联阈值将导致较高的观测丢弃率,为了使数据关联算法能够根据系统状态和环境中路标的分布情况来自适应的调节关联阈值,提出与自适应增广阈值类似的关联阈值设定方法;其方法如下:1)首先将关联阈值G<sub>1</sub>初始化为预先设定的关联阈值下限D<sub>low</sub>,然后按下面设置自适应关联阈值G<sub>1</sub>;2)当首次观测到多个路标时,在上节中得到的马氏距离D<sub>e</sub>后,取G<sub>1</sub>=D<sub>e</sub>/4;3)在后续观测中,G<sub>1</sub>=min{G<sub>1</sub>,D<sub>e</sub>/4},即G<sub>1</sub>取为所有{D<sub>e</sub>}中最小值的1/4;4)当G<sub>1</sub>≤D<sub>low</sub>时,为防止过低的关联成功率,取G<sub>1</sub>=D<sub>low</sub>;通过以上内容的介绍,基于模糊‑自适应的SLAM数据关联方法其特征在于将模糊逻辑规则运用到特征观测值与估计值的数据关联中,并能够根据环境和噪声的变化自适应地确定阈值,从而改善数据关联效果,具体方法步骤如下:Step1:获取特征地图信息F<sub>j</sub>(j=1,2,...,n),传感器测量信息Z<sub>i</sub>(i=1,2,...,m),通过传感器观测到的特征为g<sub>j</sub>;Step2:计算当前观测中欧氏距离最近的两个观测:z<sub>m</sub>,z<sub>n</sub>;Step3:将z<sub>m</sub>作为虚拟的新路标加入到系统状态中,如式(23)与(24);Step4:将z<sub>n</sub>作为虚拟路标的观测量;Step5:根据特征观测和估计的误差协方差矩阵,计算特征观测值z<sub>n</sub>与虚拟路标间对应的误差椭圆,其误差椭圆的参数如式(15)与(17);Step6:计算误差椭圆中心距离即新息,根据式(18)进行归一化处理,然后将其映射到模糊集合;Step7:计算误差椭圆的重叠区域在两椭圆中所占的面积比例,并进行模糊化处理;Step8:将模糊化输入变量应用到模糊规则中,输出值是反映关联程度的模糊变量;Step9:对模糊化的输出结果进行处理,得到单一关联变量,并由此得出一对观测——估计的马氏距离D<sub>e</sub>;Step10:取关联阈值G<sub>1</sub>=D<sub>e</sub>/4,并在后续观测中根据反馈回来的D<sub>e</sub>自适应的改变关联阈值;若G<sub>1</sub>≤D<sub>low</sub>,则取G<sub>1</sub>=D<sub>low</sub>;Step11:增广阈值G<sub>2</sub>=max(D<sub>e</sub>,G<sub>2low</sub>),在后续观测中根据反馈回来的D<sub>e</sub>自适应的改变增广阈值;Step12:根据前一时刻的自适应的增广阈值G<sub>2</sub>及关联阈值G<sub>1</sub>来确定当前时刻z<sub>m</sub>是否作为关联路标进行系统更新,还是作为一个新的路标的观测;当D<sub>e</sub><G<sub>1</sub>时,则观测值z<sub>m</sub>与路标F<sub>i</sub>为可接受关联对;当D<sub>e</sub>>G<sub>2</sub>,则z<sub>m</sub>将作为一个新的路标观测。
地址 100124 北京市朝阳区平乐园100号