我正在使用移动设备上的加速计和陀螺仪读数,我希望得到与设备方向相关的读数。
对于我将称之为方向A的设备在纵向模式下在桌面上是平的,我点击左侧(长)侧 该设备将有一定的加速度计和陀螺仪读数。 然后我垂直抬起设备,仍处于纵向模式但是面向我,我点击设备的左侧,调用它 方向B.
我想比较方向A的运动和方向B的运动。是否存在矩阵M:
orientation B * M = orientation A
并且可以将M应用于方向B处的加速度计和陀螺仪读数,以便它们看起来好像在设备处于方向A时已完成?我正在寻找有用的东西 对于任何设备方向。
有没有明显的东西我缺少或有趣的数学来做到这一点?
提前感谢,
埃里克
答案 0 :(得分:0)
我想我想出来了:
q1 is the Android rotation vector (quaternion) at orientation A
q2 is the quaternion at orientation B
a2 is a 3-tuple describing the acceleration at orientation B
a2's acceleration with respect to the q1 coordinate system is:
q1.rotate( q2.inverse.rotate( a2 ) )
这是使用Python四元数库。