Android 传感器偏航、俯仰和滚转

标签 android orientation coordinates android-sensors

经过大量搜索和浪费时间后,我一直在尝试使用传感器管理器从 Android 设备获取一组稳定的滚动、俯仰和偏航值。我已经尝试了几个选项, SensorManager.getRotationMatrix(... 还有 SensorManager.getOrientation(...

当我尝试使用 getOrientation 获取 roll、pitch 和 yaw 值时,运动是平滑且令人满意的,但是,当我越过地平线时,旋转方向发生翻转,无法向上看。

然后我尝试使用 getRotationMatrix(...,我基本上实现了这个,但是即使我已经对值进行了插值,运动还是非常可怕。

我怀疑我的第一个测试的问题是从 getOrientation 返回的值是俯仰、滚动和方位角?我想知道是否有办法让设备的本地 rollpitchyaw 值在 [0. ..360] 用于每个轴并使用不涉及重力场和磁极的系统。

最佳答案

您需要低通滤波器 TYPE_ACCELEROMETER 或使用 TYPE_GRAVITY 并对结果值进行平均以获得稳定值。在 Android getOrientation Azimuth gets polluted when phone is tilted 查看我的实现

关于Android 传感器偏航、俯仰和滚转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25278516/

相关文章:

android - Textview 在 setRetainInstance 中不起作用

c# - 如何搜索坐标列表并根据其与当前位置之间的距离进行显示? (Windows 手机 7)

java - 我怎样才能通过半径与另一个坐标点和距离以公里为单位的坐标点?

android - 高速捕获请求 Android Marshmallow

android - 需要澄清 GridView.getChildCount()

java - 更改应用程序中的方向时出现问题

java - 如何在java中的坐标数组中找到左上角坐标

android - 从字符串中提取 4 位数字的正则表达式 - Android

java - Toast 在 web View 中不起作用

android - 即使在操作系统中禁用了屏幕旋转,我的 Android 应用程序也会旋转。我怎样才能解决这个问题?