气动软体机器人设计太麻烦?最新研究帮你自动完成

2018-02-01 | 作者:张译中

还记得电影《超能陆战队》中那个萌萌的充气机器人大白么?身高两米六,而放气之后却小到可以塞进背包,能文能武,人畜无害。大白是艺术家梦想中气动软体机器人的样子,而科学家们正在将其变成现实。

软体机器人是近年来机器人领域研究的热点之一。许多仿生机器人都是由弹性材料制成,弹性体具有低硬度、大形变的物理特性,由弹性材料制成的软体机器人具有很高的生物相似性。例如由硅胶制成的气动弹性夹持器,对各种形状的物体具有广泛的适用性,在工业中获得了广泛的应用。

然而,软体机器人的设计却是一个充满挑战的工作。普通刚性机器人可以视为若干个通过关节连接的刚体,因此其运动的变量较少。而软体机器人是个连续的弹性体,处处可以形变,而且会受到其内部结构、材料属性、驱动方式等因素的影响,这些因素还会相互影响,使得软体机器人的设计非常困难。因此,目前软体机器人的设计还非常依赖设计师的经验,即使是一些简单的动作也通常需要借助大量实验来达成目标效果。

软体机器人自动化设计流程图

为了降低软体机器人的设计成本,我们提出了一种基于物理仿真的软体机器人自动化设计方法,方法的流程如上图所示。只需要给定模型的初始形状,以及形变之后的目标形状,我们的方法就可以自动对模型的形变进行分析,从而计算出一个包含空腔结构(气囊)的三维模型。向空腔中充气使模型膨胀,并结合材料的分布使得形变呈现各向异性,从而实现我们想要的形变。设计出的模型可以通过多材料3D打印制作出来,并用气动系统来控制,从而制作出我们想要的软体机器人。

算法基本原理

气囊的充气过程类似于吹气球,充气会使得模型的体积膨胀。如果气囊由均一材料构成,气囊膨胀就会相对均匀。如果气囊是由非均一材质构成的,那么气囊的膨胀会受到材料分布的显著影响。上图所示的三个圆柱都是软材料与硬材料混合而成,在未充气的状态下,其形状都是相同的。然而由于硬材料分布的不同,圆柱在充气状态下其形状产生了显著的差别,硬材料使形变产生显著的各向异性。基于上述观察,我们通过观察模型体积的变化,在柔性体内部生成出若干个彼此独立的气囊,每个气囊都通过独立的气道连到模型的表面上,使每个气囊都能够独立控制,从而控制模型的总体形变。而环绕气囊周围的弹性膜,则通过各向异性对形变进行更加精细的控制。

我们算法主要分为两个步骤,第一步——生成几何形状,第二步——优化材料的分布。在第一步中,我们区分模型的刚性部分和弹性部分,从而划分空腔,并沿空腔表面生成网格状结构。第二步中,我们对模型的形变进行物理仿真,并优化网格结构中的材料分布。通过这两步计算出来的模型,可以实现我们需要的形变。

几何结构生成

在我们的算法中,系统的输入是模型的初始形状以及形变之后的形状,两者都是用相同拓扑结构的三角网格表示。这些三角网格只描述了模型的外观,我们的算法则需要通过对三角网格形状进行分析,从而计算出内部结构。这些内部结构包括刚性区域、气囊、以及环绕气囊的网格结构。

我们首先对静止状态的模型生成四面体网格,作为整个模型体空间的离散化。由于此时还不知道模型的内部结构,我们先假设模型是充满弹性材料的实心模型并对其进行形变,然后根据每个小四面体体积变化对模型进行分割。因为输入的三角网格拓扑结构相同,要获得在各形变目标下的四面体网格,只需要将静止状态四面体网格的表面各点形变到目标形状,其内部各点就能以连续弹性体的方式通过物理仿真进行形变。这样我们就得到了在不同目标形状下模型各处的体积变化情况。

