王 坤, 冯静安, 王卫兵
(石河子大学 机械电器工程学院,新疆 石河子 832000)
随着科技的进步,人们越来越关注水下世界,特别是在能源和军事方面。由于人类身体自身条件的限制很难完成一些特定任务,但是鱼类可以很轻松地完成。经过上亿年的进化,鱼类有很多无法比拟的优点,例如高机动性、低噪音、高速性和水下隐蔽等,这些优点为人类在水下世界进行探索提供了一种新的思路。现今仿生机器鱼的研制已经成为热点问题[1],多个国家相继研制出了不同功能、不同机构的仿生机器鱼。美国麻省理工大学在1994年成功研制了世界第一条真正有意义的仿生机器鱼(仿生金枪鱼 Robotuna)[2]。随后,为了解决一些特定的问题出现了各种各样的仿生机器鱼。日本N.Kato设计了仿黑鲈的、依靠胸鳍波动实现推动的游动机器鱼,可实现前进、转向以及跟踪预定的轨迹[3]。美国西北大学M.Epstein等研究了依靠背鳍波动运动的裸背鳗科鱼类black Ghost knifefish,给出了长鳍波动推进装置的设计方案、运动机构的基本分析[4]。国内中国科学院自动化研究所针对具有机械胸鳍、能实现三维运动的单关节仿鰰科鱼的建模、控制以及多机器鱼的协调控制开展了一系列的研究工作[5]。华中理工大学开展了柔性尾鳍推进装置的实验与理论研究,初步探讨了尾鳍参数与推进效率之间的关系,并对鱼的尾部结构进行了水下实验以验证与尾部机构设计的可行性[6-7]。哈尔滨工业大学开展了仿机器章鱼和仿生金枪鱼的研究,建立了利用弹性组件提高驱动效率的实验平台[8]。北京航空航天大学也对仿生机器鱼做了研究,提出了“波动推进理论”及分析的方法,研制出来速度达到0.6m/s的仿生鳗鱼实验模型,之后又研制了“仿生机器海豚”,并在北京航空航天大学实验室进行了速度、功率参数的测定、鱼体流动显示实验和鱼体阻力测定实验,获得了鱼的摆动推进深层次机理[9]。中科院自动化所根据机器鱼的运动学模型,研究了仿生机器鱼的控制问题,开展了多仿生机器鱼的控制与协调研究,建成了多仿生机器鱼协调系统(Multiple Biomimetic RobotFish Coordinate System,简 称 MRFS)平台[10]。
计算机技术、自动化技术和材料技术的发展推动了仿生机器鱼技术水平的提升,通过对鱼体游动规律的观察和研究,结合运动学和动力学的发展,研究者提出了具有综合性能的仿生机器鱼,但是当前的仿生机器鱼主要要求能够实现以下功能:自动躲避障碍物、水下环境探测、信息交互能力、自动续航等。为了实现上述功能必须给机器鱼的机构进行全面的设计,给机器鱼配置多种传感器、CMOS摄像机、定位器等,使机器鱼能够通过传感器和摄像机采集的信息进行自主游动,实现仿生机器鱼的智能控制。本文主要是给鱼体制定了多种传感器、CMOS摄像头、GPS定位器,通过采集到的信息进行水下避障和探测,设计了机器鱼避障规则,提出了一种智能的避障控制方法,并进行实验验证。
传感器网络由GP2YOA21YK型号红外测距传感器、GPS定位器、CMOS摄像头组成。GP2YOA21YK传感器采用三角测量方法,被测物体的材质、环境温度以及测量时间都不会影响传感器的测量精度,测量的距离范围为10~100cm,因此采用型号为GP2YOA21YK红外测距传感器进行避障。红外测距传感器主要由红外发射头、红外接收头、红外发射电路、红外接收电路组成。其具体的工作原理如下:红外发射驱动电路驱动发射头的红外二极管发出红外光,当红外光遇到障碍物时被反射回来,反射回来的红外光由红外接收驱动电路驱动红外接收头的光敏二极管接收到,通过电压转换转换成可测量的电压值;因为红外光的强度会随着距离的缩小而增强,红外接收电路转化的电压值会随之增强,又因为电压与距离成比例,所以可以通过对电压的计算,得出机器鱼与障碍物之间的距离并发出信号。GPS定位器有非常强大的功能,在不同的场合都能实现定位功能,在机器人领域应用也非常普遍。在机器鱼遇到障碍物时,红外传感器会发出信号,这时GPS定位传感器可以通过红外测距传感器发出的信息得出障碍物的具体位置,与CMOS摄像头拍摄的机器鱼周围环境的画面一起传给上位机从而完成避障和探测的任务。
由于单个传感器的局限性,制定多传感器系统,可以得到机器鱼周围详尽的信息,在鱼体上分布了多种传感器和定位器:上部红外测距传感器UP、左部红外测距传感器LE、右部红外测距传感器RI、下部红外测距传感器DO、前部红外测距传感器FR、后部红外测距传感器RE和内部GPS定位器IN。这7种传感器能够探测到仿生机器鱼周围的上方、下部、左侧、右侧、后方的所有障碍物信息并且能够对这些障碍物进行定位。在安装这些不同传感器时要根据红外测距传感器的分辨率来确定,确保其之间没有相互干扰。机器鱼通过传感器反馈的信息,依据规定的运动规则实现自主游动,传感器在鱼体上的分布如图1所示。
图1 传感器网络
仿生机器鱼的结构主要由控制部分(主芯片控制系统、外围组建)、支撑部分(鱼骨架和鱼头)、通讯部分、驱动部分(舵机)、其他(塑料薄膜材质的防水鱼皮和电池)5个基本部分组成,其中防水采用机械密封进行防水。机器鱼鱼体的主要构成部分如图2所示,鱼头部位是整个机器鱼的核心部分,包括电路板、通讯模块CMOS摄像头等,如图3所示。
在控制模块中采用ARM微处理器S3C2440作为板载主芯片(三星公司产品资料《S3C24401》)。控制模块中舵机主要由微处理器控制,机器鱼通过微处理器控制产生PWM信号,控制各个舵机的转角,从而实现各个关节的协调摆动模仿鱼类的身体摆动。机器鱼的转弯主要靠改变各个关节的角度来实现。机器鱼的速度通过改变关节的摆动频率来控制。在机器鱼的一个游动周期内通过改变不同的偏移量,可以实现不同的转弯。仿生机器鱼的主要参数见表1所列。
图2 鱼 体
图3 鱼 头
表1 技术参数
基于对鱼类游动的观察以及考虑到水下世界的复杂性,给机器鱼定义10种基本运动:直行(STRAIGHT)、悬停(STATIC)、加速(QUICKEN)、减 速 (SLOW DOWN)、倒 行 (RETROACT)、左转弯(LEFT-TURN)、右转弯(TURNRIGHT)、上浮(RISE)、下潜(DESCEND)、平动(HORIZON)。
根据机器鱼在水下环境的复杂性,定义速度等级和转弯档次。速度分为7级,0级机器鱼悬停,7级时达到最大。转弯档次分为7档,左转3档,右转3档,4档为直行。通过设定的10种基本运动、速度等级、转弯档次的组合能够完成各种避障运动,例如加速逃跑、减速转弯、加速转弯、加速上浮等运动。直行:鱼身平直,机器鱼只靠尾鳍推进,尾鳍左右摆动的幅度一致,尾部的摆动中心在鱼体的中心线上;悬停:胸鳍直立(鱼体的综合密度为1);加速:机器鱼从较慢的速度快速转到高等级的速度;减速:机器鱼从高等级速度转到低等级速度;倒行:机器鱼在胸鳍推进直游时,胸鳍旋转180°;左转弯:给机器鱼的尾鳍逐步增大向左的偏移量,可以实现左转弯;右转弯:给机器鱼的尾鳍逐步增大向右的偏移量,可以实现右转弯;上浮:通过改变胸鳍的摆动角度实现机器鱼的上浮;下潜:通过改变胸鳍的摆动角度实现机器鱼的下潜;平动:当机器鱼的胸鳍保持平行时,机器鱼在水面上漂动为平动。
几种游动模式如图4所示。
图4 几种游动模式
在机器鱼的设计中还添加了几种转弯模式,文献[11-12]对尾鳍摆动的转弯模式进行了定义,主要为3种模式,结合这3种模式分别进行了实验。阐述如下:
(1)前进中转弯。当机器鱼在游动中给尾鳍逐步地增加几何偏移量可以使机器鱼在游动中以不同的速度进行转弯,是最基本的转弯模式。
(2)急转弯。当机器鱼在游动时,突然将尾部的几何偏移量加到最大可以使机器鱼的身体呈“C”状,然后实现大幅度急转弯。
(3)静止转弯。当机器鱼在静止的状态下,给尾鳍增加几何偏移量,这样可以使机器鱼在静止状态下实现转弯。
本文所采用的是产生式系统,产生式就是使用事实的逻辑值产生先决条件,然后得到满足这些条件所产生的结果,其形式就是if-then。把6个方向的传感器和10种基本运动相组合,再加上GPS定位器和CMOS摄像头设计了一种新的控制规则。规则库包括2个子库分别为机器鱼在横向和纵向的避障规则,见表2、表3所列。
表2 规则库1
表3 规则库2
从表2、表3可以得出,机器鱼的转弯和减速运动只与FR、LE、RI、RE 4个变量有关,而上升下潜和加速运动只与UP、DO 2个变量有关,所以在解决加速与减速时只需关注这几个变量即可。当规则库中的加速运动和减速运动相冲突时优先采用规则库1。
上面的规则库中设定了机器鱼游动路径与传感器之间的关系,定性地描述了机器鱼的游动规则,但没有定量地描述。推理机制就是对机器鱼的游动进行定量地描述,即机器鱼离障碍物多远时开始转弯、转弯等级、转弯速度等。
本文设计的推理机制就是根据机器鱼在水下探测到的信息推出相应的结论。首先读取机器鱼探测到的信息,根据探测的信息推出机器鱼的转弯等级、加速等级和转弯模式。
下面定义2个参数:碰撞危险度和上升下潜意愿强度[13]。当机器鱼探测到有障碍物便根据探测到的距离信息对危险碰撞度和上升下潜意愿度进行量化,量化规则见表4、表5所列。
表4 危险碰撞度
表5 上升下潜意愿度
定义速度等级为7级,0级时是静止的,速度从0~7级依次增加。4级直行,1、2、3级为减速,5、6、7级为加速。转弯等级为7级,中间档为4,左转弯为1、2、3,右转弯为5、6、7。从规则库中可以看出机器鱼的减速运动和转弯等级只与危险碰撞度有关,规定当机器鱼离障碍物越近(危险碰撞度越小)的时候转弯等级越大,速度越慢。机器鱼的加速运动只与上升下潜意愿度有关,离障碍物越远(上升下潜意愿度越大),速度越快。
根据设计的规则和方法设计了2组实验,即机器鱼在简单水环境下和在复杂水环境下进行的避障。
实验中的机器鱼集成了4个传感器和1个GPS定位器:前部、后部、左侧、右侧。实验的场景为一个长方形水池,障碍物为长方形小木块。
在简单水环境下进行避障,机器鱼先是探测到有障碍物并且探测到距离为45cm,减低速度向左游动,这时遇到池子边缘又进行转弯避过池子边缘。整个过程机器鱼先是避过障碍物之后又避过池子边缘都没有发生碰撞现象,而且游动速度平稳反应灵敏,如图5所示。
图5 简单环境下机器人避障路径
复杂情况下,当机器鱼探测到距第1个障碍物有80cm时执行减速转弯运动,之后开始直游,又探测到距第2个障碍物还有65cm时又开始执行减速转弯运动,在逃离障碍物后执行加速游动,直到远离障碍物,在整个过程中机器鱼游动较好,能够根据探测到的距离判别怎样转弯,并且能够定位障碍物的位置,探测水下的环境,如图6所示。
图6 复杂环境下机器人避障路径
这2组实验的结果表明,本文提出的控制方法是有效可行的,能够使机器鱼完成避障和探测的任务。
本文基于红外测距传感器和定位器设计了一种具有自主避障和探测功能的仿生机器鱼,设计了避障规则并进行了实验,实验结果表明这种方法的有效性。由于水下力学问题,机器鱼潜入水下的深度有限,只有60cm,并且红外测距传感器探测距离比较短而且探测范围比较窄,存在一些盲区,所以在以后的研究中可以对这些问题进行改进。
[1]钱朋安,荚济民.机器人运动学仿真教学软件研究 [J].合肥工业大学学报:自然科学版,2005,28(7):760-763.
[2]Triantafyllou MS,Triantafyllou G S.An efficient swimming machine[J].Scientific American,1995,272(3):64-70.
[3]Kato N.Control performance in the horizontal plane of a fish robot with mechanical pectoralfins[J].IEEE Journal of Oceanic Engineering,2000,25(1):121-129.
[4]王 凯.具有嵌入式视觉功能的机器鱼设计与控制[D].北京:中国科学院研究生院,2011.
[5]汪 明,喻俊志,王 硕,等.多关节仿生鱼推进机构的设计与实现 [J].中国造船,2005,46(1):22-28.
[6]向忠祥,张向明,刘令勋.尾鳍推进装置的研究 [J].武汉造船,1994,99(6):23-26.
[7]张向明,李玉江.水下柔性鱼形机构原理及单尾鳍板水运力试验研究 [J].海洋工程,2002,20(1):84-90.
[8]刘军考.仿鱼水下推进器理论与实验研究 [D].哈尔滨:哈尔滨工业大学,2001.
[9]梁建宏,王田苗,魏洪兴,等.水下仿生机器鱼的研究进展2:小型实验机器鱼的研制 [J].机器人,2002,24(3):234-238.
[10]喻俊志,陈尔奎,王 硕,等.一种多仿生机器鱼协作系统的设计与初步实现 [J].系统仿真学报,2002,14(10):1316-1320.
[11]Hirata K,Takimoto T,Tamura K.Study on turning performance of a fish robot[C]//First International SymposiuMon Aqua Bio-Mechanisms,2000:287-292.
[12]喻俊志.多仿生机器鱼控制与协调研究 [D].北京:中国科学院研究生院,2003.
[13]桑海泉,王 硕,谭 民,等.基于红外传感器的仿生机器鱼自主避障控制[J].系统仿真学报,2005,17(6):1400-1404.