?

基于路徑模仿和SAC強化學習的機械臂路徑規劃算法

2024-03-21 02:24宋紫陽李軍懷王懷軍
計算機應用 2024年2期
關鍵詞:機械規劃函數

宋紫陽,李軍懷,2,王懷軍,2*,蘇 鑫,于 蕾,2

(1.西安理工大學 計算機科學與工程學院,西安 710048;2.陜西省網絡計算與安全技術重點實驗室,西安 710048)

0 引言

工業機器人的規?;瘧锰岣吡斯I和制造業等行業的生產效率。機械臂是機器人的主要形式之一,通過運動副的轉動或移動使機械臂末端運動到合適的位置和姿態,完成不同的工作任務。機械臂具有較高的自由度,能部署在不同場景下,快速執行作業任務。機器學習(Machine Learning)技術可以提高機器人的智能化水平,讓機器人擁有自主決策與學習能力,在機器人軌跡路徑規劃[1-2]、環境感知[3-4]和智能決策與控制[5-6]等方向都有應用。強化學習克服了傳統機械臂控制方法對環境狀態變化適應能力差的缺點,成為機械臂智能化研究的重要方向[7-8]。

目前,基于強化學習的機械臂路徑規劃面臨兩個問題:1)機械臂的動作維度高、環境狀態復雜,強化學習面對海量的狀態數量和動作數量較難進行價值評估;2)獎勵稀疏的問題,即當機械臂到達指定位置時才能得到獎勵,導致訓練時間長,效果較差。

在基于強化學習的機械臂路徑或軌跡規劃等方面,國內外學者已經有了一定的研究成果。

基于深度強化學習(Deep Reinforcement Learning,DRL)的機械臂路徑規劃。DRL 使用深度神經網絡(Deep Neural Network,DNN)近似價值函數或策略函數,較好地解決了環境狀態與動作維度高、數量龐大,數據特征難以在有限的計算機內存中存儲、計算和表達等問題。谷歌公司的DeepMind 團隊[9]改進了DQN(Deep Q-Network)方法,提出了具有競爭網絡結構的DQN 方法(Dueling DQN),提高了DNN對價值函數擬合的準確性,但在面對連續控制問題時無法得到最優控制策略。Gu 等[10]提出歸一化優勢函數(Normalized Advantage Functions,NAF)方法,在DQN 的基礎上拓展了對連續控制問題的支持。Prianto 等[11]為了解決高維路徑規劃問題,提出了基于SAC(Soft Actor-Critic)的路徑規劃算法,為了有效處理構型空間中的多臂問題,擴充了各臂的構型空間,采用后見經驗重放(Hindsight Experience Replay,HER)方法提高樣本效率,可以實時、快速地生成任意起始點和目標點的最短路徑。本文在文獻[11]的基礎上,設計特殊的獎勵函數指導智能體學習如何選擇最優行為,進一步擴展SAC強化學習的Critic 部分,采用兩個Q 網絡和兩個目標Q 網絡對機械臂的路徑規劃設計進行優化,以達到更快速強化學習的目的。張永梅等[12]基于DRL 算法對連續型動作輸出的端到端機器人路徑規劃進行研究,提出了內在好奇心驅動的深度確定性策略梯度算法,實現了端到端的機器人路徑規劃,有利于解決訓練前期獎勵難獲取問題。

