仿真机器人程序设计_第1页
仿真机器人程序设计_第2页
仿真机器人程序设计_第3页
仿真机器人程序设计_第4页
仿真机器人程序设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2018年6月12日、项目任务二、项目要求.机器人要准确做出指定动作。.要使用提供的VJC场地文件。.三、使用到的软、硬件设备VJC软件、计算机四、程序的截图(包括图形和命令代码部分)、程序的思路说明题目1:使用VJC1.5仿真软件,编写一个灭火机器人,让其完成如下的动作:机器人从蓝色圆圈的位置出发机器人只在蓝线上行走机器人能够发现蜡烛机器人发现蜡烛后,停止运动,启用风扇将蜡烛吹灭(机器人保持停止)图1灭火机器人场地.程序的截图(包括图形和命令代码部分)n前进Hn前进H计算intphoto_1=0;intsurf_1=0;intgij=0;voidmainQ(drive]80,。);wait(0,500000);stopQ;gU-i;while((surf_l!=255)&&(gi」==1))(surf1=surfaceQ:iffsurf_1二二431

a结束9L1=1;a结束whilegrf1!=255)胆出(gi1==1]}(51jrf_1'surface0;if(5urf1==43J(drive<80,0);wa;t(0.100000);stop。;)eke(drive(0,-SQ):wait(0.300000);石top。;sui4_1l=surfaceO:)-photo1=(photofl)+photo(2))/2:if(photor1!-255)(motor(1P0];riotor(2,O];motor(3t100);while(photo_1!=255)(photo_1-CphotoC1)+photo[2)]/2:)gij=o;.程序的思路说明(1)刚开始时,仿真机器人面向180度角,并处在蓝色圆圈的起点位置。(2)仿真机器人开始前进,并进行计算。(3)进行条件循环判断,亮度检测的亮度值不等于255并且计算值等于1。(4)如果条件(3)成立,则仿真机器人前进时进行地面检测,通过地面检测地面灰度值进行判断,如果灰度值为43则继续前进;如果灰度值不为43则左转,继续进行地面检测,直到灰度值为43为止;如果条件(3)不成立,则程序结束,仿真机器人停止运动。(5)在条件(4)的基础上,仿真机器人在前进过程中进彳T亮度检测,通过亮度平均值是否为255判断找到蜡烛。如果亮度值不等于255,则表示找到蜡烛,此时仿真机器人停止前进并启动电机,通过亮度检测亮度值等于255,则仿真机器人停止扩展电机停止运动。如果亮度值等于255,则继续进行地面检测和亮度检测,直到符合条件为止。

机器人运行结果如下:题目2:使用AI-RCJ软件,编写一个足球机器人,使其完成如下的动作:(1)机器人将球从蓝色点踢入球门(黄点是球门中心)图2足球机器人场地1.程序的截图(包括图形和命令代码部分)命令代码如下:#include<airobot/c/SimpleRobot.h>voidrun()doMoveTo(0,0);doublepx,py,ballx,bally,k,b,Dx,Dy,Cx,Cy,Ay,GoalWidth,head;Cx=getOpponentGoalCenterX();//Cy=getOpponentGoalCenterY();//ballx=getBallX();bally=getBallY();GoalWidth=getGoalWidth();//Ay=Cy-GoalWidth/4;head=heading(ballx,bally,Cx,Ay);//获取进攻球门中心的获取进攻球门中心的获取球门的宽从蓝色点入门x坐标y坐标k=tan(head);b=bally-k*ballx;Dx=ballx-getBallRadius()-getRadius();Dy=k*Dx+b;doMoveTo(Dx,Dy);//到达足球背后的进攻点doTurnTo(head);//转向进攻方向while(1){doMoveTo(getBallX(),getBallY());2.程序的思路说明(1)先计算足球和蓝色点形成的直线方程,然后在足球的背后找到一个进攻点设为来到A点,并转向蓝色点方向,不停地向前运动就可以把足球从蓝色点推入门内(2)黄色点是进攻球门的中心点,减去球门宽的1/4可得到蓝色点的y坐标A控制机器人使川系统提供的heading(doublepx,doublepy,doublebx,doublebx)函数状得足球与蓝色点的方向。假设A点在足球背后,而A点的y坐标可通过足球和蓝色点的直线方程算出。(3)先设定机器人的坐标为(0,0),获取进攻球门中心的x坐标和y坐标。再获取球门的宽,并求出机器人跟足球的直线。机器人到达足球背后,转向进攻方向,将足球从蓝色点入门。程序的截图如下:Shiwanlc三二工二三:;:;:;二;二;三:三士三:二:七;二三三:三二三二:二;"二:士:二:=:三二:二:二;二三二三:;:;:::;:;文;:;:二:;二;二;二;:;:二:::;二;二;:;:二:三士三二;:;二;二;二;『¥1*[f"三'「":"」":二'-J.::工。::::,工"mi:::工工。二匚:二二二':::"'一":m:,_""TOC\o"1-5"\h\z飞”,一Cvoidrun()1IdoMDveTo(0,0);1doublepx7py,balli,bally,k】b,Bx?Dy,Ck7CyfAy,GoalWidtli,head;]C)Ck=getOpponentGoalCenterX();Cy=jetOpponentGoalCenterY();ball):=getBallXf);bally=getBallYO:GoalVTidth=g&tGaalWidthC):Ay=Cy-GoalWidth/4:head=headinetballx,bally,CKjAy);17k=tan(head);.二一开始煽译文件.二一扁译D:\ToolsWI-RCJ4.0^ExtemalTaols\pasoftlrcjVutitime\Shiyan1.c"obot_bui1d_compile.batShiyanl.c3ATodIs\AI-RCJ4,0\ExtemalToolslpasofflgcc\lib>g++-c-rD:\ToolslAI-RCJ4..口IE城emalToATqqIsVM-RCJ4,O\ExtemalToolslpasofl^rcjiruntimelSliiyan1.c:30:16:warning:nonewline成功。部rwatn.c您:臻用矮之臻堀矮之臻堀矮之瀛出富海堀矮出瀛:矮出瞬滋丁口田TOC\o"1-5"\h\z5*/■匕voidrun()7(像doMoveTo(0,0);,-'idoublep/py,ballx^bally,k,b>Dx,Dy,Cx,Cy}Ay,GoalVidthjhead;Cx二getOpponentGoalCenterX():I段Cy=getOpponentGoalCenterYC):balli-getEallXf):"1:;balLv=?etBalLY0:机器人运行结果如下:五、测试项目过程中出现的问题分析题一中:(1)机器人开始运行即停止,是因为条件判断值中的地面灰度值不设为43,修改方法是在条件判断中,将条件改为地面灰度值等于43。(2)机器人在前进至第一个转弯处是停止不动,原因是此时检测出的亮度值为255,机器人停止。修改方法是通过地面检测代替亮度检测来判断前进路径。(3)机器人在发现光源时继续前进并启动电机,直至蜡烛被吹灭也不停止运动。修改方法是在条件循环中判断亮度值为255时停止电机以及停止扩展电机。题二中:(1)机器人把足球射入球门的方向不确定,有时在蓝色点,有时不在蓝色点,原因是没有正确获取到蓝色点的x和y坐标,解决之法是使用系统提供的heading(doublepx,doublepy,doublebx,doublebx)函数获得足球与蓝色点的方向,再获取进攻球门中心的x坐标和y坐标,减去球门宽的1/4可得到蓝色点的y坐标,从而得到蓝色点的x坐标和y坐标。六、项目结论与体会通过本次期末动手操作,基本运用了本学期课堂所学所识内容。题一主要考查了地面检测、亮度检测以及扩展电机的内容。难点是地面灰度值和亮度检测值的设定以及判断,从而触发什么事件。题二主要考查了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论