趙寅甫,馮正勇
(西華師范大學(xué)電子信息工程學(xué)院,四川南充 637009)
機(jī)械臂作為機(jī)器人領(lǐng)域中使用最廣的一種機(jī)械裝置,被應(yīng)用在各個(gè)行業(yè),如從工業(yè)生產(chǎn)中的倉(cāng)庫(kù)管理、汽車制造,到農(nóng)業(yè)生產(chǎn)中的碼垛和瓜果產(chǎn)品的采摘分揀。在工業(yè)生產(chǎn)中,許多工廠都是使用示教法對(duì)機(jī)械臂進(jìn)行控制的,即事先通過(guò)手動(dòng)拖拽或是使用示教器調(diào)整的方式,在移動(dòng)機(jī)械臂到達(dá)每一個(gè)目標(biāo)位置時(shí)保存各個(gè)目標(biāo)的位置信息,然后使機(jī)械臂按照目標(biāo)點(diǎn)的順序移動(dòng)。然而,如果在新的應(yīng)用中目標(biāo)位置產(chǎn)生變化,則需要重新示教,因此,這種采用示教的方法不僅耗費(fèi)人力,靈活性也有所欠缺。除了示教法,應(yīng)用最為普遍的傳統(tǒng)控制方法通過(guò)運(yùn)動(dòng)規(guī)劃理論對(duì)機(jī)械臂進(jìn)行控制。目前的運(yùn)動(dòng)規(guī)劃理論包括正運(yùn)動(dòng)學(xué)和逆運(yùn)動(dòng)學(xué),正運(yùn)動(dòng)學(xué)的作用是根據(jù)機(jī)械臂的各軸轉(zhuǎn)動(dòng)角度計(jì)算得到機(jī)械臂末端的位置,而逆運(yùn)動(dòng)學(xué)則根據(jù)機(jī)械臂末端的目標(biāo)位置計(jì)算得到各軸所需的轉(zhuǎn)動(dòng)角度。為了實(shí)現(xiàn)更靈活的機(jī)械臂應(yīng)用,越來(lái)越多的研究人員開(kāi)始將人工智能的數(shù)據(jù)驅(qū)動(dòng)方法應(yīng)用在機(jī)械臂的控制中。本文也將引入數(shù)據(jù)驅(qū)動(dòng)的深度強(qiáng)化學(xué)習(xí)算法來(lái)解決機(jī)械臂的智能控制問(wèn)題。
強(qiáng)化學(xué)習(xí)是人工智能的一個(gè)分支,其通過(guò)與環(huán)境的交互得到訓(xùn)練數(shù)據(jù),利用數(shù)據(jù)的訓(xùn)練得到控制模型,進(jìn)而實(shí)現(xiàn)智能決策。當(dāng)前,為了提升模型的表征能力,研究者將深度神經(jīng)網(wǎng)絡(luò)引入到強(qiáng)化學(xué)習(xí)中,將兩者優(yōu)勢(shì)互補(bǔ),提出了可在復(fù)雜環(huán)境中感知并決策的深度強(qiáng)化學(xué)習(xí)算法。深度強(qiáng)化學(xué)習(xí)算法能夠在高維度和連續(xù)狀態(tài)空間下有效工作,其研究已經(jīng)在圍棋對(duì)弈、Atari 游戲等領(lǐng)域取得了較大進(jìn)展。對(duì)于同屬連續(xù)狀態(tài)空間的機(jī)械臂控制問(wèn)題,深度強(qiáng)化學(xué)習(xí)算法也可以很好地加以解決,但存在訓(xùn)練時(shí)間消耗巨大的問(wèn)題。本文提出針對(duì)機(jī)械臂控制模型先2D 后3D 的訓(xùn)練方法,在保證應(yīng)用效果的情況下縮短訓(xùn)練時(shí)間。
深度強(qiáng)化學(xué)習(xí)算法作為一種端到端的學(xué)習(xí)算法,具有很強(qiáng)的通用性,研究者已經(jīng)利用深度強(qiáng)化學(xué)習(xí)算法解決了很多智能決策問(wèn)題:文獻(xiàn)[1]提出深度強(qiáng)化學(xué)習(xí)算法DQN,使智能體學(xué)會(huì)了玩Atari 游戲,并打破了人類保持的記錄;文獻(xiàn)[2]同樣在Atari 游戲中使用深度強(qiáng)化學(xué)習(xí)實(shí)現(xiàn)了多智能體之間的對(duì)戰(zhàn)與合作;文獻(xiàn)[3]利用深度強(qiáng)化學(xué)習(xí)優(yōu)化了仿人機(jī)器人的行走穩(wěn)定性;文獻(xiàn)[4]通過(guò)策略搜索的方式完成了飛行器的自主飛行;文獻(xiàn)[5]在OpenAI Gym 環(huán)境下,使用深度強(qiáng)化學(xué)習(xí)算法完成了對(duì)不同結(jié)構(gòu)的雙足、四足機(jī)器人的仿真訓(xùn)練,并比較了不同算法在訓(xùn)練效果上的差異;文獻(xiàn)[6]將深度強(qiáng)化學(xué)習(xí)加入到目標(biāo)檢測(cè)算法中,加快了目標(biāo)外框的檢測(cè)速度;文獻(xiàn)[7]在超參數(shù)的優(yōu)化中使用強(qiáng)化學(xué)習(xí)算法,并提出了狀態(tài)向量、獎(jiǎng)勵(lì)函數(shù)和動(dòng)作的定義方法。
在深度強(qiáng)化學(xué)習(xí)算法中有以下5 大要素:智能體(Agent),環(huán)境(Environment),動(dòng)作(Action),狀態(tài)(State),獎(jiǎng)勵(lì)(Reward)。如圖1 所示,智能體實(shí)時(shí)地和環(huán)境進(jìn)行交互,智能體觀測(cè)到狀態(tài)(狀態(tài)由狀態(tài)向量表征,即描述當(dāng)前狀態(tài)的物理量個(gè)數(shù)和取值)后根據(jù)策略輸出動(dòng)作(機(jī)械臂各個(gè)關(guān)節(jié)電機(jī)的旋轉(zhuǎn)角度),而動(dòng)作會(huì)作用于環(huán)境進(jìn)而影響狀態(tài)。此外,環(huán)境還會(huì)根據(jù)動(dòng)作和狀態(tài)給智能體一個(gè)獎(jiǎng)勵(lì)(由獎(jiǎng)勵(lì)函數(shù)表征,描述是否達(dá)到了目標(biāo)的一個(gè)反饋量化值),而智能體則根據(jù)動(dòng)作狀態(tài)和獎(jiǎng)勵(lì)更新自身選擇動(dòng)作的策略[8]。通過(guò)在環(huán)境中的不斷嘗試,獲得最大的獎(jiǎng)勵(lì)值,學(xué)習(xí)到從狀態(tài)到動(dòng)作的映射,這種映射就是策略,以參數(shù)化的深度神經(jīng)網(wǎng)絡(luò)表示。

