摘 要:針對海面油污清理,人工清理方法成本高、危害高,尤其無法適應(yīng)惡劣天氣下的復(fù)雜海況及易發(fā)生火災(zāi)的有毒油污環(huán)境。為此,引入裝載油污清理設(shè)備的多艘無人艇協(xié)同清理海面油污成為一種必要方式。為了解決多艘無人艇之間的高效協(xié)作,提出了一種自定義直角路徑規(guī)劃算法。首先,將給定油污圖像進(jìn)行邊緣輪廓提取、凸包點(diǎn)查找與聚類;其次,確定目標(biāo)凸包點(diǎn)及其與多無人艇間的分配;然后,通過自定義直角法路徑規(guī)劃出由當(dāng)前位置至目標(biāo)凸包點(diǎn)的無碰撞路徑。最后,進(jìn)行對比仿真實(shí)驗(yàn),驗(yàn)證了自定義直角路徑規(guī)劃算法規(guī)劃出的路徑轉(zhuǎn)折點(diǎn)少、易于無人艇跟蹤、更具可行性和優(yōu)越性。
關(guān)鍵詞:原油泄漏;海面油污清理;多無人艇;路徑規(guī)劃;圖像處理
周旭; 葛愿; 李文戰(zhàn); 葉剛 電子測量技術(shù) 2021-12-31
0 引言
隨著石油工業(yè)和海上運(yùn)輸業(yè)的發(fā)展,以及海洋經(jīng)濟(jì)活動的日益頻繁,導(dǎo)致海上原油泄漏事故頻繁發(fā)生。據(jù)統(tǒng)計(jì),全世界每年有數(shù)百萬噸的原油流入海洋[1]。原油泄漏不僅對人類的財產(chǎn)安全造成威脅,而且對海洋生物及生態(tài)環(huán)境造成了惡劣的影響[2]。我國海域面積達(dá) 473 萬 2 km ,海岸線為 18000km。目前,由原油泄漏所導(dǎo)致的海洋污染問題在我國形勢依然嚴(yán)峻,因此對于海洋油污的及時清理工作意義重大。
目前,清理海面油污的傳統(tǒng)方法是人工駕駛船只使用圍油柵將油污圍控,并利用清理設(shè)備對油污進(jìn)行清理回收。當(dāng)面對較為復(fù)雜的海面環(huán)境時,如多霧、多雨等天氣,工作人員將會因視線受阻而無法實(shí)時操縱船只;當(dāng)作業(yè)面積過大時,則需大量船只和人員進(jìn)行長時間工作,且由于油污中含有苯、芳香烴、硫化氫等有毒氣體,不利于工作人員的身體健康[3]。針對人工清理方法的高成本及危害性問題,本文引入裝載油污清理設(shè)備的無人艇代替人工完成油污清理工作。
無人艇是一種不需要人為操作、可完成各種任務(wù)的水面運(yùn)動平臺。由于其成本低、速度快、靈活性高等特點(diǎn),越來越多的應(yīng)用到海上、河流或湖泊的軍事或民用領(lǐng)域上[4-5]。在軍事領(lǐng)域上無人艇已廣泛應(yīng)用于掃雷、偵察和反潛作戰(zhàn)等方面,在民用領(lǐng)域中無人艇主要應(yīng)用于水文氣象探測、環(huán)境監(jiān)測和水上搜救等專項(xiàng)服務(wù)中[6-8]。為了更有效地完成任務(wù),路徑規(guī)劃和路徑控制技術(shù)在無人艇的工業(yè)應(yīng)用和科學(xué)研究中發(fā)揮了重要作用,引起了人們的極大關(guān)注。無人艇路徑規(guī)劃技術(shù)是通過將航行環(huán)境中影響無人艇路徑規(guī)劃的信息提取出來并進(jìn)行環(huán)境建模,然后在已建立的模型基礎(chǔ)上規(guī)劃出一條從起始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的無碰撞路徑。其本質(zhì)是一個具有復(fù)雜約束的系統(tǒng)優(yōu)化問題[9-10]。目前常用的規(guī)劃方法主要有人工勢場法[11-12]、遺傳算法[13]、粒子群算法[14-16]、A*算法[ 17-19]、快速行進(jìn)算法[20-21]、 Dijkstra 算法[22-24]等。其中遺傳算法高效且能夠進(jìn)行并行處理,但是利用遺傳算法規(guī)劃所得的路徑缺乏收斂性和一致性,使得無人艇難以跟蹤。相較于遺傳算法,粒子群優(yōu)化算法比較簡單,但是針對不同的任務(wù)需求沒有一種特定的理論來指導(dǎo)路徑的生成,因此在實(shí)際應(yīng)用當(dāng)中還存在一定的局限性。在無人艇的路徑規(guī)劃當(dāng)中,Dijkstra 方法以及 A*算法是兩種較為有效的方法。利用這兩種方法生成的路徑具有很好的收斂性和一致性,但路徑具有多個轉(zhuǎn)折點(diǎn),且轉(zhuǎn)折角度過大,不利于無人艇在實(shí)際海洋環(huán)境下進(jìn)行跟蹤。
雖然上述算法在一定程度上可以進(jìn)行路徑規(guī)劃,但在海面油污清理的應(yīng)用中,這些算法適應(yīng)性不足,規(guī)劃出的路徑有很大一部分貼近于油污邊緣且路徑轉(zhuǎn)折點(diǎn)過多,不僅不利于無人艇跟蹤,而且也不能有效執(zhí)行清理任務(wù)計(jì)劃。因此本文針對海面油污清理任務(wù)的特殊性,提出了一種自定義直角路徑規(guī)劃算法,通過此算法規(guī)劃出的路徑不僅可以自動規(guī)避油污區(qū)域,而且路徑轉(zhuǎn)折點(diǎn)較少,利于無人艇跟蹤,可有效完成油污清理任務(wù)。最后,為驗(yàn)證所提方法的有效性和適應(yīng)性,本文在 MATLAB 環(huán)境中進(jìn)行了一定量的仿真實(shí)驗(yàn)。
1 問題描述
在本研究中,引入裝載油污清理設(shè)備的多無人艇,協(xié)同作業(yè)解決海面油污清理問題。將給定假設(shè)經(jīng)過處理后的油污圖像作為輸入,依據(jù)多無人艇目標(biāo)凸包點(diǎn)分配策略和自定義直角路徑規(guī)劃算法為無人艇規(guī)劃出一條安全、合理、可航行的路徑,為此必須保證在多無人艇的清理下油污面積不斷減少呈收縮趨勢,以及規(guī)劃出的路徑轉(zhuǎn)折點(diǎn)要少、不能穿越油污區(qū)域,便于無人艇跟蹤。
本文擬采用三艘無人艇,并給定海面油污圖像。假設(shè)海面油污不受風(fēng)、浪、流等自然環(huán)境因素影響而擴(kuò)散,油污清理以 T 分鐘為一個周期且清理設(shè)備每分鐘吸取油污量一定。首先對油污圖像進(jìn)行圖像處理,提取出圖像邊緣輪廓并進(jìn)行凸包點(diǎn)查找、聚類;然后用圖像重心替代中心,計(jì)算每一類中凸包點(diǎn)到中心的距離,選出距離最遠(yuǎn)的點(diǎn)作為該類的凸包點(diǎn)即類凸包點(diǎn);最后從所有類凸包點(diǎn)中選取距離中心最遠(yuǎn)的三個凸包點(diǎn)作為目標(biāo)凸包點(diǎn)。無人艇在航行中首先運(yùn)動到目標(biāo)凸包點(diǎn),以確保在油污清理開始時,其位置處在油污區(qū)域的最凸位置;然后當(dāng)所有無人艇均到達(dá)目標(biāo)凸包點(diǎn)后,無人艇開始沿著目標(biāo)凸包點(diǎn)往圖像中心運(yùn)動并清理油污。這樣,經(jīng)過清理后可保證油污面積不斷減少且成收縮趨勢。本文采用自定義直角路徑規(guī)劃算法進(jìn)行路徑規(guī)劃,可以規(guī)劃出符合多無人艇進(jìn)行油污清理工作所需求的路徑,此方法在本文第三節(jié)詳細(xì)闡述。據(jù)以上描述,油污清理問題整體方案設(shè)計(jì)流程圖如 1。
2 油污圖像處理
2.1 環(huán)境建模
進(jìn)行路徑規(guī)劃時,需要將海域環(huán)境圖進(jìn)行處理。首先將圖片進(jìn)行二值化處理轉(zhuǎn)換成黑白圖像,即將像素點(diǎn)的灰度值變?yōu)?0 或 255,像素點(diǎn)的取值是通過給定的閾值進(jìn)行判斷。當(dāng)該點(diǎn)的灰度值等于或超過閾值時判定為可航行區(qū)域;反之,判斷為不可航行的障礙物區(qū)域。本文將油污分布區(qū)域歸納為黑色區(qū)域,白色區(qū)域認(rèn)定為無人艇可航行區(qū)域。經(jīng)過二值化處理后的圖像,能夠反映出海面油污區(qū)域和可航行區(qū)域,從而達(dá)到分割的效果,進(jìn)而可對油污區(qū)域圖像進(jìn)行邊緣輪廓提取,方便后續(xù)進(jìn)行路徑規(guī)劃。
2.2 凸包點(diǎn)聚類與分配
圖像邊緣輪廓提取后,需要對圖形凸包點(diǎn)進(jìn)行查找和聚類,進(jìn)而確定目標(biāo)凸包點(diǎn),其中聚類方法和目標(biāo)凸包點(diǎn)的確定如下:假設(shè)存在 N 個凸包點(diǎn),凸包點(diǎn)之間共存在 N ?1 個間距。設(shè)置一個分區(qū)參考距離 d,將大于參考距離的間距總數(shù)記作 C。當(dāng) C 大于 3 時,凸包點(diǎn)劃分為 C 類;當(dāng) C 小于 3 時,由于選用 3 艘無人艇,每艘無人艇都必須要選取一個凸包點(diǎn)作為目標(biāo)凸包點(diǎn),所以將凸包點(diǎn)劃分為 3 類。凸包點(diǎn)聚類圖如圖 2 所示。其中類凸包點(diǎn)為每一類凸包點(diǎn)中距離中心最遠(yuǎn)的點(diǎn)如圖3所示;當(dāng)目標(biāo)凸包點(diǎn)確定后,需要對多無人艇進(jìn)行路徑規(guī)劃,無人艇依據(jù)就近原則選取目標(biāo)凸包點(diǎn)。當(dāng)出現(xiàn)多個無人艇距離同一目標(biāo)凸包點(diǎn)距離相等時,指定一艘無人艇先選擇,其他無人艇隨機(jī)選擇。
3 自定義直角路徑規(guī)劃方法
自定義直角路徑規(guī)劃是指以無人艇所在位置為初始點(diǎn),以初始點(diǎn)與目標(biāo)凸包點(diǎn)連線為直徑做圓,并以此線段作為偏移線段;然后,以初始點(diǎn)作為固定點(diǎn),以一定角度向偏離油污區(qū)域方向進(jìn)行偏移,找出偏移后第一條不穿越油污區(qū)域的線段,并將該線段與圓的交點(diǎn)定義為目標(biāo)圓點(diǎn);接著,初始點(diǎn)與目標(biāo)凸包點(diǎn)分別與目標(biāo)圓點(diǎn)相連接,則得到一條從初始點(diǎn)到目標(biāo)點(diǎn)的路徑,形成此路徑的兩個線段夾角為直角;同理,以目標(biāo)凸包點(diǎn)為固定點(diǎn),利用上述方法操作并找到目標(biāo)圓點(diǎn),則得到一條從目標(biāo)點(diǎn)到初始點(diǎn)的路徑;最后,將兩條路徑的交點(diǎn)分別與初始點(diǎn)和目標(biāo)凸包點(diǎn)相連,則得到最終路徑。其方法示意圖如下圖 4 所示。
圖 4 中,線 1 代表部分油污區(qū)域外輪廓,線 2 代表從初始點(diǎn)到達(dá)目標(biāo)凸包點(diǎn)所規(guī)劃出的路徑,線 3 代表從目標(biāo)凸包點(diǎn)到初始點(diǎn)所規(guī)劃出的路徑,線 4 代表經(jīng)過兩次路徑規(guī)劃得到的最終路徑。
3.1 偏移方向判斷規(guī)則
偏移方向判斷規(guī)則:如果中心點(diǎn)位于初始點(diǎn)指向目標(biāo)凸包點(diǎn)向量的左側(cè)則順時針偏移,反之逆時針偏移。如果中心點(diǎn)位于目標(biāo)凸包點(diǎn)指向初始點(diǎn)向量的右側(cè)則順時針偏移,反之逆時針偏移。本文利用初始點(diǎn)指向目標(biāo)凸包點(diǎn)向量與凸包點(diǎn)指向中心點(diǎn)向量的角度差來替代偏移規(guī)則中中心點(diǎn)位于初始點(diǎn)指向目標(biāo)凸包點(diǎn)向量和目標(biāo)凸包點(diǎn)指向初始點(diǎn)向量的左右情況來判斷,判斷規(guī)則如式(1)所示: _ 1 _ 1 _ 0 _ 1 _ 1 _ 1 _ 1 _ 0 _ 1 _ 1 s s s s s s s s s s ? ? ? ? ?? ? ? ?? ?? ? ? ? ?? ? ? ?? ?? ? ? ? ? ? ? ? ?? ? ? ? ? ?? ?? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ?,逆時針偏向,順時針偏向,順時針偏向,順時針偏向,逆時針偏向,逆時針偏向 (1) 式(1)中? _ s 為初始點(diǎn)指向目標(biāo)凸包點(diǎn)的向量與水平軸夾角、?1 為目標(biāo)凸包點(diǎn)指向中心點(diǎn)的向量與水平軸夾角、??為偏移角度。? _ s 和?1 的計(jì)算公式如式(2)、(3)所示:? _ arctan( 2(2) 1(2), 2(1) 1(1)) s p p p p ? ? ? (2) ?1 arctan(A(2) 1(2),A(1) 1(1)) ? ? ? p p (3) 式(2)、(3)中 p1 為初始點(diǎn)坐標(biāo)、 p2 為目標(biāo)凸包點(diǎn)、A 為中心點(diǎn)坐標(biāo)。偏移后線段與水平軸的夾角為? _ temp ,其取值與偏移方向有關(guān),如式(4)所示: _ _ _ _ temp s temp s ? ? ?? ? ?? ? ? ? ?? ? ? ?,順時針偏向,逆時針偏向 (4) 經(jīng) 過 偏移后 初 始 點(diǎn) 與 圓 上 交 點(diǎn) 的 線 段 為 r temp r temp s _ 2 cos( _ _ ) ? ? ? ? ? ? ,此線段與圓的交點(diǎn)坐標(biāo)計(jì)算公式如式(5)所示: (1) 1(1) _ cos( _ ) (2) 1(2) _ sin( _ ) c p r temp temp c p r temp temp ??? ? ? ? ?? ? ? ? (5)
3.2 目標(biāo)圓點(diǎn)查找算法流程圖
目標(biāo)圓點(diǎn)查找算法如圖 5 所示.
圖 5 中初始線段是指初始點(diǎn)與目標(biāo)凸包點(diǎn)連線線段, round x( ) 函數(shù)作用定義為四舍五入, n 的表達(dá)式如式(6)所示:? ? 2 2 n round c p c p ? ? ? ? ? ? ( (2) 1(2)) ( (1) 1(1)) 2 2 (6)
4 仿真分析
本文在MATLAB中將所提算法與A*算法和RRT* 算法進(jìn)行了對比仿真實(shí)驗(yàn),驗(yàn)證了所提方法的可行性和優(yōu)越性。表 1 為仿真實(shí)驗(yàn)參數(shù)表,其中 S 為無人艇在目標(biāo)凸包點(diǎn)位置往中心點(diǎn)移動 T 分鐘的距離值,即無人艇在清理油污過程中 T 分鐘所前進(jìn)的距離。
圖 6、7 為給定初始狀態(tài)海面油污圖和第一次油污被清理后的圖像即油污被無人艇清理 T 分鐘后的圖像。
規(guī)劃后的路徑分為區(qū)外路徑和區(qū)內(nèi)路徑,區(qū)外路徑為無人艇到達(dá)目標(biāo)凸包點(diǎn)的航行路徑,區(qū)內(nèi)路徑為油污清理設(shè)備清理油污時無人艇的航行路徑。通過對比圖8、圖 9、圖 10 和圖 11,可清楚看到利用自定義直角算法規(guī)劃出的路徑轉(zhuǎn)折點(diǎn)數(shù)為 0 或 1 且遠(yuǎn)少于 A*算法和 RRT*算法規(guī)劃出的路徑轉(zhuǎn)折點(diǎn)數(shù)。同時,圖中 A* 算法和 RRT*算法規(guī)劃出的路徑很大一部分更貼近油污邊緣。由此可以推出以下結(jié)論,在適用于海面油污清理場景中,A*算法和 RRT*算法所規(guī)劃出的路徑不利于無人艇跟蹤,且由于路徑更貼近油污邊緣,所以當(dāng)無人艇沿油污邊緣行駛時產(chǎn)生的波浪會對油污邊緣造成影響,以至于在無人艇未到達(dá)目標(biāo)凸包點(diǎn)之前由于波浪的影響導(dǎo)致之前計(jì)算的目標(biāo)凸包點(diǎn)失效,進(jìn)而導(dǎo)致油污清理方案不能夠有效執(zhí)行,不具適用性;同時,轉(zhuǎn)折點(diǎn)過多也將會導(dǎo)致無人艇在運(yùn)動過程中因多次轉(zhuǎn)彎、調(diào)頭等動作而帶來更多的能量消耗。而本文所提算法則克服了 A*算法和 RRT*算法的不足,所規(guī)劃出的路徑效果更優(yōu),更有利于多無人艇按照路線航行和執(zhí)行任務(wù),更具適用性和優(yōu)越性。
5 結(jié)論
本文針對海面油污清理問題,引入多無人艇協(xié)同作業(yè)完成油污清理工作,并提出一種自定義直角路徑規(guī)劃算法解決了無人艇之間的協(xié)作問題。通過將給定油污圖像進(jìn)行圖像處理,得到圖像邊緣輪廓及其凸包點(diǎn);然后確定目標(biāo)凸包點(diǎn),并與無人艇進(jìn)行分配;最后利用所提算法,規(guī)劃出無人艇當(dāng)前位置至目標(biāo)凸包點(diǎn)的無碰撞路徑。仿真結(jié)果表明,所提算法能夠高效規(guī)劃出油污清理所需路徑,具有一定的優(yōu)越性和適用性。文中存在一些不足之處,如目標(biāo)凸包點(diǎn)分配時,當(dāng)兩艘無人艇距離同一凸包點(diǎn)距離相同時,依據(jù)凸包點(diǎn)分配規(guī)則,規(guī)劃出的路徑可能出現(xiàn)在圓外,導(dǎo)致路徑距離過長。針對此類問題,未來將會更深入的研究。
論文指導(dǎo) >
SCI期刊推薦 >
論文常見問題 >
SCI常見問題 >