APP下载

仿生机器鱼监控系统设计与实现

2018-05-22董慧芳汪明张燕鲁李旭张仁昊

山东建筑大学学报 2018年2期
关键词:游动通信协议串口

董慧芳,汪明,张燕鲁,李旭,张仁昊

(山东建筑大学信息与电气工程学院,山东济南250101)

0 引言

随着人类生活品质和需求的不断提升,资源问题变得日益严重,陆地资源的不断减少,使得拥有丰富资源的海洋世界成为新的宠儿,研究各种水下机器人成为科研主流。仿鱼类的水下机器人(即仿生机器鱼)就是水下潜航器的一种。自然界中的鱼类,经过百万年的进化,对水域环境达到了完美的适应,拥有了卓越的游动技巧,在机动性和效率上是人造推进器所无法比拟的[1-2]。仿生机器鱼作为一种新型水下推进器,具有广阔的潜在应用前景。在狭小的作业空间内、复杂的工作环境中,高机动性、高灵活性的仿生机器鱼是高效完成危险复杂任务的可靠方案[3-4]。基于此,人们对仿生机器鱼的研究也越来越多,仿生机器鱼的功能也越来越完善[5]。

国内外对仿生机器鱼的研究方兴未艾。国外的研究以美国和日本为主,美国麻省理工学院(MIT)在1994年研制出世界上第一条真正意义上的仿生机器鱼 Robo Tuna[6],之后对其进行改良,研制出Pike、VCUUV等系列具有高速度、高自主性能的机器鱼[7];日本国家海洋研究中心(NMRI)研制出了许多不同功能的机器鱼,如PF系列机器鱼具有高速度和高加速性等特点[8]。国内研究中,北京航空航天大学研制的SPC-II仿生机器鱼可以用于水质监测[9];中国科学院自动化所研制出了鲹科模型的“游龙”系列机器鱼[10],并用其做了大量的控制实验,取得了很好的研究成果;哈尔滨工程大学开发的微型机器鱼具有远程控制功能;北京大学制造出了三关节机器鱼[11]。这些研究工作的实现使得仿生机器鱼在实际水域中的作用越来越大[12]。

为实现仿生机器鱼在更多领域的应用,能实时传输机器鱼监测到的信息,监控系统的研究是基础,但监控系统的实现具有很大挑战性。仿生机器鱼由于工作环境的特殊性,使其不能像陆地机器人那样快速高效地通信,而在水下环境中可以使用的通信手段有限,这样导致仿生机器鱼和水面系统之间通信的困难[13]。如何解决仿生机器鱼水下通信问题是建立监控系统必须要解决的关键问题之一。为此,文章针对仿生机器鱼监控系统进行了探索,在系统的硬件、软件、无线通信以及人机交互界面等方面进行了设计与研发,并搭建了仿生机器鱼监控系统实验平台。在通信系统中采用了433 MHz的射频通信技术,RF433 MHz通信技术数据传输可靠性高,传输时功耗低,因此在机器人的通信当中得到广泛应用[14],对于在仿生机器鱼监控系统中,可以用于浅水区域的通信环境。

文章主要研究仿生机器鱼监控系统,目的是在监控系统的计算机上动态监控仿生机器鱼多模态游动状态,从而在此基础上,希望能更进一步研究仿生机器鱼运动形态和推进机理,提升仿生机器鱼的机动性和游动效率。文章设计了仿生机器鱼监控系统方案,并阐述了仿生机器鱼硬件结构,设计了监控计算机与仿生机器鱼之间的通信协议,开发了通信模块和监控系统计算机的人机交互软件;搭建了仿生机器鱼监控系统实验平台,实现了动态监控仿生机器鱼的直游、转弯、上浮、下潜等功能。

1 仿生机器鱼监控系统设计

1.1 系统硬件架构设计

为了动态监控仿生机器鱼,文章所设计的仿生机器鱼监控系统硬件主要包含监控计算机、无线收发模块、仿生机器鱼、水池、高清摄像头等。仿生机器鱼系统硬件结构如图1所示。

图1 系统硬件结构图

无线模块通过串口芯片与主机相连实现仿生机器鱼与监控计算机的通信,监控计算机发送指令时,无线模块以无线广播的方式将指令发送给机器鱼,通过STM32F407控制器处理后控制机器鱼运动,同时,机器鱼会根据不同的动作发送相应的返回值给监控计算机。高清摄像头通过USB接口线与监控计算机主机连接,当仿生机器鱼在运动时,定时将机器鱼游泳姿态传输到监控计算机中。