圖1 強(qiáng)化學(xué)習(xí)算法流程Fig.1 Procedure of reinforcement learning algorithm
本文中使用的深度強(qiáng)化學(xué)習(xí)算法是深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法[9],該算法流程如圖2 所示。DDPG 算法使用確定性策略梯度(Deterministic Policy Gradient,DPG)算法[10]中的策略網(wǎng)絡(luò),采用Actor-Critic 框架[11],并結(jié)合深度Q 網(wǎng)絡(luò)(Deep Q-Network,DQN)[1]中的經(jīng)驗(yàn)回放以及目標(biāo)網(wǎng)絡(luò)(Target_Net)和評(píng)估網(wǎng)絡(luò)(Eval_Net)分開(kāi)的技巧,在針對(duì)連續(xù)動(dòng)作空間的環(huán)境中取得了不錯(cuò)的效果。在DDPG 算法架構(gòu)中包含4 個(gè)神經(jīng)網(wǎng)絡(luò),分別是Actor 的目標(biāo)網(wǎng)絡(luò)和評(píng)估網(wǎng)絡(luò)以及Critic 的目標(biāo)網(wǎng)絡(luò)和評(píng)估網(wǎng)絡(luò),且2 個(gè)Actor 網(wǎng)絡(luò)的結(jié)構(gòu)完全相同,2 個(gè)Critic 網(wǎng)絡(luò)的結(jié)構(gòu)完全相同。

