Joh*_*n H 4 accelerometer gesture gyroscope microsoft-band
通过手机,我可以向配对的Microsoft乐队发送消息和/或对话,但我想收到乐队给手机的确认.由于似乎没有任何其他方式,我认为我将不得不采取一种姿势,例如用户来回旋转一次手腕,或者可能会晃动他们的手腕.这听起来像是加速度计和陀螺仪的工作.从这些中收集信息应该很容易,但是在识别手势如一个方向上的手腕旋转然后又回到另一个方向时,任何人都可以建议如何将其识别为有意的手势,而不仅仅是正常的"非手势"动作?
非常感谢任何帮助,
约翰·H
Iri*_*son 10
首先保存数据并将其绘制为不同类型的图形,以查看是否看到手势的模式.我有一个类似的问题,我想检测用户何时咬一口,并过滤掉其他手势,如切割,饮用等等.
我记录了1分钟的数据,并且完全按照预定的数量进行了咬合,否则正常进行了相互作用.然后我稍微平滑了数据,并查看图表,看看我是否能看到一个模式,看看我可以使用哪些阈值.
我确定了一些因素:定义咬合的一组中的读数(必须在16ms间隔时超过20)Y轴上的峰和谷之间断裂
我用它来创建一个计算,根据用户提供的训练数据找到"终极"阈值,但由于旋转等手势在人与人之间大致相同,你可以预定义阈值,然后让它例如,用户设置灵敏度.
以下是一些图表:
应该说Y数据:)


这个图像可能太模糊了,但这一切都始于一些想法和一些白板,其中包括使用斜率,抛物线计算,随时间加速和未考虑的内容.蛮力工作最好,或者我只是在数学上吮吸.

摘要
摇动应该相当容易,只需决定哪种方式(上下或侧面,或两者都允许).设置轴的阈值,并确定在多长时间内有多少交叉点.
手机上的伪代码,原谅丑陋:)有些东西......?:
if(totaltime <maxTime)
if(reading.X> something)if(reading.timestamp - itemsForCount.Last().TimeStamp <= maxTimeBetweenShakes)itemsForCount.Add(new item({....})
if(itemsFourCount.Count> = desiredShakes)itemsFourCount.Clear(); if(totaltime> maxTime)itemsFourCount.Clear();
灵感:我已经完成了Leap动作的一些工作,我记得看看他们的js代码,看看他们的几个手势是如何定义的.这是Js的跳跃运动.C#libs需要反编译,这将违反lic.协议.
Hammer.js是一个有趣的OSS,你可以看到如何定义触摸手势, - 查找滑动和旋转.
还有一些值得关注的kinect手势api,但与飞跃不同,因为你通常有一个骨架或点模型可以使用,还有一个坐标视图框.
| 归档时间: |
|
| 查看次数: |
609 次 |
| 最近记录: |