仿生机器鱼内部有控制器模块、无线收发模块以及各种传感器(陀螺仪、深度传感器)等模块,以下将详细介绍这几个模块的结构原理。

(1)控制器模块

为使仿生机器鱼具有更稳定的性能,发挥更大的作用,其控制器模块显得尤为重要。故选择工作频率高、运行速度快的 STM32F407单片机,其USART和SPI通信速度更快,具有更低的功耗[15],并集成了新的DSP和FPU指令,符合本设计对控制器的要求,运用STM32F407作为运动控制单元,负责运动控制的解算,获取多路舵机驱动的PWM信号,并且隔离了舵机运行时信号的干扰,保证了整个系统的稳定性[16]。

(2)无线收发模块

由于仿生机器鱼工作在复杂的水下环境,需采用穿透性强、稳定性较高的无线传输模块,文章研究的监控系统主要实现监控计算机与仿生机器鱼之间运动模式数据的传输,无线模块选择双向射频模块RF200,其用于高频范围的高性价比的RFID系统,在本设计方案中,RF200工作在433 MHz的频率上,数据传输速率为9600 b/s,使用433 MHz射频技术主要是考虑选用此频段通信较为稳定,不容易发生丢包现象,且 RF200输出为 TTL电平,直接通过USART接口与 STM32F407通信[17-19],通信方式简单。

RF433 MHz射频通信技术的通信距离与发射电压有关,在3~12 V内,发射电压越高其传输距离越远,最低传输距离为20~50 m,最大可传输700~800 m[20]。根据需求来调节通信距离的大小,在研究阶段,采用短距离即可达到通信要求。

(3)传感器模块

鉴于仿生机器鱼工作在复杂的水下环境中,功率消耗以及机器鱼的大小限制了微型控制器的处理能力。故采用低成本多传感器架构,使得机器鱼适应不同的环境。具体有陀螺仪,深度传感器,电流/电压传感器、红外传感器等,特别地,选择MPU6050作为陀螺仪部件,MPU6050为集成的六轴运动跟踪设备,其内部结合了3轴陀螺仪 +3轴加速度计[21],其具体原理如图2所示。

图2 MPU6050模块原理图

1.2 系统软件设计

系统软件设计主要包括:(1)监控计算机的开发,即发送控制指令以及接收陀螺仪返回值;(2)仿生机器鱼接收控制指令以及生成PWM波控制舵机运动。

监控计算机软件利用MFC(Microsoft Foundation Classes)编写,通过按键触发作用,输入相应按键生成控制指令,利用串口发送指令。机器鱼接收指令的软件设计通过C++实现,机器鱼内部控制器通过USART3接收监控计算机的控制指令,生成PWM波作用到舵机上使机器鱼产生相应的动作,同时USART2向监控计算机发送相应的返回值。监控计算机与仿生机器鱼之间通过串口进行通信,只需配置一个简单的通信协议,以及利用无线串口配置软件实现RF200模块与监控计算机对应串口参数的配置,运用到两个串口分别作为控制端和数据端。

1.3 系统的无线通信设计

1.3.1 无线通信协议

仿生机器鱼与监控计算机的通信是通过串口发送和接收命令,如前所提的通过USART3接收监控计算机发送的命令,通过USART2向监控计算机发送命令。USART的字符由起始位、数据位(8位或者9位)、停止位(1位或者2位)组成,监控计算机发送的控制指令含有4个字节。由于仿生机器鱼要实现多模态游动,如直游、上升、下降、左转弯、右转弯、翻滚等模式,为了使通信简单而高效,将仿生机器鱼的运动模式和运动速度设置成两种不同的通信协议格式。

在仿生机器鱼的多模态游动中,速度档位设置1~9档,由慢到快,每个档位的通信协议由4个字节组成,为了简便起见,设置帧头和帧尾以及机器鱼ID均相同,仿生机器鱼根据运动速度位区分不同的档位。运动速度数据帧组成的通信协议见表1。

表1 运动速度通信协议表

在仿生机器鱼的多模态游动中,每种游动模态的通信协议由4个字节组成,同样设置帧头和帧尾以及机器鱼ID均相同,仿生机器鱼根据运动模态位区分不同的游动模态。运动模式数据帧组成的通信协议见表2。

表2 运动模式通信协议表

1.3.2 无线通信控制软件流程

