我做了一副元宇宙手套,成本300元

原创 露露Mikuru 果壳 2022-04-15 15:59

收录于话题#GeekHere 有极客

5个

想啥呢?还不能“嘿嘿嘿”......

做了一个月的 VR 游戏主播之后,除了越发沉迷于《半条命:Alyx》之中,我还在思考另外一个问题:现在的 VR 还差点什么?

作为一名“中之人”,我在直播时会用虚拟形象来解说——我相信,如果未来一定要有一个虚拟世界,我们跟自己的数字替身要“深度绑定”在一起。这个绑定不仅是外在认知上的,还有真实世界和虚拟世界中的体验应该是共通的。

玩家知道,VR 游戏与传统游戏拥有着截然不同的体验。在 VR 游戏里,你不必哈腰坐在电脑前,摆弄着鼠标键盘。你真的可以用双手手柄当作枪,瞄准敌人、扣动食指按压扳机,今天的 VR 游戏已经能非常准确地识别手指动作——但你却无法在 VR 世界中捡起一节掉落的弹夹。

偶然间,我在油管闲逛时,看到 Lucas(一个美国的 VR 创业团队创始人)制作了一款 VR 触觉手套,重点是所有零件成本,他只花了 60 美元。

我将这条视频申请转载到自己的账号上,没想到反响热烈。加上 Lucas 的那句“你真的可以用它来触摸任何东西”,加重了我的好奇心。顺藤摸瓜,我在 GitHub 上找到了开源的教程,准备动手做一对。

需要买的零部件丨作者供图

目前的技术来说,我并没有期待“能触摸到任何东西”的 VR 外设出现。但打动我的也正是这一点。目前 VR 市场上,除了一个头显、两个手柄,就没什么所谓的新东西了,任何能以“平民价格”扩展用户体验的尝试,我觉得都值得一试。

用最便宜的方式触摸虚拟

1987 年,还是任天堂红白机的时代,手套作为体感游戏的外设就已经承担起“输入设备”的功能。

Power Glove丨YouTube“Gaming Historian”

现实中的你如果想摸到游戏里那把枪,除了让计算机识别你的手在动,建模出虚拟的手跟着真实的手同步运动(信号输入功能),还要等到虚拟的手握住枪时,返回一个信号——这个信号作用在手上,也就是我们常说的力反馈。

Meta 曾经放出触感手套的视频,采用微流体(microfluidics)技术,使用气致动器(pneumatic actuators)通过气泡充气、放气的方式制造精准压力。为此 Meta 称还在构建一个高速微流体处理器。本来大家还在欣慰“all in”元宇宙的扎克伯格,终于拿出来点儿东西时,另一家触感手套开发商 HaptX 说,“Meta 是抄我们的!”

Meta 研发了七年,HaptX 研发了十年,谁抄谁我们不得而知,但确定的事,VR 相关技术从面世到成熟(最起码价格上被普通用户接受)需要很多年的沉淀。

如何以“极低成本”实现力反馈让我兴奋。当我翻阅教程之后,发现 LucidVR 用了一种特别“取巧”的方式。如果说 Meta 和 HaptX 是让你的每一寸手部皮肤都是受力点,那 LucidVR 这副手套只把力反馈给指尖。

将拉绳固定在手指上丨作者供图

简单来说,当即将抓住物体的一刻,手指要被立即拉扯住,防止进一步弯曲。因为弯曲幅度不同,意味着手里“握”着的物体大小、形状都不同。控制手指不能继续弯曲的方式,就是给指尖一个“反作用力”。

指尖受力丨作者供图

所以手套的主体部分就是一个“总闸”,延伸出去五根套在指尖的拉绳,随时喊停。

舵机与电位器相连。当轮轴转至(舵机)限位时,舵盘就会挡住轮轴上的螺丝钉,让轮轴无法继续转动,拉绳不能继续展开。丨作者供图

当我知道力反馈的原理之后,还需要搞清楚何时,以及如何“关闸”。

