机器人编程与设计RobotBASICPPT学习课件_第1页
机器人编程与设计RobotBASICPPT学习课件_第2页
机器人编程与设计RobotBASICPPT学习课件_第3页
机器人编程与设计RobotBASICPPT学习课件_第4页
机器人编程与设计RobotBASICPPT学习课件_第5页
已阅读5页,还剩71页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、机器人编程与设计,RobotBASIC朱映辉,1,特点,机器人模拟器是对各种可能情况和不同硬件、软件组合方式进行实验的有效工具节省组装真实机器人的时间和费用使用RobotBASIC来编写算法使机器人与其所处环境进行交互.学习后不仅能对模拟器进行编程,也能够对机器人进行编程对模拟机器人进行编程的算法和原则同样可应用于对真实机器人的控制,2,RobotBASIC模拟器,象BASIC语言一样简单、易学(对初学者)(高级爱好者和有经验的编程人员)功能仍然足够强大,它拥有所有标准流动控制结构及对变量和矩阵真正无限的空间能快速迅速地模拟多种类型的环境和状况,对算法进行检查通过模拟,可确定需要什么类型的硬件

2、进行选择(如传感器)机器人不仅仅是硬件,3,RobotBASIC语言,它有工具箱、命令和函数对机器人进行真实、有效的模拟进行图形显示用输入、输出命令与用户交互进行数学、三角和统计计算创建并控制字符,并在字符和数字间进行转换用一系列命令和函数创建并控制矩阵,能对数学课程中遇到的许多矩阵进行操作,4,一机器人模拟器,终端屏幕模拟一个四面有墙的房间:800 x600像素(机器人活动空间)机器人默认大小:40像素(直径)机器人的初始化rLocateX,Y,Heading,Size,ColorX,Y位置(整数)Heading可选,默认0,指机器人要面对的方向(0359),0为北,90为东,180为南,2

3、70为西Size可选,默认20像素的半径,在550之间Color可选,默认蓝色,Rlocate300,300,45,40,redend,5,机器人动作,rForwardnpixels在面对的方向上前进或倒退几个像素正-前;负-退rTurnnDegrees沿顺时针或逆时针旋转几度(整数)负-逆时针;正-顺时针,rlocate300,300rturn90rforward300,rturn-45rforward-200end,6,绕过障碍物,障碍物用圆形和矩形模拟Circlex1,y1,x2,y2,PenColor,FillColorrectanglex1,y1,x2,y2,PenColor,Fil

4、lColorx1,y1,x2,y2确定边界PenColor轮廓颜色FillColor填充颜色,7,程序代码,rectangle300,300,500,500,red,redcircle100,100,200,200,blue,bluecircle600,500,700,550,magenta,magentarlocate50,50rturn90rforward400rturn135rforward300rturn-45rforward300rturn-90rforward250rturn-45rforward400end,8,练习,创建程序,使机器人从(100,100)运动到(300,300)

5、,然后从(500,100)回到(100,100)提示,定位(100,100),朝向135,前进283,转-90,前进283,再转-135,最近前进400按下图搭建环境并按箭头指示进行运动,9,二RobotBASIC传感器,RobotBASIC中的机器人有一系列的传感器,使其对周围环境有感知的能力控制算法通过传感器来分析环境,然后采取行动避障,并能发现、定位目标,10,部分编程结构,RobotBASIC一般不区分大小写但变量名、阵列名、标签区分大小写变量很灵活,命名无限制,可存储任意类型数据,且可以改变变量中所存的数据类型和数值.注释/,11,部分编程结构,条件语句1.IF条件THEN一种操作2

6、.IF条件多个操作ENDIF3.IF条件操作ELSE操作ENDIF,12,部分编程结构,比较操作=循环For-nextWhile-wend,13,(1)用缓冲器进行避障,缓冲器rBumper()RobotBASIC机器人有4个缓冲器,前面和后面的分别形成130圆弧,侧面的仅形成50.,14,rLocate400,300Fora=1to500ifrbumper()=0thenrForward1NextEndrLocate400,300Whilerbumper()=0rForward1WendEnd,15,(2)红外传感器,红外传感器使机器人能够在接触到物体之前就探测到路径上物体的存在原理:使用红

7、外LED(发光二极管)机器人向周围发出光线,若光线被反射回机器人,则晶体管电路可检测到.,16,RobotBASIC机器人有5个红外传感器,分别间隔45进行安装使用函数rFeel()获得红外传感器状态的编码数字,机器人右侧的传感器是二进制数字中的最小位.,17,rLocate400,300Whilerfeel()=0rforward1WendEndrFeel()比rBumper()探测物体的效果更好,因为最好是不发生碰撞.缺点:有可能探测不到小的物体(或大物体的边角),因此,当想避免障碍物时,推荐同时使用rFeel和rBumper状态数据进行分析.,18,(3)超声波和红外测距,rFeel和r

