李佩娟,顏庭武,楊書濤,李 睿,杜俊峰,錢福福,劉義亭
(南京工程學(xué)院 工業(yè)中心、創(chuàng)新創(chuàng)業(yè)學(xué)院,江蘇 南京,211167)
無人水面艇可用于惡劣環(huán)境下或執(zhí)行簡單重復(fù)性任務(wù),在海上石油資源勘查、海洋數(shù)據(jù)獲取、反潛、反魚雷等民用和軍事領(lǐng)域得到了廣泛應(yīng)用。
無人水面艇最為基礎(chǔ)的技術(shù)是路徑規(guī)劃,即規(guī)劃一條從當(dāng)前位置到達(dá)目標(biāo)位置的路徑,確保無人水面艇安全、高效地執(zhí)行任務(wù)。無人水面艇長期在海洋中行駛,極易受到時變海風(fēng)、海流和海浪等外部環(huán)境影響,如果在路徑規(guī)劃時忽略上述因素,則易偏離規(guī)劃航線,增加能量損耗,甚至碰撞障礙物,無法完成任務(wù)。
多年來,針對無人水面艇路徑規(guī)劃問題已有諸多研究成果。文獻(xiàn)[1]將人工勢場法用于無人水面艇的路徑規(guī)劃,在目標(biāo)點(diǎn)和障礙物附近設(shè)計相應(yīng)勢場,指引無人水面艇到達(dá)目標(biāo)且避免碰撞障礙物。該方法由于計算復(fù)雜度相對較低,可用于實(shí)時路徑規(guī)劃,但不能避免局部最優(yōu)解的情況,且不適用于動態(tài)洋流環(huán)境。文獻(xiàn)[2]~[4]提出基于圖的搜索方法(例如A*和D*),盡管能夠成功避開靜態(tài)障礙物,但計算復(fù)雜度隨著空間維度提高呈指數(shù)級增加,并且為了保證計算效率,代價函數(shù)往往是線性的。文獻(xiàn)[5]提出了基于雙向快速隨機(jī)探索樹法的路徑規(guī)劃,給出動態(tài)步長策略以加快系統(tǒng)的收斂速度,但規(guī)劃路徑并不是最優(yōu)。文獻(xiàn)[6]和[7]針對隨時間變化的洋流設(shè)計能耗代價函數(shù),采用遺傳算法求得最優(yōu)路徑,為了避免算法早熟,每隔20 次迭代,隨機(jī)加入新的種群,但是文中假設(shè)路徑沿橫軸遞增,造成路徑搜索的不完全性。文獻(xiàn)[8]和[9]提出基于量子粒子群算法的路徑規(guī)劃方法,將粒子等量約束在各個圓環(huán)內(nèi),減少了系統(tǒng)的計算量。文獻(xiàn)[10]設(shè)計代價函數(shù)包含了路徑長度和航行時間,利用改進(jìn)的蟻群算法迭代求解非線性最優(yōu)解。無人水面艇屬于欠驅(qū)動系統(tǒng),控制輸入小于運(yùn)動自由度,路徑規(guī)劃需要考慮其運(yùn)動學(xué)特性,才能實(shí)現(xiàn)準(zhǔn)確跟蹤。文獻(xiàn)[6]和[10]考慮到規(guī)劃路徑的長度、平滑度及能耗等信息,但忽略了無人水面艇的運(yùn)動學(xué)特性,導(dǎo)致在滿足無人水面艇路徑規(guī)劃的實(shí)際需求上有所欠缺。
現(xiàn)階段,隨著人工智能技術(shù)的發(fā)展,基于強(qiáng)化學(xué)習(xí)的路徑規(guī)劃受到越來越多的關(guān)注。與其他智能算法相比,強(qiáng)化學(xué)習(xí)具有不需要借助外部環(huán)境信息或預(yù)先設(shè)定規(guī)則的優(yōu)點(diǎn)。文獻(xiàn)[11]研究了基于強(qiáng)化學(xué)習(xí)的貨船路徑規(guī)劃問題,通過建立Nomoto 船舶模型,根據(jù)障礙物、目標(biāo)等信息設(shè)計相應(yīng)的獎勵函數(shù),使得最終路徑收斂。文獻(xiàn)[12]和[13]研究了基于海事規(guī)則的無人水面艇路徑規(guī)劃問題,通過深度神經(jīng)網(wǎng)絡(luò)代替Q表,增加動作的連續(xù)性,并通過仿真驗證了算法的合理性。
文獻(xiàn)[11]和[13]主要從障礙物等方面考慮規(guī)劃的有效合理性,但忽略了洋流的影響。文中基于洋流影響的無人水面艇路徑規(guī)劃問題,采用改進(jìn)強(qiáng)化學(xué)習(xí)的方法,計算得到能耗最優(yōu)路徑。同時考慮了無人水面艇的運(yùn)動學(xué)模型、航向角所受洋流和控制輸入的約束等實(shí)際情況,借助B 樣條法進(jìn)行路徑平滑。仿真驗證了算法的有效性和最優(yōu)性。
文中研究目標(biāo)是在海洋環(huán)境下,無人水面艇規(guī)劃出一條從起始點(diǎn)到目標(biāo)點(diǎn)的最優(yōu)路徑。海洋環(huán)境可以模擬為含有障礙物的洋流場。路徑規(guī)劃的優(yōu)化準(zhǔn)則是避免障礙物的前提下實(shí)現(xiàn)能耗最優(yōu)。
在復(fù)雜的海洋環(huán)境中,洋流通??梢暈槎鄠€渦流的疊加。海洋學(xué)顯示渦流作用的范圍從幾厘米到幾百千米,持續(xù)的時間從幾秒到幾個月。文中研究基于洋流變化緩慢的場景,并假設(shè)在整個任務(wù)過程中,洋流的強(qiáng)度和方向保持不變,無人水面艇借助聲學(xué)多普勒流速剖面儀獲得當(dāng)前位置的洋流速度和方向信息。
洋流速度值vc=[vcx,vcy]的數(shù)學(xué)表達(dá)式[14]為
式中:vcx,vcy分別為洋流水平和垂直方向的速度值;d為當(dāng)前點(diǎn)[x,y]到渦流中心點(diǎn)[x0,y0]的距離;Γ,σ分別為渦流的強(qiáng)度和渦流作用半徑。
建立六自由度無人水面艇模型,其狀態(tài)空間表達(dá)式為
式中:x,y,z表示在地球坐標(biāo)系下的位置;f,θ,φ表示歐拉角;u,v,w,p,q,r表示載體坐標(biāo)系下的線速度和角速度。
考慮到無人水面艇垂直方向上的位置或姿態(tài)變化較為緩慢且數(shù)值較小,可忽略參數(shù)z,f,θ,v,w,p,q。狀態(tài)空間參數(shù)的減少有利于減少系統(tǒng)的計算量,因此,無人水面艇的運(yùn)動學(xué)模型可以簡化為兩自由度的水平運(yùn)動,即
式中:p,v,φ分別表示無人水面艇的位置、速度、航向角信息;vs和 φs分別為無人水面艇在靜水中的速度值和航向角值;vc和 φc分別為洋流的速度值和航向角值;ui為控制輸入。圖1 給出無人水面艇和洋流的速度和航向角的矢量圖。
圖1 無人水面艇和洋流的速度矢量示意圖Fig.1 Velocity vector schematic of USV and ocean current
強(qiáng)化學(xué)習(xí)與其他機(jī)器學(xué)習(xí)最大的區(qū)別是無需監(jiān)督信號,而是通過智能體與環(huán)境不斷交互,以獎勵值最大為目標(biāo)。智能體、環(huán)境、狀態(tài)、動作、策略和動作價值函數(shù)是強(qiáng)化學(xué)習(xí)最重要的組成部分。圖2 展示了強(qiáng)化學(xué)習(xí)的基本框架。
圖2 強(qiáng)化學(xué)習(xí)基本框架Fig.2 Basic framework of reinforcement learning
智能體在狀態(tài)St下采取動作at,環(huán)境給出相應(yīng)的獎勵rt+1,智能體的狀態(tài)轉(zhuǎn)化為St+1,不斷重復(fù)上述過程,直到策略 π收斂。其中,智能體的狀態(tài)集S={s1,s2,···,sn},智能體動作集A={a1,a2,···,an},獎勵函數(shù)R={r1,r2,···,rn}。
文中采用強(qiáng)化學(xué)習(xí)中常用的Q-learning 算法進(jìn)行路徑規(guī)劃。在Q-learning 算法中,動作價值函數(shù)Q(s,a)是當(dāng)前狀態(tài)到目標(biāo)狀態(tài)期望獎勵的疊加。強(qiáng)化學(xué)習(xí)可表示為尋求最優(yōu)的策略,即通過動作價值函數(shù)Q(s,a)在每一個狀態(tài)選擇最好的動作。
Q(s,a)更新公式為
式中:r為狀態(tài)s采取動作a獲得的獎勵;s′和a′分別為下一步的狀態(tài)和動作;α為學(xué)習(xí)率;γ為折舊率。
為加快Q-learning 算法的收斂速度,引入跡的思想,能夠記錄狀態(tài)被訪問的次數(shù),在更新前一時刻的狀態(tài)值函數(shù)時,對以往狀態(tài)值函數(shù)進(jìn)行更新,即Q(λ)算法。其更新公式為
在Q(s,a)更新過程中,動作選擇使用greedyε貪婪策略,即
式中:定常參數(shù)I和E分別為當(dāng)前迭代數(shù)和總迭代數(shù);ε∈[0,1]為當(dāng)前策略的貪婪值。
ε貪婪策略的提出權(quán)衡了探索和利用2 種方式。若隨機(jī)數(shù)p∈[ε,1],系統(tǒng)進(jìn)行探索,隨機(jī)選擇動作;若隨機(jī)數(shù)p∈[0,ε],系統(tǒng)貪婪選擇當(dāng)前狀態(tài)下最大價值的動作。訓(xùn)練的初始階段,由于對環(huán)境的完全未知,系統(tǒng)借助較小的 ε貪婪值,大概率隨機(jī)選擇動作,探索更多的動作,避免收斂到局部最優(yōu)解。但隨著迭代次數(shù)的增加,系統(tǒng)對于環(huán)境逐漸熟悉,ε值也隨之增加,系統(tǒng)大概率選擇當(dāng)前價值最大的動作,避免沒有價值的探索,加快系統(tǒng)的收斂速度。
Q(λ)算法的偽代碼如下:
針對基于傳統(tǒng)強(qiáng)化學(xué)習(xí)的路徑規(guī)劃問題,規(guī)劃的路徑存在直角或大角度,設(shè)計符合無人水面艇運(yùn)動學(xué)特性的動作集和狀態(tài)集。通過設(shè)計合理的函數(shù),使得路徑能耗最優(yōu)。
考慮到無人艇不可能出現(xiàn)橫向或短時間內(nèi)大角度移動情況,因此其運(yùn)動學(xué)模型中,舵角的輸入必須限制在一定的范圍內(nèi),即ui∈[-36°,36°]。對舵角采用5 個離散化動作,即[-36°,-18°,0°,18°,36°],如圖3 所示。
圖3 無人水面艇舵角的離散動作Fig.3 Discrete action of the rudder angle of USV
無人水面艇的運(yùn)動狀態(tài)與航向角、橫軸、縱軸坐標(biāo)相關(guān),表示為[(x1,y1,φ1),(x2,y2,φ2),···,(xn,yn,φn)],其中:x,y表示橫軸和縱軸的坐標(biāo);φ表示航向角。為簡化計算量,提高算法的運(yùn)行效率,將航向角劃分為20 個區(qū)域,每個區(qū)域分辨率為18°,航向角的編號如圖4 所示。
圖4 無人水面艇航向角編號Fig.4 Numbers of USV heading angles
獎勵函數(shù)定義為評估當(dāng)前狀態(tài)下采取某一動作的價值。文中研究目標(biāo)是無人船在避免障礙物的前提下,以能耗最優(yōu)的方式達(dá)到目標(biāo)點(diǎn)。因此,獎勵函數(shù)設(shè)計為防碰撞獎勵f1和能耗獎勵f2兩部分。
路徑規(guī)劃首先要確保無人水面艇不與障礙物發(fā)生碰撞,當(dāng)水面艇與障礙物距離小于安全半徑時,將受到懲罰,其他情況為0。
防碰撞獎勵函數(shù)設(shè)計為
式中,d和rsafe分別為無人水面艇與最近障礙物的距離和安全半徑。
假設(shè)無人水面艇推進(jìn)功率恒定,等價為無人水面艇在靜水速度vs恒定,能耗最優(yōu)的路徑即為在洋流干擾下,最短時間內(nèi)從初始位置達(dá)到目標(biāo)位置的路徑。
無人水面艇的靜水速度vs,洋流的速度vc(為φ 和 φc的合成速度)以及洋流速度與水平面夾角均已知,相對關(guān)系如圖1 所示。
根據(jù)三角函數(shù)分別求得無人水面艇合成速度v以及靜水速度與水平方向夾角φs
圖5 洋流影響下無人水面艇航向角取值范圍Fig.5 Range of the heading angle of USV under the influence of ocean current
因此,能耗獎勵設(shè)計為
式中:dgoal為無人水面艇與目標(biāo)的距離;t為單步的動作時間;r0為路徑收斂時無人水面艇與目標(biāo)的最短距離。
能耗獎勵函數(shù)設(shè)計為[8-10]
式中,Ki-1和Ki為當(dāng)前路徑中鄰近的兩點(diǎn)。
假設(shè)無人水面艇速度均大于洋流速度得到該函數(shù)節(jié)點(diǎn),忽略存在洋流速度大于無人水面艇的速度,導(dǎo)致路徑上的點(diǎn)根本無法到達(dá)的情況。
因此,算法的總獎勵函數(shù)R=f1+f2。此后,每一步實(shí)時更新無人水面艇的狀態(tài)和洋流信息,即
洋流、控制輸入的離散性等因素會影響無人水面艇規(guī)劃路徑的平滑度和曲率,常用的平滑算法有B 樣條法和隨機(jī)梯度法[15]等。其中,隨機(jī)梯度法需要設(shè)計包含相鄰路徑點(diǎn)距離和角度信息的平滑代價函數(shù),計算量大,百次迭代才能收斂;B 樣條法為多項式階擬合,階次較低,可以對曲線進(jìn)行局部修正。所以,文中采用B 樣條法進(jìn)行路徑平滑。
B 樣條由分段多項式組成,具體數(shù)學(xué)表達(dá)式
式中:pi為控制節(jié)點(diǎn);Ni,or為樣條的基函數(shù),決定了樣條的平滑程度,下標(biāo)or代表階數(shù)。
式中:*代表卷積;f為步長。
基于能耗最優(yōu)的路徑規(guī)劃算法具體步驟如下:
1)設(shè)定初始位置、目標(biāo)位置、初始化算法參數(shù)以及洋流等外部環(huán)境模型;
2)開始第i次迭代;
3)執(zhí)行式(7)貪婪策略,選擇動作;
4)執(zhí)行式(11)~(15),計算獎勵r以及無人水面艇下一步狀態(tài)s′;
5)執(zhí)行式(6),更新動作價值函數(shù),將無人水面艇下一步s′賦值給當(dāng)前狀態(tài);
6)若無人艇到達(dá)目標(biāo)距離dgoal≤r0,結(jié)束當(dāng)前迭代,跳轉(zhuǎn)至步驟2)且i=i+1,否則執(zhí)行步驟3);
7)若路徑收斂或達(dá)到最大迭代次數(shù)則執(zhí)行步驟8);
8)執(zhí)行式(16),使用B 樣條法進(jìn)行路徑平滑。
算法的流程框圖見圖6。
圖6 基于能耗最優(yōu)的路徑規(guī)劃算法流程圖Fig.6 Flow chart of energy-optimal path planning algorithm
采用1.1 節(jié)描述的洋流場,在400 m×400 m 海洋環(huán)境中隨機(jī)產(chǎn)生10 個渦流中心點(diǎn),渦流強(qiáng)度Γ和渦流作用半徑 σ分別設(shè)置為100 m2/s 和10 m。無人水面艇在靜水中的速度設(shè)置為2 m/s,單步動作時間為10 s,無人水面艇初始狀態(tài)和目標(biāo)狀態(tài)分別(45 m,75 m,0)和(345 m,305 m,(π/2)rad)。洋流場描述矢量圖如圖7 所示,圖中,綠色米子型標(biāo)記為渦流中心點(diǎn),藍(lán)色和紅色圈代表無人水面艇的起始位置和目標(biāo)位置。
圖7 洋流場矢量圖Fig.7 Ocean current vector map
強(qiáng)化學(xué)習(xí)參數(shù)設(shè)計如下:設(shè)定環(huán)境的長、寬、角度分辨率分別為10 m,10 m,18°,學(xué)習(xí)率α=0.3,折舊因子γ=0.9,初始探索系數(shù)ε0=0.5,最大迭代次數(shù)20 000。單步結(jié)束的條件為無人水面艇到達(dá)指定范圍內(nèi)或者碰到邊界,總的迭代終止條件為規(guī)劃路徑收斂,即連續(xù)10 次訓(xùn)練迭代次數(shù)的方差小于0.2。若達(dá)到最大迭代步數(shù)還未收斂,則視為當(dāng)前訓(xùn)練失敗。
情況1 外部環(huán)境僅受洋流影響
圖8 為基于洋流約束的無人水面艇仿真路徑。圖中,無人水面艇沿著洋流的方向順流而行,文中算法的航行花費(fèi)時間為183 s,節(jié)約了大量能量。無人水面艇沿虛線雖能直達(dá)目標(biāo)位置,但大都逆流而行,需浪費(fèi)大量能量克服洋流的影響,最終航行花費(fèi)時間為224 s,不利于無人水面艇長時間執(zhí)行任務(wù)。文中算法規(guī)劃路徑符合無人水面艇的運(yùn)動學(xué)約束,且較為平滑,不存在較大的轉(zhuǎn)向角。傳統(tǒng)Q-learning 算法和粒子群算法由于存在橫向移動,出現(xiàn)較大轉(zhuǎn)向角,不利于無人水面艇的實(shí)際運(yùn)動。
圖8 基于洋流約束的無人水面艇仿真路徑Fig.8 Simulation paths of USV based on ocean current constraints
情況2 外部環(huán)境受洋流和障礙物影響
為了驗證算法的避障效果,在圖7 規(guī)劃路徑的基礎(chǔ)上添加4 個不同半徑的障礙物,如圖9 所示。從圖中可以看出,傳統(tǒng)的Q-learning 算法和粒子群算法在障礙物附近出現(xiàn)了大轉(zhuǎn)折角且航行時間最長,而文中算法由于避免障礙物等原因,存在部分逆流狀態(tài),導(dǎo)致航行花費(fèi)時間較情況1 長,但總的航行時間在3 個算法中最短。
圖9 基于洋流和障礙物約束的無人水面艇仿真路徑Fig.9 Simulation paths of USV based on obstacles and ocean current constraints
表1 給出了2 種情況下各算法的仿真結(jié)果。
表1 仿真結(jié)果對比Table 1 Comparison of simulation results
針對無人水面艇海上路徑規(guī)劃問題,討論了海上洋流外部干擾對路徑的影響,設(shè)計了一種基于能耗最優(yōu)的強(qiáng)化學(xué)習(xí)算法。利用無人水面艇的運(yùn)動學(xué)模型和洋流模型,根據(jù)無人水面艇當(dāng)前位置和航向信息,判斷下一狀態(tài)是否可達(dá),設(shè)計相應(yīng)的獎勵函數(shù)。通過2 種環(huán)境下的仿真驗證表明,傳統(tǒng)的Q-learning 算法和粒子群算法隨著障礙物增加,出現(xiàn)大量的轉(zhuǎn)折角,不利于無人水面艇實(shí)際運(yùn)動;為了減少計算量和加快計算速度,文中研究無人水面艇的控制輸入為離散模式,并且優(yōu)化符合海事規(guī)則的獎勵函數(shù),該方法能夠規(guī)劃出一條平滑的路徑,并且順著洋流方向運(yùn)動,能耗最優(yōu)。
結(jié)合研究進(jìn)展,后續(xù)將在實(shí)際海試環(huán)境下優(yōu)化無人水面艇運(yùn)動學(xué)模型,并對洋流模型和強(qiáng)化學(xué)習(xí)算法進(jìn)行試驗驗證。