圖2 DDPG 算法流程Fig.2 Procedure of DDPG algorithm
DDPG 算法描述如下:
算法1DDPG
輸入Actor 評(píng)估網(wǎng)絡(luò),參數(shù)為θ;Actor 目標(biāo)網(wǎng)絡(luò),參數(shù)為θ′;Critic 評(píng)估網(wǎng)絡(luò),參數(shù)為ω;Actor 目標(biāo)網(wǎng)絡(luò),參數(shù)為ω′;衰減因子γ;軟更新權(quán)重系數(shù)τ;批量梯度下降的樣本數(shù)m;目標(biāo)網(wǎng)絡(luò)參數(shù)更新步數(shù)C;最大迭代次數(shù)T
輸出最優(yōu)的Actor 評(píng)估網(wǎng)絡(luò)參數(shù)θ,最優(yōu)的Critic 評(píng)估網(wǎng)絡(luò)參數(shù)ω
1)隨機(jī)初始化θ、ω,令θ′=θ,ω′=ω,并清空經(jīng)驗(yàn)回放集合D。
2)從1 到T(訓(xùn)練總回合)進(jìn)行迭代。
(1)初始化最初狀態(tài)s。
(2)Actor 評(píng)估網(wǎng)絡(luò)基于狀態(tài)s得到動(dòng)作a=πθ(s)+N。
(3)執(zhí)行動(dòng)作a,得到新的狀態(tài)s′和獎(jiǎng)勵(lì)r,判斷是否為終止?fàn)顟B(tài)done。
(4)將{s,a,r,s′,done}保存在經(jīng)驗(yàn)回放集合D中。

