李永迪,李彩虹,張耀玉,張國勝
(山東理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 淄博 255049)
在移動(dòng)機(jī)器人自主導(dǎo)航中,路徑規(guī)劃是一個(gè)重要的組成部分,可以描述為在一定的約束條件下,尋找一條從起點(diǎn)到目標(biāo)點(diǎn)的最優(yōu)路徑。常見的路徑規(guī)劃方法有人工勢(shì)場(chǎng)法[1]、A*算法[2-3]、蟻群算法[4-5]、遺傳算法[6]、粒子群優(yōu)化算法[7]等。這些算法大都需要建立地圖模型,工作在已知環(huán)境下;另外在復(fù)雜環(huán)境中存在運(yùn)算時(shí)間長、迭代次數(shù)多以及在未知環(huán)境下實(shí)時(shí)性差或者容易陷入局部最優(yōu)等問題。
近年來,深度學(xué)習(xí)(Deep Learning,DL)[8]和強(qiáng)化學(xué)習(xí)(Reinforcement Learning,RL)[9]成為機(jī)器學(xué)習(xí)領(lǐng)域重要的研究熱點(diǎn),將深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)相結(jié)合的深度強(qiáng)化學(xué)習(xí)(Deep Reinforcement Learning,DRL)[10]算法在移動(dòng)機(jī)器人路徑規(guī)劃中得到了廣泛使用。深度強(qiáng)化學(xué)習(xí)具有深度學(xué)習(xí)的感知優(yōu)勢(shì)和強(qiáng)化學(xué)習(xí)的決策優(yōu)勢(shì),其中,深度學(xué)習(xí)負(fù)責(zé)通過傳感器獲取周圍環(huán)境信息來感知機(jī)器人當(dāng)前的狀態(tài)信息,而強(qiáng)化學(xué)習(xí)負(fù)責(zé)對(duì)獲取的環(huán)境信息進(jìn)行探索、做出決策,從而實(shí)現(xiàn)移動(dòng)機(jī)器人路徑規(guī)劃的智能化需求。
SAC(Soft Actor-Critic)算法是Haarnoja 等[11]提出的一種穩(wěn)定高效的DRL 算法,適用于現(xiàn)實(shí)世界的機(jī)器人技能學(xué)習(xí)并能與機(jī)器人實(shí)驗(yàn)要求高度契合,能夠滿足實(shí)時(shí)性的需求;Haarnoja 等[12]在SAC 算法中加入了熵權(quán)重的自動(dòng)調(diào)整,在訓(xùn)練前期熵的權(quán)重較大,在后期逐漸衰減熵的權(quán)重,讓智能體收斂更加穩(wěn)定;De Jesus 等[13]將SAC 算法應(yīng)用到ROS(Robot Operating System)環(huán)境下,實(shí)現(xiàn)了移動(dòng)機(jī)器人在不同環(huán)境下的局部路徑規(guī)劃,但算法存在訓(xùn)練時(shí)間長和環(huán)境獎(jiǎng)勵(lì)稀疏的問題;肖碩等[14]引入智能體通信機(jī)制,有效降低了環(huán)境不穩(wěn)定性對(duì)算法造成的影響,但樣本利用率低、收斂慢;單麒源等[15]優(yōu)化了算法的狀態(tài)輸入,改善了訓(xùn)練次數(shù)越多獎(jiǎng)勵(lì)值越低的問題,但應(yīng)用場(chǎng)景簡(jiǎn)單,面對(duì)復(fù)雜環(huán)境算法效率無法保證;胡仕柯等[16]通過在原有算法中引入內(nèi)在好奇心機(jī)制,提高智能體探索能力與樣本利用效率,同樣存在應(yīng)用場(chǎng)景簡(jiǎn)單且收斂速度較慢。
針對(duì)上述算法的不足,本文對(duì)SAC 算法進(jìn)行了改進(jìn),首先,提出的PER-SAC 算法使用三層全連接神經(jīng)網(wǎng)絡(luò),通過雷達(dá)傳感器獲取環(huán)境信息和目標(biāo)點(diǎn)信息,并且令環(huán)境中障礙物的距離信息、機(jī)器人的角速度和線速度、機(jī)器人與目標(biāo)點(diǎn)之間的距離和角度,作為網(wǎng)絡(luò)的輸入,輸出為機(jī)器人的角速度和線速度;進(jìn)而結(jié)合優(yōu)先級(jí)經(jīng)驗(yàn)回放(Prioritized Experience Replay,PER),對(duì)經(jīng)驗(yàn)池中不同樣本的重要程度進(jìn)行區(qū)分,使重要程度較高的樣本更頻繁地回放,進(jìn)一步提高了原始算法中樣本的利用率,從而進(jìn)行更有效的學(xué)習(xí),提高算法的收斂速度;然后設(shè)計(jì)改進(jìn)的獎(jiǎng)勵(lì)函數(shù),克服環(huán)境獎(jiǎng)勵(lì)稀疏的缺點(diǎn);此外,設(shè)計(jì)了不同的仿真環(huán)境(無障礙物、離散障礙物和特殊障礙物),提高算法的泛化性;考慮到在不同障礙物環(huán)境下實(shí)驗(yàn)的重復(fù)性,引入遷移學(xué)習(xí),將收斂后的無障礙物模型作為離散型障礙物與特殊障礙物環(huán)境的初始化模型,加快算法收斂。
SAC 算法使用了AC(Actor-Critic)體系結(jié)構(gòu)[17]。傳統(tǒng)強(qiáng)化學(xué)習(xí)的目標(biāo)是使獎(jiǎng)勵(lì)的期望最大,而SAC 使獎(jiǎng)勵(lì)期望和熵值同時(shí)最大化:
其中:E是當(dāng)前狀態(tài)的回報(bào)期望,r是當(dāng)前狀態(tài)的回報(bào)值,ρπ為t=0 到T所有的狀態(tài)和動(dòng)作的集合,H是當(dāng)前動(dòng)作的熵,τ是溫度系數(shù),π是通過網(wǎng)絡(luò)得到的當(dāng)前狀態(tài)的所有動(dòng)作概率。
SAC 算法為了減小值函數(shù)的估計(jì)誤差,在Actor-Critic 體系的基礎(chǔ)上增加了價(jià)值網(wǎng)絡(luò),由1 個(gè)Actor 網(wǎng)絡(luò)(策略網(wǎng)絡(luò))和4 個(gè)Critic 網(wǎng)絡(luò)構(gòu)成,分別是狀態(tài)價(jià)值估計(jì)V和TargetV網(wǎng)絡(luò),由VCritic 表示;動(dòng)作-狀態(tài)價(jià)值估計(jì)Q0和Q1網(wǎng)絡(luò),由QCritic 表示。SAC 算法網(wǎng)絡(luò)構(gòu)架如圖1 所示。
圖1 SAC算法網(wǎng)絡(luò)構(gòu)架Fig.1 Network framework of SAC algorithm
已知一個(gè)狀態(tài)st,通過Actor 網(wǎng)絡(luò)得到所有動(dòng)作概率π(a|st),依概率采樣得到動(dòng)作at∈a,將at輸入到環(huán)境中得到st+1和rt+1,獲得1 個(gè)experience:(st,at,st+1,rt+1),放入到經(jīng)驗(yàn)池中。
在QCritic 網(wǎng)絡(luò)中,從經(jīng)驗(yàn)池中采樣出數(shù)據(jù)(st,at,st+1,rt+1),進(jìn)行網(wǎng)絡(luò)參數(shù)ω的更新,將動(dòng)作at的q(st,at)值作為st的預(yù)測(cè)價(jià)值估計(jì),根據(jù)最優(yōu)Bellman 方程得到作為st狀態(tài)的真實(shí)價(jià)值估計(jì):
其中Eπ為當(dāng)前狀態(tài)的累計(jì)回報(bào)期望。
用均方損失函數(shù)作為損失,對(duì)QCritic 網(wǎng)絡(luò)進(jìn)行訓(xùn)練,損失函數(shù)定義為:
其中B為從經(jīng)驗(yàn)池中取1 個(gè)batch 的數(shù)據(jù)。
在VCritic 網(wǎng)絡(luò)中,從經(jīng)驗(yàn)池采樣出數(shù)據(jù)(st,at,st+1,rt+1),進(jìn)行網(wǎng)絡(luò)參數(shù)θ的更新,Vcritic 網(wǎng)絡(luò)輸出的真實(shí)值為:
其中:為Actor 網(wǎng)絡(luò)的策略π預(yù)測(cè)的下一步所有可能動(dòng)作;lnπ(,θ)為熵。
根據(jù)真實(shí)值計(jì)算Vcritic 網(wǎng)絡(luò)的損失:
在Actor 網(wǎng)絡(luò)中,進(jìn)行梯度下降訓(xùn)練的損失函數(shù)定義為:
強(qiáng)化學(xué)習(xí)通過時(shí)序差分(Temporal-Difference,TD)誤差衡量算法修正幅度,采用計(jì)算TD 誤差的形式對(duì)策略選擇的動(dòng)作at進(jìn)行評(píng)估:
其中:Q為Critic 的狀態(tài)價(jià)值,γ為折扣因子。
為提高訓(xùn)練速度和穩(wěn)定性,本文設(shè)計(jì)了PER-SAC 算法,將優(yōu)先級(jí)經(jīng)驗(yàn)回放引入SAC 算法中,使從經(jīng)驗(yàn)池中等概率隨機(jī)采樣變?yōu)榘凑諆?yōu)先級(jí)采樣,增大重要樣本被采樣的概率。利用重要性采樣權(quán)重來修正優(yōu)先回放引入的誤差,并更新網(wǎng)絡(luò)的損失函數(shù),減少模型的錯(cuò)誤率。PER-SAC 算法包含了網(wǎng)絡(luò)結(jié)構(gòu)、獎(jiǎng)懲函數(shù)、連續(xù)的狀態(tài)空間和動(dòng)作空間的設(shè)計(jì)。
PER-SAC 算法所采用的神經(jīng)網(wǎng)絡(luò)有14 個(gè)輸入和2 個(gè)輸出,如圖2 所示。
圖2 網(wǎng)絡(luò)的輸入和輸出Fig.2 Network input and output
網(wǎng)絡(luò)的輸入包括:雷達(dá)10 個(gè)方向上的讀數(shù)xt,機(jī)器人的線速度vt-1和角速度wt-1,機(jī)器人的相對(duì)位置與目標(biāo)點(diǎn)的標(biāo)量距離dt和角度θt;網(wǎng)絡(luò)的輸出為機(jī)器人的線速度vt和角速度wt。
SAC 網(wǎng)絡(luò)結(jié)構(gòu)包括策略網(wǎng)絡(luò)(Actor)、Q網(wǎng)絡(luò)(QCritic)和價(jià)值網(wǎng)絡(luò)(VCritic)三個(gè)部分,如圖3 所示。
圖3 SAC網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 SAC network structure
策略網(wǎng)絡(luò)的輸入是機(jī)器人在環(huán)境中的當(dāng)前狀態(tài);隱藏層是3 個(gè)具有512 個(gè)節(jié)點(diǎn)的全連接層;輸出層生成發(fā)送給機(jī)器人要執(zhí)行的動(dòng)作。
Q網(wǎng)絡(luò)、價(jià)值網(wǎng)絡(luò)和策略網(wǎng)絡(luò)的隱藏層相同。Q網(wǎng)絡(luò)給出機(jī)器人當(dāng)前狀態(tài)和動(dòng)作的Q值,而價(jià)值網(wǎng)絡(luò)預(yù)測(cè)當(dāng)前狀態(tài)值。
優(yōu)先級(jí)經(jīng)驗(yàn)回放賦予每個(gè)樣本一個(gè)優(yōu)先級(jí)。從經(jīng)驗(yàn)池采樣時(shí),使優(yōu)先級(jí)越高的樣本被采樣的概率越大,提高訓(xùn)練速度,并引入SumTree 來存儲(chǔ)樣本的優(yōu)先級(jí)。
樣本的優(yōu)先級(jí)用TD 誤差定義。TD 誤差越大,優(yōu)先級(jí)越高。TD 誤差δt的計(jì)算如式(7)所示,樣本抽取的概率定義為:
其中:a用于對(duì)優(yōu)先程度的調(diào)節(jié);pi=|δi|+ε是第i個(gè)樣本的優(yōu)先度,δi是第i個(gè)樣本的TD 誤差,加入ε用于避免概率為0。
計(jì)算TD 誤差時(shí)要考慮SAC 算法中3 個(gè)網(wǎng)絡(luò)的情況,由于Q網(wǎng)絡(luò)和價(jià)值網(wǎng)絡(luò)輸出的值遠(yuǎn)大于策略網(wǎng)絡(luò)的值,將3 個(gè)網(wǎng)絡(luò)的誤差直接相加將導(dǎo)致策略網(wǎng)絡(luò)的誤差對(duì)總誤差影響較小,因此引入調(diào)整系數(shù)Tα和Tβ對(duì)Q網(wǎng)絡(luò)和價(jià)值網(wǎng)絡(luò)的值進(jìn)行調(diào)整:
由于優(yōu)先級(jí)經(jīng)驗(yàn)回放改變了樣本采樣方式,因此使用重要性采樣權(quán)重來修正優(yōu)先回放引入的誤差,并計(jì)算網(wǎng)絡(luò)進(jìn)行梯度訓(xùn)練的損失函數(shù),減小模型的錯(cuò)誤率。重要性采樣權(quán)重計(jì)算如下:
其中選取了樣本j的權(quán)重wj,并進(jìn)行歸一化處理,方法是除以所有樣本中權(quán)重最大的樣本i,用maxi(wi)表示;N為樣本容量;β是wj的調(diào)整系數(shù)。
最后使用重要性采樣權(quán)重對(duì)Q網(wǎng)絡(luò)和價(jià)值網(wǎng)絡(luò)的損失函數(shù)進(jìn)行更新。對(duì)式(3)和(5)的更新如下:
設(shè)計(jì)恰當(dāng)?shù)倪B續(xù)狀態(tài)空間和動(dòng)作空間作為神經(jīng)網(wǎng)絡(luò)的輸入和輸出,通過傳感器返回周圍環(huán)境信息。
狀態(tài)空間是對(duì)智能體所處環(huán)境的反饋,是智能體選擇動(dòng)作空間的依據(jù)。機(jī)器人搭載的激光雷達(dá),探測(cè)范圍為360°,探測(cè)距離為3.5 m??紤]到機(jī)器人不后退、雷達(dá)數(shù)據(jù)多和計(jì)算量大的問題,只使用機(jī)器人前方180°的探測(cè)范圍和10 個(gè)方向上的雷達(dá)數(shù)據(jù)。激光雷達(dá)數(shù)據(jù)的采集方向設(shè)置結(jié)構(gòu)如圖4 所示。
圖4 激光雷達(dá)數(shù)據(jù)采集結(jié)構(gòu)Fig.4 Lidar data acquisition structure
機(jī)器人的位姿信息由10 個(gè)方向雷達(dá)返回的最近障礙物的距離信息di以及機(jī)器人與目標(biāo)點(diǎn)之間的距離Dg和角度θg組成,所以移動(dòng)機(jī)器人狀態(tài)空間sj定義為:
機(jī)器人運(yùn)動(dòng)學(xué)模型使用的是Turtlebot3 的Burger 版本,運(yùn)動(dòng)參數(shù)包含線速度[vmax,vmin]、角速度[wmax,wmin]、最大加速度a。線速度的取值范圍為[0.0,2.0],單位m/s;角速度的取值范圍為[-2.0,2.0],單位rad/s。動(dòng)作空間定義為線速度v和角速度w。
獎(jiǎng)懲函數(shù)的設(shè)計(jì)決定在某一狀態(tài)下移動(dòng)機(jī)器人執(zhí)行一個(gè)動(dòng)作的好壞程度。通過設(shè)計(jì)一種連續(xù)性獎(jiǎng)懲函數(shù)來解決獎(jiǎng)勵(lì)稀疏問題。獎(jiǎng)懲函數(shù)如下:
其中:rarrival表示到達(dá)目標(biāo)點(diǎn)的正向獎(jiǎng)勵(lì);dt表示當(dāng)前時(shí)刻機(jī)器人到目標(biāo)點(diǎn)的距離;dt-1表示上一個(gè)時(shí)刻機(jī)器人到目標(biāo)點(diǎn)的距離;cd表示到達(dá)目標(biāo)點(diǎn)的閾值,小于此值代表到達(dá)了目標(biāo)點(diǎn);rcollision表示碰到障礙物的負(fù)獎(jiǎng)勵(lì);minx表示激光雷達(dá)的最小距離;co表示碰撞障礙物的安全距離,低于這個(gè)值表示觸碰障礙物;cr1和cr2是設(shè)置的兩個(gè)獎(jiǎng)勵(lì)參數(shù)。
如果機(jī)器人通過閾值檢查到達(dá)目標(biāo),則給予正獎(jiǎng)勵(lì);如果通過最小距離讀數(shù)檢查與障礙物碰撞,則給予負(fù)獎(jiǎng)勵(lì)。兩種情況都足以結(jié)束訓(xùn)練。否則,獎(jiǎng)勵(lì)是基于從目標(biāo)到最后一個(gè)時(shí)間步的距離差(dt?1?dt)。如果差值是正的,獎(jiǎng)勵(lì)等于經(jīng)過的距離乘以參數(shù)cr1,否則乘以參數(shù)cr2。這種措施激勵(lì)移動(dòng)機(jī)器人更接近目標(biāo)位置,并鼓勵(lì)其避開環(huán)境中的障礙物。
局部路徑規(guī)劃中的大部分任務(wù)存在相關(guān)性,在不同地圖環(huán)境中利用參數(shù)遷移來初始化相關(guān)任務(wù)中的參數(shù),可以加快移動(dòng)機(jī)器人在不同場(chǎng)景下策略的學(xué)習(xí)。
首先加載預(yù)訓(xùn)練模型,獲取全部的模型參數(shù)。通過隨機(jī)初始化訓(xùn)練獲得趨向目標(biāo)點(diǎn)的模型參數(shù)ωi,將ωi初始化為離散場(chǎng)景ωs和特殊障礙物場(chǎng)景的模型參數(shù)ωt,完善避障規(guī)則vs與vt,實(shí)現(xiàn)局部路徑規(guī)劃。本文所設(shè)計(jì)的遷移學(xué)習(xí)框架如圖5 所示。
圖5 遷移學(xué)習(xí)結(jié)構(gòu)Fig.5 Transfer learning structure
基于Python 語言,驗(yàn)證所設(shè)計(jì)的PER-SAC 算法完成移動(dòng)機(jī)器人局部路徑規(guī)劃任務(wù)的有效性。在ROS 平臺(tái)上利用Gazebo 搭建4 種仿真環(huán)境(無障礙物、離散型障礙物、一型障礙物和U 型障礙物環(huán)境)來進(jìn)行PER-SAC 算法和原始SAC 算法的對(duì)比實(shí)驗(yàn)。
為了更清晰地觀察仿真結(jié)果,將繪制兩種算法訓(xùn)練的每輪平均回報(bào)值對(duì)比圖。在Rviz 中,機(jī)器人初始位置為起點(diǎn),方框代表目標(biāo)點(diǎn),圓柱體代表障礙物,實(shí)線代表機(jī)器人的運(yùn)行軌跡。實(shí)驗(yàn)?zāi)P筒糠謪?shù)設(shè)置如表1 所示。
表1 仿真參數(shù)設(shè)置Tab.1 Simulation parameter setting
Gazebo 中無障礙物仿真環(huán)境和移動(dòng)機(jī)器人如圖6 所示,在5 m×5 m 的范圍內(nèi)隨機(jī)生成目標(biāo)點(diǎn)進(jìn)行訓(xùn)練。
圖6 無障礙仿真環(huán)境Fig.6 Obstacle-free simulation environment
根據(jù)設(shè)定的參數(shù),移動(dòng)機(jī)器人初始階段在無障礙物環(huán)境中訓(xùn)練,達(dá)到預(yù)設(shè)訓(xùn)練次數(shù)后,抽取批量經(jīng)驗(yàn)進(jìn)行學(xué)習(xí),在探索率上升到預(yù)設(shè)峰值后,探索率保持不變,繼續(xù)訓(xùn)練到預(yù)訓(xùn)練次數(shù),輸出每輪的平均回報(bào)值(一輪中的回報(bào)值除以本輪步數(shù)),如圖7 所示。從圖7 中可以看出,PER-SAC 算法的平均回報(bào)值在30 輪左右開始上升,說明算法開始收斂,收斂速度明顯快于原始SAC 算法,而收斂后的PER-SAC 算法相較于原始算法更穩(wěn)定。
圖7 無障礙環(huán)境下每輪的平均獎(jiǎng)勵(lì)對(duì)比Fig.7 Comparison of average reward per round of obstacle-free environment
用兩種算法收斂后模型進(jìn)行路徑規(guī)劃,起點(diǎn)為(1,0.6),終點(diǎn)為(1.2,1.2),并且在Rviz 中繪制路徑,規(guī)劃結(jié)果分別如圖8(a)和(b)所示。PER-SAC 算法從起點(diǎn)到終點(diǎn)所用步數(shù)為115,原始SAC 算法為118,兩種算法的路徑基本一致,PER-SAC 算法路徑略短。
圖8 無障礙環(huán)境下的路徑規(guī)劃Fig.8 Path planning in obstacle-free environment
Gazebo 中離散障礙物環(huán)境和移動(dòng)機(jī)器人如圖9(a)所示,在Rviz 中如圖9(b)所示。起點(diǎn)為機(jī)器人初始位置,坐標(biāo)為(-2,-2),目標(biāo)點(diǎn)坐標(biāo)為(2,1)。
圖9 離散障礙物仿真環(huán)境Fig.9 Discrete obstacle simulation environment
利用遷移學(xué)習(xí)將兩種算法在無障礙物環(huán)境下訓(xùn)練好的模型遷移到7 m×7 m 的離散障礙物環(huán)境中作為初始訓(xùn)練模型,各進(jìn)行200 輪,每輪500 步的訓(xùn)練后,輸出每輪平均回報(bào)值,如圖10 所示。
圖10 離散障礙環(huán)境下每輪的平均獎(jiǎng)勵(lì)對(duì)比Fig.10 Comparison of average reward per round in discrete obstacle environment
PER-SAC 算法在30 輪后每一輪的平均回報(bào)值明顯比原始SAC 算法高,說明PER-SAC 算法每輪中機(jī)器人到達(dá)目標(biāo)點(diǎn)的次數(shù)更多,并且在140 輪左右模型開始收斂。相較于原始SAC 算法,PER-SAC 算法收斂后每輪的平均回報(bào)值波動(dòng)范圍小,更加穩(wěn)定。
用兩種算法收斂后的模型進(jìn)行路徑規(guī)劃,規(guī)劃結(jié)果如圖11 所示。PER-SAC 算法從起點(diǎn)到終點(diǎn)所用步數(shù)為248,原始SAC 算法為257。相較于原始SAC 算法,PER-SAC 算法能夠規(guī)劃出趨向目標(biāo)點(diǎn)的相對(duì)更短路徑。
圖11 離散障礙環(huán)境下的路徑規(guī)劃Fig.11 Path planning in discrete obstacle environment
如離散障礙物下的訓(xùn)練過程,同樣利用遷移學(xué)習(xí)將兩種算法在無障礙物環(huán)境下訓(xùn)練好的模型遷移到5 m×5 m 的U型障礙物環(huán)境中作為初始化訓(xùn)練模型。Gazebo 中U 型障礙物環(huán)境和移動(dòng)機(jī)器人如圖12(a)所示,在Rviz 中如圖12(b)所示。起點(diǎn)為機(jī)器人初始位置,坐標(biāo)為(-1.2,0),目標(biāo)點(diǎn)坐標(biāo)為(1.2,0)。
圖12 U型障礙物仿真環(huán)境Fig.12 U-shaped obstacle simulation environment
兩種算法各進(jìn)行200 輪,每輪500 步的訓(xùn)練后,同樣輸出平均回報(bào)值,如圖13 所示。
圖13 U型障礙環(huán)境下每輪的平均獎(jiǎng)勵(lì)對(duì)比Fig.13 Comparison of average reward per round in U-shaped obstacle environment
PER-SAC 算法在25 輪后每一輪的平均獎(jiǎng)勵(lì)明顯比原始SAC 算法高,說明每一輪機(jī)器人到達(dá)目標(biāo)點(diǎn)的次數(shù)更多;PER-SAC 算法在140 輪左右收斂趨于穩(wěn)定,而原始SAC 算法在180 輪左右,模型的訓(xùn)練和收斂速度更快。
用兩種收斂后的模型進(jìn)行路徑規(guī)劃,并且在Rviz 中繪制路徑,分別如圖14(a)和(b)所示。PER-SAC 算法從起點(diǎn)到終點(diǎn)所用步數(shù)為274,原始SAC 算法為298。相較于原始SAC 算法,PER-SAC 算法能更快走出障礙物,規(guī)劃出趨向目標(biāo)點(diǎn)的相對(duì)較優(yōu)路徑。
圖14 U型障礙環(huán)境下的路徑規(guī)劃Fig.14 Path planning in U-shaped obstacle environment
Gazebo 中一型障礙物環(huán)境和移動(dòng)機(jī)器人如圖15(a)和(b)所示。起點(diǎn)為機(jī)器人初始位置,坐標(biāo)為(-1.2,0),目標(biāo)點(diǎn)坐標(biāo)為(1.2,0)。
圖15 一型障礙物仿真環(huán)境Fig.15 1-shaped obstacle simulation environment
U 型障礙物是特殊的一型障礙物,使用3.3 節(jié)中U 型障礙物環(huán)境下訓(xùn)練好的模型進(jìn)行路徑規(guī)劃,檢測(cè)已經(jīng)訓(xùn)練好的算法的泛化性。如圖16 所示,在U 型障礙物環(huán)境下訓(xùn)練好的算法同樣適用于一型障礙物環(huán)境,不需要重新訓(xùn)練即可很好地完成路徑規(guī)劃任務(wù)。PER-SAC 算法從起點(diǎn)到終點(diǎn)所用步數(shù)為183,原始SAC 算法為226。PER-SAC 算法表現(xiàn)較好,在U 型環(huán)境中二者的模型就表現(xiàn)出選擇動(dòng)作的差異,在一型障礙物中表現(xiàn)得更加明顯,機(jī)器人能更快繞出障礙區(qū)域。
圖16 一型障礙環(huán)境下的路徑規(guī)劃Fig.16 Path planning in one-shaped obstacle environment
搭建兩個(gè)混合障礙物環(huán)境對(duì)算法進(jìn)行驗(yàn)證,混合障礙物是離散型、一型和U 型三種障礙物的組合。
混合障礙物環(huán)境一和移動(dòng)機(jī)器人如圖17(a)和(b)所示。起點(diǎn)為機(jī)器人初始位置,坐標(biāo)為(-2.2,-2.5),目標(biāo)點(diǎn)為(1.8,1.3)。
圖17 混合障礙環(huán)境一Fig.17 The first mixed obstacle environment
使用3.3 節(jié)中經(jīng)過遷移學(xué)習(xí)從無障礙物到離散障礙物、再到U 型障礙物環(huán)境下訓(xùn)練好的模型進(jìn)行路徑規(guī)劃,如圖18所示,同樣不需要重新訓(xùn)練即可很好地完成路徑規(guī)劃任務(wù),并且PER-SAC 算法規(guī)劃的路徑較優(yōu)。PER-SAC 算法從起點(diǎn)到終點(diǎn)所用步數(shù)為271,原始SAC 算法為304。
圖18 混合障礙環(huán)境一下的路徑規(guī)劃Fig.18 Path planning in the first mixed obstacle environment
混合障礙物環(huán)境二中,調(diào)整了障礙物和目標(biāo)點(diǎn)的布局,使移動(dòng)機(jī)器人更容易經(jīng)過U 型障礙物,如圖19(a)和(b)所示。起點(diǎn)和目標(biāo)點(diǎn)分別為(-2.2,-2.5)和(1.25,2)。
圖19 混合障礙物環(huán)境二Fig.19 The second mixed obstacle environment
路徑規(guī)劃結(jié)果如圖20(a)和(b)所示。PER-SAC 算法從起點(diǎn)到終點(diǎn)所用步數(shù)為279,原始SAC 算法為310。PER-SAC 算法規(guī)劃的路徑較優(yōu),能較好地規(guī)避障礙物。
圖20 混合障礙環(huán)境二下的路徑規(guī)劃Fig.20 Path planning in the second mixed obstacle environment
PER-SAC 算法經(jīng)過遷移學(xué)習(xí)后訓(xùn)練得到的模型,能夠在不同的環(huán)境中規(guī)劃一條從起點(diǎn)到目標(biāo)點(diǎn)的路徑,算法具有一定的泛化能力,同時(shí)驗(yàn)證了算法的有效性。
最后將兩種算法在上述三種仿真環(huán)境下的訓(xùn)練時(shí)間進(jìn)行匯總,如表2 所示。從表2 中可以看出,在每種環(huán)境下,所設(shè)計(jì)的PER-SAC 算法訓(xùn)練或收斂時(shí)間更快。
表2 算法收斂時(shí)間Tab.2 Algorithm convergence time
再對(duì)5 個(gè)仿真環(huán)境中路徑規(guī)劃時(shí)從起點(diǎn)到目標(biāo)點(diǎn)的步數(shù)進(jìn)行匯總,如表3 所示。從表3 中可以看出,在每種障礙物運(yùn)行情況下,PER-SAC 算法均比原始SAC 算法所用步數(shù)少。
表3 到達(dá)目標(biāo)所用步數(shù)Tab.3 Number of steps reaching target
對(duì)于未知環(huán)境下的移動(dòng)機(jī)器人局部路徑規(guī)劃問題,本文提出了一種基于SAC 和優(yōu)先級(jí)經(jīng)驗(yàn)回放的PER-SAC 算法,并且在不同的仿真環(huán)境中與原始算法進(jìn)行了對(duì)比實(shí)驗(yàn),驗(yàn)證了新算法的有效性。PER-SAC 算法具有以下特點(diǎn):
1)優(yōu)先級(jí)經(jīng)驗(yàn)回放機(jī)制使經(jīng)驗(yàn)池中的每個(gè)樣本擁有了優(yōu)先級(jí),增加了重要程度較高的樣本被采樣的頻率,提高了訓(xùn)練效率和穩(wěn)定性。
2)在線運(yùn)行時(shí)間和訓(xùn)練時(shí)間沒有關(guān)聯(lián),并且充分訓(xùn)練后得到的收斂模型,實(shí)際運(yùn)行時(shí)不需要再進(jìn)行訓(xùn)練。機(jī)器人通過傳感器實(shí)時(shí)感知當(dāng)前環(huán)境信息,經(jīng)訓(xùn)練模型可以求出一條合理的局部規(guī)劃路徑,滿足運(yùn)行的實(shí)時(shí)性需求。
3)利用參數(shù)遷移初始化不同障礙物環(huán)境下的模型參數(shù),縮短訓(xùn)練進(jìn)程,加快模型收斂,模型的泛化性增加。
PER-SAC 算法目前還存在一些局限性,在計(jì)算網(wǎng)絡(luò)的損失函數(shù)時(shí)直接將重要性采樣權(quán)重與損失函數(shù)相乘,可能導(dǎo)致訓(xùn)練的信息不夠充分。下一步的研究方向?qū)⒖紤]優(yōu)化損失函數(shù),進(jìn)一步提升算法的性能,使機(jī)器人在更加復(fù)雜的環(huán)境下(多U 型、高混合型)實(shí)現(xiàn)局部路徑規(guī)劃任務(wù)。