gpt4 book ai didi

android - TYPE_ROTATION_VECTOR 的传感器值在不同设备上不相同

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:43:06 26 4
gpt4 key购买 nike

我在我的应用中使用了 ROTATION_VECTOR 类型的传感器数据。

使用我的 Nexus 5,我可以从方向 [0] 获得方位角,并且可以获得下图所示范围内的手机航向(非常准确)。

由于我在不同的设备上试用了我的应用,我发现传感器值与我的 Nexus 5 测试设备不同。在我的 Samsung Galaxy Nexus 和 Samsung Galaxy S3 Mini 上,方位角受倾斜设备的影响,如图所示。

Portrait Only - No Tilting to side

TYPE_ROTATION_VECTOR 使用传感器融合,这就是我使用传感器测试应用程序检查不同设备上的单个传感器值的原因。在 Nexus 5 上,倾斜设备时 z 轴的方向值大致保持不变,在三星 Galaxy Nexus 上,z 轴的值在倾斜时发生变化(从直立到躺着大约 90°)。我担心传感器融合正在使用这些值,这就是我的方位角在不同设备上不同的原因。

有没有人遇到过类似的情况,更重要的是:有没有人有解决方法或不同的方法来接收方位角?

为了确定,我正在寻找后置摄像头指向的方向...

这是我的代码:

final float[] mRotationMatrix = new float[9];
final float[] mRotationMatrixFromVector = new float[9];
final float[] orientation = new float[3];

...

SensorManager.getRotationMatrixFromVector(mRotationMatrixFromVector,
event.values);

// enables usable range like in picture
SensorManager.remapCoordinateSystem(mRotationMatrixFromVector,
SensorManager.AXIS_X, SensorManager.AXIS_Z,
mRotationMatrix);

SensorManager.getOrientation(mRotationMatrix, orientation);

最佳答案

您通常使用三个角度来定义方向,并使用它们向外投影一段距离,您必须按正确的顺序使用它们,因为您将旋转您的轴系统。我回答过类似的问题here这可能对您有所帮助 - 那里有一些我未优化的 javascript 代码,以显示解决该问题所用的步骤。

通常,方位角在地球的引用系中,你可以单独使用它。但并非在所有情况下都如此。如果您怀疑您的方位角受到高度的影响,很可能(假设他们不只是将数字标记错误!)他们提供给您的角度应该以不同的顺序使用,并且您您必须弄清楚它们的应用顺序。顺序正确后,按该顺序应用三个角度(参见我的其他答案),然后旋转的 X 轴在 XY 平面上的投影就是实际方位角。

关于android - TYPE_ROTATION_VECTOR 的传感器值在不同设备上不相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33421714/

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