8、Bumper的其中一个局限性是只能探测距机器人很近的物体,然而,最好能够对其路径上的远处物体进行探测,以尽早采取行动.RobotBASIC机器人装有单一测距的传感器,因此面向与机器人相同的方向.函数rRange()获取机器人前方物体的距离rRange()返回20,表明在距离机器人20个像素处有某个物体存在.,19,下方程序使机器人在距离北墙20个像素处停止rLocate400,300Whilerrange()20rforward1WendEnd,20,(4)机器人视觉,RobotBASIC机器人摄像头返回一个数字,表示其所看到的颜色.函数rLook().Circle600,500,620,52

9、0,red,redRlocate400,300Whilerlook()redrturn1Wendend,21,(5)信号探测,若希望机器人找到房间里的某个位置,可在该处挂一个闪烁灯(可见或红外线的),因为这个闪烁灯在房间的位置较高,所以即使其他物体处于机器人和目标位置之间,这个闪烁信号也一直可见.函数rBeacon(color)返回一个非0值,表示机器人面对一个该颜色的信号,这数字实际就是机器人和信号之间的距离;若返回0,表示机器人没有面对信号.若不想使用距离数据,可只当作真和假指示器使用.,22,Circle600,500,620,520,red,redRlocate400,300While

10、rBeacon()=falserturn1Wendend,23,(6)指南针,指南针函数rCompass(),返回机器人面对的当前方向.屏幕上方向:上北下南,左西右东.北:0,东:90,南:180,西:270Rlocate400,300Whilercompass()90/东部rturn1Wendend,24,(7)全球定位,两个函数rGpsX(),rGpsY(),分别返回机器人位置的X和Y坐标值.可精确到1个像素.Rlocate400,300Whilergpsy()30rforward1WendEnd/展示机器人如何跟踪北墙位置并在距离墙壁10个像素处停止.(默认机器人的半径是20),25,三

11、远程控制算法,在能够使机器人从环境获取的传感器信息作出运动决策前,必须掌握一些对机器人进行编程和控制的技能.远程控制形式有三种:只要按钮按下,开始运动,松开,就停止运动按下按钮使机器人运动,然后释放按钮,机器人继续运动,直到再次按下按钮才停止给定某个指令,机器人执行某些动作,然后等待给出下一个指令为控制模拟机器人,需使用键盘和鼠标模拟远程控制器.,26,(1)键盘,GetKeyVar检查按键是否有健按下,若有,它的代码值赋给变量var,若无按下,则变量值为0在用户按下某健之前,程序流没有停止WaitKeyExprs,var该指令能暂停程序流,直到用户按下某健上述var是ASCII码,可用cha

12、r()将代码转换为字母,反之用Ascii()将字母转换为代码,27,(2)鼠标,ReadMousevar1,var2,var3Var1,var2是鼠标在屏幕位置的坐标值Var3存储鼠标的某个按键被按下,未按下时为0程序不会暂停或等待用户按下任意键,28,(3)输出至屏幕,PrintExpr,Expr,将结果输出至屏幕,一次输出一行,满屏时会滚屏XYStringX,Y,Expr,Expr;将结果输出至屏幕,X,Y为结果输出的像素位置,29,(1)远程控制的第一种形式,控制键:F前进,B后退,L左转,R右转编程提示:WaitkeyChar()Rbumper()If按键=“F”THEN.参见tu4.

13、1,30,(2)远程控制的第二种形式,控制按键与前者相同.按下键后使机器人连续运动,直到用户按下另一个键.编程提示:getkeyChar()保存最近的键检测按键时加延迟delay200,给用户松开按键的时间Rbumper()If按键=“F”THEN.参见tu4.2,31,(3)复杂远程控制,这种形式,机器人执行一系列动作,以完成用户设定的任务.模拟时,鼠标将被用作一个激光定位器.机器人锁定鼠标位置并运动到那里.机器人运动时还能在屏幕上画图,以期看见发生的动作.rPenup/down,colorrInvisiblecolor,color机器人将使用它的GPS和指南针来计算其当前位置和朝向与目标位

