許智賢,劉成峰,吳榮基,朱曉偉,陳 科
(廣東電網(wǎng)有限責(zé)任公司陽江供電局,廣東 陽江 529500)
機器人技術(shù)的迅猛發(fā)展及其廣泛應(yīng)用,對國家生產(chǎn)力的提升以及整個人類社會的進步均產(chǎn)生強有力的推動作用,不僅如此,還在很大程度上改善了人們的生活。作為現(xiàn)實生活和社會生產(chǎn)使用最早的一類機器人,機械臂的協(xié)同操縱可以完成非常多的任務(wù)[1]。與機械臂性能的優(yōu)化相伴隨,其應(yīng)用已然由制造業(yè)實現(xiàn)了向軍事[2]、醫(yī)療[3]以及太空探索[4]等諸多領(lǐng)域的拓展,甚至可以代替人類進入一些有著較高危險性的環(huán)境之中,執(zhí)行炸彈拆除等任務(wù)[5]。正是在應(yīng)用領(lǐng)域日益擴展的過程中,機械臂工作環(huán)境的復(fù)雜程度越來越高,在很大程度上增加了其與工作環(huán)境中障礙物或待操作目標發(fā)生碰撞的可能性[6]。難以預(yù)期的各類碰撞會增加任務(wù)完成的難度,還有可能損害機械臂系統(tǒng)的運行甚至是操作人員的安全。由此可知,開展機械臂避障軌跡序列模式挖掘的研究具有重要意義。
實際上,機械臂的運動軌跡所處的空間表現(xiàn)出連續(xù)變化的特點,除此之外,在三維空間中,機械臂對軌跡序列模式的挖掘同樣有連續(xù)性特點表現(xiàn)出來。以往學(xué)者們提出的以值函數(shù)Q-learning[7]和SARSA的強化學(xué)習(xí)方法為基礎(chǔ)的具有連續(xù)變化特點的空間問題解決方法,主要是通過在一個Q表中進行動態(tài)動作值的離散映射來完成,而連續(xù)動作空間和狀態(tài)空間通過對Q表的使用執(zhí)行相應(yīng)的存取任務(wù)其實對內(nèi)存的消耗非常大,效率也不高。為了很好地彌補Q表存在的不足,學(xué)者們通過不懈的研究提出DQN(deep Q network)算法[8],主要是基于神經(jīng)網(wǎng)絡(luò)的支持對狀態(tài)值進行擬合處理,以此替代Q表,這種方法的采用在一定程度上實現(xiàn)了對狀態(tài)動作空間映射效率的提升以及存儲空間的大幅度減小。然而,DQN算法雖然表現(xiàn)出高效率優(yōu)勢,但是在應(yīng)用于高維觀察空間之時,依舊是只能執(zhí)行對離散和低維動作空間的處理任務(wù)[9]。對于機械臂避障問題,確定性策略梯度(deterministic policy gradient,DPG)對于連續(xù)動作輸出場景的解決有很好的適用性[10]。為了在較短時間內(nèi)確定一條與機械臂運動要求相符且可避開障礙物的路徑,同時有效提高路徑挖掘精度,本文有效結(jié)合DQN與DPG兩種算法,運用基于演員-評論家(Actor-Critic)算法[11]的深度確定性策略梯度(deep deterministic policy gradient,DDPG)算法[12],在機械臂對障礙物的自主規(guī)避場景中對其加以運用,并對實際避障軌跡進行仿真實驗。
基于DDPG算法的支持,智能體能夠與環(huán)境進行交互,并以此獲取相應(yīng)的狀態(tài),同時,對神經(jīng)網(wǎng)絡(luò)加以運用,還能獲取動作策略。而在智能體執(zhí)行具體的動作策略之后,所處環(huán)境又能向其發(fā)出反饋信息,經(jīng)由強化學(xué)習(xí)決策能力的支持,完成對各相關(guān)、策略的評價,并進一步更新神經(jīng)網(wǎng)絡(luò)。圖1所示為算法的網(wǎng)絡(luò)結(jié)構(gòu)示意圖[13]。
在Actor-Critic算法中,Actor和Critic中各自含有2個神經(jīng)網(wǎng)絡(luò),一個是Eval網(wǎng)絡(luò),另一個是Target網(wǎng)絡(luò)。其中,Actor中的Eval網(wǎng)絡(luò)會與當前的實際狀態(tài)st相結(jié)合將適宜的動作at確定下來,同時執(zhí)行對策略網(wǎng)絡(luò)參數(shù)θ的更新任務(wù);對應(yīng)的,Target網(wǎng)絡(luò)會結(jié)合經(jīng)驗池采樣的下一個狀態(tài)st+1,執(zhí)行對下一個適宜動作at+1的確定任務(wù),在對網(wǎng)絡(luò)參數(shù)θ′進行更新時,θ為其提供相應(yīng)的更新數(shù)據(jù)來源。在進行損失函數(shù)的設(shè)定時,用狀態(tài)和行為的評價均值來表示:
Loss=-mean(Q(st,at,θ))
(1)
式中:Loss為損失函數(shù)的設(shè)定;mean為求均值;Q為狀態(tài)值。
在Critic中,Eval網(wǎng)絡(luò)會以實際的狀態(tài)st和動作at為依據(jù)對當前的Q值Q(st,at)進行計算,同時執(zhí)行對價值網(wǎng)絡(luò)參數(shù)ω的更新任務(wù);以st+1和at+1為依據(jù),Target網(wǎng)絡(luò)對下一狀態(tài)的實際Q值Q(st+1,at+1)進行計算,網(wǎng)絡(luò)參數(shù)ω′通過ω更新。
QTarget=γ·Q′(st+1,at+1,ω′)
(2)
式中:QTarget為目標狀態(tài)值;Q′(st+1,at+1,ω′)為下一狀態(tài)實際Q值;γ為折扣因子,主要表示時間遠近對獎勵的影響,如果此值呈現(xiàn)出不斷減小之勢,則意味著對于當前的獎勵持以越來越看重的態(tài)度?;趯讲畹牟捎?,執(zhí)行對網(wǎng)絡(luò)可優(yōu)化損失函數(shù)的構(gòu)建任務(wù)。
Loss=E[(QTarget-Q(st,at,ω))2]
(3)
式中:E表示作均方差處理。
1.2.1狀態(tài)空間與動作空間設(shè)計
在獲取每一相關(guān)類型的觀測數(shù)據(jù)以后,移動機器人會對機械臂進行驅(qū)動,由其執(zhí)行具體的作業(yè)。本文設(shè)定這些觀測數(shù)據(jù)分別為激光雷達數(shù)據(jù)、上一步的動作、機械臂與目標點的方位和距離:St=[Dt,at-1,ρt,χt]。其中,St表示機械臂的狀態(tài),Dt=[d1…d10]T∈ξ1,表示激光雷達在10個方位上對障礙物距離所作的測量;at-1∈ξ2,表示(t-1)時刻機械臂的動作,包含線速度與角速度兩個數(shù)據(jù);ρt∈ξ1,指的是目標點所在的方位;χt∈ξ1,表示與目標點之間的距離。
機械臂的動作空間涉及到的指標如下:1)沿著X軸方向上的線速度v(對應(yīng)慣性坐標系);2)沿著Z軸旋轉(zhuǎn)的角速度ω(對應(yīng)集體坐標系)。
1.2.2獎勵函數(shù)設(shè)計
為了讓機械臂挖掘出一條沒有碰撞的長度比較短的軌跡。在機械臂與目標點相靠近的過程中,將獎勵值函數(shù)設(shè)定為:
(4)
式中:Rarrival為設(shè)定的獎勵值;rarrival為具體獎勵值;d1為激光雷達在方位1上對障礙物距離所作的測量。
如果機械臂和障礙物發(fā)生碰撞,對其懲罰值函數(shù)進行如下設(shè)計:
(5)
式中:Rcollision為設(shè)定的懲罰值;rcollision為具體懲罰值。
為了發(fā)揮很好的引導(dǎo)作用,讓機械臂在一個較短的時間內(nèi)與目標點接近,以機械臂與目標點之間距離的變化量為依據(jù),同樣進行獎勵函數(shù)的設(shè)計:
(6)
式中:Rdis為根據(jù)機械臂和目標點間距離變化量設(shè)定的獎勵值;rdis為根據(jù)機械臂和目標點間距離變化量的具體獎勵值。
由此,可以得到機械臂的全部獎勵值函數(shù):
R=Rarrival+Rcollsion+Rdis
(7)
式中:R為全部獎勵值。
1.2.3神經(jīng)網(wǎng)絡(luò)設(shè)計
神經(jīng)網(wǎng)絡(luò)是由非常多的簡單基本元件——神經(jīng)元相互連接而成的自適應(yīng)非線性動態(tài)系統(tǒng),各神經(jīng)元有著較為簡單的結(jié)構(gòu)與功能,不過大量神經(jīng)元經(jīng)過組合產(chǎn)生的系統(tǒng)行為卻十分復(fù)雜,它能用于反映人腦功能若干基本特性,但并不是生物系統(tǒng)的逼真描述,僅是某種類型的模仿、簡化以及抽象。神經(jīng)網(wǎng)絡(luò)需要先基于特定學(xué)習(xí)準則進行學(xué)習(xí),之后才可以工作。此處以神經(jīng)網(wǎng)絡(luò)對于A、B兩個字母的識別為例加以說明,規(guī)定當A輸入網(wǎng)絡(luò)時,需要將1輸出,當B輸入網(wǎng)絡(luò)時,則將0輸出。故而網(wǎng)絡(luò)學(xué)習(xí)準則需設(shè)定如下:若網(wǎng)絡(luò)做出錯誤判斷,則經(jīng)由網(wǎng)絡(luò)學(xué)習(xí),令網(wǎng)絡(luò)下次犯相同錯誤的可能性降低。對此,先給網(wǎng)絡(luò)各連接權(quán)值賦予[0,1]區(qū)間的隨機值,在網(wǎng)絡(luò)中輸入A對應(yīng)的圖像模式,網(wǎng)絡(luò)對輸入模式進行加權(quán)求和處理,之后和門限比較,再執(zhí)行非線性運算,可以得到相應(yīng)的輸出。該情況下,網(wǎng)絡(luò)輸出1和0的概率相同,都是50%,若結(jié)果為1(結(jié)果正確),連接權(quán)值會增加,有利于后續(xù)網(wǎng)絡(luò)再次遇到A模式輸入時正確判斷;但若結(jié)果為0(結(jié)果錯誤),則將連接權(quán)值向減小綜合輸入加權(quán)值的方向調(diào)整,有利于后續(xù)網(wǎng)絡(luò)再次遇到A模式輸入時錯誤可能性降低。經(jīng)過以上若干次的學(xué)習(xí),網(wǎng)絡(luò)判斷正確率會在很大程度上得以提升,意味著網(wǎng)絡(luò)對兩個模式的學(xué)習(xí)已經(jīng)取得成功,并實現(xiàn)了對其在網(wǎng)絡(luò)各連接權(quán)值上的分布式記憶,若是網(wǎng)絡(luò)再次遇到其中任一模式,便能在極短的時間內(nèi)得到準確的判別結(jié)果。通常,網(wǎng)絡(luò)中神經(jīng)元數(shù)量越多,其可以記憶與識別的模式也會越多。
基于神經(jīng)網(wǎng)絡(luò)工作原理,本文進一步進行神經(jīng)網(wǎng)絡(luò)策略的構(gòu)建。本文的策略網(wǎng)絡(luò)為四層神經(jīng)網(wǎng)絡(luò),輸入層是機械臂目前的實際狀態(tài),輸出層則是其線速度與角速度,中間有2個隱含層。其中,輸入層的神經(jīng)元數(shù)量為12,2個隱含層中的神經(jīng)元數(shù)量都是250,在首層和隱含層1之間、隱含層1和隱含層2之間均通過全連接方式建立起相互之間的連接,對Sigmoid激活函數(shù)加以運用。價值網(wǎng)絡(luò)所用的是類似的網(wǎng)絡(luò)結(jié)構(gòu),主要不同體現(xiàn)在:價值網(wǎng)絡(luò)的輸入層一共有兩個部分,一是機械臂目前的實際狀態(tài),一是其當前的動作值;輸出層的神經(jīng)元數(shù)量設(shè)定為1,也就是相應(yīng)的Q值。
進一步地,將DDPG算法與人工勢場法相結(jié)合,進行修正動作值的計算,并將最終的計算結(jié)果加入DDPG算法策略中,從而為機械臂避障軌跡平滑度的提升以及軌跡長度的減小提供相應(yīng)的保證。圖2所示為基于DPPG算法的機械臂避障運行步驟示意圖。
圖2中,a1=[av,aω1]和a2=[av,aω2]為本文設(shè)計的機械臂的修正動作,其中av=0.25表示線速度,aω1和aω2表示角速度;a為DDPG算法產(chǎn)生的動作。
圖2 基于DDPG算法的機械臂避障運行步驟
若機械臂的周圍有障礙物存在,或者與目標點靠近,障礙物會對機械臂產(chǎn)生斥力,對應(yīng)的,目標點產(chǎn)生的為引力。
本文實驗平臺為ABB1410型號的機器人[14]工作站,具有操作便捷、動作靈活的優(yōu)點,另外,與第三方軟件的通訊亦很理想。實驗運用成熟產(chǎn)品,可以為控制精度以及實驗數(shù)據(jù)的真實性提供保證。
1)機械臂本體。此機械臂基本結(jié)構(gòu)是一開鏈式6連桿機構(gòu),機身的各個關(guān)節(jié)全部接受伺服電機的驅(qū)動作用,各個電機均配置編碼器和剎車,在伺服驅(qū)動器和控制器兩者之間借助于CANopen總線建立起數(shù)據(jù)通訊關(guān)系,通過對每個關(guān)節(jié)轉(zhuǎn)動的控制,達到讓末端執(zhí)行器進行相應(yīng)運動的目的。
2)在整個工作站中,機械臂控制柜發(fā)揮著大腦的重要作用。控制柜包含的模塊比較多,分別有計算機主板、網(wǎng)絡(luò)通信計算機、驅(qū)動單元以及通信單元等。一方面,控制柜能夠和其他相關(guān)的外部設(shè)備通信,接收由操作板或其他系統(tǒng)傳遞過來的信號,同時完成對相關(guān)數(shù)據(jù)及程序的儲存;另一方面,它又能夠和伺服系統(tǒng)進行對接,發(fā)揮出對機械臂運動進行直接控制的重要作用。
3)機械臂伺服系統(tǒng)。在機器人系統(tǒng)中,伺服系統(tǒng)工作性能的優(yōu)劣以及可靠性的高低會對整個機械臂的性能產(chǎn)生直接影響,主要由變壓器、主計算機、軸計算機、驅(qū)動板和編碼器組成[15]。該系統(tǒng)可基于串口測量板數(shù)據(jù)獲取機械臂信息,通過相應(yīng)處理,用于機械臂下一步動作的規(guī)劃,并輸出新位置與速度控制。圖3所示為系統(tǒng)示意圖。
圖3 機械臂伺服系統(tǒng)示意圖
實驗的主要目的為對基于本文算法的機械臂避障可行性進行驗證,針對實驗流程,進行以下幾點設(shè)計:第一,以機械臂實際工作空間為參照進行環(huán)境模型的構(gòu)建,明確障礙物的信息以及初始點與目標點的坐標;第二,借助于算法挖掘最優(yōu)軌跡序列,同時在機器人控制軟件中導(dǎo)入軌跡節(jié)點,編寫控制程序;第三,在機械臂控制柜中同步輸入調(diào)試好的程序,達到機械臂避障目的。
實驗過程按以下步驟進行:
1)實驗平臺搭建。結(jié)合相應(yīng)要求,對機械臂控制柜進行接線處理,并用網(wǎng)線對通訊轉(zhuǎn)換模塊和計算機網(wǎng)口進行連接,擺放方形盒子,用其充當障礙物。圖4所示為搭建好的實驗平臺。
圖4 仿真實驗驗證平臺
2)機械臂初始化。連接控制柜電源,初始化機身狀態(tài),讓機身回到零點。校準機械臂運動狀態(tài),對其工具中心點進行標定,設(shè)置該點位置為末端關(guān)節(jié)中心點。
3)同步控制程序。在RobotStudio軟件中導(dǎo)入DDPG算法規(guī)劃的機械臂節(jié)點數(shù)據(jù),利用RAPID語言編寫機械臂運動程序,建立機械臂控制柜和軟件間通訊,在機器人控制盒中,對已經(jīng)編譯好的程序作相應(yīng)的同步處理。
4)運行程序,對具體的實現(xiàn)過程進行觀察,啟動機械臂,記錄避障過程,每隔1 s截取一幀圖片。
本文借助RobotStudio對機械臂避障軌跡進行記錄,并將其與算法規(guī)劃的理想運動軌跡進行比較,結(jié)果如圖5所示。
圖5 機械臂實際避障軌跡與理想軌跡的對比結(jié)果
由圖5可知,在XY平面、YZ平面,機械臂的實際軌跡與理想軌跡基本實現(xiàn)了重合;在XZ平面,雖然實際軌跡和理想軌跡之間有一定的偏差,但是該偏差非常小,僅在很小的范圍內(nèi)有相對明顯的體現(xiàn),其他位置大體重合,對應(yīng)部分的偏差可大致忽略不計;在XYZ三維空間中,機械臂實際軌跡和理想軌跡的重合程度比較高。綜合而言,在本文算法的支持下,機械臂可以沿著挖掘好的避障軌跡序列模式運動,當遇到障礙物時能及時避障,整個運動過程表現(xiàn)出較好的平穩(wěn)性,意味著本文避障方法是可行和有效的。
不過,使用本文所提方法,機械臂避障軌跡與理想軌跡之間尚有一些誤差存在,約是2 mm,究其原因,可能在于算法挖掘的軌跡序列比較依賴理想條件下的模型,但機械臂在實際使用過程中必然存在一些裝配誤差、傳動誤差,從而導(dǎo)致實際避障和理論避障出現(xiàn)一定誤差。
對人工智能目標進行分析,其中非常重要的一點就是基于對未經(jīng)處理的高維傳感數(shù)據(jù)的運用,實現(xiàn)對相關(guān)復(fù)雜任務(wù)的有效解決。強化學(xué)習(xí)算法DQN的提出,使得機器的智能化程度得到了大幅度的提升。不過DQN算法主要是對離散型低維動作空間進行處理,在現(xiàn)實生活場景中,有很多類型的連續(xù)控制問題存在,在對連續(xù)動作的選擇中,將DQN與DPG兩種算法進行結(jié)合形成DDPG算法,可以將兩種算法的優(yōu)勢很好地發(fā)揮出來,與傳統(tǒng)的DPG算法相比,DDPG算法對于連續(xù)動作的控制達到的效果要更加理想。本文對DDPG算法加以運用,將其應(yīng)用于機械臂智能避障場景之中,可在較短時間內(nèi)搜尋到一條與機械臂運動要求相符,且能夠避開障礙物的最優(yōu)路徑。