魔术手势是电子工程师的挑战

魔术棒很酷,但仅通过移动手部进行魔术就可以轻松得多。 为了实现这一目标,2014年,我们开始重视手势识别,并在角色扮演游戏的加速度计上戴上了手套。 事实证明,该项目很复杂,而且影响深远。



因此, Andrzej Sapkowski的世界中的“有这样一种工艺”游戏。 大部分角色都是在Caer Morhen Castle学习的具有巫师气质的少年。 他们必须杀死怪物,煮长生不老药,按照特殊规则击剑-并练习魔术手势。 有人死亡,有人向成年女巫摇摆。


在世界各地的Andrzej Sapkowski的电脑游戏中与Aard和Yrden签约。

将玩家的左手(用右剑)放在一些读取手指运动的设备上是合乎逻辑的,例如手套。 最简单的解决方案是在其中使用应变仪。 但在2013-2014年间,应变计的价格为110卢布。 这个数量乘以五个手指和25个设备,将带来沉重的成本。 不幸的是,中等批量生产教会了我们良好的计数:每副手套我们必须花费不超过2000卢布,而且我们不能将其中的四分之一降低到传感器上。

选择组件并创建手语


我们转向了加速度计。 加速度计的价格相当现实30卢布。 在第一个实验中,只使用了一个安装在剑上的传感器-很快就变得很明显,无法像我们最初希望的那样进行动态运动。 实际上,加速度计仅给出有关是否存在秋千的信息。

选择静态位置而不是动态位置,因为在静态位置我们可以清楚地在需要位置和不需要位置之间划清界限。 在动力学中,加速度计旋转时发生的加速度可能会像任何东西一样。

因此,很明显,我们需要使用静态条款。 但是哪个呢? 人的手具有20多个自由度,是否值得在每个指骨上贴上加速度计? 传感器成本高昂,手指的长度和灵活性各不相同...

使用飞机模型语言中的加速度计,我们只能确定两种类型的运动-侧倾(左右摆动)和俯仰(用头向上和向下)。 而且,偏航(左右旋转)不再存在,因为重力保持不变。


加速度计看不到这两个手势之间的差异。 问题!

结果,我们决定在第三个指骨的区域中,将一个传感器放在手掌背面,每个手指上一个传感器。 这为发明手势提供了一定的空间。

第一个原型看起来像是连接了传感器的发现板。 处理数据的python脚本(六个三级传感器-每个手套位置对应一个18个数字的向量),我们不会向任何人显示-它不是那么完美,自2014年以来我们学到了很多。


最早的原型-完美地感知了他的主要开发人员弗拉基米尔·雅顺斯基的姿态。

批量生产和意外的情节扭曲


记录参考值,将其与获得的数据进行比较。 没什么好麻烦的。

比赛开始前两个月,一个系列就已经准备就绪-将25个传感器焊接在电线上,粘在建筑手套上,并用电池和LED连接到25个板上。


工作流程-焊接LED。

将每个加速度计放在热熔粘合剂上。 因此,他担任的职位略有不同。 戴着一半手套的新手套同意感知弗拉基米尔的手势,但只有他。




原型和系列。

怎么办 比赛开始前两个月,手套宣布了,球员们开始学习手势。 从理论上讲,可以为每个手套制作自己的固件。 实际上-我真的不想。 我也不想扩大允许的动作范围,否则手势将开始变得彼此混淆。 我不得不整理统计资料

我们邀请了10个人(手指的长度和灵活性不同),并要求每个标志中的所有人做出所有手势。 志愿者做了个手势。 弗拉基米尔(Vladimir)确保系统正确识别了他,确认手势有效并将该值记录在文件夹中。 不用说,平均值与弗拉基米尔本人给出的平均值不太相似吗?
收集统计信息后,对于每个手势,计算出数学期望和方差。

通过用户的眼睛手套


发明了十种手势。 但是,导致积极结果的单一手势充满了事件。 举手向一个人打招呼,并无意中将他焚化,这是一种耻辱。

决定偏离Sapkowski的文本,并在每个Sign中包含三个手势。
第一个手势是Sign的启动手势,它是唯一的。 第二个是增强力量,这个手势是相同的。 一切都以第三个手势(行政手势)结束。 一共有三种。

撤退。 人与电子


有这样一条规则-在他的所有失败中,一个人倾向于指责别人。 如果故障似乎与电子产品有关,他们会将问题归咎于电子产品。 对我们而言,这意味着:如果您可以解释有利于玩家的动作,则需要这么做。 但是误报妨碍了友善,他们也不会被原谅。

为了控制Sign的正确执行,他们首先想编写一个环形缓冲区。 但是,不可能有大量的误报或相反的失败。 因此,我们通过状态机走了另一条路。 如果刚刚打开手套,则第一个手势只能是五个启动手势中的一个。 正是它们导致了微弱的振动,而首先产生的“强度集”被忽略了。

