【发布时间】:2019-03-11 02:55:10
【问题描述】:
您好,我想知道您从 TYPE_LINEAR_ACCELERATION 获得的读数是否与您从 IOS 中的 userAcceleration 获得的读数相同,这些读数是没有重力的加速度计读数。据我所知,它们是加速度计读数减去重力,但只是想确定一下,因为 Apple 没有发布任何源代码。
【问题讨论】:
标签: android ios accelerometer cmattitude
您好,我想知道您从 TYPE_LINEAR_ACCELERATION 获得的读数是否与您从 IOS 中的 userAcceleration 获得的读数相同,这些读数是没有重力的加速度计读数。据我所知,它们是加速度计读数减去重力,但只是想确定一下,因为 Apple 没有发布任何源代码。
【问题讨论】:
标签: android ios accelerometer cmattitude
是的,它们是相同的,因为它们都测量总加速度减去重力(即用户施加在设备上的加速度)。
需要注意的重要一点是,iOS 和 Android 的测量单位和参考框架是不同的。 Android 以 m/s^2 为单位测量加速度,而 iOS 以 g 为单位测量加速度(大约 9.81 m/s^2)。参考框架在文档中看起来是相同的(参见下面的链接),但 iOS 参考框架实际上与 Android 参考框架相反。例如,当设备静止在桌子上时,iOS 在 z 轴上的测量值约为 -1.0,而 Android 的测量值约为 9.81 m/s^2(注意 iOS 值为负,Android 值为正)。
要将 iOS 读数转换为 Android 参考框架和测量单位,您可以将所有轴(x、y 和 z)的 iOS 读数乘以 -g(大约 -9.81):
acc_x_iOS * -9.81 ≡ acc_x_Android
acc_y_iOS * -9.81 ≡ acc_y_Android
acc_z_iOS * -9.81 ≡ acc_z_Android
Android 文档:https://developer.android.com/guide/topics/sensors/sensors_overview
【讨论】: