劉想德,宋 澤,張 毅,鄭 凱
(重慶郵電大學(xué) 先進(jìn)制造工程學(xué)院,重慶 400065)
移動機(jī)器人在人類活動場景中廣泛使用,其在未知復(fù)雜場景中的自主導(dǎo)航能力需要提高。隨著人工智能、機(jī)器學(xué)習(xí)算法在機(jī)器人領(lǐng)域的應(yīng)用,研究人員開始采用深度強(qiáng)化學(xué)習(xí)算法解決機(jī)器人在未知環(huán)境中的導(dǎo)航問題[1-2]。
文獻(xiàn)[3]結(jié)合船舶在實際航行中的環(huán)境模型,提出了一種基于深度Q網(wǎng)絡(luò)(deep Q network, DQN)算法的沿海船舶路徑規(guī)劃模型,然而,該模型規(guī)劃出的路徑存在較多路徑角,且輸出的動作為離散動作,在動態(tài)環(huán)境中容易與障礙物發(fā)生碰撞。文獻(xiàn)[4]使用異步深度確定性策略梯度(deep deterministic policy gradient,DDPG)算法,通過輸入10維稀疏激光測量信息和目標(biāo)的相對位置,使智能體能夠?qū)W習(xí)連續(xù)控制動作,但由于該模型中的獎勵函數(shù)較為“稀疏”,導(dǎo)致導(dǎo)航模型訓(xùn)練速度較慢,且當(dāng)機(jī)器人處于障礙物較多的環(huán)境時,機(jī)器人導(dǎo)航魯棒性較差。文獻(xiàn)[5]提出的異步學(xué)習(xí)算法,通過增加好奇心驅(qū)動策略,訓(xùn)練后的機(jī)器人在未知環(huán)境中具有更好的泛化能力,但沒有在復(fù)雜環(huán)境進(jìn)行導(dǎo)航測試。文獻(xiàn)[6]針對機(jī)器人在復(fù)雜場景的導(dǎo)航問題,將卷積神經(jīng)網(wǎng)絡(luò)與近端策略優(yōu)化(proximal policy optimization,PPO)算法相結(jié)合,提高了機(jī)器人在復(fù)雜場景下的探索能力,但其輸出為離散動作,在復(fù)雜場景中靈活性較低。
基于上述分析,本文采用DDPG算法,在獎勵函數(shù)中引入人工勢場,設(shè)計出高“密度”的獎勵函數(shù);并設(shè)計了基于Actor-Critic的網(wǎng)絡(luò)結(jié)構(gòu),以提高模型的導(dǎo)航泛化能力。
本文提出的導(dǎo)航算法框架如圖1所示。算法將激光雷達(dá)的測距信息、機(jī)器人上一時刻的動作(包括角速度和線速度)和目標(biāo)點的位置作為模型的輸入,輸出為連續(xù)動作。圖1中,虛線部分表示導(dǎo)航模型根據(jù)機(jī)器人當(dāng)前所處的狀態(tài)計算獎勵回報的過程。
為方便導(dǎo)航模型對輸入信息進(jìn)行處理,將模型輸入信息進(jìn)行預(yù)處理:①將激光雷達(dá)測距信息抽象為(-90°,+90°)范圍的9個均勻間隔的扇形區(qū)域,可降低機(jī)器人周圍環(huán)境噪聲對模型訓(xùn)練和導(dǎo)航的影響,減少模型對環(huán)境信息處理的計算量;②將機(jī)器人線速度限制在0~1 m/s,角速度限制在-1~1 rad/s;③用距離和角度來表征導(dǎo)航目標(biāo)點相對機(jī)器人的位置。
圖1 算法框架結(jié)構(gòu)Fig.1 Algorithm framework
由于移動機(jī)器人搭載的是2D激光雷達(dá),該傳感器只能感知到部分環(huán)境狀態(tài),因此,將移動機(jī)器人的無先驗地圖導(dǎo)航表述為部分可觀察的馬爾科夫決策過程。該過程描述的是在某一時間、處于某一狀態(tài)的機(jī)器人執(zhí)行一個動作達(dá)到下一個狀態(tài),并從模型中得到一個獎勵回報的過程[7],其數(shù)學(xué)模型可以通過7元數(shù)組描述。數(shù)組中,S表示所有可能的狀態(tài)集合,表示為S={s0,…,st};A表示機(jī)器人的動作集合,A={a0,…,at};P表示狀態(tài)轉(zhuǎn)移概率,P(st+1|st,at)描述在當(dāng)前環(huán)境狀態(tài)st下,機(jī)器人執(zhí)行動作a轉(zhuǎn)移到狀態(tài)st+1的概率;r表示獎勵函數(shù),r(s,a)表示機(jī)器人在狀態(tài)s下執(zhí)行動作a之后獲得對應(yīng)獎勵值的函數(shù);Z表示機(jī)器人傳感器所感知到的環(huán)境狀態(tài)集合,包括機(jī)器人當(dāng)前位置和目標(biāo)點位置的距離以及機(jī)器人與障礙物的距離;O表示觀察概率,O(zj|zi,a)是在狀態(tài)zi下執(zhí)行動作a、觀察為zj的概率;γ表示折扣因子,γ∈[0,1]。機(jī)器人在某一狀態(tài)st的累計折扣獎勵Rt可描述為從t時刻開始的折扣獎勵總和,表示為
(1)
策略π的隨機(jī)性使得計算的累計折扣獎勵也是隨機(jī)的,而累計折扣獎勵的期望是一個確定值。在強(qiáng)化學(xué)習(xí)中,常用動作-值函數(shù)預(yù)測當(dāng)前狀態(tài)下累計折扣獎勵的期望,機(jī)器人的探索目標(biāo)是將每個狀態(tài)的動作-值函數(shù)最大化[8]。動作-值函數(shù)Qπ(s,a)表示根據(jù)策略π在環(huán)境狀態(tài)st下采取動作a后的期望回報,表示為
(2)
當(dāng)機(jī)器人的狀態(tài)空間維數(shù)較大時,傳統(tǒng)的強(qiáng)化學(xué)習(xí)算法難以估計動作-值函數(shù)。在深度強(qiáng)化學(xué)習(xí)中,可以利用深度學(xué)習(xí)對動作-值函數(shù)進(jìn)行預(yù)測估計,進(jìn)而學(xué)習(xí)Q值最大的行為策略。
獎勵函數(shù)可分為4部分:到達(dá)獎勵ra、碰撞獎勵rc、時間獎勵rt和勢場獎勵rp,前3部分皆設(shè)為固定值,到達(dá)獎勵為正獎勵,碰撞獎勵和時間獎勵均為負(fù)獎勵。獎勵函數(shù)可表示為
(3)
(3)式中,d為機(jī)器人移動距離。當(dāng)機(jī)器人達(dá)到距離目標(biāo)點dtarget范圍內(nèi)可視為達(dá)到目標(biāo)點,獲得+20的正獎勵,將dtarget設(shè)為0.2 m;當(dāng)機(jī)器人距離障礙物范圍dcollision內(nèi)則表示機(jī)器人與障礙物發(fā)生碰撞,碰撞獲得-1的負(fù)獎勵,將dcollision設(shè)置為0.1 m;step表示機(jī)器人在每一幕的探索步數(shù),當(dāng)機(jī)器人探索步數(shù)達(dá)到最大步數(shù)時,獲得-1的負(fù)獎勵。
機(jī)器人從初始位置到目標(biāo)點的探索過程中,為了鼓勵機(jī)器人向目標(biāo)點靠近并且避開障礙物,在獎勵函數(shù)中引入人工勢場,設(shè)計出勢場獎勵函數(shù),勢場獎勵函數(shù)受吸引勢場和排斥勢場的影響。吸引勢場由目標(biāo)點和機(jī)器人位置決定,機(jī)器人距離目標(biāo)點位置越遠(yuǎn),所受的吸引勢場越大[9]。吸引勢場Uatt定義為
Uatt=kρg=k||Pr-Pg||2
(4)
(4)式中:k為引力勢場正比例增益系數(shù),設(shè)置為0.5;ρg表示機(jī)器人當(dāng)前位置與目標(biāo)點的歐氏距離。
機(jī)器人距離障礙物越近,排斥勢場越大。考慮到障礙物只在一定范圍對機(jī)器人產(chǎn)生影響,為減輕計算量,超過該影響范圍后障礙物對機(jī)器人的影響忽略不計。機(jī)器人在障礙物附近的感知示意圖如圖2所示。
圖2 機(jī)器人在障礙物附近感知示意圖Fig.2 Schematic diagram of robot perception near obstacles
圖2中,中心的黑色圓形表示機(jī)器人,虛線表示障礙物對機(jī)器人的影響范圍,邊緣處的圓形和正方形代表不同的障礙物。
傳統(tǒng)的排斥勢場只考慮了障礙物對機(jī)器人的影響,當(dāng)機(jī)器人的目標(biāo)點附近存在障礙物時,機(jī)器人所受到的排斥影響將占主導(dǎo)地位,使得機(jī)器人靠近目標(biāo)點會獲得較大的負(fù)獎勵值,導(dǎo)致算法難以收斂[10-12]。本文在排斥勢場的設(shè)計中,引入目標(biāo)距離因子,保證目標(biāo)點附近引力勢場占主導(dǎo)地位,當(dāng)靠近目標(biāo)點時獲得正的獎勵值,引導(dǎo)機(jī)器人向目標(biāo)點靠近,同時避開周圍障礙物。排斥勢場定義為
(5)
(5)式中:m為斥力勢場距離增益系數(shù),設(shè)置為0.05;di為激光的測距距離;d0為常數(shù),表示障礙物產(chǎn)生的排斥勢場對機(jī)器人產(chǎn)生影響的距離界限,將d0設(shè)置為1 m;N為當(dāng)前時刻在障礙物影響范圍內(nèi)激光雷達(dá)感知到的障礙物激光線束數(shù)量;n為(0,1)的系數(shù)。當(dāng)機(jī)器人靠近障礙物附近的目標(biāo)點時,排斥勢場逐漸減小并趨近于0,保證了機(jī)器人靠近目標(biāo)點時吸引勢場影響的獎勵函數(shù)占主導(dǎo)地位。當(dāng)計算出吸引勢場和排斥勢場后,通過構(gòu)造塑性獎勵函數(shù)計算t時刻的勢場獎勵,計算式為
Ut=Uatt+Urep
(6)
rp=Ut-1-Ut
(7)
本文DDPG算法的Actor網(wǎng)絡(luò)和Critic網(wǎng)絡(luò)采用全連接神經(jīng)網(wǎng)絡(luò),每個神經(jīng)網(wǎng)絡(luò)有3個隱藏層,每一層具有512個節(jié)點,每個隱藏單元采用ReLU激活函數(shù),網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。Actor網(wǎng)絡(luò)需要輸出機(jī)器人的線速度和角速度,為了將線速度限制在0~1 m/s,線速度輸出層采用Sigmoid激活函數(shù),此外,為獲得-1~1 rad/s的角速度,角速度的輸出層激活函數(shù)采用Tanh函數(shù)。Actor網(wǎng)絡(luò)結(jié)構(gòu)見圖3a。Critic網(wǎng)絡(luò)輸出對狀態(tài)和動作預(yù)測的Q值,輸出層通過線性激活函數(shù)激活,其網(wǎng)絡(luò)結(jié)構(gòu)見圖3b。
圖3 網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Architecture of the network
機(jī)器人在真實環(huán)境中通過試錯來探索最優(yōu)策略代價大,因此,需要借助虛擬環(huán)境完成模型的訓(xùn)練。由于Gazebo平臺具有強(qiáng)大的三維仿真環(huán)境且支持傳感器數(shù)據(jù),故選擇Gazebo作為仿真試驗平臺,利用該試驗平臺創(chuàng)建虛擬環(huán)境,完成導(dǎo)航模型的訓(xùn)練和導(dǎo)航性能的評估。本文選擇Turtlebot3 Burger作為機(jī)器人模型。試驗所采用的服務(wù)器配置為:CPU為Intel的酷睿i7-10875H,GPU型號為GeForce RTX2080Ti,操作系統(tǒng)為ubuntu16.04。
在Gazebo仿真環(huán)境中,構(gòu)建一個8 m×8 m的封閉室內(nèi)環(huán)境作為導(dǎo)航模型的訓(xùn)練環(huán)境,并隨機(jī)放置3個障礙物,模型訓(xùn)練的仿真室內(nèi)環(huán)境如圖4所示。圖4中綠色部分為設(shè)置的障礙物,紅色部分為導(dǎo)航目標(biāo)點。在每一幕的訓(xùn)練過程中,機(jī)器人的初始點設(shè)置在封閉環(huán)境的中心位置,導(dǎo)航目標(biāo)點隨機(jī)分布。當(dāng)機(jī)器人滿足以下條件之一便結(jié)束一幕的訓(xùn)練過程:①到達(dá)目標(biāo)點;②機(jī)器人與障礙物發(fā)生碰撞;③該過程探索步數(shù)達(dá)到最大探索步數(shù)。
機(jī)器人搭載的激光雷達(dá)型號為HLS-LFCD2,其最大測距范圍為3.5 m,本文提取(-90°,+90°)等角度的10個激光測距數(shù)據(jù)作為模型的輸入。在機(jī)器人定位方面,本文選擇較為成熟的AMCL算法作為機(jī)器人的定位算法??紤]到機(jī)器人的活動能力以及過大的速度變化會對算法收斂性產(chǎn)生一定影響,訓(xùn)練過程中,將機(jī)器人最大線速度設(shè)為0.25 m/s,角速度限制在-0.5~0.5 rad/s,其余超參數(shù)如表1所示。
圖4 模型訓(xùn)練時的虛擬環(huán)境Fig.4 Virtual environment during model training
表1 參數(shù)設(shè)置表
本文分別對模型的訓(xùn)練過程和模型訓(xùn)練完成后機(jī)器人的導(dǎo)航性能進(jìn)行評估,將導(dǎo)航模型分別與文獻(xiàn)[9]的導(dǎo)航模型(以下簡稱模型1)進(jìn)行對比驗證。同時,為驗證排斥勢場獎勵函數(shù)中的目標(biāo)距離因子在導(dǎo)航策略優(yōu)化的有效性,設(shè)置一組在排斥勢場獎勵函數(shù)中不含目標(biāo)距離因子的獎勵函數(shù)導(dǎo)航模型(以下簡稱模型2)作為對比試驗。模型1在設(shè)置獎勵函數(shù)時只考慮了機(jī)器人與目標(biāo)點距離的影響因素,沒有考慮機(jī)器人靠近障礙物的情況,其探索過程的獎勵函數(shù)類似于本文的吸引勢場獎勵函數(shù),所使用的超參數(shù)和網(wǎng)絡(luò)結(jié)構(gòu)與本文的導(dǎo)航模型相同。模型2與本文提出的模型相比,在排斥勢場獎勵函數(shù)中,沒有將目標(biāo)距離因子包含在內(nèi)。
3.2.1 算法訓(xùn)練過程的評估
在算法訓(xùn)練過程中,本文分別對機(jī)器人獲得的獎勵值和導(dǎo)航成功率進(jìn)行對比。本文模型、模型1和模型2的獎勵值和導(dǎo)航成功率如圖5所示。由圖5可以看出,本文模型獎勵值曲線大約在800幕開始收斂,導(dǎo)航成功率超過80%且保持穩(wěn)定;模型1約在1 050幕導(dǎo)航成功率達(dá)到80%;模型2大約在1 000幕獎勵值開始收斂,導(dǎo)航成功率趨于穩(wěn)定。由此可見,本文模型相對模型1和模型2訓(xùn)練速度更快,導(dǎo)航成功率更高。相比于本文模型和模型2,模型1在設(shè)計獎勵函數(shù)時沒有考慮障礙物對導(dǎo)航的影響,在模型訓(xùn)練過程中,機(jī)器人與障礙物發(fā)生碰撞的頻率更高,導(dǎo)致模型的訓(xùn)練速度較慢、導(dǎo)航成功率更低。與模型2相比,本文設(shè)計的排斥勢場獎勵函數(shù)考慮了障礙物附近存在目標(biāo)點的情況,引入了目標(biāo)距離因子來降低障礙物對導(dǎo)航的影響,能夠加快模型的訓(xùn)練速度。然而,由于導(dǎo)航目標(biāo)點隨機(jī)分布,可能導(dǎo)致目標(biāo)點與障礙物位置沖突,造成機(jī)器人無法到達(dá)目標(biāo)點,使訓(xùn)練過程的導(dǎo)航成功率受到一定限制。
圖5 獎勵值和導(dǎo)航成功率隨幕數(shù)的變化曲線Fig.5 Curve of the reward value and success rate of navigation change with the number of episode
3.2.2 仿真實驗
為了驗證所提出的導(dǎo)航模型的泛化性,利用Gazebo分別創(chuàng)建一個障礙物密度相對較低的場景1和一個障礙物分布更密集的場景2,兩個場景均為10 m×10 m的封閉室內(nèi)環(huán)境,分別如圖6所示。
在相同的訓(xùn)練環(huán)境條件下,取1 000幕作為算法訓(xùn)練的終止條件。導(dǎo)航初始點設(shè)置在左上角,右下角分別設(shè)置4個不同的目標(biāo)點,且目標(biāo)點靠近障礙物。兩個場景的初始點位置和導(dǎo)航目標(biāo)點位置均相同。根據(jù)起始點和目標(biāo)點的位置分別對本文的導(dǎo)航模型、模型1與模型2在場景1和場景2進(jìn)行測試,其路徑規(guī)劃結(jié)果示意圖分別如圖7和圖8所示,其中,軌跡的黑色部分為人工干預(yù)導(dǎo)航段。
圖6 實驗驗證的仿真環(huán)境Fig.6 Simulation environment of experimental verification
圖7 機(jī)器人在場景1中的軌跡示意圖Fig.7 Trajectory diagram of a robot in scenario 1
本文采用3個參數(shù)(成功達(dá)到目標(biāo)點的次數(shù),導(dǎo)航路徑的平均長度,導(dǎo)航的平均時間)分別來衡量導(dǎo)航成功率、路徑規(guī)劃的性能以及導(dǎo)航時間,實驗結(jié)果的評估數(shù)據(jù)如表2所示。
在場景1中,3種導(dǎo)航模型均能成功達(dá)到目標(biāo)點,本文模型所規(guī)劃的平均路徑長度和平均導(dǎo)航時間分別為11.18 m和52 s,相比于另兩種導(dǎo)航模型,其所規(guī)劃的平均路徑長度和導(dǎo)航時間更短,導(dǎo)航性能較好。本文模型和模型2的導(dǎo)航策略相對較為激進(jìn),而模型1的導(dǎo)航策略相對較為保守,更偏向遠(yuǎn)離障礙物,所規(guī)劃的路徑長度相對更遠(yuǎn)。在障礙物分布較密的場景2中,本文模型均能成功地完成導(dǎo)航任務(wù);模型1在4次導(dǎo)航任務(wù)中,有3次出現(xiàn)碰撞的情況,需要人為干預(yù)完成導(dǎo)航任務(wù),且規(guī)劃的路徑更為曲折;模型2雖然出現(xiàn)了一次碰撞的情況,但碰撞到障礙物的次數(shù)低于模型1。相比于模型1和模型2,本文模型規(guī)劃的平均路徑長度和導(dǎo)航時間更短,導(dǎo)航適應(yīng)性能較好。實驗表明,在設(shè)計獎勵函數(shù)時考慮障礙物對導(dǎo)航的影響能夠使模型具有更好的導(dǎo)航策略。同時,實驗也驗證了排斥勢場獎勵函數(shù)的目標(biāo)距離因子在導(dǎo)航策略優(yōu)化中的有效性。因此,在無先驗地圖的情況下, 本文模型在障礙物密度相對較低和障礙物分布密集的環(huán)境均有較好的導(dǎo)航性能,導(dǎo)航泛化性較好。
圖8 機(jī)器人在場景2中的軌跡示意圖Fig.8 Trajectory diagram of a robot in scenario 2
表2 仿真實驗評估
本文提出了一種基于DDPG的移動機(jī)器人無先驗地圖導(dǎo)航模型,將2D激光雷達(dá)測距信息、機(jī)器人動作以及目標(biāo)點位置作為模型的輸入,經(jīng)過訓(xùn)練后,可實現(xiàn)移動機(jī)器人的自主探索及導(dǎo)航;通過構(gòu)造一種新的獎勵函數(shù)優(yōu)化機(jī)器人導(dǎo)航策略,克服了稀疏獎勵函數(shù)導(dǎo)致的機(jī)器人“試錯”次數(shù)增加的問題,能夠更好地引導(dǎo)機(jī)器人避開障礙物,向目標(biāo)點靠近。針對機(jī)器人在實際環(huán)境中的導(dǎo)航情況,設(shè)計出了一種基于Actor-Critic的網(wǎng)絡(luò)結(jié)構(gòu),在模擬的簡單場景和復(fù)雜場景中對模型的收斂速度和導(dǎo)航性能進(jìn)行驗證,并與主流的無先驗地圖導(dǎo)航模型進(jìn)行比較。實驗結(jié)果表明,本文提出的導(dǎo)航模型具有更快的訓(xùn)練速度、較好的導(dǎo)航性能和泛化性。