我目前正在研究 VR 框架。我的 Android 智能手机用作立体显示器和控制器。我有头部跟踪工作,但我也想要一个简单的位置跟踪。我知道精确跟踪智能手机的位置是不可能的。至少只要一个仅限于智能手机的传感器。所以这个想法是区分智能手机的旋转(头部跟踪)和任何类型的一般运动。当然,如果检测到运动,我只能向前移动。正如我所说,头部跟踪与安卓陀螺仪配合得很好。但是运动跟踪仍然没有像我想要的那样工作。
主要的问题是,在旋转手机的时候,这个旋转其实也是一种加速度。因此,仅查看加速度的大小不足以区分加速度(运动)和旋转。此外,为陀螺仪做一个阈值之类的事情:
if(gyroscope.magnitude < EPSILON)
if(accelerometer.magnitude > EPSILON)
//this may be motion
也不会产生所需的差异化,因为走路时手机总是会发生一定程度的旋转。
长话短说:这个问题有没有可能的解决方案?(编辑)如果是,它是如何完成的?我希望能够区分智能手机是移动还是旋转。理想情况下,仅使用陀螺仪和加速度计。
最好的问候和感谢任何反馈!