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