经过大量搜索和浪费时间后,我一直在尝试使用传感器管理器从 Android 设备获取一组稳定的滚动、俯仰和偏航值。我已经尝试了几个选项, SensorManager.getRotationMatrix(... 还有 SensorManager.getOrientation(...
当我尝试使用 getOrientation 获取 roll、pitch 和 yaw 值时,运动是平滑且令人满意的,但是,当我越过地平线时,旋转方向发生翻转,无法向上看。
然后我尝试使用 getRotationMatrix(...,我基本上实现了这个,但是即使我已经对值进行了插值,运动还是非常可怕。
我怀疑我的第一个测试的问题是从 getOrientation 返回的值是俯仰、滚动和方位角?我想知道是否有办法让设备的本地 roll、pitch 和 yaw 值在 [0. ..360] 用于每个轴并使用不涉及重力场和磁极的系统。
最佳答案
您需要低通滤波器 TYPE_ACCELEROMETER 或使用 TYPE_GRAVITY 并对结果值进行平均以获得稳定值。在 Android getOrientation Azimuth gets polluted when phone is tilted 查看我的实现
关于Android 传感器偏航、俯仰和滚转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25278516/