带有卡尔曼滤波器的安卓手机上的内部导航

信息处理 离散信号 卡尔曼滤波器
2022-02-06 16:45:57

好的,假设我有一部带有陀螺仪、指南针和 3-d 加速度计的手机。我想以 50 毫米的精度跟踪移动电话的位置约 1 分钟。实际上,假设我不想创建某种计步器。这可能吗?

我已经知道来自加速度计的信号噪声太大,无法在非常短的时间内通过双重积分计算位置,因为存在巨大的漂移。

但我想知道是否有可能使用卡尔曼滤波器获得一些领域知识?所以在我的情况下,我知道手机会在用户手中,它的加速度不会超过 X m/s^2,速度不会超过 V m/s,依此类推。在那种情况下可能吗?

还有如何为加速度计、陀螺仪和指南针创建协变矩阵?

2个回答

快速回答是,实际上不可能从带有陀螺仪、指南针和加速度计的手机 IMU 获取位置信息。即使使用卡尔曼滤波器,它也太不可靠,无法获得任何可以积分以给出位置的线性加速度信号。我看过很多 IMU 的卡尔曼滤波器论文,充其量,线性加速度被视为一个讨厌的术语。然而,带有卡尔曼滤波器的三传感器 IMU 确实提供了相当可靠的 3D 旋转估计。

正如您所说,由于噪声的双重积分,贝叶斯滤波不会产生好的结果。

完全有可能在你的贝叶斯滤波器中包含一个先验,例如说加速度不太可能超过给定的阈值。

实现会有点乏味,因为如果你想坚持使用卡尔曼滤波器,它比更通用的贝叶斯滤波器(粒子滤波器等)简单得多,你必须先用高斯 pdf 声明你的先验。

要创建传感器协方差矩阵,您必须知道它们的精度。这对于从业者来说是微不足道的,但我不会进一步详细说明,因为这不是我想要说明的重点:

计步器使用不同的框架,它不使用贝叶斯过滤估计您的位置,而是尝试使用加速度计数据检测您所做的每一步,并且只说“已经做了 x 步”并且不知道您的位置。