android - 将陀螺仪读数转换为以度为单位的方位

标签 android rotation gyroscope dead-reckoning inertial-navigation

我正在尝试使用 Android 设备上的陀螺仪查找汽车转弯时的旋转角度。因此,假设一辆汽车以 168 度角行驶,并在道路上右转。现在我需要使用陀螺仪计算新航向或方位角。但我收到的值是以弧度/秒为单位的。我尝试在时间段 dT 内整合这些值。但这些值甚至不接近实际角度。我认为旋转是相对于设备的,我试图将值转换为真实世界坐标。但是我没有找到一个好的算法。

有人可以帮助我或指出正确的资源来解决这个问题吗?

编辑: 我忘了在问题中提到,我正在尝试在没有 GPS 的情况下执行此操作(在 GPS 出现故障的情况下。)并且我正在尝试避免传感器融合,因为我正在寻找一种解决方案,因此我打算仅使用陀螺仪甚至可以在 Android 平台之外运行。我什至与 OBD 交谈以获取车辆的实际速度。所以我只是想从任何客户端收集陀螺仪数据并在后端处理它并确定车辆的转向

最佳答案

你需要rotation vector查看说明 here (API 级别 9)。
这个东西使用的是一种叫做 sensor fusion 的东西获得关于手机相对于地球和磁北方向的高质量信息。 您还可以计算 GPS 位置的导数来估计汽车转向。

关于android - 将陀螺仪读数转换为以度为单位的方位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13733687/

相关文章:

android - 添加 Barcode_Scan 包后 Flutter 应用程序无法构建

android - 如何在应用程序暂停或销毁时停止服务,但在切换到新 Activity 时不停止服务?

Android应用程序字体大小根据设置中定义的字体大小而变化

jquery - 如何从当前位置翻转 Canvas

javascript - 将 .rotatable 添加到对象会将其初始度数返回为 0

iphone - 在没有 GPS 的情况下跟踪 iPhone 的微小 Action

android - 如何使用 Otto 回调 onAttach 中的 Activity?

C - 长时间运行的 while 循环出现段错误

android - 如何通过罗盘读数和陀螺仪读数获得手机的方位角?

android - 如果满足陀螺仪读数等条件,如何获得时间