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

$ \ begin {bmatrix} x \\ y \\ \ theta \ end {bmatrix}'= \ begin {bmatrix} x \\ y \\ \ theta \ end {bmatrix} + \ begin {bmatrix} \ frac {\ hat {v } _t} {\ hat {\ omega} _t}(-\ text {sin} \ theta + \ text {sin}(\ theta + \ hat {\ omega} _t {\ Delta} t))\\ \ frac { \ hat {v} _t} {\ hat {\ omega} _t}(\ text {cos} \ theta-\ text {cos}(\ theta + \ hat {\ omega} _t {\ Delta} t))\\ \ hat {\ omega} _t {\ Delta} t \ end {bmatrix} $

的计算方式为

$ G_ {T} = \ begin {bmatrix}
1&0&\ frac {υ_{t}} {ω_{t}}(-cos {μ_{t-1,θ}} + cos(μ_{t-1,θ} +ω_{t}Δ {t}))\\
0&1&\ frac {υ_{t}} {ω_{t}}(-sin {μ_{t-1,θ}} + sin(μ_{t-1 ,θ} +ω_{t}Δ{t})))\\
0&0&1
\ end {bmatrix} $。

使用时是否同样里程表运动模型(在同一本书的第133页中进行了介绍),其中机器人运动用旋转$ \ hat {\ delta} _ {rot1} $,翻译$ \ hat {\ delta} $和第二个旋转$ \ hat {\ delta} _ {rot2} $?对应的等式为:

$ \ begin {bmatrix} x \\ y \\ \ theta \ end {bmatrix}'= \ begin {bmatrix} x \\ y \\ \ theta \ end { bmatrix} + \ begin {bmatrix} \ hat {\ delta} \ text {cos}(\ theta + \ hat {\ delta} _ {rot1})\\ \ hat {\ delta} \ text {sin}(\ theta + \ hat {\ delta} _ {rot1})\\ \ hat {\ delta} _ {rot1} + \ hat {\ delta} _ {rot2} \ end {bmatrix} $。

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

$ G_ {T} = \ begin {bmatrix}
1&0&-\ hat {\ delta} sin(θ+ \ hat {\ delta} _ {rot1})\\
0&1&-\ hat {\ delta} cos(θ+ \ hat {\ delta} _ {rot1})\\
0&0&1
\ end {bmatrix} $。

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

评论

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

#1 楼

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


是否有必要将里程表运动模型线性化以便与扩展卡尔曼滤波器(EKF)一起使用?
使用里程表是否更好?运动模型而不是速度运动模型。

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

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

评论


$ \ begingroup $
基于Taylor的线性化的另一种替代方法是Unscented KF:seas.harvard.edu/courses/cs281/papers/unscented.pdf
$ \ endgroup $
– Alex Kreimer
17年10月2日在11:23

#2 楼

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

评论


$ \ begingroup $
在书中,模型被视为运动学问题,因此我认为它是解决模拟问题的良好模型。
$ \ endgroup $
– Croco
14年5月13日在16:27

#3 楼

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

EKF与KF几乎是同一件事,除了线性化步骤。此处要线性化的是运动模型,无论是什么模型。

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

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