无人驾驶定位与贝叶斯滤波

Posted Young_Gy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无人驾驶定位与贝叶斯滤波相关的知识,希望对你有一定的参考价值。

无人驾驶需要精确的定位。本文将简要介绍无人驾驶定位的相关方法,重点介绍贝叶斯滤波框架进行递归的状态估计。同时附上一维马尔科夫定位的实例及代码。

无人驾驶定位

定位是指在空间中确定自己的位置。

传统的定位方法有GPS(Global Positioning System),但是GPS的误差较大且不稳定(m级)。无人驾驶对定位精度要求较高需要达到cm级的误差,因此需要多传感器融合定位。

定位的数学问题之贝叶斯滤波

定位的目标:记汽车的位置为 x ,定位即是求解P(x)

那么,为了确定汽车的位置,我们有哪些数据呢?

  • 地图数据 m ,包含地图上标志物的位置信息
  • 观测数据z,包含汽车感知到的标志物与汽车的相对位置信息
  • 控制数据 u ,包含汽车的油门转弯等控制信息

定位本身是一种位置不确定性的度量,我们的目标是尽量减少这种不确定性。那么,上面的数据信息是如何帮助我们减少不确定性的呢?

  • Sense:P(x|z)P(x)P(z|x)
  • Move: P(xt+1)=P(xt)P(xt+1|xt)

贝叶斯滤波是一种使用递归进行状态估计的框架。其交替利用Move阶段的prediction和Sense阶段的update,便可以对汽车的位置 P(x) 做更精准的描述。

一维马尔科夫定位

一维马尔科夫定位、卡尔曼滤波、粒子滤波都属于贝叶斯滤波的一种,这里将简要介绍一维马尔科夫定位。

数据

这里使用的数据包含以下三种,目的是要获得汽车在 t 时刻位置的置信为bel(xt)

  • 地图数据 m ,包含地图上标志物的位置信息
  • 观测数据z,包含汽车感知到的标志物与汽车的相对位置信息
  • 控制数据 u ,包含汽车的油门转弯等控制信息

动机

记汽车在t时刻位置的置信为 bel(xt) ,有

bel(xt)=P(xt|z1:t,u1:t,m)

这里额外提一下,如果求 P(xt,m|z1:t,u1:t) ,那么则从定位问题变成SLAM(simultaneous location and mapping)问题。

容易看到,随着 t 的增大,估计bel(xt)需要的数据越来越大。我们的目标是:

  1. 减少估计所用的数据量
  2. 需要的数据不随时间增加

也就是:

bel(xt)=f(bel(xt1),zt,ut,m)

根据贝叶斯公式,可得:

bel(xt)=P(xt|z1:t,u1:t,m)=P(xt|zt,z1:t1,u1:t,m)=P(xt|z1:t1,u1:t,m)P(无人驾驶中的机器学习-朴素贝叶斯分类(Naive Bayes)

自动驾驶定位算法-直方图滤波(Histogram Filter)定位

粒子滤波 particle filter —从贝叶斯滤波到粒子滤波——Part-I(贝叶斯滤波)

粒子滤波 particle filter —从贝叶斯滤波到粒子滤波——Part-I(贝叶斯滤波)

粒子滤波 particle filter —从贝叶斯滤波到粒子滤波——Part-I(贝叶斯滤波)

粒子滤波 particle filter —从贝叶斯滤波到粒子滤波——Part-I(贝叶斯滤波)