徐小強(qiáng),祝亞蘭
(武漢理工大學(xué) 自動(dòng)化學(xué)院,湖北 武漢 430070)
基于YimaEnc海圖的無人艇局部路徑規(guī)劃研究
徐小強(qiáng),祝亞蘭
(武漢理工大學(xué) 自動(dòng)化學(xué)院,湖北 武漢 430070)
YimaEnc電子海圖和MFC對話框技術(shù)的結(jié)合,既能實(shí)現(xiàn)對電子海圖進(jìn)行放大、縮小、拖拽、物標(biāo)遍歷、定位及高亮等操作,又能夠?qū)o人艇進(jìn)行實(shí)時(shí)監(jiān)控和定位。針對經(jīng)典人工勢場法存在的弊端,對其函數(shù)模型進(jìn)行改進(jìn),并在此基礎(chǔ)上對規(guī)劃路徑進(jìn)行優(yōu)化。然后,基于YimaEnc電子海圖仿真平臺進(jìn)行仿真實(shí)驗(yàn),仿真結(jié)果表明,規(guī)劃路徑可使無人艇到達(dá)目的地的距離更短,耗時(shí)更少。
無人艇;電子海圖;MFC;局部路徑規(guī)劃;人工勢場法
水上交通安全問題正成為人們?nèi)找骊P(guān)注和重視的熱點(diǎn)話題。為降低水上交通事故發(fā)生頻率,提高安全性,減少損失,節(jié)約資源,人們對船舶的智能化需求越來越高。由此,船舶自主避碰和導(dǎo)航、無人艇等高科技技術(shù)與產(chǎn)品應(yīng)運(yùn)而生。文獻(xiàn)[1-3]分析了國內(nèi)外水面無人艇的發(fā)展現(xiàn)狀與特點(diǎn)。目前,國內(nèi)外許多學(xué)者在船舶自主避碰與局部路徑規(guī)劃上提出了很多觀點(diǎn)和解決辦法,為船舶的智能化發(fā)展和無人艇技術(shù)提供了一定的理論依據(jù)。如王敏捷等[4]將模糊算法與近域圖法相結(jié)合,使水面無人艇在復(fù)雜水域避開障礙物;AGNIESZKA[5]采用蟻群算法解決無人艇在公海和限制水域中的路徑規(guī)劃與避碰問題;饒森[6]將分層思想與遺傳算法相結(jié)合,實(shí)現(xiàn)水面無人艇全局路徑規(guī)劃。
筆者基于人工勢場法對無人艇的路徑規(guī)劃和自主避碰問題進(jìn)行研究,對人工勢場法函數(shù)進(jìn)行處理,并對其規(guī)劃路徑進(jìn)行優(yōu)化,以提高算法的運(yùn)算速度和性能,使規(guī)劃出的路徑更滿足無人艇航線要求。該算法已在基于YimaEnc電子海圖仿真平臺上得到驗(yàn)證,且已應(yīng)用于實(shí)際工程中水上無人艇自主避碰的研發(fā),極具現(xiàn)實(shí)意義。
1.1 YimaEnc概述
YimaEnc是上海零瑪信息技術(shù)有限公司推出的一款用于電子海圖領(lǐng)域的軟件產(chǎn)品,是基于Yimap Core開發(fā),符合IHO S-57數(shù)字化海道測量數(shù)據(jù)傳輸標(biāo)準(zhǔn)和IHO S-52電子海圖顯示與信息系統(tǒng)海圖內(nèi)容顯示規(guī)范的要求[7],在一定程度上推動(dòng)了全球ENC(電子航海圖)數(shù)據(jù)庫的發(fā)展。YimaEnc SDK是對YimaEnc進(jìn)行封裝后提供給開發(fā)商的一個(gè)二次開發(fā)組件包,用戶可在程序中加載其COM組件,并調(diào)用該組件提供的API(應(yīng)用程序編程接口)對YimaEnc電子海圖進(jìn)行操作,實(shí)現(xiàn)對海圖進(jìn)行放大、縮小、拖拽、定位和高亮等操作。YimaEnc SDK還可與測深儀、AIS(船舶自動(dòng)識別系統(tǒng))、GPS、雷達(dá)等系統(tǒng)結(jié)合,實(shí)現(xiàn)無人艇自主導(dǎo)航、實(shí)時(shí)避碰及路徑規(guī)劃等控制。
1.2 YimaEnc組成結(jié)構(gòu)及工作原理
YimaEnc組件中有一個(gè)專門負(fù)責(zé)海圖管理和顯示的海圖管家。海圖管家監(jiān)管和維護(hù)著一個(gè)海圖庫、一個(gè)內(nèi)存海圖序列、一個(gè)海圖繪制器和多個(gè)海圖序列表[8]。其結(jié)構(gòu)如圖1所示。
圖1 YimaEnc組成結(jié)構(gòu)
YimaEnc海圖基本工作原理:YimaEnc組件中的海圖管家可使Yimap File海圖文件從海圖庫中的海圖儲存室加載到內(nèi)存海圖序列中。然后,由索引信息選擇相對應(yīng)的某幅海圖或海圖物標(biāo),并利用海圖繪制器來對所選對象進(jìn)行繪制。此外,YimaEnc海圖管家還能實(shí)現(xiàn)自動(dòng)加/卸載海圖及控制內(nèi)存海圖序列中元素的顯示順序的功能。
1.3 YimaEnc電子海圖的API
YimaEnc所有API都包含在CYimaEnc類中,開發(fā)人員通過調(diào)用該類對應(yīng)的API,如DrawDragingMap()、GetCurrentScale()、SetCurrentScale()等,實(shí)現(xiàn)對YimaEnc電子海圖的拖拽、放大、縮小等操作。
在MFC程序中嵌入YimaEnc電子海圖的具體步驟:①在計(jì)算機(jī)上注冊YimaEnc.ocx控件;②為所建的MFC工程配置3個(gè)重要文件目錄,即S57Lib(配置文件目錄)、MapLib(海圖庫目錄)、MarineMap(自定義海圖功能目錄);③將YimaEnc的COM組件加載到MFC工程中,并為其添加成員變量;④初始化YimaEnc的COM組件。
2.1 人工勢場法基本思想
人工勢場法最早由美國斯坦福大學(xué)教授OUSSAMA[9]提出,是一種用于機(jī)器人移動(dòng)導(dǎo)航和實(shí)時(shí)避障的虛擬力法。虛擬力場分布如圖2所示,其基本原理是:將目標(biāo)點(diǎn)和障礙物作為虛擬力場的兩極,即引力極和斥力極。引力極和斥力極分別對移動(dòng)物體產(chǎn)生引力和斥力,并計(jì)算出引力與斥力的疊加合力作為其驅(qū)動(dòng)力,從而決定物體的移動(dòng)方向和位置[10]。將人工勢場法運(yùn)用于無人艇局部路徑規(guī)劃中,同樣可將無人艇周圍航行環(huán)境視為一個(gè)虛擬力場。無人艇在航行時(shí),目標(biāo)點(diǎn)產(chǎn)生的吸引力與障礙物產(chǎn)生的排斥力疊加為合力,決定無人艇的航行方向和位置。其中,引力場函數(shù)和斥力場函數(shù)分別如式(1)和式(2)所示。
圖2 虛擬力場分布
(1)
(2)
式中:λ為引力系數(shù);x為當(dāng)前位置;xg為目標(biāo)點(diǎn)位置;μ為斥力系數(shù);ρ為船與障礙物間的最短距離;ρo為障礙物影響距離的常數(shù)。
2.2 基于人工勢場法的局部路徑規(guī)劃
在經(jīng)典人工勢場法函數(shù)模型中,若目標(biāo)點(diǎn)附近存在障礙物,當(dāng)無人艇距離目標(biāo)點(diǎn)較近時(shí),引力減小,斥力迅速增大。一方面,極易造成無人艇引力與斥力合力為0,導(dǎo)致無人艇在此處運(yùn)動(dòng)停止或徘徊不前而無法到達(dá)目標(biāo)點(diǎn);另一方面,斥力快速增加,也可能導(dǎo)致合力迅速改變方向,造成無人艇航向發(fā)生急劇變化,非常不符合實(shí)際需求。針對經(jīng)典人工勢場法的這些不足,筆者對人工勢場法函數(shù)進(jìn)行適當(dāng)處理,以滿足無人艇的局部路徑規(guī)劃性能需求。處理后的引力場函數(shù)和斥力場函數(shù)分別如式(3)和式(4)所示。
Uatt(x)=λ(x-xg)
(3)
(4)
式中:S為無人艇與障礙物間的距離;R為斥力場函數(shù)的作用半徑。
基于改進(jìn)的人工勢場法函數(shù),進(jìn)行局部路徑規(guī)劃,路徑優(yōu)化算法流程圖如圖3所示,具體步驟如下:①初始化無人艇的起點(diǎn)與終點(diǎn);②判斷無人艇是否到達(dá)終點(diǎn),若是則算法結(jié)束,否則進(jìn)入步驟③;③以無人艇所在位置為中心遍歷周圍障礙物;④由改進(jìn)的函數(shù)模型計(jì)算無人艇在當(dāng)前位置所受合力大小與方向;⑤由合力大小和方向,計(jì)算無人艇下一路徑點(diǎn)位置,并將其由當(dāng)前位置移動(dòng)到下一路徑點(diǎn)處,再轉(zhuǎn)步驟②,如此循環(huán)。
圖3 路徑優(yōu)化算法流程圖
2.3 基于人工勢場法的規(guī)劃路徑優(yōu)化算法
根據(jù)人工勢場法規(guī)劃的路徑點(diǎn)數(shù)量多、密度大,導(dǎo)致路徑中折線密集繁多,且造成算法對大量多余路徑點(diǎn)進(jìn)行計(jì)算。這既增長航線距離,加長行駛時(shí)間,又降低了算法的實(shí)時(shí)性和可重復(fù)性。又因無人艇在實(shí)際航行中易受到風(fēng)、浪、水流等因素影響,規(guī)劃路徑中折線過多易導(dǎo)致無人艇經(jīng)常改變航向,這非常不符合無人艇在水上的航行習(xí)慣,且會(huì)造成無人艇在航行過程中更加難以控制。所以筆者針對以上出現(xiàn)的問題,在保障路徑安全的前提下,選擇路徑中更為合適的路徑點(diǎn),過濾掉徒勞無功的路徑點(diǎn)。將多條折線路徑優(yōu)化為一條直線路徑,從而生成一條使無人艇到達(dá)目的地距離更短、耗時(shí)更少、更適用于航行的優(yōu)化路徑。
3.1 仿真環(huán)境搭建
筆者在Visual Studio 2010集成開發(fā)環(huán)境下實(shí)現(xiàn)無人艇的自主避碰航行和局部路徑規(guī)劃的仿真實(shí)驗(yàn)。建立基于MFC對話框的工程項(xiàng)目,在主界面上添加按鈕、編輯框、列表框以及復(fù)選框等控件,改變這些控件的屬性,并為其添加對應(yīng)的成員變量。仿真主界面如圖4所示。
圖4 仿真主界面
3.2 仿真結(jié)果分析
筆者設(shè)置引力系數(shù)λ=1.5,斥力系數(shù)μ=10,取起點(diǎn)地理坐標(biāo)的經(jīng)度為122.306 699 4°,緯度為30.249 994 8°,取終點(diǎn)地理坐標(biāo)的經(jīng)度為122.313 334 3°,緯度為30.255 001 5°。選擇的水域?yàn)榇箝L途島與小長途島間的狹長水域。
3.2.1 無障礙物環(huán)境下
當(dāng)無人艇航行水域內(nèi)無障礙物時(shí),根據(jù)改進(jìn)的人工勢場法模型(此時(shí)未對規(guī)劃路徑進(jìn)行優(yōu)化),將海岸線作為斥力極,目標(biāo)點(diǎn)作為引力極進(jìn)行局部路徑規(guī)劃,如圖5所示。
圖5 基于人工勢場法的局部路徑規(guī)劃
顯然從圖5可以看出,雖然無人艇能避開障礙物,到達(dá)目標(biāo)點(diǎn),但得到的路徑點(diǎn)非常密集。一方面,算法在運(yùn)行時(shí),運(yùn)算量大、耗時(shí)長且效率低;另一方面,無人艇若按此路徑航行不僅無法滿足快速性與實(shí)時(shí)性要求,且耗能嚴(yán)重。因此,為提高算法運(yùn)行效率,滿足無人艇性能要求,筆者對基于人工勢場法的規(guī)劃路徑進(jìn)行優(yōu)化,來完成無人艇的局部路徑規(guī)劃。仿真結(jié)果如圖6和圖7所示,無障礙物環(huán)境下有無使用路徑優(yōu)化算法的結(jié)果對比如表1所示。
圖6 無障礙物環(huán)境下優(yōu)化后的路徑
由仿真結(jié)果可以看出,在改進(jìn)后的算法模型下,無人艇在YimaEnc電子海圖上可成功避開障礙物,完成局部路徑規(guī)劃。并且,對規(guī)劃路徑進(jìn)行優(yōu)化后,規(guī)劃路徑點(diǎn)由620個(gè)減少到10個(gè),不僅極大提高了算法的運(yùn)行效率,也使無人艇航行線路更加平滑。
圖7 無人艇在無障礙物環(huán)境下的航行軌跡
算法路徑點(diǎn)個(gè)數(shù)/個(gè)從起點(diǎn)到終點(diǎn)一次動(dòng)態(tài)路徑規(guī)劃時(shí)間/s從起點(diǎn)到終點(diǎn)的仿真航行時(shí)間/s有路徑優(yōu)化算法100.169 10.833無路徑優(yōu)化算法62016.8921345.027
3.2.2 有障礙物環(huán)境下
在無人艇航行水域人為添加障礙物并進(jìn)行仿真,仿真結(jié)果如圖8和圖9所示,有無使用路徑優(yōu)化算法的結(jié)果對比如表2所示。此時(shí),目標(biāo)點(diǎn)對無人艇產(chǎn)生引力,而海岸線和障礙物都會(huì)對無人艇產(chǎn)生斥力。從無人艇的行駛軌跡可以看出,利用改進(jìn)的人工勢場法和路徑優(yōu)化算法可以成功避開障礙物并到達(dá)目標(biāo)點(diǎn)。對比仿真結(jié)果可知,進(jìn)行路徑優(yōu)化后算法的運(yùn)行效率更高。
圖8 有障礙物環(huán)境下優(yōu)化后的路徑
圖9 無人艇在有障礙物環(huán)境下的航行軌跡
表2 有無使用路徑優(yōu)化算法的結(jié)果對比
筆者對YimaEnc的組成結(jié)構(gòu)和工作原理進(jìn)行分析,并結(jié)合MFC將電子海圖與無人艇局部路徑規(guī)劃的仿真在對話框中展現(xiàn)出來。這樣人們可以更直觀地觀察無人艇的運(yùn)行狀態(tài),對其進(jìn)行實(shí)時(shí)監(jiān)控和定位。然后分析了人工勢場法的基本思想和函數(shù)模型,并針對該算法運(yùn)用在無人艇局部路徑規(guī)劃中存在的不足,對算法函數(shù)進(jìn)行改進(jìn),進(jìn)而對規(guī)劃路徑進(jìn)行優(yōu)化。通過Visual Studio 2010集成開發(fā)環(huán)境,驗(yàn)證了所提算法的有效性。
[1] 柳晨光,初秀民,吳青,等.USV發(fā)展現(xiàn)狀及展望[J].中國造船,2014,55(4):194-205.
[2] 周洪光,馬愛民,夏朗.無人水面航行器發(fā)展[J].國防科技,2009,30(6):17-20.
[3] 李家良.水面無人艇發(fā)展與應(yīng)用[J].火力與指揮控制,2012,37(6):203-207.
[4] 王敏捷,張汝波.水面無人艇模糊近域圖避障方法研究[J].計(jì)算機(jī)工程,2012,38(21):164-167.
[5] AGNIESZKA L. Swarm intelligence approach to safe ship control[J].Polish Maritime Research, 2015,22(4):34-40.
[6] 饒森.水面無人艇的全局路徑規(guī)劃技術(shù)研究[D].哈爾濱:哈爾濱工程大學(xué),2007.
[7] 張振華,王遠(yuǎn)斌,葉玲.基于S-57標(biāo)準(zhǔn)的電子海圖的設(shè)計(jì)與實(shí)現(xiàn)[J].艦船電子工程,2015,35(2):94-98.
[8] YIMASOFT . YIMAENC SDK 開發(fā)文檔[DB/OL].(2008-09-10).http:∥www.docin.com/p-702001758.html.
[9] OUSSAMA K. Real-time obstacle avoidance for manipulator and mobile robots[J]. The International Journal of Robotics Research, 1986,5(1):90-98.
[10] ZHOU L, LI W. Adaptive artificial potential field approach for obstacle avoidance path planning[C]∥ Seventh International Symposium on Computational Intelligence and Design. Hangzhou: IEEE,2014:429-432.
ResearchonLocalPathPlanningofUnmannedSurfaceVehicleBasedonYimaElectronicChart
XUXiaoqiang,ZHUYalan
The combination of YimaEnc electronic chart and MFC(Microsoft Foundation Class) dialog technology, which can not only make electronic chart implement the operation of zooming in or out, dragging, traversing obstacles, positioning and highlighting objects and so on, but also can realize real-time monitoring and positioning of the USV(Unmanned Surface Vehicle). An improved function model of artificial potential field and an optimization of path Algorithm are used to solve the problems of classical artificial potential field method. Based on the YimaEnc electronic chart simulation platform, the simulation results show that the planning path can make the USV reach the destination with shorter distance and less time.
USV;electronic chart;MFC;local path planning;artificial potential field
U675
10.3963/j.issn.2095-3852.2017.05.004
2095-3852(2017)05-0521-04
A
2017-04-06.
徐小強(qiáng)(1978-),男,河南南陽人,武漢理工大學(xué)自動(dòng)化學(xué)院副教授,主要研究方向?yàn)榍度胧较到y(tǒng)應(yīng)用、智能控制、智能交通.
XUXiaoqiangAssoc. Prof. ; School of Automation, WUT, Wuhan 430070, China.