氣動軟體機器人設計太麻煩?最新研究幫你自動完成

微軟研究院AI頭條發表於2018-02-01

640?wxfrom=5&wx_lazy=1


編者按:軟體機器人是一種使用空氣驅動的新型柔韌機器人,可以通過主動改變自身形狀和尺寸來完成很多傳統剛性機器人很難完成的特定任務。同時,由於本身使用了彈性材料,軟體機器人更適合於一些例如人機互動等對安全性要求較高的應用場景。所以軟體機器人是近年來的研究熱點之一。


但是,軟體機器人的設計卻非常複雜,很大程度上依賴於設計師個人的經驗。本文中,微軟亞洲研究院研究員張譯中將為大家介紹了一種基於物理模擬的軟體機器人自動化設計方法,可以大大降低機器人的設計成本。


還記得電影《超能陸戰隊》中那個萌萌的充氣機器人大白麼?身高兩米六,而放氣之後卻小到可以塞進揹包,能文能武,人畜無害。大白是藝術家夢想中氣動軟體機器人的樣子,而科學家們正在將其變成現實。


軟體機器人是近年來機器人領域研究的熱點之一。許多仿生機器人都是由彈性材料製成,彈性體具有低硬度、大形變的物理特性,由彈性材料製成的軟體機器人具有很高的生物相似性。例如由矽膠製成的氣動彈性夾持器,對各種形狀的物體具有廣泛的適用性,在工業中獲得了廣泛的應用。


640?wx_fmt=png&wxfrom=5&wx_lazy=1


然而,軟體機器人的設計卻是一個充滿挑戰的工作。普通剛性機器人可以視為若干個通過關節連線的剛體,因此其運動的變數較少。而軟體機器人是個連續的彈性體,處處可以形變,而且會受到其內部結構、材料屬性、驅動方式等因素的影響,這些因素還會相互影響,使得軟體機器人的設計非常困難。因此,目前軟體機器人的設計還非常依賴設計師的經驗,即使是一些簡單的動作也通常需要藉助大量實驗來達成目標效果。


640?wx_fmt=png

軟體機器人自動化設計流程圖


為了降低軟體機器人的設計成本,我們提出了一種基於物理模擬的軟體機器人自動化設計方法,方法的流程如上圖所示。只需要給定模型的初始形狀,以及形變之後的目標形狀,我們的方法就可以自動對模型的形變進行分析,從而計算出一個包含空腔結構(氣囊)的三維模型。向空腔中充氣使模型膨脹,並結合材料的分佈使得形變呈現各向異性,從而實現我們想要的形變。設計出的模型可以通過多材料3D列印製作出來,並用氣動系統來控制,從而製作出我們想要的軟體機器人。


640.png?

演算法基本原理


640?wx_fmt=png


氣囊的充氣過程類似於吹氣球,充氣會使得模型的體積膨脹。如果氣囊由均一材料構成,氣囊膨脹就會相對均勻。如果氣囊是由非均一材質構成的,那麼氣囊的膨脹會受到材料分佈的顯著影響。上圖所示的三個圓柱都是軟材料與硬材料混合而成,在未充氣的狀態下,其形狀都是相同的。然而由於硬材料分佈的不同,圓柱在充氣狀態下其形狀產生了顯著的差別,硬材料使形變產生顯著的各向異性。基於上述觀察,我們通過觀察模型體積的變化,在柔性體內部生成出若干個彼此獨立的氣囊,每個氣囊都通過獨立的氣道連到模型的表面上,使每個氣囊都能夠獨立控制,從而控制模型的總體形變。而環繞氣囊周圍的彈性膜,則通過各向異性對形變進行更加精細的控制。


我們演算法主要分為兩個步驟,第一步——生成幾何形狀,第二步——優化材料的分佈。在第一步中,我們區分模型的剛性部分和彈性部分,從而劃分空腔,並沿空腔表面生成網格狀結構。第二步中,我們對模型的形變進行物理模擬,並優化網格結構中的材料分佈。通過這兩步計算出來的模型,可以實現我們需要的形變。


640.png?

幾何結構生成


640?wx_fmt=png


在我們的演算法中,系統的輸入是模型的初始形狀以及形變之後的形狀,兩者都是用相同拓撲結構的三角網格表示。這些三角網格只描述了模型的外觀,我們的演算法則需要通過對三角網格形狀進行分析,從而計算出內部結構。這些內部結構包括剛性區域、氣囊、以及環繞氣囊的網格結構。


我們首先對靜止狀態的模型生成四面體網格,作為整個模型體空間的離散化。由於此時還不知道模型的內部結構,我們先假設模型是充滿彈性材料的實心模型並對其進行形變,然後根據每個小四面體體積變化對模型進行分割。因為輸入的三角網格拓撲結構相同,要獲得在各形變目標下的四面體網格,只需要將靜止狀態四面體網格的表面各點形變到目標形狀,其內部各點就能以連續彈性體的方式通過物理模擬進行形變。這樣我們就得到了在不同目標形狀下模型各處的體積變化情況。


