申 珅,曾建潮,,秦品樂
(1.中北大學(xué) 電氣與控制工程學(xué)院,山西 太原 030051; 2.中北大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,山西 太原 030051)
隨著工業(yè)裝備的快速發(fā)展,機(jī)械臂在生產(chǎn)領(lǐng)域的應(yīng)用不斷增加,各類提升機(jī)械臂性能的智能控制算法層出不窮。機(jī)械臂端到端的控制方法主要分為強(qiáng)化學(xué)習(xí)、模仿學(xué)習(xí)和遷移學(xué)習(xí)這三種方法[1]。其中,與環(huán)境直接交互的強(qiáng)化學(xué)習(xí)算法在機(jī)械臂控制領(lǐng)域的應(yīng)用尤為廣泛[2],然而,強(qiáng)化學(xué)習(xí)在高效訓(xùn)練高自由度的工業(yè)機(jī)械臂的應(yīng)用中仍然存在一些問題,即由無效動作導(dǎo)致的訓(xùn)練周期過長、收斂速度慢的問題。
為了解決強(qiáng)化學(xué)習(xí)訓(xùn)練高自由度的工業(yè)機(jī)械臂效果不佳的問題,國內(nèi)外學(xué)者普遍采用兩類方法來進(jìn)行優(yōu)化。
第一類方法是通過對強(qiáng)化學(xué)習(xí)算法的泛用性進(jìn)一步優(yōu)化,以實現(xiàn)減少無效動作的目的。Schulman等[3]令策略網(wǎng)絡(luò)服從一個分布,提出信賴域策略優(yōu)化(Trust Region Policy Optimization,TRPO),實現(xiàn)了機(jī)械臂在連續(xù)動作空間的策略優(yōu)化; Kalashnikov等[4]提出QT-Opt算法,令7臺機(jī)械臂收集58萬次抓取數(shù)據(jù),用來訓(xùn)練神經(jīng)網(wǎng)絡(luò)以作為機(jī)械臂控制器; Yahya等[5]提出自適應(yīng)分布式指導(dǎo)策略搜索(Adaptive Distributed Guided Policy Search,ADGPS),讓多個機(jī)械臂分別訓(xùn)練并進(jìn)行經(jīng)驗分享,減少試錯數(shù)并尋找最優(yōu)路徑; Haarnoja等[6]結(jié)合Q函數(shù)與交叉熵,提出軟Q學(xué)習(xí)算法(Soft Q-Learning,SQL),大大提高了機(jī)械臂控制的魯棒性,并結(jié)合AC算法,提出軟演員-評論家算法[7](Soft Actor-Critic,SAC),縮短了算法訓(xùn)練的時間; Zhang等[8]設(shè)計了一種改進(jìn)SAC算法來應(yīng)用于機(jī)械手的操控; Zhong等[9]結(jié)合DDPG算法與逆運動學(xué),提出一種時變的混合機(jī)械臂控制算法; Iriondo等[10]基于雙延遲深度確定性策略梯度算法(Twin Delayed Deep Deterministic Policy Gradient,TD3)研究了移動機(jī)械手在桌子上拾取物體的操作; Ranaweera等[11]通過域隨機(jī)化和在強(qiáng)化學(xué)習(xí)訓(xùn)練過程中引入噪聲,提高了訓(xùn)練效果; 蘇杰等[12]改進(jìn)DDPG應(yīng)用于機(jī)械臂軌跡運動。這一類方法的核心思想是通過引入概率論的方法,大幅度減少無效動作帶來的影響,但是該類方法并不能根除無效動作。
第二類方法是將強(qiáng)化學(xué)習(xí)與模仿學(xué)習(xí)相結(jié)合,由先驗數(shù)據(jù)對強(qiáng)化學(xué)習(xí)進(jìn)行約束,以實現(xiàn)穩(wěn)定運行的目的。Finn等提出的GCL算法是在MaxEntIRL的基礎(chǔ)上對機(jī)械臂進(jìn)行軌跡約束,并將人為示教軌跡直接作為最優(yōu)方案來引導(dǎo)強(qiáng)化學(xué)習(xí)進(jìn)行訓(xùn)練[13-14]; Ho等[15]在GCL基礎(chǔ)上,提出了生成對抗模仿學(xué)習(xí)算法(Generative Adversarial Imitation Learning,GAIL),篩選出與示教軌跡相似度高的采樣軌跡,降低了無效動作出現(xiàn)的可能,提高了訓(xùn)練速度; Eysenbach等[16]提出逆向強(qiáng)化學(xué)習(xí),根據(jù)示教數(shù)據(jù)導(dǎo)出通用的獎勵函數(shù); Yu等[17]提出并驗證了一種基于改進(jìn)IRL的機(jī)器人手眼合作模型,使機(jī)器人獲得了高效的決策性能; Sun等[18]結(jié)合DQN和行為克隆,提出了一種新的DRL算法 (D3QN),顯著降低了訓(xùn)練初期探索的盲目性; Peng等[19]提出了Deep Mimic算法,將獎勵函數(shù)來拆分成數(shù)個模仿分量的指數(shù)和,利用復(fù)合獎勵函數(shù)來訓(xùn)練強(qiáng)化學(xué)習(xí); Escontrela等[20]提出了AMP算法,將復(fù)合獎勵函數(shù)拆成模仿分量和目標(biāo)分量,提高了生成動作的有效性。盧彬鵬[21]通過圖像處理技術(shù)來獲取訓(xùn)練強(qiáng)化學(xué)習(xí)所需的示教數(shù)據(jù); 傅海濤[22]通過加設(shè)傳感器來進(jìn)行外設(shè)示教。這一類方法的優(yōu)點是利用軌跡優(yōu)化中存在的可行解來作為強(qiáng)化學(xué)習(xí)的約束,但是其泛化性相較于第一類方法較差。
綜上所述,本文針對兩種方法各自存在的缺陷,提出了一種新的算法,即先通過第二類方法來訓(xùn)練,再引入第一類方法來提高機(jī)械臂控制器的魯棒性,具體研究內(nèi)容如下:
1) 提出一種基于模仿分量與任務(wù)分量構(gòu)建復(fù)合獎勵函數(shù)的方法,在強(qiáng)化學(xué)習(xí)的訓(xùn)練階段提高控制器的魯棒性。
2) 提出一種基于獎勵與策略雙優(yōu)化的機(jī)械臂控制算法HR-GAIL,構(gòu)建獎勵與策略的二元變量損失函數(shù),在獎勵與策略交替優(yōu)化的過程中實現(xiàn)對控制器的更新。
3) 在Pybullet仿真環(huán)境中批量生成示教數(shù)據(jù),并進(jìn)行仿真訓(xùn)練和實驗,與GAIL+SAC方法進(jìn)行對比來驗證本文方法的有效性。
機(jī)械臂控制系統(tǒng)由傳感器、控制器、執(zhí)行器和被控對象組成,各部分之間的關(guān)系如圖1 所示。環(huán)境的內(nèi)置傳感器識別當(dāng)前的狀態(tài)s,該狀態(tài)信息隨后被輸入到控制器中。強(qiáng)化學(xué)習(xí)算法的策略網(wǎng)絡(luò)作為機(jī)械臂的控制器,通過輸出動作指令a改變機(jī)械臂關(guān)節(jié)電機(jī)和手爪電機(jī)的力矩值,從而實現(xiàn)對被控對象的控制。機(jī)械臂與被控對象的交互導(dǎo)致環(huán)境的改變,傳感器識別新狀態(tài)s′后繼續(xù)輸入到控制器中進(jìn)行下一步控制。
機(jī)械臂控制器的設(shè)計參考SAC的框架,僅提取SAC的策略網(wǎng)絡(luò)作為控制器。策略網(wǎng)絡(luò)由層數(shù)為n的多層全連接神經(jīng)網(wǎng)絡(luò)構(gòu)成,輸入狀態(tài)s后,在神經(jīng)網(wǎng)絡(luò)的輸出端可以得到對應(yīng)動作的均值μ與標(biāo)準(zhǔn)差σ,由此來構(gòu)建多元正態(tài)分布模型。通過對該多元正態(tài)分布進(jìn)行采樣,在機(jī)械臂控制器的輸出端得到采樣動作a與該采樣動作的概率值p。機(jī)械臂控制器的設(shè)計如圖2 所示。
圖2 機(jī)械臂控制器的設(shè)計
控制系統(tǒng)的執(zhí)行機(jī)構(gòu)是Franka Emika Panda機(jī)械臂,該機(jī)械臂有7個關(guān)節(jié)電機(jī),末端執(zhí)行器上安裝了2指手爪,其結(jié)構(gòu)以及各關(guān)節(jié)的坐標(biāo)系位置如圖3 所示。
圖3 Franka Emika Panda機(jī)械臂
每一時刻t下的狀態(tài)st由7個關(guān)節(jié)角以及手爪2指上的平移位置構(gòu)成,表示為
st=[θ1,θ2,θ3,θ4,θ5,θ6,θ7,d1,d2]T。
(1)
每一時刻t下的動作at由7個關(guān)節(jié)角速度以及手爪2指所施加的力構(gòu)成,表示為
(2)
式中:M為手爪電機(jī)的力矩值。當(dāng)手爪對目標(biāo)物塊施加一定的壓力后,才能通過摩擦力提起物塊。因此,需要通過輸出手爪電機(jī)的力矩值來驅(qū)使手爪進(jìn)行相應(yīng)的抓取動作。
動作概率pt是策略網(wǎng)絡(luò)πθ在狀態(tài)st所采樣動作at的動作概率,表示為
pt=πθ(at|st)。
(3)
獎勵函數(shù)是評價強(qiáng)化學(xué)習(xí)效果的重要指標(biāo)。本節(jié)算法參考DeepMimic算法構(gòu)建復(fù)合獎勵函數(shù),即每個獎勵函數(shù)的分量都是由當(dāng)前分量與示教數(shù)據(jù)的差的2范數(shù)構(gòu)成。求取該差值的自然指數(shù)后,再將各獎勵函數(shù)的分量進(jìn)行加權(quán)求和。
(4)
式中:Pe是機(jī)械臂末端手爪的位姿;Pc是目標(biāo)物塊的位姿;Pt是目標(biāo)位置的位姿;α,β是權(quán)重系數(shù),這里分別設(shè)定為6和12。
log[sigmoid(fη(st,at)-logπ(at|st))],
(5)
式中:Dπ是鑒別器; sigmoid(x)的表達(dá)式為[1+exp(-x)]-1;π(at|st)是動作概率;fη是鑒別器網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示。
圖4 鑒別器網(wǎng)絡(luò)結(jié)構(gòu)
輸入狀態(tài)s和動作a的信息后,在層數(shù)m的多層全連接神經(jīng)網(wǎng)絡(luò)的輸出端得到鑒別器f的值。
(6)
式中:Q是復(fù)合獎勵函數(shù),表示從當(dāng)前時刻t到末端時刻T的累計獎勵; 參數(shù)γ是模仿分量的權(quán)重,這里設(shè)定為0.7。
本文在復(fù)合獎勵(Hybird Reward)的基礎(chǔ)上改善GAIL,并在SAC的策略網(wǎng)絡(luò)進(jìn)行優(yōu)化,該方法命名為HR-GAIL。HR-GAIL先確保示教樣本和采樣樣本之間的分歧最小化,進(jìn)而優(yōu)化獎勵函數(shù)和策略網(wǎng)絡(luò)。獎勵函數(shù)和策略網(wǎng)絡(luò)的復(fù)合映射為
H(π)+Eπr(s,a)-EπEr(s,a)],
(7)
式中:π為控制器的執(zhí)行策略;πE為示教演示的執(zhí)行策略;H(π)為熵;r(s,a)為獎勵函數(shù);Eπr(s,a)為在π分布上對獎勵r所求的期望;EπEr(s,a)為在πE分布上的期望;ψ為歸一化函數(shù),其表達(dá)式[15]為
ψ(r)=EπE{-r+φ[-φ-1(-r)]},
φ=-logD。
(8)
HR-GAIL分別構(gòu)建基于策略網(wǎng)絡(luò)πθ的采樣鑒別器Dπθ和基于示教軌跡的示教鑒別器DπE,其表達(dá)式分別為
Dπθ(st,at)=sigmoid(fη(st,at)-
logπθ(at|st)),
DπE(st,at)=sigmoid(-fη(st,at))。
(9)
HR-GAIL在鑒別器網(wǎng)絡(luò)fη上疊加偏置項logπθ(at|st),目的是增加鑒別器網(wǎng)絡(luò)fη的魯棒性,再經(jīng)過函數(shù)sigmoid函數(shù)處理,得到采樣鑒別器Dπθ的值。將該方法同樣應(yīng)用在示教鑒別器DπE,示教動作概率πE(at|st)是確定的,故其值取1,則logπE(at|st)的值取0。
聯(lián)立式(6)~式(9),則二元變量的損失函數(shù)為
L(πθ,fη)=-λH(πθ)+EπθQ+EπElogDπE,
(10)
式中:λ∈(0,1),是熵的正則項,這里設(shè)定為0.2。在二元變量損失函數(shù)的基礎(chǔ)上,分別對參數(shù)η和參數(shù)θ求偏導(dǎo)數(shù),可得
在高校經(jīng)濟(jì)管理教學(xué)過程里,在校企合作模式的前提下充分掌握企業(yè)所需要人才方向,根據(jù)依據(jù)定制出符合企業(yè)所需人才培養(yǎng)方案,校企合作模式下校企雙方通過相應(yīng)方式在企業(yè)建設(shè)實習(xí)基地,企業(yè)定期提供實習(xí)場所、實習(xí)機(jī)會,高校定期將優(yōu)秀畢業(yè)生安排到企業(yè)工作,這種模式將學(xué)校與企業(yè)緊密結(jié)合,學(xué)生的實習(xí)成果可以幫助解決企業(yè)一些實際問題,在創(chuàng)造企業(yè)效益的前提下,學(xué)校降低了教育成本。學(xué)生通過實習(xí)能夠更熟練的運用所學(xué)知識,也解決了學(xué)生自身就業(yè)問題。經(jīng)濟(jì)學(xué)管理教學(xué)中運用校企合作模式能夠更好的了解企業(yè)所需人才類型,進(jìn)一步根據(jù)企業(yè)需求制定有針對性的專業(yè)人才。
ηL(πθ,fη)=Eπθ[γηlogDπθ(s,a)]+
EπE[ηlogDπE(s,a)],
(11)
θL(πθ,fη)=-λθH(πθ)+
Eπθ[γ?θlogDπθ(s,a)]。
(12)
改進(jìn)算法框架如圖5 所示。
圖5 改進(jìn)算法框架
控制器是參數(shù)為θ的策略網(wǎng)絡(luò),根據(jù)狀態(tài)s,輸出動作a與動作概率p。動作a作用在機(jī)械臂上并在環(huán)境交互,得到新狀態(tài)s,然后再進(jìn)行下一步循環(huán)。每一次交互都會把s,a,p保存在數(shù)據(jù)緩存器的采樣軌跡分區(qū)。
首先計算機(jī)械臂末端手爪位姿與物塊位姿的位置差和角度差,并引入反運動學(xué)公式,輸出下一個狀態(tài)下機(jī)械臂的各關(guān)節(jié)所對應(yīng)的角度值; 然后手爪鎖定物塊,計算出機(jī)械臂末端手爪位姿與目標(biāo)位置的位置差和角度差,并引入反運動學(xué)公式,使手爪帶動物塊移送到目標(biāo)位置; 最后運用篩選機(jī)制,從上千條運動軌跡中選出符合用戶需求的示教數(shù)據(jù)簇。生成示教數(shù)據(jù)的流程如圖6 所示。
在控制器的訓(xùn)練階段,從數(shù)據(jù)緩存器中采樣批量數(shù)據(jù),根據(jù)式(10)的損失函數(shù),計算關(guān)于θ的梯度,實現(xiàn)對策略網(wǎng)絡(luò)πθ的參數(shù)更新。綜上所述,機(jī)械臂控制器訓(xùn)練過程的偽代碼如算法 1 所示。
算法1:機(jī)械臂控制器訓(xùn)練過程
輸入:最大迭代次數(shù)tmax,數(shù)據(jù)緩存器B,鑒別器網(wǎng)絡(luò)fη
輸出:訓(xùn)練好的策略網(wǎng)絡(luò)πθ
程序開始
1.從B中分別對示教軌跡和采樣軌跡采樣
2.for 每一次迭代
3.whilet 4. 獲取狀態(tài)st 5. 由控制器πθ采樣at,pt 6. 計算Dπθ(st,at)和DπE(st,at) 7. 仿真出st+1 9. end while 10.根據(jù)式(11),計算獎勵梯度更新fη 11.根據(jù)式(12),計算策略梯度更新πθ 12.end for 程序結(jié)束 本系統(tǒng)所使用的硬件設(shè)備為LAPTOP-4KUQUNRQ,內(nèi)置的GPU芯片的型號為GeForce RTX 2080 Ti,處理器為Intel(R) Core(TM) i5-6200U CPU @ 2.30 GHz,內(nèi)存為16 GB。使用的仿真軟件為Python3.6,物理仿真驅(qū)動為Pybullet3.1.7,調(diào)用基于Pytorch1.5.1+cpu和Pytorch1.5.1+cuda框架的神經(jīng)網(wǎng)絡(luò)算法。 基于Pybullet引擎構(gòu)建的機(jī)械臂模型仿真系統(tǒng),并應(yīng)用在抓取及移動物塊的場景中,如圖7 所示。機(jī)械臂模型仿真系統(tǒng)包括Franka Emika Panda機(jī)械臂URDF模型、分揀臺、目標(biāo)物塊、目標(biāo)位置和控制滑塊。 圖7 機(jī)械臂模型仿真系統(tǒng) 根據(jù)D-H模型方法[23],由沿xi-1坐標(biāo)軸的有向距離ai,沿zi-1坐標(biāo)軸的有向距離di,x坐標(biāo)軸間夾角αi,z坐標(biāo)軸間夾角θi來構(gòu)建機(jī)械臂的幾何模型,同時,θi是實時獲取的狀態(tài)信息。Panda機(jī)械臂D-H參數(shù)如表1 所示。 表1 Panda機(jī)械臂D-H參數(shù) 計算坐標(biāo)系兩兩之間的變換矩陣,得到機(jī)械臂基座到機(jī)械臂手爪的總變換矩陣,由此計算出逆運動學(xué)公式,并按照圖6 的流程生成示教數(shù)據(jù),并最終采集2 000條示教軌跡記錄在數(shù)據(jù)緩存器中。該示教軌跡將在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練環(huán)節(jié)中重復(fù)使用,后續(xù)經(jīng)由HR-GAIL算法產(chǎn)生的軌跡將作為采樣軌跡,同樣記錄在數(shù)據(jù)緩存器中。 HR-GAIL算法中神經(jīng)網(wǎng)絡(luò)的參數(shù)設(shè)置如表2 所示。 表2 HR-GAIL算法中神經(jīng)網(wǎng)絡(luò)的參數(shù)設(shè)置 機(jī)械臂控制器搭載HR-GAIL算法進(jìn)行訓(xùn)練,當(dāng)各神經(jīng)網(wǎng)絡(luò)參數(shù)穩(wěn)定后,改變目標(biāo)物塊位置,進(jìn)行抓取效果仿真,如圖8 所示。 圖8 抓取仿真效果圖 仿真結(jié)果表明,機(jī)械臂手爪能精準(zhǔn)抓取物塊,并穩(wěn)定地移動到目標(biāo)位置。 根據(jù)數(shù)據(jù)緩存器里的數(shù)據(jù),分別計算300次迭代訓(xùn)練下的GAIL與HR-GAIL的鑒別器損失值,以驗證本文獎勵優(yōu)化的性能。二者的鑒別器損失值如圖9 所示。 (a) HR-GAIL示教鑒別器與采樣鑒別器損失值 從圖9(a)和圖9(b)都可看出:示教鑒別器損失值都在不斷減少,而HR-GAIL的示教鑒別器損失值震蕩幅度小,收斂速度更快; 采樣鑒別器損失值先增大后保持穩(wěn)定,而HR-GAIL的采樣鑒別器損失值比GAIL更快地達(dá)到穩(wěn)定狀態(tài)。 復(fù)合獎勵函數(shù)的任務(wù)分量反映了控制器完成仿真任務(wù)的優(yōu)劣情況,其隨迭代步數(shù)變化的情況如圖10 所示。任務(wù)分量由多個差值的2范數(shù)構(gòu)成,所以最終時刻的獎勵值盡可能接近0,如圖10 所示,且在150步左右收斂至最大值-0.5。同時,隨著迭代步數(shù)的增加,獎勵值不斷增大,最佳的任務(wù)累計獎勵約為-300。 圖10 任務(wù)分量獎勵隨迭代步數(shù)變化圖 GAIL負(fù)責(zé)學(xué)到獎勵函數(shù)的步驟,SAC在定義好獎勵函數(shù)后才進(jìn)行強(qiáng)化學(xué)習(xí)。因此,驗證本文策略優(yōu)化的效果,需要對比HR-GAI與GAIL+SAC在同一示教數(shù)據(jù)下,生成各自的獎勵函數(shù),再執(zhí)行強(qiáng)化學(xué)習(xí)訓(xùn)練后,完成同一任務(wù)的累計獎勵。二者的任務(wù)累計獎勵隨迭代次數(shù)變化的對比圖如圖11 所示。 圖11 HR-GAIL與GAIL+SAC任務(wù)累計獎勵對比圖 由圖11 可以看出,HR-GAIL在50步左右就達(dá)到了最優(yōu)狀態(tài),即任務(wù)累計獎勵為-300,而原方法在160步左右才達(dá)到最優(yōu),體現(xiàn)了本算法在高效訓(xùn)練機(jī)械臂方面的優(yōu)越性。 令機(jī)械臂執(zhí)行抓取并移動物塊的任務(wù),設(shè)置5組實驗,每組實驗限時6 h,對比不同方法的抓取成功率、碰撞情況和完成時間,結(jié)果如表3 所示。 表3 不同方法的仿真效果 由表3 可知,采用HR-GAIL方法的完成時間比GAIL+SAC方法縮短16%,抓取成功率提高5%。碰撞方面,其他方法沒有從示教數(shù)據(jù)中學(xué)到經(jīng)驗,無法有效指導(dǎo)高自由度機(jī)械臂的動作決策,在實驗過程中一直發(fā)生碰撞。 本文以GAIL、DeepMimic和SAC為模板進(jìn)行推論,構(gòu)建了基于獎勵與策略雙優(yōu)化的機(jī)械臂控制算法HR-GAIL,用于解決強(qiáng)化學(xué)習(xí)在訓(xùn)練機(jī)械臂過程中周期長的問題。該方法變換鑒別器形式,并融合復(fù)合獎勵函數(shù),在策略網(wǎng)絡(luò)πθ和鑒別器網(wǎng)絡(luò)fη交替優(yōu)化的過程中實現(xiàn)對機(jī)械臂控制器的更新優(yōu)化。相比GAIL+SAC方法,本文算法在50步左右就達(dá)到了最優(yōu)狀態(tài)。復(fù)合獎勵函數(shù)的構(gòu)建能夠更好地訓(xùn)練策略網(wǎng)絡(luò),使得控制器的收斂速度更快。但是,本文僅在仿真環(huán)境探究了機(jī)械臂控制算法的有效性,還存在一定的局限性,未來需要在實際工程任務(wù)中進(jìn)行驗證。3 實 驗
3.1 仿真環(huán)境配置
3.2 抓取效果仿真
3.3 對比實驗
4 結(jié) 論