唐鸿儒 奚家烽 沈天鹤 包加桐 刘其铭
摘要 为了降低水下机器人开发复杂度,增加机器人的适应性和开放性,基于ROS(机器人操作系统)研制了遥控水下机器人监控系统.首先简单介绍了遥控水下机器人监控系统的硬件结构,提出了基于ROS的遥控水下机器人监控系统软件框架,介绍了感知执行层、导航控制层和监视操作层的组成及作用,描述了运动控制节点、人机交互节点、姿态控制节点3个功能模块的设计方法.实验表明,基于ROS开发的水下机器人监控系统能很好地协调感知模块、运动控制模块和人机交互模块等各个节点的工作,具有开发周期短、扩展性较好等特点.
关键词 监控系统;遥控水下机器人;系统架构;机器人操作系统(ROS);传感与控制
中图分类号 TP242.3
文献标志码 A
0 引言
近年来,随着国家经济的快速发展,全国许多地方都建设了大型水电厂、泵站桥梁等水利工程设施.利用遥控水下机器人来完成水下建筑物巡检[1]、水质环境调查[2]、水下打捞作业[3]等任务,可以提高工作效率,保证作业人员的人身安全[4].
遥控水下机器人通常工作在非结构化的环境中,需要在操作人员的控制和监视下运行.不同研究机构所研制的水下机器人在结构、功能、设备接口方面不尽相同,硬件板卡不一致,使用各种不同的操作系统,导致大量的代码冗余,降低了整个系统的通用性和可扩展性[5].虽然非标准化的硬件和系统使得结构简单,但是这也导致了偏向实用化的小型水下机器人的软件开发周期较长、生产成本普遍较高,从而出现了目前水下机器人的使用和推广程度都还很低的情况[6].因此,如何降低水下机器人的制作成本、缩短系统的开发周期、提高水下机器人的通用性和扩展性依旧是亟待解决的问题.
MOOS是一种适用于自主式水下机器人平台的分布式控制体系结构.它是在2001年由麻省理工学院的Pual Newman设计提出的开源软件框架系统,具有模块化设计、分布式、星型拓扑结构等优点,因此被广泛应用于各类水下机器人的监控系统设计上[7].但是MOOS系统对于代码语言的支持性较低,安全性较差并且系统支持来源较少,开发周期相对更长.我们需要寻找更新功能更全面的系统来满足降低成本、缩短周期的问题.
ROS(Robot Operating System)作为软件开发平台,是一个专业服务于机器人的操作系统[8].由于其开源的特点,使用者可以在ROS的交流社区内共享丰富的资源,获取最前沿的机器人控制技术,同时ROS还能提供大量可应用于不同种类机器人的功能包,通过修改可复用的功能包来开发新功能,可以缩短开发时间、避免重复工作[9].目前,ROS已被广泛应用到许多机器人技术的研究开发中,如移动机器人地图构建和定位[10]、服务机器人自然语言理解识别[11]、无人机导航[12-13]等.
为此,基于ROS研制了一款可以遥控操作的水下机器人监控系统.该监控系统能够实时控制水下机器人各个方向的运动,可以实时采集和显示水下机器人所携带的加速度计、陀螺仪、深度计等传感器的数据,还可以利用水下摄像头反馈当前工作的水下环境等.最后,通过实验证明,这种基于ROS的遥控水下机器人监控系统可以解决设备通信不协调和代码复用等通用性较低的问题.
1 监控系统硬件结构
遥控水下机器人监控系统采用的硬件结构如图1所示,包括水面上的操作员控制器(OCU)和水下的水下机器人本体.水面部分的操作员控制器主要由操作员控制台和供电装置组成,操作员控制台负责控制水下机器人的运动以及接收水下机器人的传感器数据,供电装置负责给操作员控制台和水下机器人主体供电.水下机器人控制器包括主控制器、推进器模块、传感接口模块、图像采集与传输模块.利用微型工控机作为遥控水下机器人的主控制器,通过四芯网线利用TCP/IP协议接收岸上操作员控制器下达的控制指令,并对舱内各个设备进行任务分配.电源监测管理模块负责将电池组输出的电源分级处理后提供给各个部件,同时电源监测数据使用232串口方式提供给主控制器.推进器驱动模块由6个推进器驱动模块组成,它们分别对应6个推进器电机.推进器模块通过485串口方式从主控制器接收驱动命令,驱动电机正反转,控制电机的转速,控制水下机器人的上浮、下潜、前进、后退、转向等运动.传感器接口模块集成了包括陀螺仪、加速度计、深度计、温湿度传感器等多种传感器,该模块负责采集多种传感器数据,预处理采集的数据并发送给主控制器.传感器接口模块与主控制器之间采用232串口方式进行通信.图像采集与传输模块主要由图传设备和摄像头组成,摄像头拍摄到的画面通过VGA接口传输给图传设备,再由图传设备显示在操作员控制器的屏幕上.
2 监控系统软件结构
以水下机器人监控系统硬件体系结构为基础,提出了图2所示的基于ROS的遥控水下机器人监控系统软件框架,它从下而上分为感知执行层、导航控制层和监视操作层3个层次.
1)感知执行层能够感知水下机器人所处环境,测算水下机器人在水中运动时的姿态并且能够执行操作员发出的控制命令.它主要由信號采集处理模块和电机驱动控制模块构成.信号采集处理模块主要是采集各种传感器的信息,并进行一定程度的预处理;电机驱动控制模块根据上层规划任务生成的指令来对每个推进器进行转速和转向的控制,最终实现机器人的运动控制.
2)导航控制层是水下机器人能够具备自主能力的关键,由运行在主控制器上的ROS以及若干节点构成.其中运动控制节点是根据操作员命令、姿态控制节点或者自主导航节点的要求,控制水下机器人涡轮推进器工作的软件模块.人机交互节点是连接操作员控制器和主控制器的桥梁,负责两端的数据传输.姿态控制节点具有两个作用,一是接收来自环境感知节点收集并处理好的数据,并根据这些数据建立数学模型,确定机器人的航行姿态;二是利用解得的姿态,规划出对应的控制方案,并让机器人在无人状态下也能保持航姿的基本平稳.环境感知节点负责接收并处理加速度计、陀螺仪、温湿度传感器、深度计等传感器的数据.抓取控制节点负责控制机器人的机械臂活动.照明控制节点负责控制机器人的开关.自主导航节点负责根据操作员的需要,按照一定的规划自动控制水下机器人的导航行进.当前的环境触发不同行为,多种行为经过行为融合仲裁模块决策后,依靠设定的优先级选择出需要的反应动作.这种反应动作是在当前层中执行,不需要向上层传输和等待任务规划的过程,因此可以加快系统的响应速度.导航控制层的核心是ROS,它的实质是一个通信中间件,能够提供订阅发布的通信机制[14].其通信机制如下:Ros Master是ROS的调度中枢,可以看作一个服务器,其余的节点是发布者(tallker)或订阅者(listener),发布者和订阅者之间通过主题(topic)联系,当发布者就某个主题发布了消息(message)后,订阅该主题的订阅者便能收到这条消息,接着再根据自己定义的回调函数对消息进行下一步的处理,以完成相应的任务要求.
3)监视操作层处于系统的顶层,负责确定任务的目标,把握机器人的工作方向,还负责监测整个系统的运行状态,为操作人员的实时决策提供支持.监视操作层的主体是操作员控制器的远程操作界面,负责让操作人员实时监测和控制水下机器人.
2.1 运动控制节点
运动控制节点一方面订阅人机交互节点、自主导航节点和姿态控制节点等发布的机器人运动命令(topic),另一方面将命令中携带的消息转化成控制推进器驱动器所需的底层指令,通过启动多个推进器的不同組合来实现水下机器人在指定速度下多个自由度的运动.图3是运动控制节点在ROS中的节点关系.
图3中的“cmd_vel”和“cmd_att”是人机交互节点和姿态控制节点分别向运动控制节点发布的主题,“Twist”是主题所传递的消息类型,它包含了机器人运动的线速度和角速度的值,两个不同的主题都向运动控制节点发送同一个类型的消息,但彼此独立互不影响,可以在不同的状态下实现对机器人的运动或姿态的控制操作.
以订阅“cmd_vel”主题为例,图4是在运动控制节点中定义的回调函数流程.由于消息中包含的线速度和角速度数据都无法被直接使用,需要根据一定的数学关系转换成电机的转速,因此在知道电机转速之后还要根据驱动器的指令协议进行数据匹配,获得与电机转速相对应的驱动器指令数据.水下机器人推进器使用的驱动器采用了Modbus-RTU协议,最后通过RS485串口由运动控制节点将控制命令发送给推进器驱动器.
2.2 人机交互节点
操作员控制器运行在传统Windows环境下,水下机器人的主控制器运行在Linux环境下.采用基于TCP/IP协议的Socket方式进行通信,机器人本体搭载的主控制器作为服务器端,操作员控制器作为客户端.同时本文还制定了上下位机之间的数据通信协议,表1和表2分别是下行指令和上行数据的帧格式.
2.3 姿态控制节点
过程:首先利用环境感知节点从传感器接口模块发送的数据包接收后通过“rec_msg”主题发布给姿态控制节点,姿态控制节点根据数据包所加的标识符来截取所需部分的数据,并将这些有用的数据解析分类,接着进行滤波处理去除干扰杂项;然后根据选定的参考坐标系进行数学建模,得到数学模型后进行姿态分析判断,判断倾斜方向及角度等;最后根据倾斜情况来给出对应的反应行为.姿态分析得出航姿的同时也要通过发布“imu_msg”主题将消息传输给人机交互节点,实时地反馈给操作员监控端,以便随时监控运行状态并及时做出规划.当机器人在无人操作状态下会进入基于行为的工作模式,无需上层的任务规划,根据特定的状态给予特定的反应行为,直接通过“cmd_att”主题对运动控制节点发送调整姿态的信息,以达到快速自主平衡的要求.
3 实验
设计制作的遥控水下机器人和操作员控制器实物分别如图6和图7所示.为了验证ROS系统能够有效地实现运动控制和状态监测的功能,在一个面积5 m×6 m,深约1.5 m实验水池内进行运动控制实验.实验时,使用操作员控制器上的按钮和摇杆对机器人进行遥控,使机器人完成前进后退、上浮下潜、转向等动作,同时测试软件的使用效果,观察运动控制是否有效、水下图像是否清晰、运动姿态是否准确等.
经过测试,操作员控制器操作简单、显示直观,遥控机器人可以按照指定的控制命令进行运动,且操作员控制器端可以实时反馈当前机器人所处的水下环境、自身的倾斜姿态、舱内的环境参数等.图8是部分实验场景照片和实验时操作员控制器的监控画面.
4 结论
针对目前水下机器人的制作成本较高、系统的开发周期较长、系统通用性和硬件扩展性较差的问题,介绍了一种基于ROS的遥控水下机器人监控系统架构.实验证明利用该架构实现的遥控水下机器人监控系统能够让操作人员通过人机界面与水下机器人进行交互,实现控制机器人和监测水下环境的目标.通过ROS的使用提高了水下机器人监控系统的灵活性和适应性,统一了机器人内部各个模块的集成和使用,大大减少了系统开发过程中的重复性工作.同时,采用这种架构提高了功能拓展方面的便利性,为将来更深入的研究,如水下定位导航、水下目标识别跟踪、水下地图建立等功能的开发提供了基础条件.
参考文献
References
[1] 黄明泉.水下机器人ROV在海底管线检测中的应用[J].海洋地质前沿,2012(2):52-57
HUANG Mingquan.The application of remotely operated cehicle (ROV) in seabottom pipeline inspection[J].Marine Geology Frontiers,2012(2):52-57
[2] 栾坤祥,马秀冬.智能水下航行器对海洋重金属污染状况的检测研究[J].舰船科学技术,2017(16):187-189
LUAN Kunxiang,MA Xiudong.The intelligent underwater vehicle detects the status of heavy metal pollution in sea[J].Ship Science and Technology,2017(16):187-189
[3] 黄晓辰,张小俊,孙凌宇,等.核电站多功能水下打捞机器人系统研究[J].仪器仪表学报,2017,38(3):552-559
HUANG Xiaocheng,ZHANG Xiaojun,SUN Lingyu,et al.Research on the reactor multi-function robot for object salvaging underwater[J].Chinese Journal of Scientific Instrument,2017,38(3):552-559
[4] MiSkovic'N,Egi M,Nad D,et al.Human-robot interaction underwater:communication and safety requirements[C]∥2016 IEEE Third Underwater Communications and Networking Conference.Lerici,Italy:IEEE,2016
[5] Sun J,Zhang F,Wang G Q,et al.Discussion on the development trend of artificial intelligence robots in the internet of things[J].Technology and Economic Guide,2017,31:6-7
[6] Nowak B M,Ayhan Y,Derric A,et al.Design and analysis of hull configurations for a low-cost,autonomous underwater robot as an enabling technology for system of system applications[C]∥2008 IEEE International Conference on System of Systems Engineering.Singapore,Singapore:IEEE,2008:1-6
[7] 劉伦伦.MOOS-IvP理论概述及应用简析[J].科技创新导报,2016,13(13):83-87
LIU Lunlun.Brief analysis of MOOS-IvP theory and application[J].Science and Technology Innovation Herald,2016,13(13):83-87
[8] Quigley M,Conley K,Gerkey B P,et al.ROS:an open-source robot operating system[C]∥Icra Workshop on Open Source Software,2009
[9] Koubaa A.Robot operating system (ROS):the complete reference:volume 1[M].New York:Springer Publishing Company,Incorporated,2016
[10] Afanasyev I,Sagitov A,Magid E.ROS-based SLAM for a gazebo-simulated mobile robot in image-based 3D model of indoor environment[C]∥International Conference on Advanced Concepts for Intelligent Vision Systems,2015,9386:273-283
[11] Zaman S,Slany W.Smartphone-based online and offline speech recognition system for ROS-based robots[J].Information Technology & Control,2014,43(4):364-380
[12] Moon S T,Eom W,Gong H.Development of large-scale 3D map generation system for indoor autonomous navigation flight-work in progress[J].Procedia Engineering,2015,99:1132-1136
[13] Lakshmi K D,Vaithiyanathan V.Study of feature based Image registration algorithms for navigation of unmanned aerial vehicles[J].Indian Journal of Science & Technology,2015,8(22):387-394
[14] 陈金宝.ROS开源机器人控制基础[M].上海:上海交通大学出版社,2016
CHEN Jinbao.ROS open source robot control foundation[M].Shanghai:Shanghai Jiao Tong University Press,2016
Research and development of a monitor system for underwater
remote-operated vehicles based on ROS
TANG Hongru1 XI Jiafeng1 SHEN Tianhe1 BAO Jiatong1 LIU Qiming1
1 School of Hydraulic,Energy and Power Engineering,Yangzhou University,Yangzhou 225127
AbstractTo reduce the development complexity of underwater remote-operated vehicles and increase their adaptability and applications,a monitor system for underwater remote-operated vehicles based on ROS is developed.First,the hardware structure of the monitor system is introduced briefly.The software framework of the monitor system based on ROS is proposed.The compositions and functions of the perceptual execution,navigation control,and monitoring operation layers are introduced.The design of three functional modules,namely the motion control,human-robot interaction,and attitude control nodes,are described.Experiments show that the monitor system of the underwater remote-operated vehicle based on ROS can coordinate the work of each functional module.It is characterized by a short development cycle and good expansibility.
Key wordsmonitor system;underwater remote-operated vehicle;system framework;robot operating system;sense and control