Dexta谷逍驰:让你触摸VR世界的技术,是这样实现的
手势交互正成为VR交互领域的热门方向,国外有著名的Leap Motion、uSens,国内也有微动、HandCV等团队。直接用手在虚拟世界中操作似乎是件很自然的事情,然而真实体验时你却会发现明明看到手抓住一个东西,感觉却是抓了一堆空气。
正是这个原因,让你在手势交互的同时感受到虚拟世界,成为一个努力的方向。这一块最著名的创业公司之一便是Dexta Robotics。Dexta Robotics是一家致力于发明下一代VR/MR交互设备的公司。他们的主要产品Dexmo是一副可穿戴手部外骨骼,可以帮助用户在 虚拟现实 的交互中感觉到虚拟物体的体积,形状,硬度以及力的反馈。
本期硬创公开课,我们请到了Dexta的创始人兼CEO谷逍驰(Aler Gu)。谷逍驰是狂热的机器人爱好者,曾在剑桥大学修读机械控制工程专业,本硕连读,后中途休学。
Dexta Robotics创始人兼CEO谷逍驰
下面是本次公开课的整理内容:
雷锋网 (搜索“雷锋网”公众号关注) :Dexmo这款产品从2013年就开始开发了,当初是如何想到要开发这样一款产品的?为什么做了这么长时间,期间需要攻克的难点主要是?
谷逍驰: 早期Dexmo的主要功能只是检测手部动作。当时主要设想的几个使用场景有虚拟现实,和我们的老本行,灵巧机械手的控制进行远程机器人排爆,为“telepresence”提供沉浸感和更精准的控制。后来随着2014年虚拟现实的兴起,我注意到越来越多的人把精力放在头戴式显示器上。 于是我们把眼光放长远:在2年后什么样的技术会被市场所需要?
(雷锋网注:“telepresence”,网真,是一种通过结合高清晰度视频、音频和交互式组件,在网络上创建一种独特的"面对面"体验的新型技术。)
结论是交互。 在采访了很多圈内的朋友之后,我们了解到将触觉带入虚拟现实是一个巨大的需求,但是因为实现困难,却显有人真正解决它。市场上已有的方案大多已经过时,显然跟不上这一波虚拟现实的潮流。也是因为技术从业者特有的那种自信,我们相信以自己的团队能力能够啃下这块硬骨头。而后我们就在已有的动作检测设备的基础上上尝试加装不同的力反馈方案。2年后,事实证明我们也做到了。
Dexmo最早期的产品概念设计图
难点:
整个设备的设计过程中难点很多很多,因为没有一块是现成的。不论是硬件还是软件,很多时候都需要从头造轮子,因为市面上能找到的轮子都不够好。比如拇指动作检测模块的结构设计,设备和上位机件的双向通讯速率的优化,力反馈模块的紧凑设计,软件端手部抓取的交互逻辑等等。
稍微详细些说,硬件方面的最大挑战是 :把整个力反馈单元在保证功能性的前提下做的非常紧凑。首先,外壳,齿轮,电机驱动电路,嵌入式程序都是从0做起的。尺寸,重量,成本,扭矩,外形都需要平衡。这里面Cost function(成本与功能)的优化涉及到太多的方面,让取舍变得相对更困难。还有一部分困难不是技术上的。硬件公司都体验过,在小批量生产的时候,因为订单量的局限性厂家很难全力协助你。这点我非常感谢东莞伟创模型的陈伟杰先生的鼎力相助。他们在Dexmo力反馈舵机的设计打样中给我们了很多无私的帮助。
软件上的难点主要是: 在没有合适的硬件的前提下很多东西是无法debug的。在没有硬件进行测试的时候,很多问题根本不会显现出来,这也间接拉长了战线。软件工程师的很多工作是取决于硬件设备的稳定程度的,这甚至可以说是一个管理统筹上的问题。比如我们的3d物品交互引擎,将一个物体从左手传递到右手,这个看起来很简单的动作,其实设计到手部多点碰撞和对齐。一旦有物理效果参与其中,其交互复杂程度也直线上升。但是在硬件设备稳定工作之前,我们的软件工程师无法参与调试,所以即使知道这块是难点,也只能先放着,堆进技术pipeline里。
雷锋网:Dexmo是如何做到让用户感受虚拟世界的?
谷逍驰: 简单的描述下运作机理:Dexmo本身有2套系统,动作检测,和力反馈系统。 难点是如何协调起这2部分,让他们可以无缝的工作。动作检测系统检测人体的11个自由度的手部动作。拇指3个自由度,剩下的四根手指每只2个自由度。将这些信息采集到之后,通过NRF回传到电脑。
Dexmo系统简易说明图
在PC段我们把用户的手部模型Map到虚拟人物的手上,并且开始进行物体交互的碰撞检测和物理状态判断。计算出实际上应该生成的力的矢量方向和大小后,我们再把这些数据发送回Dexmo,并且通过母版分别传递到5个力反馈模块上,进行力的模拟。当人在抓取一个物体时,他的手无法穿过这个物体,并且手的形状将贴合物体的形状,通过和虚拟视觉内容的呼应,产生让人抓住物体的错觉。
雷锋网:“Dexmo让用户可以感受到虚拟物体的大小,外形以及硬度”,这里面只有硬度是力反馈,大小和外形是怎么做到的?物体的重量,表面的质感,这些也是很重要的触感,可以模拟吗?
谷逍驰: 硬度是通过控制力的大小和输出区间拉实现的。 大小是通过外骨骼的几何形状配合3d虚拟内容的形体来模拟实现的。比如手正在抓一个虚拟的罐子,手指的运动会被限制在罐体的表面上,就好像在现实世界中我们抓取罐子一样。手指尖的几个触点提供的力反馈在视觉反馈和大脑的协调下让我们感受到了形状和大小。
90年代能够生成重量的设备,我个人认为这类产品很难能够成为进入千家万户的消费品
重量是一个很有意思的问题。 中学物理告诉我们,作用力=反作用力。要模拟真实的重量,你可能需要在手上连接一个固定在墙面上的力反馈机械臂。这种方式并不是消费者能够接受的,所以模拟重量还是一个难题,我们可能只能通过创造illusion来模拟重量了。
Dexmo尝试过的力反馈机械臂设计
我们以前也有过类似的尝试,不过因为严重限制了用户的运动范围,所以停止了力反馈机械臂的开发
触觉又是另外一个问题 ,限于篇幅我只说一点:很多时候不是技术本身没有被开发出来,而是当下收到成本、尺寸的限制,即使将其做成产品,高昂的成本也会让消费者望而却步。
雷锋网:力反馈在机械上是怎么实现的?用的是何种控制器?机械延迟如何解决?
谷逍驰: 力反馈不是一个机械问题,而是一个控制问题。
简单的说我们的电机控制算法可以让电机的行为表现更接近一个可变硬度的弹簧,通过上位机的指令可以非常快速的调节这个硬度和响应区间。控制器就是随处可得的微处理器,按照需求选成本最低的,这个没什么太多可说的。
机械延时是一个问题 ,但是目前我们实用的方案是电机通过齿轮直驱,所以响应速度在齿轮质量过关的前提下,已经是电机本身的响应速度。
雷锋网:如何解决手指穿过物体的问题?这在Leap Motion等手势交互方案上会出现。
谷逍驰: 我从真实物理和图像2个方面来描述下。
物理效果 的限制来自于力反馈模块提供的反向扭矩,而触发反向扭矩的是虚拟内容。这里需要满足2个条件:虚拟内容的triggering和物理上要有硬件来生成这个力。虚拟世界中的碰撞检测器了解到碰撞后,会触发力反馈模块的动作。这个具体机理其实可以参考Q2。
图像方面 ,我们有自己的一套交互引擎来限制虚拟3d物体和手部的相互交互。两者相结合才能真正提高沉浸感。
Leap Motion最新推出的交互引擎其实尝试着去解决了一部分这个穿透问题。他们只做了图像上的限制,也就是手部抓取物体时,弯曲到某一点,图像上就限制了手的运动,模型也停止跟随手部动作。但是鉴于没有任何硬件,真实世界中的人手是不受到控制的。这也是其他手部动作捕捉方案的通病。
在这里我想指出:振动电机和力反馈不能划等号。
振动电机从技术上说非常容易实现,这也是大批“交互手套”创业者最喜欢用来忽悠大众和投资人的几个点.....把力反馈,触觉反馈,重量反馈混成一团,然后模拟两可的表示振动电机能够提供部分这些反馈。这都是不准确的。
雷锋网:Dexmo用的手部动作捕捉技术是什么,精确度、延时如何?怎样与空间定位系统配合?
谷逍驰:用的是角度传感器,理论精度分度是0.06度。 但是作为 可穿戴设备 ,理论精度并没有什么参考价值,因为佩戴误差可能已经超过0.5度。总体来说虚拟现实的交互相比绝对精度,需要的更是跟随度。所谓跟随度,比如我们的设备可以检查3个自由度的拇指动作,人在真实世界的动作会无损的map到虚拟世界中去;相比Oculus Touch基于capacitive sensing(电容感应)的手指动作猜测,又或者是一些其他低端的手套方案,Dexmo会给人对虚拟人物的掌控感更高些。
Dexmo的的延时为25ms ,但用户体验到的整体延时并不是简单的与头盔延时相加,而是要考虑整个pipeline的运作方式,比如显示段在渲染的时候力反馈指令正好从PC发送至Dexmo,这样有一部分延时发生在同一个时段。
Touch的手部动作检测是开关式的,所以给人对自己虚拟人物的掌控度不高,很多基于弯曲传感器的动作捕捉手套对拇指也不是很上心,有的时候用一个自由度就打发了。当然很多手套方案在input之后就停滞不前了,将拇指和食指当做Vive controller上的trigger来用,自然省了很多事......但问题是,没用。 总之,跟随性比所谓精度更重要。
空间追踪已经是一个解决了的问题 ,不太值得花我们自己的工程力量去从头再做一遍。我们已经去Valve的总部跟他们的工程师洽谈过把Lighthouse的tracker整合进Dexmo的相关事宜。技术上没有实现难度。当然空间追踪还有很多很多其他方案,我们对此都保持一个开放的态度。
雷锋网:力反馈如何与手势交互相结合?
谷逍驰: 手势交互本身已经是一种相对自然地交互方式。 比如微软的Hololens,呼出菜单所使用的bloom gesture(五指向上开合),确定用的tapping gesture(伸出食指勾一下)等等。在这个基础上通过力反馈加入物理角度限制,可以把交互复杂程度再上一个台阶。比如在VR中我们可以在人的小臂,胸前上设计旋钮,开关等等。在此之前,这些硬件开关只能放在controller本身上,而有了力反馈很多硬件开关都可以通过软件来实现,这是很大的一个进步。
就好像有了触摸屏和振动反馈,我们慢慢脱离了实体按键一样,有了力反馈,在虚拟世界中我们可以生成无数个按键,旋钮,开关等等,很有可能在未来我们不再需要那么多实体按钮了。
这个 视频 里面有一些Dexmo在交互上的创新。
雷锋网:为什么选择NRF作为无线传输方案?
谷逍驰: 因为Dexmo作为一个双向交互设备,既提供输入,也产生输出,对于数据带宽的要求更高。 很多现成的硬件和通讯协议并不太能满足我们对通信速率和稳定性的要求。这样一对比,蓝牙和WiFi已经不在我们的考虑之列,只能选择NRF。当然,我们也在早期尝试过蓝牙和WiFi,但并不理想。
雷锋网:介绍一下Dexmo的SDK,开发者如何为其进行开发和支持,另外如何吸引更多的开发者?
谷逍驰:为Dexmo做开发很容易,我们做了一套类似于Vive的plugin。只需要使用我们的SDK,打开UNITY你就可以用头显看到一双手。并且手部的交互,碰撞检测,力的生成,都由我们的算法为开发者处理了。开发者仅仅需要为物体设定碰撞检测器和硬度就可以了。
吸引开发者方面,目前我们的做法是在积极寻求和国外虚拟现实一线厂商的合作。我们相信这项技术本身是有极大的潜在价值的。但是只有放到合适的生态系统中去,才能让它的价值最大化展现。一旦有了巨头的背书,开发者也会更愿意使用更高级的硬件。
雷锋网:除了VR/AR/MR,Dexmo还有哪些使用场景?
谷逍驰: 机器人控制绝对是一个实际需求。对于排爆机器人来说,有了手部的力反馈和盲操完全就是2个等级的精准度。我们在过去的研发中收到过来自NASA和美国军方的一些邀约,希望能够将这项技术使用到航空航天中去。太空机械臂控制,火星车的抓取等等,这些交互有了力反馈都会有质的提升。
除了VR/MR 游戏,很多垂直领域都会有很多应用场景,比如绘图,教育,训练等等。拆解飞机发动机这种高精尖的活,不是每个学徒都有机会可以直接上手操作真机的。这里我们就可以用VR来代替。同样如果仅仅是用Vive控制器来移动,缺少了immersion(沉浸感)。如果能用Dexmo的话,会更加真实。
观众:2013年Dexta 众筹 ,后来撤掉了,是因为当时方案不成熟吗?
谷逍驰: (引用 Road to VR 对他的一段采访)
我们当时在 Kickstarter 上展示的只是一个概念。当我们看到人们的反应之后,我们感觉自己被捧得太高了。我们意识到他们期待实现的,要比我们能做到的高太多。
大多数的支持者需要的是,一个最终的解决方案,能拿来即用,并且所有的平台都支持它。而当时的 VR 硬件并不像现在这样。我们很明白,如果使用者都无法独立设置一套追踪系统,那么他们很可能不会使用我们的产品。因此要达到人们的预期,研究以及生产产品,我们需要的资金要远高于 2 百万美金。
当时我们面临这样的抉择:要么我们接受这笔钱,假装这些问题都不存在,不告诉我们的支持者实际情况如何,最后拿出一个任何人都不会满意的垃圾产品,要么我们对支持者负责,向他们坦白一切问题,然后回去继续做研发。
作为一名工程师,我不怎么会说大话。我认为产品能证明一切。我希望人们能感受到这个产品中凝结的我们的所有精力与努力。我们当时很难做出抉择,但我庆幸我们做出了正确的决定。而现在,我们的产品最终能达到过去我对它的一切期待。
观众:售价多少?
谷逍驰: 会比主流头显要低,具体价格目前没有参考意义。进一步进入生产后,取决于量,可以跟供应商进行进一步文人,同时还有很多生产优化可以做。