卡尔曼滤波器,汽车追踪,Matlab

问题描述 投票:3回答:5

我有行驶中的汽车的小数据集:

Data_=[time x,y,z];    %# ONLY THIS DATA

我知道在这种情况下速度和加速度不是恒定的。

我想在不同时间估算汽车位置。我决定使用卡尔曼滤波器。我搜索了卡尔曼滤波器,但找不到用于以速度和加速度跟踪3D空间中对象的代码。我不知道从哪里开始。卡尔曼滤波器可以自动处理速度和加速度吗?

有人可以帮助我并提供一些链接或指导吗?

matlab matlab-cvst kalman-filter
5个回答
3
投票

我的建议是转到Mathworks file exchangesearch for Kalman filters

您将为这种非常标准的算法找到一些不错的代码。

就Kalman过滤器而言,它们就是所谓的Predictor-Estimator。也就是说,给定直到时间n的观察结果,他们都可以预测时间n-1的状态。然后,在时间n收到观测值之后,您可以进行直到(包括)时间n的所有时间的估计(有些人称其为平滑)。估计部分是通过所谓的[[innovation和当前的Kalman增益完成的。

Kalman过滤器通过“状态空间”的概念进行工作,即您的状态存储有关该对象的所有必要信息。

观察向量

是您可以观察到的有关系统的不同之处。例如,在恒定加速度模型中,您可能会假设状态仅包含3个位置值和3个速度值(每个x,y和z)。决定状态空间和状态转换模型(在没有观察值的情况下,如何期望状态发生变化)是过滤器工作的设计者。您必须选择一个状态转移矩阵,您必须了解观测误差的协方差矩阵,状态转移矩阵中的误差协方差矩阵(例如,状态转换模型),以及初始状态估算值的协方差矩阵(还必须选择)。您还必须选择状态向量和观察向量之间的关系。

如果假设高斯观测噪声,高斯过程噪声和其他一些标准物,则[[卡尔曼滤波器是

最大似然最佳线性估计器

]。

0
投票
Kalman Filter是一个循环中的5-6行。您不需要任何人的实现。

0
投票
查看有关AI的udacity.com课程,CS373。在那里,他们很好地解释了卡尔曼滤波器。

0
投票
计算机视觉系统工具箱现在具有一个vision.KalmanFilter对象。这是如何使用它来跟踪对象的example。该示例为2D,但可以轻松地将其推广到3D。

0
投票
(线性)卡尔曼滤波器可能是您的最佳选择(实际上,它的第一个应用之一是跟踪阿波罗太空船的位置以正确击中月球!)。因此,有很多关于此问题的教程,例如参见example with this cute little robot。它实际上是大约5行代码(请注意,您应该使用

persistent

© www.soinside.com 2019 - 2024. All rights reserved.