從虛擬世界伸到現實的機械臂,靠攝像機就能玩轉任何物體

機器之心發表於2018-07-31

OpenAI 訓練了一個機械臂,能夠非常靈巧地控制物體。據介紹,該系統名為 Dactyl,經過了完全模擬訓練,能夠把知識遷移到現實中,即使用 OpenAI 一直以來研究的技術把訓練得到的知識應用到真實物理環境中。Dactyl 使用了 OpenAI 在 Dota2 系統 中使用的同一通用強化學習演算法與程式碼。結果顯示,沒有對物理世界準確建模的情況下,在模擬環境中訓練智慧體並用它解決現實任務是可以做到的。

論文連結:https://d4mucfpksywv.cloudfront.net/research-covers/learning-dexterity/learning-dexterity-paper.pdf

任務

Dactyl 是一個使用機械臂操控物體的系統。我們把一個方塊或稜柱放在其手掌,然後要求 Dactyl 重置該物品的方向。例如,旋轉方塊,使其另外一面朝上。網路僅觀察指尖座標和三個常規 RGB 攝像頭中的影像即可。

從虛擬世界伸到現實的機械臂,靠攝像機就能玩轉任何物體

儘管幾十年前人們就開發了首個機械臂,但長期以來,利用它們有效地操控物體一直是機械臂控制領域的一大難題。與其他問題(如移動)不同,使用傳統機械臂技術實現靈活操控一直進展緩慢,而利用現有技術也很難操控現實世界中的物體。

用機械臂改變物體方向需要解決以下問題:

  • 在現實世界操作。雖然強化學習在很多模擬測試和視訊遊戲中都取得了成功,但它在現實世界中表現平平。我們在一個機械臂上測試了 Dactyl 系統。

  • 高維控制。與傳統擁有 7 個自由度的機械臂相比,Dactyl 的機械臂有 24 個自由度。

  • 噪聲和區域性觀察。Dactyl 要在現實世界中操作,因此必須解決噪聲和感測器讀數延遲問題。當指尖感測器被其它手指或物體遮擋時,Dactyl 只能收到區域性資訊。此外,許多物理方面的問題(如摩擦和滑移)無法被直接觀察到,必須要對其進行推斷。

  • 操控多個物體。Dactyl 要設計得非常靈活才能操控多個物體。這意味著我們不能使用僅針對特定幾何物件的策略。

方法

Dactyl 學習完全在模擬中解決目標再定向任務,而無需任何人工輸入。在完成訓練階段後,學習的策略可以在不需要任何微調的情況下遷移到機械臂。

Dactyl 實現 50 次連續旋轉測試最大值。

機械操作的學習方法身處一個兩難境地。模擬的機械臂可以很輕鬆的提供足夠的資料來訓練複雜的策略,但大多數的操作問題不能實現精確建模,這些策略進而也不能應用到真實機械臂上。即使是對兩物體觸碰後的變化進行建模——這是操作中最基礎的問題——也是一個活躍研究領域,目前仍未有被廣泛認可的解決方案。直接在物理機械臂上進行訓練可以讓策略在現實世界的物理中學習,但今天的演算法需要多年的經驗來解決像物體再定向這樣的問題。

我們的方法是域隨機化(domain randomization),這種方法通過在模擬場景中學習而不是儘量現實化,且模擬場景通過設計提供了各式各樣的經驗。這給了我們最好的方法:通過在模擬中學習,我們可以通過擴充套件來收集更多的經驗,通過不強調現實意義,我們可以解決模擬器只能近似模擬的問題。

OpenAI 和一些其他組織也表示,域隨機化可以處理越來越複雜的問題——域隨機化甚至還用來訓練 OpenAI Five。現在,我們想要看擴充套件域隨機化是否能夠解決當前機械臂技術中無法解決的問題。

從虛擬世界伸到現實的機械臂,靠攝像機就能玩轉任何物體

