氣動軟體機器人設計太麻煩?最新研究幫你自動完成
編者按:軟體機器人是一種使用空氣驅動的新型柔韌機器人,可以通過主動改變自身形狀和尺寸來完成很多傳統剛性機器人很難完成的特定任務。同時,由於本身使用了彈性材料,軟體機器人更適合於一些例如人機交互等對安全性要求較高的應用場景。所以軟體機器人是近年來的研究熱點之一。但是,軟體機器人的設計卻非常複雜,很大程度上依賴於設計師個人的經驗。本文中,微軟亞洲研究院研究員張譯中將為大家介紹了一種基於物理模擬的軟體機器人自動化設計方法,可以大大降低機器人的設計成本。
還記得電影《超能陸戰隊》中那個萌萌的充氣機器人大白么?身高兩米六,而放氣之後卻小到可以塞進背包,能文能武,人畜無害。大白是藝術家夢想中氣動軟體機器人的樣子,而科學家們正在將其變成現實。
軟體機器人是近年來機器人領域研究的熱點之一。許多仿生機器人都是由彈性材料製成,彈性體具有低硬度、大形變的物理特性,由彈性材料製成的軟體機器人具有很高的生物相似性。例如由硅膠製成的氣動彈性夾持器,對各種形狀的物體具有廣泛的適用性,在工業中獲得了廣泛的應用。
然而,軟體機器人的設計卻是一個充滿挑戰的工作。普通剛性機器人可以視為若干個通過關節連接的剛體,因此其運動的變數較少。而軟體機器人是個連續的彈性體,處處可以形變,而且會受到其內部結構、材料屬性、驅動方式等因素的影響,這些因素還會相互影響,使得軟體機器人的設計非常困難。因此,目前軟體機器人的設計還非常依賴設計師的經驗,即使是一些簡單的動作也通常需要藉助大量實驗來達成目標效果。
為了降低軟體機器人的設計成本,我們提出了一種基於物理模擬的軟體機器人自動化設計方法,方法的流程如上圖所示。只需要給定模型的初始形狀,以及形變之後的目標形狀,我們的方法就可以自動對模型的形變進行分析,從而計算出一個包含空腔結構(氣囊)的三維模型。向空腔中充氣使模型膨脹,並結合材料的分布使得形變呈現各向異性,從而實現我們想要的形變。設計出的模型可以通過多材料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列印,機器人等。
推薦閱讀:
※如何配置與使用ABB機器人示教器的可編程按鍵?
※先聲智能語音機器人是如何實現談業務、聊天的?
※軟體機器人變身人體肌肉,將優雅模仿人體運動!科學與機器人子刊齊發
※無孔不入的毫米級機器人問世,黑科技受摺紙令人敬畏
※不成熟的技術優先發展ToB業務
TAG:機器人 |