自從模仿學習被提出,它已被應用于機械臂路徑規劃。模仿學習被用于結合深度學習訓練機械臂路徑控制模型,或與強化學習結合訓練得到路徑規劃的最優策略。于建均等[13]通過拖動機械臂的方式得到示教路徑,基于模仿學習和DNN 實現機械臂對示教路徑的快速學習,解決了機械臂動作規劃編程復雜的問題。Rahmatizadeh 等[14]結合了長短期記憶(Long Short-Term Memory,LSTM)網絡和混合密度網絡(Mixture Density Network,MDN)作為機械臂的控制器,基于深度相機Kinect 獲取示教路徑,通過模仿學習使機械臂合理規劃路徑完成物品的拾取和放置。加州大學Finn 等[15]使用逆最優控制(Inverse Optimal Control,IOC)訓練機械臂路徑規劃,通過優化獎勵函數引導價值對示教路徑進行模仿學習,使機械臂學會了合理規劃路徑擺放盤子。使用示教路徑優化獎勵函數可以對智能體在訓練過程中策略輸出的動作作出更好的評價。湯自林等[16]基于模仿學習提出了變剛度協作搬運控制策略,使用任務參數化的高斯混合模型(Task Parameterized Gaussian Mixture Model,TP-GMM)對示教路徑編碼,學習不同搬運工況下的搬運軌跡概率模型,提高了特定搬運任務的終點位置精度。

合理的機械臂運動路徑是機械臂系統實現運動控制功能和完成任務的基礎,本文提出一種基于路徑模仿和SAC 強化學習的機械臂路徑規劃算法。通過將機械臂末端的示教路徑和實際路徑融入獎勵函數,使機械臂在強化學習過程中模仿示教路徑糾正實際路徑,提高學習效率,選擇SAC 算法作為強化學習方法使訓練收斂更快且更穩定。

1 機械臂路徑規劃基本原理

針對強化學習在機械臂路徑規劃中獎勵稀疏難以收斂的問題,引入對參考路徑的模仿學習,根據機械臂運行的實際路徑與參考路徑的差異設計適當的獎勵方式,實現快速強化學習的目的?;谀7聦W習的機械臂運動控制方法可分為示教路徑的獲取和示教路徑的學習兩個階段。將手拖動機械臂所檢測到的手部路徑作為示教路徑,在人拖動機械臂的過程中,機械臂通過編碼器獲取關節角度后通過正運動學方法解出機械臂的末端路徑,將末端路徑作為示教對象?;赟AC 強化學習的機械臂路徑規劃算法原理如圖1 所示。

圖1 機械臂路徑規劃算法原理Fig.1 Principle of manipulator path planning algorithm

SAC 算法基于Actor-Critic 框架,使用了5 個DNN 和1 個經驗回放池完成強化學習任務。5 個DNN 分為兩組:一組包含一個策略網絡,是SAC 強化學習算法的Actor 部分;另一組包含兩個Q 網絡和兩個目標Q 網絡,是SAC 強化學習的Critic 部分。獎勵函數根據實際路徑和參考路徑的距離來計算獎勵或者懲罰。SAC 算法將機械臂狀態和獎勵函數的輸出作為輸入,向機械臂反饋下一步的動作。

2 路徑模仿的獎勵函數計算方法

機械臂SmallRobotArm 選擇六自由度,機械臂末端連接一個電磁鐵。設定機械臂路徑規劃任務為拾取硬幣并將硬幣置入杯中。獎勵函數根據機械臂的當前狀態st和下一步要執行的動作at計算機械臂的任務完成度,根據任務完成度和機械臂末端與參考路徑的距離計算獎勵或者懲罰,誘導機械臂學習參考路徑。

1)機械臂狀態模型。

在機械臂路徑規劃任務背景下定義環境狀態,t時刻的狀態st∈S是一個四元組:st=(post,quatt,c,w),其中post表示t時刻時機械臂末端 在空間中的位 置:post=(xt,ypt,zpt),quatt表示機械臂末端效應器在空間中的姿態角:quatt=(wqt,xqt,yqt,zqt),c表示硬幣在空間中的位置,w表示水杯在空間中的位置。

2)機械臂動作模型。

機械臂的動作at∈A由 3 個部分構成 :at=(ΔPt,ΔOt,gt),ΔPt和ΔOt的表達式分別為ΔPt=(Δxpt,Δypt,Δzpt),ΔOt=(Δxot,Δyot,Δzot),其中ΔPt表示機械臂末端在t時刻移動位移的向量,ΔOt表示機械臂末端在t時刻的轉動姿態角,gt表示機械臂末端的電磁鐵在t時刻是否接通了電源。

