如何使用卡尔曼滤波器处理有误差累积的数据

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

我使用 UKF 进行机器人定位(通过 FilterPy)。我了解一般如何实施,并且 GPS 传感器已经可以工作。 我的问题是关于从 diff 添加里程计。驾驶。里程计错误会累积,因此如果我为过滤器提供来自 ROS2 diff 的 (x,y,heading)。开车里程表,它会变得越来越垃圾。我认为如果我改用速度/角速度,我会没事的,因为它们不会累积误差。但一开始我看到的是与仅 GPS 情况相比的改进,但后来它看起来与仅 GPS 相同。 GPS only Odometry and GPS

在图表上,黑线是地面真实轨迹。

所以我的问题是,我应该使用 ROS2 /odom 中的哪些数据提供给 UKF,它是如何工作的?

我再次了解卡尔曼滤波器的一般工作原理以及如何实现它。我需要某种人类语言解释它如何使用累积错误的数据。

谢谢你。

kalman-filter pykalman
1个回答
0
投票

您确定线速度/角速度也不是由 IMU 积分的吗?我认为速度也会有同样的错误累积问题。

IIRC 无论如何,odom 消息通常都是过滤器的输出。在你的位置上,我可能会深入研究过滤器中的内容。 (可能类似于车轮编码器和 IMU)在短时间内,该数据应该相当准确,您可以在滤波器预测步骤中使用它。

根据您对噪声模型的了解程度,您可能只需要稍微调整一下滤波器。我有点不清楚你的图显示了什么,但在第一个图中,过滤器看起来表现得相当好。

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