(7)使用J(θ)=作為損失函數(shù),通過(guò)神經(jīng)網(wǎng)絡(luò)的反向傳播來(lái)更新Actor評(píng)估網(wǎng)絡(luò)的參數(shù)θ。
(8)若T%C=1,則通過(guò)θ′←τθ+(1-τ)θ′,ω′←τω+(1-τ)ω′更新Actor 目標(biāo)網(wǎng)絡(luò)和Critic 目標(biāo)網(wǎng)絡(luò)的參數(shù)θ′和ω′。
(9)若s′為終止?fàn)顟B(tài),則本輪迭代結(jié)束,否則s=s′,并回到步驟(2)。
在深度強(qiáng)化學(xué)習(xí)中,狀態(tài)向量、獎(jiǎng)勵(lì)函數(shù)是決定算法性能的重要組成部分。一個(gè)好的狀態(tài)向量,能夠全面地表征當(dāng)前所處環(huán)境的特征,加快模型訓(xùn)練速度。一個(gè)適合的獎(jiǎng)勵(lì)函數(shù),能夠準(zhǔn)確地表征模型任務(wù)目標(biāo),加快模型收斂速度。在將深度強(qiáng)化學(xué)習(xí)算法應(yīng)用于真實(shí)問(wèn)題時(shí),如何設(shè)置狀態(tài)向量和獎(jiǎng)勵(lì)函數(shù)是算法成功的關(guān)鍵,因此,需要使用不同的設(shè)置方式進(jìn)行訓(xùn)練,對(duì)兩者的收斂性和穩(wěn)定性進(jìn)行比較分析,尋找最優(yōu)的設(shè)置方式。
對(duì)于狀態(tài)向量的設(shè)置方式,往往根據(jù)具體問(wèn)題的物理量通過(guò)經(jīng)驗(yàn)設(shè)置。對(duì)于獎(jiǎng)勵(lì)函數(shù)的設(shè)置方式:文獻(xiàn)[12]分析了不同獎(jiǎng)勵(lì)方式對(duì)強(qiáng)化學(xué)習(xí)模型最終效果的影響;文獻(xiàn)[13]針對(duì)傳統(tǒng)Q 算法對(duì)于機(jī)器人獎(jiǎng)勵(lì)函數(shù)的定義較為寬泛,導(dǎo)致機(jī)器人學(xué)習(xí)效率不高的問(wèn)題,提出一種回報(bào)詳細(xì)分類Q(RDC-Q)學(xué)習(xí)算法,算法的收斂速度相對(duì)傳統(tǒng)回報(bào)Q算法有明顯提高。文獻(xiàn)[14-16]都是基于內(nèi)在啟發(fā)的思路對(duì)環(huán)境的感知和外部獎(jiǎng)勵(lì)信號(hào)進(jìn)行處理,轉(zhuǎn)化成自己的內(nèi)在獎(jiǎng)勵(lì)。
關(guān)于針對(duì)機(jī)械臂的深度強(qiáng)化學(xué)習(xí)算法訓(xùn)練,已有許多研究者進(jìn)行了不同的研究和嘗試:文獻(xiàn)[17]使用DDPG 算法以機(jī)械臂各個(gè)關(guān)節(jié)角度作為狀態(tài)向量,針對(duì)獎(jiǎng)勵(lì)函數(shù)設(shè)置問(wèn)題,提出包含單步獎(jiǎng)勵(lì)、回合稀疏獎(jiǎng)勵(lì)和方向獎(jiǎng)勵(lì)的復(fù)合獎(jiǎng)勵(lì)函數(shù),并加入優(yōu)先經(jīng)驗(yàn)回放的概念,提升了算法的訓(xùn)練速度;文獻(xiàn)[18]在OpenAI Gym 的FetchPickAndPlace-v1 環(huán)境中,專門針對(duì)機(jī)械臂控制進(jìn)行了獎(jiǎng)勵(lì)函數(shù)的設(shè)計(jì),通過(guò)不同獎(jiǎng)勵(lì)函數(shù)訓(xùn)練,得到了機(jī)械臂通過(guò)不同的軌跡到達(dá)目標(biāo)位置的策略;文獻(xiàn)[19]采用人工免疫原理對(duì)RBF 網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)集的泛化能力在線調(diào)整隱層結(jié)構(gòu),生成RBF 網(wǎng)絡(luò)隱層,當(dāng)網(wǎng)絡(luò)結(jié)構(gòu)確定時(shí),采用遞推最小二乘法確定網(wǎng)絡(luò)連接權(quán)值,由此對(duì)神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)和連接權(quán)進(jìn)行自適應(yīng)調(diào)整和學(xué)習(xí),大幅提高了機(jī)械臂逆運(yùn)動(dòng)學(xué)求解精度。文獻(xiàn)[20]提出了基于增廣示教的機(jī)械臂軌跡規(guī)劃方法,在經(jīng)驗(yàn)回放中提前加入少量的示教信息,有效地降低了訓(xùn)練初期的難度,獲得了更優(yōu)秀的性能,并在Gazebo仿真平臺(tái)下的Kent6 V2 機(jī)械臂上得到了驗(yàn)證。在訓(xùn)練耗時(shí)方面:文獻(xiàn)[21]在Unity 中搭建了包括機(jī)械臂和目標(biāo)物品的3D 模型,直接在3D 模型中通過(guò)DDPG 算法控制機(jī)械臂到達(dá)目標(biāo)下方,并將其托舉起,整個(gè)訓(xùn)練過(guò)程平均消耗33 h,相較于傳統(tǒng)調(diào)試方法效率提升近61%。
本文提出先簡(jiǎn)化模型(2D 模型)再?gòu)?fù)雜模型(3D模型)的訓(xùn)練方法,使尋找合理的狀態(tài)向量設(shè)置和獎(jiǎng)勵(lì)函數(shù)形式的訓(xùn)練時(shí)長(zhǎng)大幅縮短,由此構(gòu)建能控制3D 機(jī)械臂到達(dá)目標(biāo)位置的深度強(qiáng)化學(xué)習(xí)算法模型,提升算法效率。
本文通過(guò)深度強(qiáng)化學(xué)習(xí)算法進(jìn)行訓(xùn)練得到機(jī)械臂的控制模型(一個(gè)深度神經(jīng)網(wǎng)絡(luò)),其動(dòng)作是機(jī)械臂各轉(zhuǎn)動(dòng)軸的轉(zhuǎn)動(dòng)角度,而對(duì)于狀態(tài)向量和獎(jiǎng)勵(lì)函數(shù)形式的選取,則根據(jù)經(jīng)驗(yàn)使用不同的設(shè)置方式進(jìn)行訓(xùn)練。
深度強(qiáng)化學(xué)習(xí)算法的訓(xùn)練過(guò)程是異常耗時(shí)的,通過(guò)對(duì)訓(xùn)練模型采取不同的狀態(tài)向量和獎(jiǎng)勵(lì)函數(shù)形式來(lái)尋找合理的設(shè)置方式,會(huì)使得訓(xùn)練時(shí)長(zhǎng)成倍增長(zhǎng)。為縮減訓(xùn)練時(shí)間,本文先在不具備物理屬性的2D 機(jī)械臂仿真模型上進(jìn)行訓(xùn)練,這一過(guò)程主要目的是找到合理的狀態(tài)向量和獎(jiǎng)勵(lì)函數(shù)設(shè)置方式,然后基于此設(shè)置方式,遷移到具備物理屬性的3D 仿真環(huán)境中進(jìn)行訓(xùn)練,3D 仿真環(huán)境中的機(jī)械臂和現(xiàn)實(shí)世界的真實(shí)機(jī)械臂在物理屬性上已經(jīng)非常接近。本文采用的真實(shí)機(jī)械臂是越疆科技的Dobot Magician,其在3D 仿真環(huán)境Gazebo中的模型與真是機(jī)械臂物理屬性一致。
本文所使用的2D 機(jī)械臂仿真效果如圖3 所示[22](彩色效果見(jiàn)《計(jì)算機(jī)工程》官網(wǎng)HTML 版)。該2D 機(jī)械臂環(huán)境以圖中左下角為坐標(biāo)原點(diǎn),長(zhǎng)寬均為400;圖中藍(lán)色方塊為目標(biāo)區(qū)域,中心點(diǎn)坐標(biāo)為(100,100),長(zhǎng)寬均為40;兩連桿為一個(gè)二軸機(jī)械臂,a 點(diǎn)為固定關(guān)節(jié),在整個(gè)環(huán)境的正中心,坐標(biāo)為(200,200),b 點(diǎn)和c 點(diǎn)均為自由關(guān)節(jié),c 點(diǎn)為機(jī)械臂末端,連桿ab 和連桿bc 的長(zhǎng)度均為200,用l代替,兩者與水平正方向的夾角分別記為θ、α,活動(dòng)范圍均為[0,2π]。根據(jù)θ、α和l可以得到中端b 和末端c 的坐標(biāo)分別為(200+l×cosθ,200+l×sinθ)、(200+l×cosθ+l×cosα,200+l×sinθ+l×sinα)。本文根據(jù)目標(biāo)位置坐標(biāo)點(diǎn)、自身狀態(tài)等環(huán)境信息,使用不同的狀態(tài)向量和獎(jiǎng)勵(lì)函數(shù)設(shè)置方式進(jìn)行訓(xùn)練,輸出θ、α的改變量,從而控制末端c到達(dá)目標(biāo)區(qū)域(藍(lán)色方塊)。收集每回合的總獎(jiǎng)勵(lì)值和總步數(shù),對(duì)比不同設(shè)置方式的收斂速度和穩(wěn)定性,找到合理的狀態(tài)向量和獎(jiǎng)勵(lì)函數(shù)設(shè)置方式。

