何聯(lián)格,李天華,聶遠航,妥吉英,3
(1.重慶理工大學 汽車零部件先進制造技術教育部重點實驗室, 重慶 400054;2.北京信息科技大學 現(xiàn)代測控技術教育部重點實驗室, 北京 100192;3.重慶青山工業(yè)有限責任公司, 重慶 402761)
隨著智能制造、5G、物聯(lián)網等行業(yè)的飛速發(fā)展,機器人行業(yè)也日新月異,在機器人給人類帶來便利的同時,人類對機器人的期望也越來越高。機器人從初始階段只能從事重復、簡單的工作,解放生產力,到越來越高的智能化,甚至像人類一樣掌握各種操作技巧,從而代替人執(zhí)行某些枯燥而又繁雜的工作[1],例如工業(yè)裝載與分配[2]、空間搜索與救災排險[3]以及資源探索與開發(fā)[4]等。機械臂作為機器人的一個重要分支,其動力學特征具有很強的耦合性和時變性,同時它的控制系統(tǒng)是一個典型的多輸入、多輸出非線性系統(tǒng),因此機械臂控制算法一直是近年研究的焦點。
傳統(tǒng)控制方法包括柵格法、A*、D*、人工勢場法,控制策略以模型為基礎,強烈依賴環(huán)境模型和機械臂模型,致使機械臂處于較為復雜多變的場景中,運動精準度、控制魯棒性和可執(zhí)行性大大降低?;陔S機采樣的運動規(guī)劃算法如PRM(probabilistic road maps)[5]算法和RRT(randomly exploring randomized trees)[6]算法,在控制上具有完備性但不具有最優(yōu)性,而完備性的前提是在進行采樣時采樣點的數目是趨近于無窮大的,往往需要反復的實驗。
將強化學習等先進算法用于機械臂控制可以有效改善傳統(tǒng)算法在控制上的不足。Finn等[7]利用深度卷積神經網絡作為機械臂控制策略,在引導式策略搜索的基礎上使得機械臂能夠執(zhí)行某些簡單的動作。Leitner等[8]以DQN(deep Q-network)算法為基礎,結合視覺感知,實現(xiàn)了3自由度機械臂路徑規(guī)劃控制。Pastor等[9]使用了卷積神經網絡算法(convolutional neural network,CNN)來預測機械臂的后續(xù)動作,并采用手眼協(xié)調的方式來指導機械臂執(zhí)行抓取任務。Finn等[10]基于深度強化學習和逆最優(yōu)控制的方法對機械臂進行現(xiàn)實場景中的運動控制。
盡管強化學習算法更適用于機械臂運動控制,但是在實際控制過程中還存在許多問題。TRPO(trust region policy optimization)算法、PPO(proximal policy optimization)算法和A3C(asynchronous advantage actor-Critic)算法在執(zhí)行的每一步都需要采集新的樣本[11],因此所需的步驟數和樣本量會隨著任務復雜度的增加而增加,即便是比較簡單的工作也會有上百萬個數據收集的步驟,高維度復雜的工作則要培訓幾十甚至上千小時才會收斂且代價昂貴。Q-learnings雖然增加了樣本效率并且重用以前的經驗比較方便,但是它的離散狀態(tài)空間處理連續(xù)控制問題可能帶來維數災難。采用連續(xù)狀態(tài)離散化方法對機械臂進行控制時,其穩(wěn)定性與收斂性通常不能得到保證。
David Silver等[12]提出了一個適用于連續(xù)動作的強化學習的確定性策略梯度算法,并證明了在高維行動空間中,確定性的策略梯度算法可以顯著地超過隨機性的對應算法。Gu等[13]結合深度Q-learning的思想以及確定性的策略梯度,提出了一種可以在連續(xù)動作空間上運行的深度確定策略梯度算法(DDPG)的控制算法。針對常見多軸機械臂控制算法在復雜多變的環(huán)境中精度低、穩(wěn)定性不足的問題,提出了一種基于DDPG算法的機械臂控制方法,并且在MuJoCo平臺上搭建了6軸機械臂的仿真環(huán)境,同時在環(huán)境中和SAC算法[14]、TD3算法[15]進行多組機械臂仿真控制對比實驗。
DDPG算法是一種基于Actor-Critic框架,學習連續(xù)動作的無模型策略的算法,它結合了確定性行為策略和深度Q網絡的思想。該算法采用卷積神經網絡作為策略函數和Q函數的模擬,并利用DQN中的經驗重放和延遲更新的目標網絡。
對隨機策略,同一策略、同一狀態(tài)下采取的行動都以一種概率分布為依據,具有不確定性。某些動作集合可以是連續(xù)值或很高維離散值,這使得動作在空間上具有很大維度。若采用隨機策略如DQN算法研究其所有可能運動的概率和計算每個可能運動的值,則所需樣本量很大,耗費大量算力。隨機策略就是用概率分布函數πθ表示每一步最優(yōu)策略,每一步按概率分布取樣得到當前最佳動作值。隨機策略公式如下:
πθ(a|s)=P[a|s;θ]
(1)
確定性策略比較簡單,盡管在相同的狀態(tài)下所使用的運動概率不一樣,但最大概率只有一種,若只采取最大概率動作,并將這種概率分布剔除,那就要容易得多。對于確定性策略,同一策略、同一狀態(tài)下的行動是唯一確定的,也就是策略為:
πθ(s)=a
(2)
DDPG算法由2個可調整的神經網絡組成,分別為Actor和Critic。Actor網絡的主要作用是在持續(xù)不斷的動作空間中探索并制定后續(xù)動作策略。它根據當前狀態(tài)輸出一個動作值,并通過一定的確定性規(guī)則(如soft-max函數)將動作值映射到動作空間中,以決定智能體的行為。Critic網絡的主要作用是評估Actor策略在當前狀態(tài)下的優(yōu)劣。它通過輸入當前狀態(tài)和動作,并輸出一個價值,來衡量Actor策略在當前狀態(tài)下的效果。
Actor和Critic網絡均包含估計網絡和目標網絡。Actor估計網絡和目標網絡的參數分別記為θQ、θQ′;Critic估計網絡和目標網絡的參數分別記為θμ、θμ′。Actor估計網絡參數由自身目標網絡的指引實時更新,Critic估計網絡參數則根據Actor估計網絡提供的策略實時更新;Actor目標網絡的參數采用自身估計網絡參數滑動更新的方式來延遲更新,Critic目標網絡通過輸入當前狀態(tài)和動作,并輸出一個預測的價值,然后與真實的價值進行比較,并利用均方誤差L來更新參數。
(3)
式中:yi為Critic目標網絡Q的更好估計;ri為i時刻及時獎勵;γ為折扣因子;Q′(si+1,μ′(si+1|θμ′)|θQ′)表示在確定性梯度策略μ′(si+1|θμ′),i+1時刻環(huán)境狀態(tài)si+1的目標網絡Q值;L為損失函數;N為經驗池采集的樣本;Q(si,ai|θQ)表示在i時刻輸入當前狀態(tài)s1和當前動作ai所獲得的目標網絡Q值。
該方法采用雙網絡機制,即使用估計網絡和目標網絡共同更新參數,來截斷數據相關性并提高算法的收斂性。yi與監(jiān)督學習的標簽類似,它為Critic估計網絡的參數更新提供了方向,使得參數更新更加平穩(wěn)。Actor策略網絡根據策略梯度對網絡參數進行更新:
式中:▽θμμ(s|θμ)為性能指標J(θμ)對Actor估計網絡參數θμ的梯度。策略梯度驅動Actor策略網絡不斷調整其參數朝著獲得最大獎勵的方向前進。DDPG算法的結構如圖1所示。
DDPG偽代碼如下:
DDPG算法
隨機初始化Critic網絡Q(s,a|θQ)和Actor網絡μ(s|θμ)的參數,分別為θQ和θμ。
初始化目標網絡Target-Critic,Target-Actor,θQ′←θQ,θμ′←θμ
初始化經驗緩存池(replay buffer),記為R
生成經驗樣本(si,ai,ri,si+1)來填充經驗緩存池R
forepisode=1,Mdo
選擇初始狀態(tài)s1
fort=1,Tdo
ut←μ(s|θμ)

