0

我正在使用(精彩的)WiiYourself 使用 Wiimote 进行手势识别!图书馆。一切都在 C++ (Visual Studio 2010) 中开发。

我正在尝试处理 wiimote 移动的加速度矢量(幅度和角度)。当个人摆动它时,我想知道它朝哪个方向移动,以及用了多大的力。

问题有两个方面:

  1. 我需要能够处理 WiiMote 的初始加速度值,而不是停止遥控器的减速度。

  2. 如何管理来自遥控器的源源不断的加速度数据流,以便为我提供有用的信息?

我意识到这更像是一个合乎逻辑的问题,但我很难把事情放在一起。

4

2 回答 2

0

我会通过记录“完美”挥杆并在内部绘制数据然后将该数据保存在应用程序内的资源中并在应用程序内部随时间映射移动然后使用矢量比较比较两者来做到这一点。对每个内部存储的运动从最后 X 秒的运动进行评分,并对无效运动使用截止值。然后得分最接近的人获得分数。

一旦检测到成功的动作,您应该将该时间跨度标记为“已使用”,因此不再适用于任何评分(这是为了阻止在控制器的一个动作中选择多个动作)。

可以通过找出关键位置的点随时间的平均差异来进行比较。IE。以 5 毫秒的间隔检查每个点并确定 3 个加速度矢量的差异,这些差异之和的平均值可以作为分数。得分最低的手势是最佳匹配。

于 2012-08-12T12:39:35.147 回答
0

首先,您可能会尝试从不同的轴捕获一系列样本,可能会制作一些函数,如向量幅度和向量和,并将它们全部绘制出来。查看这些值如何作为信号表现。

也许你可以通过这种方式看到你想要观察的运动的价值。

于 2012-02-21T09:11:01.447 回答