圖3 2D 機(jī)械臂仿真效果示意圖Fig.3 Schematic diagram of 2D manipulator simulation effect
2.1.1 狀態(tài)向量設(shè)置
一個(gè)好的狀態(tài)向量能夠完整地展示整個(gè)學(xué)習(xí)的環(huán)境特征,這樣深度強(qiáng)化學(xué)習(xí)模型就能夠依據(jù)這些狀態(tài)從中學(xué)到有價(jià)值的策略。好的狀態(tài)向量在加速模型的收斂速度以及提高模型穩(wěn)定性上起到了至關(guān)重要的作用。
經(jīng)過(guò)分析,最終得到如表1 所示的6 種針對(duì)2D機(jī)械臂的狀態(tài)向量設(shè)置方法,其中各個(gè)參數(shù)的具體含義見(jiàn)表2。

表1 2D 機(jī)械臂狀態(tài)向量設(shè)置方式Table 1 2D manipulator status vector setting patterns

表2 2D 機(jī)械臂狀態(tài)向量中各參數(shù)含義Table 2 Definition of each parameter in 2D manipulator state vector
本文將以上狀態(tài)設(shè)置方法應(yīng)用在深度強(qiáng)化學(xué)習(xí)算法中,進(jìn)行500 回合每回合最大200 步的訓(xùn)練,得到結(jié)果如圖4~圖9 所示。可以看出:使用標(biāo)準(zhǔn)化后的末端和中端坐標(biāo)以及末端和中端與目標(biāo)之間的直線距離和x、y兩軸距離作為狀態(tài)的效果最好,收斂速度快,且收斂后穩(wěn)定其原因如下:

