2016-02-17 18 views

回答

0

这是惯性测量单元(IMU)的数据被用来跟踪装置在时间上的位置已经在机器人被用于几年了(不包括专门与Android),一个非常有趣的问题。

Android设备通常都配有加速度计和陀螺仪,这两个给你的手机不同的信息。这个问题的最简单方法是

  1. 找到加速度计读数
  2. 减去它们在重力的作用(想想如何)
  3. 整合读数两次找到参考的位置估计。

的问题是,从加速度计读数非常吵闹,只是非常小的时间步内真正准确。您可以通过卡尔曼滤波器读取读数以更好地进行状态估计。另请阅读here。通过比较的陀螺仪数据噪音较小,但仍然存在测量误差随时间漂移的情况。

您遇到的问题是加速度计的位置测量不是线性函数(您必须进行两次积分),因此您需要使用Extended Kalman Filter或甚至是Unscented卡尔曼滤波器。

这个问题是机器人技术中一个非常流行和重要的问题,尽管您可能会在网络上找到库和实现,但是在高精度估计的情况下,其他人。

该加速度计提供的加速度数据。

如果

x`` = -g + A + e计算一些重力加速度g和加速度a,和误差e

x` = -gt +在+等+ V0一段初始速度V0有助于X

然后,

X = -0.5gt^2 + 0.5at^2 + 0.5et^2 + v0t + X0为初始位移x。

为T >> 0时,二次误差e的贡献增加,改变你的真实效果显着。

参考4.3 An Introduction to the Kalman Filter一个例子,但我建议你阅读了整个事情,以及也许在书中Probabilistic Robotics

+0

感谢篇章!我会尽力去解决它。 你能告诉我们需要集成的功能吗?我的意思是生病的时候会把以前和新的读数作为上限和下限。但是,这些读数将被用于什么功能。 – Xissor

+0

编辑我的答案更详细 – deefunkt

相关问题