使用里程表运动模型的扩展卡尔曼滤波器


14

在EKF定位的预测步骤中,必须进行线性化处理(如Probabilistic Robotics [THRUN,BURGARD,FOX]第206页中所述),使用速度运动模型时的雅可比矩阵定义为

[xyθ]=[xyθ]+[v^tω^t(sinθ+sin(θ+ω^tΔt))v^tω^t(cosθcos(θ+ω^tΔt))ω^tΔt]

计算为

GT=[10υtωt(cosμt1,θ+cos(μt1,θ+ωtΔt))01υtωt(sinμt1,θ+sin(μt1,θ+ωtΔt))001]

使用里程运动模型(在同一本书,第133页中介绍)时是否同样适用,其中机器人运动是通过旋转δ^rot1,平移δ^和a第二次旋转δ^rot2?相应的等式为:

[xyθ]=[xyθ]+[δ^cos(θ+δ^rot1)δ^sin(θ+δ^rot1)δ^rot1+δ^rot2]

在这种情况下,雅可比矩阵为

GT=[10δ^sin(θ+δ^rot1)01δ^cos(θ+δ^rot1)001]

使用测距运动模型代替速度来进行移动机器人定位是否是一种好习惯?


我相信您的d_y / d_theta项应该为正而不是负(即++ hat {\ delta} cos(θ+ \ hat {\ delta} _ {rot1}))
rcv

Answers:


9

您问了两个问题。根据我的解释,它们是:

  1. 是否有必要将里程表运动模型线性化以与扩展卡尔曼滤波器(EKF)一起使用?
  2. 使用里程表运动模型代替速度运动模型更好吗?

关于问题1,简短的回答是“是”。卡尔曼滤波器(KF)的保证仅适用于线性系统。我们将非线性系统线性化,以期保留对非线性系统的某些保证。实际上,使系统的非线性组件(即运动模型和/或观察模型)线性化是区分KF和EFK的本质。

关于问题2,Thrun博士在概率机器人学的第132页上指出:“实践经验表明,里程表虽然仍然是错误的,但通常比速度更准确。” 但是,我不会将此陈述解释为取代速度模型的理由。如果同时具有速度和里程信息,则最好同时使用两种信息源。


基于Taylor的线性化的另一种替代方法是Unscented KF:seas.harvard.edu/courses/cs281/papers/unscented.pdf
Alex

2

根据我的经验,您对最后一个问题的回答是“是”。使用里程表代替动态(速度)预测使我更加幸运。但是,我从未使用过您描述的运动模型(来自Thrun的书)。相反,我使用了在此描述的模型。


在书中,模型被视为运动学问题,因此我认为它是解决模拟问题的良好模型。
CroCo 2014年

2

对于第一个问题:“使用里程表运动模型时是否也一样?”的答案是“是”。

EKF与KF几乎相同,只是增加了线性化步骤。在这里线性化的是运动模型,无论是什么模型。

对于第二个问题:“使用测距运动模型代替速度来进行移动机器人定位是一种好习惯吗?”:我认为答案是“取决于情况”。

如果您使用的是具有速度信息的数据集,并且定位足以满足您的目的,那么该模型的简单性可能是首选。如果您直接控制机器人并可以访问里程计信息,那么您可能会获得更好的结果。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.