圖4 使用2D 機(jī)械臂狀態(tài)向量設(shè)置方式1 的訓(xùn)練結(jié)果Fig.4 Training results while using 2D manipulator status vector setting pattern 1

圖5 使用2D 機(jī)械臂狀態(tài)向量設(shè)置方式2 的訓(xùn)練結(jié)果Fig.5 Training results while using 2D manipulator status vector setting pattern 2

圖6 使用2D 機(jī)械臂狀態(tài)向量設(shè)置方式3 的訓(xùn)練結(jié)果Fig.6 Training results while using 2D manipulator status vector setting pattern 3

圖7 使用2D 機(jī)械臂狀態(tài)向量設(shè)置方式4 的訓(xùn)練結(jié)果Fig.7 Training results while using 2D manipulator status vector setting pattern 4

圖8 使用2D 機(jī)械臂狀態(tài)向量設(shè)置方式5 的訓(xùn)練結(jié)果Fig.8 Training results while using 2D manipulator status vector setting pattern 5

圖9 使用2D 機(jī)械臂狀態(tài)向量設(shè)置方式6 的訓(xùn)練結(jié)果Fig.9 Training results while using 2D manipulator status vector setting pattern 6
1)狀態(tài)向量中不僅包含了末端坐標(biāo),而且還包含了末端與目標(biāo)的位置關(guān)系和中端與目標(biāo)的位置關(guān)系,這樣的狀態(tài)向量能夠更詳細(xì)地描述機(jī)械臂整體與目標(biāo)之間相對(duì)位置信息,也使算法模型能夠更全面地了解和學(xué)習(xí)環(huán)境。
2)使用標(biāo)準(zhǔn)化或歸一化對(duì)神經(jīng)網(wǎng)絡(luò)訓(xùn)練的輸入量進(jìn)行預(yù)處理能夠消除奇異樣本對(duì)訓(xùn)練的影響,加快網(wǎng)絡(luò)模型的收斂速度。
綜合考慮以上因素,本文最終選擇表1 中第6 種設(shè)置方式作為針對(duì)2D 機(jī)械臂的最優(yōu)狀態(tài)向量。
2.1.2 獎(jiǎng)勵(lì)函數(shù)設(shè)置
在強(qiáng)化學(xué)習(xí)領(lǐng)域,獎(jiǎng)勵(lì)函數(shù)的設(shè)計(jì)對(duì)于算法收斂速度和穩(wěn)定性方面也起到關(guān)鍵作用。一個(gè)好的獎(jiǎng)勵(lì)函數(shù)能夠清晰地告訴強(qiáng)化學(xué)習(xí)算法任務(wù)目標(biāo)是什么,強(qiáng)化學(xué)習(xí)算法就能夠依據(jù)獎(jiǎng)勵(lì)函數(shù)快速學(xué)習(xí)。
本文分別選用如表3 中的4 種獎(jiǎng)勵(lì)函數(shù)設(shè)置方式,各參數(shù)的具體含義見(jiàn)表4。選用以上4 種獎(jiǎng)勵(lì)函數(shù)設(shè)置方式進(jìn)行500 回合每回合最大200 步的訓(xùn)練,得到結(jié)果如圖10~圖13 所示。

圖10 使用2 維機(jī)械臂獎(jiǎng)勵(lì)函數(shù)設(shè)置方式1 的訓(xùn)練結(jié)果Fig.10 Training results while using 2D manipulator reward function setting pattern 1

圖11 使用2 維機(jī)械臂獎(jiǎng)勵(lì)函數(shù)設(shè)置方式2 的訓(xùn)練結(jié)果Fig.11 Training results while using 2D manipulator reward function setting pattern 2

圖12 使用2 維機(jī)械臂獎(jiǎng)勵(lì)函數(shù)設(shè)置方式3 的訓(xùn)練結(jié)果Fig.12 Training results while using 2D manipulator reward function setting pattern 3

