王唯鑒,王 勇,楊 驍,呂宗喆,吳宗毅
1.北京機械工業(yè)自動化研究所,北京100120
2.北自所(北京)科技發(fā)展股份有限公司,北京100120
移動機器人近年來快速發(fā)展,其應用場景也在不斷擴展[1]。傳統(tǒng)移動機器人主要從事物料搬運等簡單工作,由于工作場景相對固定,機器人移動過程中只需考慮對固定障礙的避讓。服務機器人近年來快速興起,其中具備自主移動能力的服務機器人需要適應復雜多樣的工作場景,例如行人眾多的車站、餐廳等。這些人員密集的應用場景對移動機器人對動態(tài)障礙的避讓能力提出了新的要求。移動機器人需要在時刻與行人保持安全距離的前提下,盡可能高效地到達目標點?;跓o碰撞假設提出的動態(tài)避障方法,比如RVO或者ORCA[2],采用被動躲避的方式避讓動態(tài)障礙,由于相對固定的避讓方法只依賴于機器人當前與障礙的交互,因此機器人難以做出長遠的決策。另外,在面對多行人場景帶來的復雜限制時,這類算法無法給出有效動作,導致機器人面臨“凍結(jié)”問題。
移動機器人如果能夠像人一樣分析判斷行人未來的行動,就可以據(jù)此做出更加符合人類行為邏輯的動作。依照這種想法,部分學者提出了通過預測行人軌跡指導移動機器人進行避障的方法,包括一系列人工設計的模型[3]和數(shù)據(jù)驅(qū)動的模型[4-5]。前者由于準確建模的難度過大,對行人動作的預測準確度較低;后者(例如長短期記憶細胞模型,生成對抗網(wǎng)絡模型)高度依賴大量真實數(shù)據(jù)作為訓練樣本。另外,這類在完成軌跡預測后再進行移動策略規(guī)劃的方法在具體實施上也存在很多困難。
強化學習適用于智能體在環(huán)境中連續(xù)或者離散動作的選擇,因此近年來被很多學者采用。深度強化學習(deep reinforcement learning,DRL)關(guān)心智能體如何從環(huán)境中提取有助于決策的關(guān)鍵信息,在機器人對人群的避讓問題中,如何對復雜的行人數(shù)據(jù)進行編碼,以有效捕捉數(shù)據(jù)的潛在特征(比如行人之間的避讓關(guān)系,行人與機器人間的關(guān)聯(lián))顯得尤為重要。CADRL 是早期利用強化學習解決這一問題的方法[6],但其只是通過簡單聚合行人之間的關(guān)聯(lián)特征來建模人群。LSTM-RL[7]采用長短期記憶細胞分析行人的行為規(guī)律以指導機器人移動,SARL[8]通過引入自注意力機制生成機器人-行人交互的特征向量,可以有效捕捉機器人與不同距離的行人之間的交互關(guān)系,但這些方法并沒有充分利用行人之間的交互信息,也只能單純地通過線性近似模擬行人的下一步動作,因此在多行人的場景下表現(xiàn)尚待提高。
針對當前研究中存在的不足,本文提出了GCN-RL模型,采用圖卷積網(wǎng)絡(GCN)對包含行人和機器人在內(nèi)的整個環(huán)境進行特征提取。得益于GCN處理圖結(jié)構(gòu)數(shù)據(jù)的優(yōu)勢,該模型不僅可以準確捕捉機器人與行人之間的潛在關(guān)聯(lián),同時也可以提取行人之間的關(guān)聯(lián)特征,模型中的動作價值估計模塊用于準確估計當前的動作-價值函數(shù),行人預測模塊配合前向推演策略幫助機器人通過與環(huán)境模擬交互更新對當前狀態(tài)下不同動作價值的評估,能夠有效指導移動機器人的下一步動作,在密集行人場景中選擇更優(yōu)的避障路徑。
假設移動機器人需要在存在N名行人的固定環(huán)境中完成導航任務,其目標是盡快到達地圖中的固定位置并在導航過程中避讓所有行人。該問題可以看作一個典型的順序決策問題[9],即可以通過深度強化學習框架進行建模。具備環(huán)境感知能力的自主移動機器人作為強化學習智能體,在每個離散的時間節(jié)點選擇動作;環(huán)境信息包括機器人自身信息和周圍行人信息;機器人在離散的時刻讀取環(huán)境的狀態(tài)特征,并評估當前狀態(tài)下自身的動作-狀態(tài)價值,從而選取最優(yōu)動作直至到達目標點。
在機器人導航問題中,環(huán)境信息包括場景中所有行人的信息以及機器人自身信息。由于實際場景下,行人的實時位置和實時速度可以通過固定攝像頭或者移動機器人搭載的攝像頭獲取,而機器人自身的狀態(tài)除去實時位置速度外,還有目標點坐標(gx,gy),以及當前時刻機器人的首選速度(vpref,φ),包含速度大小和偏航角。因此,在任意時刻對于機器人自身以及每個行人的狀態(tài)序列建模如下:
其中,px和py代表當前世界坐標系下行人和機器人的坐標,vx、vy代表世界坐標系下的速度,r表示機器人和行人的碰撞半徑。
基于值函數(shù)估計的強化學習問題中,智能體通過與環(huán)境交互更新對自身所處狀態(tài)價值的估計和當前行為策略。移動機器人與人群環(huán)境在每個離散的決策時刻通過執(zhí)行動作進行交互,決策時刻的時間間隔設置為Δt=0.25 s。假設機器人在二維空間上的所有自由度均可控,由于強化學習范式的約束以及實際應用的限制,機器人需要從離散的動作空間中選擇要執(zhí)行的動作。具體來說,機器人在每個決策時刻選擇自身移動速度及移動方向。設置了[0,2π]之間的16個方向和[0,Vmax]之間的五檔速度,組合成共包含80個動作的離散動作空間。
機器人在虛擬環(huán)境中從起始位置出發(fā),行走至目標點則獲得最高獎勵,為訓練機器人在到達目標點的過程中盡量避讓行人,設立獎勵函數(shù)如下:
其中,引入了dt=0.2 m 作為行人舒適距離,以保證機器人在選擇路徑時既不會撞到行人,也不會因距離過近而引起行人不適。同時,引入舒適距離dt計算獎勵有效避免獎勵過于稀疏,從而提升訓練效果。
通過將行人避障問題劃歸為強化學習范式,可以采用值函數(shù)更新的方式指導機器人動態(tài)避障。GCN-RL模型利用圖卷積網(wǎng)絡高效提取機器人和行人的深度交互特征,隨后將這些特征用于估計狀態(tài)-動作價值。同時,模型針對環(huán)境中全部行人信息提取行人之間的深度交互特征,用于預測行人下一時刻狀態(tài)。模型在實時運行過程中通過模擬執(zhí)行動作和預測行人狀態(tài)來與未來環(huán)境模擬交互,根據(jù)交互結(jié)果更新對當前動作價值的估計,并依據(jù)更新后動作價值的估計值從離散動作空間中選擇動作,指導機器人做出更加長遠的避障決策,使其在導航至目標點的過程中自主避讓環(huán)境中的行人。
GCN-RL 模型的主要工作原理如圖1 所示,環(huán)境信息包括機器人的狀態(tài)以及全部行人的狀態(tài),為充分表征機器人和行人之間、行人與行人之間的關(guān)聯(lián)信息,環(huán)境信息作為圖結(jié)構(gòu)數(shù)據(jù)輸入GCN-RL模型,其中機器人和行人的潛特征作為圖的節(jié)點,機器人與行人、行人與行人之間的潛在關(guān)聯(lián)信息則作為圖的邊。模型中的價值估計模塊接收來自全部節(jié)點的狀態(tài)編碼,并對當前環(huán)境加以評估。同時,狀態(tài)預測模塊接收全部行人的狀態(tài)編碼,通過預測模型輸出對環(huán)境未來狀態(tài)的預估。隨后,GCN-RL采用了一種多步推演的方式與環(huán)境模擬交互,從而評估機器人在當前狀態(tài)下采用不同動作會產(chǎn)生的預期收益,并根據(jù)預期收益指導機器人選擇要執(zhí)行的動作。在動作執(zhí)行完畢的下一個離散決策時刻,環(huán)境信息得以更新,機器人重新獲取環(huán)境信息,進入下一個決策周期。
圖1 GCN-RL工作原理Fig.1 Principle of GCN-RL
強化學習中最重要的環(huán)節(jié)是如何通過環(huán)境的信息評估當前智能體所處狀態(tài)的價值[10]。GCN-RL 模型采用了一個由圖卷積網(wǎng)絡和多層感知機組合而成的動作價值估計模塊,用于學習機器人和行人之間關(guān)聯(lián)狀態(tài)的深度交互信息,并以此估計當前狀態(tài)下的動作價值。動作價值估計模塊的組成如圖2所示。
圖2 動作價值估計模塊Fig.2 Value predict module
圖卷積網(wǎng)絡能夠充分利用圖結(jié)構(gòu)信息[11],提取圖數(shù)據(jù)的深度特征,但需要各節(jié)點數(shù)據(jù)具備相同的結(jié)構(gòu)。在機器人行人避讓問題模型中,行人狀態(tài)與機器人狀態(tài)具有不同的維度,因此首先通過一個多層感知機(multilayer perceptron,MLP)將不同狀態(tài)編碼為潛空間中固定長度的向量,所有這些向量組成了矩陣X=[xr,xp1,xp2,…,xpn]T,其中xr為機器人的潛在特征,xp1,xp2,…,xpn為行人的潛在特征。通過成對近似函數(shù)計算該特征矩陣的關(guān)聯(lián)特征矩陣,模型采用嵌入式高斯函數(shù)作為近似函數(shù)[12],計算得到的A=softmax(XWaXT)矩陣記錄了節(jié)點之間的潛在關(guān)聯(lián)特征,其中xi=X[i,:],θ(xi)=Wθ xi,?(xi)=W?xi,Wa=WθWT?。
以上方式分別提取了環(huán)境中每個節(jié)點的潛在特征以及任意兩個節(jié)點之間的直接關(guān)聯(lián)特征,然而對于在人群中導航的機器人而言,單純獲取每一時刻其他行人的特征和行人與自身、行人之間的關(guān)聯(lián)特征并不能充分指導自身動作。比如,在某一時刻距離機器人很近的行人A由于附近并沒有其他行人,因此會傾向于維持原速度繼續(xù)前進;而同一時刻距離機器人相對較遠的行人B行進前方有其他行人,因此可能會向機器人方向做出避讓動作。在這種情況下,簡單整合節(jié)點特征和關(guān)聯(lián)特征難以完成對環(huán)境當前信息的充分提取。
正因如此,GCN-RL采用圖卷積網(wǎng)絡處理節(jié)點特征和關(guān)聯(lián)特征,由于圖卷積網(wǎng)絡可以利用圖的連通結(jié)構(gòu)通過邊傳遞特征,并在節(jié)點聚合特征,經(jīng)由圖卷積網(wǎng)絡正向傳播后的節(jié)點特征包含了更多機器人與人群環(huán)境的深層特征(比如行人之間的躲避導致的潛在障礙),其中第i行的數(shù)據(jù)代表了節(jié)點i對其自身與整個環(huán)境交互所產(chǎn)生的深度關(guān)聯(lián)特征的編碼。節(jié)點信息按照H(l+1)=σ(AH(l)W(l))+H(l)進行傳遞,其中W(l)代表了網(wǎng)絡第l層可訓練的參數(shù),σ為激活函數(shù)Relu。GCN 通過節(jié)點原始特征X和節(jié)點關(guān)聯(lián)特征A完成節(jié)點特征的更新。本文采用了一個2 層的GCN 以保證每個節(jié)點能夠充分從圖的關(guān)聯(lián)中學習到環(huán)境中潛藏的深度交互特征,GCN輸出當前包含這些特征的全部節(jié)點狀態(tài)Sextracted,輸入一個MLP以計算動作-狀態(tài)價值。
行人狀態(tài)預測模塊通過當前時刻全部行人的行為狀態(tài)預測他們下一時刻的狀態(tài)。一些其他的機器人導航模型[6,8]使用傳統(tǒng)算法預測人群在下一時刻的動作狀態(tài)(比如對行人動作做線性近似其下一時刻位置),這種方法并沒有利用端到端的學習模型,無法準確估計下一時刻行人的行為策略。另外一些關(guān)于行人軌跡預測的研究將行人軌跡看作序列數(shù)據(jù),采用長短期記憶細胞等方式對未來數(shù)據(jù)進行預測[13],盡管從歷史數(shù)據(jù)中學習提升了對行人移動預測的準確率,但在預測過程中忽略了行人之間的關(guān)聯(lián),且往往需要大量真實數(shù)據(jù)對模型進行預訓練。
本研究采用的行人狀態(tài)預測模塊由兩個部分組成,第一部分用于提取當前人機交互環(huán)境狀態(tài)特征,其具體組成方式與價值估計模塊中的狀態(tài)估計模塊類似:使用多層感知機對環(huán)境編碼得到各節(jié)點特征潛向量,之后利用近似函數(shù)計算關(guān)聯(lián)矩陣,再根據(jù)圖卷積網(wǎng)絡正向傳播,得到全部行人和機器人當前深層交互狀態(tài)的特征表達;模塊的第二部分通過另一個多層感知機接收行人當前時刻深度交互特征并預測下一時刻行人狀態(tài)。即GCN-RL 并不會顯式地預測行人在下一時刻的行動軌跡,而是直接預測行人未來狀態(tài)。由于這些特征本身包含了行人與環(huán)境交互的深度信息,而本研究中,機器人正是通過環(huán)境的狀態(tài)特征計算狀態(tài)-動作價值,因此對行人狀態(tài)的預測能夠幫助機器人更準確地評估當前時刻執(zhí)行不同動作的收益。
在具體的行人避讓過程中,機器人每隔0.25 s 就需要從80 個離散動作中做出選擇,解空間非常龐大。本研究借鑒了N步自舉法[14]和蒙特卡洛樹搜索[15]的思想,將學習到的深度價值估計模型與前向推演相結(jié)合,采用一種在當前狀態(tài)模擬執(zhí)行最優(yōu)動作并與預測的環(huán)境狀態(tài)交互以取得回報的方式更新當前狀態(tài)下不同動作的價值估計,其推演流程如圖3所示。機器人根據(jù)推演結(jié)果更新當前狀態(tài)下的動作價值,并以此為依據(jù)選擇動作。動作價值按照以下公式更新:
圖3 K 步推演更新動作價值Fig.3 K-step rollout update action value
實驗中前向推演的步數(shù)為K,推演的廣度設置為W。當K取1時,機器人只能根據(jù)當前環(huán)境已知信息計算動作預期收益,不能利用到行人狀態(tài)預測模塊對未來狀態(tài)的預估。更大的K值則意味著機器人能夠在動作選擇時考慮的更加長遠。機器人探索環(huán)境的過程中,獎勵非常稀疏,因此采用更大的K值也可以提高一次推演中到達目標點的概率,從而提升模型的學習效果。然而,增加的K會大幅增加計算成本。因此設置W對推演的動作空間進行剪枝,即每次前向推演僅考慮嘗試預期收益排名前W的動作。這種在線推演的方式兼顧了避障模型的性能與效率,可以在相對低的采樣次數(shù)中對任意狀態(tài)下的動作價值有較為準確的估計。
機器人在移動過程中獲得的獎勵較為稀疏,因此從零開始訓練會導致模型無法收斂。為加快模型收斂,采用模仿學習[16]對模型進行初始化。在模仿學習過程中,機器人依照ORCA 避障算法實現(xiàn)CrowdNav 下的導航。經(jīng)過模仿學習對網(wǎng)絡參數(shù)的初始化,機器人初步具備了對障礙的避讓能力,可以在后續(xù)訓練過程中側(cè)重于導航路徑的優(yōu)化,避免大量無意義的動作嘗試。
算法1展示了模型的訓練流程。
算法1 模型訓練流程
輸入:模仿學習經(jīng)驗池D
輸出:訓練后的價值估計模型Mv和動作預測模型Mp
經(jīng)過模仿學習后,經(jīng)驗池E中保存了一系列元組(St,at,rt,St+1),對于每一次從起點出發(fā)的訓練,隨機初始化行人與機器人的狀態(tài),隨后,機器人采用ε-greedy策略選擇動作獲得收益,并將探索獲取的經(jīng)驗存入經(jīng)驗池。隨后采用經(jīng)驗回放機制從E中隨機選取一批(St,at,rt,St+1)用于更新價值估計模塊以及狀態(tài)估計模塊的參數(shù)。一次完整訓練流程模擬了機器人從起點到目標點(產(chǎn)生碰撞或超時)的整個流程。通過利用經(jīng)驗回放機制[17]訓練模型,機器人記憶池中的數(shù)據(jù)被高效利用,同時避免了相鄰數(shù)據(jù)的強關(guān)聯(lián)性對訓練效果的負面影響。在每次訓練達到終點狀態(tài)后,價值估計模塊和狀態(tài)預測模塊同步更新。
實驗采用的場景基于開源框架CrowdNav 構(gòu)建,場景設置為circle-crossing,即環(huán)境中有五名行人隨機分布在半徑為4 m的圓上,他們的終點位置為起點在圓周上的對應位置,所有行人按照ORCA 避障策略移動,機器人的最大速度設置為1 m/s。為保證行為策略的差異化,算法參數(shù)按照高斯分布采樣得到。機器人的起始位置和終點位置也在圓周上并關(guān)于圓心對稱。在沒有行人干擾的情況下,機器人需要花費8 s 行駛到目標點。仿真實驗中,機器人被設置為對所有的行人而言不可見,即行人不會主動躲避機器人。這樣設置有助于充分體現(xiàn)機器人自主躲避行人的效果。用于編碼機器人和行人狀態(tài)的MLP維度為(64,32),用于價值估計的MLP維度為(150,100,100),用于行人狀態(tài)預測的MLP維度為(64,32),Wa的輸出維度設置為32。模型的所有參數(shù)通過強化學習流程進行訓練,并使用引入權(quán)重機制的AdamW[18]算法更新參數(shù),AdamW 的權(quán)重衰減率為0.1。在ε-greedy 策略中,探索率ε最初設置為0.5,在初始的5 000 次迭代訓練后線性降低至0.1,并在后5 000 次迭代中保持在0.1。模仿學習次數(shù)設置為2 000,訓練周期總數(shù)設置為10 000。使用Adam 以及AdamW 算法更新模型,在K步推演階段,K設置為2,W設置為2。實驗平臺為搭載i7-11850H的手提電腦,訓練時長約為16 h。
模型在10 000 次訓練過程中的累計折扣獎勵曲線如圖4 所示。Adam 作為當前主流的優(yōu)化算法,在很多模型中廣泛應用,然而面對過擬合問題時,Adam算法因其權(quán)重更新機制,不適合像隨機梯度下降方法一樣使用L2 正則化權(quán)重懲罰項進行權(quán)重更新。AdamW 優(yōu)化算法在Adam 算法的基礎(chǔ)上設置了權(quán)重衰減方法[18],能有效避免模型過擬合。實驗分別采用Adam和AdamW對GCN-RL 模型進行訓練,從圖4 的訓練累計折扣獎勵中可以看出,使用Adam 訓練的模型在6 000 個訓練周期后達到最佳性能,但隨后模型的性能由于過擬合而出現(xiàn)了一定程度的下降。在使用AdamW 對模型進行訓練時,雖然權(quán)重衰減導致模型在前4 000 個訓練周期的收斂的速度相對于使用Adam 算法較慢,但在6 000 個訓練周期后AdamW 算法的訓練效果已經(jīng)與Adam 相當,且在之后的訓練過程中,AdamW 能夠幫助模型收斂到更優(yōu)性能,且并未遭遇因模型過擬合而導致的性能下降。因此選用AdamW算法以保證GCN-RL模型的訓練效果。
圖4 訓練累計折扣獎勵Fig.4 Cumulative discounted reward
不同避障方法在Crowd-Nav 仿真場景下的性能表現(xiàn)如表1 所示。由于GCN-RL 首先基于ORCA 進行有監(jiān)督的預訓練,因此引入ORCA用于模型性能對比??梢钥闯?,盡管ORCA采用線性規(guī)劃計算機器人動作的方式使其運行速度很快,但由于其不具備從環(huán)境中學習的能力,導航過程中的避障成功率和平均導航時間都不理想。SARL使用注意力機制提取環(huán)境特征,是當前表現(xiàn)最佳的模型,然而注意力機制的應用增加了模型的復雜程度,導致特征計算需要更大的開銷。而GCN-RL采用圖網(wǎng)絡進行順序交互特征提取,計算方式相當于矩陣乘法,所需的開銷更小,模型的運行時間也明顯更少。為證明GCN-RL 模型中采用的狀態(tài)預測模塊為模型帶來的性能提升,設計了線性預測對比模型GCN-RL-Linear,其中行人下一時刻的狀態(tài)由線性擬合函數(shù)近似,即默認行人在0.25 s的時間間隔后會延續(xù)上一時刻的動作。從表1 可以看出其性能低于GCN-RL,這說明通過狀態(tài)預估模塊的使用讓機器人能更準確地預測行人狀態(tài),從而幫助機器人更好地在導航過程中實現(xiàn)對行人的避讓。
表1 不同避障策略性能比較Table 1 Comparison of different strategy
為驗證GCN-RL 模型中采用的動作選擇策略對模型性能的提升作用,設計了多組對比實驗以測試不同推演深度K和不同剪枝數(shù)W的模型在500個不同場景下的實際運行表現(xiàn),測試結(jié)果如表2 所示。從中可以看出,更多的前向推演步數(shù)縮短了機器人的導航時間,同時降低了機器人與行人距離過近的概率。然而,當K=3時,繼續(xù)增加的前向推演步數(shù)對于模型性能的提升相對有限。同時,增加預剪枝的寬度也對模型性能有提升,但會伴隨著顯著增加的算法運行時間,因此模型采用W=2 以平衡性能和運行成本。值得注意的是,任何一組參數(shù)下的實驗其導航成功率都未達到100%,這是因為機器人被設置為對行人不可見,部分極端場景下行人會“包圍”機器人,導致無法躲避的碰撞。另外,K和W的增加都會增加導致機器人導航過程中的計算負荷,在真實場景中需要根據(jù)硬件性能限制設置能平衡模型性能和計算開銷的推演參數(shù)。
表2 不同參數(shù)下模型性能Table 2 Model performance with different parameters
如圖5 中所示,在環(huán)境相同,行人移動軌跡一致的情況下,不同的推演參數(shù)使機器人選擇了不同的導航路徑。從圖5中可以看出,t=4 s 時行人位置較為集中,當K=1 時,機器人短視地向右轉(zhuǎn)向以躲避路徑上的紅色行人,從而選擇了從行人密集處穿行的路線,導航時間為10.5 s。當K=2 時,機器人初步具備了預估行人動作的能力,做出了從紅色行人身后繞行的嘗試。然而由于其只進行了單步前向推演,對行人未來動作的預測不夠準確,最后還是選擇了從行人密集處穿過,導航時間也因此增加了0.3 s。而當K=3 時,機器人通過前向推演有效預測了行人的未來動作,選擇了從紅色行人身后繞行的路線,有效規(guī)避了行走路徑上的人群密集區(qū)域。雖然選擇的路徑相對遠,但由于做出的避讓動作更少,機器人只用了10.2 s即到達目標。實驗結(jié)果表明前向推演策略幫助機器人選擇了更優(yōu)的行駛路徑,導航時間更短,對行人的避讓效果更好。
本文提出了一種利用圖卷積網(wǎng)絡的強化學習避障方法GCN-RL,用于解決仿真環(huán)境中機器人對行人的避讓問題。GCN-RL 模型相較于傳統(tǒng)避障模型有更好的表現(xiàn),基本達到了當前同一問題下最優(yōu)模型的性能,同時運行時間更短。模型采用GCN架構(gòu)提取環(huán)境的深層關(guān)聯(lián)特征,并利用提取到的特征同時對動作價值和行人狀態(tài)進行估計以指導避障,從而使得算法的復雜度降低,運行時間更短。在模型的訓練階段,實驗應用了AdamW 算法使得價值估計模塊能夠收斂到更好的性能。另外,模型通過采用K步推演實現(xiàn)了對動作價值的更精準評估。通過實驗分析了不同參數(shù)下的模型表現(xiàn),體現(xiàn)了該方法對機器人行人避讓性能的提升。