Android:确切区分电话移动和旋转的任何方法



我目前正在处理VR-Framework。我的Android智能手机用作立体显示器和控制器。我有往来的工作,但我也想要一个简单的位置跟踪。我知道无法进行智能手机位置的精确跟踪。至少只有一个仅限于智能手机的传感器。因此,这个想法是区分智能手机(头条新闻)的旋转和任何类型的一般运动。当然,我只能移动,例如向前,如果检测到运动。就像我说的那样,头条饰与Android陀螺仪正常。但是运动跟踪仍然无法正常工作。

主要问题是,旋转电话时,此旋转实际上也是一个加速度。因此,仅查看加速度的幅度不足以区分加速度(运动)和旋转。此外,做类似陀螺仪的阈值的事情:

if(gyroscope.magnitude < EPSILON)
    if(accelerometer.magnitude > EPSILON)
        //this may be motion

也不会产生所需的差异化,因为行走时总是有一定程度的旋转。

长话短说:这个问题有可能解决问题吗?(编辑),如果是,它如何完成?我希望能够区分智能手机是移动还是旋转。理想情况下仅使用陀螺仪和加速度计的使用。

最好的问候,感谢您的任何反馈!

我建议我熟悉四元素的概念以及如何使用它们来代表取向(这可能是一个很好的开始:http://run.usc.edu/CS520-S12/Quaternions/Quaternions-CS520.pdf)
您建议使用启发式方法作为" epsilon",因为有些情况下,启发式方法会失败,但我确定您已经知道。
大多数情况下,您必须关心原始数据中的偏见因此,您要么必须确保手机静置足够的时间(取决于您在该时间段内获得的样品数量=取决于传感器的采样率)。在这种情况下,您可以在轴上计算平均值并缩小它。假定偏见会随着时间的流逝而恒定,并且不在乎偏见不稳定(请在此处查看:http://sensorwiki.org/doku.php/sensors/gyroscope)。偏差不稳定性不仅适用于陀螺仪。
如果您不能保证在过程开始时休息,您也想阅读有关Kalman过滤器的信息,因为它们为您提供了估计偏见的可能性。我认为使用四元组和偏见的KF实现是一种状态;) - 仅适用于初学者。

相关内容

  • 没有找到相关文章

最新更新