圖13 使用2 維機(jī)械臂獎(jiǎng)勵(lì)函數(shù)設(shè)置方式4 的訓(xùn)練結(jié)果Fig.13 Training results while using 2D manipulator reward function setting pattern 4

表3 2 維機(jī)械臂獎(jiǎng)勵(lì)函數(shù)設(shè)置方式Table 3 2D manipulator reward function setting patterns

表4 2 維機(jī)械臂獎(jiǎng)勵(lì)函數(shù)中各參數(shù)含義Table 4 Definition of each parameter in 2D manipulator reward function
可以看出:使用執(zhí)行動(dòng)作前后距離差作為獎(jiǎng)勵(lì)并沒(méi)有使強(qiáng)化學(xué)習(xí)算法很好地了解到任務(wù)目的,每回合步數(shù)和每回合獎(jiǎng)勵(lì)均未收斂;當(dāng)單純地使用末端與目標(biāo)之間直線距離的負(fù)值時(shí),收斂后的穩(wěn)定性最好;而使用末端與目標(biāo)之間x、y兩軸距離和的負(fù)值作為獎(jiǎng)勵(lì)時(shí),收斂速度最快,但是收斂后的穩(wěn)定性不足;在使用負(fù)的距離獎(jiǎng)勵(lì)加上到達(dá)目標(biāo)獎(jiǎng)勵(lì)時(shí),雖然每回合獎(jiǎng)勵(lì)的收斂速度快,但是在收斂后會(huì)出現(xiàn)“甩手”的現(xiàn)象(每回合步數(shù)大,但是獎(jiǎng)勵(lì)值小,機(jī)械臂末端在目標(biāo)區(qū)域邊緣晃動(dòng))。最終,本文選擇使用結(jié)果最為穩(wěn)定的末端與目標(biāo)之間直線距離的負(fù)值作為針對(duì)2D 機(jī)械臂的最優(yōu)獎(jiǎng)勵(lì)函數(shù)。
Dobot Magician 機(jī)械臂結(jié)構(gòu)如圖14 所示,由圖中可知,該機(jī)械臂主要由底座、大臂、小臂和末端執(zhí)行器4 個(gè)部分組成,連接處有4 個(gè)旋轉(zhuǎn)關(guān)節(jié)Joint1~Joint4,其中,Joint1~Joint3 用于控制末端位置,而Joint4 則用于控制末端執(zhí)行器的角度。圖15 為在Gazebo 仿真環(huán)境下的3D 機(jī)械臂,是通過(guò)越疆公司給出的Urdf模型導(dǎo)出的,其中并沒(méi)有包含末端執(zhí)行器,其余機(jī)械結(jié)構(gòu)和實(shí)物一致。圖16 為實(shí)物機(jī)械臂的圖片。

圖14 Dobot Magician 結(jié)構(gòu)Fig.14 Structure of Dobot Magician

圖15 Gazebo 中 的Dobot Magician 模型Fig.15 Dobot Magician model in Gazebo

圖16 實(shí)物Dobot Magician 機(jī)械臂Fig.16 Real Dobot Magician
根據(jù)2.1 節(jié)中仿真訓(xùn)練確定的2D 機(jī)械臂環(huán)境下的最優(yōu)狀態(tài)向量和獎(jiǎng)勵(lì)函數(shù),本文將其遷移到3D 環(huán)境中,加入了z軸的信息,并對(duì)3D 機(jī)械臂進(jìn)行標(biāo)定,使用機(jī)械臂的第三軸Joint3 作為中端mid,末端執(zhí)行器作為末端end,得到狀態(tài)向量如下:

使用末端與目標(biāo)之間的距離的負(fù)值作為獎(jiǎng)勵(lì):

各參數(shù)的具體含義見(jiàn)表5。

表5 3 維機(jī)械臂各參數(shù)含義Table 5 Definition of each parameter in 3D manipulator
在對(duì)獎(jiǎng)勵(lì)函數(shù)和狀態(tài)向量設(shè)置完成后,使用固定的目標(biāo)位置,在Gazebo 仿真環(huán)境下進(jìn)行訓(xùn)練,每次500 回合,每回合最大200 步,最終得到的訓(xùn)練結(jié)果如圖17~圖18 所示。可以看出:本文使用的獎(jiǎng)勵(lì)函數(shù)和狀態(tài)向量設(shè)置在3D 機(jī)械臂環(huán)境下,針對(duì)固定目標(biāo)位置的訓(xùn)練效果好,收斂速度快,且收斂后穩(wěn)定,并沒(méi)有出現(xiàn)“甩手”的情況。

