3

我有一个关于使用移动设备进行惯性导航的问题。我正在使用 android 平板电脑进行开发,但我认为这个问题与所有类型的硬件(即使使用更好的传感器)有关。

开发惯性系统时最基本的问题是如何确定载体的运动方向。即使我们假设磁力计读数是 100% 准确的(他们显然不是!)仍然存在设备相对于用户的方向的问题。

简单示例 - 如果用户向北走,但手持设备,设备的 Y 轴指向东北,(指向不同轴的图片的链接:http: //developer.android.com/reference/android/hardware /SensorEvent.html ) 然后磁力计将指向东北。我们如何判断用户实际走向哪条路?(如果我们同时使用磁力计和陀螺仪来确定航向,情况也是如此)

一种可能的解决方案是使用加速度计的 Y 轴和 X 轴读数。使用 arctan(aY/aX) 方向的东西(例如 - 如果用户完全笔直地握住设备,那么 X 轴将不会显示任何内容......)但是由于加速度计的读数不稳定,所以不是这样简单的...

有谁知道真正有效的算法?我确信这是一个众所周知的问题,但我似乎无法找到解决方案的参考......

提前致谢!

爱丽儿

4

2 回答 2

0

请参阅答案以获得一个想法:通过获取相对于地球的加速度值,您可以使用 atan2 函数来计算实际方向。

你提到用户拿着平板电脑,我假设相当稳定(不像我正在研究的情况,用户不断移动手机)。然而,出于某种原因,用户可能会改变设备的方向,这可能会影响您获得的读数。

因此,如果方向发生变化,您应该相应地调用remapCoordinates()修复您获得的读数。

注意:您也可以相应地使用getOrientation()方法,第一个字段表示航向。

于 2013-04-22T14:08:32.313 回答
-2

真正正确的答案是将设备放在那里一段时间,检测地球的自转,然后从中计算出真北。不幸的是,手机中的陀螺仪还不够准确……

于 2013-10-30T16:43:24.887 回答