【发布时间】:2015-04-20 14:51:46
【问题描述】:
我正在开发一款使用 Android 传感器来帮助车辆在室内位置导航的应用。作为我对不同传感器的评估过程的一部分,我想尝试“旋转矢量”传感器。由于各种原因,磁场读数对我的位置不是很有用,因此我想尝试“游戏旋转矢量”传感器(传感器融合,可从 API 级别 18 及更高版本获得)。 description 声明它与常规旋转矢量传感器相同,只是没有使用磁场信息来校正陀螺仪绕垂直轴的漂移。
在查找有关旋转矢量传感器的信息时,我遇到了来自 Google 的 example,他们在其中展示了使用 3d 立方体的旋转矢量传感器。它工作得很好,除了对局部磁场非常敏感(而且我在遥远的北方,更糟糕的是,因为这里的水平分量非常小)。
由于其他参考数据(地图信息)可以补偿长期漂移,我想在我的应用程序中使用游戏旋转矢量传感器。但是,在示例代码中将所有引用从“TYPE_ROTATION_VECTOR”更改为“TYPE_GAME_ROTATION_VECTOR”时,立方体不再对围绕垂直轴的旋转做出反应(例如,我旋转椅子,将设备放在我面前)。向其他两个方向倾斜设备会移动立方体。我还注意到这一次立方体变得更加“迟钝”,对任何运动的反应都非常缓慢。
这是游戏旋转矢量传感器应该工作的方式吗(例如,忽略任何 Z 轴旋转)?这是有道理的,因为在后座上玩的游戏玩家不应该受到车辆转向的影响,但同时它与谷歌提供的描述不同(我的第一个链接)。从描述中我的印象是它会慢慢漂移,而不是一起忽略旋转。
我将非常感谢您对此问题的任何意见。
最好的问候,
约翰
【问题讨论】:
标签: android rotation android-sensors