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