水中机器鱼大赛技术文档.doc

上传人:xin****828 文档编号:6662296 上传时间:2020-03-01 格式:DOC 页数:46 大小:53.21MB
返回 下载 相关 举报
水中机器鱼大赛技术文档.doc_第1页
第1页 / 共46页
水中机器鱼大赛技术文档.doc_第2页
第2页 / 共46页
水中机器鱼大赛技术文档.doc_第3页
第3页 / 共46页
点击查看更多>>
资源描述
参赛学校:某大学参赛队名:水中机器鱼队参赛项目:水中机器人全局视觉水球2VS2文档内容:摘要 本文章是参加2015年中国水中机器人大赛。本文描述了 软件功能介绍,硬件介绍,基本操作,策略编写,策略加载。引言今年来理工学院十分重视机器人比赛团队的建设,训练和参赛,并特地提供了实验室,给予了大量人力,物力和财力支持,以鼓励有兴趣的同学们投入到相关的学习和研究中。我队主要致力于机器智能的研究。在机器人的研究方面,着重于机器人编程软件及组装方面。在仿人形机器人中,我们队主要熟悉MURobot大平台(含小平台),摄像头驱动,CP210X驱动安装及应用,并用C+语言编写策略,使仿真鱼在水中完成各项任务。机器鱼的控制,相当于参照一条真正鱼的行动方式,需要“眼睛”来识别,需要“尾巴”来获得动力,需要一个“脑子”做决策。我们针对实体鱼来说明一下,“眼睛”就是我们鱼池上方的摄像头,动力就是鱼体内的舵机,决策的“脑子”就是我们的程序比赛规则如下:裁判鸣哨开球后,所有的机器鱼由各参赛队员手动启动。在裁判哨声前抢先启动的机器鱼将被警告,二次警告后将被移离比赛场地,不得再参加比赛。比赛分上下两个半场。在上半场开场时,A队机器鱼从靠近水球点出发,B队机器鱼从本方球门处出发,以体现开球优势;同理,在下半场开场时,B队机器鱼从靠近水球点出发,A队机器鱼从本方球门出发。若有一方进球后,则重新开球。被进球方的机器鱼从靠近水球点出发,进球方的机器鱼则从本方球门出发。机器鱼要求:机器鱼游动方向定义为长度,摆动方向定义为厚度,两者垂直方向定义为高度。头部长度:150-180mm头部高度:60-90mm头部厚度:30-50mm 尾部长度(不包括尾鳍):160-190mm,尾部高度厚度不得超过头部尾鳍长度:沿长度方向50-80mm,沿高度方向90-120mm胸鳍尾鳍材料:采用较硬塑料材料,不得用金属材料,以免比赛中刮坏尾部材料:尾部统一使用橡胶皮套机器鱼颜色为黑色,可以在机器鱼的尾鳍侧面粘贴学校的名称、标志或编号,以区别不同球队的机器鱼。每个机器鱼重量不得超过2kg;在不受挤压的情况下,机器鱼必须能够放进一个底面半径为75mm,高为450mm的圆筒里面。一、软硬件安装1.1水池的搭建比赛场地为长方形水池,包括两台比赛电脑、一个支架、两个个摄像头,两套球门、两个无线通信模块。水池内部矩形区域为最终的有效比赛场地,不包括水池壁及球门架两侧区域,有效比赛场地尺寸为2700 mm 2000 mm 300mm(长宽高)1.2MURobot控制平台安装在U盘“软件驱动”目录下选择“MURobot”安装文件,例如上图所示电脑系统为32位,在安装文件时选择32位安装包,双击打开。(32位安装包和64位安装包区别:32位安装包为X86,64位安装包为X64)。如下图打开32位“MURobot”安装文件,双击运行里面安装包,根据下图顺序进行安装。正常安装完成后桌面会出现三个快方式,此时MURobot控制平台安装完毕,如下图所示(如不能正常安装查阅附表1-001)二、软件功能介绍2. 1、串口介绍串行接口(Serialport)又称“串口”,主要用于串行式逐位数据传输。在全局视觉机器鱼上我们利用串口来进行数据交互。在使用全局鱼平台时,将无线发射模块(参考硬件篇)通过USB与电脑连接,就会出现对应串口的COM口。接下来介绍串口端口号的查找,鼠标右击桌面“计算机”图标,单机“属性”,出现计算机属性界面,单机打开左上角的设备管理器,按下图操作来找到串口端口号,此串口端口号是为使用大平台、小平台时打开串口号做准备的,在使用大平台、小平台时时会按照此端口号打开串口。2.2、大平台介绍大平台是对机器鱼所在环境进行分析处理另外处理程序代码与机器鱼互传指令实现人机交互的一个操作平台。双击桌面快捷方式,运行大平台,进入大平台主界面,如下图(1).通信参数设置通过大平台主界面的“通信参数设置”按键,单机打开,就可以进入通信时各参数设置,功能如下图所示(2).图像参数设置通过大平台主界面的“图像参数设置”按键,单机打开,可以对摄像头采集的图像。(3).目标识别控制通过大平台主界面的“目标识别”按键,单机打开,可对打开的原始图像(Original)中目标进行识别控制。选择鱼或球或环方法:点击要选鱼、球或环序号在原始图像上框选要选择的对象即可选择,按住0框选需取消对象即可取消选择。选择A队1-8号鱼的快捷键分别是:1、2、3、4、5、6、7、8;选择B队1-8号鱼的快捷键分别是:Q、W、E、R、T、Y、U、I;选择1-9号鱼的快捷键分别是:A、S、D、F、G、H、J、K、L;(4).原始图像控制通过大平台主界面的“原始图像”按键,单机打开,可以设置加载策略时使用的临时目标点或是障碍物。(5).前景图像通过大平台主界面的“前景图像”按键,单机打开,能显示捕捉的背景图像。(6).信息显示通过大平台主界面的“信息显示”按键,单机打开,能实时显示摄像头捕获信息。2.3.小平台介绍(1).小平台打开方式通过大平台主界面的“调试助手”按键,单机打开小平台。在U盘“软件驱动”目录下,按下图所示打开(2).基本控制通过基本控制可对机器鱼进行手动操控,连接检测等操作。(3).高级控制频率:单位时间内完成周期性变化的次数,单位赫兹(HZ)。通常在发射和接收频率相同的情况下进行信号传递、交互。本机器鱼发射模块和机器鱼都有6个一一对应的频率,当两者频率相同时可以进行通讯。ID:身份标识号码,也称为序列号或帐号,是某个体系中相对唯一的编码。在全局视觉机器鱼中,当发射模块和机器鱼频率相同时利用不同的ID来区分不同的鱼。在更改机器鱼时一定要辨清频率和ID之间的关系。(4).关节调直当打开鱼的开关鱼不能正常绷直的时候,需要用到“关节调直“功能。(5).参数设置当机器鱼游动效果不理想时,或在做科研时需通过“参数设置”修改一些参数。(6).模式设置对一条或多条编辑一些小命令,进行自动执行,可用于机器鱼检测或展示。 单机“模式设置”打开设置界面,保证机器鱼与小平台连接正常,如下图操作 每条鱼(每个ID)可以编辑10个不同时间段的动作指令。三、硬件体系结构3.1机器鱼机器鱼是多水下机器人平台的执行者,可以实时接收信息执行相应任务,也可以实时反馈信息给大平台或小平台。机器鱼在使用时注意避免与尖锐物品碰撞,不要使电池过放电。机器鱼在不使用时气孔打开,放在干燥荫凉的环境中,保证机器鱼电量在50%以上。下面是机器鱼实物与结构图。3.2无线发射模块大平台发出的指令通过无线模块传递给机器鱼,同时可以接收机器鱼反馈的信息通过串口传递给大平台或小平台。下图为发射模块和USB接口线1、 摄像头摄像头在工作时采集图像信息相当于一个传感器,可获得机器鱼的各种信息传递给大平台进行处理,来分析鱼的坐标,方向以及其他运动信息。下图是摄像头以及摄像头USB线四、基本操作4.1机器鱼开机和充电根据机器硬件介绍的开关位置拨动机器鱼开关(开关在鱼皮内部),开关有三个档位,当机器鱼不使用时将档位拨到中间档位,开关偏向鱼身左方或右方时可进行开启或充电(具体档位根据机器鱼而定,如果偏左是开启机器鱼那么另一方即是充电)。开机:拨动开关,机器鱼会稍微颤动一下,然后尾部呈绷直状态。(若不绷直请参考“烧写底层”操作,如果仍然无法解决请查阅附表1-003)充电:充电器有两个输出接头,红接口为正极,黑接口为负极。把开关拨至与机器鱼开机相反方向,根据机器鱼硬件介绍中俯视图,充电器正极接机器鱼正极,充电器负极接机器鱼负极。充电器自带充电保护功能,一般情况下充两个小时就能充满。(如果充不上电或不能充电,查阅附表1-004)4.2小平台连接机器鱼 通过USB与发射模块连接后,通过大平台或直接打开小平台两种方式打开小平台,选定对应的com端口,并打开串口(串口号通过以上步骤已知道是COM3) 打开机器鱼,当机器鱼绷直时,则表明机器鱼已开启。观看小平台接收区有没有数据显示(连接成功如下图)。当无数据时表示通讯模块发射频率和机器鱼的接收频率不配套,这时我们需要通过高级控制更改通讯模块的频率来找到机器鱼的频率(详见“更改频率和ID”)。 根据小平台介绍的功能来对机器鱼进行操作。以下是用键盘进行手动操作。速度键位:数字区19为速度19挡,键盘区05为速度1015挡(注:1最小,15最大) 方向键位:键盘区 YQ 为方向左键,小键盘区 为最大左转向。 键盘区 U 为方向右键,小键盘区 为最大右转向。直游键位:Z 停止键位:空格键4.3、更改频率和ID(1)修改无线发射模块频率当使用者不慎将机器鱼的频率弄混淆时导致机器鱼和上位机无法通信时,此时就要用到更改无线发射模块频率了。首先,将无线模块通过USB接口与电脑连接。打开小平,然后将发射模块上的J2排针跳帽,由右边移到左边启动内部工作模态如下图所示,完成后打开小平台“高级控制”,在“更改频率”按键左边,选择频率,单击“更改频率”,如果接收区出现一小段代码,说明更改完成,点击“返回当前频率”,将弹出对话框显示现在频率。此时再将跳帽恢复到右边启动外部工作模态就可以连接机器鱼了,如果连接不上,继续更改其他频率。4.4.修改机器鱼ID多条鱼使用一个频率上完成不同任务时,需要对机器鱼进行修改ID。当频率修改正常时,使用小平台连接机器鱼,小平台接收区有正常信号反馈,但使用小平台无法控制机器鱼,此时可以尝试调节小平台ID按下图操作一次一次尝试。在小平台中打开“高级控制”,再按下图操作更改鱼ID。4.5.修改机器鱼频率将小平台连接和鱼,小平台与鱼能正常通讯的情况下更改机器鱼频率。打开“高级控制”更改鱼的频率。点击“更改频率”后,重启机器鱼机器鱼的频率更改完成。4.6.对机器鱼烧写底层对机器鱼进行无线烧写需要用到超级终端,超级终端的版本有好多种,但用法都大同小异,下面选其中一种进行讲解。在烧写底层时发射模块频率要和机器鱼频率相同,所以使用机器鱼的时候要养成良好习惯,每次记录使用的鱼的频率。(1)、在U盘“超级终端”中选择“hypertrm”软件双击打开,如下图所示(2)、如果电脑第一次使用超级终端会出现下面界面内容,按图中所示操作(3)、点击确定后需要创建连接按下图操作(4)、完成以上操作,打开机器鱼,会出现如下界面(5)、关掉机器鱼,然后按住键盘按键“D”,同时打开机器鱼,会出现以下界面,界面中不断出现“C”。(6)、单机窗口中的“传送”键,进入发送界面,选择“发送文件”,按以下步骤操作。(7)、等待发送完毕,机器鱼出现绷直现象。此时先关闭机器鱼,然后关闭超级终端窗口,烧写底层完毕。五、机器鱼基本控制策略讲解5.1类函数的定义程序中变量都定义为C+语言中“类”的方式。至于什么是“类”,简单理解是定义的对象、变量包含同样的特性,作为一种形式提供给我们使用的一种函数类型,定义一种类需要进行实例化,说明类的具体内容,包含的参数,变量,对象是什么。更多的大家可以具体上网查,我们需要知道有这种东西,能用就行。它的基本形式是:Cpoint+变量名;通道临时目标点:指所控制的鱼在一定的区域范围内需要到达的位置。5.2最基本的定义变量说明1)程序的定义的最基本变量有四个:1、鱼中心坐标;2、球中心坐标;3、鱼头方向;4、球门中心坐标下面具体说明定义鱼中心坐标是:CPoint f_pt :f是fish的简写,pt表示坐标,f_pt是鱼的中心坐标,鱼中心坐标 f_pt。定义球的中心坐标是:CPoint b_pt :b是Ball的简写,pt是坐标,b_pt就是球的中心坐标。定义球门中心坐标是: CPoint g_pt :g是goal(球门)的简写,pt是坐标,所以g_pt代表球门坐标。定义鱼头方向是: double f_dir :f就是fish简写,dir是direction的简写,这是一个双精度的变量。绝对坐标系中范围是-,所以程序中鱼头方向的范围就是-,。大家或许有疑问,为什么鱼头方向是双精度的变量而其他的三个是类呢。因为其他三个都是包含这x和y坐标,也就是类包含相同的参数(对象),而鱼头方向没有包含这些,仅仅是一个-,的变化范围。2)基本变量在程序中的获取我们定义了最基本的四个变量,那么程序中是怎么获得的呢,我们下面来说明。针对三个类(鱼中心坐标,球中心坐标,球门中心坐标),我们大平台已经写好对这些这些类的定义和例化函数,具体我们不需要了解。获取的函数也已经写好,就是简单的调用一个函数就行。具体程序是对鱼中心坐标的获取 f_pt=m_FishInfo0.GetCenterPt() ;m_FishInfo0.GetCenterPt()是一个类函数,不需要具体了解函数具体内容,只需要记住其实现的功能。功能是获取鱼的中心坐标。m_FishInfo0m_是标识作用,fish代表“鱼”,info代表“输入”数字数字代表鱼的编号这个获取的是0号鱼的,GetCenterPt() 代表获得中心坐标。那么2 vs 2 程序获取0号是:f_pt0=m_FishInfo0.GetCenterPt() ; 程序获取1号是;f_pt1=m_FishInfo1.GetCenterPt() ;对球中心坐标的获取是: b_pt=m_goalinfo.GetBallPt();m_goalinfo.GetBallPt()是一个类函数,功能是获得球中心坐标m_goalinfo0同时在2013的新平台上也需要输入鱼的编号m_ 是标识作用,goal代表球门,info是“输入”,GetBallPt() 代表球中心坐标对球门中心坐标的获取是:g_pt=m_Channel0.center ;数字 中括号内部的数字代表获取的是第几个通道的坐标。如果很多个通道可以代替临时目标点的作用吗?对鱼头方向的获取是: f_dir=m_FishInfo0.GetDirection() ;数字也是同样的含义,代表获取的方向是第几条鱼的。5.3三个基本服务函数程序中还有最简单的三个服务函数。1获取角度函数Angle(CPoint point,CPoint aimer);2获取距离函数Distance(x,y);其中形参都是定义为“类”。3转换角度函数Checkangle(double dir)形参类型是双精度。大家有英文字母的含义应该就了解函数的作用了。请记住三个函数的功能。1)角度函数 此函数所测算的角度建立于绝对坐标系基础上Angle(CPoint point,CPoint aimer)具体定义如下:Angle(CPoint point,CPoint aimer) /声明函数,两个类的形参point和aimer double a;a=atan2(double)(aimer.y-point.y),(double)(aimer.x-point.x);/就是求一个反正切的角度return a; /返回一个角度值范围是-/2,/2(这个很重要,记住范围) 红色为point 黑色为aimer 2)距离函数Distance(CPoint point,CPoint aimer)函数具体定义如下:Distance(CPoint point,CPoint aimer)double a;a=sqrt(double)(point.x-aimer.x)*(point.x-aimer.x)+(double)(point.y-aimer.y)*(point.y-aimer.y);/ 就是一个求距离的平方根公式return a; /返回距离值,双精度类型3)转换角度函数Checkangle(double dir) 具体定义如下:Checkangle(double dir) /把dir换算成-pipi之间的数if(dirPI)dir-=2*PI;else if(dir100) /下面是鱼和目标点的距离大于100像素的情况if(dir1-5&dir15)action.direction=7;else if(dir1-10)action.direction=5;else if(dir1-30)action.direction=4;else if(dir1-50)action.direction=2;else if(dir1-70)action.direction=1;else if(dir1-90)action.direction=0;else if(dir15&dir110&dir120&dir140&dir150&dir180&dir1-5&dir15)action.direction=7;else if(dir1-20)action.direction=4;else if(dir1-40)action.direction=1;else if(dir1-60)action.direction=0;else if(dir1-70)action.direction=0;else if(dir1-90)action.direction=0;else if(dir15&dir120&dir130&dir150&dir170&dir190)action.direction=14;else if(dir1120)action.direction=14;else action.direction=14;m_FishInfo.SetAction(action);六、策略编写策略编写环境是Microsoft Visual Studio 2010及以上版本,此软件属于微软公司推出的开发环境,可在网上下载和查找安装过程。安装Visual Studio后图标会变成,在桌面找到,双击运行。程序入口在程序中右上角的“解决方案与资源管理器”中能看到如下图所示的一个函数名为“strategy.cpp”,这就是策略编写的函数,在函数里面有一个名为“BOOL CStrategy:Strategy0()”,的子函数 就是策略编写的入口。编写策略时,程序的定义的最基本变量有四个。1、鱼中心坐标f_pt;2、球中心坐标b_pt;3、鱼头方向g_pt;4、球门中心坐标f_dir。其他函数名不知道什么意思可以通过其英文单词含义大致推断其含义,另外选中不清楚的函数,鼠标右击,可以“转到定义”或“转到声明”去具体了解函数的含义。另外,如果想增加其他策略可在函数声明中重新添加策略声明然后在策略中调用,如果想添加一个策略1,按照下图两步操作。1、 策略编译(生成DLL代码)MURStrategy作为统一的策略入口函数(DLL导出的函数名),在Server端运行的时候动态加载及策略调度运算。传入的参数数据包含策略计算必要的所有信息。所以编译过程也就是将编写的代码按一定计算方式生成DLL代码。策略编译首先确定要编译哪个策略,例如,写了5个策略想编译策略1 顶球的策略,那么我们需要打开MURStrategy程序入口,指定编译策略。如下图改好策略编译入口后,单机“生成”选择生成解决方案。如下图操作按照策略生成的路径找到策略剪切或复制出来放在自己常用的位置,以便使用大平台加载策略。2、 策略加载 电脑连接无线发射模块和摄像头,双击打开桌面程序,会出现三个窗,如下图 打开然后打开“通信参数设置”,串口号选择COM3打开串口,打开后将通信参数设置窗口关闭。 选择MURClinet窗口中的图像“参数设置”,单击打开,在右下角失真处理前方进行勾选,选择确认设置,关闭此窗口。单机打开MURClinet窗口中的“目标识别”,单击背景采样,“RecogFrontImage”窗口中画面由之前的黑白色变为黑色,此时说明背景采集完毕。操作完成后,将机器鱼和球放入水池中,在“目标选取”处选择“球1”,并在“Original”窗口中勾选球图像,在“A队”处选择“F1”,并在“Original”窗口中勾选鱼图像如下图所示,或用快捷方式选择。选择完成后将此窗口最小化。加载策略,选择MURClinet窗口中的“策略加载”找到U盘中“顶球进门.dll”文件打开。步骤如下图加载策略后单击“裁判系统”,然后后单击“开始执行”,此时鱼游向球,鱼会根据程序所编写的策略执行(如有其它问题,请查阅附表1-005)七、结论:水中机器鱼大赛是一个全国性的竞赛。它不仅水准高,难度大,综合性强,而且资巨大的新兴学科。我们非常感谢学校老师给我们这次参加如此高水的竞赛的机会,感谢学校领导的大力支持和所有指导老师的精心栽培以及全体参赛队员的团结努力。在这个过程中,我们将理论知识运用到了实际操作中来,我们三个组员,我们分工合理,达到了默契十足,互相学习,互相进步,一起完成了组装,调试。通过本次的大赛,让我了解到如何将书本上的知识运用到生产实践,在参赛的过程中,我也发现了自己的不足,借鉴到了他人的经验,这会使我在机器鱼 方面更加努力。 同时让我明白,任何好成绩的取得都建立在充分的准备之上,要反复练习,修改策略,多多听取队友的建议,把自己的真实水平发挥出来。 这次比赛,让我总结出四个字越挫越勇,我还告诉自己:不要被自我感觉所蒙蔽,你还有许多要学习的地方,要多多努力,尽量多的抓住机会,提高自己的表现能力,从每一件事中找到进步的目标,让自己变得越来越优秀。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 临时分类 > 人文社科


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!