Download PDF  
基于Arduino的小型浅水作业ROV研制
范涛1, 崔晓华1, 任福深1, 王克宽2, 胡庆1, 杨雨潇1     
1. 东北石油大学机械科学与工程学院;
2. 中国石油集团工程技术研究院有限公司
摘要: 针对小型ROV在近海平台等浅水环境顶流作业能力差和运动控制难的问题,研制开发了基于Arduino的小型浅水作业ROV精灵号,提出以Arduino mega 2560作为核心控制器的控制系统架构,同时采用小体积大推力推进器,提高ROV本体顶流作业能力。以Arduino为核心,进行上层指令系统和底层运动系统的搭建并通过串口通信方式建立上下系统通信。设计了浅水作业ROV的机械结构,建立了精灵号ROV的动力学模型,采用PID进行艏向运动控制,并进行了系统仿真。系统联调和水池试验结果表明了以Arduino为核心的精灵号浅水ROV控制系统设计的可行性,同时验证了推力矢量合成的实际效果。该ROV的研制对于其他微小便携式机器人,尤其是小型ROV的开发具有参考意义。
关键词: 浅水     近海平台     ROV     控制系统     Arduino    
Development of Mini-type ROV for Shallow Water Operation Based on Arduino
Fan Tao1, Cui Xiaohua1, Ren Fushen1, Wang Kekuan2, Hu Qing1, Yang Yuxiao1     
1. Machinery Science and Engineering College, Northeast Petroleum University;
2. CNPC Engineering Technology R & D Company Limited
Abstract: To address the problem of poor operation capability of heading flow and difficult motion control of mini-type ROVs in shallow water environment at offshore platform, the mini-type Elf ROV was researched and developed for shallow-water based on Arduino. The control system architecture was designed taking Arduino mega 2560 as the core controller. The small-volume high-thrust propellers were used to improve the ROV operation capability of heading flow. Taking Arduino as the core, the upper layer instruction system and the bottom layer motion system were set up, and the upper and lower system communication was established through serial communication. The mechanical structure of ROV for shallow water was designed, and the dynamic model of the Elf ROV was established. The PID was used to perform the heading motion control. The system simulation was also performed. The system joint debugging and pool test results showed the design of the shallow water ROV control system with the Arduino as the core is feasible. The actual effect of thrust vector composition was also verified. The development of this ROV could provide references for the development of other tiny portable robots, especially mini-type ROVs.
Key words: shallow water    offshore platform    ROV    control system    Arduino    

0 引言

水下机器人是人类认识、开发海洋的必要工具之一,也是一种必需的建设海洋强国、捍卫国家安全和实现可持续发展的技术手段[1]。根据其控制方式可分为有缆遥控水下机器人(ROV)和无缆自治水下机器人(AUV)2个大类[2]。ROV是具备视觉和感知系统,通过遥控进行动作、可使用机械手或其他设备辅助人类去完成水下作业任务的高度非线性的水下机电装置[3-4],具有灵敏性好、动力充足、作业深度大和环境适应性强等特点,被广泛应用于海洋勘探、海洋平台结构检查和船舶安全检测等作业[5]。在浅水水域应用的小型ROV成为近年来国内外研究的热点。目前国内外最先进的小型ROV有上海交通大学研制的JTR-31 ROV、英国Saab Seaeye公司的Falcon ROV、美国VideoRay LLC公司的VideoRay Deep Blue ROV以及意大利Nauyec公司的Perseo ROV等[6]

我国海洋石油工程发展到今天,废弃海洋平台水下结构物拆除、正在运行的海洋平台维护和维修以及海洋石油的勘探开发都需要水下机器人的支持,浅水水域的小型ROV应用前景广阔[7]。但是目前小型ROV还存在一些问题,一方面浅水水域的水流场复杂,水体流速较大;另一方面水下机器人体积小、质量轻,使得小型水下机器人在浅水水域的悬停和艏向角锁定等运动控制变得更加困难[8],螺旋桨推力不足导致其在水下容易出现意外的横倾、纵倾等现象,同时研制和开发体积小、兼容性高、模块化的控制系统是小型ROV的发展趋势。研制的基于Arduino 2560的近海平台小型作业ROV集成了小体积大推力的推进器,提高了顶流作业能力,其中Arduino Mega 2560是采用USB接口的核心电路板,具有16路模拟IO、54路数字输入输出,适合需要大量IO接口的设计[9]

