我不知道这是可能的,因为Wiimote的有3个加速计,以加速度计读数转换为3D矢量。
我知道的伎俩提取俯仰/卷,但只使用X和Z加速度计,并拥有万向节锁定问题。
我想是一个完整的三维向量,可以转换到四元数旋转表示。
我不知道这是可能的,因为Wiimote的有3个加速计,以加速度计读数转换为3D矢量。
我知道的伎俩提取俯仰/卷,但只使用X和Z加速度计,并拥有万向节锁定问题。
我想是一个完整的三维向量,可以转换到四元数旋转表示。
关于它的进一步思考,加速计值是向量的我一直在寻找的成分......你只需要表达一个参考向量,这向量作为四元数之间的最短弧。
例如,如果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是为制作。