上图的Target 1和Target 2是两个目标形状模型体积变化情况,红色表示大形变,蓝色表示几乎没有形变。可以看出,不同的目标形状下,模型的大形变部位有明显区别,我们根据形变对模型进行分块。如果某个区域在所有的目标形变中形状都不发生变化,那么该区域是刚性区域(上图Segmentation中标记为黑色的区域),我们直接将这些区域设置为硬材料,其余都是会产生形变的区域。由于充气会使模型体积变大,因此我们将该过程逆向思考,如果某区域的体积发生膨胀,则该区域应当设置气囊,才能实现让其体积增大的目标。但如果某体积膨胀的区域在不同目标形状下,膨胀的形状不同,则需要将该区域进一步分割,以实现不同的膨胀。最后给每个区域生成三角网格,作为气囊的表面(上图Chambers)。

气囊充气会使模型局部产生总体均匀的膨胀,为了对膨胀进行更精确地控制,我们需要在气囊表面生成网格结构(上图Wireframes),使得模型膨胀具有各向异性;而为了能够让各向异性产生最大的效果,我们希望网格结构能沿着拉伸方向分布。因此,我们首先计算形变过程中气囊表面的主应变方向场(上图Directional field),在这个场的指导下生成四边形网格(上图Quad mesh),最后以四边形网格的每条边为指导生成网格结构。这样既可以保证网格分布均匀,又能够与方向场保持一致。

材料分布计算

有了模型的几何结构之后,接下来就要计算材料应该如何分布才能使充气时形变具有各向异性。均一材质的气囊在充气时会向各个方向总体均匀膨胀,但如果材料本身具有各向异性(比如一个方向硬,另一个方向软),那么膨胀在容易拉伸的方向会更加明显。我们生成网格结构时已经与模型的拉伸方向进行了对齐,因此如果将材料优化限定在网格结构中,而其余部分用弹性材料填充而成,这样材料优化能够最大程度的符合材料各向异性的要求,尽可能达到最优的结果。

我们使用的3D打印机支持两种基础材料混合打印。这两种材料杨氏模量相差约1000倍,若将其按照一定比例混合,可以创造出更多介于两者之间的材料。因此我们在物理仿真的过程中,以每个气囊的气压,以及网格结构内每个边的杨氏模量为变量,以充气之后的模型与目标形状最为接近为目标,对变量进行优化。这样优化出来的材料分布最符合我们需要的各向异性的要求。

模型的制造与控制

有了模型的几何形状及材料分布之后,模型就可以通过3D打印来制造了。我们使用Stratasys Connex350两材料混合3D打印机,选择TangoPlus作为弹性材料,VeroBlack作为硬质材料,打印时将其混合则可以制作出更多不同弹性的材料。然而由于模型的空腔在打印时会被塞满支撑材料,这些材料需要再打印完成之后再手工去除,因此没有办法一次成型打印。所以我们只能在打印之前对模型进行切分,分块打印完成之后再用502胶将其粘成一个整体。上图就是心脏模型切分打印的各个部分。

微软亚洲研究院有一套原本用于人机交互的气动设备(上图),我们对其进行了改进。每个气囊通过气管连接两个电磁阀,一个与高压气泵联通,另一个与大气联通。电磁阀通断通过单片机由电脑直接控制,这样就可以对模型的运动进行编程控制。

通过这套方法,我们制作了多个气动模型。上图(左)的气动机械手能够实现物体的夹持;上图(中)的青蛙模型包含一个气囊,充放气能够让其像真青蛙那样呼吸;上图(右)的四足动物包含6个气囊,其协同充放气能够让模型在地面上爬动。更多的结果在视频中可以找到。

总结

我们提出了一种基于物理仿真的软体气动模型自动化设计方法。只需要给定模型的初始形状,以及形变之后的目标形状,我们的方法可以自动对模型的形变进行分析,从而计算出一个包含空腔结构的三维模型,并可以通过3D打印将其制造出来。这套方法为软体机器人的自动化设计提供了新的思路。

由于气动软体机器人使用弹性材料制成,其安全性比刚性机器人要高很多,因此特别适合人机交互的应用场景,比如机器人保姆、机器人管家。也许在不久的将来,电影可以变成现实,大白就将成为我们每个家庭的一员啦。

了解更多项目内

作者介绍

张译中,微软亚洲研究院网络图形组研究员,于2016年在浙江大学计算机系获得博士学位,主要研究方向包括物理仿真、3D扫描、3D打印,机器人等。

标签