0

Android 以设备坐标系提供传感器数据,无论其方向如何。有什么方法可以在“重力”坐标系中获取传感器数据?我的意思是无论设备的方向如何,我都需要加速度计数据和坐标系中的方向,其中 y 轴指向天空,x 轴指向东方,z 轴指向南极。

我看了看,remapCoordinateSystem但似乎仅限于交换轴。我想对于方向,我将不得不做一些低级的旋转矩阵变换(或者有没有更好的解决方案?)。但是加速度数据呢?有没有办法获得与固定坐标系(某种世界坐标系)相关的数据。

我需要这个的原因是我试图在手机放在口袋里时做一些简单的动作手势,而且我更容易将所有数据放在与用户相关的坐标系而不是设备坐标系中(这会有一点点不同用户口袋的不同方向)

4

1 回答 1

0

好吧,您基本上在开始时会获得北方向 - 为此,您使用加速度计和磁场传感器来计算方向(或不推荐使用的方向传感器)。

拥有它后,您可以从这些方位角、俯仰角和滚动角计算旋转矩阵(方向余弦矩阵)。将您的加速度矢量乘以该矩阵会将您的设备框架运动转换为地球框架运动。

由于您的设备会随着时间的推移而改变其方向,因此您需要对其进行更新。为此,请检索陀螺仪的数据并为每个新值更新您的方向余弦矩阵。您也可以像第一次一样获得方向真实值,但它不太准确。

我的解决方案涉及 DCM,但您也可以使用四元数,这只是一个选择问题。如果需要,请随时询问更多信息。我希望这是你想知道的!

于 2012-05-29T07:53:03.190 回答