Wiimote 方向作为 3D 矢量

发布于 2024-07-29 04:51:36 字数 149 浏览 5 评论 0原文

我想知道是否可以将加速度计读数转换为 3D 矢量,因为 Wiimote 有 3 个加速度计。

我知道提取俯仰/横滚的技巧,但它只使用 X 和 Z 加速度计,并且存在万向节锁定问题。

我想要的是一个完整的 3D 矢量,它可以转换为四元数旋转表示。

I wonder if it is possible, as the Wiimote has 3 accelerometers, to convert the accelerometers readings to a 3D vector.

I know the trick to extract pitch/roll, but it only uses the X and Z accelerometers, and has the gimbal lock problem.

What I would like is a full 3D vector, that can be converted to a quaternion rotation representation.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

誰ツ都不明白 2024-08-05 04:51:36

进一步考虑一下,加速度计值我正在寻找的向量的分量......您只需将参考向量和该向量之间的最短弧表示为四元数即可。

例如,如果 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 的用途。

Thinking about it further, the accelerometers values are the components of the vector I was looking for... You only have to express the shortest arc between a reference vector and this vector as a quaternion.

For example, if accel is a (normalized) vector containing the accelerometer values:

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

I chose {0, 0, 1} as the reference vector, because it is the values of the accelerometers at "rest position" (Wiimote on a table, pointing towards you).

This gives the same kind of movements the X/Z accelerometers pitch/roll conversion does, but without gimbal lock at vertical positions.

The only problem is you don't get information about rotations made on the earth gravity axis... I guess this is what the MotionPlus is made for.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文