14、置和朝向之间的差别.,32,涉及的数学运算机器人用坐标Rx,Ry表示,目标用Tx,Ty表示.机器人x,y坐标与目标之差分别为dx,dy.用于计算机器人与目标之间的距离.(毕达哥拉斯定理的应用),函数PolarR(dx,dy)用于完成计算并返回R值.函数PolarA(dx,dy)返回角度值,为水平轴和机器人中心与目标中心连线之间形成的角度(即TA).,33,角度TA可用于计算出机器人需要转的方向和度数,使机器人朝向目标,那么实际应转的角度为dA.第1个问题:角度TA是以东向为基准测量的.因此在PolarA()基础上再加上90.第2个问题:PolarA()返回的弧度,而不是度.转换:1=/180r

15、ad因此,TA=PolarA(dx,dy)*180/pi()+90那么:dA=PolarA(dx,dy)*180/pi()+90-CHdA为0360之间的数字,当机器人旋转角度时,应检查转角是否大于180,若是,可使机器人向另外一个方向旋转.,34,复杂远程控制程序见tu4.4,35,四、随机漫游,目标:创建自主移动机器人要使机器人具有自主性,就需要使其具备绕过障碍物的自主决定能力。机器人避开障碍物的方法:旋转180并向远离障碍物的方向运动旋转足够的角度,避开障碍物,但不完全旋转上述方法结合使用,36,什么是随机漫游机器人在未知的环境中无目的运动的算法,即没有具体要实现的目标,而是在所处的环境

16、中自由运动,只要不在某个地方待太长时间或不与障碍物碰撞即可。Rlocate400,300Whiletruewhilerfeel()=0rforward1wendrturn150+random(60)/180+/-30Wendend,37,(1)部分程序结构,标签和子程序MainProgram:gosubtask_1gosubtask_2End/-task_1:.Return/-task_2:.Return/-,38,(2)相关指令,清除屏幕(ClearScr)设置绘图颜色(SetColor)设置画图的初始位置(GotoXY)屏幕上画线(LineTo)设置画线的宽度(LineWidth),39,

17、(3)向漫游环境中添加物体,用户自主绘制障碍物可用函数如下:Readmousex,y,mGotoxyx,yLinetox,y参见程序tu5.3,40,(4)更加智能的漫游,如何更有效地利用传感器信息改进机器人行为的一种方式是使其确定旋转的最合适角度,而不是旋转一个随机量.逻辑操作rFeel()=0rFeel()=1rFeel()=4.rFeel()=2orrFeel()=1注意:若两个右侧传感器一起被触发,当前表达式不为真可进行按位操作:rFeel()-170,71,160,72,145,80,140,90,130,100,125,110,120,140datac1;130,200,140,2

18、50,130,270,145,300,200,350,300,325datac1;450,375,450,450,600,450,600,400,650,200,500,350mpolygonc1return/-FollowLine:/线跟踪算法Return,44,Data语句和mPolygon,Data指令用于创建一个阵列,并将其后的数据接连放置在阵列中如:DataNums;9,8,2,Numsn-1可指明使用第n个元素maxDim()找出阵列中的元素个数mPolygon指令可实现任意连续直线的绘制,45,线传感器,RobotBasic机器人有三个线传感器,一个安装在正前方,其余两个分别偏离

19、正前左右10进行安装.函数rSense(color)可读取三个线传感器的状态(如图)注意:在进行任何直线感知测试之前,必须指定一个不可见颜色组的列表,并且直线的颜色必须在列表之中(最好是第一种颜色),否则,将认为直线是障碍物,并报告出错.,001,010,100,46,线跟踪尝试,FollowLine:whiletrueifrsense()2*Side*cos(Angle*pi(1)/180),Side,SideDataAngles;Angle,180-2*Angle,AnglegosubDrawTrianglerTurn-45/-moveoutofthewayrForward40End/=绘

20、制不同形状的三角形,只需在阵列Sides和Angles设置不同的数据即可。,DrawTriangle:rPenDown/-startdrawingFori=1to3rForwardSidesi-1rTurn180-Anglesi-1nextrPenUp/-stopdrawingReturn,69,5.绘制任意形状,基本操作:设定一套使机器人旋转和移动的正确指令,结合抬高和降低画笔,可进行任意形状的图形绘制参考方法:使用DATA指令创建一个成对数据的阵列,每一对数据都代表针对机器人的一个指令成对数据中的第一个元素设定要采取的行动,第二个元素提供与行动相关的参数,70,举例:Datawhat;”p”,down,”f”,165,”t”,-120,”f”,58Datawhat;”t”,-60,”f”,50,”t”,-30,”f”,100Datawhat;”p”,up,”f”,40,71,绘制任意形状实例,MainProgram:/-changethesetomaketheshapehave/-differentorientationandpositionR_Init_X=400R_Init_Y=300R_Init_Headin

温馨提示

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

评论

0/150

提交评论