我现在已经研究了一些,现在我必须决定要走哪条路。

地雷要求: 需要了解相对于真实标题(地理北极而不是磁极)的设备方向。为此,我必须使用指南针,现在我必须确定哪些其他东西,加速度计或陀螺仪。

由于这对我来说是新事物,所以我花了几个小时阅读堆栈和维基百科文章,但我仍然感到困惑。

我针对两个平台(iOS和Android),并且正在使用AppCelerator Titanium开发它们。有了钛,我可以轻松地获得加速度计的值(x,y,z)和TrueHeading。

由于iPhone 3GS显然没有陀螺仪,因此我无法在该设备上使用它。较新的iPhone和Android设备具有它。

所以问题是:

  1. 加速度计的XYZ和Compas的TrueHead数据是否足以计算设备螺距,滚动和偏航?但这必须是准确的。

  2. 使用Compas的TrueHead并使用陀螺仪的值而不是加速度计的值更准确?

  3. 将加速度计和陀螺仪与TrueHeading结合起来是否聪明?

如果我沿着第一条路,我不必编写钛模块来获取陀螺仪数据,因为它仅给我加速度计数据,并且我也可以在3GS iPhone上使用它。

如果我走第二条路,我必须编写两个模块(iOS和Android)来获取陀螺仪数据,并且失去了3GS支持。

如果我沿着第三条路,我再次必须写钛模块,而我将失去3GS的支持。

有帮助吗?

解决方案

首先,如果您没有3GS用户的大量安装基础,但是编写一个新应用程序,请不在乎旧的硬件。从经济的角度来看,IMO这是没有意义的,但会缩小您在系统体系结构中的替代品数量。

您要寻找的称为传感器融合。因此,这样做需要一些重量的数学,例如卡尔曼过滤器等。好消息是它存在于iPhone上(核心运动)和Afaik也在Andriod上(听起来好像在 在Android上实现的传感器融合?).

除了名称外,我对Appcelerator的了解不多,因此不能说出一种简单的使用方法。无论如何,如果不插入抽象层,我假设AppCelerator为您提供了进行本机API调用的可能性。因此,您应该能够嵌入本地API(在一段时间后摆弄;-)。

通常,这取决于您的要求。您需要更快的速度确切的结果,我推荐包括所有3个传感器(包括所有3个传感器)的真实传感器融合。如果您的响应时间较慢,则指南针和加速度计的组合将结合使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top