“何时”很好理解,就是当虚拟的手触碰到虚拟世界的物体的时刻。因此我们需要做一个媒介,让生物体的动作信号和计算机的电信号能相互转换,彼此“理解”。这也是我认为这副手套最为巧妙的设计。

旋转式电位器(其原理类似于初中课本上的滑动变阻器)与拉绳连接使用,当手指弯曲时,五条拉绳分别带动五个电位器,拉绳拉出的长度被转化为电位器阻值的变化,传递给虚拟世界做解析。

课本上的滑动变阻器丨图片来自网络

在建模“数据手套”上,也有例如基于 IMU(惯性测量单元)或弯曲传感器的其他实现方式。所谓惯性传感器是测量物体三轴姿态角和加速度的装置,一般包括三轴陀螺仪、加速度计、磁力计来进行多传感器数据融合,以重建每根手指的三自由度方向。弯曲传感器更好理解,手指在做弯曲动作时,发生物理变形来使传感器阻值发生变化。

对比弯曲传感器和电位器的价格丨图片来自淘宝

这两者传递数据明显更加精准,但为什么不用?答案只有一个:更昂贵。

借助 3D 打印的轮轴把电位器和拉绳“连”起来丨作者供图

了解完何时“关闸”,还有如何“关闸”。显然,拉绳需要一个装置,在其伸缩过程中“卡”住它。我跟着教程买回了 MG-90S,航模中常见的舵机,也很便宜 10 元一个。

适用领域极广的 MG-90S 舵机丨图片来自亚马逊

做了一个月,只在游戏里捡起了一支酒瓶子

看完一遍教程,我迅速掌握了原理,对自己说,这“貌似”挺简单的?不就先这样,再这样,最后那样?

我立刻在电商平台下单了所有零件,都是一些生活中常见的工具。唯独有一部分没法买到的现成品(将各模块拼装起来的骨架),我是根据开源的零部件参数,用家用 3D 打印机解决的。

当然也可以找万能淘宝代打丨作者供图

然后,这一做就是一个月啊……同时我深刻理解了“取巧”的另一层含义是“还不完美”。

当我戴上做好的触觉手套,调整好 Valve Index(VR 头显)的位置,启动游戏《半条命:Alyx》。我身处熟悉的“17 号城市”,从背包中掏出手枪,瞄准散落在街边的酒瓶,“砰!”在开枪的一瞬间,我脑补应该有一股后坐力传来。实际上,仅是我的食指在扣动扳机的那一刻被拉住了——要说这体验比在公园打气球还“塑料”。

但是我应该是成功了吧!我换了一个散落在街边的酒瓶子,“拿”在手里,我能大概“摸”出,它是一个圆柱体。

游戏里的使用效果丨作者供图

当我想更灵活的使用它们时,我发现了问题。

首先是“识别准确率”问题。我们需要先明白,定位追踪和局部追踪是两个概念,手套整体的定位追踪可以通过附加 Vive Tracker、Oculus 手柄,这样现成的追踪技术来实现。

手指的局部追踪才是一款力反馈手套要去解决的重点。我在组装时就发现,这副手套设计并非为每个指关节附有传感器,手指的弯曲状态只能通过拉绳转化的电阻信号被大概建模出来(为此 Lucas 可能设计了一套软件),不够精确到每一处关节。

手部追踪丨作者供图

其次是“识别范围”问题。同样是因为手套简陋的构造,我的手指只能在上下运动时被识别,左右展开,旋转等其他自由度是无法实现的。但是 Lucas 告诉我,他已经在解决这个问题,下一版手套将会增加左右展开的自由度,实现方式是在第一节指关节处增加一个电位器。

识别准确与否,会影响力反馈的效果。另外一个因素,就是限位位置的调整。手指的不同弯曲程度,与不同的限位位置一一对应,驱使舵盘转向不同的角度,再作用给正在伸缩中的拉绳。