3)獎勵函數模型。

獎勵函數反映了在狀態st下進行動作at的獎勵的預期,可表示為:

由于系統狀態空間大,很難為所有狀態設置獎勵,獎勵稀疏的問題導致學習緩慢甚至無法學習。為了使機械臂能快速學習針對任務的最優路徑,通過特殊設計的獎勵函數使機械臂對參考路徑模仿學習,提高機械臂路徑規劃的學習速度和任務執行成功率。

將用手拖動機械臂獲得的末端路徑作為機械臂學習的參考路徑,參考路徑如圖1 所示。

定義機械臂在t時刻的任務完成度為pt:

根據任務要求,獎勵或懲罰可分成3 種情況:

①若機械臂完成將硬幣置入水杯中的任務可得到最大獎勵;未完成任務時不獎勵。

②當機械臂末端沿著參考路徑的方向運動時得到獎勵;當機械臂沿著參考路徑的反方向運動時獎勵值為負,即受到懲罰。

③機械臂末端與參考路徑的距離越近受到獎勵越大;距離過遠則會受到懲罰,距離越遠懲罰越大。

根據上述分析,執行動作at后的獎勵為:

其中:Δd表示機械臂末端位置與參考路徑之間的距離;β為控制機械臂末端偏離參考路徑時受到獎勵或懲罰的比例系數;η為參考路徑獎勵半徑,當機械臂末端在η內時會得到獎勵,否則會受到懲罰。

在強化學習中,這種獎勵機制可以誘導機械臂學習參考路徑,使策略更快收斂,提高學習效率。

3 機械臂路徑規劃算法

SAC 是一種基于Actor-Critic 無模型強化學習框架,它融合了最大熵思想,在獲得高回報的同時,也具有較強的探索能力和較高的魯棒性[17]。結合獎勵算法和SAC 強化學習方法,可以用獎勵函數指導智能體學習如何選擇最優行為,同時使用SAC 訓練智能體,使它根據定義的獎勵函數和狀態選擇合適的動作。通過設計合適的獎勵函數,智能體可以學習如何選擇最優路徑,使得機器人準確到達目標點。

綜上所述,將獎勵算法和SAC 強化學習算法結合,可以構建一種新的路徑規劃算法,使得機器人能夠根據環境狀態動態地選擇最優路徑,具有較高的適應性和魯棒性。

3.1 最大熵策略

SAC 強化學習算法可以探索更多情況,以提高學習速度,且避免陷入局部最優解,在獲得的最大回報和隨機性探索之間尋找一種平衡,使策略可以兼顧預期回報與最大熵。在SAC 中,最優策略表示為:

其中:R是獎勵;H為熵;E 表示求獎勵和熵的期望;α是溫度系數,決定了熵值相較于獎勵的比重,調整α可以控制最優策略的探索隨機性。H的計算式為:

熵值的大小反映了策略π(?|st)的隨機程度,在熵較大時,機械臂在價值相近的動作中隨機選取一個執行。

在SAC 算法中,最大熵是策略的目標之一,因此用于表示預期回報的V 函數和Q 函數中的熵是獎勵的一部分,被稱為軟性狀態價值函數(軟性V 函數)和軟性動作價值函數(軟性Q 函數)[18],分別表示為:

軟性Q 函數的貝爾曼方程形式表示為:

軟性Q 函數和軟性V 函數的更新式為:

通過對式(9)~(10)不斷迭代,Q 函數的輸出將逐漸收斂至最優Q值。

3.2 基于能量模型的策略

SAC 算法對AC 策略的更新方式進行了改進。在SAC 算法訓練的過程中,策略向著軟性Q 函數的指數方向更新:

