基于诺宝RC环境下的机器人走简单轨迹.pdf
基于诺宝基于诺宝 RCRC 环境下的机器人走环境下的机器人走简单轨迹简单轨迹 作者:日期:2 2个人收集整理个人收集整理 勿做商业用途勿做商业用途基于诺宝 RC 环境下的机器人走简单轨迹李发成摘要:机器人走轨迹是诺宝 RC 的最基本应用之一,也是机器人常规比赛项目之一,走轨迹包含了程序设计的三种基本结构,能充分体现程序设计的基本思想和方法,有助于学生对程序设计思想和方法的理解。本文研究的主要内容是机器人走简单轨迹,按机器人行走的的方式分类有“沿边法”和“靠中法”;按程序结构的分类有“单分支对称结构”、“二重分支对称结构”和“三重分支非对称结构”。本文通过对二种行走方式和三种程序结构的研究和对比,揭示它们之间的内在联系,通过实验分析,归纳程序与参数组合搭配对机器人行走速度和稳定性的影响。关键词:机器人,走轨迹,轨迹识别传感器,轨迹变量,沿边法,靠中法机器人走轨迹看似简单,但深究起来还是比较复杂的,还别说含直锐角转弯、缺口、终点标志、色带瑕疵、障碍、传感源、宽窄不一等复杂的场地,就算对于简单轨迹还是有许多情况需要讨论的。本文讨论的目的是通过研究各种程序和参数的变化,对走轨迹进行定性和定量的分析和研究,总结出程序和参数的组合优劣,使机器人行走的路径尽量的短、速度尽量的快、稳定性尽量的高。第一章第一章 基础知识基础知识一、走轨迹与轨迹变量1 1、机器人走轨迹的概念、机器人走轨迹的概念:机器人走轨迹是指机器人在色带上行走,有时可能会临时偏离色带,但必需能再次寻找到色带,如下图 1:(图 1)2 2、轨迹变量、轨迹变量:机器人通过“轨迹识别传感器获取轨迹变量的值,轨迹变量的值有 0、2、3、1 四个,这四个值与机器人和色带的相对位置对应关系如下图 2.第第 3 3 页页 共共 20 20 页页个人收集整理个人收集整理 勿做商业用途勿做商业用途(左 0)(2)(3)(1)(右 0)(图 2)当轨迹传感器的两个探测头都没有落在色带上时,轨迹变量0。当右探测头落在色带上而左探测头不在色带上时,轨迹变量2。当轨迹传感器的两个探测头都落在色带上时,轨迹变量3。当左探测头落在色带上而右探测头不在色带上时,轨迹变量1.无论机器人走轨迹程序的思路如何,都是依据上面图形和数值的对应关系来设计的。二、有关说明和准备工作(一)有关说明1、为了实验方便和节省成本,本文所讨论的内容大部分是指在诺宝 RC10。1 的“仿真”界面下,除非在仿真界面下不能实现时,才在“实物器材环境”下.2、“色带”与“轨迹的概念:本文章中说到的“色带”是指给机器人预定的“跑道”,“轨迹有时是指“色带”,又时是指机器人运动后留下的真实轨迹,程序设计的意图是让机器人的轨迹落在色带上,但实际情况往往并非时时如此,如图 1。3、轨迹识别传感器的位置:仿真界面中机器人前面的两个小黑点并不是轨迹传感器的左右两个探测器,而是“输出模块中的“发光灯”。轨迹识别传感器的两个探测器应该是在机器人头部中间的地方,且离的很近,仿真机器人没有标示出来,但从实际行走过程可以观察出来。虽然如此,但为了能直观的说明机器人位置与轨迹变量的关系,本文中“错误”地把这两个黑点当成传感器的两个探测头,可能会更好理解一些.4、“左 0”与“右 0的概念:“轨迹变量0”时,是需要讨论的,它是一个比较复杂的值,程序的优劣之一是看对 0 的处理,在简单轨迹中会遇到 0,在复杂轨迹中更会遇到。为了对0 有更好的理解和掌握,本文引入“左0”和“右0”的概念,无论那一种轨迹程序,都必须遵循“左 0 右转”、“右 0 左转”的原则。第第 4 4 页页 共共 20 20 页页个人收集整理个人收集整理 勿做商业用途勿做商业用途5、区域:本文有时会按轨迹变量的值来称呼色带区域,从左到右,把色带划分为以下区域:左 0 区、2 区、3 区、1 区、右 0 区,所谓 k 区域,是指轨迹变量等于 k的色带区域,其中 0k3,kZ.6、本论文中速度的概念包含:(1)单独电机自身的转速;(2)左右电机的相对模糊速度,比如“左快右慢”、“左慢右快”等用语;(3)机器人的整体速度.为了不引起混淆,以下把电机自身的转速说成“马力”.7、假设轨迹的有效(因为轨迹不全是规则且直的)宽度为 Width,机器人轨迹识别传感器的两只探测头扫描不是一个点而是有一个范围,假设这个范围的最小距离是Distancemin,则只有当 DistanceminWidth 时,才可能两个探测器“同时探测到色带。对于窄色带,即色带宽度轨迹传感器左右探测头的距离的色带,比如在一条宽度为 0.5cm 的简单轨迹线上,从左向右连续移动机器人,则“轨迹变量”的值变化如下:(左 0)(2)(中 0)(1)(右 0)(图 3)轨迹传感器的两个探头,不妨称之为两只“眼睛”,其曈距为1.2CM,大眼角距为0。8CM。在实际比赛中,简单轨迹的色带宽度一般为 2CM 左右,在仿真界面中,色带的最小宽度也只能设置为 2CM,如果您非要设置更小的宽度比如 1CM 时,会提醒“宽度应大于等于 2。然而诺宝 RC10.1 的实际情况是,当提醒你“宽度应大于等于 2”后您点取消,也确实能设为 1!(试试就知道)。8、特宽大轨迹:色带宽度轨迹传感器左右探测头的距离(远远大于),这在实际比赛中是不太多见,这样做的目的是放大色带,便于观察。为了更明显地突出说明几种程序下机器人的运动规律,揭示轨迹变量与机器人位置的本质,本节课所使用的轨迹宽度均为 40CM 的色带,实际比赛中不会这么宽,这儿虽有点夸张,但通过放大运动过程更易于对运动过程的理解。9、复杂轨迹:(1)纯轨迹:含直角转弯、锐角转弯、缺口、终点标志、色带瑕疵等复杂的场地。(2)非纯轨迹:含障碍、传感源、终点标志等。(二)准备工作1、色带制作:在同一程序和参数组合下,在不同的色带上行走,其结果是不同的,第第 5 5 页页 共共 20 20 页页个人收集整理个人收集整理 勿做商业用途勿做商业用途所以本文中所涉及到的程序在其它稍有变化的色带上行走是有区别的。上面色带是由上、下、左、右四条色带拼接而成,某些数值之所以用到小数,是考虑到色带边沿对接合缝问题。本文把用到的色带参数说明如下:位置类型宽度高度左下角坐标 X左下角坐标 Y下色带矩形200位置类型内径外径圆心坐标 X圆心坐标 Y上色带圆弧300340左色带圆弧60右色带圆弧60100100237.514033953815415540140552、使机器人留下轨迹:在对行走稳定性研究时,在程序的头部增加“画笔 模块且使其“落下”,记录下机器人沿色带行走时的实际轨迹,可分析不同程序、同一程序不同参数对实际行走轨迹曲线的影响。3、终点标志和机器人停止:为使机器人能停止下来,在色带上增加一个矩形障碍物,被障碍物挡住后,机器人不能前进了,好象是停止下来了,但实际上并没有停止下来,电机还在旋转,从下面的“转角显示”可以看出转角还在不断地变化.为了能使机器人真正停止下来,增加终点判断功能,把永久循环改为条件循环,使用接近传感器或者红外避障传感器,使机器人真的能停止下来.4、时间显示:增加“时间检测”、“LED 显示”模块,就能在仿真界面屏幕下方的“LED 显示”中显示机器人行走的时间,可分析程序的快慢优劣。虽然在屏幕下方也有一个“时间(秒)”,也是显示时间,但它显示的不是机器人行走的时间,而是程序运行的时间,机器人停止后,程序还在运行,这个时间还在一直的走,只有按了中的“停止”按钮后,时间才会停止,但是马上就归了“0”,无法看到时间,再说了,手工按停止按钮是有时间差的。第第 2 2 章章 机器人行走的方式机器人行走的方式按机器人的行走路线,机器人走轨迹的方式大致有以下两种:一、一、沿边法沿边法:设轨迹变量的 5 种(左 0 和右 0 不同)取值从左到右分别是“右0、2、3、1、“右 0”设其对应一个数组 a0、a1、a2、a3、a4,(说明,其实 40 mod(3))。对于ai和ai+1,i0i3,iN,当“轨迹变量=ai时,机器人向右调整,左快右慢,当“轨迹变量=ai1”时,机器人向左调整,左慢右快。除初始状态外,在机器人行走比较稳定的情况下,只让轨迹变量在相邻两个值 ai和 ai+1之间变化,如左0,22,3 3,11,右 0,这时机器人的轨迹是沿色带的边沿行走,轨迹变量的变化与轨迹位置关系如下表:轨迹量变探测器的位置第第 6 6 页页 共共 20 20 页页轨迹线位置个人收集整理个人收集整理 勿做商业用途勿做商业用途左 0,2机器人左“眼睛”沿色带左边沿行走轨迹线在色带之外2,33,1机器人右“眼睛”沿色带左边沿行走轨迹线在色带之内机器人右“眼睛”沿色带右边沿行走轨迹线在色带之内1,右 0机器人左“眼睛沿色带右边沿行走轨迹线在色带之外四条轨迹线如下图:(图 5)(二(二)靠中法靠中法:如果“轨迹变量2,说明机器人偏左了,就需要向右调整到色带上,使“轨迹变量3;如果;如果“轨迹变量1,说明机器人偏右了,就需要向左调整到色带上,使“轨迹变量3;如果“轨迹变量0”,说明机器人脱线了,两个探测头都检测不到色带,这时机器人有可能在色带的左侧,称为“左 0”区域,也可能是在色带右侧,称为“右0”区域,当不能具体确定机器人的位置时,就要分情况讨论,让机器人“螺旋式”行走以扩大搜索范围来寻找色带,寻找到色带后还存在一个方向问题,不然可能会走回头路.详细如下表:图示=1能看到看不到=2看不到能看到=3能看到能看到=0看不到看不到脱线了寻线分情况没偏直行偏左了偏右了轨迹左眼右眼相对轨迹中线调整电机的偏离方向方向速度向左调整向右调整左慢右快左快右慢左右等速变量看轨迹看轨迹以上的想法是“对”的,如果“轨迹变量 2”,说明偏左了,就向右调整;如第第 7 7 页页 共共 20 20 页页个人收集整理个人收集整理 勿做商业用途勿做商业用途果“轨迹变量1,说明偏右了,就向左调整;如果“轨迹变量3”,说明没有偏,就直走。这只是编程人的一厢情愿,别说实际,就连理论上也不是这么回事。机器人的状态无论是由“2”还是由“1”变化为“3”的瞬间,它的中心轴线和色带在该点的切线都有一定的夹角,而沿这个夹角进入“3”后,机器人所谓的“走直线”其实是在走斜线,要使机器人能真正走“直线”,就得使机器人进入“3”状态后旋转一个角度,使机器人先“调正”,但诺宝程序没有这样一个计算角度的功能,所以只能任由机器人一会儿左,一会儿右,一会儿沿边,一会儿靠中间来来回回的变道,轨迹曲线相当不稳定,如图 1。第第 3 3 章章程序设计程序设计机器人走轨迹的程序其分支结构是一棵树,一棵完全二叉树,其中单分支对称结构和二重分支对称结构是满二叉树结构,树根、树枝为条件判断,动作发生在树叶。第第 1 1 节节单分支对称结构单分支对称结构单分支对称结构是指条件判断的两侧是对称的,左右都是一个“高速电机,该结构走轨迹具有一定的稳定性和用时少(如走跑道内侧)的特点;并且对单分支结构编程的分析更有助于学生对轨迹变量的深入理解,单分支对称结构如下图 6:(图 6)在单分支对称结构程序中,“条件表达式”可以有多种形式,分为“变量对称型 和“变量非对称型”。所谓“变量对称”是指轨迹变量 0,2,3,1 四个值均匀地分布在选择支的两边,一边两个;“变量非对称型”是指轨迹变量的四个值不均匀地分布在选择支的两边,一边一个,一边三个.这由条件表达式的形式来决定,具体的形式有如下类型:“轨迹变量=n”型、“轨迹变量=n”型、“轨迹变量=m”型;“轨迹变量=n|轨迹变量=m型等,下面分别进行讨论.1 1。1 1变量非对称型变量非对称型第第 8 8 页页 共共 20 20 页页个人收集整理个人收集整理 勿做商业用途勿做商业用途轨迹变量不对称地分布在选择支的两边,一边一个值,一边三个值,下面按“条件判断”中的“条件表达式”的类型来进行讨论。一、一、“轨迹变量“轨迹变量=0=0”(一)(一)“是”分支“左快右慢”“是”分支“左快右慢”,“否”分支“左慢右快”“否”分支“左慢右快”程序如图 7,“轨迹变量=0”时,左右电机的速度举例取为 10 和 5,左快右慢,机器人向右侧调整;“轨迹变量!=0”时,左右电机的速度举例取为 5 和 10,左慢右快,机器人向左侧调整;这时如果机器人起始位置在0 区域,则右转,在2,3,1 区域则左转,如图 8,其中放置在“右 0”时往右转会脱离色带。在“左 0”和“2”区域,左探测器永久落在色带之外,检测不到色带,右探测器一会儿能检测到色带,一会儿检测不到色带,相当于“右眼”看不到色带就右转,“右眼能看到色带就左转,所以机器人的轨迹落在色带左边沿左侧色带之外,程序片断如图 7。(图 7)(图 8)机器人过了起始区直到行走稳定后,轨迹变量只在“左0”和“2之间变化,机器人沿色带左边沿左侧行走,紧贴色带左边沿且沿外侧。这里左右电机的马力可适当选择,如10,0、10,1、1,0共i 55种可能,这还只是对一支的可能性i110讨论,“是”和“否”分支完全可以不对称,比如“是”分支取 10,5时,“否”分支可以取别的值,如4,9,这样组合起来可能性会更多。不一定每一种组合都能使机器人沿色带行走,某些组合可能会使机器人脱离色带,这也与色带的形状有关.(二二)“是”分支“左慢右快“是”分支“左慢右快,“否”分支“左快右慢”“否”分支“左快右慢”程序片断如图 9,和上面情况一样,只是改变了左右电机的相对速度,“是”分支改为“左慢右快”,“否”分支改为“左快右慢.在“0”区域时机器人左转,在“非0区域时机器人右转,此时只要不把机器人放在色带“左 0”区域,机器人都能寻找到色带右边沿右侧,然后稳定行走.在稳定行走后,轨迹变量只在 1 和 0 之间变化,不是 1 不是 0,不是 0 就是 1,是 0 的时候左转使其变为 1,是 1 的时候右转使其变为0,如图 10.第第 9 9 页页 共共 20 20 页页个人收集整理个人收集整理 勿做商业用途勿做商业用途(图 9)(图 10)二、二、“轨迹变量“轨迹变量=2=2”(一(一)“是“是 分支“左快右慢”分支“左快右慢”,“否”分支“左慢右快”“否”分支“左慢右快”只有在 2 时右转,其它均左转,如果左转的幅度比较大,则在区域 3,1,右 0 时会从左边沿走出去,所以“否分支的电机马力应该设置差距小一些,或者“是”分支的左右电机马力差距设置大一些,如图 11 和图 12,详细说明省略。(图 11)(图 12)(二)(二)“是”分支“左慢右快“是”分支“左慢右快,“否“否 分支“左快右慢”分支“左快右慢”(图 13)(图 14)只有在轨迹变量2 时才左转,其它情况都是右转,所以机器人的起始位置放置在3,1,0区域时都会右转脱线,只有起始位置在左0,2时,机器人才能正常行走在色带左边沿左侧,如图 13 和图 14。同理,可讨论“轨迹变量=3”和“轨迹变量=1时的情况,方法相同,不在赘述。1 1。2 2 变量对称型变量对称型条件判断左边“是”分支取两个值,条件判断右边“否分支取两个值,左右取值对称,各取 2 个值,比如2,3和1,0。一、一、“轨迹变量“轨迹变量=2=2”“轨迹变量=2,也即“是分支的轨迹变量取到 2 和 3,“否”分支取到 1 和0.(一)(一)“是”分支“左快右慢”“是”分支“左快右慢”,“否“否 分支“左慢右快”分支“左慢右快”机器人初始放置在2,3区域时,左快右慢,向右转寻找到色带右边沿左侧;初始放置在1,右 0区域时向左转寻找到色带右边沿左侧,稳定后沿右边沿左侧第第 10 10 页页 共共 20 20 页页个人收集整理个人收集整理 勿做商业用途勿做商业用途行走,初始放在“左 0”时向左转脱线,程序片断如图 15,初始状态如图 16。(图 15)(图 16)(二)二)“是”分支“左慢右快“是”分支“左慢右快,“否“否 分支“左快右慢”分支“左快右慢”机器人起始放置放置在 2 或 3 区域时,左慢右快左转,放置在 1 和 0 区域时左快右慢右转,所以放置在 1 和右 0 区域时右转会脱轨,放在左 0,2,3 区域时都能够寻找到色带左边沿左侧正常行走,当机器人行走稳定后,轨迹变量只在左 0 和2 两个值之间变化,如下图:(图 17)(图 18)“轨迹变量=2”,这里省略。二、二、“轨迹变量“轨迹变量=0=0轨迹变量轨迹变量=2=2(一)(一)“是”分支“左快右慢”“是”分支“左快右慢”,“否”分支“左慢右快”“否”分支“左慢右快”机器人放在“左 0”,“2,“3,“1”区域,都能找到色带的左边沿右侧,只有放在“右 0”处时,机器人会往右转而脱离色带。机器人在“左0”和“2区域时右转,在非“左 0,2”区域即3,1区域时左转,当行走稳定后,轨迹变量只在 2,3 之间变化,右“眼睛”始终能看到色带,左“眼睛”一会儿能看到,一会儿看不到,能看到时就左转,看不到时就右转,轨迹在色带左边沿右侧色带之内,如下图:(图 19)(图 20)(二)(二)“是“是 分支“左慢右快”分支“左慢右快”,“否“否 分支“左快右慢”分支“左快右慢”机器人起始放置在“左 0和“2”区域时向左调整而脱离色带,放在“3”和“1”区域时,向右调整寻找色带右边沿右侧,放在“右0”会往左调整寻找到色带右边沿右侧,机器人稳定后沿色带右边沿右侧行走,如下图:第第 11 11 页页 共共 20 20 页页个人收集整理个人收集整理 勿做商业用途勿做商业用途(图 21)(图 22)“轨迹变量=3轨迹变量=1等同于“轨迹变量=0|轨迹变量=2,不在赘述。其它不按从左到右左0,2,3,1,右0顺序的数据交叉情况可类似探讨,这里省略。第第 2 2 节节参数变化对轨迹的影响参数变化对轨迹的影响在编程环境中,同时设计两个以上的相同主程序,然后只修改其中一个参数,使其不同,然后在仿真环境中观察它们的行走情况进行对比。一、电机马力不同对轨迹的影响一、电机马力不同对轨迹的影响:实验实验 1 1对如图 6 结构的程序,在编程环境中,另外新建3 个主程序,复制各模块到新建的主程序中。只修改它们的电机马力如下表,其它不变,这时的四个程序都是单分支对称结构,轨迹变量0,“是”分支“左快右慢”,只有电机马力不同,请按实验结果填写下表:程序结构条件表达式左右相对速度(“是”分支)电机马力10,5单分支对称结构轨迹变量=0左快右慢10,610,710,8比较严格意义上按色带边沿.二、交换“是”和“否二、交换“是”和“否 分支电机速度后对轨迹的影响:分支电机速度后对轨迹的影响:实验实验 2 2打开程序 1,在编辑环境中,另外新建一个主程序,复制各模块到新建主程序中,只把“左快右慢”、“左慢右快”交换一下,其它不变,请按实验结果填写下表:程序结构条件表达式单分支对称结构轨迹变量=0左右相对速度(“是”分支)左快右慢左慢右快电机马力10,5机器人行走位置左边沿左侧右边沿右侧实验结果稳定比较稳定不太稳定脱轨小结小结:在高速10 的时候,低速8,就会脱轨。0低速5 轨迹会小结小结:无论是“左快右慢”还是“左慢右快,机器人都能沿边沿行走,只是轨迹第第 12 12 页页 共共 20 20 页页个人收集整理个人收集整理 勿做商业用途勿做商业用途不同。三、条件表达式不同对轨迹的影响:三、条件表达式不同对轨迹的影响:实验实验 3 3在编程界面中,编辑 4 个主程序,单分支对称结构,“是分支“左快右慢”,电机速度(10,5),按实验结果填写下表:程序结构条件表达式轨迹变量=0单分支结构轨迹变量=2轨迹变量=3轨迹变量=1左快右慢10,5左右相对速度(“是”分支)电机马力机器人行走位置左边沿左侧左边沿右侧右边沿左侧右边沿右侧小结小结:无论哪种情况,机器人都能沿色带色带行走,只是轨迹不同。也可以同时改变二个以上的程序参数,观察机器人行走轨迹.从上可以看出,无论参数如何变化,除脱线和不稳定的情况外,机器人都是沿色带边沿行走,其轨迹线有 4 条,从内到外轨迹线对应的轨迹变量值分别是左 0,2,2,3 ,3,1 ,1,右 0 。第第 3 3 节节二重分支对称结构二重分支对称结构二重分支对称结构如下图 23:(图 23)有一个一级“条件判断”和二个二级“条件判断”,左右对称,其形状是一棵满二叉树结构。二重分支对称结构可以按“沿边法”也可以“靠中法”行走,其中“沿边法”可以沿一边,也可以沿两边.一、沿边法一、沿边法1 1、沿一边沿一边比如要让机器人沿色带左边沿左侧行走,如下图:第第 13 13 页页 共共 20 20 页页个人收集整理个人收集整理 勿做商业用途勿做商业用途(图 24)无论机器人初始位置放置在“左0”,2,3,1 何处,机器人都能寻找到色带左边沿左侧,然后稳定行进。只有在“0”时右转,其它情况都是左转,其中“左 0”时右转能寻找到色带,“右 0时右转会脱离色带,程序如下:(图 25)为了使机器人在“3”和“1”转向“左 0时,曲线的曲率更小一些,可更改“3”和“1时左电机的马力为 9,程序如下:(图 26)轨迹曲线如下:(图 27)如果要沿色带左边沿右侧行走,则在“左0和“2”的时候右转,在“3”和“1”的时候左转。2 2、沿二边沿二边机器人在稳定后行走当然只能是沿一边,这里说的沿二边是指沿那个边由机器人的起始位置决定,起始放那边,就沿那个边行走,程序如下图 28.第第 14 14 页页 共共 20 20 页页个人收集整理个人收集整理 勿做商业用途勿做商业用途(图 28)由左到右,四个分支对应的轨迹变量分别是左 0、2、3、1,如果机器人起始放置在左 0,2区域,则机器人沿左边沿左侧行走,如果机器人起始放置在3,1区域,则机器人沿色带右边沿左侧行走,起始放置在“右 0”区域时右转脱线.(图 29)如果想让机器人沿左或右边沿右侧行走,只要改动条件表达式如下即可,如下图:(图 30)上图中轨迹变量从左到右分别对应 2,3,1,右 0,轨迹变量只在2,3或者1,右 0之间变化,左 0 时左转会脱线,轨迹曲线如下图:(图 31)其它情况同理,这里省略。二、靠中法二、靠中法靠中法的基本思路是:如果“轨迹变量2”,说明偏左了,就向右调整;如果“轨迹变量1”,说明偏右了,就向左调整;如果“轨迹变量3,说明没有偏,就直走。参数设置如下,三个分支从左到右对应的轨迹变量依次为2,3,1,右 0。第第 15 15 页页 共共 20 20 页页个人收集整理个人收集整理 勿做商业用途勿做商业用途(图 32)轨迹曲线如图 1.其它情况如左 0,2,3,1的研究方法同上,不再赘述。第第4 4节节三重分支非对称结构三重分支非对称结构三重分支非对称结构如下图:(图 33)它即可以按“边沿法行走,也可以按“靠中法行走。“二重分支对称结构”和“三重分支非对称结构”是“异构同原理”程序,只是形式不同,功能和原理一样。下面各只举一例加以说明,其它情况同理研究,不在赘述.一、沿边法沿一边一、沿边法沿一边假如我们想要机器人逆时针沿色带最内则行走,即沿色带左边沿左侧(轨迹落在色带外),这时轨迹变量只在左 0,2之间变化,左 0 时右转,2 时左转,其它3,1 时左转寻找色带,右 0 时右转脱离色带,程序如下:第第 16 16 页页 共共 20 20 页页个人收集整理个人收集整理 勿做商业用途勿做商业用途(图 34)轨迹如下:(图 35)二、沿边法沿二边二、沿边法沿二边假如我们想让机器人沿色带左边沿右侧或者右边沿右侧行走,即轨迹变量在 2,3或者1,右 0之间变化。则程序如下:(图 36)轨迹如下:(图 37)如果机器人起始放在2,3区域,则沿左边沿右侧,如果机器人起始放置在1,右 0处,则沿右边沿右侧,如果起始放在左 0,则脱线.靠中法同理可以研究,这里省略。第四章第四章定量分析与实际比赛定量分析与实际比赛第第 1 1 节节定量分析定量分析以上只是定性的分析了各程序和参数组合的优劣,为了参加比赛,还是要看速度的,以下定量的分析那种程序用时最短,具体做法如下:1、在色带上增加一个矩形障碍物,作为终点停止标志。2、把永久循环改为条件循环,使机器人遇到障碍物后能够停止。事实上,如果不在程序中让机器人停止,机器人遇到障碍物时也会被停止,但这两种停止是不一样的!第第 17 17 页页 共共 20 20 页页个人收集整理个人收集整理 勿做商业用途勿做商业用途程序让它停止下来后,它是真停止了,机器人不动了,时间也不动了。而被障碍停止后,机器人事实上还在动,马达还在转,时间还在走.3、增加时间检测模块。虽然在仿真界面下方有来时,它也快速恢复为 0,来不及看清楚。4、增加 LED 显示。这个模块可以加在循环体内,也可以加在循环体外,如果是加在循环体内,则 LED 时间在不断变化,直到停止;如果是加在循环体外,则只是在循环结束后才显示时间。程序如下图:,但是当机器人停下(图 38)第第2 2节节实际比赛实际比赛实际比赛有机器人走简单轨迹、机器人走复杂轨迹、机器人接力、机器人搜救等.以下仅举机器人接力的例子。在同一编程界面编制 2 个主程序,左边为接力的第一棒 0 号机器人,右边为接力的第二棒 1 号机器人.当 0 号机器人走轨迹时,1 号机器人在原地等待,当 0 号转一圈回来遇到 1 号后,0 号停止,1 号启动开始行走;1 号走一圈返回后遇到 0 号然后停止,如下图:第第 18 18 页页 共共 20 20 页页个人收集整理个人收集整理 勿做商业用途勿做商业用途(图 39)两个机器人都通过“红外避障传感器来进行“接力”,0 号机器人用前面的“红外避障变量 1”来检测,若前面遇到了机器人1 号,则停止下来.1 号机器人用后面的“红外避障变量 4”来检测,若后面有机器人 0 号到来则启动行走,同时用前面的“红外避障变量 1检测前面,若遇到前面已经停止在跑道上的 0 号机器人,则停止下来,程序如下图。(图 40)第第 19 19 页页 共共 20 20 页页个人收集整理个人收集整理 勿做商业用途勿做商业用途参考文献1班国春等.信息技术 七年级 下。深圳:海天出版社,201001。作者单位:深圳市盐田区盐港中学第第 20 20 页页 共共 20 20 页页