卡尔曼滤波器速度数据看起来与位置数据太相似

问题描述 投票:0回答:1

在 Matlab 上创建卡尔曼滤波器,从手机 IMU 传感器获取加速度计和角速度测量值,对其进行过滤,然后计算位置和速度。我的问题是我是否要计算错误的位置和速度,或者这是一个很好的结果但由于某种原因看起来很奇怪?

af = [Accxf, Accyf, Acczf];

vf = af .* dt;
rf = .5 * af .* (dt^2);

af为滤波后的加速度数据,dt为0.1秒。我只是遵循基本的运动学方程,这是错误的计算方法吗?初始速度和位置的计算方式相同,但根据原始数据,提供了图表。

如果这不是问题,我应该去哪里解决这个问题?我唯一的其他猜测可能是状态变量的问题。谢谢你。

尝试更改传感器数据、调整运动学公式、调试。位置和速度的预期结果会有所不同。

matlab kalman-filter imu kinematics
1个回答
0
投票

使用 cumtrapz() 代替运动方程是正确的方法。这样,它可以使用随时间的变化,而不仅仅是递增的数字。 James Tursa 出色地展示了为什么这是正确的方法。问题得到解答。

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