上圖的Target 1和Target 2是兩個目標形狀模型體積變化情況,紅色表示大形變,藍色表示幾乎沒有形變。可以看出,不同的目標形狀下,模型的大形變部位有明顯區別,我們根據形變對模型進行分塊。如果某個區域在所有的目標形變中形狀都不發生變化,那麼該區域是剛性區域(上圖Segmentation中標記為黑色的區域),我們直接將這些區域設定為硬材料,其餘都是會產生形變的區域。由於充氣會使模型體積變大,因此我們將該過程逆向思考,如果某區域的體積發生膨脹,則該區域應當設定氣囊,才能實現讓其體積增大的目標。但如果某體積膨脹的區域在不同目標形狀下,膨脹的形狀不同,則需要將該區域進一步分割,以實現不同的膨脹。最後給每個區域生成三角網格,作為氣囊的表面(上圖Chambers)。


氣囊充氣會使模型區域性產生總體均勻的膨脹,為了對膨脹進行更精確地控制,我們需要在氣囊表面生成網格結構(上圖Wireframes),使得模型膨脹具有各向異性;而為了能夠讓各向異性產生最大的效果,我們希望網格結構能沿著拉伸方向分佈。因此,我們首先計算形變過程中氣囊表面的主應變方向場(上圖Directional field),在這個場的指導下生成四邊形網格(上圖Quad mesh),最後以四邊形網格的每條邊為指導生成網格結構。這樣既可以保證網格分佈均勻,又能夠與方向場保持一致。


640.png?

材料分佈計算


640?wx_fmt=png


有了模型的幾何結構之後,接下來就要計算材料應該如何分佈才能使充氣時形變具有各向異性。均一材質的氣囊在充氣時會向各個方向總體均勻膨脹,但如果材料本身具有各向異性(比如一個方向硬,另一個方向軟),那麼膨脹在容易拉伸的方向會更加明顯。我們生成網格結構時已經與模型的拉伸方向進行了對齊,因此如果將材料優化限定在網格結構中,而其餘部分用彈性材料填充而成,這樣材料優化能夠最大程度的符合材料各向異性的要求,儘可能達到最優的結果。


我們使用的3D印表機支援兩種基礎材料混合列印。這兩種材料楊氏模量相差約1000倍,若將其按照一定比例混合,可以創造出更多介於兩者之間的材料。因此我們在物理模擬的過程中,以每個氣囊的氣壓,以及網格結構內每個邊的楊氏模量為變數,以充氣之後的模型與目標形狀最為接近為目標,對變數進行優化。這樣優化出來的材料分佈最符合我們需要的各向異性的要求。


640.png?

模型的製造與控制


640?wx_fmt=jpeg


有了模型的幾何形狀及材料分佈之後,模型就可以通過3D列印來製造了。我們使用Stratasys Connex350兩材料混合3D印表機,選擇TangoPlus作為彈性材料,VeroBlack作為硬質材料,列印時將其混合則可以製作出更多不同彈性的材料。然而由於模型的空腔在列印時會被塞滿支撐材料,這些材料需要再列印完成之後再手工去除,因此沒有辦法一次成型列印。所以我們只能在列印之前對模型進行切分,分塊列印完成之後再用502膠將其粘成一個整體。上圖就是心臟模型切分列印的各個部分。


640?wx_fmt=png


微軟亞洲研究院有一套原本用於人機互動的氣動裝置(上圖),我們對其進行了改進。每個氣囊通過氣管連線兩個電磁閥,一個與高壓氣泵聯通,另一個與大氣聯通。電磁閥通斷通過微控制器由電腦直接控制,這樣就可以對模型的運動進行程式設計控制。


640?wx_fmt=png


通過這套方法,我們製作了多個氣動模型。上圖(左)的氣動機械手能夠實現物體的夾持;上圖(中)的青蛙模型包含一個氣囊,充放氣能夠讓其像真青蛙那樣呼吸;上圖(右)的四足動物包含6個氣囊,其協同充放氣能夠讓模型在地面上爬動。更多的結果在視訊中可以找到。



640.png?

總結


我們提出了一種基於物理模擬的軟體氣動模型自動化設計方法。只需要給定模型的初始形狀,以及形變之後的目標形狀,我們的方法可以自動對模型的形變進行分析,從而計算出一個包含空腔結構的三維模型,並可以通過3D列印將其製造出來。這套方法為軟體機器人的自動化設計提供了新的思路。


由於氣動軟體機器人使用彈性材料製成,其安全性比剛性機器人要高很多,因此特別適合人機互動的應用場景,比如機器人保姆、機器人管家。也許在不久的將來,電影可以變成現實,大白就將成為我們每個家庭的一員啦。


點選閱讀原文”瞭解更多專案內容。



作者介紹


640?wx_fmt=jpeg

張譯中,微軟亞洲研究院網路圖形組研究員,於2016年在浙江大學計算機係獲得博士學位,主要研究方向包括物理模擬、3D掃描、3D列印,機器人等。




你也許還想


  以資料的名義——淺談三維幾何的處理與分析(上)

  以資料的名義——淺談三維幾何的處理與分析(下)

  首席研究員童欣:深度學習聯姻計算機圖形學,機遇與挑戰並存

640.png?

感謝你關注“微軟研究院AI頭條”,我們期待你的留言和投稿,共建交流平臺。來稿請寄:msraai@microsoft.com。


640.jpeg?

相關文章