rt,st+1←env.step(at)
將經驗樣本(si,ai,ri,si+1)存入經驗緩存池R
在經驗池R里面采集N個經驗樣本(si,ai,ri,si+1)
yi=ri+γQ′(si+1,μ′(si+1|θμ′)|θQ′)
通過最小化損失函數L來更新Critic網絡參數θQ
根據策略梯度來更新Actor的網絡參數θμ
更新目標網絡:
θμ′←τ|θμ+(1-τ)θμ′
θQ′←τ|θQ+(1-τ)θQ′
endfor
endfor
本文選用MuJoCo(multi-joint dynamics with contact)平臺進行仿真實驗。MuJoCo作為一款以推動機器人、生物力學、圖形、動畫研發(fā)為目標的物理引擎,有著十分完善的集成開發(fā)環(huán)境。用于仿真實驗的6自由度機械臂,其連桿示意圖和坐標系如圖2、圖3所示,機械臂D-H參數見表1。

表1 機械臂D-H參數
在SolidWorks里設計6軸機械臂,然后在仿真平臺MuJoCo搭建機械臂的仿真環(huán)境,如圖3所示。
選取6軸機械臂第1關節(jié)(Joint 1)與第6關節(jié)(Joint 6)之間的每個關節(jié)夾角為控制變量,端部執(zhí)行控制器夾爪位置姿態(tài),實驗過程中固定夾角。DDPG算法的狀態(tài)輸入量是6軸機械臂的6個關節(jié)的角度和目標點坐標,即:
I={θ1,θ2,θ3,θ4,θ5,px,py,pz}
(5)
選擇機械臂各關節(jié)角度改變量為DDPG算法輸出狀態(tài)量,即:
O={o1,o2,o3,o4,o5}
(6)
為避免機械臂動作幅度過大,將輸出的各關節(jié)角度變化范圍設為oi∈[-5,5],機械臂運動過程中各關節(jié)輸出量θ=θi+oi(i=1,2,3,4,5)。
算法的獎勵函數設置為:
R=Rtime+Ravoid+Rclose+Rtouch
(7)
Rtime=2,within the time
(8)
Ravoid=-20, touch obstacle
(9)
Rclose=+20, distance≤last_distance
(10)

