
基于诺宝RC环境下的机器人走简单轨迹.doc
18页基于诺宝RC环境下的机器人走简单轨迹李发成摘要:机器人走轨迹是诺宝RC的最基本应用之一,也是机器人常规比赛项目之一,走轨迹包含了程序设计的三种基本结构,能充分体现程序设计的基本思想和方法,有助于学生对程序设计思想和方法的理解本文研究的主要内容是机器人走简单轨迹,按机器人行走的的方式分类有“沿边法”和“靠中法”;按程序结构的分类有“单分支对称结构”、“二重分支对称结构”和“三重分支非对称结构”本文通过对二种行走方式和三种程序结构的研究和对比,揭示它们之间的内在联系,通过实验分析,归纳程序与参数组合搭配对机器人行走速度和稳定性的影响关键词:机器人,走轨迹,轨迹识别传感器,轨迹变量,沿边法,靠中法机器人走轨迹看似简单,但深究起来还是比较复杂的,还别说含直锐角转弯、缺口、终点标志、色带瑕疵、障碍、传感源、宽窄不一等复杂的场地,就算对于简单轨迹还是有许多情况需要讨论的本文讨论的目的是通过研究各种程序和参数的变化,对走轨迹进行定性和定量的分析和研究,总结出程序和参数的组合优劣,使机器人行走的路径尽量的短、速度尽量的快、稳定性尽量的高第一章 基础知识一、走轨迹与轨迹变量1、机器人走轨迹的概念:机器人走轨迹是指机器人在色带上行走,有时可能会临时偏离色带,但必需能再次寻找到色带,如下图1:(图1)2、轨迹变量:机器人通过“轨迹识别传感器”获取轨迹变量的值,轨迹变量的值有0、2、3、1四个,这四个值与机器人和色带的相对位置对应关系如下图2。
(左0) ( 2 ) ( 3 ) ( 1 ) (右0) (图2)² 当轨迹传感器的两个探测头都没有落在色带上时,轨迹变量==0² 当右探测头落在色带上而左探测头不在色带上时,轨迹变量==2² 当轨迹传感器的两个探测头都落在色带上时,轨迹变量==3² 当左探测头落在色带上而右探测头不在色带上时,轨迹变量==1无论机器人走轨迹程序的思路如何,都是依据上面图形和数值的对应关系来设计的二、有关说明和准备工作(一)有关说明1、为了实验方便和节省成本,本文所讨论的内容大部分是指在诺宝RC10.1的“仿真”界面下,除非在仿真界面下不能实现时,才在“实物器材环境”下2、“色带”与“轨迹”的概念:本文章中说到的“色带”是指给机器人预定的“跑道”,“轨迹”有时是指“色带”,又时是指机器人运动后留下的真实轨迹,程序设计的意图是让机器人的轨迹落在色带上,但实际情况往往并非时时如此,如图13、轨迹识别传感器的位置:仿真界面中机器人前面的两个小黑点并不是轨迹传感器的左右两个探测器,而是“输出模块”中的“发光灯”轨迹识别传感器的两个探测器应该是在机器人头部中间的地方,且离的很近,仿真机器人没有标示出来,但从实际行走过程可以观察出来。
虽然如此,但为了能直观的说明机器人位置与轨迹变量的关系,本文中“错误”地把这两个黑点当成传感器的两个探测头,可能会更好理解一些4、“左0”与“右0”的概念:“轨迹变量==0”时,是需要讨论的,它是一个比较复杂的值,程序的优劣之一是看对0的处理,在简单轨迹中会遇到0,在复杂轨迹中更会遇到为了对0有更好的理解和掌握,本文引入“左0”和“右0”的概念,无论那一种轨迹程序,都必须遵循“左0右转”、“右0左转”的原则5、区域:本文有时会按轨迹变量的值来称呼色带区域,从左到右,把色带划分为以下区域:左0区、2区、3区、1区、右0区,所谓k区域,是指轨迹变量等于k的色带区域,其中0≤k≤3,k∈Z6、本论文中速度的概念包含:(1)单独电机自身的转速;(2)左右电机的相对模糊速度,比如“左快右慢”、“左慢右快”等用语;(3)机器人的整体速度为了不引起混淆,以下把电机自身的转速说成“马力”7、假设轨迹的有效(因为轨迹不全是规则且直的)宽度为Width,机器人轨迹识别传感器的两只探测头扫描不是一个点而是有一个范围,假设这个范围的最小距离是Distancemin,则只有当Distancemin<=Width时,才可能两个探测器“同时”探测到色带。
对于窄色带,即色带宽度<轨迹传感器左右探测头的距离的色带,比如在一条宽度为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、色带制作:在同一程序和参数组合下,在不同的色带上行走,其结果是不同的,所以本文中所涉及到的程序在其它稍有变化的色带上行走是有区别的上面色带是由上、下、左、右四条色带拼接而成,某些数值之所以用到小数,是考虑到色带边沿对接合缝问题本文把用到的色带参数说明如下:位置类型宽度高度左下角坐标X左下角坐标Y下色带矩形2004014055位置类型内径外径 圆心坐标X圆心坐标Y上色带圆弧300340237.5538左色带圆弧60100140154右色带圆弧601003391552、使机器人留下轨迹:在对行走稳定性研究时,在程序的头部增加“画笔”模块且使其“落下”,记录下机器人沿色带行走时的实际轨迹,可分析不同程序、同一程序不同参数对实际行走轨迹曲线的影响3、终点标志和机器人停止:为使机器人能停止下来,在色带上增加一个矩形障碍物,被障碍物挡住后,机器人不能前进了,好象是停止下来了,但实际上并没有停止下来,电机还在旋转,从下面的“转角显示”可以看出转角还在不断地变化为了能使机器人真正停止下来,增加终点判断功能,把永久循环改为条件循环,使用接近传感器或者红外避障传感器,使机器人真的能停止下来。
4、时间显示:增加“时间检测”、“LED显示”模块,,就能在仿真界面屏幕下方的“LED显示”中显示机器人行走的时间,可分析程序的快慢优劣虽然在屏幕下方也有一个“时间(秒)”,也是显示时间,但它显示的不是机器人行走的时间,而是程序运行的时间,机器人停止后,程序还在运行,这个时间还在一直的走,只有按了 中的“停止”按钮后,时间才会停止,但是马上就归了“0”,无法看到时间,再说了,手工按停止按钮是有时间差的第2章 机器人行走的方式按机器人的行走路线,机器人走轨迹的方式大致有以下两种:一、沿边法:设轨迹变量的5种(左0和右0不同)取值从左到右分别是“右0”、2、3、1、“右0”设其对应一个数组a[0]、a[1]、a[2]、a[3]、a[4],(说明,其实4≡0 mod(3))对于a[i]和a[i+1],{i|0≤i≤3,i∈N},当“轨迹变量= =a[i]”时,机器人向右调整,左快右慢,当“轨迹变量= =a[i+1]”时,机器人向左调整,左慢右快除初始状态外,在机器人行走比较稳定的情况下,只让轨迹变量在相邻两个值a[i]和a[i+1]之间变化,如{左0,2}{2,3}{3,1}{1,右0},这时机器人的轨迹是沿色带的边沿行走,轨迹变量的变化与轨迹位置关系如下表:轨迹量变探测器的位置轨迹线位置{左0,2}机器人左“眼睛”沿色带左边沿行走轨迹线在色带之外{2,3}机器人右“眼睛”沿色带左边沿行走轨迹线在色带之内{3,1}机器人右“眼睛”沿色带右边沿行走轨迹线在色带之内{1,右0}机器人左“眼睛”沿色带右边沿行走轨迹线在色带之外四条轨迹线如下图:(图5)(二)靠中法:如果“轨迹变量==2”,说明机器人偏左了,就需要向右调整到色带上,使“轨迹变量==3”;如果;如果“轨迹变量==1”,说明机器人偏右了,就需要向左调整到色带上,使“轨迹变量==3”;如果“轨迹变量==0”,说明机器人脱线了,两个探测头都检测不到色带,这时机器人有可能在色带的左侧,称为“左0”区域,也可能是在色带右侧,称为“右0”区域,当不能具体确定机器人的位置时,就要分情况讨论,让机器人“螺旋式”行走以扩大搜索范围来寻找色带,寻找到色带后还存在一个方向问题,不然可能会走回头路。
详细如下表:图示轨迹变量左眼看轨迹右眼看轨迹相对轨迹中线的偏离方向调整方向电机速度==1能看到看不到偏右了向左调整左慢右快==2看不到能看到偏左了向右调整左快右慢==3能看到能看到没偏直行左右等速==0看不到看不到脱线了寻线分情况以上的想法是“对”的,如果“轨迹变量==2”,说明偏左了,就向右调整;如果“轨迹变量==1”,说明偏右了,就向左调整;如果“轨迹变量==3”,说明没有偏,就直走这只是编程人的一厢情愿,别说实际,就连理论上也不是这么回事机器人的状态无论是由“2”还是由“1”变化为“3”的瞬间,它的中心轴线和色带在该点的切线都有一定的夹角α,而沿这个夹角进入“3”后,机器人所谓的“走直线”其实是在走斜线,要使机器人能真正走“直线”,就得使机器人进入“3”状态后旋转一个角度α,使机器人先“调正”,但诺宝程序没有这样一个计算角度α的功能,所以只能任由机器人一会儿左,一会儿右,一会儿沿边,一会儿靠中间来来回回的变道,轨迹曲线相当不稳定,如图1第3章 程序设计机器人走轨迹的程序其分支结构是一棵树,一棵完全二叉树,其中单分支对称结构和二重分支对称结构是满二叉树结构,树根、树枝为条件判断,动作发生在树叶。
第1节 单分支对称结构单分支对称结构是指条件判断的两侧是对称的,左右都是一个“高速电机”,该结构走轨迹具有一定的稳定性和用时少(如走跑道内侧)的特点;并且对单分支结构编程的分析更有助于学生对轨迹变量的深入理解,单分支对称结构如下图6:(图6)在单分支对称结构程序中,“条件表达式”可以有多种形式,分为“变量对称型”和“变量非对称型”所谓“变量对称”是指轨迹变量0,2,3,1四个值均匀地分布在选择支的两边,一边两个;“变量非对称型”是指轨迹变量的四个值不均匀地分布在选择支的两边,一边一个,一边三个这由条件表达式的形式来决定,具体的形式有如下类型:“轨迹变量= =n”型、“轨迹变量>=n”型、“轨迹变量<=m”型;“轨迹变量==n||轨迹变量==m”型等,下面分别进行讨论1.1变量非对称型轨迹变量不对称地分布在选择支的两边,一边一个值,一边三个值,下面按“条件判断”中的“条件表达式”的类型来进行讨论一、“轨迹变量==0”(一)“是”分支“左快右慢”,“否”分支“左慢右快”程序如图7,“轨迹变量==0”时,左右电机的速。
