MOOS—IvP理论概述及应用简析

来源 :科技创新导报 | 被引量 : 0次 | 上传用户:tingchao12
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:为了帮助读者对MOOS-IvP进行初步学习,此文从MOOS-IvP的设计理念、架构模型、主要功能等方面进行了介绍。MOOS-IvP是一个新型的、开源的、基于行为的无人航行器的自动化控制程序,介绍内容包括:MOOS-IvP的设计理论及使用的方法,包括基础设计模型中用到的发布-订阅模型、后座驾驶员模型、基于行为的自主性设计,代码的重用性,模块化设计,信息交流方式;MOOSDB的主要功能、配置属性及运作方式;IvP Helm部分介绍其结构特点、功能属性及实现方法。使读者最终对MOOS-IvP形成一个全面系统的认识。
  关键词:MOOS-IvP 数据库 IvP Helm 无人航行器 自动化
  中图分类号:TP311 文献标识码:A 文章编号:1674-098X(2016)05(a)-0083-05
  Abstract:MOOS-IvP is a new,open source,behavior based automation control program for an unmanned vehicle. This passage introduced some aspects of MOOS-IvP from design concept, architecture model,mainly functions and so on, for helping users to understand the software and use it.The main description of the passage contained the MOOS-IvP design-modules,the MOOSDB and the IvP helm.MOOS-IvP design-modules includesthe publish-subscribe middleware design philosophy,the backseat driver design philosophy, thebehavior-based control design philosophy, the code re-use,modules design philosophy, the methods of message transmit.The MOOSDB comprisedthe main functions,the configuration properties and the operation mode. TheIvP Helm introduced the structure characteristics, the functional properties andtherealization method.Which will help users to build a comprehensive and systematic concept of MOOS-IvP.
  Key Words:MOOS-IvP;MOOSDB;IvP helm;Unmanned vehicle;Autonomy
  随着海洋资源探索与开发的需要,海洋航行器科技的发展日新月异,对航行器软件及硬件方面的要求也越来越高。目前为止,Autonomous underwater vehicle(简称AUV)的控制系统多以底层硬件控制为主,只能完成简单的操作命令,软件控制相对薄弱且控制结构单一,没有统一的运行平台,对多航行器同时调配存在短板。MOOS是由Paul Newman于2001年写成的[1],用于自主性海洋航行器的控制。MOOS-IvP的设计初衷是建立一个高性能的自主系统,减少短期以及长期的花销和缩短时间线。使得航行器的智能化和行为复杂度能大大提高,并能够同时调控多航行器协调。随着MOOS-IvP软件系统的不断开发与完善,该软件已经逐步发展为一个独立强大的控制系统,在未来海洋探测及多功能自主性AUV的研发中,将起到重要的作用。
  1 MOOS-IvP的整体设计思路
  MOOS是Mission Oriented Operating Suite的缩写。MOOS是一个开源工具,是自主的发布-订阅式中间软件。MOOS-IvP软件的设计思路主要依据以下3个建筑哲学思想。
  (1)后座驾驶员模型(the backseat driver paradigm)[2]。
  (2)发布-订阅型自动化中间设备[3]。
  (3)基于行为的自主性设计[4]。
  按照以上思路,该系统将一个整体软件按照其功能划分为不同的部分,并作为独立的模块,由中间软件统一调配整合。该设计理念从某一角度看,与面向对象程序设计中的抽象、封装、继承等特点有一定的相似性。MOOS和IvP的核心架构思想都是将不同的功能分离出来,做成独立的模块[5]。整合调用不同的模块,使其协调合作的方法是MOOS和IvP的独特之处。MOOS-IvP作为一个开源平台、算法及软件基础模块、基础自动化、开发的新工具,都可以为公众使用。它的设计思想如图1所示。
  图1的结构中,MOOS-IvP以扇形的展开方式,使得由内及外层层递进,每个模块相互独立又协调统一,能够极大地提高工作效率,同时增强了系统的灵活性,对模块的改动调整更加方便。用户可以根据自身的需要,在原有的核心平台上搭建自己所需要的新模块或者新功能。软件的开源性,意味着软件拥有很大的包容性和可拓展性,对于应用层面而言,没有一个模块是一成不变的,人们可以根據自身的需要,对原有的程序模块做出修改,或者开发全新的模块,高效的代码重用和保护用户的个人隐私权利,这都是MOOS-IvP的设计目标之一[6]。
  作为一个开源的系统,MOOS-IvP最大的优势之一就是代码的重用性。代码重用的优点:贡献的多样性、更低价的成本、更高的表现能力以及更高的可靠性。此优势将帮助系统保持自身的优越性,能够汲取群众的智慧,每多一位使用者,就多了一份力量,保持不断的更新与进步,这是非常难能可贵的。   1.1 后座驾驶员理论
  后座驾驶员设计思想的关键在于分离航行器的控制与自动化的部分。航行器控制系统和自主系统分别运行在不同的独立的计算机上。结构如图2所示。
  航行器从主电脑接收航行器位置和航线信息流,从载荷计算机获取方向、深度、速度等数据流。自主系统提供前进方向、速度及深度等命令给航行器控制系统,控制系统执行控制并传递航行信息给自主系统。在载荷计算机上的自主系统由一系列独立的程序通过MOOSDB交互而成[7]。其中的一个重要程序是航行器主电脑的接口程序,另一个是IvP Helm中执行以行为为基准的自主系统。此处描述了各系统之间的关系,以及信息的流向。后驾驶员模型的设计,确保了控制系统与自主系统的分离,使得运算速度得到了保障,对航行器的控制也更加高效。
  1.2 发布-订阅型设计
  发布-订阅型中间软件的设计是指MOOS提供了一个中间软件的功能,依据发布-订阅的模型和协议处理数据间的传输和转换。每一个进程之间的交流都是通过一个拓扑结构的单一数据库处理方式。一个特殊进程的接口取决于该进程产生和调用的信息。每一条信息都是一个简单的变量值对,例如,MOOS信息条会存储原始二进制数据来传递照片。一个MOOS社区是一系列的MOOS应用程序,运行在一个单独的机器上,每个程序都有唯一的ID。它们之间可以通过网络相互传递信息。
  1.3 基于行为的自主性设计
  基于行为的控制设计理论是IvP Helm的核心设计思想。IvP Helm的运行类似于一个MOOS应用程序,它使用行为基础架构来实现自动化。行为是一种独特的软件模型,它被称为独立的小型专业系统,服务于整个自动化系统的特殊模块中。用户可以为一些特殊的任务设置helm,实现和每个行为之间的接口配置。这些配置通常包含特殊信息,例如一系列确切的坐标点、搜索区域、速度等。它也会包含一些特殊的状态空间,用于决定哪些行为在什么样的位置执行,以及如何传输的问题。当多重行为被执行并对航行器的控制产生竞争时,IvP的求解器(IvP solver)会协调各行为,并保证命令被正常执行[8]。结构如图3所示。
  函数的建立和设置是在helm每次执行迭代时完成的,通常是每秒1~4次,只有一些行为子集是依据航行器的情况随时执行的,并且由用户提供它们的状态空间配置。求解器在运行时会通过每个行为定义在航行器上的判定空间询问目标函数。在IvP Helm中,目标函数是一个明确的类型,定义为线性分布,并成为IvP方法。Solver利用这一构想找到最快的办法来解决最急迫的问题,这些问题是由大量的运行中的函数产生的。
  2 MOOS概述
  MOOS通常被描述为自律性中间设备,它整合一系列的终端应用程序,作为它们的中转站,像胶水一般将它们联系在一起,成为一个整体,IvP Helm就是其中的一部分。MOOS不需要任何第三方库,是跨平台独立的且无依赖性。每一个应用程序都会继承MOOS提供的一个基本接口,此接口提供了一个强大的易于使用的通讯设备来保持与其他应用的交流,同时控制那些应用程序执行它们主要函数设置的相对频数。MOOS是一个星型拓扑结构,应用程序内的MOOS社区连接着一个位于软件核心处的单独的MOOS数据库[9]。这个网络有以下特点:(1)不对等交流;(2)客户端和服务端之间的交流起始于客户端;(3)每个客户端都有一个唯一的名字;(4)客户端之间不知晓彼此的存在;(5)客户端只能通过向MOOSDB发送数据来达到彼此的沟通;(6)星型网络能够连通任意数量的机器,运行在任意可支持的操作系统群组上;(7)数据能够用很小的字节包或者是任意的大型二进制包来传输。MOOS的应用程序接口允许客户端与MOOSDB之间进行数据传输,这意味着数据依赖于客户端的类型,数据类型不受MOOS限制。传输的数据包通常包含数据名称、字符串值、浮点值、来源(客户端名称)、补充信息、数据发布时间、数据类型、发送格式、社区来源等信息。
  每一个MOOS应用程序都是一个客户端,都连接在MOOSDB上。这个连接是由客户端建立的,客户端通过一个螺纹机械建立与MOOSDB的交流。这样就完全隐去了交流中的复杂、艰深部分,同时提供了一个小巧简易的方法来处理数据传输。客户端能够发布信息(带有名字的数据)、注册信息、阅读信息(收集带名数据信息)。通知的发布是成对的(变量和值),这构成了一个MOOS信息的核心部分。通知是实时更新的,当信息传递给MOOSDB后,将被传输给其他有需求的客户端。
  MOOS提供了一个基类,叫作CMOOSApp,在CMOOSApp类中有一个循环,通常称为迭代方法Iterate(),默认是不执行的[10]。一个新的MOOS应用程序的工作之一就是构建迭代方法,让应用程序完成人们想要的工作。除此之外,CMOOSApp中所有的循环也会检查新数据是否传送给应用程序。如果有新数据被传过来,另外一个方法——OnNewMail()会被调用,该方法会处理新接收的数据。3个虚拟函数的结构与调用顺序如图4所示。
  在一个新的派生类中通过重写CMOOSApp中的Iterate()方法,作者创建了一个函数用来管理应用程序要执行的任务。
  在Iterate()被调用之前,CMOOSApp的基类决定新邮件是否发送。如果新邮件在等待,CMOOSApp的基类调用OnNewMail()虛函数。传输过来的邮件是以CMOOSMsg对象列表的形式送达的。这个结构允许在一个客户端传递数据和所有需要数据的群体接收处理信息之间用非常短的响应时间。OnStartUp()函数仅仅在应用程序进入自身的循环描述之前被调用[11]。该方法帮助应用程序在此处完成代码的初始化,另一个重要功能是读取一个文件中的配置参数。MOOS的各项配置参数都存储在一个后缀名为moos的配置文件中。
  3 IvP helm   IvP是interval programming的缩写,这是一种用于描述和解决多目标最优化问题的技术,能够很好地解决多航行器的合作与竞争问题。IvP helm作为MOOS的一个模块被执行,称为pHelmIvP。Helm可以看作是MOOS的一个应用程序,表面上看来它与MOOS的其他应用程序一样,作为一个单独的程序连接着一个运行的MOOSDB进程,接口只有一个发布-订阅接口,结构如图5所示。
  Helm首先发布一段固定的信息流来启动平台,特别是包含所需的方向、速度、深度的信息,也可能发布信息来传输自主性方面的内容,这对监视、纠错、触发不论运行在Helm还是其他MOOS进程中的算法很有帮助[12]。Helm能够用于在几乎任何用户定义的决策空间上生成决策。它有两个配置文件—— mission文件和behavior文件。传入Helm的信息流包括传感器信息、命令和控制输入的信息。Helm则发出命令操控航行器。
  Helm接收传感器信息或者其他信息时都需要做出判定。这些信息包括关于平台近期的位置和航行轨迹的航行信息,以及关于航行器的位置、状态或环境的信息,接收的信息是由行为本身来描述的,配置在后缀为bhv的文件中。除了接收传感器信息之外,还接收一些级别的命令和控制信息。Helm有一对高级别、高信息量的状态描述称为Helm state和all-stop status。为方便理解,此处将Helm与汽车的驾驶情况做出类比,如图6所示。
  Helm中最高等级的接口体现在Helm state中。在上文中提到的Helm state在drive模型中有两个值park和drive。在park模式下,Helm处于等待状态,然后等待一个契机回到drive状态。在学习MOOS-IvP时,你会详细学习整个状态的转换机制、初始化方式等内容,从而能够对Helm state有更全面的了解。
  Helm中的all-stop事件是指由于某些情况引起的航行器完全停止运作的状态,包括速度停止为零和深度为零的状态[13]。All-stop的状态仅用一小段字符串来描述航行器停止运行的原因。All-stop状态的消息能用来分辨航行器是处于哪种的情况之下。Helm能够通过命令行直接运行,或者通过Antler运行。如果在.moss文件中没有指定behavior文件,那么behavior文件必须在命令行中指明。
  IvP Helm就像其他MOOS进程一样,可以根据与MOOSDB的接口来指定某些行为,例如输出哪些变量,接收哪些变量。在这里,当Helm是由行为组成并且包含任意数量的第三方行为时,想提供一个完全的规范是不可能的。每个行为都可以传输一个变量值对,在循环的最后通过Helm代表behavior发送给MOOSDB。同样的,每一个behavior都可以向Helm声明任意数量的MOOS变量,根据behavior自身的需要由Helm注册给它。
  4 结语
  MOOS-IvP作为一个高自动化、全新的、开源的水上航行器操控系统,在发展空间以及创新领域上拥有无法忽视的潜能。目前,该系统已经投入实践中,并取得了很好的实验成果,未来将为海上无人航行器以及水下滑翔机探索海洋资源,科考活动提供了强有力的支撑。MOOS-IvP自身模块化和分布式的设计理念,颠覆了传统的整体冗杂的设计思想,合理分配各个功能模块,行为合作更加便捷,实现了更高程度的自动化以及多航行器的协调配合。随着MOOS-IvP的发展,在未来的航行器領域,将为科研提供巨大的助力。
  参考文献
  [1]Mike Benjamin,Henrik Schmidt,John J. Leonard.MOOS-IvPDocumention[EB/OL].http://www.moos-ivp.org.
  [2]Michael R.Benjamin,Paul M.Newman, HenrikSchmidt,et al.An Overview of MOOS-IvP and a Brief Users Guide to the IvP Helm Autonomy Software[J].Computer Science and Artificial Intelligence Laboratory,2009(28):39-64.
  [3]Paul M.Newman.MOOS-A Mission Oriented Operating Suite[J].MIT Department of Ocean Engineering,2003(7):15-41.
  [4]Michael R.Benjamin.The Interval Programming Model for Multi-Objective Decision Making[J].Computer Science and Artificial Intelligence Laboratory,2004(21):35-50.
  [5]Michael R.Benjamin,Paul M.Newman,Henrik Schmidt,et al.Leonard.A Tour of MOOS-IvP Autonomy Software Modules[J].Computer Science and Artificial Intelligence Laboratory,2009(6):18-30.
  [6]Michael R.Benjamin.MOOS-IvP Autonomy Tools Users Manual[J].MIT Computer Science and Artificial Intelligence Lab.,2008(65):2-11.
  [7]Andrew A.Bennet,John J.Leonard.A Behavior-Based Approach to Adaptive Feature Detectionand Following with Autonomous Underwater Vehicles[J].IEEE Journal of Oceanic Engineering,2000,25(2):213-226.   [8]Marc Carreras,J Batlle,Pere Ridao.Reactive Control of an AUV Using Motor Schemas[J].InInternational Conference on Quality Control,Automation and Robotics,ClujNapoca, Rumania,2000(5):5-21.
  [9]Stefan B.Williams,Paul Newman, GaminiDissanayake,et al.A decoupled, distributed AUV control architecture[C]//In Proceedings of 31st International Symposium onRobotics.2000:246-251.
  [10]Michael R.Benjamin,Paul Newman,Henrik Schmidt,et al.An Overview of MOOS-IvP and a UsersGuide to the IvP Helm Autonomy Software[J].Computer Science and Artificial Intelligence Laboratory,2010(4):123-189.
  [11]Michael R.Benjamin,Paul M.Newman, Henrik Schmidt,et al.A Tour of MOOS-IvP AutonomySoftware Modules[J].MIT Computer Science and Artificial Intelligence Lab,2009(6):1-23.
  [12]Michael R.Benjamin,Paul M.Newman, Henrik Schmidt,et al.Extending MOOS-IvP andUsers Guide to the IvPBuild Toolbox[J].MIT Computer Science andArtificial Intelligence Lab.,2009(37):14-35.
  [13]JukkaRiekki.Reactive Task Execution of a Mobile Robot[D].Oulu University,1999.
