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

大数据文摘

共 4109字,需浏览 9分钟

 ·

2022-04-18 00:14


大数据文摘授权转载自果壳
作者:露露Mikuru
编辑:沈知涵

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


做了一个月的 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 头显风扇丨作者供图

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


点「在看」的人都变好看了哦!
浏览 22
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报