在強化學習場景下,軟性Q 函數若是多峰,則代表問題的解不唯一。面對有多個最優解或存在次優解時,基于能量模型的策略分布使算法可對所有可行的解進行學習。當環境發生變化,之前的最優解行不通時,基于能量模型的策略分布可以迅速調整策略得到新的解。對于SAC 算法,最優策略的形式如下:

3.3 SAC強化學習算法

本文引入兩個結構相同的Q 網絡同時訓練,每次迭代時選擇較小的Q 值更新策略網絡,防止對動作價值估計過高[19]。Target-Q 網絡在每次迭代中進行軟更新,網絡參數的變化較為平緩。使用第2 章所述的基于路徑模仿的獎勵函數,誘導機械臂學習參考路徑。

本文算法的框架如圖2 所示。策略網絡將來自環境的狀態s作為輸入,有13 個參數,輸出動作a,共8 個參數,隱藏層是5 個全連接層,每層512 個神經元,使用Leaky ReLU[20]和Tanh 分別作為隱藏層和輸出層的激活函數。

圖2 本文算法的框架Fig.2 Framework of proposed algorithm

設策略網絡參數為φ,損失函數為:

其中:D表示經驗回放池,獎勵函數根據任務完成度和機械臂末端與參考路徑的距離計算出獎勵,并且存到經驗回放池,經驗回放池將狀態、轉換后的狀態、動作和獎勵(st,at,st+1,Rt+1)作為Q 網絡訓練的數據來源。α為溫度參數,隨著狀態的變化而自動調節,面對探索過的環境狀態,應當減小溫度參數令熵減小,而面對未知狀態應當增大溫度參數,增強策略探索的隨機性。溫度參數α自動調節過程可表示為:

4 個Q 網絡結構完全相同,它們的輸入為狀態s和策略網絡輸出的動作a,共21 個參數,輸出單個參數即Q 值,隱藏層為3 個全連接層,每層512 個神經元,使用Leaky ReLU 作為激活函數。設Q 網絡的參數為θ,損失函數:

其中:τ值大于0 但遠小于1。

SAC 算法的偽代碼如算法1 所示。

算法1 SAC 算法。

4 實驗與結果分析

本章通過實驗展示本文算法的實際效果,驗證該算法在解決實際任務問題中的可行性,通過對比實驗驗證該算法相較于深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)強化學習算法[21]訓練速度更快且成功率更高。

4.1 實驗環境

強化學習環境基于Unity ML-Agents 工具包搭建,使用Python 實現強化學習算法,使用TensorFlow 構建深度網絡。

實驗場景如圖3 所示,機械臂放置在桌面上,機械臂前方擺放一個硬幣和一個杯子,首先機械臂末端移動到硬幣上方,通過電磁鐵將硬幣拾起,再將硬幣置入杯子中。

圖3 機械臂路徑規劃訓練場景Fig.3 Training scene of manipulator path planning

4.2 實驗結果與分析

為驗證本文算法的訓練速度和效果,另外設置一組路徑模仿算法作為對比。將通過用手拖動機械臂得到的路徑作為參考路徑。兩種算法如下:

本文算法基于路徑模仿和SAC 算法。獎勵函數如第2章所述,智能體所受到的獎勵和懲罰與是否完成任務以及對參考路徑的學習程度有關,SAC 強化學習算法能較好地對環境進行探索,提高學習速度。

基于路徑模仿和DDPG 算法。DDPG 算法與SAC 算法同屬于Actor-Critic 框架,不同的是DDPG 算法是直接選取概率最大的動作去執行。DDPG 算法包含4 個神經網絡:策略網絡、目標策略網絡、Q 網絡和目標Q 網絡,這些網絡的結構與SAC 算法中對應網絡結構一致。

對上述兩種算法各訓練1 000 回合,每個訓練回合機械臂最多執行100 次動作,若達到100 次動作后仍無法完成任務則恢復初始狀態,開始下一輪訓練。統計兩種算法在每個訓練回合的累積獎勵,繪制相應的曲線如圖4 所示。