圖17 固定目標(biāo)位置的訓(xùn)練結(jié)果1Fig.17 Training result 1 for fixed target positions

圖18 固定目標(biāo)位置的訓(xùn)練結(jié)果2Fig.18 Training result 2 for fixtarget positions
在完成對(duì)固定目標(biāo)位置的訓(xùn)練后,為了能夠在真實(shí)場(chǎng)景下應(yīng)用,對(duì)目標(biāo)位置在每回合開(kāi)始前進(jìn)行隨機(jī)的初始化,使用相同的獎(jiǎng)勵(lì)函數(shù)和狀態(tài)向量設(shè)置進(jìn)行訓(xùn)練,每次3 000 回合,每回合最大200 步,最終得到的訓(xùn)練結(jié)果如圖19~圖20 所示。可以看出:每回合的總步數(shù)和總獎(jiǎng)勵(lì)在1 000 回合左右收斂,且收斂后的穩(wěn)定性良好。

圖19 隨機(jī)目標(biāo)位置的訓(xùn)練結(jié)果1Fig.19 Training result 1 for random target positions

圖20 隨機(jī)目標(biāo)位置的訓(xùn)練結(jié)果2Fig.20 Training result 2 for random target positions
以上結(jié)果充分說(shuō)明了本文所使用的獎(jiǎng)勵(lì)函數(shù)和狀態(tài)向量能夠很好地描述機(jī)械臂所處的環(huán)境與任務(wù)目標(biāo),同時(shí)加快強(qiáng)化學(xué)習(xí)模型的收斂速度,提高收斂后的穩(wěn)定性。
本文采用2D 機(jī)械臂仿真完成狀態(tài)向量和獎(jiǎng)勵(lì)函數(shù)的設(shè)置方式選擇,并成功遷移到3D 機(jī)械臂的訓(xùn)練上。在總耗時(shí)方面,包括2D 機(jī)械臂仿真中狀態(tài)向量和獎(jiǎng)勵(lì)函數(shù)的探索以及3D 機(jī)械臂針對(duì)隨機(jī)目標(biāo)的訓(xùn)練,平均共消耗約16 h。與文獻(xiàn)[21]中直接在3D 機(jī)械臂上訓(xùn)練方式相比,訓(xùn)練時(shí)間提升了近52%。最終,訓(xùn)練得到的控制模型部署在真實(shí)機(jī)械臂上,其控制效果達(dá)到了應(yīng)用要求,具體可見(jiàn)https://www.bilibili.com/video/BV12v41117jQ 視頻。
在機(jī)器人應(yīng)用領(lǐng)域,一個(gè)可以快速控制機(jī)械臂到達(dá)目標(biāo)位置完成抓取和擺放的機(jī)械臂控制器,能夠在很大程度上提高生產(chǎn)效率。本文使用基于數(shù)據(jù)驅(qū)動(dòng)的深度強(qiáng)化學(xué)習(xí)算法DDPG 代替?zhèn)鹘y(tǒng)運(yùn)動(dòng)學(xué)求解方法,針對(duì)2D 機(jī)械臂進(jìn)行訓(xùn)練仿真找到合理的狀態(tài)向量和獎(jiǎng)勵(lì)函數(shù)設(shè)置方式,并將其遷移到3D 機(jī)械臂的仿真環(huán)境中進(jìn)行訓(xùn)練,最終得到能夠快速控制真實(shí)機(jī)械臂的控制模型。在訓(xùn)練中考慮到強(qiáng)化學(xué)習(xí)算法訓(xùn)練時(shí)間冗長(zhǎng),本文提出先2D 后3D 的訓(xùn)練方式,訓(xùn)練時(shí)間相較于直接3D 訓(xùn)練縮短近52%。后續(xù)將構(gòu)建存在障礙物的機(jī)械臂操作環(huán)境,通過(guò)深度強(qiáng)化學(xué)習(xí)算法訓(xùn)練得到控制模型,進(jìn)一步提升機(jī)械臂操控的智能化水平。