Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS和Android上,空气陀螺仪的数据似乎非常不同_Android_Ios_Actionscript 3_Air_Gyroscope - Fatal编程技术网

在iOS和Android上,空气陀螺仪的数据似乎非常不同

在iOS和Android上,空气陀螺仪的数据似乎非常不同,android,ios,actionscript-3,air,gyroscope,Android,Ios,Actionscript 3,Air,Gyroscope,我已经创建了一个应用程序,它在Android中很好地使用了Gyrosope本机扩展,并且运行得非常好 然而,现在我已经在iPhone4(iOS7)上使用AIR4.0进行了测试,gyrosope的性能似乎完全不同,倾斜似乎什么都不做,只是旋转手机 有人知道这些数据在iOS和Android上的工作方式是否有重大区别吗 我觉得这是我正在考虑尝试使用的 这是对现有本机扩展的替换还是添加 使用多个传感器来计算设备位置会得到更好的结果。您提到的扩展是通过iOS SDK中的内置函数实现的。使用可用传感器的融合

我已经创建了一个应用程序,它在Android中很好地使用了Gyrosope本机扩展,并且运行得非常好

然而,现在我已经在iPhone4(iOS7)上使用AIR4.0进行了测试,gyrosope的性能似乎完全不同,倾斜似乎什么都不做,只是旋转手机

有人知道这些数据在iOS和Android上的工作方式是否有重大区别吗

我觉得这是我正在考虑尝试使用的


这是对现有本机扩展的替换还是添加

使用多个传感器来计算设备位置会得到更好的结果。您提到的扩展是通过iOS SDK中的内置函数实现的。使用可用传感器的融合,您可以从陀螺仪获得快速响应,但可以使用加速计和磁强计来解释漂移

在iOS上,它使用CMAttitude类(这是您提供的电子邮件链接所使用的):

在这两个平台上使用这种技术肯定会使阅读更加接近,但是在Android上有几种不同的方法,因为你可以访问更多的信息。当然,安卓系统最大的问题是使用了所有不同的硬件,因此传感器报告的范围和值都略有不同。我发现最好的方法是使用TYPE_ROTATION_VECTOR sensor,然后使用SensorManager.getOrientation函数(如果您使用Euler angles)。我还尝试了一种定制的融合算法,结果好坏参半

我还建议你研究四元数。这为设备定位提供了更好的结果,并避免了相关的万向节锁


我已经花了很多时间来研究distriqt的扩展包,如果您对此感兴趣,我将发布一个新的DeviceMotion扩展,它可以完成所有这些工作。

iOS和Android上的轮换数据肯定有很大的不同。然而,如果你使用欧拉角,你应该能够让你的扩展合理地在两个平台上工作。你是在使用卡尔曼滤波器还是任何融合算法?都不是。在android上,只需简单地转换为度。所以我应该坚持让Ketzler的Euler angles原生扩展正常工作?让它正常工作应该不会太难,它只是使用内置的iOS姿态,使用苹果的内部融合算法来计算角度。如果这是你需要的信息,那么这是值得的。欧拉角可能会很麻烦,但我更喜欢使用四元数,稍微复杂一点,但结果更可靠。