1 ROV系统结构

图 1所示为精灵号ROV系统结构。该系统主要包括ROV的机械结构、高清摄像机、惯性测量单元、上层指令输入系统、以Arduino电路板为核心的底层运动控制系统、电子调速器、推进器、水下专用灯及供电电源等。

图 1 精灵号ROV系统结构 Fig.1 Structure of Elf ROV system

上层指令输入系统主要负责运动指令的输入和ROV在水下运动情况的监测,由LabView开发,硬件主要包括微型工控机和THRUSTMASTER手柄。

底层运动控制系统主要负责精灵号ROV的运动控制,由Arduino电路板、推进器、双向无刷电调和惯性测量单元等组成。惯性测量单元采用JY-901传感器,用于监测精灵号ROV的运动状态。

精灵号ROV在机械结构上主要包括框架、电子舱、电源舱、浮力材和推进器等,如图 2所示。精灵号ROV采用框架式设计,推进器、电子舱和电源舱等设备固定于载体框架上。

图 2 精灵号ROV机械结构 Fig.2 Mechanical structure of Elf ROV 1——浮力材;2——推进器;3——灯;4——聚丙烯框架;5——电子舱;6——电源舱。

精灵号ROV布置有6个推进器,顶部有2个推进器,控制水下机器人的升沉和横滚运动,水平面有4个推进器,采用矢量环形布置方案,控制水下机器人的前后左右平动和水平面旋转运动。

电源舱设计为方舱,设计水深100 m,材质为6061-T6铝合金。舱内电源模块将水面传输的220 VAC转换为24 VDC,通过密封用穿舱螺栓将供电线引出。电子舱设计为圆舱结构,主要由密封法兰、亚克力管体、亚克力舱盖、密封圈和空心螺栓等构成, 舱内置有摄像机、控制板Arduino mega 2560、电子调速器、继电器以及JY901等传感器。

推进器选用RCD-MI60推进器,其具有较大推力且体积较小,在尽量不增加ROV本体质量的情况下,提高ROV的抗流抗浪作业能力。

2 控制系统

精灵号浅水ROV控制系统在硬件结构上采用上层命令处理、底层运动控制的分层结构,如图 3所示。两者通过USB转485模块和TTL转RS485模块建立RS-485通信,上层主要由微型工控机和操作手柄及显示界面构成;底层是以Arduino mega 2560为核心的运动控制系统,Arduino电路板与TTL转485模块建立串口通信。

图 3 精灵号ROV控制系统结构 Fig.3 Structure of the Elf ROV control system

2.1 上下分层系统建立通信

采用LabVIEW开发上层控制系统,采用有线串口连接的方式实现以Arduino为核心的底层系统与LabVIEW的通信,在LabVIEW中利用VISA函数库进行串行通信编程,基本步骤包括:①利用VISA Configure Serial Port节点设定串口的端口号、波特率、停止位、校验位和数据位,串口速率默认为9 600 bit/s,精灵号ROV建立串口通信波特率设为9 600 bit/s;②利用VISA Read节点和VISA Write节点对串口进行读写;③关闭串口,停止所有读写操作,释放串口资源。

底层系统核心Arduino的数字接口引脚0用于接收(RX),引脚1用于发送(TX)。使用Serial库函数建立Arduino串口通信。使用Serial.begin函数用于设置串口波特率,和LabVIEW的VISA Configure Serial Port节点呼应,要求串口波特率设置相同,在精灵号ROV系统通信中波特率设置为9 600 bit/s;Serial.available函数用来判断串口是否接收到数据;Serial.read函数用于将串口数据读入,和LabVIEW的VISA Write节点对应;Serial.print函数用于从串口输出数据,数据为变量或字符串,和LabVIEW的VISA Read节点对应。通过USB转485模块和TTL转RS485模块在硬件上连接,从而总体上在上、下位机之间建立通信。

