董星宇,傅匯喬,王鑫鵬,唐開強(qiáng),留滄海
(1.西南科技大學(xué) 制造科學(xué)與工程學(xué)院,四川 綿陽 621000;2.南京大學(xué) 工程管理學(xué)院 控制與系統(tǒng)工程系,江蘇 南京 210093;3.制造過程測試技術(shù)省部共建教育部重點(diǎn)實(shí)驗(yàn)室,四川 綿陽 621000)
深度強(qiáng)化學(xué)習(xí)為機(jī)器人控制提供了新的方法,特別是對于多足機(jī)器人,如何高效地通過非結(jié)構(gòu)地形這種復(fù)雜的任務(wù),深度強(qiáng)化學(xué)習(xí)算法能夠進(jìn)行有效的控制[1]。目前算法主要應(yīng)用在機(jī)器人路徑規(guī)劃與運(yùn)動控制方面,僅僅局限于仿真器中的實(shí)現(xiàn),在實(shí)際的環(huán)境下算法的可行性、準(zhǔn)確性還沒有得到過驗(yàn)證,但是在現(xiàn)實(shí)環(huán)境中對算法進(jìn)行驗(yàn)證時,六足機(jī)器人與環(huán)境進(jìn)行交互、采樣時,會出現(xiàn)采樣效率太低和避障任務(wù)中由于碰撞造成的不可逆損傷等問題[2,3]。而利用漸進(jìn)式神經(jīng)網(wǎng)絡(luò)(progressive neural network,PNN)在仿真器中實(shí)現(xiàn)跨環(huán)境的遷移訓(xùn)練,并將訓(xùn)練后的模型植入樣機(jī)中進(jìn)行現(xiàn)實(shí)環(huán)境的避障測試是一種解決該問題的方法。PNN是由Rabinowitz N C等人[4]提出的一種新結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),相比于參數(shù)精調(diào)(fine-tune)方法可能丟失已學(xué)習(xí)到的預(yù)訓(xùn)練模型特征的問題,即“災(zāi)難性遺忘現(xiàn)象”,PNN將已經(jīng)訓(xùn)練好的模型保存到模型池中,并且在新的訓(xùn)練任務(wù)中保持它的權(quán)重不變,訓(xùn)練過程中,通過側(cè)向連接來提取已有模型的權(quán)重參數(shù),避免了這種現(xiàn)象的出現(xiàn)。國內(nèi)外專家已經(jīng)將遷移強(qiáng)化學(xué)習(xí)成功應(yīng)用在工業(yè)機(jī)械臂、輪式機(jī)器人、四足機(jī)器人、水下機(jī)器人等機(jī)器人的技能學(xué)習(xí),六足機(jī)器人的應(yīng)用相對較少[5]。Rusu A A等人[6]提出使用PNN來彌補(bǔ)從仿真遷移到現(xiàn)實(shí)環(huán)境的差距,通過該方法,證明了深度強(qiáng)化學(xué)習(xí)可以用于實(shí)現(xiàn)機(jī)器人的快速策略學(xué)習(xí)。隋洪建等人[7]提出使用PNN可以有效減少學(xué)習(xí)目標(biāo)任務(wù)所需要的時間。Peng X B等人[8]提出利用PNN來減少現(xiàn)實(shí)與仿真環(huán)境的差距。
本文采用一種雙重深度強(qiáng)化學(xué)習(xí)(Double deep Q-network,Double-DQN)與PNN相結(jié)合的算法。首先,搭建初始避障環(huán)境,并通過Double-DQN訓(xùn)練一個避障模型;其次,在仿真環(huán)境中搭建更為復(fù)雜的環(huán)境,通過將初始環(huán)境中訓(xùn)練的模型作為目標(biāo)環(huán)境的預(yù)訓(xùn)練模型,并在預(yù)訓(xùn)練模型與當(dāng)前任務(wù)模型之間采用橫向連接方式進(jìn)行數(shù)據(jù)傳輸;最后,將搭建的模型在目標(biāo)環(huán)境中訓(xùn)練,并植入樣機(jī)系統(tǒng)中進(jìn)行現(xiàn)實(shí)環(huán)境的避障測試。實(shí)驗(yàn)表明:該方法可以有效減少六足機(jī)器人在目標(biāo)環(huán)境中學(xué)習(xí)避障任務(wù)所需的時間。
足端工作空間范圍代表了六足機(jī)器人腿部可活動范圍,腿部工作空間的范圍大小會影響機(jī)器人避障能力。為了搭建出六足機(jī)器人可通行的避障環(huán)境,對于足端的工作空間分析是不可或缺的任務(wù)[9]。足端工作區(qū)間與腿部扭轉(zhuǎn)角、關(guān)節(jié)轉(zhuǎn)動角度范圍、大腿和小腿桿長和偏移量有關(guān)[10]。為避免六足機(jī)器人在運(yùn)動過程中相鄰?fù)戎g發(fā)生干涉,本文中六足機(jī)器人設(shè)定的關(guān)節(jié)角范圍:基節(jié)θ1為[-45°,45°];髖關(guān)節(jié)θ2為[0°,45°];膝關(guān)節(jié)θ3為[-135°,-90°]。
本文通過MATLAB的Robotics工具箱對六足機(jī)器人單腿模型進(jìn)行仿真。六足機(jī)器人腿部基節(jié)為68 mm,大腿為104 mm,小腿為185 mm。根據(jù)關(guān)節(jié)轉(zhuǎn)角的約束條件和運(yùn)動學(xué)關(guān)系,解算并仿真出足端三維點(diǎn)云圖和平面圖。如圖1所示。圖中的X軸、Y軸、Z軸分別為六足機(jī)器人的左右、前進(jìn)、高度方向。以機(jī)器人重心為原點(diǎn),向上為Z軸正方向,向下為Z軸負(fù)方向。分析圖1可得,機(jī)器人腿部的三維動作空間,從圖1(b)的X-O-Y平面投影可知,六足機(jī)器人足端工作空間在該平面的投影形狀近似為扇形,其外徑270 mm與內(nèi)徑30 mm則為足端點(diǎn)最遠(yuǎn)與最近的投影點(diǎn)集合。從圖1(c)中可得出,足端點(diǎn)最高位置約為-50 mm,最低位置約-180 mm;從圖1(d)中可知,在前進(jìn)方向上足端點(diǎn)投影最大值可約達(dá)200 mm。
圖1 足端三維點(diǎn)云圖和平面圖
六足機(jī)器人進(jìn)行避障的環(huán)境設(shè)計(jì)準(zhǔn)則為:障礙物尺寸應(yīng)設(shè)置在六足機(jī)器人運(yùn)動能力范圍內(nèi),并且設(shè)計(jì)尺寸不應(yīng)該為六足機(jī)器人運(yùn)動極限位置,且應(yīng)該設(shè)置在六足機(jī)器人運(yùn)動極限位置之間來防止測試時六足機(jī)器人與障礙物發(fā)生碰撞損傷;為保證模型的訓(xùn)練速度,防止迭代時間過長,避障環(huán)境的尺寸范圍不應(yīng)過大,且障礙物分布應(yīng)該盡量均勻[11]。為此,對機(jī)器人避障環(huán)境進(jìn)行設(shè)計(jì)。六足機(jī)器人避障環(huán)境總體尺寸設(shè)計(jì)為360 cm×300 cm。障礙物類型共有4種,分別為長、寬、高為100 cm×90 cm×14 cm的臺階;長、寬、高為90 cm×30 cm×27 cm的隧道;沿軌跡行進(jìn)的巡檢小車,巡檢速度恒定且巡檢軌跡為往返370 cm的直線;高度為40 cm的圍墻和長、寬、高為200 cm×40 cm×40 cm長方形障礙物。根據(jù)設(shè)計(jì)的避障任務(wù)在Unity仿真器中進(jìn)行避障環(huán)境搭建,如圖2所示。
圖2 仿真器中的避障環(huán)境
強(qiáng)化學(xué)習(xí)為一種標(biāo)記延遲的監(jiān)督學(xué)習(xí),其根據(jù)外界環(huán)境的反饋學(xué)習(xí)到一套行動策略,幫助智能體取最大化的預(yù)期獎勵目標(biāo)。強(qiáng)化學(xué)習(xí)的過程將通過馬爾科夫決策過程來表示,而六足機(jī)器人的避障問題可以視為一個馬爾科夫決策過程,機(jī)器人下一時刻可能面對的場景只與當(dāng)前所處場景和狀態(tài)轉(zhuǎn)移方程相關(guān),與機(jī)器人過去經(jīng)歷的歷史狀態(tài)無關(guān)[12,13]。
狀態(tài)、動作、狀態(tài)轉(zhuǎn)移方程和回報(bào)函數(shù)為馬爾科夫決策過程中的4個主要元素。通過當(dāng)前時刻的狀態(tài),決策出下一時刻的動作,再根據(jù)輸出動作和狀態(tài),經(jīng)過狀態(tài)轉(zhuǎn)移方程,就能夠得到下一個時刻智能體所處的狀態(tài),并遵循獎懲函數(shù)的計(jì)算,獲得此次狀態(tài)轉(zhuǎn)移的回報(bào)。
在馬爾科夫決策過程中需要通過值函數(shù)來評價(jià)某個決策過程中獲得的總的回報(bào)。當(dāng)前時刻后的所有回報(bào)的值函數(shù)可分表示為
(1)
式中γ為折合系數(shù),γ≤1,V(s)為值函數(shù)的值。
進(jìn)而推出貝爾曼方程
V(s)=E(r0+γ·V(st+1)|s=st)
(2)
式中γ·V(st+1)為未來回報(bào),r0為當(dāng)前回報(bào)。γ越小,表示算法越希望智能體當(dāng)前所獲得的回報(bào)值最大。
根據(jù)貝爾曼方程,當(dāng)智能體處于某一狀態(tài)時,讓其采取能夠使當(dāng)前回報(bào)和未來回報(bào)之和最大化的動作,用貝爾曼最優(yōu)方程表示如下
a(s)=maxa∈AE(r0+γ·V(st+1)|s=st)
(3)
深度強(qiáng)化學(xué)習(xí)結(jié)合了深度學(xué)習(xí)的感知能力和強(qiáng)化學(xué)習(xí)的決策能力,智能體在環(huán)境中輸入的狀態(tài)經(jīng)過神經(jīng)網(wǎng)絡(luò)編碼之后映射成離散的Q值,每個Q值對應(yīng)一個動作,并根據(jù)貝爾曼最優(yōu)方程來選取執(zhí)行動作,然后通過反向傳播(back propagation,BP)來更新神經(jīng)網(wǎng)絡(luò)的參數(shù)[14]。本文采用Double-DQN算法訓(xùn)練六足機(jī)器人避障模型,算法通過解耦目標(biāo)Q值動作的選擇和目標(biāo)Q值的計(jì)算來消除過度估計(jì)的問題和使用經(jīng)驗(yàn)回放來避免訓(xùn)練數(shù)據(jù)的相關(guān)性[15]。通過實(shí)際動作價(jià)值Q網(wǎng)絡(luò)在現(xiàn)實(shí)中訓(xùn)練參數(shù),迭代C次后將權(quán)重復(fù)制更新到目標(biāo)動作價(jià)值Q網(wǎng)絡(luò)中以降低過估計(jì)對訓(xùn)練結(jié)果的影響。Double-DQN的目標(biāo)Q值定義如下
Qtagret=r+γQ(s′,argmaxaQ(s′,a|w)|w′)
(4)
式中γ為折扣因子,w為Q現(xiàn)實(shí)中網(wǎng)絡(luò)結(jié)構(gòu)權(quán)重,w′為Q估計(jì)中網(wǎng)絡(luò)結(jié)構(gòu)權(quán)重,s′為下一時刻感知的環(huán)境狀態(tài),a為選擇的動作,r為獎懲回報(bào)值。
本文的網(wǎng)絡(luò)結(jié)構(gòu)主要是由長短期記憶(long short-term memory,LSTM)層和2層全連接層構(gòu)成。六足機(jī)器人在某一狀態(tài)時,測距模塊采集得到的數(shù)據(jù)經(jīng)過預(yù)處理后,通過LSTM層將障礙物數(shù)據(jù)變?yōu)殚L度固定的編碼向量,然后將機(jī)器人自身狀態(tài)信息同障礙物信息合并輸入全連接層處理。最終網(wǎng)絡(luò)輸出設(shè)計(jì)的離散動作對應(yīng)的Q值。
PNN是一種適用于機(jī)器人控制領(lǐng)域從仿真到現(xiàn)實(shí)的遷移方法[6],PNN可以將模型在源任務(wù)中學(xué)到的特征遷移學(xué)習(xí)到目標(biāo)任務(wù)中,而不會出現(xiàn)Finetune方法應(yīng)用到機(jī)器人控制策略時,特征提取層從源任務(wù)中學(xué)習(xí)到的知識出現(xiàn)災(zāi)難性遺忘,導(dǎo)致經(jīng)驗(yàn)遷移的效率發(fā)生顯著下降的情況。仿真環(huán)境與真實(shí)環(huán)境間存在較大的現(xiàn)實(shí)誤差,當(dāng)模型從仿真遷移到現(xiàn)實(shí)中時,采用PNN能夠給模型每層增加新的輸入連接,相當(dāng)于增大了模型網(wǎng)絡(luò)的容量,有助于彌合現(xiàn)實(shí)誤差。
圖3 PNN示意
(5)
本文搭建的六足機(jī)器人避障控制系統(tǒng)結(jié)構(gòu)如圖4所示。六足機(jī)器人樣機(jī)的避障控制架構(gòu)由感知系統(tǒng)、決策系統(tǒng)和執(zhí)行機(jī)構(gòu)3個部分構(gòu)成。計(jì)算能力強(qiáng)的PC作為決策系統(tǒng),用于處理算法運(yùn)算和訓(xùn)練避障策略,通過無線通信模塊將上層運(yùn)算處理得到的指令發(fā)送給下位機(jī)。下位機(jī)主控為STM32F4單片機(jī),單片機(jī)得到指令后,將控制由舵機(jī)構(gòu)成的執(zhí)行機(jī)構(gòu),使樣機(jī)動作,并協(xié)調(diào)控制激光測距傳感器、六軸加速度傳感器組成的感知系統(tǒng)采集樣機(jī)在環(huán)境中的狀態(tài)信息,最后下位機(jī)再通過WiFi模塊將采集得到的信息反饋給上位機(jī)處理??刂葡到y(tǒng)將循環(huán)以上操作直至目標(biāo)任務(wù)結(jié)束。
圖4 控制系統(tǒng)結(jié)構(gòu)
本文基于PNN的遷移實(shí)驗(yàn)將完成如表2所示的3個實(shí)驗(yàn)內(nèi)容。
表2 PNN實(shí)驗(yàn)任務(wù)
實(shí)驗(yàn)一和實(shí)驗(yàn)二將在Unity仿真器中通過提高四驅(qū)小車的速度和將障礙物的表面隨機(jī)凹凸處理來改變環(huán)境復(fù)雜性,并分別采用PNN結(jié)構(gòu)搭建的模型和無PNN結(jié)構(gòu)搭建的模型來訓(xùn)練六足機(jī)器人避障。實(shí)驗(yàn)中PNN結(jié)構(gòu)的預(yù)訓(xùn)練模型網(wǎng)絡(luò)參數(shù)將會被凍結(jié),不會因?yàn)榉聪騻鞑ザ?。?shí)驗(yàn)中無PNN結(jié)構(gòu)搭建的模型方法有2種:1)采用Finetune將訓(xùn)練模型的參數(shù)作為新搭建模型中前2層的初始參數(shù);2)新搭建的模型中前2層的參數(shù)值隨機(jī)初始化,該方法本文稱為Rand。實(shí)驗(yàn)一和實(shí)驗(yàn)二最終將對比3種模型訓(xùn)練六足機(jī)器人在避障環(huán)境中獲得的回報(bào)曲線。實(shí)驗(yàn)三將實(shí)驗(yàn)一和實(shí)驗(yàn)二中訓(xùn)練的模型作為PNN的初始列在仿真環(huán)境中訓(xùn)練后遷移進(jìn)六足機(jī)器人樣機(jī)中進(jìn)行測試,對比并總結(jié)六足機(jī)器人在仿真環(huán)境和現(xiàn)實(shí)環(huán)境中避障測試的表現(xiàn)。實(shí)驗(yàn)中采用的模型結(jié)構(gòu)如圖5所示。
圖5 實(shí)驗(yàn)中采用的模型結(jié)構(gòu)
實(shí)驗(yàn)一將前文構(gòu)建的環(huán)境障礙物表面隨機(jī)凹凸化處理,凹凸表面的隨機(jī)誤差在±20 mm之間,障礙物表面隨機(jī)凹凸化處理后的環(huán)境相較于規(guī)則形狀的障礙物環(huán)境,更貼合真實(shí)環(huán)境。實(shí)驗(yàn)一環(huán)境中動態(tài)障礙物四驅(qū)小車沿軌跡行進(jìn)的速為14 cm/s,仿真環(huán)境中六足機(jī)器人行進(jìn)速度為8.6 cm/s,加速行進(jìn)速度為16 cm/s。
避障環(huán)境中完成目標(biāo)任務(wù)300次后的獎懲值對比,由圖6中回報(bào)曲線可以看出PNN比Finetune和Rand對目標(biāo)任務(wù)的學(xué)習(xí)更加迅速,提高了六足機(jī)器人在實(shí)驗(yàn)一避障環(huán)境中學(xué)習(xí)完成目標(biāo)任務(wù)的效率,說明了PNN在對源任務(wù)和目標(biāo)任務(wù)之間的經(jīng)驗(yàn)遷移是成功的。
圖6 實(shí)驗(yàn)一中各模型測試的回報(bào)值對比
實(shí)驗(yàn)二將延續(xù)采用實(shí)驗(yàn)一構(gòu)建的障礙物表面隨機(jī)凹凸化處理的環(huán)境,并將四驅(qū)小車沿軌跡行進(jìn)的速度提高為20 cm/s。六足機(jī)器人行進(jìn)速度和加速行進(jìn)速度與實(shí)驗(yàn)一一致。該實(shí)驗(yàn)小車的巡檢速度大于六足機(jī)器人加速行進(jìn)的速度,若六足機(jī)器人仍采用實(shí)驗(yàn)一訓(xùn)練得到的避障策略必然會與小車發(fā)生碰撞。
圖7為3種模型訓(xùn)練六足機(jī)器人在實(shí)驗(yàn)二的避障環(huán)境中完成目標(biāo)任務(wù)300次后的回報(bào)值對比,由圖看出,PNN仍比另外2種模型的學(xué)習(xí)效率高。而在該環(huán)境中采用Finetune的收斂速度慢于Rand,是因?yàn)镕inetune在進(jìn)行目標(biāo)任務(wù)的訓(xùn)練時,源任務(wù)模型部分有效參數(shù)被梯度更新所覆蓋,從而導(dǎo)致災(zāi)難性的遺忘現(xiàn)象發(fā)生。而在PNN的遷移方法中,因前列網(wǎng)絡(luò)參數(shù)被凍結(jié),不會在訓(xùn)練中發(fā)生改變,所以可以有效防止遺忘現(xiàn)象的發(fā)生。實(shí)驗(yàn)一和實(shí)驗(yàn)二的訓(xùn)練結(jié)果證明了PNN用于機(jī)器人執(zhí)行動作空間相似,但環(huán)境存在差異的場景中能夠有效提高六足機(jī)器人的學(xué)習(xí)效率。
圖7 實(shí)驗(yàn)二中各模型測試的回報(bào)值對比
實(shí)驗(yàn)三在仿真器中搭建與實(shí)驗(yàn)一和實(shí)驗(yàn)二不同的避障環(huán)境如圖8(a)所示。在該環(huán)境中,六足機(jī)器人常速行進(jìn)速度為8.6 cm/s,加速行進(jìn)速度為16 cm/s,四驅(qū)軌跡小車移動平均速度約為24 cm/s,抵達(dá)軌跡端點(diǎn)處小車停頓和轉(zhuǎn)向間隔時間共計(jì)為15 s。并在現(xiàn)實(shí)中搭建避障環(huán)境,如圖8(b)所示。
圖8 實(shí)驗(yàn)三的環(huán)境
在仿真環(huán)境中,采用PNN訓(xùn)練六足機(jī)器人完成避障任務(wù),并將訓(xùn)練后的模型植入樣機(jī)的避障控制系統(tǒng)中,攀爬動作和匍匐動作為設(shè)定的離散動作,在執(zhí)行該動作的過程中上位機(jī)將不會處理感知系統(tǒng)接收的信息,當(dāng)動作執(zhí)行完畢后再返回六足機(jī)器人的狀態(tài)信息到上位機(jī)中處理。實(shí)驗(yàn)三的六足機(jī)器人避障測試效果如圖9所示。圖中六足機(jī)器人各狀態(tài)的時序不連續(xù),在狀態(tài)1時,六足機(jī)器人由初始位置執(zhí)行常速向前運(yùn)動,四驅(qū)小車沿箭頭向前行駛;在狀態(tài)2時,六足機(jī)器人檢測到臺階并開始執(zhí)行攀爬動作;在狀態(tài)3時,六足機(jī)器人將完成攀爬動作;在狀態(tài)4時,六足機(jī)器人檢測到有動態(tài)障礙物時采取加速向左運(yùn)動躲避;在狀態(tài)5時,六足機(jī)器人采取加速向后運(yùn)動和加速向右運(yùn)動通過四驅(qū)小車巡檢軌跡路段,四驅(qū)小車此時正執(zhí)行等待轉(zhuǎn)向動作;在狀態(tài)6時,六足機(jī)器人檢測到前方的隧道障礙并執(zhí)行匍匐動作;在狀態(tài)7時,六足機(jī)器人執(zhí)行完匍匐動作并順利通過隧道;在狀態(tài)8時,六足機(jī)器人抵達(dá)目標(biāo)位置,成功完成動態(tài)避障任務(wù)。
圖9 實(shí)驗(yàn)三的六足機(jī)器人避障測試效果
本文采用PNN結(jié)構(gòu)與Double-DQN算法相結(jié)合的方法來克服深度強(qiáng)化學(xué)習(xí)應(yīng)用在六足機(jī)器人避障學(xué)習(xí)效率低下的問題,提出一種跨環(huán)境經(jīng)驗(yàn)遷移模型來提高六足機(jī)器人從源任務(wù)中學(xué)習(xí)避障策略的效率。通過在仿真器中搭建2種更為復(fù)雜的環(huán)境來評估本文提出的PNN模型,實(shí)驗(yàn)結(jié)果表明:該模型成功地令六足機(jī)器人在目標(biāo)環(huán)境中更有效的學(xué)習(xí)到避障策略。并且,通過將仿真器中訓(xùn)練的模型遷移到六足機(jī)器人樣機(jī)中測試,因?yàn)榉抡姝h(huán)境與真實(shí)環(huán)境存在現(xiàn)實(shí)誤差,會導(dǎo)致樣機(jī)出現(xiàn)避障失敗的情況,但樣機(jī)能夠成功完成目標(biāo)任務(wù),證明本文提出的基于PNN的避障模型具有可行性。