在我的理解中,能实现这一点,是 LucidVR 系统预设好了这种“对应关系”。

但是每个人手部状况不尽相同,需要在使用前,对限位做“个人化”的校准。调太紧导致,还没等抓到物体手就被拉住;调太松导致,拿到物体就跟空手握拳一样。

这一点没有简便的方法,只能在戴上头显时,感受松紧,“估算”限位位置。摘下头显之后,拧开舵机螺丝,调整舵盘,如此反复,直到在虚拟世界中正巧抓住物体。

不停调试限位位置丨作者供图

除此之外,长时间的拉伸,会导致拉绳、手套变形。由于整套装置并非完全贴合在手上,而是粘在手套上,手套的轻微移位也会带来力反馈的误差。

优化体验不能停止!可以改造,也可以脑补

在手套真正用起来之前,还有一段小插曲。

在我调试很多遍之后,舵机依然纹丝不动。我跑到 Discord 上面求助,网友告诉我,并不是舵机线跟开发板连错了,而是电流太小了,带不起舵机。我需要单独给舵机连接一个新的充电宝,而不是跟开发板共用一个充电宝。

LucidVR 的 Discord 讨论组里有 14000 个关注者。有人将这副手套改良,把拉绳换成更加坚韧的塑料片,解决拉绳容易变形的问题。

也有人直接改变构造,做成了外骨骼形状,留出空间加更多传感器。很多的开源项目,都不会面面俱到,相反他们会留出很多“空白”,让技术爱好者自行探索。

外骨骼版丨作者供图

Lucas 在他的演示中,把戴了手套的 VR 体验描绘得令人异常兴奋。在《半条命:Alyx》中,你可以拾起易拉罐,再扔出去,走到车旁,开门上车,甚至遇到危险时,爬墙而逃。不过,这更多是带入其他感官体验的“脑补”,你最多体验到顶在一面墙上的阻力,不会有克服重力向上攀爬的感觉。

明知道这些,当我第一次戴上这只手套,感受着物体是大是小,是圆是方,即便只是从指尖传来的生硬“触感”,仍然让我觉得新奇。在此之前,我甚至无法想象“空握”一只玻璃瓶。

几乎在做手套同时,我自制了 SlimeVR 全身追踪器。与手套“同理”,我做了五个传感器分别绑在脚踝、大腿、腰部(因为 SlimeVR 软件没有对上肢建模),五个传感器先通过 T-pose 重置识别出绝对位置,再通过“彼此”识别出相对位置,将电信号解析成虚拟人的动作。配合这副手套(手柄)和头显,就能让“老二次元”在 VRChat 里快乐斗舞。

SlimeVR 也将代码开源丨图片来自 SlimeVR

几个月之前,我将自己制作的视频发在网上,随机收获了很多关注者。当然这还不是令我最兴奋的。“SlimeVR 全身追踪器”视频发出两个月后,其中最重要的零部件——BNO-080(九轴传感器模块)在淘宝上从 90 块钱涨价到 300 块钱。(在此之前,没有人教学自制 SlimeVR 全身追踪器,姑且当作是我激发了老二次元们的热爱吧。)

传感器模块丨作者供图

当然我收到的不都是“赞美”。我 3D 打印了一个能正好装下小风扇的模型,接到头显上,解决闷热的问题。

自制 VR 头显风扇丨作者供图

但这一次,因为使用的风扇过于便宜,我的方案被调侃产生噪音过大——“像飞机场”。

作者:露露Mikuru

编辑:沈知涵

更多“有极客”故事

本文来自果壳,未经授权不得转载.

如有需要请联系sns@guokr.com

收录于话题 #GeekHere 有极客

5个

上一篇外公去世十年后,我用 AI “复活”了他

喜欢此内容的人还喜欢

熊猫才不是“性冷淡”!关于熊猫的3个谣言和2个真相

...

果壳

不喜欢

不看的原因

确定

内容质量低

不看此公众号

微信扫一扫关注该公众号

推荐内容