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