我們通過使用 MuJoCo 物理引擎構建了機械臂系統的模擬版本。這個模擬僅僅是真實機械臂的粗略近似:

  • 測量諸如摩擦力、阻尼和滾動阻力等物理屬性是很困難的。隨著機械臂的使用磨損,它們也會隨之改變。

  • MuJoCo 是一個剛體模擬器,也就是說它不能模擬手部姿勢或肌腱的拉伸。

  • 我們的機械臂只能通過反覆接觸來操縱物體,然而接觸力很難被精確模擬出來。

通過校準引數來匹配機械臂行為能使模擬更加逼真。但在目前的模擬器中,許多這樣的效果沒辦法被精確建模。

相反,我們在分散式模擬環境中訓練策略,其中物理和視覺屬性是隨機選擇的。隨機值是表示物理系統不確定性的自然方式,也能防止對單個模擬環境的過擬合。如果訓練出的策略能夠完成所有模擬環境的任務,它就很有可能完成真實世界的任務。

學習如何控制

通過構建支援遷移的模擬,我們減少了在實際場景中控制機械臂完成模擬任務的問題,該問題非常適合使用強化學習進行求解。雖然通過模擬的手臂操作一個物體已經非常困難了,但是在所有隨機物理引數組合下學習如何操作物體要更難。

為了泛化到不同的環境,如果相同的策略能在不同的動力學環境中執行不同的動作,那無疑會非常有用。但是大多數動力學引數(dynamics parameter)並不能從單個觀察樣本中直接推斷出,因此我們使用一種帶記憶的神經網路 LSTM,這種記憶機制使得網路能學習動力學環境。LSTM 相比於不帶記憶的策略大約實現了兩倍的旋轉。

Dactyl 使用 Rapid 進行學習,Rapid 是近端策略優化的大規模實現,它允許 OpenAI Five 解決 Dota 2 任務。我們使用了與 OpenAI Five 不同的模型架構、環境和超引數,但還是使用了相同的演算法和訓練程式碼。Rapid 使用 6144 個 CPU 核心與 8 張 GPU 來訓練我們的策略,且智慧體在 50 個小時內大約獲得了 100 年的經驗。

對於開發與測試,我們針對具有嵌入式運動追蹤感測器的物體驗證了控制策略,其中該感測器能分離控制與視覺網路的效能。

學習如何觀察

Dactyl 旨在能操作任意目標,而不僅僅是那些經過特殊處理以支援追蹤的目標。因此,Dactyl 使用常規的 RGB 攝像圖來估計目標的位置與反向。

我們使用卷積神經網路訓練一個姿態估計器,該神經網路能從位於機械臂周圍的三個攝像頭獲取視訊流輸入,並輸出估計的目標位置與方向。此外,使用三個攝像頭能有效解決影像模糊和遮擋等問題。我們再次使用領域隨機化訓練該網路,並在 Unity 遊戲開發平臺上進行模擬,該平臺相比於 Mujoco 可以建模更廣泛的視覺現象。

控制網路能在給定姿態估計的情況下再調整目標,而視覺網路能將從攝像頭獲取的影像對映到目標的姿態。通過結合這兩個獨立的網路,Dactyl 能在觀察到目標後就對它做一些操作。

從虛擬世界伸到現實的機械臂,靠攝像機就能玩轉任何物體

用於學習評估方塊姿態的訓練影像樣本。

結果

出現的行為

當部署了我們的系統時,我們注意到 Dactyl 使用了豐富的「掌中靈巧操控策略」(in-hand dexterous manipulation strategies)集合來求解任務。這些策略也被人類所常用。然而,我們並沒有明確地教過他們這些策略;所有的行為都是自動發現的。

從虛擬世界伸到現實的機械臂,靠攝像機就能玩轉任何物體

由Dactyl自動學習到的靈巧操控行為示例。

從虛擬世界伸到現實的機械臂,靠攝像機就能玩轉任何物體

Dactyl 抓握型別(根據 GRASP taxonomy)。從左上到右下:指尖捏、掌捏、三指抓取、四指抓取、強力抓握和五指精確抓握。

我們觀察到對於精確抓握,例如指尖捏,Dactyl 使用拇指和小指。人類更傾向於使用拇指以及食指或中指。然而,由於額外的自由度,機械臂的小指更加靈活,這也許解釋了 Dactyl 為什麼更鐘愛用小指。這意味著 Dactyl 可以重新發現人類的抓握行為,但能將其進行調整以更好地適應其自身的極限和能力。

