唐 俊,楊友波,張 目,雷印杰
(四川大學電子信息學院,成都 610064)
避障導航算法是移動機器人自主智能中一個基礎且重要的算法,其作用是引導機器人在空間中從起始點無碰撞地移動到目標點。避障導航算法通常可分為兩種:動態環境導航避障和靜態環境導航避障算法,前者空間中存在可移動的障礙物,后者僅存在不可移動的障礙物。通常,移動機器人工作在餐廳、機場、街道等場景中,這些場景中存在著大量移動且密集的人群,移動機器人往往需要穿過密集的人群到達目的地,同時避免發生碰撞。相較于只有靜態障礙物的環境,這些環境中的障礙物狀態不斷變化且難以預測,導航與避障變得困難。因此,如何在這些未知密集的動態環境中自主導航和避障,依然是移動機器人自主智能中具有挑戰性的問題,具有重要的研究意義[1?2]。
目前,移動機器人導航算法主要分為兩種:基于規則的算法[3?5]和基于學習[6?7]的算法。基于規則的算法通過設計一系列規則,并根據這些規則運動。經典的基于規則的導航算法如ORCA[3]、人工勢場算法[4]、A?Star[5]算法等。這些算法在靜態場景中可以很好地完成任務。然而,當環境變為動態時,這些基于規則的算法往往產生不自然的運動路徑,甚至導致導航失敗。基于學習的算法主要為強化學習算法,如CADRL[6]、LSTM?RL[7]等,這些算法包括訓練和推理兩個階段。在訓練階段,算法不斷與環境交互以獲得獎勵或者懲罰,從而不斷改進策略以學習到在動態環境中導航的模型。在推理階段,算法直接通過訓練階段獲得的模型進行決策。雖然基于學習的算法在動態環境中取得了一些成果,然而隨著場景中動態障礙物的數量增加,這些算法均出現了不同程度的性能下降,如:導航成功率下降和導航時間過長等。為了解決以上問題,本文提出了一種基于深度強化學習的導航避障算法,僅需八個距離傳感器和機器人的運動狀態便可引導機器人在未知的密集動態環境中導航和避障。該算法主要包括一個用于提取融合傳感器特征并進行Q 值估計的神經網絡RA?DQN,以及一個受人工勢場啟發而設計的勢能獎勵函數PEFR。仿真實驗結果表明,當環境中障礙物數量超過40 個時,本文提出的算法可以保持60%的成功率,而參與對比的其他算法成功率低于50%,本文算法可以有效提高在密集環境中導航避障的性能。
本文提出的算法框架如圖1所示,其主要包括兩個部分:基于殘差卷積網絡和注意力機制[8]的深度Q 網絡(residual attention Q?network,RA?DQN),基于人工勢能場的獎勵函數(poten?tial energy field reward, PEFR)。RA?DQN 由帶注意力機制的殘差卷積網絡和深度Q 網絡[9]組成,其主要作用是提取來自傳感器的狀態信息,并獲得當前狀態下每個可選動作的Q 值,該值表征了當前狀態下選擇某一動作的收益期望。PEFR 通過特殊設計的勢能場函數給予智能體(agent)獎勵信號,即:當智能體發生碰撞時給予懲罰;當智能體靠近目標點時給予獎勵,從而有效引導智能體學習在動態環境中的導航策略。

圖1 導航避障算法框架
本文算法使用了兩個RA?DQN 網絡。在探索階段,使用其中一個RA?DQN 與環境不斷交互從而獲得經驗,并將這些經驗儲存在經驗池(replay buffer, RB)中供訓練時使用。在訓練階段,使用兩個RA?DQN 的TD?error 作為損失函數訓練,并按照一定頻率更新與環境交互的網絡。本文的RB 采用優先級經驗回放池[10],可以有效提高探索樣本的利用效率。
記r是機器人半徑,其周圍等距分布有8 個同構的距離傳感器,每個傳感器間隔45 度。機器人導航和避障任務通常被建模為馬爾科夫決策過程。每個智能體的狀態通常被分為可觀測狀態和不可觀測狀態,可觀測狀態包括位置坐標(x,y)、速度(vx,vy)、智能體半徑r;不可觀測狀態包括目的地坐標(gx,gy)、偏好速度(v偏好)等。機器人可以獲取的狀態信息包括自己所有的狀態(可觀測和不可觀測狀態)以及來自傳感器的狀態(S傳感器)。因此,本文算法的狀態st的表達式為
在強化學習中,使用狀態?動作函數來表征當前時刻動作的價值,也稱作Q 函數,獲得Q函數后便可根據Q 函數選擇當前的動作,一般而言選擇Q值最大的動作即為最佳動作。Q函數的表達式為
其中:Ras為即時獎勵;s和s'分別為當前狀態和下一時刻狀態;a是當前執行的動作;Pass'為當前狀態到下一狀態的轉移概率;γ是折扣因子。本算法中Q 函數使用神經網絡進行值近似,并采用強化學習時間差分迭代的方式獲得最優Q函數,即學習導航和避障的策略。
本文的RA?DQN 網絡的主要作用是估計當前狀態下每個動作的Q 值,即當前狀態下每個動作的價值。RA?DQN的結構如圖2所示。

