在 android 中将线性加速度转换为世界坐标系
convert linear acceleration into world frames in android
我有方向传感器给我世界坐标中的方向角(或四元数)。现在我从 TYPE_LINEAR_ACCELERATION 获得线性加速度,它给出了 phone 坐标中的加速度。现在的问题是如何将加速度从phone的坐标转换为世界坐标?
谢谢
首先你需要旋转矩阵而不是方向值
如果您有坐标角,您可以将它们转换为旋转矩阵
Rotation Matrix from Euler Angles
得到旋转矩阵后乘以地球坐标系中的加速度就得到phone坐标系中的加速度
a_p = phone坐标系中的加速度
R = 旋转矩阵
a_e =地球坐标系中的加速度
a_p = R * a_e
并且旋转矩阵的逆等于其转置
R^-1 = R^T
a_e = R^T * a_p
这意味着如果将旋转矩阵的转置乘以 phones 读数,您将获得地球坐标系中的加速度
我有方向传感器给我世界坐标中的方向角(或四元数)。现在我从 TYPE_LINEAR_ACCELERATION 获得线性加速度,它给出了 phone 坐标中的加速度。现在的问题是如何将加速度从phone的坐标转换为世界坐标? 谢谢
首先你需要旋转矩阵而不是方向值
如果您有坐标角,您可以将它们转换为旋转矩阵
Rotation Matrix from Euler Angles
得到旋转矩阵后乘以地球坐标系中的加速度就得到phone坐标系中的加速度
a_p = phone坐标系中的加速度
R = 旋转矩阵
a_e =地球坐标系中的加速度
a_p = R * a_e
并且旋转矩阵的逆等于其转置
R^-1 = R^T
a_e = R^T * a_p
这意味着如果将旋转矩阵的转置乘以 phones 读数,您将获得地球坐标系中的加速度