-->

Wiimote的取向作为3D矢量(Wiimote orientation as a 3D vecto

2019-09-21 16:38发布

我不知道这是可能的,因为Wiimote的有3个加速计,以加速度计读数转换为3D矢量。

我知道的伎俩提取俯仰/卷,但只使用X和Z加速度计,并拥有万向节锁定问题。

我想是一个完整的三维向量,可以转换到四元数旋转表示。

Answer 1:

关于它的进一步思考,加速计值向量的我一直在寻找的成分......你只需要表达一个参考向量,这向量作为四元数之间的最短弧。

例如,如果accel是包含加速度计值(归一化)载体:

reference = Vector3(0, 0, 1)
axis = crossp(accel, reference)
angle = acos(dotp(accel, reference))
q = Quaternion::from_xyzr(axis, angle)
rotation_matrix = q.matrix()

我选择{0,0,1}为基准向量,因为它处于“静止位置”加速度计的值(Wiimote的桌子上,指向你)。

这使同一种运动的X / Z加速计俯仰/滚动转换呢,但没有在垂直位置万向节锁定。

唯一的问题是你没有得到关于地球重力轴旋转做出信息...我想这是什么的MotionPlus是为制作。



文章来源: Wiimote orientation as a 3D vector