2.2 上层控制系统

水面控制台主要包括微型工控机和THRUSTMASTER手柄,使用LabVIEW的输入数据采集模块将手柄数据读出,将THRUSTMASTER手柄的摇杆和按键所产生的信息以数字的形式读到LabVIEW软件中进行处理,在此过程中使用到4个VI,分别为“查询输入设备”VI、“初始化操纵杆”VI、“输入设备采集”VI和“关闭输入设备”VI,将读取的各信息组成字节数组,转换为字符串后经串口通过485总线将指令传递给底层运动控制系统,同时底层系统将传感器数据通过总线传输到上位机界面。手柄指令读取并输出流程如图 4所示。上位机程序如图 5所示。

图 4 手柄指令读取流程图 Fig.4 Flow chart of handle command reading

图 5 上位机程序 Fig.5 Upper computer program

2.3 底层运动控制系统

以Arduino为核心的运动控制系统与上层系统之间采用RS485串口通信,运动控制系统接收来自上层指令系统的命令,并通过Arduino上搭载传感器采集到的信息,处理后驱动推进器,保持ROV在水下稳定运行,并按要求执行任务。

底层运动控制系统采用Arduino为主控制板,其具有54个数字I/O口,其中数字引脚0~13可提供PWM输出,16个模拟I/O口,4对串行数据通信口,支持USB接口和直流电源供电。Arduino通过输出PWM,并以电子调速器为驱动器驱动推进器运转。9轴姿态传感器JY-901和Arduino之间进行TTL串口通信;水深传感器测量分辨率为2 mm,提供高精度的24位压力和温度数字输出,与Arduino进行IIC通信。

Arduino的analogWrite(pin, value)函数,通过PWM的方式产生一个指定占空比的稳定方波,频率约为490 Hz。参数pin表示Arduino将输出PWM的引脚,精灵号ROV所采用的Arduino mega 2560,其PWM输出引脚为0 ~ 13;参数value表示PWM输出的占空比,其输出模拟值范围在0~255之间,对应占空比为0~100%[10]。通过map函数将上层系统传输的摇杆数据映射到0~255,从而实现上层指令对推进器的驱动,实现Arduino对ROV的运动控制。

精灵号ROV所采用电子调速器(ESC)脉宽范围在1~2 ms,中位为1.5 ms,且占空比与脉宽间存在正比关系,则理论上1~2 ms脉宽对应占空比为128~255,中位对应占空比为191,在对推进器的实际控制中,发现推进器启动不稳定,经分析在程序中加入中位延时后,可以对推进器进行准确控制,通过试验确定中位范围在181~187,在实际控制中将185作为中位值写入analogWrite函数。

3 动力学建模与系统仿真

根据水下机器人6自由度的运动方程[11-12],在只考虑水平面上的运动情况下,可以将与其相互垂直的平面间的运动耦合忽略,再考虑水下机器人的重心和运动坐标系的原点重合,则ROV水平面的运动方程可简化为:

(1)
(2)
(3)

式中:XY分别为力Fx轴和y轴对应的分量,N为力矩Mz轴对应的分量,Iz为对应z轴的转动惯量,m为质量,uv分别为原点速度在x轴和y轴上的投影,r为角速度在z轴上的分量。

为实现对ROV的艏向准确控制,建立合理准确的艏向运动数学模型,当只考虑ROV的艏向运动时,可以认为ROV处于水平状态,重力和浮力的影响可以忽略不计,推进器的推力可简化为:

(4)

式中:T为推力,ρ为海水密度,n为螺旋桨转速,D为螺旋桨直径,KT为螺旋桨推力系数。

可以假定ROV做艏向运动时,各推进器的推力大小相等,且产生的力矩方向一致,则水平面总的推力矩为:

(5)

式中:c为推进器推力对原点的力臂。

ROV所受的阻力产生的阻力矩可估算为:

(6)

式中:Nr为ROV转艏运动时的阻力系数,A为等效面积。

ROV艏向运动时还受到惯性力的作用,惯性力产生的力矩可以估算为:

