基于MOOS的AUV的数据采集和监控系统

2014-10-14 18:28侯建钊高菲张东昆
现代电子技术 2014年20期
关键词:类库海洋大学串口

侯建钊+高菲+张东昆

摘 要: 随着海洋事业的发展,对海洋的探测和开发工作提出了更高要求。自主式水下机器人能很好的适应水下复杂的环境,通过自主导航定位,路径规划来完成相应的工作。为实现水下机器人稳定可靠的数据采集工作,采用以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.

猜你喜欢
类库海洋大学串口
中国海洋大学作品选登
浅谈AB PLC串口跟RFID传感器的通讯应用
用Java编写客户机/服务器端应用程序
中国海洋大学 自主招生,让我同时被两所211大学录取
Python在数据可视化中的应用
数据结构课程教学改革方案和应用效果
数据结构可视化类库的设计与实现
식민 상황과 이태준의 고향의식
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信