侯建釗+高菲+張東昆
摘 要: 隨著海洋事業的發展,對海洋的探測和開發工作提出了更高要求。自主式水下機器人能很好的適應水下復雜的環境,通過自主導航定位,路徑規劃來完成相應的工作。為實現水下機器人穩定可靠的數據采集工作,采用以MOOS為平臺的分布式設計方法,提高了數據采集系統的精度和效率,從而提高了AUV導航定位的準確性和可靠性。
關鍵字: 自主式水下機器人; MOOS; 數據采集; 導航定位
中圖分類號: 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
水下機器人主要有兩大類產品:有纜遙控式水下機器人(Remote Operated Vehicle,ROV)和無纜自主式水下機器人(Autonomous Underwater Vehicle,AUV)[1]。AUV具有高度智能性,自主性,靈活性等優勢而被應用于復雜海洋環境中,具有廣闊的前景。目前, AUV工作過程可分為以下幾步:采集數據,處理信息,數據評估執行行為[2]。AUV的控制軟件MOOS,可通過串口(RS 232)與多傳感器通信,并采集和處理數據,可實現數據實時采集、保存、指令接收和發布等功能,是一款基于C++類的開源軟件,易實現二次開發和擴展應用[3]。
1 AUV的工作原理和MOOS的簡介
1.1 AUV的應用及工作原
AUV可應用于海洋生態環境監控,海洋資源勘測,水文觀測等眾多領域,也可用于海軍偵查任務和海洋搜救等工作[4]。美國,澳大利亞,英國的AUV最近應用于海洋搜救工作,探測深度最大可達四五千米,并能準確的探測、識別目標。AUV在復雜水下環境中能自主的執行任務,其基礎是有效的數據采集和高效的算法決策,同時數據采集的準確性是AUV實現定位、導航和路徑規劃的前提條件[5]。
AUV可以在貼近水面或者復雜水下環境中自主展開各項任務,其主要工作原理:AUV自身攜帶多種模塊化的傳感器設備(如慣性導航單元、姿態航向參考系統、聲通信單元、聲納、水下壓力計、水下攝像頭、深度計等),采集周圍的水文數據,通過MOOS進行數據解析和打包,并由中央控制單元將打包的數據發布到算法決策部分進行數據評估,然后判斷行為模式并進行行為融合,來執行相應的任務,從而實現AUV自主性。
AUV艙體大體可分為前艙,中間艙和后艙,前艙主要放置傳感器模塊(如水下攝像頭、GPS、多波束等);中間艙體主要是控制主機PC104、通信天線、姿態傳感器AHRS和側掃聲納等;后艙是電源系統、動力驅動系統和動力控制系統[9]。如圖1所示。
圖1 魚雷型AUV結構
1.2 MOOS軟件系統簡介
MOOS是一套分布式體系結構的開源軟件,由Paul Newman專門針對水下機器人而設計,基于發布/訂閱模式,采用模塊化設計體系結構,其核心單元MOOSDB(MOOS Database)[3]。MOOS設計理念是把水下機器人的各工作單元抽象成獨立的Application,不同App之間無通信僅能通過MOOSDB進行信息交互,且不同傳感器的通信都通過統一的API來實現[6]。
2 AUV整體設計框架及數據采集系統
2.1 AUV系統框架
實驗中AUV采用模塊化、分布式的設計方案,宏觀上把AUV分為四大系統模塊:中央控制系統、同時定位和地圖構建系統、數據采集和保存分析系統、底層動力驅動和控制系統[7]。具體說明如下:
(1) 中央控制系統。負責各個系統之間的數據通信和指令的收發,計算AUV的路徑并及時規劃AUV的行進路線[1]。
(2) 定位和地圖構建系統。通過中央控制單元獲取多傳感器的數據信息,由算法分析計算AUV的航行位置并構建未知環境的地圖[8]。
(3) 數據采集和保存分析系統。主要是采集各傳感器和AUV艙內參數信息,并保存分析數據,為AUV的路徑規劃、導航定位和地圖構建提供有效的信息。
(4) 底層動力驅動和控制系統。主要提供動力和調整AUV航行姿態,并反饋艙內參數來監控AUV的動力系統。
圖2 系統硬件框架
2.2 數據采集系統的實現
在實際項目研發中,由于AUV的艙體空間有限,一般的PC主機在艙內作為控制處理模塊不可行,所以采用PC104來代替[4]。PC104符合計算機總線標準,兼容串口、USB接口,支持硬盤擴展和各種聲頻視頻驅動等,具有體積小,模塊化,易擴展開發等優點,適合在空間受限的AUV艙內作為中央控制平臺。多傳感器、底層硬件和PC104通過RS232實現通信,然后采集的數據由算法進行決策分析,并做出行為決策,控制AUV的行為[9];同時AUV與上位機可通過無線通信(執行水面任務時)或水聲通信(執行水下任務時)來實現通信功能。
在數據采集軟件系統開發過程中,采用過Linux平臺和Windows平臺。Windows平臺的控制界面利用VS2010中的MFC類庫編寫,而在Linux平臺上的軟件界面基于Qt用FLTK和OpenGL類庫編寫,控制界面更流暢,并且能很好地實現AUV的運動模擬數據采集工作,實驗中以Linux平臺進行開發。軟件設計過程中需要解決多線程同步問題、多傳感器采集數據時間的同步問題、串口收發數據阻塞問題、內存泄漏等問題。多次實驗證明,利用MOOS的模塊化、分布式的設計方法,實現了采集數據的高效性和保證了數據采集的準確性。
圖3 軟件設計流程圖
軟件開發過程中應對數據進行實時保存,高質量保存采集的數據,是對整個實驗定性分析、優化、改善的基礎[3]。數據保存整體流程如圖4所示。
圖4 數據保存原理
3 軟件接口的實現和AUV軟件系統的實現
3.1 高精度GPS實例
MOOS軟件控制的核心模塊為MOOSDB,MOOSDB是與各模塊通信的中心,各數據采集模塊通過CMOOSClient類庫的API與MOOSDB通信。在此以GPS為例來說明軟件編程的具體實現方法。實驗中使用星宇網達的XM?GPS1000高精度GPS,數據格式(RMD)為:
$GPGGA, hhmmss, status, latitude, N, longitude, E, spd, cog, ddmmyy, mv, mvE, mode*cs
3.2 MOOS擴展函數接口實例化
MOOS中另一個重要類庫是CMOOSApp,是實現各傳感器模塊數據處理和實現方法的基類,它聲明定義虛函數,主要的有Iterate(),OnNewMail(),OnStartUp()等[10]。GPS模塊通過串口以固定的頻率與MOOSDB實現通信,在程序設計中,GPS傳感器被抽象為iHgps接口模塊,通過重載和繼承CMOOSApp類的子函數,實現傳感器模塊的數據采集和數據處理功能[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()實現對串口的配置,InitializeSensorN()對傳感器進行初始化。然后 對iHGPS模塊中的Iterate()函數進行重載,主要是實現從HGPS中獲得HGPS數據,并用GetData()函數進行解析,然后通過PublishData()子函數把解析得到的數據發送到MOOSDB中[7]。最后在.moos的配置文件中配置新增加的GPS模塊,在Linux shell界面中用pAntler命令啟動軟件[8],實現添加模塊GPS數據的采集工作。
3.3 上位機軟件系統
AUV上位機數據采集及監控軟件系統如圖5所示。
圖5 AUV上位機數據采集和監控軟件
基于FLTK和OpenGL改進的AUV運行模擬狀態如圖6所示。
圖6 AUV運動仿真界面
4 結 語
本文介紹了AUV的發展應用,重點介紹了基于MOOS的 AUV多傳感器的數據采集實現方法,以MOOS的兩大重要類庫CMOOSClient和CMOOSApp 為核心,對這兩個庫的繼承和重載來實現所需數據采集功能。最后,以高精度XM?GPS1000為實例,從程序層面具體介紹了數據采集的實現方法,并開發AUV軟件控制系統和仿真界面來模擬AUV的自主行為。
參考文獻
[1] 劉華軍,楊靜宇.移動機器人運動規劃研究綜述[J].中國工程院,2006,8(1):3?9.
[2] 齊林慶.基于EKF?SLAM的AUV自主導航算法的多線程實現[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平臺的系統實現[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的水下機器人軟件系統的設計[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與串口通信的訓練臺監控系統[J].通信技術,2008,41(4):159?161.
[10] 姜大鵬.多水下機器人協調控制技術研究[D].哈爾濱:哈爾濱工程大學,2011.
[11] 姚科,何波,李炳森.自主式水下機器人數據采集與?管理系統及其可靠性[J].微計算機信息,2010(4):138?140.
[12] 齊林慶.自主式水下機器人測控系統軟件設計與實現[D].青島:中國海洋大學,2011.
本文介紹了AUV的發展應用,重點介紹了基于MOOS的 AUV多傳感器的數據采集實現方法,以MOOS的兩大重要類庫CMOOSClient和CMOOSApp 為核心,對這兩個庫的繼承和重載來實現所需數據采集功能。最后,以高精度XM?GPS1000為實例,從程序層面具體介紹了數據采集的實現方法,并開發AUV軟件控制系統和仿真界面來模擬AUV的自主行為。
參考文獻
[1] 劉華軍,楊靜宇.移動機器人運動規劃研究綜述[J].中國工程院,2006,8(1):3?9.
[2] 齊林慶.基于EKF?SLAM的AUV自主導航算法的多線程實現[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平臺的系統實現[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的水下機器人軟件系統的設計[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與串口通信的訓練臺監控系統[J].通信技術,2008,41(4):159?161.
[10] 姜大鵬.多水下機器人協調控制技術研究[D].哈爾濱:哈爾濱工程大學,2011.
[11] 姚科,何波,李炳森.自主式水下機器人數據采集與?管理系統及其可靠性[J].微計算機信息,2010(4):138?140.
[12] 齊林慶.自主式水下機器人測控系統軟件設計與實現[D].青島:中國海洋大學,2011.
本文介紹了AUV的發展應用,重點介紹了基于MOOS的 AUV多傳感器的數據采集實現方法,以MOOS的兩大重要類庫CMOOSClient和CMOOSApp 為核心,對這兩個庫的繼承和重載來實現所需數據采集功能。最后,以高精度XM?GPS1000為實例,從程序層面具體介紹了數據采集的實現方法,并開發AUV軟件控制系統和仿真界面來模擬AUV的自主行為。
參考文獻
[1] 劉華軍,楊靜宇.移動機器人運動規劃研究綜述[J].中國工程院,2006,8(1):3?9.
[2] 齊林慶.基于EKF?SLAM的AUV自主導航算法的多線程實現[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平臺的系統實現[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的水下機器人軟件系統的設計[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與串口通信的訓練臺監控系統[J].通信技術,2008,41(4):159?161.
[10] 姜大鵬.多水下機器人協調控制技術研究[D].哈爾濱:哈爾濱工程大學,2011.
[11] 姚科,何波,李炳森.自主式水下機器人數據采集與?管理系統及其可靠性[J].微計算機信息,2010(4):138?140.
[12] 齊林慶.自主式水下機器人測控系統軟件設計與實現[D].青島:中國海洋大學,2011.