侯建釗+高菲+張東昆
摘 要: 隨著海洋事業(yè)的發(fā)展,對海洋的探測和開發(fā)工作提出了更高要求。自主式水下機器人能很好的適應水下復雜的環(huán)境,通過自主導航定位,路徑規(guī)劃來完成相應的工作。為實現(xiàn)水下機器人穩(wěn)定可靠的數(shù)據(jù)采集工作,采用以MOOS為平臺的分布式設計方法,提高了數(shù)據(jù)采集系統(tǒng)的精度和效率,從而提高了AUV導航定位的準確性和可靠性。
關鍵字: 自主式水下機器人; MOOS; 數(shù)據(jù)采集; 導航定位
中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2014)20?0130?03
Data acquisition and supervision system of AUV based on MOOS
HOU Jian?zhao, GAO Fei, ZHANG Dong?kun
(Ocean University of China, Qingdao 266100, China)
Abstract: With the development of marine enterprise, higher requirements were put forward for the marine exploration. The autonomous underwater vehicle can adapt to the complex marine environment and complete corresponding special tasks by autonomous navigation, positioning and route planning. The distributed design method taking MOOS as the platform was adopted to realize the stable and reliable data acquisition of the autonomous underwater vehicle, which improved the accuracy and efficiency of AUVs data acquisition system, as well as the veracity and reliability of AUV navigation positioning.
Keywords: autonomous underwater vehicle; MOOS; data acquisition; navigation and positioning
水下機器人主要有兩大類產(chǎn)品:有纜遙控式水下機器人(Remote Operated Vehicle,ROV)和無纜自主式水下機器人(Autonomous Underwater Vehicle,AUV)[1]。AUV具有高度智能性,自主性,靈活性等優(yōu)勢而被應用于復雜海洋環(huán)境中,具有廣闊的前景。目前, AUV工作過程可分為以下幾步:采集數(shù)據(jù),處理信息,數(shù)據(jù)評估執(zhí)行行為[2]。AUV的控制軟件MOOS,可通過串口(RS 232)與多傳感器通信,并采集和處理數(shù)據(jù),可實現(xiàn)數(shù)據(jù)實時采集、保存、指令接收和發(fā)布等功能,是一款基于C++類的開源軟件,易實現(xiàn)二次開發(fā)和擴展應用[3]。
1 AUV的工作原理和MOOS的簡介
1.1 AUV的應用及工作原
AUV可應用于海洋生態(tài)環(huán)境監(jiān)控,海洋資源勘測,水文觀測等眾多領域,也可用于海軍偵查任務和海洋搜救等工作[4]。美國,澳大利亞,英國的AUV最近應用于海洋搜救工作,探測深度最大可達四五千米,并能準確的探測、識別目標。AUV在復雜水下環(huán)境中能自主的執(zhí)行任務,其基礎是有效的數(shù)據(jù)采集和高效的算法決策,同時數(shù)據(jù)采集的準確性是AUV實現(xiàn)定位、導航和路徑規(guī)劃的前提條件[5]。
AUV可以在貼近水面或者復雜水下環(huán)境中自主展開各項任務,其主要工作原理:AUV自身攜帶多種模塊化的傳感器設備(如慣性導航單元、姿態(tài)航向參考系統(tǒng)、聲通信單元、聲納、水下壓力計、水下攝像頭、深度計等),采集周圍的水文數(shù)據(jù),通過MOOS進行數(shù)據(jù)解析和打包,并由中央控制單元將打包的數(shù)據(jù)發(fā)布到算法決策部分進行數(shù)據(jù)評估,然后判斷行為模式并進行行為融合,來執(zhí)行相應的任務,從而實現(xiàn)AUV自主性。
AUV艙體大體可分為前艙,中間艙和后艙,前艙主要放置傳感器模塊(如水下攝像頭、GPS、多波束等);中間艙體主要是控制主機PC104、通信天線、姿態(tài)傳感器AHRS和側(cè)掃聲納等;后艙是電源系統(tǒng)、動力驅(qū)動系統(tǒng)和動力控制系統(tǒng)[9]。如圖1所示。
圖1 魚雷型AUV結(jié)構
1.2 MOOS軟件系統(tǒng)簡介
MOOS是一套分布式體系結(jié)構的開源軟件,由Paul Newman專門針對水下機器人而設計,基于發(fā)布/訂閱模式,采用模塊化設計體系結(jié)構,其核心單元MOOSDB(MOOS Database)[3]。MOOS設計理念是把水下機器人的各工作單元抽象成獨立的Application,不同App之間無通信僅能通過MOOSDB進行信息交互,且不同傳感器的通信都通過統(tǒng)一的API來實現(xiàn)[6]。
2 AUV整體設計框架及數(shù)據(jù)采集系統(tǒng)
2.1 AUV系統(tǒng)框架
實驗中AUV采用模塊化、分布式的設計方案,宏觀上把AUV分為四大系統(tǒng)模塊:中央控制系統(tǒng)、同時定位和地圖構建系統(tǒng)、數(shù)據(jù)采集和保存分析系統(tǒng)、底層動力驅(qū)動和控制系統(tǒng)[7]。具體說明如下:
(1) 中央控制系統(tǒng)。負責各個系統(tǒng)之間的數(shù)據(jù)通信和指令的收發(fā),計算AUV的路徑并及時規(guī)劃AUV的行進路線[1]。
(2) 定位和地圖構建系統(tǒng)。通過中央控制單元獲取多傳感器的數(shù)據(jù)信息,由算法分析計算AUV的航行位置并構建未知環(huán)境的地圖[8]。
(3) 數(shù)據(jù)采集和保存分析系統(tǒng)。主要是采集各傳感器和AUV艙內(nèi)參數(shù)信息,并保存分析數(shù)據(jù),為AUV的路徑規(guī)劃、導航定位和地圖構建提供有效的信息。
(4) 底層動力驅(qū)動和控制系統(tǒng)。主要提供動力和調(diào)整AUV航行姿態(tài),并反饋艙內(nèi)參數(shù)來監(jiān)控AUV的動力系統(tǒng)。
圖2 系統(tǒng)硬件框架
2.2 數(shù)據(jù)采集系統(tǒng)的實現(xiàn)
在實際項目研發(fā)中,由于AUV的艙體空間有限,一般的PC主機在艙內(nèi)作為控制處理模塊不可行,所以采用PC104來代替[4]。PC104符合計算機總線標準,兼容串口、USB接口,支持硬盤擴展和各種聲頻視頻驅(qū)動等,具有體積小,模塊化,易擴展開發(fā)等優(yōu)點,適合在空間受限的AUV艙內(nèi)作為中央控制平臺。多傳感器、底層硬件和PC104通過RS232實現(xiàn)通信,然后采集的數(shù)據(jù)由算法進行決策分析,并做出行為決策,控制AUV的行為[9];同時AUV與上位機可通過無線通信(執(zhí)行水面任務時)或水聲通信(執(zhí)行水下任務時)來實現(xiàn)通信功能。
在數(shù)據(jù)采集軟件系統(tǒng)開發(fā)過程中,采用過Linux平臺和Windows平臺。Windows平臺的控制界面利用VS2010中的MFC類庫編寫,而在Linux平臺上的軟件界面基于Qt用FLTK和OpenGL類庫編寫,控制界面更流暢,并且能很好地實現(xiàn)AUV的運動模擬數(shù)據(jù)采集工作,實驗中以Linux平臺進行開發(fā)。軟件設計過程中需要解決多線程同步問題、多傳感器采集數(shù)據(jù)時間的同步問題、串口收發(fā)數(shù)據(jù)阻塞問題、內(nèi)存泄漏等問題。多次實驗證明,利用MOOS的模塊化、分布式的設計方法,實現(xiàn)了采集數(shù)據(jù)的高效性和保證了數(shù)據(jù)采集的準確性。
圖3 軟件設計流程圖
軟件開發(fā)過程中應對數(shù)據(jù)進行實時保存,高質(zhì)量保存采集的數(shù)據(jù),是對整個實驗定性分析、優(yōu)化、改善的基礎[3]。數(shù)據(jù)保存整體流程如圖4所示。
圖4 數(shù)據(jù)保存原理
3 軟件接口的實現(xiàn)和AUV軟件系統(tǒng)的實現(xiàn)
3.1 高精度GPS實例
MOOS軟件控制的核心模塊為MOOSDB,MOOSDB是與各模塊通信的中心,各數(shù)據(jù)采集模塊通過CMOOSClient類庫的API與MOOSDB通信。在此以GPS為例來說明軟件編程的具體實現(xiàn)方法。實驗中使用星宇網(wǎng)達的XM?GPS1000高精度GPS,數(shù)據(jù)格式(RMD)為:
$GPGGA, hhmmss, status, latitude, N, longitude, E, spd, cog, ddmmyy, mv, mvE, mode*cs
3.2 MOOS擴展函數(shù)接口實例化
MOOS中另一個重要類庫是CMOOSApp,是實現(xiàn)各傳感器模塊數(shù)據(jù)處理和實現(xiàn)方法的基類,它聲明定義虛函數(shù),主要的有Iterate(),OnNewMail(),OnStartUp()等[10]。GPS模塊通過串口以固定的頻率與MOOSDB實現(xiàn)通信,在程序設計中,GPS傳感器被抽象為iHgps接口模塊,通過重載和繼承CMOOSApp類的子函數(shù),實現(xiàn)傳感器模塊的數(shù)據(jù)采集和數(shù)據(jù)處理功能[6]。
對iHGPS模塊中OnStartUp()進行重載,代碼如下:
bool CHGPSInstrument::OnStartUp()
{
CMOOSInstrument::OnStartUp()
//setup Geodtic conversions
…
if (IsSimulateMode())
{
RegisterMOOSVariables();
}eles
if (!SetupPort())//setup the serial
return false;
if(!InitialiseSensorN(10,"HGPS"))//initialise
return false:
}
return true;
}
其中:SetupPort()實現(xiàn)對串口的配置,InitializeSensorN()對傳感器進行初始化。然后 對iHGPS模塊中的Iterate()函數(shù)進行重載,主要是實現(xiàn)從HGPS中獲得HGPS數(shù)據(jù),并用GetData()函數(shù)進行解析,然后通過PublishData()子函數(shù)把解析得到的數(shù)據(jù)發(fā)送到MOOSDB中[7]。最后在.moos的配置文件中配置新增加的GPS模塊,在Linux shell界面中用pAntler命令啟動軟件[8],實現(xiàn)添加模塊GPS數(shù)據(jù)的采集工作。
3.3 上位機軟件系統(tǒng)
AUV上位機數(shù)據(jù)采集及監(jiān)控軟件系統(tǒng)如圖5所示。
圖5 AUV上位機數(shù)據(jù)采集和監(jiān)控軟件
基于FLTK和OpenGL改進的AUV運行模擬狀態(tài)如圖6所示。
圖6 AUV運動仿真界面
4 結(jié) 語
本文介紹了AUV的發(fā)展應用,重點介紹了基于MOOS的 AUV多傳感器的數(shù)據(jù)采集實現(xiàn)方法,以MOOS的兩大重要類庫CMOOSClient和CMOOSApp 為核心,對這兩個庫的繼承和重載來實現(xiàn)所需數(shù)據(jù)采集功能。最后,以高精度XM?GPS1000為實例,從程序?qū)用婢唧w介紹了數(shù)據(jù)采集的實現(xiàn)方法,并開發(fā)AUV軟件控制系統(tǒng)和仿真界面來模擬AUV的自主行為。
參考文獻
[1] 劉華軍,楊靜宇.移動機器人運動規(guī)劃研究綜述[J].中國工程院,2006,8(1):3?9.
[2] 齊林慶.基于EKF?SLAM的AUV自主導航算法的多線程實現(xiàn)[D].青島:中國海洋大學,2008.
[3] BENJAMIN M R, NEWMAN P, SCHMICK H, et al. An overview of MOOS?IvP and a user guide to the IvP helm autonomy software [EB/OL]. [2010?08?27]. http://hdl.handle.net/1721.1/57583.
[4] 溫國曦.AUV組合導航算法研究及基于MOOS平臺的系統(tǒng)實現(xiàn)[D].杭州:浙江大學,2013.
[5] MARCO D B, HEALEY A J. Dept. command, control, and navigation experimental results with the NPS ARIES AUV [J].IEEE Journal of Oceanic Engineering, 2001, 26(4):466?476.
[6] BENJAMIN M R. Nested autonomy for unmanned marine vehicles with MOOS?IvP [J]. Field Robotics, 2010, 27(6): 834?875.
[7] 管增輝.基于MOOS?FMM的水下機器人軟件系統(tǒng)的設計[D].青島:中國海洋大學,2012.
[8] SONG Fei?jun, SMITH S M. Design of sliding mode fuzzy controllers for an autonomous underwater vehicle without system model [J]. Oceans 2000 MTS/IEEE Conference and Exhibition, 2000, 2: 835?840.
[9] 張鵬,張水平,安紅征.基于UDP與串口通信的訓練臺監(jiān)控系統(tǒng)[J].通信技術,2008,41(4):159?161.
[10] 姜大鵬.多水下機器人協(xié)調(diào)控制技術研究[D].哈爾濱:哈爾濱工程大學,2011.
[11] 姚科,何波,李炳森.自主式水下機器人數(shù)據(jù)采集與?管理系統(tǒng)及其可靠性[J].微計算機信息,2010(4):138?140.
[12] 齊林慶.自主式水下機器人測控系統(tǒng)軟件設計與實現(xiàn)[D].青島:中國海洋大學,2011.
本文介紹了AUV的發(fā)展應用,重點介紹了基于MOOS的 AUV多傳感器的數(shù)據(jù)采集實現(xiàn)方法,以MOOS的兩大重要類庫CMOOSClient和CMOOSApp 為核心,對這兩個庫的繼承和重載來實現(xiàn)所需數(shù)據(jù)采集功能。最后,以高精度XM?GPS1000為實例,從程序?qū)用婢唧w介紹了數(shù)據(jù)采集的實現(xiàn)方法,并開發(fā)AUV軟件控制系統(tǒng)和仿真界面來模擬AUV的自主行為。
參考文獻
[1] 劉華軍,楊靜宇.移動機器人運動規(guī)劃研究綜述[J].中國工程院,2006,8(1):3?9.
[2] 齊林慶.基于EKF?SLAM的AUV自主導航算法的多線程實現(xiàn)[D].青島:中國海洋大學,2008.
[3] BENJAMIN M R, NEWMAN P, SCHMICK H, et al. An overview of MOOS?IvP and a user guide to the IvP helm autonomy software [EB/OL]. [2010?08?27]. http://hdl.handle.net/1721.1/57583.
[4] 溫國曦.AUV組合導航算法研究及基于MOOS平臺的系統(tǒng)實現(xiàn)[D].杭州:浙江大學,2013.
[5] MARCO D B, HEALEY A J. Dept. command, control, and navigation experimental results with the NPS ARIES AUV [J].IEEE Journal of Oceanic Engineering, 2001, 26(4):466?476.
[6] BENJAMIN M R. Nested autonomy for unmanned marine vehicles with MOOS?IvP [J]. Field Robotics, 2010, 27(6): 834?875.
[7] 管增輝.基于MOOS?FMM的水下機器人軟件系統(tǒng)的設計[D].青島:中國海洋大學,2012.
[8] SONG Fei?jun, SMITH S M. Design of sliding mode fuzzy controllers for an autonomous underwater vehicle without system model [J]. Oceans 2000 MTS/IEEE Conference and Exhibition, 2000, 2: 835?840.
[9] 張鵬,張水平,安紅征.基于UDP與串口通信的訓練臺監(jiān)控系統(tǒng)[J].通信技術,2008,41(4):159?161.
[10] 姜大鵬.多水下機器人協(xié)調(diào)控制技術研究[D].哈爾濱:哈爾濱工程大學,2011.
[11] 姚科,何波,李炳森.自主式水下機器人數(shù)據(jù)采集與?管理系統(tǒng)及其可靠性[J].微計算機信息,2010(4):138?140.
[12] 齊林慶.自主式水下機器人測控系統(tǒng)軟件設計與實現(xiàn)[D].青島:中國海洋大學,2011.
本文介紹了AUV的發(fā)展應用,重點介紹了基于MOOS的 AUV多傳感器的數(shù)據(jù)采集實現(xiàn)方法,以MOOS的兩大重要類庫CMOOSClient和CMOOSApp 為核心,對這兩個庫的繼承和重載來實現(xiàn)所需數(shù)據(jù)采集功能。最后,以高精度XM?GPS1000為實例,從程序?qū)用婢唧w介紹了數(shù)據(jù)采集的實現(xiàn)方法,并開發(fā)AUV軟件控制系統(tǒng)和仿真界面來模擬AUV的自主行為。
參考文獻
[1] 劉華軍,楊靜宇.移動機器人運動規(guī)劃研究綜述[J].中國工程院,2006,8(1):3?9.
[2] 齊林慶.基于EKF?SLAM的AUV自主導航算法的多線程實現(xiàn)[D].青島:中國海洋大學,2008.
[3] BENJAMIN M R, NEWMAN P, SCHMICK H, et al. An overview of MOOS?IvP and a user guide to the IvP helm autonomy software [EB/OL]. [2010?08?27]. http://hdl.handle.net/1721.1/57583.
[4] 溫國曦.AUV組合導航算法研究及基于MOOS平臺的系統(tǒng)實現(xiàn)[D].杭州:浙江大學,2013.
[5] MARCO D B, HEALEY A J. Dept. command, control, and navigation experimental results with the NPS ARIES AUV [J].IEEE Journal of Oceanic Engineering, 2001, 26(4):466?476.
[6] BENJAMIN M R. Nested autonomy for unmanned marine vehicles with MOOS?IvP [J]. Field Robotics, 2010, 27(6): 834?875.
[7] 管增輝.基于MOOS?FMM的水下機器人軟件系統(tǒng)的設計[D].青島:中國海洋大學,2012.
[8] SONG Fei?jun, SMITH S M. Design of sliding mode fuzzy controllers for an autonomous underwater vehicle without system model [J]. Oceans 2000 MTS/IEEE Conference and Exhibition, 2000, 2: 835?840.
[9] 張鵬,張水平,安紅征.基于UDP與串口通信的訓練臺監(jiān)控系統(tǒng)[J].通信技術,2008,41(4):159?161.
[10] 姜大鵬.多水下機器人協(xié)調(diào)控制技術研究[D].哈爾濱:哈爾濱工程大學,2011.
[11] 姚科,何波,李炳森.自主式水下機器人數(shù)據(jù)采集與?管理系統(tǒng)及其可靠性[J].微計算機信息,2010(4):138?140.
[12] 齊林慶.自主式水下機器人測控系統(tǒng)軟件設計與實現(xiàn)[D].青島:中國海洋大學,2011.