人們在日常生活中接觸到的大部分家具都是“關(guān)節(jié)物品”(articulated objects),比如帶有拉出式導(dǎo)軌的抽屜、帶有垂直旋轉(zhuǎn)軸的門、帶有水平旋轉(zhuǎn)軸的烤箱,因為這些物體的主要零件都是由各種各樣的關(guān)節(jié)連接而成。
由于這些關(guān)節(jié)的存在,被連接的物體的零件的各個部分在運動學(xué)上受到關(guān)節(jié)的約束,因此這些部分只有一個自由度(1DoF)。這些物品在我們的生活中無處不在,尤其在日常家居中經(jīng)??匆姡俏覀?nèi)粘I畹闹匾M成部分。作為人類的我們我們看到無論什么樣的家具,我們都可以很快弄清楚如何操縱和控制它。好像我們知道這些物體的每個關(guān)節(jié)是如何移動的。
那么機(jī)器人可以像人類一樣預(yù)測家具的移動方式嗎?這種預(yù)測能力很難獲得,如果機(jī)器人可以學(xué)習(xí)這種能力的話,將是對家用機(jī)器人是一個巨大的推動。
最近,CMU機(jī)器人學(xué)院David Held教授R-PAD實驗室的兩名學(xué)生Ben Eisner和Harry Zhang在操縱復(fù)雜的關(guān)節(jié)物體方面取得了突破,并推出了基于3D神經(jīng)網(wǎng)絡(luò)的FlowBot3D,一種有效表達(dá)和預(yù)測關(guān)節(jié)物體部分運動軌跡的算法,例如日常家具。該算法包含兩個部分。
第一個部分是感知部分(perception),這個部分使用3D深度神經(jīng)網(wǎng)絡(luò)從被操縱家具物體的點云數(shù)據(jù)(pointcloud data)中預(yù)測三維瞬時運動軌跡(3D Articulated Flow)。
算法的第二個部分是策略部分(policy),它使用預(yù)測得到的3D Articulated Flow來選擇機(jī)器人的下一個動作。兩者都在模擬器中完全學(xué)習(xí),可以直接在現(xiàn)實世界中實現(xiàn),無需重新訓(xùn)練或調(diào)整。在FlowBot 3D算法的幫助下,機(jī)器人可以像人類一樣隨意操縱日常家具等關(guān)節(jié)物體。
這個論文目前是世界機(jī)器人頂級會議Robotics Science and Systems (RSS) 2022的最佳論文候選(top3%),并將會在7月于美國紐約展出,與其他7篇優(yōu)秀文章一同角逐最佳論文的榮譽(yù)。
FlowBot 3D只依靠模擬器,在模擬數(shù)據(jù)中進(jìn)行監(jiān)督學(xué)習(xí),從而學(xué)習(xí)日常家具等關(guān)節(jié)物體零件的瞬時運動軌跡(3D Articulated Flow)。3D Articulated Flow是一種可視的點云軌跡表示方法,可大大簡化機(jī)器人下一步策略的復(fù)雜性從而提高泛化性和效率。機(jī)器人只需通過緊跟這個瞬間軌跡,并在一個閉環(huán)中,重新預(yù)測這個軌跡,就能完成操縱關(guān)節(jié)物體的任務(wù)。
此前,學(xué)術(shù)界常規(guī)的操作家具等關(guān)節(jié)物體的方法,是通過被操作對象的幾何特性(例如連接零件的位置和方向)來推算出零件的運動方向,或者是通過模仿專家策略(通常來自人類)來學(xué)習(xí)特定對象的操作,從而完成關(guān)節(jié)物體操作的復(fù)雜動作。這些學(xué)術(shù)界的傳統(tǒng)方法都沒有很好的泛化性,而且利用數(shù)據(jù)的效率較低,訓(xùn)練需要收集大量的人類演示數(shù)據(jù)。與這些不同的是,F(xiàn)lowBot 3D是第一個純粹基于模擬器學(xué)習(xí)不需要人類提供任何演示數(shù)據(jù),并且該算法允許機(jī)器人通過學(xué)習(xí)每個零件的瞬時運動軌跡來計算最佳的物體操縱路徑,因此該算法擁有很大的泛化性。正是此特性可以讓FlowBot 3D泛化到到模擬器訓(xùn)練期間不可見的對象,直接在現(xiàn)實世界中成功地操縱真實的日常家具物品。
下面幾張動圖演示了FlowBot 3D的操縱過程。左邊是操縱的視頻,右邊是所預(yù)測的點云瞬時運動軌跡3D Articulated Flow。FlowBot 3D算法先使機(jī)器人識別物體上的哪個零件可以被操縱,然后預(yù)測該零件運動的方向。
開動冰箱門:
開動馬桶蓋:
開動抽屜:
此論文的審稿人說:總體來說,這篇論文是對機(jī)器人操控學(xué)的可觀貢獻(xiàn)。
那么,F(xiàn)lowBot 3D是如何學(xué)習(xí)這個技能的?
人類在見到一個新的家具物品的時候,比如一扇門,我們知道這個門是通過一個門軸來旋轉(zhuǎn)的,并且我們知道門軸的約束使這個門只能向一個方向旋轉(zhuǎn),于是我們便可以去跟隨我們腦里想象的方向去開這個門。所以,想要機(jī)器人真正靈巧且有效的預(yù)測家具等關(guān)節(jié)物體的操縱方式和運動軌跡,一個有效的方法是讓機(jī)器人去理解這些零件的運動學(xué)約束(kinematic constraint),從而可以去預(yù)測這些物體的運動軌跡。
FlowBot 3D的具體方法并不復(fù)雜,并且只依靠模擬器,無需繁雜的真實人類數(shù)據(jù)。另外,模擬器的另外一個好處是在模擬器中,這些家用物體的3D數(shù)據(jù)文件(URDF)中包含每個零件的運動學(xué)約束和約束的具體參數(shù),所以每個零件的運動軌跡在模擬器中可以準(zhǔn)確計算出來。
FlowBot 3D的兩個模塊。
模擬器訓(xùn)練中,機(jī)器人觀測到被操縱物體的三維點云數(shù)據(jù),作為機(jī)器人視覺模塊的輸入數(shù)據(jù)。視覺模塊(perception module)利用PointNet++來預(yù)測在外力作用下,輸入點云中的每個點的瞬時(比如抽屜拉開1cm之后,門向外開5度)運動軌跡3D articulated flow,用三維坐標(biāo)向量差的形式表達(dá)出來。這個運動軌跡的實際數(shù)據(jù)可以通過正向運動學(xué)準(zhǔn)確計算出來。通過下一步三維向量坐標(biāo)減去當(dāng)前的三維向量坐標(biāo),可以得到被操縱物體部分的運動軌跡。因此,在訓(xùn)練時,只需要最小化預(yù)測的3D Articulated flow的L2 loss來進(jìn)行監(jiān)督學(xué)習(xí)。
在這個圖里,藍(lán)色的點是被觀測的點云數(shù)據(jù),紅色的箭頭就代表預(yù)測出門面的運動軌跡3D Articulated Flow。
通過這種方式學(xué)習(xí),F(xiàn)lowBot 3D可以學(xué)習(xí)到在運動學(xué)約束下每個零件的運動方向以及該零件上每個點在受力相同的情況下運動的相對速度和相對方向(velocity)。常見的家用關(guān)節(jié)物品為抽動式(prismatic)和旋轉(zhuǎn)式(revolute)兩種。對于抽動式零件,比如抽屜,在抽屜面上的每個點收到相同外力下的運動方向和速度是相同的。對于旋轉(zhuǎn)式零件,比如門,在門面上的每個點收到相同外力下的運動方向是相同的,但是速度卻是離旋轉(zhuǎn)軸越遠(yuǎn)越大。研究者用機(jī)器人學(xué)中的物理定律(screw theory)證明了長度最長的3D Articulated Flow可以最大化物體的加速度。根據(jù)牛頓第二定律,這一策略是最優(yōu)解。
基于理論基礎(chǔ),在實際操作中,機(jī)器人需要做的,就是通過FlowBot 3D的視覺模塊預(yù)測出每個點的運動軌跡,在每點軌跡中,找到長度最長的3D articulated flow方向所對應(yīng)的點作為操縱點,并閉環(huán)預(yù)測這個操縱點的運動軌跡。假如被選中的操縱點無法被成功抓取(比如表面不符合機(jī)器手的抓取條件),那么FlowBot 3D會選擇長度第二長并可以符合抓取條件的點。
另外,由于PointNet++的特性,F(xiàn)lowBot 3D預(yù)測每點的運動軌跡,并不依賴于物體本身的幾何特性,它對機(jī)器人對物體可能的遮擋有較強(qiáng)的魯棒性。另外,由于此算法是閉環(huán)的,機(jī)器人可以在下一步的預(yù)測中對自己這一步可能的錯誤進(jìn)行修正。
FlowBot 3D在真實世界中的表現(xiàn)FlowBot 3D在真實世界中有能力去克服泛化性的挑戰(zhàn)。FlowBot 3D的設(shè)計理念在于,只要其可以準(zhǔn)確預(yù)測出被操縱物體的運動軌跡3D articulated flow,那么下一步就是跟隨這個軌跡來完成任務(wù)。
另外很重要的一點是,F(xiàn)lowBot 3D利用單個訓(xùn)練模型去操縱多個類別的物品,包括訓(xùn)練中沒有見過的類別。并且在真實世界中,機(jī)器人只需要使用這個純模擬器訓(xùn)練獲得的模型就可以操控多種真實物體。因此,在真實世界中,由于家用物品的運動學(xué)約束絕大多數(shù)與模擬器中無異,F(xiàn)lowBot 3D可以直接泛化到真實世界中。
FlowBot3D在真實世界實驗所用到的家用物品(包括垃圾桶,冰箱,馬桶蓋,盒子,保險箱等。
在模擬器中,機(jī)器人使用部分類別的家用物品進(jìn)行訓(xùn)練,包括訂書機(jī),垃圾箱,抽屜,窗戶,冰箱等。在模擬器和真實世界的測試中,測試數(shù)據(jù)來自于訓(xùn)練類別的新物體和訓(xùn)練時并沒有見過的類別。
FlowBot 3D在模擬器中的操縱任務(wù)。
相比較而言,學(xué)術(shù)界中常見的基于模仿學(xué)習(xí)的方法需要人工指導(dǎo)才會學(xué)習(xí)新型物體的操控方式,使得這些機(jī)器人在現(xiàn)實世界中,尤其是家用機(jī)器人場景中落地不現(xiàn)實。另外,3D點云數(shù)據(jù)強(qiáng)于其他方法所使用的2D RGB 數(shù)據(jù),因為點云可以允許機(jī)器人去理解每個關(guān)節(jié)和關(guān)節(jié)之間的關(guān)系,從而能夠更高層的理解和預(yù)測零件的運動軌跡,極大增強(qiáng)泛化性。
實驗結(jié)果顯示,F(xiàn)lowBot 3D在操作多數(shù)物體(無論是訓(xùn)練時見過還是沒見過的類別)時都能將對“全開”的距離達(dá)到10%以下,成功嶺可以達(dá)到90%以上。相比之下,其他基于模仿學(xué)習(xí)(DAgger)或者強(qiáng)化學(xué)習(xí)(SAC)的方法差了很遠(yuǎn),并且缺少泛化性。
總之,F(xiàn)lowBot 3D是一個潛力很大的工作。它可以在無需微調(diào)的前提下完成現(xiàn)實世界中高效部署。這項工作還表明,計算機(jī)視覺的進(jìn)步可以改變機(jī)器人領(lǐng)域,尤其是這種可視的運動軌跡表達(dá)方式3D articulated flow,它將可以被應(yīng)用到多個任務(wù)中,來簡化機(jī)器人策略選擇和決策過程。有了這種可泛化的表達(dá)方式,模擬器學(xué)習(xí)的方法將有潛力去在直接部署到真實世界里,這將大大降低未來家用機(jī)器人訓(xùn)練和學(xué)習(xí)的成本。
FlowBot 3D的下一步計劃目前,課題組正在嘗試將flow這種理解預(yù)測方式應(yīng)用到關(guān)節(jié)物體以外的物體上面,比如如何用flow預(yù)測6自由度的物體軌跡。同時,作者在嘗試將flow作為一種通用視覺表達(dá)方式,從而應(yīng)用到其他機(jī)器人學(xué)習(xí)任務(wù)中,比如強(qiáng)化學(xué)習(xí),從而增加學(xué)習(xí)效率,魯棒性,以及可泛化性。