解释android加速度计值,以获得手机在现实世界中沿轴的平移

时间:2011-02-15 02:29:49

标签: java android accelerometer direction acceleration

我做了搜索,但找不到答案;在解释android加速度计值时,如何将这些值转换为沿X / Y / Z轴的真实世界电话转换?

我希望它有意义 - 我无法控制我们如何摆脱引力?我们需要吗?

我在考虑是否采用加速度计返回的3D矢量的大小 - 它将是9.8或更大,然后我们减去重力以获得实际的加速度大小。但是,加速度计事件返回的矢量由于手机的运动+分布在所有3个轴上的重力方向而不准确...

请帮忙!

由于

1 个答案:

答案 0 :(得分:4)

免责声明:我不知道任何Android细节,它可能也是手机特定的。我只是从物理背景说话。

您需要将加速度与速度相结合,并将速度与位移(位置)相结合。

您将遭受整合漂移。每次集成时,都会引入集成常量。多次集成会加剧此错误。

您还需要担心角加速度。 即。手机旋转但仍保持在同一物理位置时会发生什么?

有很多方法可以帮助减少这些错误来源。

如果有多个加速度计,您可以比较它们,以尝试确定任何角度分量。

如果有陀螺仪,您可以使用陀螺仪来帮助抵消角度分量。

如果指南针足够准确,您可以尝试至少取消水平面上的组件。

GPS可用于尝试删除置换积分错误。 当GPS表示您已停止时,将积分常数归零。

您需要开始研究数值积分和过滤算法。 如果没有硬件加速,这可能在计算上很昂贵。

此时你真的需要开始问自己,你的问题真的需要精确的位移测量吗? GPS位移是否足够?只有加速才能达到相同的效果吗?

你应该尝试阅读:

http://en.wikipedia.org/wiki/Inertial_navigation_system