0
本文作者: 我在思考中 | 2021-08-27 14:46 |
作者 | 李云飛
編輯 | 陳大鑫
用積木拼搭各種建筑應(yīng)該是很多小朋友童年的一大樂(lè)趣。現(xiàn)在,聰明的機(jī)器人也能自己玩積木了,而且不用人告訴它成品長(zhǎng)什么樣,機(jī)器人可以自己設(shè)計(jì)、建造一并完成。
AI 科技評(píng)論今天介紹一篇來(lái)自清華大學(xué)和字節(jié)跳動(dòng)的研究者發(fā)表在 IROS 2021 的論文: “Learning to Design and Construct Bridge without Blueprint”
論文鏈接:https://arxiv.org/abs/2108.02439
介紹
這篇論文提出了機(jī)器人設(shè)計(jì)與搭積木橋任務(wù)。如圖1最左所示,場(chǎng)景中有兩個(gè)“懸崖”和若干積木,機(jī)器人的任務(wù)是利用盡量少的積木把懸崖連接起來(lái)。懸崖之間的距離是隨機(jī)的,物料的數(shù)量也是變化的。
圖1:機(jī)器人搭橋任務(wù)示意
需要強(qiáng)調(diào)的是,機(jī)器人搭橋任務(wù)中需要關(guān)注的問(wèn)題和之前許多機(jī)器人操作(manipulation )任務(wù)不太一樣。之前的工作比如裝配 (assembly)、物體布置 (rearrangement)、堆積木 (stacking) 等,它們的最終目標(biāo)狀態(tài)都事先知道,不需要機(jī)器人自己規(guī)劃每個(gè)物體的目標(biāo)狀態(tài)。這就相當(dāng)于機(jī)器人拿著“設(shè)計(jì)師”給好的“圖紙”,只需要負(fù)責(zé)規(guī)劃怎樣“施工”才能實(shí)現(xiàn)圖紙上的狀態(tài)。而在搭橋任務(wù)中,機(jī)器人手中并沒(méi)有圖紙,它看到的只是兩個(gè)懸崖和能用來(lái)搭橋的積木。至于應(yīng)該用多少塊積木、每塊積木擺在哪里才能把懸崖連起來(lái)、應(yīng)該先放哪塊再放哪塊積木、具體應(yīng)該怎么把積木放過(guò)去,所有的問(wèn)題我們的機(jī)器人都要考慮,現(xiàn)在它得既當(dāng)設(shè)計(jì)師又當(dāng)工程師了。
由于搭橋的任務(wù)非常復(fù)雜,如果機(jī)械臂考慮的每一步動(dòng)作僅僅是旋轉(zhuǎn)自己關(guān)節(jié)的角度的話,那需要規(guī)劃的步數(shù)是非常龐大的,直接解這樣的問(wèn)題幾乎不可能。所以,該工作借鑒了 Task and Motion Planning (TAMP,任務(wù)與動(dòng)作規(guī)劃) 的做法,把搭橋抽象成兩層問(wèn)題來(lái)做。
在高一層,機(jī)器人只關(guān)心積木塊的移動(dòng),每一步動(dòng)作是“瞬移”一個(gè)積木,而省略掉機(jī)械臂操作積木的細(xì)節(jié)。在低一層,機(jī)械臂負(fù)責(zé)解算如何控制自己的關(guān)節(jié)才能把積木移動(dòng)過(guò)去。換句話說(shuō),解決高層問(wèn)題的智能體主要負(fù)責(zé)設(shè)計(jì)橋的形態(tài),所以也叫它 blueprint policy(藍(lán)圖設(shè)計(jì)策略)。
而底層問(wèn)題其實(shí)就是機(jī)械臂的 pick and place(抓取與放置)任務(wù),可以交給傳統(tǒng)的 motion planning(動(dòng)作規(guī)劃)方法解決。整體的框架如圖1右側(cè)所示。
搭橋的任務(wù)設(shè)定
在桌面上放置兩個(gè)間距隨機(jī)的物塊當(dāng)作懸崖,再給機(jī)器人提供數(shù)量不定的積木當(dāng)物料,希望機(jī)器人能利用這些物料搭出某種結(jié)構(gòu),把兩個(gè)懸崖連起來(lái)。
搭橋任務(wù)主要的難點(diǎn)就是在 blueprint policy 負(fù)責(zé)的橋梁設(shè)計(jì)環(huán)節(jié)。這個(gè)問(wèn)題可以建模為一個(gè) Markov 決策過(guò)程 ( MDP: Markov decision process,一種序列決策過(guò)程) ,由狀態(tài) (state),動(dòng)作 (action),轉(zhuǎn)移關(guān)系 (transition) 和獎(jiǎng)勵(lì)信號(hào) (reward) 定義。Blueprint policy 在每一步會(huì)先獲取環(huán)境的狀態(tài),然后決定采取什么樣的動(dòng)作,接著環(huán)境會(huì)轉(zhuǎn)移到下一個(gè)狀態(tài),同時(shí)將獎(jiǎng)勵(lì)信號(hào)反饋給 blueprint policy。就這樣,blueprint policy 通過(guò)不斷地與環(huán)境交互,使用強(qiáng)化學(xué)習(xí)來(lái)調(diào)整自己的決策,提升自己的表現(xiàn)。MDP 中每個(gè)要素的具體定義是這樣的:
狀態(tài):環(huán)境中所有物體的6自由度位姿(包括三維位置和三維旋轉(zhuǎn))、速度、尺寸;
動(dòng)作:物體編號(hào)和目標(biāo)位姿,它表示 blueprint policy 決定把該物體的位姿從當(dāng)前狀態(tài)變到目標(biāo)狀態(tài);
轉(zhuǎn)移關(guān)系:在物理引擎中先根據(jù) blueprint policy 的動(dòng)作,把選中的物體瞬移成動(dòng)作中的目標(biāo)狀態(tài),接著在重力作用下跑物理仿真,直到所有物體都穩(wěn)定下來(lái),物理引擎再把此時(shí)的狀態(tài)作為轉(zhuǎn)移到的新?tīng)顟B(tài)返回給 blueprint policy 。作者之所以讓物理引擎繼續(xù)模擬而不是直接返回瞬移結(jié)果,是因?yàn)?blueprint policy 指定的目標(biāo)狀態(tài)很可能在現(xiàn)實(shí)中沒(méi)法穩(wěn)定存在(比如積木懸浮在空中或者與其他物體有碰撞),通過(guò)物理仿真就能讓 blueprint policy 知道什么樣的狀態(tài)是物理上可行的,幫助 blueprint policy 建立對(duì)物理規(guī)律的理解。
獎(jiǎng)勵(lì)信號(hào):如果橋成功搭出來(lái)了,agent 會(huì)獲得一個(gè)大的獎(jiǎng)勵(lì)信號(hào)。那怎么判斷橋有沒(méi)有成功搭起來(lái)呢?
本文沿著懸崖的中心連線均勻地采樣若干個(gè)點(diǎn),檢查了每個(gè)采樣點(diǎn)的上表面高度,如果所有采樣點(diǎn)的高度都大于一定的閾值,就認(rèn)為橋搭成功了。此外,agent 在建造的中途還可以獲得一些比較小的獎(jiǎng)勵(lì)信號(hào):當(dāng)部分采樣點(diǎn)的高度到達(dá)閾值的時(shí)候,可以獲得正比于這部分點(diǎn)占總點(diǎn)數(shù)比例的獎(jiǎng)勵(lì)。為了鼓勵(lì) agent 用盡量節(jié)省物料的方式搭出平整的橋,作者還在判斷搭橋成功的基礎(chǔ)上給用物體少的橋和平整的橋額外的獎(jiǎng)勵(lì)。agent 收到的獎(jiǎng)勵(lì)信號(hào)是上面所有項(xiàng)的加和。
設(shè)計(jì)橋梁的策略學(xué)習(xí)
任務(wù)設(shè)定清楚之后,還要采用合適的策略網(wǎng)絡(luò)結(jié)構(gòu)和算法來(lái)解決它。Agent需要建立對(duì)環(huán)境中物體間的關(guān)系的理解,還需要具有一定的在不同數(shù)量物體之間泛化的能力。
為了更好地學(xué)習(xí)能在物體間泛化的策略,研究者采用了基于Transformer 編碼器的網(wǎng)絡(luò)結(jié)構(gòu)來(lái)從場(chǎng)景中所有物體的狀態(tài)提取特征。如圖2左側(cè),把每一個(gè)物體的狀態(tài)當(dāng)作一個(gè) token 來(lái)處理,將它們的嵌入表示 (embedding) 經(jīng)過(guò)N個(gè)注意力塊 (attention block) 處理,充分地建模物體與物體之間的關(guān)系信息,得到特征。之后再經(jīng)過(guò)多個(gè)線性層得到策略網(wǎng)絡(luò) (policy) 和估值函數(shù) (value) 輸出。
作者采用 PPG (Phasic Policy Gradient,階段策略梯度) 算法來(lái)訓(xùn)練 blueprint policy。PPG 是在 PPO (Proximal Policy Optimization,近端策略優(yōu)化) 基礎(chǔ)上提出的一種在線強(qiáng)化學(xué)習(xí)算法,它的長(zhǎng)處在于能巧妙地將 value 網(wǎng)絡(luò)學(xué)到的有用知識(shí)與 policy 網(wǎng)絡(luò)共享,使得強(qiáng)大的 Tranformer encoder 同時(shí)惠及 policy 和 value 網(wǎng)絡(luò)。PPG 有 "shared" 共享和 "dual" 非共享兩種實(shí)現(xiàn)架構(gòu),其中 shared 架構(gòu)中 policy 和 value head 共享了 feature extractor 的參數(shù),而dual架構(gòu)不共享 參數(shù)。
PPG的技術(shù)細(xì)節(jié)可以參考原文,在此不再展開(kāi)。
圖2: Blueprint policy網(wǎng)絡(luò)結(jié)構(gòu)
雖然該文的目標(biāo)是希望機(jī)器人能用很多積木搭出復(fù)雜的橋,但在訓(xùn)練初期 agent 水平很低的時(shí)候就提供這樣的任務(wù)對(duì)它來(lái)說(shuō)太困難了,就如同強(qiáng)行讓小學(xué)生啃大學(xué)教材;因此我們采用了自適應(yīng)的課程 (curriculum) 來(lái)調(diào)節(jié)訓(xùn)練任務(wù)的難度。最開(kāi)始懸崖之間的距離是從整個(gè)任務(wù)分布中均勻采樣的,有的很近有的很遠(yuǎn);隨著搭橋成功率漸漸提升,會(huì)逐漸增大采樣到較遠(yuǎn)的懸崖距離的概率。
機(jī)械臂控制策略實(shí)現(xiàn)
機(jī)械臂底層控制策略負(fù)責(zé)用 pick and place 來(lái)完成 blueprint policy 設(shè)定的每一步目標(biāo),真正地用機(jī)械臂移動(dòng)積木。研究者使用了傳統(tǒng)的 motion planning 算法做六自由度抓?。òト〉娜杂啥任恢煤腿杂啥刃D(zhuǎn)),完成 pick and place 任務(wù)。
仿真和真機(jī)實(shí)驗(yàn)
文章首先在仿真環(huán)境中看看agent設(shè)計(jì)出了什么樣的橋梁。在懸崖之間距離比較近的時(shí)候,agent學(xué)出先豎著放一個(gè)積木當(dāng)支柱,再把兩塊積木橫著架上去。在距離更遠(yuǎn)的時(shí)候,它能學(xué)會(huì)按照合適的間距擺放更多的支撐物,再放橋面。
圖3: Agent學(xué)會(huì)了設(shè)計(jì)不同長(zhǎng)度的橋梁
有時(shí)候agent第一次放的位置不是特別好,它還知道回過(guò)頭來(lái)微調(diào)。比如圖4(a)中agent發(fā)現(xiàn)橋面不太平整的時(shí)候會(huì)重新放置橫著的積木。圖4(b)中橋成形以后它發(fā)現(xiàn)棕色積木是多余的,就把它挪走了。
圖4: 自己微調(diào)設(shè)計(jì)得不好的橋
作者采用搭橋成功率來(lái)衡量 blueprint policy 的表現(xiàn)。下圖左展示了使用不同算法(PPG,PPO)和不同的網(wǎng)絡(luò)架構(gòu) (shared,dual) 時(shí)的訓(xùn)練曲線。紅線是最終采用的組合,它能以0.8的成功率設(shè)計(jì)出需要用7塊積木的橋。圖右展示了 curriculum learning 的關(guān)鍵作用,藍(lán)色線是不從簡(jiǎn)單的任務(wù)學(xué)起,直接挑戰(zhàn)高難度橋梁的訓(xùn)練情況,它的學(xué)習(xí)效率明顯低于加了curriculum的紅色線。
圖5: 消融實(shí)驗(yàn)的訓(xùn)練曲線
最后將機(jī)械臂的底層控制加入,看看機(jī)器人搭橋的最終效果。作者用6軸的Kinova機(jī)械臂做了真機(jī)實(shí)驗(yàn)。不管是只需要放一塊積木的迷你橋,還是需要加支撐塊的T形、 形橋,機(jī)器人建造師都從容應(yīng)對(duì),成功完成任務(wù)。
圖6: Kinova 機(jī)器人搭出不同長(zhǎng)度的橋
項(xiàng)目視頻:
總結(jié)
這篇工作提出了“機(jī)器人搭橋”的自動(dòng)裝配任務(wù),研究在不事先給定藍(lán)圖的情況下如何同時(shí)進(jìn)行結(jié)構(gòu)設(shè)計(jì)與建造。
本文將搭橋任務(wù)拆解成高層設(shè)計(jì)與底層建造兩部分,設(shè)計(jì)部分利用深度強(qiáng)化學(xué)習(xí)算法訓(xùn)練,建造部分由傳統(tǒng)動(dòng)作規(guī)劃方法實(shí)現(xiàn),在實(shí)驗(yàn)中能根據(jù)懸崖之間隨機(jī)的距離成功設(shè)計(jì)建造不同形態(tài)的積木橋。
參考文獻(xiàn)
雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)特約稿件,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。