如何/应该实施卡尔曼滤波器以获得准确的加速度计数据?

Ker*_*sch 7 android sensor accelerometer android-sensors kalman-filter

我希望尽可能从Android手机中的内置加速度计获得准确的数据.我想跟踪x和y轴的二维运动,甚至必须注册小的运动.

当我看到手机在桌子上平放时加速度计/线性加速度的数据时,当我应该为零时,它会发生很大的变化.

我看过卡尔曼滤波器,这似乎是一个很好的方法,但我在设置模型时遇到了问题.

1.卡尔曼滤波器是否可以从加速度计获得尽可能准确的数据?

2.卡尔曼滤波器是否有效?也许我误解了但似乎加速度或速度必须是恒定的?

3.如何设置使用卡尔曼滤波器的模型?我很难理解(除其他事项外)过程噪音是什么?

Sto*_*lly 7

当所有测量(在这种情况下为加速度)等于真实值加上测量误差时,卡尔曼滤波器适用.测量误差是过程噪声.对于原始卡尔曼滤波器应用噪声必须是正态分布的,即有时误差将是正的,有时是负的,并且平均为零.

如果你来回快速猛拉你的Android手机,那将会有很大的加速度.我建议在这种动作中记录加速度计读数,并通过眼睛检查是否看起来读数确实受到某种正常分布的过程噪声的影响.我的猜测是答案将是"否",即我希望他们在图表上绘制时的读数将是平滑的.但如果它们不平滑,卡尔曼滤波器可能会有用.

如果您正在尝试使用加速度计读数来计算位置,我认为您的项目注定要失败.加速度是位置相对于时间的第二个导数,我从来没有听说过任何人能够以足够的精度整合读数以便完全有用.

我已成功将卡尔曼滤波器应用于Android手机上的GPS读数,以改善位置估算.有关实现卡尔曼滤波器的代码,请参阅平滑GPS数据.我随后想知道是否可以使用速度和加速度数据来改进位置估计.虽然我从未跟进过这个想法,但请参阅https://dsp.stackexchange.com/questions/8860/more-on-kalman-filter-for-position-and-velocity以了解我正在考虑使用的数学.

使用所有传感器输入(GPS,加速度计,陀螺仪等)来获得良好的位置估计的最佳方式是一个非常困难(和有趣)的问题.要了解更多信息,要搜索的关键词是"传感器融合".在这个主题上,有一个旧的youtube视频,网址是http://www.youtube.com/watch?v=C7JQ7Rpwn2k.