首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替代TYPE_GAME_ROTATION_VECTOR

替代TYPE_GAME_ROTATION_VECTOR
EN

Stack Overflow用户
提问于 2014-11-02 08:51:57
回答 1查看 2.7K关注 0票数 7

我试图控制车辆的转向使用android设备旋转。

三星的GalaxyS4(运行Android4.4.2)上没有TYPE_GAME_ROTATION_VECTOR。。.I通过获取所有可用传感器的列表确认了这一点。

我有没有办法丢弃TYPE_ROTATION_VECTOR的磁强计数据?

除了被忽略的磁强计输入外,TYPE_GAME_ROTATION_VECTOR是相同的TYPE_ROTATION_VECTOR

可以通过对TYPE_GRAVITYTYPE_GYROSCOPE进行传感器融合来实现这一点吗?

如有任何参考资料,将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2015-06-25 11:07:22

您肯定可以使用加速度计和陀螺仪的组合来检测设备旋转(“重力”是两者的融合,其中陀螺仪用于使数据更加平滑和响应更快)。

从我自己的测试中,Game旋转矢量传感器受到磁场数据的影响(可能是通过陀螺偏置消除间接影响),所以您可能应该找到另一个解决方案(我的测试是在汽车中跟踪旋转,而不是仅仅步行,结果发现汽车的磁场干扰了旋转-我制作了一个视频比较游戏旋转矢量数据与整合陀螺输出这里)。

如果你没有磁场数据,你总是会有漂移(水平平面旋转误差的缓慢积累)。您需要做的主要部分是随着时间的推移集成陀螺仪数据(请参阅谷歌自己关于使用陀螺仪数据跟踪旋转这里的代码)。

为了防止垂直漂移,您必须使用加速度计来跟踪重力相对于设备的位置,并将其与陀螺仪数据结合起来。一种常用的方法是使用卡尔曼滤波,但取决于您的应用程序,这可能是不必要的复杂,所以我建议使用所谓的互补滤波器,它可以描述为将来自低通滤波、噪声但稳定的信号(加速度计)和高通菲德勒的数据融合到响应但漂移的信号(陀螺仪)上。这里是卡尔曼滤波器和互补滤波器的重要来源。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26697604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档