唐 俊,楊友波,張 目,雷印杰
(四川大學(xué)電子信息學(xué)院,成都 610064)
避障導(dǎo)航算法是移動(dòng)機(jī)器人自主智能中一個(gè)基礎(chǔ)且重要的算法,其作用是引導(dǎo)機(jī)器人在空間中從起始點(diǎn)無碰撞地移動(dòng)到目標(biāo)點(diǎn)。避障導(dǎo)航算法通??煞譃閮煞N:動(dòng)態(tài)環(huán)境導(dǎo)航避障和靜態(tài)環(huán)境導(dǎo)航避障算法,前者空間中存在可移動(dòng)的障礙物,后者僅存在不可移動(dòng)的障礙物。通常,移動(dòng)機(jī)器人工作在餐廳、機(jī)場(chǎng)、街道等場(chǎng)景中,這些場(chǎng)景中存在著大量移動(dòng)且密集的人群,移動(dòng)機(jī)器人往往需要穿過密集的人群到達(dá)目的地,同時(shí)避免發(fā)生碰撞。相較于只有靜態(tài)障礙物的環(huán)境,這些環(huán)境中的障礙物狀態(tài)不斷變化且難以預(yù)測(cè),導(dǎo)航與避障變得困難。因此,如何在這些未知密集的動(dòng)態(tài)環(huán)境中自主導(dǎo)航和避障,依然是移動(dòng)機(jī)器人自主智能中具有挑戰(zhàn)性的問題,具有重要的研究意義[1?2]。
目前,移動(dòng)機(jī)器人導(dǎo)航算法主要分為兩種:基于規(guī)則的算法[3?5]和基于學(xué)習(xí)[6?7]的算法?;谝?guī)則的算法通過設(shè)計(jì)一系列規(guī)則,并根據(jù)這些規(guī)則運(yùn)動(dòng)。經(jīng)典的基于規(guī)則的導(dǎo)航算法如ORCA[3]、人工勢(shì)場(chǎng)算法[4]、A?Star[5]算法等。這些算法在靜態(tài)場(chǎng)景中可以很好地完成任務(wù)。然而,當(dāng)環(huán)境變?yōu)閯?dòng)態(tài)時(shí),這些基于規(guī)則的算法往往產(chǎn)生不自然的運(yùn)動(dòng)路徑,甚至導(dǎo)致導(dǎo)航失敗。基于學(xué)習(xí)的算法主要為強(qiáng)化學(xué)習(xí)算法,如CADRL[6]、LSTM?RL[7]等,這些算法包括訓(xùn)練和推理兩個(gè)階段。在訓(xùn)練階段,算法不斷與環(huán)境交互以獲得獎(jiǎng)勵(lì)或者懲罰,從而不斷改進(jìn)策略以學(xué)習(xí)到在動(dòng)態(tài)環(huán)境中導(dǎo)航的模型。在推理階段,算法直接通過訓(xùn)練階段獲得的模型進(jìn)行決策。雖然基于學(xué)習(xí)的算法在動(dòng)態(tài)環(huán)境中取得了一些成果,然而隨著場(chǎng)景中動(dòng)態(tài)障礙物的數(shù)量增加,這些算法均出現(xiàn)了不同程度的性能下降,如:導(dǎo)航成功率下降和導(dǎo)航時(shí)間過長等。為了解決以上問題,本文提出了一種基于深度強(qiáng)化學(xué)習(xí)的導(dǎo)航避障算法,僅需八個(gè)距離傳感器和機(jī)器人的運(yùn)動(dòng)狀態(tài)便可引導(dǎo)機(jī)器人在未知的密集動(dòng)態(tài)環(huán)境中導(dǎo)航和避障。該算法主要包括一個(gè)用于提取融合傳感器特征并進(jìn)行Q 值估計(jì)的神經(jīng)網(wǎng)絡(luò)RA?DQN,以及一個(gè)受人工勢(shì)場(chǎng)啟發(fā)而設(shè)計(jì)的勢(shì)能獎(jiǎng)勵(lì)函數(shù)PEFR。仿真實(shí)驗(yàn)結(jié)果表明,當(dāng)環(huán)境中障礙物數(shù)量超過40 個(gè)時(shí),本文提出的算法可以保持60%的成功率,而參與對(duì)比的其他算法成功率低于50%,本文算法可以有效提高在密集環(huán)境中導(dǎo)航避障的性能。
本文提出的算法框架如圖1所示,其主要包括兩個(gè)部分:基于殘差卷積網(wǎng)絡(luò)和注意力機(jī)制[8]的深度Q 網(wǎng)絡(luò)(residual attention Q?network,RA?DQN),基于人工勢(shì)能場(chǎng)的獎(jiǎng)勵(lì)函數(shù)(poten?tial energy field reward, PEFR)。RA?DQN 由帶注意力機(jī)制的殘差卷積網(wǎng)絡(luò)和深度Q 網(wǎng)絡(luò)[9]組成,其主要作用是提取來自傳感器的狀態(tài)信息,并獲得當(dāng)前狀態(tài)下每個(gè)可選動(dòng)作的Q 值,該值表征了當(dāng)前狀態(tài)下選擇某一動(dòng)作的收益期望。PEFR 通過特殊設(shè)計(jì)的勢(shì)能場(chǎng)函數(shù)給予智能體(agent)獎(jiǎng)勵(lì)信號(hào),即:當(dāng)智能體發(fā)生碰撞時(shí)給予懲罰;當(dāng)智能體靠近目標(biāo)點(diǎn)時(shí)給予獎(jiǎng)勵(lì),從而有效引導(dǎo)智能體學(xué)習(xí)在動(dòng)態(tài)環(huán)境中的導(dǎo)航策略。
圖1 導(dǎo)航避障算法框架
本文算法使用了兩個(gè)RA?DQN 網(wǎng)絡(luò)。在探索階段,使用其中一個(gè)RA?DQN 與環(huán)境不斷交互從而獲得經(jīng)驗(yàn),并將這些經(jīng)驗(yàn)儲(chǔ)存在經(jīng)驗(yàn)池(replay buffer, RB)中供訓(xùn)練時(shí)使用。在訓(xùn)練階段,使用兩個(gè)RA?DQN 的TD?error 作為損失函數(shù)訓(xùn)練,并按照一定頻率更新與環(huán)境交互的網(wǎng)絡(luò)。本文的RB 采用優(yōu)先級(jí)經(jīng)驗(yàn)回放池[10],可以有效提高探索樣本的利用效率。
記r是機(jī)器人半徑,其周圍等距分布有8 個(gè)同構(gòu)的距離傳感器,每個(gè)傳感器間隔45 度。機(jī)器人導(dǎo)航和避障任務(wù)通常被建模為馬爾科夫決策過程。每個(gè)智能體的狀態(tài)通常被分為可觀測(cè)狀態(tài)和不可觀測(cè)狀態(tài),可觀測(cè)狀態(tài)包括位置坐標(biāo)(x,y)、速度(vx,vy)、智能體半徑r;不可觀測(cè)狀態(tài)包括目的地坐標(biāo)(gx,gy)、偏好速度(v偏好)等。機(jī)器人可以獲取的狀態(tài)信息包括自己所有的狀態(tài)(可觀測(cè)和不可觀測(cè)狀態(tài))以及來自傳感器的狀態(tài)(S傳感器)。因此,本文算法的狀態(tài)st的表達(dá)式為
在強(qiáng)化學(xué)習(xí)中,使用狀態(tài)?動(dòng)作函數(shù)來表征當(dāng)前時(shí)刻動(dòng)作的價(jià)值,也稱作Q 函數(shù),獲得Q函數(shù)后便可根據(jù)Q 函數(shù)選擇當(dāng)前的動(dòng)作,一般而言選擇Q值最大的動(dòng)作即為最佳動(dòng)作。Q函數(shù)的表達(dá)式為
其中:Ras為即時(shí)獎(jiǎng)勵(lì);s和s'分別為當(dāng)前狀態(tài)和下一時(shí)刻狀態(tài);a是當(dāng)前執(zhí)行的動(dòng)作;Pass'為當(dāng)前狀態(tài)到下一狀態(tài)的轉(zhuǎn)移概率;γ是折扣因子。本算法中Q 函數(shù)使用神經(jīng)網(wǎng)絡(luò)進(jìn)行值近似,并采用強(qiáng)化學(xué)習(xí)時(shí)間差分迭代的方式獲得最優(yōu)Q函數(shù),即學(xué)習(xí)導(dǎo)航和避障的策略。
本文的RA?DQN 網(wǎng)絡(luò)的主要作用是估計(jì)當(dāng)前狀態(tài)下每個(gè)動(dòng)作的Q 值,即當(dāng)前狀態(tài)下每個(gè)動(dòng)作的價(jià)值。RA?DQN的結(jié)構(gòu)如圖2所示。
圖2 RA?DQN網(wǎng)絡(luò)結(jié)構(gòu)
RA?DQN 主要由兩個(gè)部分構(gòu)成:基于殘差卷積和注意力機(jī)制的狀態(tài)特征提取網(wǎng)絡(luò)RAF 和基于多層感知機(jī)MLP 的Q 值估計(jì)網(wǎng)絡(luò)。RAF 的主要作用是利用殘差卷積提取狀態(tài)特征并利用注意力機(jī)制捕捉特征間的依賴關(guān)系,將這些特征加權(quán)融合。RAF 主要由多個(gè)注意力殘差塊ARB 組成。ARB 本質(zhì)上是一個(gè)帶通道注意力的殘差卷積塊,其將輸入的特征首先輸入一個(gè)卷積層,而后通過池化層生成通道注意力,最后將注意力值與卷積層提取的特征相乘以殘差到的形式輸出。Q值估計(jì)網(wǎng)絡(luò)也稱Q網(wǎng)絡(luò),其作用是通過輸入RAF 提取得到的狀態(tài)特征輸出每個(gè)Q值。
PEFR 的基本思想是當(dāng)智能體靠近障礙物或發(fā)生碰撞時(shí)給予懲罰,當(dāng)智能體遠(yuǎn)離障礙物或靠近目標(biāo)點(diǎn)時(shí)給予獎(jiǎng)勵(lì),因此本文將期望智能體靠近的區(qū)域設(shè)置為低勢(shì)能區(qū)域,并在將當(dāng)前時(shí)刻t與上一時(shí)刻t?1的勢(shì)能函數(shù)差值作為獎(jiǎng)勵(lì)。綜合以上思想,在t時(shí)刻,獎(jiǎng)勵(lì)Rt的數(shù)學(xué)表達(dá)式如下:
其中:r碰撞< 0 是發(fā)生碰撞時(shí)的懲罰值;r到達(dá)> 0是到達(dá)目標(biāo)點(diǎn)時(shí)的獎(jiǎng)勵(lì)值;Et和Et?1分別是t、t?1 時(shí)刻的勢(shì)能場(chǎng)函數(shù)值。勢(shì)能場(chǎng)函數(shù)E的表達(dá)式為
其主要包括兩個(gè)部分:引力場(chǎng)函數(shù)和斥力場(chǎng)函數(shù),引力場(chǎng)函數(shù)At的表達(dá)式為
斥力場(chǎng)函數(shù)是智能體與所有動(dòng)態(tài)障礙物的斥力的總和,智能體與第i個(gè)障礙物之間斥力的表達(dá)式為
本算法包含兩個(gè)RA?DQN網(wǎng)絡(luò):目標(biāo)網(wǎng)絡(luò)和評(píng)估網(wǎng)絡(luò)。在探索階段,目標(biāo)網(wǎng)絡(luò)根據(jù)當(dāng)前環(huán)境狀態(tài)st得到每個(gè)動(dòng)作的Q值,并依據(jù)e?greedy 策略選擇動(dòng)作at從而獲得下一時(shí)刻的狀態(tài)st+1以及獎(jiǎng)勵(lì)rt,并將它們存入經(jīng)驗(yàn)池(replay buffer,RB)中。其中e?greedy的過程如下:
在訓(xùn)練階段,從RB 中隨機(jī)采樣nbatch條經(jīng)驗(yàn),計(jì)算評(píng)估網(wǎng)絡(luò)與目標(biāo)網(wǎng)絡(luò)的TD?error,從而訓(xùn)練目標(biāo)網(wǎng)絡(luò),每隔k輪探索,目標(biāo)網(wǎng)絡(luò)將會(huì)更新評(píng)估網(wǎng)絡(luò)。其中,TD?error的表達(dá)式如下:
本文使用Python 實(shí)現(xiàn)了所提算法,使用Py?Torch來實(shí)現(xiàn)RA?DQN。選擇了當(dāng)前廣泛使用的動(dòng)態(tài)環(huán)境導(dǎo)航避障算法, ORCA、 CADRL、LSTM?RL與我們的算法進(jìn)行對(duì)比。仿真環(huán)境長10米、寬10 米,有n個(gè)障礙。所有算法在n=10、20、30 和40 的情況下運(yùn)行了100 次,并記錄成功率、導(dǎo)航時(shí)間等指標(biāo)。障礙物的起始位置是隨機(jī)確定的,并均勻地分散在場(chǎng)景中,并且障礙物的目標(biāo)也是隨機(jī)和均勻地分散在整個(gè)場(chǎng)景中。強(qiáng)化學(xué)習(xí)算法的參數(shù)包括:0.01 的學(xué)習(xí)率,0.95 的折扣因子,探索率e按照線性衰減策略從0.5 下降到0.1。經(jīng)驗(yàn)回放池的大小為20000。批訓(xùn)練的大小為64,并隨著訓(xùn)練的進(jìn)行逐步提升至256。訓(xùn)練使用了一張GTX2080Ti GPU。
每個(gè)算法在每個(gè)測(cè)試環(huán)境中均測(cè)試了100次,并對(duì)每個(gè)算法使用相同的隨機(jī)種子。對(duì)于每個(gè)仿真環(huán)境,我們通過統(tǒng)計(jì)成功率、平均到達(dá)時(shí)間、平均到達(dá)距離以及平均獎(jiǎng)勵(lì)來評(píng)估算法的性能,顯示了不同障礙物數(shù)量情況下,不同算法指標(biāo)的變化情況,結(jié)果如圖3所示。
圖3 成功率和平均時(shí)間對(duì)比
當(dāng)障礙物數(shù)量增加到40 個(gè)時(shí),環(huán)境變得十分稠密,高度動(dòng)態(tài)且擁擠,此時(shí)除本文算法,其余算法成功率均低于50%,ORCA、CADRL、LSTM?RL 均難以完成導(dǎo)航任務(wù)。本文算法仍能保持69%的成功率,優(yōu)于參與測(cè)試的所有算法。RA?DQN 可以有效緩解障礙物數(shù)量上升時(shí)帶來的性能下降,并能保持穩(wěn)定的運(yùn)行效率。
圖4 展示了算法在具有20 個(gè)動(dòng)態(tài)障礙物的隨機(jī)環(huán)境中的軌跡特征。相比基于強(qiáng)化學(xué)習(xí)的算法,基于規(guī)則的ORCA 僅有少數(shù)情況下產(chǎn)生了直接通向目標(biāo)的路徑,且成功率較低。本文算法、CADRL 以及LSTM?RL 算法均使用圓形運(yùn)動(dòng)以避免碰撞。然而與本文算法相比,CADRL算法軌跡波動(dòng)程度更大。本文算法軌跡更加集中,穩(wěn)定程度更高。LSTM?RL 算法則產(chǎn)生了大量低效的迂回、且不自然的軌跡。相較參與測(cè)試的其他算法,本文算法可以完成可靠且穩(wěn)定的碰撞規(guī)避,且導(dǎo)航過程中動(dòng)作變更較少,更加高效。
圖4 特征軌跡對(duì)比
本文提出了一種基于深度強(qiáng)化學(xué)習(xí)的密集動(dòng)態(tài)環(huán)境導(dǎo)航算法,該算法使用基于殘差卷積和注意力機(jī)制的深度Q 網(wǎng)絡(luò)RA?DQN 以獲得當(dāng)前最佳動(dòng)作,并設(shè)計(jì)了一個(gè)基于勢(shì)能函數(shù)的獎(jiǎng)勵(lì)函數(shù)PEFR 引導(dǎo)算法學(xué)習(xí)有效的導(dǎo)航策略。實(shí)驗(yàn)結(jié)果表明,本文提出的算法可以在高度動(dòng)態(tài)的環(huán)境中完成導(dǎo)航和避障任務(wù),同時(shí)與CADRL、LSTM?RL 算法相比具有優(yōu)勢(shì)。本文提出的算法,結(jié)構(gòu)簡(jiǎn)單且易于使用,只需要8個(gè)距離傳感器的數(shù)據(jù)以及少量自身的位置信息便可完成導(dǎo)航避障任務(wù)。未來,我們會(huì)將算法整合到導(dǎo)航框架中,通過長距離的路徑規(guī)劃和本算法結(jié)合從而完成更長距離的導(dǎo)航避障任務(wù)。