遷移能力

我們測試了 Dactyl 在丟掉它掌中物體之前可以實現多少次旋轉,是超時,還是能成功實現 50 次旋轉。在模擬環境訓練的策略使機械臂能成功地在真實世界種成功地操控物體。

從虛擬世界伸到現實的機械臂,靠攝像機就能玩轉任何物體

Dactyl 實驗設定,包含機械臂、相空間運動追蹤攝像機和 Basler RGB 攝像機。

對於方塊操控任務,結合隨機化的訓練策略相比沒有使用隨機化的訓練策略可以實現更多的旋轉次數,如下所示。此外,使用結合視覺姿態估計的控制網路可以實現與直接從運動追蹤感測器讀取姿態相近的效能。

從虛擬世界伸到現實的機械臂,靠攝像機就能玩轉任何物體

學習進展

大部分的訓練時間都被用來使策略對不同的物理動態更加魯棒。在模擬環境中不使用隨機化來學習旋轉物體需要大約 3 年的模擬經驗,而在完全隨機化的模擬環境中實現相似效能需要大約 100 年的模擬經驗。

從虛擬世界伸到現實的機械臂,靠攝像機就能玩轉任何物體

有和沒有隨機化過程的模擬經驗(年)對應的學習進展。

驚喜之處

  • 操縱現實世界中的物體不需要觸覺感知。我們的機械臂僅接收五個指尖的位置及方塊的位置和方向資訊。儘管機械的指尖有觸覺感測器,我們也不需要。總的來說,我們不需要一套具有難以建模的值的豐富感測器,利用一套有限的感測器就能提升機械臂的表現,這些感測器可以在模擬器中有效建模。

  • 為一個物件開發的隨機化泛化到具有類似屬性的其它物件。在為操縱方塊問題開發了一個系統之後,我們列印了一個八稜柱並使用它訓練了一套新的規則,然後試圖操縱該稜柱。令我們驚喜的是,機械臂僅利用為方塊設計的隨機化就表現出了優異的效能。然而,操縱球體的規則在一系列測試中僅能成功幾次,或許是因為我們沒有隨機化任何建模滾動行為的模擬引數

  • 在物理機械臂中,良好的系統工程與好的演算法一樣重要。某次,我們注意到,在執行同樣的規則時,一個工程師的表現總是優於其他工程師。之後,我們發現他的膝上型電腦比其他人的快,而他的電腦隱藏了一個影響表現的計時 bug。bug 修復之後,相對地團隊中其他人電腦上的表現就提了上去。

不足之處

我們還驚訝地發現有幾項常用的技術並沒有提升我們的結果。

  • 減少反應時間並不能提升效能。傳統觀點認為減少動作間隙的時間應該能提升效能,因為狀態之間的變化將變得更小,因此更容易預測。我們當前使用的動作間隙時間是 80ms,小於人類反應時間(150-250ms),但顯著高於神經網路的計算時間(大約 25ms)。令人驚訝的是,雖然增加額外的訓練時間可以將動作間隙時間減少到 40ms,但在現實世界的任務中並沒有顯著提升效能。有可能這個經驗法則並不適用於神經網路,而更適用於如今常用的線性模型。

  • 使用真實資料來訓練視覺策略並沒有什麼效果。在早期實驗中,我們使用了模擬資料和真實資料的組合來提升模型效能。真實資料可以通過目標結合嵌入式跟蹤標識器的試驗來獲取。然而,真實資料相比模擬資料有很大的缺點。跟蹤標識器的位置資訊具有延遲和測量誤差。更糟的是,真實資料很容易因為常見的配置變化而失效,使其很難收集足夠的有用資料。隨著方法的不斷髮展,我們的「僅模擬」誤差一直在增加,直到與使用模擬-真實混合資料的誤差相匹配。我們最終的視覺模型沒有使用真實資料來訓練。


原文連結:https://blog.openai.com/learning-dexterity/

相關文章