趙錦澤,王好臣,于躍華,李家鵬
(山東理工大學(xué)機械工程學(xué)院,山東 淄博 255000)
計算機性能的提升使機器學(xué)習(xí)進入“神經(jīng)網(wǎng)絡(luò)時代”,其中效仿動物行為決策模型的深度強化學(xué)習(xí)(Deep Reinforcement Learning,DRL)算法具有代表性,該算法有助于解決控制在復(fù)雜情景中難以決策計算的問題[1,2]。因此各學(xué)者以此算法探究各自研究領(lǐng)域中復(fù)雜問題的解決方案[3-5]。
盡管深度強化學(xué)習(xí)的方法在機器人采摘中已取得一定的理論研究突破[6-8],但都致力于提高深度神經(jīng)網(wǎng)絡(luò)性能,希望由一個深度神經(jīng)網(wǎng)絡(luò)直接決策機器人路徑。此種控制存在會錯誤判斷的隱患,限制了深度強化學(xué)習(xí)采摘機器人的應(yīng)用和推廣[9-11]。因此本文提出在深度強化學(xué)習(xí)采摘機器人訓(xùn)練和控制的體系中,增設(shè)安全防護模塊的方案。該方案不在于使神經(jīng)網(wǎng)絡(luò)性能提高,而是通過多個神經(jīng)網(wǎng)絡(luò)共同決策,對多組決策結(jié)果進行評估與篩查,摒棄其中路徑的錯誤解,進而能遏止機器人的錯誤動作,使用其中較優(yōu)路徑解作為驅(qū)動機器人的依據(jù),以此可提高機器人路徑?jīng)Q策的成功率。對研究采摘機器人深度強化學(xué)習(xí)路徑規(guī)劃具有一定的參考價值。
傳統(tǒng)的深度強化學(xué)習(xí)采摘機器人方案中,機器人果實的中心位置坐標(biāo)的“目標(biāo)點點集”、枝干點云的多個聚類中心坐標(biāo)的“障礙物點點集”、機器人姿態(tài)信息,按照特定步驟處理成智能體(Agent)狀態(tài)信息S0,輸入到被訓(xùn)練好的Arctor神經(jīng)網(wǎng)絡(luò)中,計算出機器人各關(guān)節(jié)速度的動作信號a0直接驅(qū)動機器人動作。
本文的傳統(tǒng)控制系統(tǒng)中Arctor網(wǎng)絡(luò)直接驅(qū)動機器人動作的過程,以安全算法模塊替代。輸入網(wǎng)絡(luò)的狀態(tài)信息S0,不再輸入到一個Arctor神經(jīng)網(wǎng)絡(luò)中,而是傳遞至安全算法模塊,由多個被訓(xùn)練好的Arctor神經(jīng)網(wǎng)絡(luò)進行計算,并逐個評估計算結(jié)果后再驅(qū)動機器人。
安全防護算法驅(qū)動機器人方式,如圖1所示,根據(jù)機器人末端執(zhí)行器的位置,從“目標(biāo)點點集”與“障礙物點點集”中找到目標(biāo)點與障礙物點。將目標(biāo)點、障礙物點、機器人姿態(tài)信息輸入至“安全算法”模塊,安全算法計算出適合當(dāng)前狀態(tài)S0驅(qū)動機器人的最優(yōu)動作。依動作指令驅(qū)動機器人關(guān)節(jié)電機動作,單位時間后進入下一姿態(tài)。進入新情景S1后重新根據(jù)機器人末端執(zhí)行器的位置尋找作為輸入的障礙物點,同機器人的新姿態(tài)與目標(biāo)點作為輸入網(wǎng)絡(luò),進行下一次決策。機器人由此方式循環(huán),直至機器人繞過障礙物使機器人末端執(zhí)行器位置接近目標(biāo)點坐標(biāo)。
圖1 采摘機器人信號傳遞與驅(qū)動方案
圖2 采摘機器人安全算法結(jié)構(gòu)示意圖
(1)
(2)
機器人軌跡從第n-1個位姿運行至第n個位姿的算例中,固定住末端執(zhí)行器模型原點上的坐標(biāo)系M和固定在機器人各關(guān)節(jié)模型原點上的坐標(biāo)系都由第n-1次運行至第n次的位姿可根據(jù)式(2)所示的旋量與角度的關(guān)系求得。
(3)
算法中設(shè)“干涉計算”模塊,目的是在多個路徑預(yù)判進程中篩除無效動作。干涉檢測模塊將在每個安全模塊算例中被多次調(diào)用,而傳統(tǒng)每次路徑插補中都使用點陣計算的干涉計算方式需消耗大量計算資源。因此神經(jīng)網(wǎng)絡(luò)路徑安全算法中所調(diào)用的干涉計算,僅在預(yù)測動作生成新狀態(tài)(S1)時的機器人位姿預(yù)測中進行干涉計算,而不再計算插補過程中的干涉。將機器人上若干球形盡可能包覆機器人架構(gòu),指定球心作為監(jiān)測點,其位置為機器人轉(zhuǎn)軸中心或關(guān)節(jié)軸中心,如圖3(a)所示。每次干涉的判別以各個監(jiān)測點與障礙物點間的距離為依據(jù)。
圖3 采摘機器人上干涉監(jiān)測點的標(biāo)記
其中球心ps的新位置(psx′,psy′,psz′)如式(4)所示,由新的機器人上點的坐標(biāo)變換Tss′推出。對機器人各標(biāo)記點到障礙物的距離如式(5)所示與預(yù)設(shè)安全距離lsafe做比較,若距離小于安全距離則視為存在干涉,如圖3(b)所示。
(4)
(5)
算法中設(shè)“動作選擇”模塊目的是篩選決策結(jié)果,對在不同神經(jīng)網(wǎng)絡(luò)驅(qū)動機器人運動若干步之后的機器人姿態(tài)作為路徑預(yù)測的結(jié)果進行比較,選擇能使機器人姿態(tài)更接近目標(biāo)點的神經(jīng)網(wǎng)絡(luò),以該神經(jīng)網(wǎng)絡(luò)對機器人當(dāng)前姿態(tài)下的動作決策來驅(qū)動機器人關(guān)節(jié)電機。即選擇使末端執(zhí)行器坐標(biāo)系原點位置PTj與機器人路徑目標(biāo)點PR歐式距離達到最小值的神經(jīng)網(wǎng)絡(luò)(式(6)所示)來決策機器人在一狀態(tài)下的動作。
min{Dist(PT1,PR),Dist(PT2,PR),…,Dist(PTJ,PR)}
(6)
若在最終網(wǎng)絡(luò)動作選擇階段,所有網(wǎng)絡(luò)都無法成功完成預(yù)期動作,機器人均撞上障礙物或機器人達到自身死點,則視為所有網(wǎng)絡(luò)均無法完成機器人繞過障礙物的采摘而將機器人急停。
決策機器人采摘動作所使用的Arctor網(wǎng)絡(luò)是通過計算機訓(xùn)練得出的[15],深度強化學(xué)習(xí)中Arctor-Crictor方案的機器人采摘訓(xùn)練架構(gòu)如圖4所示。使用Arctor-Crictor智能體將計算機給出的果實中心坐標(biāo)、障礙物位置、機器人位姿信息等一系列數(shù)組作為輸入量x傳遞給Arctor網(wǎng)絡(luò)進行計算,輸出一串能表示此時智能體認(rèn)為最優(yōu)動作a的信號,再對此輸出信號進行決策評估。
圖4 采摘機器人的神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型
將決策評估的輸出量做為機器人關(guān)節(jié)上電機的目標(biāo)速度,機器人關(guān)節(jié)上的電機在收到信號后會經(jīng)響應(yīng)函數(shù)達到智能體所指定的目標(biāo)速度。
機器人關(guān)節(jié)電機運動使機器人動作,一定時間后機器人會運動至下一狀態(tài)。電腦仿真環(huán)境會對機器人經(jīng)過單位時間由一狀態(tài)S0運動至下一狀態(tài)S1的過程以預(yù)先設(shè)好的標(biāo)準(zhǔn)做出評價,若新狀態(tài)更接近目標(biāo)位置或移動至規(guī)避障礙物的路徑則評判為運動得好,此時環(huán)境會給出相應(yīng)的0到1以內(nèi)的正獎勵,若機器人的移動沒有使新狀態(tài)更接近目標(biāo)位置或使機械臂碰觸障礙物則評判為運動得不好,此時環(huán)境會給出相應(yīng)的-1到0以內(nèi)的負(fù)獎勵做為懲罰。Critic網(wǎng)絡(luò)會對Arctor網(wǎng)絡(luò)發(fā)出的機器人動作進行評估,評估的結(jié)果會與環(huán)境的獎勵做TD-error的差反向傳遞給網(wǎng)絡(luò)部分使網(wǎng)絡(luò)優(yōu)化,使用式(7)所示方式對Critic網(wǎng)絡(luò)進行訓(xùn)練。而Critic網(wǎng)絡(luò)驅(qū)動Arctor網(wǎng)絡(luò)以誤差反向傳遞的方式更新。
Q(x,a)←Q(x,a)+α[r+γmaxa′Q(x′,a′)-Q(x,a)]
(7)
網(wǎng)絡(luò)Crictor對機器人采摘策略π的Arctor網(wǎng)絡(luò)不斷進行改進,機器人采摘的智能體能依據(jù)探索環(huán)境獲取更高采摘獎勵r,機器人動作a根據(jù)環(huán)境的反饋優(yōu)化自身的的策略神經(jīng)網(wǎng)絡(luò)Q(x,a)。深度強化學(xué)習(xí)探求采摘策略最大化采摘獎勵的過程(式(8)),使機器人具有自身對改變外界環(huán)境具有對動作決策能力。
(8)
實驗在Window 10系統(tǒng)搭載V-Rep 2.1、python 3.0和tensorflow 15.0的電腦上進行。將實驗的Arctor網(wǎng)絡(luò)訓(xùn)練,以及安全算系統(tǒng)搭建的主要步驟整理如表1所示。首先,訓(xùn)練出用于實驗的5 組Arctor網(wǎng)絡(luò),之后對以5 組Arctor網(wǎng)絡(luò)為主體的安全系統(tǒng)的性能進行測評。
表1 五組機器人成功率統(tǒng)計表
算法步驟1 網(wǎng)絡(luò)訓(xùn)練
搭建仿真環(huán)境、設(shè)計獎勵函數(shù)R(s)
for i=1,2,3,4,5 do:
隨機生成Arctor網(wǎng)絡(luò)NNi(x)、Crictor網(wǎng)絡(luò)CNi(x)
搜集輸入x=[目標(biāo)點信息、障礙物點信息、機器人信息]
計算動作a=NNi(x)+λ(rand())
環(huán)境仿真計算[s′,r]=f(s,a)
TD-error根據(jù)[x,s,a,r]更新NNi(x)與CNi(x)網(wǎng)絡(luò)
參數(shù)更新s=s′、λ=αλ
得出Arctor網(wǎng)絡(luò)NN1(x)、NN2(x)、…、NN5(x)
算法步驟2 安全算法決策,計算當(dāng)情景s0時的最優(yōu)動作as
搜集輸入x=[目標(biāo)點信息、障礙物點信息、機器人信息]
for i=1,2,3,4,5 do:
for j=1,2,…,迭代次數(shù)J do:
計算動作aji=NNi(xi)
Di=+∞;
break;
if j==J:
if [D1,D2,D3,D4,D5]==+∞:
機器人急停
else 動作選擇使Di最小的a1i,令as=a1i進行驅(qū)動
機器人進入下一情景s1
以FANUC Robot M-710iC型號機器人的模型搭建物理引擎。環(huán)境中設(shè)置用于智能體學(xué)習(xí)的機器人目標(biāo)點與障礙物點,機器人每開始一次抓取會隨機生成一個目標(biāo)點,隨機產(chǎn)生的坐標(biāo)在距離機器人機身500 mm之外且便于機器人抓取的范圍內(nèi)。機器人每開始一次抓取會更新出障礙物點,障礙物點點坐標(biāo)在距機器人150 mm之外、機器人動作空間之內(nèi)。機器人每次任務(wù)開始機器人姿態(tài)為動作空間內(nèi)隨機選取。智能體向機器人發(fā)送運動指令,電機升降速度選用梯形函數(shù)。智能體每隔0.5 秒判斷一次機器人的運動情況,并計算當(dāng)前狀態(tài)下適于機器人獲得更高獎勵的動作信號使機器人運動。設(shè)置獎勵函數(shù),將并行的機器人數(shù)量設(shè)置為每組3 臺共5 組,以A3C的方式訓(xùn)練機器人。
智能體在被反復(fù)訓(xùn)練后能控制機器人在每個Epoch中所規(guī)劃的路徑獲得更高的獎勵,圖5展示了實驗中5 組機器人的訓(xùn)練過程,每組機器人的智能體在每個Epoch能獲取的獎勵值隨訓(xùn)練進行而提高。
圖5 五組機器人的DRL訓(xùn)練獎勵值變化曲線
訓(xùn)練次數(shù)不足100 次的初期階段如圖6所示,可見智能體決策的動作拼湊為機器人雜亂的軌跡,此種狀態(tài)下機器人無法完成采摘任務(wù)。而圖7所示為訓(xùn)練Epoch的次數(shù)達800 到1 000 次時機器人的規(guī)律路徑,且路徑能完成采摘任務(wù)并規(guī)避障礙物。
圖6 機器人DRL訓(xùn)練初期階段采摘路徑
圖7 機器人DRL訓(xùn)練中后期的采摘路徑
對多組神經(jīng)網(wǎng)絡(luò)完成果實采摘任務(wù)的成功率進行統(tǒng)計,機器人由單個網(wǎng)絡(luò)控制模擬果實采摘任務(wù)1 000 次。單次實驗視為成功的條件為:由神經(jīng)網(wǎng)絡(luò)決策20 次以內(nèi)控制機器人完成采摘。單次實驗視為干涉條件為:機器人在神經(jīng)網(wǎng)絡(luò)決策控制20 次以內(nèi)機器人機身與障礙區(qū)域發(fā)生碰撞或神經(jīng)網(wǎng)絡(luò)的動作驅(qū)使機器人運行至動作空間之外。統(tǒng)計各個神經(jīng)網(wǎng)絡(luò)的干涉率與成功率如表1所示。
其中末端執(zhí)行器中心位置抵達距目標(biāo)點200 mm內(nèi)的區(qū)域視為完成采摘,障礙區(qū)域為當(dāng)前時刻被標(biāo)記為障礙物點的100 mm范圍內(nèi)區(qū)域。
在機器人的運行中添加基于軌跡預(yù)判的安全保障算法。根據(jù)安全保障算法中軌跡預(yù)判的迭代次數(shù)不同,設(shè)置實驗使機器人運行,每個不同的迭代次數(shù)進行200 次實驗。統(tǒng)計成功率如表2所示。
表2 安全算法不同參數(shù)的效能
隨著安全算法中軌跡決策預(yù)判的迭代次數(shù)的提高使路徑規(guī)劃的成功率提高,雖消耗了計算資源,但在軌跡預(yù)判的迭代次數(shù)提升至5 次時,安全算法極大程度提高了路徑?jīng)Q策的成功率,且能使機器人運行連貫的采摘路徑。說明安全算法能保障了機器人運行路徑的穩(wěn)定性,降低機器人無效決策的出現(xiàn)頻率。其中由圖8與圖9的對比可見,機器人在不設(shè)安全算法時雖能完成采摘與避障任務(wù),但路徑曲折,其中缺陷決策較多,而機器人在安全算法的輔助下采摘路徑穩(wěn)定。由此證明安全決策的算法在機器人路徑規(guī)劃中發(fā)揮作用。
圖8 機器人不設(shè)安全算法的采摘路徑
圖9 安全算法決策下機器人的采摘路徑
描述了一種應(yīng)用于深度強化學(xué)習(xí)機器采摘的安全算法,旨在規(guī)避神經(jīng)網(wǎng)絡(luò)決策錯誤動作而對機器人造成損害。通過機器人正運算的軌跡預(yù)測,預(yù)判機器人會與障礙物干涉時對機器人發(fā)送急停命令的方式,消除了機器人在采摘中會與作業(yè)果枝發(fā)生碰觸的風(fēng)險。且通過對多個預(yù)測軌跡篩選較優(yōu)值來執(zhí)行的決策方式,提高了神經(jīng)網(wǎng)絡(luò)控制機器人路徑?jīng)Q策的成功率。為研究采摘機器人深度強化學(xué)習(xí)路徑規(guī)劃具有一定的參考價值。