圖2 RA?DQN網絡結構
RA?DQN 主要由兩個部分構成:基于殘差卷積和注意力機制的狀態特征提取網絡RAF 和基于多層感知機MLP 的Q 值估計網絡。RAF 的主要作用是利用殘差卷積提取狀態特征并利用注意力機制捕捉特征間的依賴關系,將這些特征加權融合。RAF 主要由多個注意力殘差塊ARB 組成。ARB 本質上是一個帶通道注意力的殘差卷積塊,其將輸入的特征首先輸入一個卷積層,而后通過池化層生成通道注意力,最后將注意力值與卷積層提取的特征相乘以殘差到的形式輸出。Q值估計網絡也稱Q網絡,其作用是通過輸入RAF 提取得到的狀態特征輸出每個Q值。
PEFR 的基本思想是當智能體靠近障礙物或發生碰撞時給予懲罰,當智能體遠離障礙物或靠近目標點時給予獎勵,因此本文將期望智能體靠近的區域設置為低勢能區域,并在將當前時刻t與上一時刻t?1的勢能函數差值作為獎勵。綜合以上思想,在t時刻,獎勵Rt的數學表達式如下:
其中:r碰撞< 0 是發生碰撞時的懲罰值;r到達> 0是到達目標點時的獎勵值;Et和Et?1分別是t、t?1 時刻的勢能場函數值。勢能場函數E的表達式為
其主要包括兩個部分:引力場函數和斥力場函數,引力場函數At的表達式為
斥力場函數是智能體與所有動態障礙物的斥力的總和,智能體與第i個障礙物之間斥力的表達式為
本算法包含兩個RA?DQN網絡:目標網絡和評估網絡。在探索階段,目標網絡根據當前環境狀態st得到每個動作的Q值,并依據e?greedy 策略選擇動作at從而獲得下一時刻的狀態st+1以及獎勵rt,并將它們存入經驗池(replay buffer,RB)中。其中e?greedy的過程如下:
在訓練階段,從RB 中隨機采樣nbatch條經驗,計算評估網絡與目標網絡的TD?error,從而訓練目標網絡,每隔k輪探索,目標網絡將會更新評估網絡。其中,TD?error的表達式如下:
本文使用Python 實現了所提算法,使用Py?Torch來實現RA?DQN。選擇了當前廣泛使用的動態環境導航避障算法, ORCA、 CADRL、LSTM?RL與我們的算法進行對比。仿真環境長10米、寬10 米,有n個障礙。所有算法在n=10、20、30 和40 的情況下運行了100 次,并記錄成功率、導航時間等指標。障礙物的起始位置是隨機確定的,并均勻地分散在場景中,并且障礙物的目標也是隨機和均勻地分散在整個場景中。強化學習算法的參數包括:0.01 的學習率,0.95 的折扣因子,探索率e按照線性衰減策略從0.5 下降到0.1。經驗回放池的大小為20000。批訓練的大小為64,并隨著訓練的進行逐步提升至256。訓練使用了一張GTX2080Ti GPU。
每個算法在每個測試環境中均測試了100次,并對每個算法使用相同的隨機種子。對于每個仿真環境,我們通過統計成功率、平均到達時間、平均到達距離以及平均獎勵來評估算法的性能,顯示了不同障礙物數量情況下,不同算法指標的變化情況,結果如圖3所示。

圖3 成功率和平均時間對比
當障礙物數量增加到40 個時,環境變得十分稠密,高度動態且擁擠,此時除本文算法,其余算法成功率均低于50%,ORCA、CADRL、LSTM?RL 均難以完成導航任務。本文算法仍能保持69%的成功率,優于參與測試的所有算法。RA?DQN 可以有效緩解障礙物數量上升時帶來的性能下降,并能保持穩定的運行效率。
圖4 展示了算法在具有20 個動態障礙物的隨機環境中的軌跡特征。相比基于強化學習的算法,基于規則的ORCA 僅有少數情況下產生了直接通向目標的路徑,且成功率較低。本文算法、CADRL 以及LSTM?RL 算法均使用圓形運動以避免碰撞。然而與本文算法相比,CADRL算法軌跡波動程度更大。本文算法軌跡更加集中,穩定程度更高。LSTM?RL 算法則產生了大量低效的迂回、且不自然的軌跡。相較參與測試的其他算法,本文算法可以完成可靠且穩定的碰撞規避,且導航過程中動作變更較少,更加高效。

圖4 特征軌跡對比
本文提出了一種基于深度強化學習的密集動態環境導航算法,該算法使用基于殘差卷積和注意力機制的深度Q 網絡RA?DQN 以獲得當前最佳動作,并設計了一個基于勢能函數的獎勵函數PEFR 引導算法學習有效的導航策略。實驗結果表明,本文提出的算法可以在高度動態的環境中完成導航和避障任務,同時與CADRL、LSTM?RL 算法相比具有優勢。本文提出的算法,結構簡單且易于使用,只需要8個距離傳感器的數據以及少量自身的位置信息便可完成導航避障任務。未來,我們會將算法整合到導航框架中,通過長距離的路徑規劃和本算法結合從而完成更長距離的導航避障任務。