最大的用户忠诚度体现如下:

在第一个正确手势之后,用户有10秒的时间做出第二个正确手势。 在此期间,他可以用手胡说八道。

这不算作错误:


看,用户正确地启动了Aard(张开的手),转而获得力量,但犹豫了一下,做出了错误的下降姿势。 使用环形缓冲,这会中断字符执行,使用户不高兴。 状态机忽略了这个小的污点。 使用者记住正确的触发手势,手套即被触发。

在某处,手套仍然可以扔出肮脏的把戏。

他们想推开一个带有Aard标志的同志,而无意中又烧了一个与Ignie相似的标志?


在正确执行Aard(张开手)和Igni(捏)之间,还有其他一些混乱的选择-5个加速度计指向上方,而手背的加速度计则不指向上方。 这让女巫感到惊讶。



决定该手套应与用户通信,并且将通过振动进行通信(我们经常使用振动,这使我们能够创建没有人造屏幕,不遮挡声音和光的设备-但仍能够与用户通信)。

在执行初始手势时,手套略微振动,在第二手势上振动更大。 他们向用户解释:这是因为您感觉到掌心充满了凝块。 相应颜色的闪烁指示正确执行的标志,游戏中的每个人都知道如何对这种事情做出反应。


所有的游戏技术人员-女巫与之战斗的怪物-都知道如何对手套的光做出反应。 而且,例如,我不得不在快活的跳线上处理这样的螳螂。
Lily Barladyan的照片


巫婆让邪恶的沼泽生物关闭,以一定的招牌将Aard扔掉。
Lily Barladyan的照片

戴手套的大多数魔术本来应该在晚上发生,但以防万一,它使用了通常的输出LED(比RGB亮)。 此外,不存在混淆输出LED色彩的风险(使用RGB的人注意到,从某些角度来看,很明显,黄光是红色和绿色的组合,依此类推)。


女巫没有手势。 在加固胶带的下方,您可以看到手机的电池,即振动马达。
由Ekaterina Grigorova摄

抒情离题


如果系统只有一个输入点,然后开始识别某些东西,那就很好了。 好的,谷歌。 当有五个这样的要点时该怎么办? 用户经常感觉到轻微的振动,动力不断涌入。


戴着手套的女巫。 在胸前,徽章是一个简单的电子设备,可显示醉酒的颜色。
艾琳娜·马夫里基迪(Elena Mavrikidi)摄影

然后我们来到了森林。 那里出现了几个问题。 首先,没有人戴上手套-皮革-手套不舒服。 因此,在照片中您可以观察到统一的赛博朋克,但更令人讨厌的是-电线因此而死了。 几台振动马达死亡,它们被直接焊接到垃圾填埋场。 手套的主要问题也许是它诞生的年份。 我们仍然没有3D打印机,没有东西打包,所有东西都放在热熔胶上。


巫婆
艾琳娜·马夫里基迪(Elena Mavrikidi)摄影

但是,游戏没有进行全球性评估。

接下来是什么?


回到莫斯科,在洗衣机中清洗手套(当然,要关闭控制器并关闭电池),并计算损失,然后我们考虑进行升级。
可以不使用IDE电缆(根本不用于可穿戴电子设备,并且由于苦难而使用),而可以使用电话“红色电缆”。 并且让他戴着手套继续穿上束带,这样洗手的问题就根本不会出现。 并连接IR LED以使手套与激光标签结合在一起。 还有...

然后出售出现了肌红蛋白 。 我们和他一起玩耍,意识到我们不会进一步开发手套。 没什么 从肌肉读取信号比从手指读取信号要方便得多。 (确实,对于基于角色的用途,由于价格昂贵,因此不适合使用myoslet)。 手套在滨海边疆区又进行了一场比赛,并不断巡回展览。

我们认为,这种体验是有用的,尽管有时会很痛苦-在创建用于识别动态手势的手镯时派上了用场,这是我们的新项目。 考虑到我们是如何被焊接在电线上并分布在织物上的传感器所折磨的,手镯花了两个焊接在一块普通的可靠板上。 手套在静电状态下工作,具有大量初始数据(来自6个传感器的18个数字),腕带的位置由2个数字表示(使用Mahoney算法,我们转换了从传感器接收的9个值)。

但是,有些人对实验手套感兴趣。 2015年,该手套被展示给一所设计学校的参与者,有人认为这是一个挑战。 Daniil Velovaty(当时是一名男生,现在是MIPT的学生)收集了自己的版本。 与我们不同,他通过设备实现数据传输,并通过带有标志的远程打开水壶使参观者感到惊讶。 丹尼尔的手语也是他自己的。

Source: https://habr.com/ru/post/zh-CN403757/


All Articles