(7)

式中:为附加质量[13]

将式(5)~式(7)代入到公式(3)中,可得ROV在水平面内做转艏运动的运动方程:

(8)

简化得:

(9)

式中:ψ为艏向角。

进行拉斯变换得到传递函数:

(10)

电机模型简化为一阶惯性环节,其传递函数为:

(11)

推进器的传递函数G(s)=C,其中:

(12)

根据实际测算、估计及查阅文献[12],确定部分参数的值:A=0.175 m2K=120,T=0.6 s,Iz=0.74 kg·m2Nr=0.25,=0.08Iz

则有:

(13)
(14)
(15)

将艏向闭环控制系统各个环节引入PID控制器后,构成完整的闭环控制系统,在Simulink环境下进行建模仿真,仿真结构框图如图 6所示。阶跃响应曲线如图 7所示。

图 6 Simulink仿真结构框图 Fig.6 Block diagram of Simulink simulation

图 7 阶跃响应曲线 Fig.7 Step response curve

图 7可见,当参数值设置合适时,系统响应时间较短,超调较低,延迟时间较短,能满足ROV艏向控制的要求。

4 样机与试验

精灵号ROV性能参数:尺寸460 mm×460 mm×380 mm,质量28 kg,工作深度100 m,最大功耗2 300 W,最大航速2.06 m/s,导航设备采用9轴姿态传感器。

为了检验精灵号ROV实际工作性能和控制系统运行状况,进行了室内水池试验,其中主要在定艏向运动时,检验水平面推力矢量合成实际情况与理论是否符合。试验分成2组,在控制端进行同样占空比赋值,测试单推进器推力和4推进器矢量合成推力。

由于精灵号ROV水平面的4个推进器为“面对背”45°矢量布置,其空间力和力矩计算式如下:

(16)

在定艏向运动时,忽略各推进器微小差别,故其前进的最大推力理论值为:

(17)

试验采用动态信号采集控制测试系统uTekAcqu采集试验拉力数据,进行单推力测试试验和推力矢量合成试验,uTekAcqu是针对uTekL电子(uTekL)的动态信号采集系统开发的一套Windows环境下专用采集软件

在实验室环境下进行了水池试验,试验原理如图 8所示。ROV在水中通过绳子经过滑轮将ROV在水中所产生拉力传递给拉力传感器。

图 8 试验原理 Fig.8 Test principle

通过uTekAcqu动态信号采集控制测试系统采集试验数据,结果如表 1所示。

表 1 试验数据 Table 1 Test data
占空比 总推力/N 单推力/N
187 0.0 0.0
193 9.5 3.9
199 26.9 11.0
205 50.3 22.5
211 79.8 36.5
217 107.5 46.0
223 138.5 66.5
229 151.2 67.0
235 154.9 67.3
241 156.9 67.5
247 157.1 67.5

给定相同控制信号,4推进器矢量合成推力和单推进器推力关系如图 9所示

图 9 矢量合成推力和单推进器推力关系图 Fig.9 Vector composition thrust relation with single thruster thrust

图 9中拟合直线斜率为2.254 6,即T=2.254 6T,和理论值T=2.83T相比略小,考虑到试验环境未能达到理想状态,存在各种误差,故试验基本验证矢量合成理论,初步验证了所研制ROV的工作性能。

5 结论

(1) 将Arduino和LabVIEW两者结合起来组成上、下位机系统,分工协作,实现了精灵号ROV的摇杆控制和深度、航向角、速度状态量的自动控制与监控。

(2) 以Arduino为控制核心,建立了机器人系统硬件及控制软件的接口,运用PID进行艏向运动闭环控制,控制系统能够稳定运行,对ROV本体推进器实现满意的控制效果。

(3) 进行了矢量合成推力试验,矢量合成推力与单推进器推力关系基本符合理论推算,检验了所研制精灵号ROV的可靠性。

