航向,滚动,俯仰

时间:2010-03-30 15:18:34

标签: android

我想知道如何获得确定Android设备位置的前进,俯仰,滚动角度,如果可能的话。不要考虑设备相关的细节。参考有用的文档也很有价值。谢谢!

1 个答案:

答案 0 :(得分:2)

我没有准确的解决方案,但全孔解决方案涉及TRIAD算法,以组合来自磁力计(罗盘)和加速度计的矢量。 This维基百科文章详细介绍了它。

从概念的角度来看,思考问题的最佳方式是您的加速度计矢量表示“向下”,它定义了设备指向的平面。这架飞机的倾斜会给你“滚动”和“俯仰”。然后,您可以使用磁力计矢量来确定设备指向该平面的位置,这将为您提供“标题”。

一个强大的解决方案可以使用一组不错的向量和矩阵/四元数库来实现,但是您应该能够使用trig函数来破解某些东西。希望另一张海报已经这样做了。

编辑:在Android docs中找到了一些可以提供您想要的东西。您需要从Sensor获取TYPE_ORIENTATION的SensorManager对象。它可以提供方位角,滚动和俯仰。我不知道哪些设备提供此功能。