謝文顯,孫文磊,劉國(guó)良,徐洋洋
(新疆大學(xué)機(jī)械工程學(xué)院,烏魯木齊 830047)
隨著工業(yè)4.0逐步普及,各制造工廠都依靠自動(dòng)化生產(chǎn)線逐漸實(shí)現(xiàn)智能化。為降低生產(chǎn)成本、提高焊接的效率和精度、減輕作業(yè)的強(qiáng)度和風(fēng)險(xiǎn),人工焊接已基本被焊接機(jī)器人所取代。而作為降低成本和提高效率的前提,對(duì)焊接路徑進(jìn)行合理的規(guī)劃必不可少。目前,對(duì)焊接機(jī)器人路徑規(guī)劃的研究大都在算法上進(jìn)行改進(jìn)來(lái)縮短路徑規(guī)劃的時(shí)間,這些算法可大致分為傳統(tǒng)路徑規(guī)劃算法,如A*算法、D*算法、RRT算法等;以及仿生智能路徑規(guī)劃算法,如遺傳算法(GA)、果蠅優(yōu)化算法(FOA)、粒子群算法(PSO)等。孫靈碩[1]運(yùn)用改進(jìn)的RRT-Connect算法,有效地避免了隨機(jī)樹(shù)在路徑搜索過(guò)程中陷入凹形障礙區(qū)域所造成的算法性能下降的問(wèn)題。裴躍翔等[2]引入一種結(jié)合模擬退火算法的篩選操作來(lái)改進(jìn)基本遺傳算法,增強(qiáng)算法局部搜索能力,改善了GA容易陷入局部最優(yōu)、搜索過(guò)程比較慢以及效率低下的問(wèn)題。姚江云等[3]提出改進(jìn)人工蜂群算法,用Lévy (萊維) 分布代替?zhèn)刹榉鋵ふ倚旅墼吹倪^(guò)程中原有0~1之間的隨機(jī)分布,使焊接機(jī)器人在較短的時(shí)間內(nèi)搜索到全局最優(yōu)路徑。
雖然上述算法已經(jīng)發(fā)展的較為成熟,但它們只能規(guī)劃出固定場(chǎng)景下的最優(yōu)路徑,當(dāng)機(jī)器人所在環(huán)境發(fā)生變化后,機(jī)器人需要重新認(rèn)識(shí)環(huán)境后才能進(jìn)行路徑規(guī)劃,這無(wú)疑會(huì)消耗大量的時(shí)間。針對(duì)現(xiàn)實(shí)中機(jī)器人在應(yīng)用時(shí)所面對(duì)的多變的環(huán)境,若能讓機(jī)器人通過(guò)訓(xùn)練學(xué)會(huì)某種策略,使其即使面對(duì)全新的環(huán)境也能直接進(jìn)行路徑規(guī)劃,不僅會(huì)增加機(jī)器人的適應(yīng)性,還能節(jié)省大量的人力物力資源,進(jìn)而提高工作的效率。強(qiáng)化學(xué)習(xí)的出現(xiàn)和迅速發(fā)展讓這成為了可能。不同于監(jiān)督學(xué)習(xí),強(qiáng)化學(xué)習(xí)是一種在基本沒(méi)有先驗(yàn)知識(shí)對(duì)智能體的動(dòng)作選擇進(jìn)行指導(dǎo)的情況下,讓智能體從一開(kāi)始什么都不會(huì),通過(guò)不斷嘗試,從錯(cuò)誤中學(xué)習(xí),最后找到規(guī)律,學(xué)會(huì)到達(dá)目標(biāo)的方法。近年來(lái),將深度學(xué)習(xí)與強(qiáng)化學(xué)習(xí)相結(jié)合已成為一種趨勢(shì),二者融合而成的深度強(qiáng)化學(xué)習(xí)算法與改進(jìn)的智能算法相結(jié)合后逐漸廣泛應(yīng)用在各種機(jī)器人上,包括移動(dòng)機(jī)器人的路徑規(guī)劃[4-5],無(wú)人機(jī)的自主導(dǎo)航與任務(wù)分配[6-7],機(jī)械臂的操控[8]以及實(shí)際生產(chǎn)線上的人機(jī)協(xié)作問(wèn)題[9]等。
本文提出一種基于強(qiáng)化學(xué)習(xí)的機(jī)器人路徑規(guī)劃策略,讓機(jī)器人能自主運(yùn)用所學(xué)會(huì)的策略,控制其末端從焊縫起點(diǎn)到終點(diǎn)的過(guò)程中,能盡可能的沿著焊縫的中心線運(yùn)動(dòng),且在面對(duì)全新的測(cè)試軌道中,也依然能順利完成路徑規(guī)劃任務(wù)。
針對(duì)當(dāng)下各種接焊方式中應(yīng)用廣泛的的對(duì)接接頭,由于受到仿真軟件的局限,將焊縫模型按圖1所示簡(jiǎn)化為曲線型的軌道模型,并用ur5六軸機(jī)械臂代替焊接機(jī)器人進(jìn)行研究。
圖1 對(duì)接接頭及焊 縫簡(jiǎn)化模型
本文中,ur5機(jī)械臂在未知的軌道環(huán)境中,通過(guò)與環(huán)境的交互來(lái)確定最優(yōu)策略,使其從軌道的起點(diǎn)到終點(diǎn)的過(guò)程中盡可能靠近中線,獲得最大的回報(bào)值??捎民R爾可夫決策過(guò)程(markov decision process,MDP)來(lái)對(duì)該研究問(wèn)題進(jìn)行建模,MDP的動(dòng)態(tài)過(guò)程如圖2所示。
圖2 MDP動(dòng)態(tài)過(guò)程圖
智能體的初始狀態(tài)為s0,通過(guò)策略π0執(zhí)行動(dòng)作a0后轉(zhuǎn)移到下一個(gè)狀態(tài)s1,并從環(huán)境中獲得回報(bào)值r0。隨后在新的狀態(tài)s1,智能體采取新的策略與環(huán)境持續(xù)交互直至到達(dá)目標(biāo)狀態(tài)sT,在該過(guò)程中智能體會(huì)累積得到一系列的回報(bào)(r0,r1,…),可用式(1)來(lái)表示累計(jì)回報(bào):
(1)
式中,γ∈[0,1]為折扣因子,用來(lái)權(quán)衡未來(lái)回報(bào)對(duì)累積回報(bào)的影響。整個(gè)模型的構(gòu)建主要包括狀態(tài)、動(dòng)作、策略和獎(jiǎng)勵(lì)4個(gè)要素。
作為智能體的ur5機(jī)械臂的末端裝有激光雷達(dá),激光雷達(dá)向自身360°范圍內(nèi)射出360條激光線,相鄰激光線之間均間隔1°,每條激光線都會(huì)測(cè)量并返回一個(gè)該方向障礙物的距離數(shù)據(jù)。機(jī)械臂每次執(zhí)行動(dòng)作后會(huì)改變激光雷達(dá)的位姿,其所測(cè)得的各個(gè)方向的激光數(shù)據(jù)也會(huì)發(fā)生相應(yīng)變化,因此可以用測(cè)得的激光數(shù)據(jù)所組成的列表來(lái)描述模型的狀態(tài)。但為了減少智能體的訓(xùn)練時(shí)間,加快學(xué)習(xí)效率,可適當(dāng)?shù)膭h去不必要的數(shù)據(jù)輸入。最后選擇以激光雷達(dá)的正前方作為基準(zhǔn),向左、右各偏轉(zhuǎn)120°范圍內(nèi)的共240個(gè)激光數(shù)據(jù)作為整個(gè)系統(tǒng)的輸入狀態(tài),如圖3所示。
圖3 激光雷達(dá)示意圖
圖3中黑色的圓為激光雷達(dá),淺灰色箭頭為此時(shí)激光雷達(dá)的正前方,240°范圍內(nèi)的共240條激光線測(cè)得的激光數(shù)據(jù)所組成的列表st=[L0,L1,…,L238,L239]t就是模型在t時(shí)刻的狀態(tài),各個(gè)時(shí)刻的狀態(tài)st共同組成了模型總的狀態(tài)S。
在整個(gè)模型中,機(jī)械臂執(zhí)行動(dòng)作后本質(zhì)上改變的是其末端激光雷達(dá)的位姿,只要確定好執(zhí)行動(dòng)作后激光雷達(dá)運(yùn)動(dòng)后的位姿,再通過(guò)運(yùn)動(dòng)求解器反解出ur5機(jī)械臂到達(dá)指定位姿時(shí)各關(guān)節(jié)的角度,即可讓機(jī)械臂運(yùn)動(dòng)到指定的位置。因此可以利用激光雷達(dá)的位姿變化來(lái)設(shè)置模型的動(dòng)作,每次執(zhí)行動(dòng)作后,激光雷達(dá)位姿的變化包括3個(gè)方面,分別為x軸方向上的坐標(biāo)變化Δx,y軸方向上的坐標(biāo)的變化Δy和z軸方向上的偏轉(zhuǎn)角度θi。
本文以激光雷達(dá)的正前方作為基準(zhǔn),偏轉(zhuǎn)角度θi的范圍從-18°~+18°,每個(gè)θi均間隔Δθ=3°,總的角度范圍θ=36°。即i為整數(shù),取值范圍為[0,12],共有13個(gè)θi值,分別對(duì)應(yīng)a0~a12共13個(gè)動(dòng)作,如圖4所示。
圖4 模型動(dòng)作示意圖
圖4中黑色的圓代表激光雷達(dá),圓上的13個(gè)箭頭對(duì)應(yīng)13個(gè)動(dòng)作,機(jī)械臂通過(guò)策略選擇動(dòng)作并執(zhí)行后,機(jī)械臂末端的激光雷達(dá)的位移步長(zhǎng)為l,即從點(diǎn)P(x,y,z)運(yùn)動(dòng)到點(diǎn)P′(x′,y′,z′),然后在P′處繼續(xù)選擇新的動(dòng)作并位移l后到達(dá)下一個(gè)位置,如此循環(huán)直到抵達(dá)終點(diǎn)。最終通過(guò)多次的學(xué)習(xí)和訓(xùn)練,機(jī)械臂找到最優(yōu)的策略使得從起點(diǎn)到終點(diǎn)的途中,其末端的每一個(gè)位置點(diǎn)坐標(biāo)P(x,y,z)都盡可能的處于軌道的正中間。點(diǎn)P和點(diǎn)P′坐標(biāo)間的關(guān)系符合式(2)。
(2)
模型的策略π表示從狀態(tài)集合S到動(dòng)作集合A的映射,是智能體選擇動(dòng)作的依據(jù),也是本文的重點(diǎn)研究對(duì)象。本文利用強(qiáng)化學(xué)習(xí)算法,通過(guò)搭建神經(jīng)網(wǎng)絡(luò)來(lái)擬合策略π,最終通過(guò)尋找最優(yōu)的神經(jīng)網(wǎng)絡(luò)參數(shù)來(lái)確定最優(yōu)的策略。此外,在強(qiáng)化學(xué)習(xí)中,算法能否收斂以及收斂的程度和快慢與獎(jiǎng)勵(lì)函數(shù)R的設(shè)置緊密相關(guān)。在下一章中,本文將根據(jù)選擇的強(qiáng)化學(xué)習(xí)算法對(duì)模型的策略和獎(jiǎng)勵(lì)設(shè)置進(jìn)一步說(shuō)明。
在前文模型構(gòu)建中提到,策略π這一要素通過(guò)強(qiáng)化學(xué)習(xí)(reinforcement learning,RL)求得,而獎(jiǎng)勵(lì)R這一要素也需根據(jù)所選取的RL的具體算法來(lái)設(shè)置。策略π和獎(jiǎng)勵(lì)R之間是相互關(guān)聯(lián)的,可構(gòu)造一個(gè)函數(shù)來(lái)描述二者間的關(guān)系,該函數(shù)成為值函數(shù)。值函數(shù)也叫評(píng)價(jià)函數(shù),通常用Qπ(s,a)表示,是指智能體在當(dāng)前狀態(tài)s0下,一直遵循策略π,選擇并執(zhí)行一系列的動(dòng)作a轉(zhuǎn)移至目標(biāo)狀態(tài)sT的這一過(guò)程中,通過(guò)式(1)所計(jì)算的累積加權(quán)獎(jiǎng)勵(lì)值的數(shù)學(xué)期望,其表達(dá)式為:
(3)
而強(qiáng)化學(xué)習(xí)最終的目標(biāo)則是找到最優(yōu)的策略π*,使得值函數(shù)最大,用Q*(s,a)表示最優(yōu)值函數(shù),其表達(dá)式如下:
(4)
且最優(yōu)值函數(shù)遵循貝爾曼最優(yōu)方程,即:
(5)
針對(duì)原始的DQN算法中存在的過(guò)估計(jì)以及在經(jīng)驗(yàn)回放時(shí)采用均勻分布采樣而不能高效利用數(shù)據(jù)的問(wèn)題,引用Double DQN(DDQN)[12-13]的方法來(lái)消除過(guò)估計(jì),利用優(yōu)先經(jīng)驗(yàn)回放(prioritized replay)的策略[14]來(lái)打破均勻采樣,賦予學(xué)習(xí)效率高的狀態(tài)以更大的采樣權(quán)重。改進(jìn)后的DQN算法流程如圖5所示。
(a) 經(jīng)驗(yàn)樣本儲(chǔ)存流程 (b) 參數(shù)訓(xùn)練與更新流程
由圖5可知整個(gè)算法的訓(xùn)練流程可分為兩部分,其中圖5a為儲(chǔ)存經(jīng)驗(yàn)樣本的過(guò)程,目的是實(shí)現(xiàn)改進(jìn)后算法的優(yōu)先經(jīng)驗(yàn)回放機(jī)制。具體做法是:機(jī)械臂通過(guò)末端的激光雷達(dá)從軌道環(huán)境中測(cè)出激光數(shù)據(jù),從而獲得當(dāng)前的狀態(tài)s,將狀態(tài)s輸入eval網(wǎng)絡(luò)后輸出由13個(gè)動(dòng)作的Q值所組成的列表Q_eval,接著通過(guò)探索策略確定執(zhí)行的動(dòng)作a。機(jī)械臂執(zhí)行動(dòng)作a后,其末端的激光雷達(dá)到達(dá)新的位姿,進(jìn)而得到此時(shí)的狀態(tài)s′。同時(shí),根據(jù)設(shè)置的獎(jiǎng)勵(lì)函數(shù),機(jī)械臂在該過(guò)程中會(huì)獲得一個(gè)獎(jiǎng)勵(lì)r。將當(dāng)前狀態(tài)s,選擇的動(dòng)作a,得到的獎(jiǎng)勵(lì)r和下一個(gè)環(huán)境信息s′作為經(jīng)驗(yàn)(s,a,r,s′),并賦予其一個(gè)優(yōu)先級(jí)p(每個(gè)樣本最初賦予的優(yōu)先級(jí)均為1,在訓(xùn)練的過(guò)程中優(yōu)先級(jí)會(huì)進(jìn)行更新)。將樣本ei=(s,a,r,s′,p)用SumTree這樣的二叉樹(shù)結(jié)構(gòu)進(jìn)行儲(chǔ)存,在后續(xù)訓(xùn)練時(shí),每次從SumTree中按樣本的采樣概率選取m個(gè)樣本[e0,e1,…,em-1]作為一個(gè)批次,使用隨機(jī)梯度下降算法來(lái)更新eval網(wǎng)絡(luò)的參數(shù)。
(6)
即先在eval網(wǎng)絡(luò)中先找出最大Q值對(duì)應(yīng)的動(dòng)作,然后利用這個(gè)動(dòng)作在target網(wǎng)絡(luò)里面計(jì)算目標(biāo)Q值。通過(guò)最小化當(dāng)前Q值和目標(biāo)Q值之間的均方誤差(也就是損失函數(shù))來(lái)更新網(wǎng)絡(luò)參數(shù)θ,損失函數(shù)為:
(7)
用Adam算法梯度反向傳播來(lái)更新eval網(wǎng)絡(luò)的參數(shù)θ:
θi+1=θi+α▽?duì)萯Li(θi)
(8)
式(7)中ωi為樣本i的優(yōu)先級(jí)權(quán)重,其計(jì)算式為:
ωi=(N*P(i))-β/maxk(ωk)
(9)
(10)
對(duì)eval網(wǎng)絡(luò)參數(shù)進(jìn)行了梯度更新后,|δi|會(huì)重新計(jì)算,樣本的優(yōu)先級(jí)pi也會(huì)在SumTree上更新。
前文中提到eval網(wǎng)絡(luò)和target網(wǎng)絡(luò)的是兩個(gè)結(jié)構(gòu)完全相同的神經(jīng)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò)中不斷更新的神經(jīng)元參數(shù)就是最終要找的策略。而神經(jīng)網(wǎng)絡(luò)的層數(shù)是否合理,每層網(wǎng)絡(luò)中的神經(jīng)元個(gè)數(shù)又是否合適與最終能否找到最優(yōu)策略息息相關(guān)。本文研究中,用一個(gè)包含輸入層、輸出層和3個(gè)隱藏層的共5層的神經(jīng)網(wǎng)絡(luò)來(lái)擬合輸入狀態(tài)和輸出動(dòng)作間的控制策略,網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。
圖6 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
其中輸入層為機(jī)械臂末端的激光雷達(dá)所采集的240維激光數(shù)據(jù);L1~L3均為隱藏層,分別是由248,500和248個(gè)神經(jīng)元組成的全連接層,用于訓(xùn)練和存儲(chǔ)網(wǎng)絡(luò)參數(shù);輸出層則為13個(gè)動(dòng)作所對(duì)應(yīng)的Q值,可表示為[Q(s,a0),Q(s,a1),Q(s,a2),…,Q(s,a12)]。
要想獲得最大的累積回報(bào),平衡好“探索”與“利用”的關(guān)系不可或缺,故探索策略的選擇也尤為重要。貪心策略(ε-greedy)[15]是一種常用的探索策略,該策略讓智能體在通過(guò)決策選擇動(dòng)作時(shí),有一很小概率ε(<1)隨機(jī)選擇一個(gè)未知的動(dòng)作,而以剩下1-ε的概率去選擇已有動(dòng)作中值函數(shù)最大的動(dòng)作。這樣做既能避免智能體因過(guò)度“探索”未知策略而獲得大量的負(fù)樣本,導(dǎo)致其難以到達(dá)目的地而花費(fèi)大量的訓(xùn)練時(shí)間;又能防止智能體因過(guò)度“利用”現(xiàn)有的最優(yōu)策略來(lái)選擇Q值最大的動(dòng)作而陷入局部最優(yōu)。本文采取ε遞減式的貪心策略:先賦予ε較大的值,使機(jī)器人在訓(xùn)練初期具有足夠的探索能力,積累足夠的新的學(xué)習(xí)樣本;接著在訓(xùn)練過(guò)程中讓?duì)胖饾u減小,這樣能讓機(jī)器人在訓(xùn)練的中后期變得越來(lái)越“保守”,增加選擇Q值最大的動(dòng)作的概率,盡快到達(dá)終點(diǎn),節(jié)約訓(xùn)練時(shí)間;當(dāng)ε減小至0.05后就保持不變,即讓機(jī)器人至少留有5%的概率用于探索,防止過(guò)擬合。
獎(jiǎng)勵(lì)函數(shù)首先應(yīng)滿足最基礎(chǔ)的條件:當(dāng)機(jī)械臂的末端到達(dá)指定的終點(diǎn)時(shí)獲得一個(gè)正向的獎(jiǎng)勵(lì),而偏離軌道中心一定范圍后則給與相應(yīng)的懲罰。但為了避免在訓(xùn)練初期,機(jī)械臂因長(zhǎng)期到達(dá)不了終點(diǎn)、獲得不到正向獎(jiǎng)勵(lì)而陷入局部最優(yōu)的情況,本文提出獎(jiǎng)勵(lì)累積的方法來(lái)牽引機(jī)械臂向終點(diǎn)方向運(yùn)動(dòng);同時(shí),為了讓機(jī)械臂的末端在執(zhí)行每一個(gè)動(dòng)作后都能盡可能的靠近中線,再額外加入一個(gè)反饋獎(jiǎng)勵(lì)gap來(lái)加以調(diào)節(jié),以此來(lái)加快訓(xùn)練的速率和效果。獎(jiǎng)勵(lì)函數(shù)R設(shè)置如式(3)所示,其表明機(jī)械臂在狀態(tài)st的獎(jiǎng)勵(lì)為執(zhí)行完動(dòng)作at后的即時(shí)獎(jiǎng)勵(lì)加上0.9倍的上一個(gè)狀態(tài)st-1的獎(jiǎng)勵(lì)。
(11)
式中,r(st,at)為機(jī)械臂執(zhí)行動(dòng)作后的即時(shí)獎(jiǎng)勵(lì),當(dāng)機(jī)械臂末端到達(dá)軌道終點(diǎn)時(shí),給與+100的獎(jiǎng)勵(lì),本次訓(xùn)練周期結(jié)束,機(jī)械臂回到起點(diǎn);當(dāng)機(jī)械臂末端偏離軌道中線的距離超過(guò)設(shè)定的閾值d時(shí),給與-100的懲罰,且機(jī)械臂回到軌道的起點(diǎn)。其它情況下,式中g(shù)ap為每次執(zhí)行動(dòng)作后機(jī)械臂末端偏離軌道中心線的距離的絕對(duì)值,gap越小則相當(dāng)于減去的懲罰值越小,以此來(lái)讓機(jī)械臂末端盡量在軌道的正中央。λ為大于0的比例系數(shù),用來(lái)調(diào)節(jié)gap所占有的比重來(lái)達(dá)到更好的訓(xùn)練效果。
本實(shí)驗(yàn)基于Ubuntu系統(tǒng)下,用ROS和Gazebo搭建出虛擬仿真訓(xùn)練環(huán)境如圖7所示。
仿真環(huán)境由末端裝有激光雷達(dá)的ur5機(jī)械臂和由焊縫模型簡(jiǎn)化而成的軌道組成,軌道又分為一個(gè)學(xué)習(xí)軌道和3個(gè)測(cè)試軌道a、b、c。機(jī)械臂在學(xué)習(xí)軌道上進(jìn)行多次學(xué)習(xí)訓(xùn)練后,先在學(xué)習(xí)軌道上進(jìn)行從軌道起點(diǎn)到終點(diǎn)的成功率測(cè)試,在成功率滿足要求后,用訓(xùn)練好的參數(shù)在3個(gè)未知的測(cè)試軌道上進(jìn)行成功率測(cè)試。
在Pycharm集成開(kāi)發(fā)環(huán)境下,用Python編寫(xiě)改進(jìn)后的DQN算法作為機(jī)械臂的動(dòng)作選擇策略,再結(jié)合MoveIt!軟件來(lái)控制機(jī)械臂執(zhí)行相應(yīng)的動(dòng)作,從而達(dá)到讓機(jī)械臂在軌道中進(jìn)行學(xué)習(xí)訓(xùn)練的效果,具體的訓(xùn)練參數(shù)如表1所示。
表1 各項(xiàng)訓(xùn)練參數(shù)的符號(hào)與設(shè)定值
按照表1中設(shè)定的參數(shù)讓機(jī)械臂在學(xué)習(xí)軌道上進(jìn)行3000個(gè)周期的訓(xùn)練后,eval網(wǎng)絡(luò)的訓(xùn)練指標(biāo)變化趨勢(shì)如圖8、圖9所示。
圖8 誤差損失隨迭代 次數(shù)變化圖圖9 總獎(jiǎng)勵(lì)隨訓(xùn)練 周期變化圖
由圖8可知,在訓(xùn)練的3000個(gè)周期內(nèi),eval網(wǎng)絡(luò)的參數(shù)共學(xué)習(xí)迭代了6000多次。隨著新的樣本不斷進(jìn)入記憶庫(kù),誤差損失loss在A點(diǎn)處達(dá)到至高點(diǎn),之后便隨著學(xué)習(xí)次數(shù)增加而逐漸減小并趨向于收斂,由此可知機(jī)械臂的訓(xùn)練確有實(shí)效,其決策能力越來(lái)越強(qiáng)。
而從圖9可知隨著訓(xùn)練周期次數(shù)的增加,每個(gè)周期獲得的總的累積獎(jiǎng)勵(lì)呈三個(gè)階段的階梯式上升趨勢(shì)。在I1階段,機(jī)器人還不認(rèn)識(shí)環(huán)境、沒(méi)有決策能力,只能獲得極少獎(jiǎng)勵(lì),此時(shí)機(jī)械臂末端的路徑對(duì)應(yīng)圖7中訓(xùn)練軌道的AB段;在I2階段,機(jī)器人已初步認(rèn)識(shí)環(huán)境、具備一定決策能力,能獲得少量獎(jiǎng)勵(lì),其路徑對(duì)應(yīng)訓(xùn)練軌道的AC段;在I3階段,機(jī)器人經(jīng)過(guò)多次與環(huán)境交互學(xué)習(xí)后,完全認(rèn)識(shí)環(huán)境、具有很強(qiáng)決策能力,能到達(dá)目標(biāo)點(diǎn)、獲得大量獎(jiǎng)勵(lì),此時(shí)機(jī)器人的路徑對(duì)應(yīng)訓(xùn)練軌道的AC段。
將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)參數(shù)保存后,在學(xué)習(xí)軌道上進(jìn)行成功率測(cè)試,當(dāng)偏離軌道中心的閾值分別設(shè)定為6 mm、6.5 mm和7 mm時(shí),機(jī)械臂末端順利到達(dá)終點(diǎn)的成功率分別為93%、97%和100%。由此可知,當(dāng)按照訓(xùn)練時(shí)的閾值6 mm進(jìn)行測(cè)試實(shí)驗(yàn)時(shí),機(jī)械臂已經(jīng)能良好地進(jìn)行自主決策,當(dāng)適當(dāng)放寬閾值后,其成功率也會(huì)隨著閾值的增加而增加。這是因?yàn)闄C(jī)械臂的運(yùn)動(dòng)誤差和激光雷達(dá)的測(cè)量誤差會(huì)干擾機(jī)械臂對(duì)環(huán)境信息的觀測(cè),使得機(jī)械臂對(duì)當(dāng)前自身狀態(tài)的判斷不夠準(zhǔn)確而選擇了非最優(yōu)的動(dòng)作,進(jìn)而導(dǎo)致機(jī)械臂末端偏離軌道中心的距離超過(guò)了所設(shè)置的閾值。當(dāng)逐步增加閾值時(shí),其實(shí)是增加了機(jī)械臂對(duì)環(huán)境觀測(cè)的容錯(cuò)率,進(jìn)而提高了成功率。
用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)參數(shù)作為決策,指導(dǎo)機(jī)械臂在未經(jīng)歷過(guò)的測(cè)試軌道a、b、c上進(jìn)行測(cè)試,進(jìn)一步檢查機(jī)械臂的學(xué)習(xí)效果,檢驗(yàn)機(jī)械臂所學(xué)會(huì)的策略是否能完成在全新環(huán)境下的路徑規(guī)劃,測(cè)試過(guò)程如圖10所示。
圖10 測(cè)試賽道的測(cè)試過(guò)程圖
在3個(gè)測(cè)試軌道上,將偏離中心的閾值分別為6 mm、7 mm和8 mm,利用所學(xué)的參數(shù)控制機(jī)械臂選擇和執(zhí)行動(dòng)作,共進(jìn)行9組仿真實(shí)驗(yàn),每組實(shí)驗(yàn)均進(jìn)行50個(gè)回合的測(cè)試。測(cè)試的成功率如圖11所示,由該圖可知當(dāng)閾值適當(dāng)放寬到8 mm后,在3個(gè)測(cè)試軌道上的成功率均可達(dá)到90%以上。
圖11 測(cè)試軌道成功率變化圖
機(jī)械臂在通過(guò)所學(xué)的最優(yōu)策略,根據(jù)當(dāng)下實(shí)時(shí)的狀態(tài)選擇動(dòng)作從軌道的起點(diǎn)到終點(diǎn)的過(guò)程中,會(huì)經(jīng)歷多個(gè)路徑點(diǎn)。可以利用MoveIt中自帶的笛卡爾路徑規(guī)劃方法,用小的直線段依次串聯(lián)起所有的路徑點(diǎn),形成一條連續(xù)的軌跡,然后讓機(jī)械臂沿著軌跡連續(xù)地從軌道的起點(diǎn)到終點(diǎn)。設(shè)置終端步進(jìn)值為0.005 m,即機(jī)械臂末端每次會(huì)位移一段0.005 m的直線段;設(shè)置跳躍閥值為0,確保規(guī)劃出的路徑經(jīng)過(guò)每一個(gè)路徑點(diǎn);設(shè)置最大嘗試規(guī)劃次數(shù)為200,避免因偶然因素出現(xiàn)規(guī)劃失敗的情況。利用笛卡爾路徑規(guī)劃在測(cè)試件a、b、c上規(guī)劃出的連續(xù)軌跡如圖12所示,由圖可知軌跡基本靠近軌道的中心。
圖12 測(cè)試軌道上的軌跡圖
本文將改進(jìn)后的DQN算法用于ur5機(jī)械臂來(lái)實(shí)現(xiàn)焊接機(jī)器人的路徑規(guī)劃,讓機(jī)械臂通過(guò)激光雷達(dá)實(shí)時(shí)地感知環(huán)境、獲取當(dāng)下的狀態(tài),并根據(jù)當(dāng)下的狀態(tài)和學(xué)會(huì)的策略選擇最優(yōu)動(dòng)作,使機(jī)械臂從軌道起點(diǎn)順利到達(dá)終點(diǎn)的同時(shí)盡可能靠近軌道的中線。在Ubuntu系統(tǒng)下的Gazebo仿真環(huán)境中分別對(duì)機(jī)械臂進(jìn)行訓(xùn)練和測(cè)試來(lái)驗(yàn)證方法的可行性和算法的有效性。先在學(xué)習(xí)軌道上進(jìn)行足夠回合數(shù)的訓(xùn)練后,將機(jī)器人學(xué)到的知識(shí)遷移到新的測(cè)試軌道上驗(yàn)證學(xué)習(xí)效果。仿真結(jié)果表明,機(jī)械臂通過(guò)改進(jìn)后的DQN算法所學(xué)會(huì)的策略能順利指導(dǎo)機(jī)械臂從軌道的起點(diǎn)運(yùn)動(dòng)到目標(biāo)終點(diǎn),且運(yùn)動(dòng)軌跡基本靠近軌道中心。
DOI:10.16383/j.aas.c190451.