参考文献
[1] 任福深, 杨雨潇, 王克宽, 等. ROV发展现状与其在海洋石油行业应用前景[J]. 石油矿场机械, 2017, 46(6): 6-11.
REN F S, YANG Y X, WANG K K, et al. Current situation and application prospect of ROV in marine petrole[J]. Oil Field Equipment, 2017, 46(6): 6-11.
[2] 王瑶, 徐鹏飞, 胡震. "海筝Ⅱ型"遥控自治水下机器人的运动控制研究[J]. 舰船电子工程, 2014, 34(3): 56-60.
WANG Y, XU P F, HU Z. Motion control of "SeaKite-Ⅱ"autonomous and remotely-operated vehicle[J]. Ship Electronic Engineering, 2014, 34(3): 56-60.
[3] ISHAQUE K, ABDULLAH S S, AYOB S M, et al. A simplified approach to design fuzzy logic controller for an underwater vehicle[J]. Ocean Engineering, , 38(2011): 271-284.
[4] 麻秋威. 教学型ROV的结构及控制系统研究[D]. 杭州: 浙江大学, 2016.
MA Q W. Structure and control system research of teaching ROV[D]. Hangzhou: Zhejiang University, 2016.
[5] 朱春磊, 徐鹏程, 王杰, 等. 新型船用水下安全检测机器人[J]. 兵工自动化, 2017, 12(36): 88-93.
ZHU C L, XU P C, WANG J, et al. New marine underwater security detection robot[J]. Ordnance Industry Automation, 2017, 12(36): 88-93.
[6] 路晓磊, 马龙, 张丽婷. 小型水下机器人ROV应用研究[J]. 海洋开发与管理, 2015, 6: 66-70.
LU X L, MA L, ZHANG L T. Application research of ROV for small underwater vehicle[J]. Ocean Development and Management, 2015, 6: 66-70.
[7] 刘和平. 浅水水下机器人设计与控制工程技术研究[D]. 上海: 上海大学, 2009.
LIU H P. The engineering study on technology of design and control of shallow underwater robot[D]. Shanghai: Shanghai University, 2009.
[8] 高延增. 超小型水下机器人关键性能提升技术研究[D]. 华南理工大学, 2010.
GAO Y Z. Key performance upgrading technology research for super-mini underwater vehicles[D]. Guangzhou: South China University of Technology, 2010.
[9] 汤凯, 刘洋, 续欣. Arduino程序设计指南[M]. 北京: 电子工业出版社, 2015.
TANG K, LIU Y, XU X. Arduino programming guide[M]. Beijing: Publishing House of Electronics Industry, 2015.
[10] 黄文恺, 伍冯洁, 陈虹. Arduino开发实战指南机器人卷[M]. 北京: 机械工业出版社, 2014.
HUANG W K, WU F J, CHEN H. Arduino development practice guide[M]. Beijing: China Machine PRESS, 2014.
[11] 杨新平. 遥控自治水下机器人控制技术研究[D]. 北京: 中国舰船研究院, 2012.
YANG X P. Control technology research of autonomous and remotely-operated vehicle[D]. Beijing: China Ship Research and Development Academy, 2012.
[12] 王宇鑫. "海螺一型"ROV控制系统结构与艏向控制技术研究[D]. 杭州: 浙江大学, 2012.
WANG Y X. Research on the control system structure and heading control technique of "Hello I"ROV[D]. Hangzhou: Zhejiang University, 2012.
[13] 翟宇毅. 超小型水下机器人的设计和控制[D]. 上海: 上海大学, 2007.
ZHAI Y Y. Design and control of subminiature underwater vehicle[D]. Shanghai: Shanghai University, 2007.

文章信息

范涛, 崔晓华, 任福深, 王克宽, 胡庆, 杨雨潇
Fan Tao, Cui Xiaohua, Ren Fushen, Wang Kekuan, Hu Qing, Yang Yuxiao
基于Arduino的小型浅水作业ROV研制
Development of Mini-type ROV for Shallow Water Operation Based on Arduino
石油机械, 2018, 46(8): 37-42
China Petroleum Machinery, 2018, 46(8): 37-42.
http://dx.doi.org/10.16082/j.cnki.issn.1001-4578.2018.08.006

文章历史

收稿日期: 2018-04-25

相关文章

工作空间