(11)

機械臂初始位姿為:

(12)
如圖4所示,在MuJoCo仿真環(huán)境中,添加一個綠色的長方體作為障礙物(obstacle),其位置坐標P和尺寸S(單位cm)為:

圖4 機械臂抓取仿真環(huán)境圖

(13)
6軸機械臂的智能體在算法中的獎勵函數主要由時間、避障、接近和觸碰4個部分組成。Rtime表示智能體的時間激勵,目的是督促智能體在規(guī)定的時間內將機械臂末端移動到目標的位置上;Ravoid表示當機械臂末端與障礙物發(fā)生碰撞時會產生-20的獎勵值;Rclose表示機械臂末端執(zhí)行器靠近目標點位的激勵,當機械臂智能體末端執(zhí)行器與目標物塊的當前距離(distance)小于前一次記錄的距離(last_distance),則會獲得+20的獎勵;Rtouch表示當機械臂末端執(zhí)行器順利抓取目標或達到目標點位后智能體獲得獎勵+40。DDPG算法參數設定如表2所示。

表2 DDPG算法參數
為了驗證DDPG算法在6軸機械臂上良好的控制效果,從累計獎勵值的收斂性、值損失兩方面和SAC算法、TD3算法在上述仿真環(huán)境中進行對比訓練。
SAC算法在Actor-Critic算法框架下,以最大化熵理論為基礎進行無模型深度學習[16]。與確定性策略算法不同,SAC算法的主要特點是策略隨機化,訓練后盡量使收益與策略隨機性達到最大均衡。策略隨機性的加入將使得智能體趨向于探索更多的場景,這樣既能加速后續(xù)學習速度又能避免過早收斂于某一局部最優(yōu)值。
TD3算法也是一種Actor-Critic 框架下的確定性深度強化學習算法,它結合了深度確定性策略梯度算法和雙重Q網絡。與DDPG算法相比,TD3算法有3個改進。① 雙重網絡:利用2個Critic網絡來估計動作價值函數,訓練時選取二者中較小者為估計值,從而抑制網絡過估計的問題[14];② 目標策略平滑正則化:計算目標值時,在下一個狀態(tài)的動作上加入擾動,從而使得價值評估更準確;③ 延遲更新:Critic網絡更新頻率比Actor網絡更新頻率高,從而使得Actor網絡訓練更平穩(wěn)。
為保證實驗結果可靠,SAC算法、TD3算法的參數設置同DDPG算法基本一致,設置見表3。
將3種算法放在MuJoCo仿真環(huán)境中進行同步訓練,比較相同回合數下各算法的平均累計獎勵和值損失,訓練結果如圖5、圖6所示。

