成 怡,郝密密
天津工業(yè)大學(xué) 控制科學(xué)與工程學(xué)院,天津300387
路徑規(guī)劃是移動(dòng)機(jī)器人研究的重要方向,是實(shí)現(xiàn)導(dǎo)航任務(wù)的關(guān)鍵[1],即移動(dòng)機(jī)器人從起始位置到目標(biāo)位置能夠自主探索出一條平滑且無碰撞的路徑軌跡[2]。傳統(tǒng)的路徑規(guī)劃算法有A*算法[3]、人工勢場法[4]以及快速擴(kuò)展隨機(jī)樹法[5]等,這些算法用于解決已知環(huán)境下的路徑規(guī)劃,且容易實(shí)現(xiàn),但機(jī)器人在規(guī)劃路徑時(shí)存在探索能力差的問題。針對傳統(tǒng)算法存在的問題,許多研究者引入了深度強(qiáng)化學(xué)習(xí)算法[6-8],讓機(jī)器人在環(huán)境狀態(tài)中能做出更準(zhǔn)確的運(yùn)動(dòng)方向。深度強(qiáng)化學(xué)習(xí)由深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)相結(jié)合,深度學(xué)習(xí)通過感知環(huán)境來獲得目標(biāo)狀態(tài)觀測信息。強(qiáng)化學(xué)習(xí)通過獲取的信息給予動(dòng)作,再結(jié)合獎(jiǎng)勵(lì)判斷動(dòng)作價(jià)值,是智能體與環(huán)境不斷交互試錯(cuò),再利用獎(jiǎng)懲函數(shù)指導(dǎo)動(dòng)作好壞的過程。
Mnih等[9]提出第一個(gè)深度強(qiáng)化學(xué)習(xí)模型,即深度Q網(wǎng)絡(luò)(DQN),該網(wǎng)絡(luò)模型是將神經(jīng)網(wǎng)絡(luò)和Q-learning相結(jié)合,利用神經(jīng)網(wǎng)絡(luò)代替Q值表解決了Q-learning中的維數(shù)災(zāi)難問題,但在網(wǎng)絡(luò)訓(xùn)練時(shí)收斂速度較慢。Tai等[10]把DQN應(yīng)用到了無模型避障的路徑規(guī)劃中,但存在狀態(tài)-動(dòng)作值過估計(jì)問題,造成移動(dòng)機(jī)器人獲得的獎(jiǎng)勵(lì)稀疏,且規(guī)劃出的路徑并非最優(yōu)。Yu等[11]提出一種基于深度強(qiáng)化學(xué)習(xí)的安全約束月球車端到端的路徑規(guī)劃算法,通過利用課程學(xué)習(xí)的思想,針對不同地形特征的月面環(huán)境對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,提高了月球車對月面不同地形的適應(yīng)性。根據(jù)地形的坡度角和當(dāng)前狀態(tài)來預(yù)測月球車的行駛率,設(shè)計(jì)安全獎(jiǎng)勵(lì)函數(shù)作為當(dāng)前狀態(tài)的獎(jiǎng)勵(lì)反饋。徐曉蘇等[12]在Q值初始化的過程中引入了人工勢場,便加快了網(wǎng)絡(luò)的收斂速度,增加了動(dòng)作步長和調(diào)整了機(jī)器人的動(dòng)作方向提高了機(jī)器人規(guī)劃路線的精度,該方法在機(jī)器人進(jìn)行局部路徑規(guī)劃時(shí)效果較好,但在全局路徑規(guī)劃上實(shí)施性不好。
因此,為了有效解決機(jī)器人探索能力差和獎(jiǎng)勵(lì)稀疏的問題,本文提出一種基于深度圖像信息的改進(jìn)深度強(qiáng)化學(xué)習(xí)的路徑規(guī)劃算法,利用Kinect視覺傳感器感知自身周圍的環(huán)境信息,并結(jié)合自身的位置信息和將到達(dá)的目標(biāo)點(diǎn)組成一個(gè)狀態(tài)空間作為網(wǎng)絡(luò)的輸入,以實(shí)際的線速度和角速度作為機(jī)器人下一步動(dòng)作的輸出,且設(shè)計(jì)合理的獎(jiǎng)懲函數(shù),提高了算法的獎(jiǎng)勵(lì)值,改善了環(huán)境狀態(tài)空間的獎(jiǎng)勵(lì)稀疏性。
強(qiáng)化學(xué)習(xí)是智能體與環(huán)境交互時(shí),通過“試錯(cuò)”方式得到不同獎(jiǎng)勵(lì)值的過程。如圖1所示為強(qiáng)化學(xué)習(xí)交互過程。Q-learning[13]是一個(gè)值迭代過程,它會(huì)計(jì)算出每個(gè)Q值,在執(zhí)行動(dòng)作時(shí),根據(jù)機(jī)器人所學(xué)的先驗(yàn)知識(shí)更新Q值表。然而,當(dāng)機(jī)器人所處的環(huán)境狀態(tài)變得復(fù)雜,則狀態(tài)-動(dòng)作空間會(huì)變得很大,便帶來了“維數(shù)災(zāi)難”問題,導(dǎo)致模型很難形成或不能計(jì)算,而深度強(qiáng)化學(xué)習(xí)能有效解決此問題。
圖1 強(qiáng)化學(xué)習(xí)流程圖Fig.1 Reinforcement learning flow chart
深度強(qiáng)化學(xué)習(xí)(DRL)[14]由深度學(xué)習(xí)(DL)和強(qiáng)化學(xué)習(xí)(RL)兩者相結(jié)合來實(shí)現(xiàn)端到端的學(xué)習(xí),深度學(xué)習(xí)[15]負(fù)責(zé)通過傳感器掃描周圍的環(huán)境信息來感知機(jī)器人當(dāng)前的狀態(tài)信息,而強(qiáng)化學(xué)習(xí)[16]負(fù)責(zé)機(jī)器人對獲取的環(huán)境信息進(jìn)行探索,做出決策,從而實(shí)現(xiàn)機(jī)器人路徑規(guī)劃的智能化需求。
DQN算法[17]結(jié)合神經(jīng)網(wǎng)絡(luò)和Q-learning,神經(jīng)網(wǎng)絡(luò)以RGB圖像作為輸入,實(shí)現(xiàn)對Q值表的建模,表示所有的狀態(tài)-動(dòng)作值,Q-learning以馬爾科夫決策建模[18],以當(dāng)前狀態(tài)、動(dòng)作、獎(jiǎng)勵(lì)、策略、下一步動(dòng)作來表示。DQN通過引入經(jīng)驗(yàn)回放來提高機(jī)器人的樣本關(guān)聯(lián)性和效率利用問題,并通過固定目標(biāo)Q值提高更新的不平穩(wěn)性。DQN包括建立目標(biāo)函數(shù)、目標(biāo)網(wǎng)絡(luò)和引入經(jīng)驗(yàn)回放[19]這三個(gè)步驟:
(1)目標(biāo)函數(shù)。DQN的目標(biāo)函數(shù)通過Q-learning構(gòu)建,公式如下所示:
其中,(s,a)表示當(dāng)前的狀態(tài)和動(dòng)作,(s′,a′)表示下一步的狀態(tài)和動(dòng)作,Q′(s,a)表示更新后的狀態(tài)-動(dòng)作值,在狀態(tài)s下,得到動(dòng)作獎(jiǎng)勵(lì)r,并對其進(jìn)行評估。
目標(biāo)狀態(tài)-動(dòng)作值函數(shù)用貝爾曼方程可表示為:
其中,y′表示目標(biāo)Q值。
損失函數(shù)為均方誤差損失函數(shù),公式如下所示:
其中,θ為神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)模型中訓(xùn)練的權(quán)值參數(shù)。
(2)目標(biāo)網(wǎng)絡(luò)。DQN通過目標(biāo)網(wǎng)絡(luò)和預(yù)測網(wǎng)絡(luò)來評估當(dāng)前的狀態(tài)-動(dòng)作值函數(shù)。目標(biāo)網(wǎng)絡(luò)基于神經(jīng)網(wǎng)絡(luò)得到目標(biāo)Q值,利用目標(biāo)Q值來估計(jì)下一時(shí)刻的Q值,以解決Q-learning中Q值表的“維數(shù)災(zāi)難”問題。預(yù)測網(wǎng)絡(luò)使用隨機(jī)梯度下降法更新網(wǎng)絡(luò)權(quán)重△θ,梯度下降算法的公式如下所示:
(3)經(jīng)驗(yàn)回放。經(jīng)驗(yàn)回放解決了數(shù)據(jù)的樣本關(guān)聯(lián)性和效率利用問題。在機(jī)器人和環(huán)境交互時(shí),可獲得樣本數(shù)據(jù)庫,把樣本數(shù)據(jù)庫存儲(chǔ)到建立的經(jīng)驗(yàn)池中,從經(jīng)驗(yàn)池中隨機(jī)抽取一小部分?jǐn)?shù)據(jù)用于訓(xùn)練樣本,再將訓(xùn)練樣本送入神經(jīng)網(wǎng)絡(luò)中訓(xùn)練。經(jīng)驗(yàn)回放主要起到樣本本身可重復(fù)利用來提高學(xué)習(xí)效率。
本文提出了一種基于深度圖像的深度強(qiáng)化學(xué)習(xí)的改進(jìn)算法,該算法是移動(dòng)機(jī)器人通過Kinect傳感器感知周圍環(huán)境狀態(tài)獲取深度圖像信息和目標(biāo)位置信息作為網(wǎng)絡(luò)的輸入,以機(jī)器人的線速度和角速度作為下一步動(dòng)作的輸出,實(shí)現(xiàn)在有障礙物環(huán)境下朝向目標(biāo)點(diǎn)運(yùn)行的過程,從而完成移動(dòng)機(jī)器人的導(dǎo)航任務(wù)。機(jī)器人的主要目標(biāo)是在室內(nèi)未知環(huán)境下能夠自主到達(dá)目標(biāo)點(diǎn)并規(guī)劃出更短的路徑。
改進(jìn)DQN算法主要分為仿真和訓(xùn)練兩部分,如圖2所示,上面仿真部分說明了強(qiáng)化學(xué)習(xí)過程如何使用深度Q網(wǎng)絡(luò)選擇決策獲得狀態(tài)s和獎(jiǎng)勵(lì)r,下面網(wǎng)絡(luò)訓(xùn)練部分說明了改進(jìn)DQN網(wǎng)絡(luò)優(yōu)化參數(shù)的前向和反向傳播過程。
圖2 改進(jìn)DQN算法的主要組成部分Fig.2 Main components of improved DQN algorithm
在仿真環(huán)境中,機(jī)器人把直接采集的深度圖像信息作為訓(xùn)練樣本,再結(jié)合自身所處的環(huán)境狀態(tài)特征和要到達(dá)的目標(biāo)點(diǎn)作為網(wǎng)絡(luò)的輸入,并將當(dāng)前位置下的Q值作為網(wǎng)絡(luò)模型輸出,且利用ε-greedy策略進(jìn)行動(dòng)作選擇,來到達(dá)下一步狀態(tài)。當(dāng)?shù)竭_(dá)下一步狀態(tài)時(shí),計(jì)算出相應(yīng)獎(jiǎng)勵(lì)值r,便可得到一個(gè)完整的數(shù)據(jù)元組(s,a,r,s′),于是將該系列的數(shù)據(jù)存儲(chǔ)到經(jīng)驗(yàn)回放池D中,再從經(jīng)驗(yàn)回放池D中抽取小批量樣本放入神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練。其中,機(jī)器人在探索最優(yōu)路徑過程中,從經(jīng)驗(yàn)回放池D中選取獎(jiǎng)勵(lì)值r非常關(guān)鍵,獎(jiǎng)勵(lì)值r決定了機(jī)器人路徑規(guī)劃的好壞程度。機(jī)器人把得到的獎(jiǎng)勵(lì)值r送到優(yōu)化目標(biāo)函數(shù)中進(jìn)行網(wǎng)絡(luò)參數(shù)的更新,一直循環(huán)迭代直到訓(xùn)練完成。如圖3所示為本文算法的模型。
圖3 改進(jìn)的DQN算法模型Fig.3 Improved DQN algorithm model
在網(wǎng)絡(luò)訓(xùn)練過程中,若機(jī)器人利用Kinect傳感器識(shí)別出障礙物,則通過改進(jìn)深度強(qiáng)化學(xué)習(xí)算法使機(jī)器人能有效的避開障礙物。否則,機(jī)器人將會(huì)繼續(xù)導(dǎo)航,直到到達(dá)目標(biāo)點(diǎn)。改進(jìn)的深度強(qiáng)化學(xué)習(xí)算法設(shè)計(jì)如下所示。
算法1基于移動(dòng)機(jī)器人改進(jìn)的深度強(qiáng)化學(xué)習(xí)算法
獎(jiǎng)懲函數(shù)是移動(dòng)機(jī)器人在當(dāng)前狀態(tài)采取某一動(dòng)作并到達(dá)下一狀態(tài)獲得的獎(jiǎng)勵(lì)值,表示當(dāng)前狀態(tài)采取某一動(dòng)作的好壞。在強(qiáng)化學(xué)習(xí)中起到關(guān)鍵作用,決定了智能體的學(xué)習(xí)效率和效果。
移動(dòng)機(jī)器人在執(zhí)行導(dǎo)航任務(wù)時(shí),要使訓(xùn)練網(wǎng)絡(luò)產(chǎn)生可行的控制策略,給予機(jī)器人正確動(dòng)作。在這一過程中,機(jī)器人與環(huán)境不斷交互來得到反饋信息(獎(jiǎng)勵(lì)值),機(jī)器人接收到反饋信息繼續(xù)與環(huán)境交互,同時(shí)評估將要執(zhí)行的動(dòng)作,從而使機(jī)器人更快地學(xué)習(xí)得到最優(yōu)動(dòng)作策略,根據(jù)動(dòng)作選擇策略設(shè)置合理的獎(jiǎng)懲函數(shù)。機(jī)器人在運(yùn)行過程中碰撞到障礙物會(huì)返回到起始點(diǎn),重新開始探索路徑,若到達(dá)目標(biāo)點(diǎn)則會(huì)停止訓(xùn)練。
DQN算法的獎(jiǎng)懲函數(shù)定義為:
其中,v表示線速度,ω表示角速度,dt表示每隔0.2 s循環(huán)訓(xùn)練一圈。
在運(yùn)行過程中,速度是機(jī)器人行駛的關(guān)鍵因素,速度決定了機(jī)器人獲得獎(jiǎng)勵(lì)值的正負(fù)。在機(jī)器人和環(huán)境交互時(shí),通過設(shè)置獎(jiǎng)勵(lì)函數(shù)獲得獎(jiǎng)勵(lì)值,根據(jù)獎(jiǎng)勵(lì)值評價(jià)機(jī)器人的動(dòng)作好壞,然后機(jī)器人會(huì)積累自身的學(xué)習(xí)經(jīng)驗(yàn),再一一評價(jià)從環(huán)境中獲得的動(dòng)作,進(jìn)而改變動(dòng)作行為使產(chǎn)生的下一步動(dòng)作更準(zhǔn)確。為了使機(jī)器人快速準(zhǔn)確地獲取下一步動(dòng)作,由機(jī)器人的轉(zhuǎn)向角度cos(2vω)和線速度平方的2倍來共同決定獎(jiǎng)勵(lì)值的大小。其中,轉(zhuǎn)向角度設(shè)為cos(2vω)是為了使機(jī)器人得到的轉(zhuǎn)向角度更小,選擇下一步動(dòng)作更準(zhǔn)確,所獲得的獎(jiǎng)勵(lì)值更高。線速度平方的2倍是為了提高機(jī)器人在無障礙的情況下能加快運(yùn)行速度。
改進(jìn)DQN算法的獎(jiǎng)懲函數(shù)定義為:
其中,v表示線速度,ω表示角速度。
由式(6)可知,機(jī)器人獲得的獎(jiǎng)勵(lì)值是由線速度和角速度共同控制的。如表1為機(jī)器人的動(dòng)作值和速度的對應(yīng)關(guān)系。
表1 機(jī)器人動(dòng)作值和速度指令對應(yīng)表Table 1 Correspondence table of robot action value and speed command
機(jī)器人依靠自身的經(jīng)驗(yàn)探索學(xué)習(xí),從記憶的動(dòng)作中選擇適應(yīng)環(huán)境的行為。機(jī)器人在運(yùn)行時(shí),根據(jù)不同的情況設(shè)置相應(yīng)的獎(jiǎng)勵(lì)值r,rtarget表示每個(gè)片段(episode)完成之后所有瞬時(shí)獎(jiǎng)勵(lì)值的累加,即到達(dá)目標(biāo)點(diǎn)的總獎(jiǎng)勵(lì)值;rcollision表示機(jī)器人原地旋轉(zhuǎn)或與障礙物發(fā)生碰撞時(shí),會(huì)受到懲罰,獎(jiǎng)勵(lì)值為?10。因此,在訓(xùn)練過程中,每個(gè)學(xué)習(xí)片段(episode)將每隔500步更新一下目標(biāo)網(wǎng)絡(luò)的獎(jiǎng)勵(lì)值。
為了實(shí)現(xiàn)移動(dòng)機(jī)器人避障實(shí)驗(yàn),驗(yàn)證本文算法在路徑規(guī)劃中的有效性,并與DQN做了對比實(shí)驗(yàn)。實(shí)驗(yàn)環(huán)境為NVIDIA GTX 2080Ti GPU服務(wù)器,機(jī)器人的操作系統(tǒng)(ROS)[20]和Gazebo[21]完成的。機(jī)器人訓(xùn)練過程是在Gazebo中搭建的仿真平臺(tái)上完成的,且機(jī)器人使用帶有Kinect視覺傳感器的Turtlebot。如圖4所示,圖中的“S”代表機(jī)器人的起始點(diǎn),綠色的圓柱體“G”代表到達(dá)的目標(biāo)點(diǎn)以及各種形狀不同的障礙物組成的仿真環(huán)境。
圖4 仿真平臺(tái)Fig.4 Simulation platform
移動(dòng)機(jī)器人利用Kinect視覺傳感器獲取的深度圖像信息和目標(biāo)位置信息作為網(wǎng)絡(luò)的輸入,通過采集的深度圖像提取數(shù)據(jù)信息,即物體與傳感器的距離,再結(jié)合要到達(dá)的目標(biāo)點(diǎn)形成一個(gè)狀態(tài)空間,并以機(jī)器人實(shí)際的動(dòng)作方向作為輸出,機(jī)器人便可實(shí)現(xiàn)導(dǎo)航任務(wù)。在訓(xùn)練過程中,機(jī)器人避開障礙物是關(guān)鍵問題之一,它從起始點(diǎn)開始探索運(yùn)行到達(dá)目標(biāo)點(diǎn)結(jié)束。若檢測不到障礙物,則機(jī)器人就會(huì)繼續(xù)運(yùn)行;若檢測到障礙物,則會(huì)利用改進(jìn)深度強(qiáng)化學(xué)習(xí)算法避開障礙物。當(dāng)機(jī)器人碰撞到障礙物時(shí),機(jī)器人將會(huì)回到起始點(diǎn),重新開始探索。隨著探索次數(shù)的增多,機(jī)器人記憶的動(dòng)作會(huì)逐漸增加,則下一步動(dòng)作的選擇會(huì)更精準(zhǔn)。圖5代表機(jī)器人避開障礙物的過程,圖中的黑色箭頭表示機(jī)器人下一步要做的動(dòng)作方向。圖6為機(jī)器人在行駛的過程中遇到障礙物的深度圖像信息。
圖5 避開障礙物的過程Fig.5 Process of avoiding obstacles
圖6 遇到障礙物的深度信息Fig.6 Depth information of obstacles encountered
機(jī)器人以狀態(tài)Q值作為輸入,動(dòng)作Q值為輸出,便形成了狀態(tài)-動(dòng)作對。若機(jī)器人在運(yùn)行時(shí)碰撞到障礙物,則會(huì)得到負(fù)獎(jiǎng)勵(lì);若機(jī)器人到達(dá)目標(biāo)點(diǎn),則會(huì)得到正獎(jiǎng)勵(lì)。通過獎(jiǎng)懲機(jī)制的方法使機(jī)器人在學(xué)習(xí)過程中避開障礙物而不斷接近目標(biāo)點(diǎn)完成路徑規(guī)劃這一過程。改進(jìn)深度強(qiáng)化學(xué)習(xí)算法的參數(shù)設(shè)置如表2所示。
表2 參數(shù)設(shè)置Table 2 Parameter settings
本文對DQN算法和改進(jìn)算法利用平均獎(jiǎng)勵(lì)值和損失函數(shù)值做了分析和實(shí)驗(yàn)結(jié)果的對比。如表3列出了DQN、改進(jìn)DQN算法平均獎(jiǎng)勵(lì)值和平均損失函數(shù)值的對比,改進(jìn)DQN的平均獎(jiǎng)勵(lì)值比DQN提高了51.2%,改進(jìn)DQN算法的平均損失函數(shù)值比DQN降低了15.3%。利用平均獎(jiǎng)勵(lì)值評估算法的性能。如圖7所示,黑色線代表DQN算法運(yùn)行得到的平均獎(jiǎng)勵(lì)值變化曲線,紅色線代表改進(jìn)DQN算法運(yùn)行得到的變化曲線,藍(lán)色線代表對改進(jìn)算法進(jìn)行測試得到的變化曲線。當(dāng)獎(jiǎng)勵(lì)值為(?10~0)階段時(shí),在訓(xùn)練初期,機(jī)器人剛開始探索學(xué)習(xí)避障運(yùn)行的過程,且未能對障礙物做出正確的判斷,得到的是負(fù)獎(jiǎng)勵(lì)值。當(dāng)獎(jiǎng)勵(lì)值為(0~20)階段時(shí),訓(xùn)練次數(shù)達(dá)到500,機(jī)器人處于探索學(xué)習(xí)階段,表示機(jī)器人開始識(shí)別并能夠避開部分障礙物,但它仍在和環(huán)境不斷地交互學(xué)習(xí)進(jìn)一步調(diào)整動(dòng)作選擇策略,來獲得相應(yīng)的正獎(jiǎng)勵(lì)值。當(dāng)獎(jiǎng)勵(lì)值為(20~40)階段時(shí),訓(xùn)練次數(shù)在500~2 100時(shí),機(jī)器人在DQN算法和改進(jìn)DQN算法中獲得獎(jiǎng)勵(lì)值都不穩(wěn)定,訓(xùn)練次數(shù)達(dá)到2 100左右,DQN算法獲得的獎(jiǎng)勵(lì)值趨于平衡。當(dāng)獎(jiǎng)勵(lì)值為(40~60)階段時(shí),改進(jìn)算法和測試階段的訓(xùn)練次數(shù)達(dá)到1 500左右平均獎(jiǎng)勵(lì)值趨于穩(wěn)定。測試階段是利用訓(xùn)練的結(jié)果模型在相同環(huán)境中做測試進(jìn)一步驗(yàn)證網(wǎng)絡(luò)的有效性。測試和訓(xùn)練的平均獎(jiǎng)勵(lì)值的遞增趨勢一致。因此,改進(jìn)算法可以縮短網(wǎng)絡(luò)訓(xùn)練時(shí)間,提高平均獎(jiǎng)勵(lì)值,改善了獎(jiǎng)勵(lì)稀疏性,使機(jī)器人規(guī)劃出更短的路徑。
表3 平均獎(jiǎng)勵(lì)值和平均損失函數(shù)值對比Table 3 Comparison of average reward and average loss function value
圖7 平均獎(jiǎng)勵(lì)值對比圖Fig.7 Comparison chart of average reward value
利用損失函數(shù)值評估算法的性能。如圖8所示,黑色線代表DQN算法運(yùn)行得到的損失函數(shù)值變化曲線,紅色線代表改進(jìn)DQN算法運(yùn)行得到的變化曲線,藍(lán)色線代表對改進(jìn)算法進(jìn)行測試得到的變化曲線。在訓(xùn)練初期,Q值的初始化為0,機(jī)器人的學(xué)習(xí)經(jīng)驗(yàn)不足,只能隨機(jī)選取動(dòng)作,導(dǎo)致算法的收斂速度較慢。DQN算法得到的損失函數(shù)值波動(dòng)較大,訓(xùn)練次數(shù)達(dá)到2 500左右,損失函數(shù)值趨于穩(wěn)定。而改進(jìn)算法的損失函數(shù)值波動(dòng)性較小,訓(xùn)練次數(shù)達(dá)到1 000左右,損失函數(shù)值便能很快趨于穩(wěn)定。測試階段的訓(xùn)練次數(shù)達(dá)到1 200左右時(shí),損失函數(shù)值趨于穩(wěn)定。測試和訓(xùn)練的損失函數(shù)值的衰減趨勢一致。因此,改進(jìn)算法具有一定的優(yōu)越性,加快了網(wǎng)絡(luò)的收斂速度。
圖8 損失函數(shù)值對比圖Fig.8 Comparison chart of loss function value
為了驗(yàn)證改進(jìn)算法的有效性,在簡單環(huán)境中對路徑規(guī)劃做了對比分析。如圖9的(a)和(b)所示,簡單環(huán)境下機(jī)器人運(yùn)行得到的路徑軌跡。圖中,由機(jī)器人的起始點(diǎn)(白色S),機(jī)器人的目標(biāo)點(diǎn)(黑色G)以及障礙物組成。表4列出了機(jī)器人在簡單環(huán)境下利用每種算法運(yùn)行15次取得的平均路徑長度和規(guī)劃的路徑軌跡上避開障礙物的個(gè)數(shù)。改進(jìn)DQN算法的路徑長度比DQN縮短了21.4%。且避開障礙物個(gè)數(shù)比原來增加了一個(gè)。
圖9 簡單環(huán)境下的路徑軌跡長度比較Fig.9 Comparison of path length in simple environment
表4 簡單環(huán)境下路徑規(guī)劃算法比較Table 4 Comparison of path planning algorithms in simple environment
通過對比分析圖9的(a)和(b),可以看出(b)規(guī)劃的路徑軌跡更短,且避開這條路徑軌跡上的障礙物多。圖(a)避開了3個(gè)障礙物,而圖(b)能避開4個(gè)障礙物。因此,改進(jìn)算法的機(jī)器人避障能力更強(qiáng),機(jī)器人有更好的適應(yīng)和學(xué)習(xí)能力,不僅提升了其探索能力,且可以得到更短的路徑。
復(fù)雜環(huán)境下對路徑規(guī)劃做了兩組對比實(shí)驗(yàn),驗(yàn)證了改進(jìn)算法的可行性。如圖10的(a)和(b)所示,復(fù)雜環(huán)境下機(jī)器人運(yùn)行得到的路徑軌跡。在一個(gè)密閉的環(huán)境中,設(shè)定起始點(diǎn)和目標(biāo)點(diǎn)以及相應(yīng)的障礙物,機(jī)器人從起始點(diǎn)出發(fā)到達(dá)目標(biāo)點(diǎn)結(jié)束,獲得了一條較短的路徑軌跡。通過調(diào)整機(jī)器人的速度設(shè)計(jì)改進(jìn)的獎(jiǎng)勵(lì)函數(shù),獎(jiǎng)勵(lì)函數(shù)主要用于判斷機(jī)器人的動(dòng)作好壞,機(jī)器人根據(jù)獎(jiǎng)勵(lì)函數(shù)和環(huán)境的交互得到獎(jiǎng)勵(lì)值來調(diào)節(jié)其動(dòng)作選擇策略。機(jī)器人會(huì)在訓(xùn)練一圈之后得到狀態(tài)-動(dòng)作對的Q值,動(dòng)作被ε-greedy策略選擇后狀態(tài)會(huì)被固定,機(jī)器人則會(huì)根據(jù)記憶的狀態(tài)-動(dòng)作值運(yùn)行。因此,當(dāng)機(jī)器人探索出一條路徑時(shí),它會(huì)選擇相似的軌跡行駛。表5列出了機(jī)器人在復(fù)雜環(huán)境下利用每種算法運(yùn)行20次取得的平均路徑長度和規(guī)劃的路徑軌跡上避開障礙物的個(gè)數(shù)。改進(jìn)DQN算法的路徑長度比DQN縮短了11.3%。且避開障礙物個(gè)數(shù)比原來增加了兩個(gè)。
圖10 復(fù)雜環(huán)境下的路徑軌跡長度比較Fig.10 Comparison of path length in complex environment
表5 復(fù)雜環(huán)境下路徑規(guī)劃算法比較Table 5 Comparison of path planning algorithms in complex environment
通過比較分析圖10的(a)和(b),DQN、改進(jìn)DQN算法都規(guī)劃出了一條無碰撞的路徑,可以看出圖(b)規(guī)劃的路徑軌跡上避開障礙物較多,圖(a)避開了4個(gè)障礙物,而圖(b)能避開6個(gè)障礙物。圖(b)規(guī)劃的路徑類似一條兩點(diǎn)之間距離最短的軌跡。由此得出,改進(jìn)DQN算法的運(yùn)行軌跡更短,避障能力更強(qiáng),通過對比說明了改進(jìn)DQN算法能夠規(guī)劃出一條更優(yōu)更短的路線。
如圖11的(a)和(b)所示,調(diào)整了機(jī)器人的起始點(diǎn)和目標(biāo)點(diǎn),機(jī)器人在該復(fù)雜環(huán)境下,利用DQN算法和改進(jìn)算法運(yùn)行得到了不同的路徑軌跡,改進(jìn)算法的路徑明顯比DQN算法運(yùn)行得到的路徑短。進(jìn)一步驗(yàn)證了改進(jìn)算法的可行性。
圖11 復(fù)雜環(huán)境下運(yùn)行路徑的情況比較Fig.11 Comparison of running paths in complex environment
針對移動(dòng)機(jī)器人在室內(nèi)未知環(huán)境下路徑規(guī)劃時(shí)探索能力差的問題,提出了基于深度圖像信息的深度強(qiáng)化學(xué)習(xí)的改進(jìn)算法。利用Kinect視覺傳感器獲取障礙物的深度圖像信息,再把信息直接輸入到網(wǎng)絡(luò)中,提高了網(wǎng)絡(luò)訓(xùn)練的收斂速度。設(shè)置獎(jiǎng)懲函數(shù)提高了機(jī)器人的獎(jiǎng)勵(lì)值,優(yōu)化了狀態(tài)-動(dòng)作空間解決了環(huán)境狀態(tài)空間獎(jiǎng)勵(lì)稀疏的問題,使機(jī)器人的動(dòng)作選擇更精準(zhǔn)。仿真和實(shí)驗(yàn)結(jié)果表明,通過對比實(shí)驗(yàn)分析了DQN算法和改進(jìn)DQN算法的平均獎(jiǎng)勵(lì)值和損失函數(shù)值,并利用測試階段進(jìn)一步驗(yàn)證了改進(jìn)算法的有效實(shí)施性。改進(jìn)算法不僅提高了機(jī)器人的探索能力,加強(qiáng)了避障能力,且規(guī)劃出的路徑長度更短,驗(yàn)證了其在路徑規(guī)劃上的可行性。