機器人也能幹咖啡師的活了!
例如讓它把奶泡和咖啡攪拌均勻,效果是這樣的:
#然後上點難度,做杯拿鐵,再用攪拌棒做個圖案,也是輕鬆拿下:
這些是在已被ICLR 2023接收為Spotlight的一項研究基礎上做到的,他們推出了提出流體操控新基準FluidLab以及多材質可微型物理引擎FluidEngine。
研究團隊成員分別來自CMU、達特茅斯學院、哥倫比亞大學、MIT、MIT-IBM Watson AI Lab、麻薩諸塞大學阿默斯特分校。
在FluidLab的加持下,未來機器人處理更多複雜場景下的流體工作也都不在話下。
FluidLab到底都有哪些「隱藏技能」?一起來康康~
FluidLab是靠FluidEngine做引擎支撐,正如名稱所言,主打的模擬對象就是流體,不同材料,各種類型運動的細節它都能完全拿捏。
先來試試模擬做咖啡的各種場景,咖啡和奶泡的運動軌跡也是很真實了。
當然模擬打冰淇凌也是灑灑水的事。
或模擬不同狀態下水流的運動軌跡。
如果說這樣還看不出來FluidLab的實力,那就直接上難度。
例如先來點對照模擬,讓平台模擬一下不同材料下墜時與容器的碰撞情況,由左到右依序是:硬性材料、彈性材料以及塑膠。
或不同非黏性液體和黏性液體下墜時的軌跡。
再上點重磅難度,模擬下氣體與液體相遇時的狀態。
輕鬆搞定!
這時,可能會有朋友疑問:這麼多狀態下的模擬,到底符不符合物理學或流體力學呢?
這點大可放心,研究團隊直接公開了驗證視頻,在涉及一些特定的物理現象時,FluidEngine都能準確模擬。
像卡門渦流和潰壩這種常見物理現像都能準確模擬。
浮力,液體的不可壓縮性與體積穩定性在模擬中也是輕輕鬆鬆就能體現。
來點進階難度,用馬格努斯效應驗證:平移、平移緩慢逆時針旋轉、平移快速逆時針旋轉、平移快速順時針旋轉也都很準確。
再加億點難度,試試看動量守恆和瑞利-泰勒不穩定性。
……
那如此逼近真實世界的模擬,研究團隊是怎麼做到的呢?
首先在程式語言上,FluidEngine選擇了Python和Taichi,Taichi是近來提出的用於GPU加速模擬的領域特定程式語言。
這樣一來,就可以為構建模擬環境提供了一組用戶友好的API,在更高的層次上,它也遵循標準OpenAI Gym API,並且與標準的強化學習和優化演算法兼容。
而之所以能做到逼真的虛擬模擬效果,或許可以從FluidEngine創造環境的過程窺探一二。
它所創造的環境由五個部分組成:
其中,在模擬過程中,對於不同狀態的材料會採用不同的計算方法。
對於固體和液體材料,模擬過程使用的是移動最小二乘材料點方法(MLS-MPM),這是一個混合拉格朗日-歐拉方法, 使用粒子和網格模擬連續體材料。
對於煙或空氣這類氣體,模擬過程中使用的是平流-投影方案,在笛卡爾網格上將它們模擬為不可壓縮的流體。
這樣一來,便能針對具體情況模擬到逼真的效果了。
論文、專案地址以及程式碼連結附在文末了,有興趣的朋友可以點擊查看。
專案首頁:https://fluidlab2023.github.io/論文連結:https://arxiv.org/abs/2303.02346程式碼連結:https://github.com/zhouxian/FluidLab
以上是讓機器人學會咖啡拉花,得從流體力學搞得來! CMU&MIT推出流體模擬平台的詳細內容。更多資訊請關注PHP中文網其他相關文章!