祝晨旭,仲志丹,張浩博,喬棟豪
(河南科技大學(xué) 機電工程學(xué)院,洛陽 471003)
機器人路徑規(guī)劃是指在機器人工作環(huán)境中,為指定目標(biāo)的移動機器人規(guī)劃出無碰撞、高效率的最佳路徑。隨著移動機器人的廣泛應(yīng)用,導(dǎo)航場景由最簡單的預(yù)設(shè)軌道的導(dǎo)航[1,2],擴展到躲避靜態(tài)障礙、動態(tài)障礙和動態(tài)靜態(tài)障礙混合的復(fù)雜場景。得益于傳感器技術(shù)的提升,移動機器人獲取環(huán)境信息的能力增強,移動機器人的路徑規(guī)劃方法也演變成了更加強大的基于學(xué)習(xí)的算法[3~5]。
常見的移動機器人有各個品牌的掃地機器人,它們的路徑規(guī)劃分為兩個部分,全局路徑規(guī)劃和局部路徑規(guī)劃。掃地機器人的全局路徑規(guī)劃屬于遍歷式的路徑規(guī)劃,這取決于它們的工作性質(zhì)。全局路徑規(guī)劃通過雷達掃描環(huán)境完成地圖創(chuàng)建,基于地圖信息完成清掃路徑的規(guī)劃;局部路徑規(guī)劃適用于處理突發(fā)情況,躲避地圖信息上未顯示的特殊障礙,例如人。一旦出現(xiàn)突發(fā)情況,要結(jié)合全局規(guī)劃重置全局路線繞過特殊障礙。在掃地機器人的工作環(huán)境中,對出現(xiàn)特殊障礙的問題處理的時效性要求不高。
相對于掃地機器人,在多主體環(huán)境中運動的移動機器人需要的不僅是將其他主體視為動態(tài)障礙,還要對其他主體的移動趨勢進行判斷,以此來做為決定自身下一步運動規(guī)劃的重要條件。在較為簡單的情況下,其他主體的移動趨勢為靜止或者勻速運動,易于觀測與判斷,Chen Y F[6]提出短時間內(nèi)將其他主體看作明確的勻速運動模型來簡化方法設(shè)計。但是在多數(shù)情況下,即便了解其他主體的目的地,在轉(zhuǎn)向角度等內(nèi)部因素未知,尤其是其他主體為人的情況下,其他主體的移動趨勢就變得難以捉摸,這是常規(guī)的運動規(guī)劃處理不好的。為了應(yīng)對這樣的工作環(huán)境,Long P[7]等不再試圖明確其他主體的動作,而是使用深度強化學(xué)習(xí)直接對移動機器人與環(huán)境的交互建模完成路徑規(guī)劃。
多主體機器人運動規(guī)劃還需要解決另一個關(guān)鍵問題:環(huán)境中其他主體的數(shù)量是變化著的,深度強化學(xué)習(xí)網(wǎng)絡(luò)需要固定維度的輸入,Cho K[8,9]等定義網(wǎng)絡(luò)所能觀測到的主體的最大數(shù)量,使用LSTM(long-short term memory)神經(jīng)元,接收不同長度的輸入信息,輸出固定維度的向量,輸入信息在輸出中所占比重與時序相關(guān),距離主體機器人越近,信息所占比重越大。這使得規(guī)劃方法能夠基于任意數(shù)量的其他主體做出決策。
延續(xù)之前方法[10]的常規(guī)設(shè)定,使用st表示主體機器人的狀態(tài),ut表示它的動作,用表示其他主體的狀態(tài)。狀態(tài)由可觀測和不可觀測兩部分組成,可觀測部分s0包含主體的位置p,速度v,和半徑r,s0=[px,py,vx,vy,r],不可觀測部分sh包含目標(biāo)位置,優(yōu)先速度vp和方向角ψ:sh=[pgx,pgy,vpx,vpy,ψ],動作ut由速度和方向角組成,ut=[vt,ψt]。深度強化學(xué)習(xí)的策略π:該策略在避免與其他主體發(fā)生碰撞的同時,最小化到達目標(biāo)的時間Etg。
其中,式(2)代表碰撞約束,在所有時間內(nèi)主體與任意其他主體距離不得超過其半徑和;式(3)為目標(biāo)約束,式(4)為主體的運動方程。對于式(1)中的期望值,不需要去考慮明確的數(shù)學(xué)模型,通過強化學(xué)習(xí)方法,發(fā)生碰撞時給予主體懲罰,順利到達目標(biāo)點給予主體獎勵,由獎勵方程Rcol(Sjn,u)決定:
在式(7)中γ表示獎勵因子,V*(Sjnt+1,u)表示通過選擇動作u達到最大化的價值。
深度強化學(xué)習(xí)方法對于動作的選擇有兩種方式,基于概率(Policy-based)和基于值(Value-based),其中基于概率的方式中,動作集中的每個動作都可能作為下一個動作,只是選擇概率不同;基于值的方式中,算法為每個動作評分,選擇評分最高的動作作為下一個動作。演員-評論家算法是這兩種方法的結(jié)合:Actor基于概率選擇下一步的動作,環(huán)境將對動作的獎勵反饋給Critic,Critic根據(jù)環(huán)境反饋的獎勵指導(dǎo)Actor修改選擇動作的概率。圖1的框架顯示了Actor網(wǎng)絡(luò)、Critic網(wǎng)絡(luò)之間的關(guān)系。
圖1 AC網(wǎng)絡(luò)結(jié)構(gòu)圖
A3C方法是基于AC方法的一種優(yōu)化訓(xùn)練方法,對學(xué)習(xí)主體多線程訓(xùn)練以加快主體的訓(xùn)練速度。A3C結(jié)構(gòu)如圖2所示。在A3C方法中,主體與環(huán)境交互的許多線程是并行模擬的,學(xué)習(xí)方法的訓(xùn)練結(jié)果基于全部經(jīng)歷的融合。這個算法在許多電子游戲的表現(xiàn)中優(yōu)于人類。Babaeizadeh M[12]對其實現(xiàn)進行了修改,以有效地使用GPU來最大化每秒處理的訓(xùn)練經(jīng)驗的數(shù)量,在許多情況下,GA3C方法的學(xué)習(xí)速度比A3C方法快一個數(shù)量級。
圖2 Noisy Net-A3C方法流程圖
一般地,將NoisyNet以y=fθ(x)表示,x表示輸入,y表示輸出,θ表示噪聲參數(shù),其中θ定義為:
NoisyNet-GA3C方法在Critic網(wǎng)絡(luò)的全連接層中添加了一層噪聲網(wǎng)絡(luò)以增加模型的探索能力。NoisyNet-GA3C方法總體流程圖如圖2所示。
針對現(xiàn)存方法在數(shù)據(jù)維度較低時尋路時間長,碰撞率高的問題,設(shè)置訓(xùn)練場景時,場景中的最多共存機器人數(shù)量n<5。Actor網(wǎng)絡(luò)為基于概率的學(xué)習(xí)網(wǎng)絡(luò)。設(shè)置主體轉(zhuǎn)向角度的間隔為30°,每一步的動作有十一個方向可以選擇,每次訓(xùn)練中的動作選擇概率由Critic網(wǎng)絡(luò)的Value更新。Critic網(wǎng)絡(luò)為基于值的學(xué)習(xí)網(wǎng)絡(luò),通過環(huán)境反饋的獎勵更新Value。在訓(xùn)練網(wǎng)絡(luò)時,Critic網(wǎng)絡(luò)選擇的學(xué)習(xí)率為,Actor網(wǎng)絡(luò)選擇的學(xué)習(xí)率為,這是因為Critic網(wǎng)絡(luò)對Actor網(wǎng)絡(luò)起指導(dǎo)作用,Critic網(wǎng)絡(luò)要更加快速的學(xué)習(xí)。網(wǎng)絡(luò)訓(xùn)練的tensorflow版本為tensorflow1.4.0-GPU,使用Adam優(yōu)化器。
將主體每回合接收的最大獎勵設(shè)置為1,最終獲得的平均獎勵為0.96,意味著最終收斂之后還是會發(fā)生碰撞,這在預(yù)料之內(nèi),在大量的訓(xùn)練中,選擇出非最優(yōu)動作是難以避免的。如表1中所示,相對于之前的方法平均獎勵為0.92,改進后的方法平均獎勵取得了可觀的進步。
表1 三種規(guī)劃方法平均獎勵對比
圖3 訓(xùn)練中主體得到的獎勵
ROS(Robot Operating System)是一款機器人仿真開源平臺,使用ROS平臺仿真主要應(yīng)用到了它獨特的通訊機制——話題的發(fā)布和訂閱,可以通過修改話題內(nèi)容和訂閱者對機器人模型進行修改和。Gazebo是ROS平臺中的機器人仿真工具,在Gazebo中設(shè)置一個turtlebot3_waffle機器人作為實驗主體,三個turtlebot3_burger機器人作為其他主體。獲取Gazebo發(fā)布的機器人state作為NoisyNet-GA3C的輸入,算法輸出的action發(fā)布到action話題,實驗主體訂閱action話題,即可在仿真環(huán)境中做出相應(yīng)的動作。
在gazebo中,場景里設(shè)置一定數(shù)目的移動機器人后,算法所需state值,即移動機器人的在仿真世界的坐標(biāo)、速度,可以由軟件自行生成(圖4(a)),獲取到數(shù)據(jù)后按照算法所需state格式打包發(fā)送至對應(yīng)的pose話題,NoisyNetA3C算法獲取主體state和LSTM算法處理過的其他主體state之后,輸出action至cmd_vel話題,主體訂閱該話題接收action信息完成響應(yīng)。使用gazebo仿真的話題節(jié)點圖如圖5所示。在仿真環(huán)境中,主體能夠快速響應(yīng),避開其他主體到達給定目標(biāo)。
圖4 gazebo中仿真
圖5 gazebo仿真節(jié)點圖
本文對現(xiàn)存的基于強化學(xué)習(xí)的多主體路徑規(guī)劃方法進行了改進,引入NoisyNet方法,使用LSTM網(wǎng)絡(luò)處理不同維度的數(shù)據(jù),在輸入網(wǎng)絡(luò)前得到相同維度的輸入。通過在網(wǎng)絡(luò)的全連接層添加噪聲網(wǎng)絡(luò),增強模型的探索能力,提升了現(xiàn)存深度強化學(xué)習(xí)算法在輸入數(shù)據(jù)維度較低時規(guī)避障礙的能力。隨著強化學(xué)習(xí)方法的不斷發(fā)展,將有更加優(yōu)秀的強化學(xué)習(xí)方法提出和改進,多主體機器人規(guī)劃會在避障速度和時效性上獲得更進一步的發(fā)展。