按照通信协议的格式,仿生机器鱼控制命令由运动模式和游动速度组成,监控计算机利用MFC中的PreTranslateMessage函数按键触发生成控制指令,GenerateCtrlCmd函数打包控制指令,通过串口发送。机器鱼中的控制器(STM32)利用 USART_IRQHandler函数接收监控计算机指令,控制舵机运动。同时,仿生机器鱼将返回值返回给监控计算机,利用OnRXChar函数解析仿生机器鱼传回来的数据,运动模式和运动速度的通信流程如图3所示。

图3 通信流程图

监控计算机控制指令的代码如下:

2 仿生机器鱼监控系统实现

对游动仿生机器鱼来说,监测计算机需要对其进行实时的动态监控,并接收机器鱼从水下监测到的各种信息,故开发了监控计算机人机交互界面。用VC++2010中的MFC语言设计了监控平台,主要实现以下功能:程序运行之后,会自动产生一个名为Dogfishcontrol的监控界面,如图 4所示。设置COME4和COME6分别作为数据端和控制端,打开串口进入控制模式,在命令区通过键盘输入命令,仿生机器鱼做出相应的动作。界面下方是一个根据机器鱼游动轨迹产生的曲线图,pitch叫做俯仰角,yaw叫做偏航角,roll叫做翻滚角,其分别围绕 x、y、z轴旋转,仿生机器鱼在执行不同的控制指令时曲线图中会产生不同的波形。

监控计算机接收仿生机器鱼返回值时,即接收陀螺仪数据时,根据通信协议,先分析帧头标志位,验证正确后接收数据位、结束位,若字节数已够,则解析陀螺仪数据。

图4 监控计算机人机交互界面图

监控计算机解析仿生机器鱼返回值数据的代码如下:

3 仿生机器鱼监控系统实验平台测试与结果分析

通过上述的设计与研发,在实验室搭建了由监控计算机、摄像头、通信模块、仿生机器鱼、水池等构成的仿生机器鱼监控系统实验平台。为验证监控系统,在实验平台上做了仿生机器鱼多模态游动实验。仿生机器鱼多模态节律运动采用中枢模式发生器CPG(Central Pattern Generator)控制,推进方式为 BCF(Body and Caudal Fin)方式,即由身体后部及尾鳍推进。仿生机器鱼CPG网络模型由式(1)表示为

式中:xi和yi分别为非线性振荡器的2个状态变量;ωi为第i个振荡器的固有震荡频率;Ai为第i个振荡器的固有振幅;aij和bik分别为链式弱耦合间的耦合系数,表示神经振荡元之间的激励和抑制作用。

此模型采用简单的链式拓扑结构,以最近相邻单元构建线性耦合,极大减少模型的参数数量,简化了系统的复杂度。其控制拓扑结构如图5所示,通过控制参数ω和A,可以直接控制振荡器的频率和振荡器的幅值,产生输出信号,经过控制器处理后输入到各关节驱动舵机,实现机器鱼的多模态控制。

图5 仿生机器鱼CPG网络拓扑结构图

在搭建好的实验平台上对仿生机器鱼监控系统进行测试。图6~9的(a)图分别为机器鱼在水池中静止、直游、左转弯及右转弯状态,在监控计算机上显示的波形分别对应图6~9的(b)图。

由图6~9中曲线可分析,当机器鱼静止时,曲线图由3条直线组成,如图6(b)所示;直游时,yaw曲线波动较大,即偏航角波动较大,机器鱼在向前游动的过程中,围绕y轴旋转,故体现在曲线图中是偏航角的变化较为明显,如图7(b)所示;当机器鱼执行转弯运动时,偏航角会达到较大值,左转和右转方向正好相反,如图8(b)和9(b)所示。

图6 静止模式下的实际游态及数据波形图

图7 向前直游模式下的实际游态及数据波形图

图8 向左转弯模式下的实际游态及数据波形图

图9 向右转弯模式下的实际游态及数据波形图

实验过程中监控计算机能够通过按键准确控制仿生机器鱼运动模态的切换,在不同运动模态下,通过在监控计算机上输入不同数字键,亦可实现机器鱼速度档位的切换,监控系统可实时记录机器鱼在游动过程中的波形变化。实验结果证明文章提出的仿生机器鱼监控系统能够完成机器鱼各模态运动的监控任务,可实现监控计算机与机器鱼的稳定通信,但也存在很多需下一步解决的问题,比如在进行模态和速度档位切换的瞬间,机器鱼动作稍微延迟,即通信速率没达到理想要求,丢包率虽小但也存在,以及实验在实验室内完成,通信距离体现不出优势,在下一步的研究工作中,会从这2个方面进行系统优化。

4 结论