圖4 兩種算法的獎勵變化曲線Fig.4 Reward change curves for two algorithms

從圖4 可以看出,兩種算法在開始訓練時機械臂得到的獎勵都比較低,為-30 左右。隨著訓練次數的增加,基于路徑模仿和SAC 算法的獎勵在不斷上升,400 回合之后獎勵值穩定在15 左右?;诼窂侥7潞虳DPG 算法的獎勵增長曲線滯后于本文算法,在訓練到200 回合之后開始增長,在600回合左右時獎勵值穩定在12 左右。

每訓練40 回合統計一次任務成功率,兩種算法訓練1 000 回合的任務成功率曲線如圖5 所示。

圖5 兩種算法的成功率變化曲線Fig.5 Change curves of success rate for two algorithms

從圖5 可以看出,成功率曲線與獎勵曲線的趨勢基本一致,兩種算法在訓練剛開始時成功率都很低,隨著訓練回合增多,成功率逐漸增高,基于路徑模仿和SAC 算法在第400回合左右成功率穩定在88%左右,而基于路徑模仿和DDPG算法在600 回合左右時成功率穩定在88%左右。

機械臂基于兩種算法分別規劃10 條路徑,統計兩種算法所規劃路徑的平均長度以及與參考路徑的距離差,統計結果如表1 所示。

表1 10條路徑的路徑規劃實驗結果 單位:cmTab.1 Experimental results of path planning for ten paths unit:cm

機械臂基于路徑模仿和SAC 算法和基于路徑模仿和DDPG 算法規劃的路徑與參考路徑的對比如圖6、7 所示。

圖6 參考路徑及基于路徑模仿和SAC算法規劃的路徑對比Fig.6 Comparison between reference path and path based on path imitation and SAC algorithm

圖7 參考路徑和基于路徑模仿和DDPG算法規劃的路徑對比Fig.7 Comparison between reference path and path based on path imitation and DDPG algorithm

為驗證基于路徑模仿和SAC 的算法對不同路徑的學習效果,采集一條不同的機械臂運動路徑作為參考路徑令機械臂學習,令機械臂規劃一條運動路徑完成實驗任務?;赟AC 方法的路徑規劃算法所規劃的路徑和參考路徑的對比如圖8 所示,基于SAC 方法的路徑規劃算法規劃的路徑長度為58.4 cm,偏離參考路徑的最大距離為1.8 cm,偏離參考路徑的平均距離為0.9 cm,機械臂針對不同的參考路徑都能學習并規劃合理的路徑來完成任務。

圖8 不同的參考路徑及基于路徑模仿和SAC算法規劃的路徑對比Fig.8 Comparison of different reference path and path based on path imitation and SAC algorithm

5 結語

針對目前機械臂強化學習存在獎勵稀疏導致的收斂速度慢的問題,本文提出一種基于路徑模仿和SAC 強化學習的機械臂路徑規劃算法。首先對基于路徑模仿和SAC 強化學習的機械臂路徑規劃算法的基本原理進行描述;其次介紹了基于路徑模仿的獎勵函數設計原理;接著對SAC 強化學習算法進行了介紹,給出了算法流程;最后進行了機械臂路徑規劃對比實驗,實驗結果表明本文算法能夠有效訓練機械臂完成硬幣投擲入杯的任務,路徑模仿機制解決了強化學習的訓練中獎勵稀疏難以訓練的問題,SAC 算法相較于DDPG 算法探索能力更強,所規劃的路徑更加合理。

猜你喜歡
機械規劃函數
二次函數
第3講 “函數”復習精講
二次函數
函數備考精講
調試機械臂
規劃引領把握未來
簡單機械
快遞業十三五規劃發布
多管齊下落實規劃
迎接“十三五”規劃
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合