gpt4 book ai didi

Android 传感器管理器旋转矢量 (TYPE_ROTATION_VECTOR) 不可靠/慢

转载 作者:行者123 更新时间:2023-11-29 17:31:22 26 4
gpt4 key购买 nike

我目前在读取 Android 旋转矢量的值时遇到一些问题。正如 Android 文档所解释的那样,旋转矢量是陀螺仪、磁力计和加速度计的传感器融合组合。当设备平放时,旋转矢量的引用坐标系为X朝东,Y朝北,Z垂直。

所有提到的特征都是正确的,并且在我的应用程序中有效。

现在的问题是:旋转矢量似乎有一部分不准确。首先,旋转矢量的值似乎滞后于实际移动,其次,这些值确实受到设备快速移动的影响。

为了排除我的实现造成的任何错误,还测试了来自谷歌的演示应用程序。源代码位于here .同样在此演示中,旋转矢量在快速运动中似乎有些滞后且不可靠。

其他人是否遇到过 Android 旋转向量的问题?

这是我的做法:注册传感器和监听器:

sensorManager.registerListener(this, gravitySensor, SensorManager.SENSOR_DELAY_FASTEST, handler)

读取值并创建用于 OpenGL 渲染的旋转矩阵:

@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ROTATION_VECTOR) {
SensorManager.getRotationMatrixFromVector(rotationMatrix4D, event.values);
}
}

编辑:我正在 Samsung Galaxy S3 Mini 上开发。也许只是设备的传感器不太好。

最佳答案

在深入研究不同设备上的 Android 旋转矢量后,我发现这个传感器确实不准确。

所以有很多可能性来获得更准确和稳定的方向。1.随着时间的推移平滑旋转矢量2. 使用 Ratation Vector 执行传感器融合,例如陀螺仪。

我的方法是存储初始旋转矢量,然后使用陀螺仪计算设备的实际方向。由于陀螺仪很可能会受到漂移的影响,我每隔几秒就将方向重置为旋转矢量的方向。

关于Android 传感器管理器旋转矢量 (TYPE_ROTATION_VECTOR) 不可靠/慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32796748/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com