宋紫陽(yáng),李軍懷,2,王懷軍,2*,蘇 鑫,于 蕾,2
(1.西安理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,西安 710048;2.陜西省網(wǎng)絡(luò)計(jì)算與安全技術(shù)重點(diǎn)實(shí)驗(yàn)室,西安 710048)
工業(yè)機(jī)器人的規(guī)?;瘧?yīng)用提高了工業(yè)和制造業(yè)等行業(yè)的生產(chǎn)效率。機(jī)械臂是機(jī)器人的主要形式之一,通過運(yùn)動(dòng)副的轉(zhuǎn)動(dòng)或移動(dòng)使機(jī)械臂末端運(yùn)動(dòng)到合適的位置和姿態(tài),完成不同的工作任務(wù)。機(jī)械臂具有較高的自由度,能部署在不同場(chǎng)景下,快速執(zhí)行作業(yè)任務(wù)。機(jī)器學(xué)習(xí)(Machine Learning)技術(shù)可以提高機(jī)器人的智能化水平,讓機(jī)器人擁有自主決策與學(xué)習(xí)能力,在機(jī)器人軌跡路徑規(guī)劃[1-2]、環(huán)境感知[3-4]和智能決策與控制[5-6]等方向都有應(yīng)用。強(qiáng)化學(xué)習(xí)克服了傳統(tǒng)機(jī)械臂控制方法對(duì)環(huán)境狀態(tài)變化適應(yīng)能力差的缺點(diǎn),成為機(jī)械臂智能化研究的重要方向[7-8]。
目前,基于強(qiáng)化學(xué)習(xí)的機(jī)械臂路徑規(guī)劃面臨兩個(gè)問題:1)機(jī)械臂的動(dòng)作維度高、環(huán)境狀態(tài)復(fù)雜,強(qiáng)化學(xué)習(xí)面對(duì)海量的狀態(tài)數(shù)量和動(dòng)作數(shù)量較難進(jìn)行價(jià)值評(píng)估;2)獎(jiǎng)勵(lì)稀疏的問題,即當(dāng)機(jī)械臂到達(dá)指定位置時(shí)才能得到獎(jiǎng)勵(lì),導(dǎo)致訓(xùn)練時(shí)間長(zhǎng),效果較差。
在基于強(qiáng)化學(xué)習(xí)的機(jī)械臂路徑或軌跡規(guī)劃等方面,國(guó)內(nèi)外學(xué)者已經(jīng)有了一定的研究成果。
基于深度強(qiáng)化學(xué)習(xí)(Deep Reinforcement Learning,DRL)的機(jī)械臂路徑規(guī)劃。DRL 使用深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)近似價(jià)值函數(shù)或策略函數(shù),較好地解決了環(huán)境狀態(tài)與動(dòng)作維度高、數(shù)量龐大,數(shù)據(jù)特征難以在有限的計(jì)算機(jī)內(nèi)存中存儲(chǔ)、計(jì)算和表達(dá)等問題。谷歌公司的DeepMind 團(tuán)隊(duì)[9]改進(jìn)了DQN(Deep Q-Network)方法,提出了具有競(jìng)爭(zhēng)網(wǎng)絡(luò)結(jié)構(gòu)的DQN 方法(Dueling DQN),提高了DNN對(duì)價(jià)值函數(shù)擬合的準(zhǔn)確性,但在面對(duì)連續(xù)控制問題時(shí)無法得到最優(yōu)控制策略。Gu 等[10]提出歸一化優(yōu)勢(shì)函數(shù)(Normalized Advantage Functions,NAF)方法,在DQN 的基礎(chǔ)上拓展了對(duì)連續(xù)控制問題的支持。Prianto 等[11]為了解決高維路徑規(guī)劃問題,提出了基于SAC(Soft Actor-Critic)的路徑規(guī)劃算法,為了有效處理構(gòu)型空間中的多臂問題,擴(kuò)充了各臂的構(gòu)型空間,采用后見經(jīng)驗(yàn)重放(Hindsight Experience Replay,HER)方法提高樣本效率,可以實(shí)時(shí)、快速地生成任意起始點(diǎn)和目標(biāo)點(diǎn)的最短路徑。本文在文獻(xiàn)[11]的基礎(chǔ)上,設(shè)計(jì)特殊的獎(jiǎng)勵(lì)函數(shù)指導(dǎo)智能體學(xué)習(xí)如何選擇最優(yōu)行為,進(jìn)一步擴(kuò)展SAC強(qiáng)化學(xué)習(xí)的Critic 部分,采用兩個(gè)Q 網(wǎng)絡(luò)和兩個(gè)目標(biāo)Q 網(wǎng)絡(luò)對(duì)機(jī)械臂的路徑規(guī)劃設(shè)計(jì)進(jìn)行優(yōu)化,以達(dá)到更快速?gòu)?qiáng)化學(xué)習(xí)的目的。張永梅等[12]基于DRL 算法對(duì)連續(xù)型動(dòng)作輸出的端到端機(jī)器人路徑規(guī)劃進(jìn)行研究,提出了內(nèi)在好奇心驅(qū)動(dòng)的深度確定性策略梯度算法,實(shí)現(xiàn)了端到端的機(jī)器人路徑規(guī)劃,有利于解決訓(xùn)練前期獎(jiǎng)勵(lì)難獲取問題。
自從模仿學(xué)習(xí)被提出,它已被應(yīng)用于機(jī)械臂路徑規(guī)劃。模仿學(xué)習(xí)被用于結(jié)合深度學(xué)習(xí)訓(xùn)練機(jī)械臂路徑控制模型,或與強(qiáng)化學(xué)習(xí)結(jié)合訓(xùn)練得到路徑規(guī)劃的最優(yōu)策略。于建均等[13]通過拖動(dòng)機(jī)械臂的方式得到示教路徑,基于模仿學(xué)習(xí)和DNN 實(shí)現(xiàn)機(jī)械臂對(duì)示教路徑的快速學(xué)習(xí),解決了機(jī)械臂動(dòng)作規(guī)劃編程復(fù)雜的問題。Rahmatizadeh 等[14]結(jié)合了長(zhǎng)短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)和混合密度網(wǎng)絡(luò)(Mixture Density Network,MDN)作為機(jī)械臂的控制器,基于深度相機(jī)Kinect 獲取示教路徑,通過模仿學(xué)習(xí)使機(jī)械臂合理規(guī)劃路徑完成物品的拾取和放置。加州大學(xué)Finn 等[15]使用逆最優(yōu)控制(Inverse Optimal Control,IOC)訓(xùn)練機(jī)械臂路徑規(guī)劃,通過優(yōu)化獎(jiǎng)勵(lì)函數(shù)引導(dǎo)價(jià)值對(duì)示教路徑進(jìn)行模仿學(xué)習(xí),使機(jī)械臂學(xué)會(huì)了合理規(guī)劃路徑擺放盤子。使用示教路徑優(yōu)化獎(jiǎng)勵(lì)函數(shù)可以對(duì)智能體在訓(xùn)練過程中策略輸出的動(dòng)作作出更好的評(píng)價(jià)。湯自林等[16]基于模仿學(xué)習(xí)提出了變剛度協(xié)作搬運(yùn)控制策略,使用任務(wù)參數(shù)化的高斯混合模型(Task Parameterized Gaussian Mixture Model,TP-GMM)對(duì)示教路徑編碼,學(xué)習(xí)不同搬運(yùn)工況下的搬運(yùn)軌跡概率模型,提高了特定搬運(yùn)任務(wù)的終點(diǎn)位置精度。
合理的機(jī)械臂運(yùn)動(dòng)路徑是機(jī)械臂系統(tǒng)實(shí)現(xiàn)運(yùn)動(dòng)控制功能和完成任務(wù)的基礎(chǔ),本文提出一種基于路徑模仿和SAC 強(qiáng)化學(xué)習(xí)的機(jī)械臂路徑規(guī)劃算法。通過將機(jī)械臂末端的示教路徑和實(shí)際路徑融入獎(jiǎng)勵(lì)函數(shù),使機(jī)械臂在強(qiáng)化學(xué)習(xí)過程中模仿示教路徑糾正實(shí)際路徑,提高學(xué)習(xí)效率,選擇SAC 算法作為強(qiáng)化學(xué)習(xí)方法使訓(xùn)練收斂更快且更穩(wěn)定。
針對(duì)強(qiáng)化學(xué)習(xí)在機(jī)械臂路徑規(guī)劃中獎(jiǎng)勵(lì)稀疏難以收斂的問題,引入對(duì)參考路徑的模仿學(xué)習(xí),根據(jù)機(jī)械臂運(yùn)行的實(shí)際路徑與參考路徑的差異設(shè)計(jì)適當(dāng)?shù)莫?jiǎng)勵(lì)方式,實(shí)現(xiàn)快速?gòu)?qiáng)化學(xué)習(xí)的目的?;谀7聦W(xué)習(xí)的機(jī)械臂運(yùn)動(dòng)控制方法可分為示教路徑的獲取和示教路徑的學(xué)習(xí)兩個(gè)階段。將手拖動(dòng)機(jī)械臂所檢測(cè)到的手部路徑作為示教路徑,在人拖動(dòng)機(jī)械臂的過程中,機(jī)械臂通過編碼器獲取關(guān)節(jié)角度后通過正運(yùn)動(dòng)學(xué)方法解出機(jī)械臂的末端路徑,將末端路徑作為示教對(duì)象。基于SAC 強(qiáng)化學(xué)習(xí)的機(jī)械臂路徑規(guī)劃算法原理如圖1 所示。
圖1 機(jī)械臂路徑規(guī)劃算法原理Fig.1 Principle of manipulator path planning algorithm
SAC 算法基于Actor-Critic 框架,使用了5 個(gè)DNN 和1 個(gè)經(jīng)驗(yàn)回放池完成強(qiáng)化學(xué)習(xí)任務(wù)。5 個(gè)DNN 分為兩組:一組包含一個(gè)策略網(wǎng)絡(luò),是SAC 強(qiáng)化學(xué)習(xí)算法的Actor 部分;另一組包含兩個(gè)Q 網(wǎng)絡(luò)和兩個(gè)目標(biāo)Q 網(wǎng)絡(luò),是SAC 強(qiáng)化學(xué)習(xí)的Critic 部分。獎(jiǎng)勵(lì)函數(shù)根據(jù)實(shí)際路徑和參考路徑的距離來計(jì)算獎(jiǎng)勵(lì)或者懲罰。SAC 算法將機(jī)械臂狀態(tài)和獎(jiǎng)勵(lì)函數(shù)的輸出作為輸入,向機(jī)械臂反饋下一步的動(dòng)作。
機(jī)械臂SmallRobotArm 選擇六自由度,機(jī)械臂末端連接一個(gè)電磁鐵。設(shè)定機(jī)械臂路徑規(guī)劃任務(wù)為拾取硬幣并將硬幣置入杯中。獎(jiǎng)勵(lì)函數(shù)根據(jù)機(jī)械臂的當(dāng)前狀態(tài)st和下一步要執(zhí)行的動(dòng)作at計(jì)算機(jī)械臂的任務(wù)完成度,根據(jù)任務(wù)完成度和機(jī)械臂末端與參考路徑的距離計(jì)算獎(jiǎng)勵(lì)或者懲罰,誘導(dǎo)機(jī)械臂學(xué)習(xí)參考路徑。
1)機(jī)械臂狀態(tài)模型。
在機(jī)械臂路徑規(guī)劃任務(wù)背景下定義環(huán)境狀態(tài),t時(shí)刻的狀態(tài)st∈S是一個(gè)四元組:st=(post,quatt,c,w),其中post表示t時(shí)刻時(shí)機(jī)械臂末端 在空間中的位 置:post=(xt,ypt,zpt),quatt表示機(jī)械臂末端效應(yīng)器在空間中的姿態(tài)角:quatt=(wqt,xqt,yqt,zqt),c表示硬幣在空間中的位置,w表示水杯在空間中的位置。
2)機(jī)械臂動(dòng)作模型。
機(jī)械臂的動(dòng)作at∈A由 3 個(gè)部分構(gòu)成 :at=(ΔPt,ΔOt,gt),ΔPt和ΔOt的表達(dá)式分別為ΔPt=(Δxpt,Δypt,Δzpt),ΔOt=(Δxot,Δyot,Δzot),其中ΔPt表示機(jī)械臂末端在t時(shí)刻移動(dòng)位移的向量,ΔOt表示機(jī)械臂末端在t時(shí)刻的轉(zhuǎn)動(dòng)姿態(tài)角,gt表示機(jī)械臂末端的電磁鐵在t時(shí)刻是否接通了電源。
3)獎(jiǎng)勵(lì)函數(shù)模型。
獎(jiǎng)勵(lì)函數(shù)反映了在狀態(tài)st下進(jìn)行動(dòng)作at的獎(jiǎng)勵(lì)的預(yù)期,可表示為:
由于系統(tǒng)狀態(tài)空間大,很難為所有狀態(tài)設(shè)置獎(jiǎng)勵(lì),獎(jiǎng)勵(lì)稀疏的問題導(dǎo)致學(xué)習(xí)緩慢甚至無法學(xué)習(xí)。為了使機(jī)械臂能快速學(xué)習(xí)針對(duì)任務(wù)的最優(yōu)路徑,通過特殊設(shè)計(jì)的獎(jiǎng)勵(lì)函數(shù)使機(jī)械臂對(duì)參考路徑模仿學(xué)習(xí),提高機(jī)械臂路徑規(guī)劃的學(xué)習(xí)速度和任務(wù)執(zhí)行成功率。
將用手拖動(dòng)機(jī)械臂獲得的末端路徑作為機(jī)械臂學(xué)習(xí)的參考路徑,參考路徑如圖1 所示。
定義機(jī)械臂在t時(shí)刻的任務(wù)完成度為pt:
根據(jù)任務(wù)要求,獎(jiǎng)勵(lì)或懲罰可分成3 種情況:
①若機(jī)械臂完成將硬幣置入水杯中的任務(wù)可得到最大獎(jiǎng)勵(lì);未完成任務(wù)時(shí)不獎(jiǎng)勵(lì)。
②當(dāng)機(jī)械臂末端沿著參考路徑的方向運(yùn)動(dòng)時(shí)得到獎(jiǎng)勵(lì);當(dāng)機(jī)械臂沿著參考路徑的反方向運(yùn)動(dòng)時(shí)獎(jiǎng)勵(lì)值為負(fù),即受到懲罰。
③機(jī)械臂末端與參考路徑的距離越近受到獎(jiǎng)勵(lì)越大;距離過遠(yuǎn)則會(huì)受到懲罰,距離越遠(yuǎn)懲罰越大。
根據(jù)上述分析,執(zhí)行動(dòng)作at后的獎(jiǎng)勵(lì)為:
其中:Δd表示機(jī)械臂末端位置與參考路徑之間的距離;β為控制機(jī)械臂末端偏離參考路徑時(shí)受到獎(jiǎng)勵(lì)或懲罰的比例系數(shù);η為參考路徑獎(jiǎng)勵(lì)半徑,當(dāng)機(jī)械臂末端在η內(nèi)時(shí)會(huì)得到獎(jiǎng)勵(lì),否則會(huì)受到懲罰。
在強(qiáng)化學(xué)習(xí)中,這種獎(jiǎng)勵(lì)機(jī)制可以誘導(dǎo)機(jī)械臂學(xué)習(xí)參考路徑,使策略更快收斂,提高學(xué)習(xí)效率。
SAC 是一種基于Actor-Critic 無模型強(qiáng)化學(xué)習(xí)框架,它融合了最大熵思想,在獲得高回報(bào)的同時(shí),也具有較強(qiáng)的探索能力和較高的魯棒性[17]。結(jié)合獎(jiǎng)勵(lì)算法和SAC 強(qiáng)化學(xué)習(xí)方法,可以用獎(jiǎng)勵(lì)函數(shù)指導(dǎo)智能體學(xué)習(xí)如何選擇最優(yōu)行為,同時(shí)使用SAC 訓(xùn)練智能體,使它根據(jù)定義的獎(jiǎng)勵(lì)函數(shù)和狀態(tài)選擇合適的動(dòng)作。通過設(shè)計(jì)合適的獎(jiǎng)勵(lì)函數(shù),智能體可以學(xué)習(xí)如何選擇最優(yōu)路徑,使得機(jī)器人準(zhǔn)確到達(dá)目標(biāo)點(diǎn)。
綜上所述,將獎(jiǎng)勵(lì)算法和SAC 強(qiáng)化學(xué)習(xí)算法結(jié)合,可以構(gòu)建一種新的路徑規(guī)劃算法,使得機(jī)器人能夠根據(jù)環(huán)境狀態(tài)動(dòng)態(tài)地選擇最優(yōu)路徑,具有較高的適應(yīng)性和魯棒性。
SAC 強(qiáng)化學(xué)習(xí)算法可以探索更多情況,以提高學(xué)習(xí)速度,且避免陷入局部最優(yōu)解,在獲得的最大回報(bào)和隨機(jī)性探索之間尋找一種平衡,使策略可以兼顧預(yù)期回報(bào)與最大熵。在SAC 中,最優(yōu)策略表示為:
其中:R是獎(jiǎng)勵(lì);H為熵;E 表示求獎(jiǎng)勵(lì)和熵的期望;α是溫度系數(shù),決定了熵值相較于獎(jiǎng)勵(lì)的比重,調(diào)整α可以控制最優(yōu)策略的探索隨機(jī)性。H的計(jì)算式為:
熵值的大小反映了策略π(?|st)的隨機(jī)程度,在熵較大時(shí),機(jī)械臂在價(jià)值相近的動(dòng)作中隨機(jī)選取一個(gè)執(zhí)行。
在SAC 算法中,最大熵是策略的目標(biāo)之一,因此用于表示預(yù)期回報(bào)的V 函數(shù)和Q 函數(shù)中的熵是獎(jiǎng)勵(lì)的一部分,被稱為軟性狀態(tài)價(jià)值函數(shù)(軟性V 函數(shù))和軟性動(dòng)作價(jià)值函數(shù)(軟性Q 函數(shù))[18],分別表示為:
軟性Q 函數(shù)的貝爾曼方程形式表示為:
軟性Q 函數(shù)和軟性V 函數(shù)的更新式為:
通過對(duì)式(9)~(10)不斷迭代,Q 函數(shù)的輸出將逐漸收斂至最優(yōu)Q值。
SAC 算法對(duì)AC 策略的更新方式進(jìn)行了改進(jìn)。在SAC 算法訓(xùn)練的過程中,策略向著軟性Q 函數(shù)的指數(shù)方向更新:
在強(qiáng)化學(xué)習(xí)場(chǎng)景下,軟性Q 函數(shù)若是多峰,則代表問題的解不唯一。面對(duì)有多個(gè)最優(yōu)解或存在次優(yōu)解時(shí),基于能量模型的策略分布使算法可對(duì)所有可行的解進(jìn)行學(xué)習(xí)。當(dāng)環(huán)境發(fā)生變化,之前的最優(yōu)解行不通時(shí),基于能量模型的策略分布可以迅速調(diào)整策略得到新的解。對(duì)于SAC 算法,最優(yōu)策略的形式如下:
本文引入兩個(gè)結(jié)構(gòu)相同的Q 網(wǎng)絡(luò)同時(shí)訓(xùn)練,每次迭代時(shí)選擇較小的Q 值更新策略網(wǎng)絡(luò),防止對(duì)動(dòng)作價(jià)值估計(jì)過高[19]。Target-Q 網(wǎng)絡(luò)在每次迭代中進(jìn)行軟更新,網(wǎng)絡(luò)參數(shù)的變化較為平緩。使用第2 章所述的基于路徑模仿的獎(jiǎng)勵(lì)函數(shù),誘導(dǎo)機(jī)械臂學(xué)習(xí)參考路徑。
本文算法的框架如圖2 所示。策略網(wǎng)絡(luò)將來自環(huán)境的狀態(tài)s作為輸入,有13 個(gè)參數(shù),輸出動(dòng)作a,共8 個(gè)參數(shù),隱藏層是5 個(gè)全連接層,每層512 個(gè)神經(jīng)元,使用Leaky ReLU[20]和Tanh 分別作為隱藏層和輸出層的激活函數(shù)。
圖2 本文算法的框架Fig.2 Framework of proposed algorithm
設(shè)策略網(wǎng)絡(luò)參數(shù)為φ,損失函數(shù)為:
其中:D表示經(jīng)驗(yàn)回放池,獎(jiǎng)勵(lì)函數(shù)根據(jù)任務(wù)完成度和機(jī)械臂末端與參考路徑的距離計(jì)算出獎(jiǎng)勵(lì),并且存到經(jīng)驗(yàn)回放池,經(jīng)驗(yàn)回放池將狀態(tài)、轉(zhuǎn)換后的狀態(tài)、動(dòng)作和獎(jiǎng)勵(lì)(st,at,st+1,Rt+1)作為Q 網(wǎng)絡(luò)訓(xùn)練的數(shù)據(jù)來源。α為溫度參數(shù),隨著狀態(tài)的變化而自動(dòng)調(diào)節(jié),面對(duì)探索過的環(huán)境狀態(tài),應(yīng)當(dāng)減小溫度參數(shù)令熵減小,而面對(duì)未知狀態(tài)應(yīng)當(dāng)增大溫度參數(shù),增強(qiáng)策略探索的隨機(jī)性。溫度參數(shù)α自動(dòng)調(diào)節(jié)過程可表示為:
4 個(gè)Q 網(wǎng)絡(luò)結(jié)構(gòu)完全相同,它們的輸入為狀態(tài)s和策略網(wǎng)絡(luò)輸出的動(dòng)作a,共21 個(gè)參數(shù),輸出單個(gè)參數(shù)即Q 值,隱藏層為3 個(gè)全連接層,每層512 個(gè)神經(jīng)元,使用Leaky ReLU 作為激活函數(shù)。設(shè)Q 網(wǎng)絡(luò)的參數(shù)為θ,損失函數(shù):
其中:τ值大于0 但遠(yuǎn)小于1。
SAC 算法的偽代碼如算法1 所示。
算法1 SAC 算法。
本章通過實(shí)驗(yàn)展示本文算法的實(shí)際效果,驗(yàn)證該算法在解決實(shí)際任務(wù)問題中的可行性,通過對(duì)比實(shí)驗(yàn)驗(yàn)證該算法相較于深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)強(qiáng)化學(xué)習(xí)算法[21]訓(xùn)練速度更快且成功率更高。
強(qiáng)化學(xué)習(xí)環(huán)境基于Unity ML-Agents 工具包搭建,使用Python 實(shí)現(xiàn)強(qiáng)化學(xué)習(xí)算法,使用TensorFlow 構(gòu)建深度網(wǎng)絡(luò)。
實(shí)驗(yàn)場(chǎng)景如圖3 所示,機(jī)械臂放置在桌面上,機(jī)械臂前方擺放一個(gè)硬幣和一個(gè)杯子,首先機(jī)械臂末端移動(dòng)到硬幣上方,通過電磁鐵將硬幣拾起,再將硬幣置入杯子中。
圖3 機(jī)械臂路徑規(guī)劃訓(xùn)練場(chǎng)景Fig.3 Training scene of manipulator path planning
為驗(yàn)證本文算法的訓(xùn)練速度和效果,另外設(shè)置一組路徑模仿算法作為對(duì)比。將通過用手拖動(dòng)機(jī)械臂得到的路徑作為參考路徑。兩種算法如下:
本文算法基于路徑模仿和SAC 算法。獎(jiǎng)勵(lì)函數(shù)如第2章所述,智能體所受到的獎(jiǎng)勵(lì)和懲罰與是否完成任務(wù)以及對(duì)參考路徑的學(xué)習(xí)程度有關(guān),SAC 強(qiáng)化學(xué)習(xí)算法能較好地對(duì)環(huán)境進(jìn)行探索,提高學(xué)習(xí)速度。
基于路徑模仿和DDPG 算法。DDPG 算法與SAC 算法同屬于Actor-Critic 框架,不同的是DDPG 算法是直接選取概率最大的動(dòng)作去執(zhí)行。DDPG 算法包含4 個(gè)神經(jīng)網(wǎng)絡(luò):策略網(wǎng)絡(luò)、目標(biāo)策略網(wǎng)絡(luò)、Q 網(wǎng)絡(luò)和目標(biāo)Q 網(wǎng)絡(luò),這些網(wǎng)絡(luò)的結(jié)構(gòu)與SAC 算法中對(duì)應(yīng)網(wǎng)絡(luò)結(jié)構(gòu)一致。
對(duì)上述兩種算法各訓(xùn)練1 000 回合,每個(gè)訓(xùn)練回合機(jī)械臂最多執(zhí)行100 次動(dòng)作,若達(dá)到100 次動(dòng)作后仍無法完成任務(wù)則恢復(fù)初始狀態(tài),開始下一輪訓(xùn)練。統(tǒng)計(jì)兩種算法在每個(gè)訓(xùn)練回合的累積獎(jiǎng)勵(lì),繪制相應(yīng)的曲線如圖4 所示。
圖4 兩種算法的獎(jiǎng)勵(lì)變化曲線Fig.4 Reward change curves for two algorithms
從圖4 可以看出,兩種算法在開始訓(xùn)練時(shí)機(jī)械臂得到的獎(jiǎng)勵(lì)都比較低,為-30 左右。隨著訓(xùn)練次數(shù)的增加,基于路徑模仿和SAC 算法的獎(jiǎng)勵(lì)在不斷上升,400 回合之后獎(jiǎng)勵(lì)值穩(wěn)定在15 左右?;诼窂侥7潞虳DPG 算法的獎(jiǎng)勵(lì)增長(zhǎng)曲線滯后于本文算法,在訓(xùn)練到200 回合之后開始增長(zhǎng),在600回合左右時(shí)獎(jiǎng)勵(lì)值穩(wěn)定在12 左右。
每訓(xùn)練40 回合統(tǒng)計(jì)一次任務(wù)成功率,兩種算法訓(xùn)練1 000 回合的任務(wù)成功率曲線如圖5 所示。
圖5 兩種算法的成功率變化曲線Fig.5 Change curves of success rate for two algorithms
從圖5 可以看出,成功率曲線與獎(jiǎng)勵(lì)曲線的趨勢(shì)基本一致,兩種算法在訓(xùn)練剛開始時(shí)成功率都很低,隨著訓(xùn)練回合增多,成功率逐漸增高,基于路徑模仿和SAC 算法在第400回合左右成功率穩(wěn)定在88%左右,而基于路徑模仿和DDPG算法在600 回合左右時(shí)成功率穩(wěn)定在88%左右。
機(jī)械臂基于兩種算法分別規(guī)劃10 條路徑,統(tǒng)計(jì)兩種算法所規(guī)劃路徑的平均長(zhǎng)度以及與參考路徑的距離差,統(tǒng)計(jì)結(jié)果如表1 所示。
表1 10條路徑的路徑規(guī)劃實(shí)驗(yàn)結(jié)果 單位:cmTab.1 Experimental results of path planning for ten paths unit:cm
機(jī)械臂基于路徑模仿和SAC 算法和基于路徑模仿和DDPG 算法規(guī)劃的路徑與參考路徑的對(duì)比如圖6、7 所示。
圖6 參考路徑及基于路徑模仿和SAC算法規(guī)劃的路徑對(duì)比Fig.6 Comparison between reference path and path based on path imitation and SAC algorithm
圖7 參考路徑和基于路徑模仿和DDPG算法規(guī)劃的路徑對(duì)比Fig.7 Comparison between reference path and path based on path imitation and DDPG algorithm
為驗(yàn)證基于路徑模仿和SAC 的算法對(duì)不同路徑的學(xué)習(xí)效果,采集一條不同的機(jī)械臂運(yùn)動(dòng)路徑作為參考路徑令機(jī)械臂學(xué)習(xí),令機(jī)械臂規(guī)劃一條運(yùn)動(dòng)路徑完成實(shí)驗(yàn)任務(wù)?;赟AC 方法的路徑規(guī)劃算法所規(guī)劃的路徑和參考路徑的對(duì)比如圖8 所示,基于SAC 方法的路徑規(guī)劃算法規(guī)劃的路徑長(zhǎng)度為58.4 cm,偏離參考路徑的最大距離為1.8 cm,偏離參考路徑的平均距離為0.9 cm,機(jī)械臂針對(duì)不同的參考路徑都能學(xué)習(xí)并規(guī)劃合理的路徑來完成任務(wù)。
圖8 不同的參考路徑及基于路徑模仿和SAC算法規(guī)劃的路徑對(duì)比Fig.8 Comparison of different reference path and path based on path imitation and SAC algorithm
針對(duì)目前機(jī)械臂強(qiáng)化學(xué)習(xí)存在獎(jiǎng)勵(lì)稀疏導(dǎo)致的收斂速度慢的問題,本文提出一種基于路徑模仿和SAC 強(qiáng)化學(xué)習(xí)的機(jī)械臂路徑規(guī)劃算法。首先對(duì)基于路徑模仿和SAC 強(qiáng)化學(xué)習(xí)的機(jī)械臂路徑規(guī)劃算法的基本原理進(jìn)行描述;其次介紹了基于路徑模仿的獎(jiǎng)勵(lì)函數(shù)設(shè)計(jì)原理;接著對(duì)SAC 強(qiáng)化學(xué)習(xí)算法進(jìn)行了介紹,給出了算法流程;最后進(jìn)行了機(jī)械臂路徑規(guī)劃對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明本文算法能夠有效訓(xùn)練機(jī)械臂完成硬幣投擲入杯的任務(wù),路徑模仿機(jī)制解決了強(qiáng)化學(xué)習(xí)的訓(xùn)練中獎(jiǎng)勵(lì)稀疏難以訓(xùn)練的問題,SAC 算法相較于DDPG 算法探索能力更強(qiáng),所規(guī)劃的路徑更加合理。