仿生机器鱼监控系统的设计与实现是仿生机器鱼推广应用的首要环节。文章设计并实现了仿生机器鱼监控系统,搭建了实验平台,通过具体的实验结果可得出:

(1)仿生机器鱼根据监控计算机键盘上的输入命令做出了相应动作,同时监控系统界面上实时产生了机器鱼不同运动模态下的运动曲线。

(2)仿生机器鱼执行命令时向监控计算机实时发送反馈机器鱼当前运动状态的指令,实现了两者之间的无线通信协议。

(3)仿生机器鱼监控系统实现了仿生机器鱼与监控计算机两者间的稳定交换游动控制命令、游动模式、游动姿态等数据,形成了一个稳定可靠的数据传输系统,运行效果良好。

参考文献:

[1]孙飞虎,喻俊志,徐德.具有嵌入式视觉的仿生机器鱼头部的平稳性控制[J].机器人,2015,37(2):188-195.

[2]刘煦,林信桐.机器鱼运动控制模式的优化[J].科技视界,2016(15):141.

[3]Zhou C,Low K H.Design and locomotion control of a biomimetic underwater vehicle with fin propulsion[J]. IEEE/ASME Transactions on Mechatronics,2012,17(1):25-35.

[4]王进,蒋定立,邓欣,等.仿生学习的机器鱼运动模式分析[J].重庆大学学报,2015,38(6):138-146.

[5]Hu Y,Liang J,Wang T.Parameter synthesis of coupled nonlinear oscillators for CPG-based robotic locomotion[J].IEEE Transactions on Industrial Electronics,2014,61(11):6183-6191.

[6]梁建宏,王田苗,魏洪兴,等.水下仿生机器鱼的研究进展II—小型实验机器鱼的研制[J].机器人,2002,24(3):234-238.

[7]Barrett D S,Triantafyllou M S,Yue D K P,et al.Drag reduction in fish-like locomotion[J].Journal of Fluid Mechanics,1999,192(392):183-212.

[8]Yu J,Tan M,Chen J,et al.A survey on CPG-inspired control models and system implementation[J].IEEE Transactions on Neural Networks&Learning Systems,2017,25(3):441-456.

[9]Tan M.Dynamic modeling of a CPG-governed multijoint robotic fish[J].Advanced Robotics,2013,27(4):275-285.

[10]喻俊志,王硕,谭民.多仿生机器鱼控制与协调[J].机器人技术与应用,2003(3):27-35.

[11]汪明,喻俊志,谭民,等.机器海豚多模态游动CPG控制[J].自动化学报,2014(9):1933-1941.

[12]梁建宏,郑卫丰,文力,等.两关节仿生水下航行器SPC-Ⅲ的推进与机动性[J].机器人,2010,32(6):726-731,740.

[13]吴正兴,喻俊志,苏宗帅,等.仿生机器鱼S形起动的控制与实现[J].自动化学报,2013,39(11):1914-1922.

[14]葛阳.基于433MHz射频通信的智能家居系统研究与设计[D].成都:电子科技大学,2016.

[15]Yu J,Chen S,Wu Z,etal.On aminiature free-swimming robotic fish with multiple sensors[J].International Journal of Advanced Robotic Systems,2016,13:257-352.

[16]Yu J,Wu Z,Wang M,et al.CPG network optimization for a biomimetic robotic fish via PSO[J].IEEE Transactions on Neural Networks&Learning Systems,2016,27(9):1962-1968.

[17]勾慧兰,刘光超.基于STM32的最小系统及串口通信的实现[J].工业控制计算机,2012,25(9):26-28.

[18]尹舜,黄晓祥,谢光直,等.基于STM32无线通信系统的设计[J].信息通信,2015(8):179.

[19]罗斌.Visual C++编程技巧精选500例[M].北京:中国水利水电出版社,2005.

[20]葛阳,李大刚.智能家居433 MHz射频通信协议栈设计与网关实现[J].电信科学,2015,31(9):137-143.

[21]孙飞虎.基于嵌入式视觉的仿生机器鱼跟踪控制[D].北京:中国科学院大学,2015.

猜你喜欢

游动通信协议串口
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
球轴承用浪型保持架径向游动量的测量
浅谈AB PLC串口跟RFID传感器的通讯应用
基于Wireshark的列控中心以太网通信协议解析器的研究与实现
基于EM9000工控板高性能双串口通信模型设计与实现
把手放进袋子里
车载网络通信协议标准化问题研究
船舶电子设备串口数据的软件共享方法
电动汽车充电接口及通信协议新国标发布
父亲