圖5 累計獎勵值

圖6 值損失
累計獎勵是指機械臂智能體在仿真環(huán)境下實現(xiàn)抓取目標的平均累計獎勵值,圖5中橫坐標 Total Env Interacts代表訓練步數,縱坐標Average Ep Ret 代表平均累計獎勵。從圖5可以看出,SAC算法起始訓練的平均累計獎勵值在-16 800左右,TD3算法起始訓練的平均累計獎勵值在-12 000左右,DDPG算法起始訓練的平均累計獎勵值在-11 000左右。隨著訓練步數的增加,3種算法的曲線也開始同步激增,并且在步數為250 000左右時區(qū)域相對穩(wěn)定,達到收斂狀態(tài),收斂的平均累計獎勵值在-1 900左右。3種算法在該仿真環(huán)境下的收斂速度相差無幾,從起始的平均累計獎勵來看,SAC算法遠低于DDPG算法和TD3算法。圖6中橫坐標Total Env Interacts代表訓練步數,縱坐標Loss Pi代表值損失。從圖6可以看出,3種算法的起始值損失在50左右。隨著訓練步數的增加,DDPG算法在步數為6 000左右達到峰值170,隨后慢慢下降,最后穩(wěn)定在50左右;SAC算法在步數為12 000左右達到峰值370,隨后慢慢下降,最后穩(wěn)定在90左右;TD3算法在步數為13 000左右達到峰值290,隨后緩緩下降,最后穩(wěn)定在100左右。不難看出,DDPG算法的值損失曲線總體趨勢均快于SAC算法和TD3算法,值損失終值低于SAC算法和TD3算法。值損失越小,表明實際獲得的平均獎勵與理論獎勵的差距越小[17]。
提出一種基于DDPG算法的機械臂控制方法,以改善當前常用多軸機械臂控制算法的不足。通過MuJoCo平臺進行仿真實驗,結果表明該算法能有效提升機械臂控制的精確性和穩(wěn)定性。DDPG算法、SAC算法和TD3算法都能進行高效、穩(wěn)定的機械臂抓取控制實驗。從比較分析結果來看,DDPG算法在穩(wěn)定性方面略有優(yōu)勢。在仿真環(huán)境中,DDPG算法和TD3算法的起始和收斂的平均累計獎勵值差距不大。在值損失方面,DDPG算法優(yōu)于TD3算法,因此在該仿真環(huán)境中,DDPG算法的機械臂控制效果更好。盡管MuJoCo仿真環(huán)境較為逼真,但與實際環(huán)境仍有差異。在機械臂控制仿真實驗中,DDPG、SAC和TD3算法表現(xiàn)良好,但并不意味著在實際環(huán)境中這3種算法仍具有很高的穩(wěn)定性和精準度。未來將在實際環(huán)境中對這3種算法進行機械臂控制對比實驗,并對其中的一些算法進行改進,以提高機械臂的抓取能力。