其他文献
基于Android手机平台,提出了一种工商移动监管系统的解决方案。该方案主要结合了Openmobster云平台、JBoss服务器和Android手机平台,通过WiFi或3G网络,使外出执法人员通过移动终
为了找出甜瓜枯萎病拮抗菌F1的最佳发酵条件,应用Plackett-Burman设计试验确定无机盐含量、温度、豆饼粉含量是影响F1菌株有效活菌数的主要影响因子。经最陡爬坡实验、响应面
以85个单片段代换系为材料,其受体亲本为广陆矮4号,供体亲本为日本晴。通过单因素方差分析和Dunnett's多重比较,分析单片段代换系与受体亲本之间穗粒数的差异,对代换片段上的
摘 要:论文从实用角度出发,通过安全态势感知系统发现安全事件的脉络,并对其溯源;提供网络攻击的发展趋势信息;并且辅助决策优先处理网络中的薄弱环节,加固硬件防护,保障客户的业务连续性。  关键字:安全态势感知;关联分析;数据挖掘;  中图分类号:TP393.08 文献标识码:A 文章编号:1674-098X(2016)5(c)-0000-00  0引言  随着计算机与通信技术的飞速发展,用户需求日益
摘 要:质量检测指的是对给定的材料、产品、设备、工艺等按照规定确定其某些特性,包括工程质量检测、空气质量检测等。随着经济发展,商品安全问题、空气质量、居住环境安全越来越受到广大普通群体的关注。各种质量检测实验室的工作涉及面和工作量也比以往要多出3倍以上。由于工作量增大,传统的人工管理样品方法已经远不能适应现实的发展。管理系统在质量检测中的运用,将不仅会提高实验室的工作效率,而且也会提高质量检测数据
为探讨冬季日光温室土壤温度对作物水分吸收、保护酶、渗透调节物质以及质膜透性的影响,以辣椒品种长金、迅驰37-74和运驰37-82为研究试材,对20-22,14-16,10-12℃3个温度处理
摘 要:巧妙地与应用交互设计更便于操作以及使用智能产品,与此同时,能够让消费者在运用时产生愉悦之感,这是因为,致力于发掘以及了解目标消费群体的期望以及需求,并在此基础上使消费群体使用需求得以满足就是核心的交互设计理念。而在新的时代背景下,人们有了越来越高的智能家电产品的功能需求,也越来越关注智能家电产品交互设计原理的运用。基于此,本文对此进行了相关的研究,希望能给相关的研究者提供一定的参考依据。 
摘 要:文章主要研究了公安有限通信网络的构建措施。该文首先从公安有线通信网络存在的问题出发,对有线通信过程中的各项内容进行分析;其次,在上述基础上结合经验,提出了公安有线通信网络的改造任务,对改造过程中的注意事项进行研究;最后,对技术选型进行深化,望在一定程度上改善公安有线通信效益。  关键词:公安 有线通信 问题 改造  中图分类号:TN91 文献标识码:A 文章编号:1674-098X(201
探讨小花棘豆黄酮对绵羊瘤胃微生物数量的影响,为小花棘豆的综合利用提供参考。将12只和田羊随机分为4组,即对照组、试验Ⅰ组、试验Ⅱ组和试验Ⅲ组。试验组分别按10,30,50 mg
DOI:10.16660/j.cnki.1674-098X.2016.18.063  摘 要:目的 薄层层析法和高效液相法两种分离方法在雨生红球藻中提取所得到的总类胡萝卜素来进行检测。方法 通过TLC法检测虾青素成分,通过HPLC法C18柱对虾青素中的各组分进行了准确分析和鉴定。结果 TLC检测虾青素成分发现,由于正己烷与丙酮的比例不同,会对细胞内的胡萝卜素薄层层析效果产生很大影响;展开时间10