加速度计3轴完全旋转

时间:2016-09-02 17:12:22

标签: math unity3d rotation accelerometer gyroscope

我正在实现一个软件,该软件通过加速度计(通过USB端口连接)读取原始数据并旋转虚拟对象(例如,在unity3d环境中的立方体)。 根据加速度计给出的原始数据,我计算出加速器组件:

Xg = raw_data[0]*range/pow(2,resolution-1) //for x accelerator component
Yg = raw_data[1]*range/pow(2,resolution-1) //for y accelerator component
Zg = raw_data[2]*range/pow(2,resolution-1) //for z accelerator component

其中范围和分辨率由加速度计数据表提供。

然后我通过以下公式计算俯仰和滚转角度:

roll = arctg(-Xg/Zg)*180/PI
pitch = arctg(Yg/sqrt(pow(Xg,2)+pow(Zg,2)))-180/PI

最后我从陀螺仪中获得了偏航角。

为了旋转场景中的物体,我将其欧拉角设置为这些值,但物体在x和z轴上有一个完整的旋转(滚动角和​​偏航角),但不是在y轴(俯仰角)里物体只旋转180度。 问题是俯仰角在[-90,90]度范围内和物体 不能有360度旋转。 对于y轴,是否有一个俯仰角公式可以360度旋转?非常感谢。

0 个答案:

没有答案