您的当前位置:首页大道至简,精于心,简于行——浅析光感巡线在EV3编程实践中的设计与优化

大道至简,精于心,简于行——浅析光感巡线在EV3编程实践中的设计与优化

来源:小侦探旅游网
《中国教育信息化》编辑部:***********.cn创新探索大道至简,精于心,简于行—浅析光感巡线在EV3编程实践中的设计与优化——邵宗敏渊腾冲市第一中学袁云南腾冲679100冤摘要院文章聚焦于光感巡线的设计与优化袁对EV3光感巡线中存在的误区进行了梳理甄别袁对光感巡线中的常见方法进行了概念化的概括袁对所总结出的野最值法冶野均值法冶及野差值法冶等方法的设计与优化逻辑进行了梳理遥通过分析推导尧追根溯源和抽丝剥茧式的追问袁力求打通横亘在学生心中的脉络误区袁让学生在野大道至简袁精于心冶的内化引导下袁做到在实操中野简于行冶的目的遥关键词院光感巡线曰EV3编程曰设计曰优化中图分类号院G431一尧问题的提出光感巡线是机器人学习的基础袁是青少年机器人培训的必修课遥在青少年机器人竞赛活动中袁光感巡线作为任务单列虽然罕见袁但它是完成相关任务不可或缺的重要手段遥PID巡线是公认的较为稳定的巡线方法遥但要用好PID巡线技术袁需要具有一定的高等数学和控制技术基础袁对于中小学生来讲袁并不是一件容易的事遥要让中小学生真正弄懂光感巡线的相关理论知识袁也是不现实的遥正因为如此袁在青少年机器人培训中袁让学生野模仿冶教师的范式来完成相关学习任务成为教学中的常见现象遥若任由这种野模仿冶盛行袁将与培养青少年的动手实践能力和创新精神的初心相去甚远遥事实上袁在培训中袁指导学生通过分析袁激发学生对科学技术和机器人的兴趣袁远比让学生通过野模仿冶在竞赛中取得野优异冶成绩重要得多遥对于学生来说袁在自己理解的基础上做出来的东西袁学到的就不仅仅是内容袁还有思维的锻炼和方法的扩展遥那么袁我们能不能把光感巡线的方法尧原理用一种基于学生现有的知识或经验袁用一种通俗易懂的语言告诉他们钥答案是肯定的遥老子云院野万物之始袁大道至简袁衍化至繁冶遥虽然世事纷繁复杂袁但其中的基本原理尧方法和规律其实是很简单的袁甚至简单到一两句话就能说明白遥让光感巡线回归学生日常经验和现有知识袁是本文致力解决的问题遥二尧问题的界定在EV3机器人中袁颜色传感器作为一种数字传感器袁可以检测到进入传感器检测范围内的颜色或光强图1色感模式图2光感模式文献标志码院B文章编号院1673-8454渊2020冤24-0037-06度袁是机器人数据获取的重要设备袁巡线是其获取数据的一种重要方法遥EV3颜色传感器设有颜色模式尧反射光强度模式和环境光强度模式三种检测模式遥在巡线中袁我们通常用的是颜色检测模式渊以下简称色感模式冤和反射光强度模式渊以下简称光感模式冤袁而环境光强度模式是通过检测外环境光的亮度和外光源照射到传感器的时间袁用于设定动作的启停等功能遥在色感模式中袁颜色传感器可识别黑尧蓝尧绿尧黄尧红尧白尧棕7种颜色及无颜色渊见图1冤遥在光感模式中袁颜色传感器可以测量从发光灯反射回来的光强度袁其测量范围在0渊极暗冤到100渊极亮冤之间渊见图2冤遥应该说袁色感和光感这两种模式袁都能满足巡线的要求袁并且很多时候需要色感尧光感两种模式配合才能高效尧顺利地完成巡线任务袁达到快速尧准确巡线的要求遥对于初学者来说袁色感模式巡线因只需要判断出7种颜色即达到巡线的要求袁简单尧直观袁很容易上手遥但随着学习的深入和实际场地的复杂化袁我们就会发现袁仅仅依靠色感模式巡线袁往往无法完成巡线的要求袁必TheChineseJournalofICTinEducation37创新探索须要光感模式配合才行遥主要原因有两点院一是场地颜色往往不止7种曰二是在实场中袁相近尧相似的颜色很多袁颜色归类是一件十分不易的事情遥在光感模式中袁颜色传感器并不关心颜色的差异袁而是通过检测发光灯照射场地反射回来的光强度渊以下称为反射光冤达到巡线的目的遥理想状态下袁极暗渊黑色冤返回值为0袁极亮渊白色冤返回值为100遥由此我们可以看出袁光感模式实际上是把千差万别的场地颜色进行了灰度化袁并根据反射光的强度在[0袁100]间赋值袁在极黑到极白变化的过程中3冤遥小袁操作起来反而更简单所以袁光感模式因没有颜色的差异袁灰度逐渐变化袁数值逐渐增加袁适应性更强遥这是光感巡线模袁只有数值的大渊见图式的优势所在袁也是本文采用光感巡线进行讨论的主要目的遥图3场地野灰化冶示意图巡线中袁我们可以使用的光感1要4个不等袁但主要还是以野单感巡线冶和野双感巡线冶两种为主遥这两种巡线模式也是我们探讨的主要内容遥三尧误区与甄别受习惯性思维的影响袁在我们的认知范式中袁往往会无意识地把野巡线冶理解为野压着线前进冶袁即把野巡线冶等同于野循线冶遥表述为条件与任务的关系袁就是以下三种渊见图4冤院光感在线左寅机器人右转曰光感在线右寅机器人左转曰光感在线上寅机器人压线前进遥且不说野双感巡线冶存在是让左感压线还是右感压线的双难问题袁在单感巡线中袁要让机器人执行上述的条件与任务也是比较困难的遥在图4中袁光感能检测得到的值其实是有限的院一是光感在线上袁反射光的值最小袁理想状态为0曰二是图4单感野循线冶示意图光感在线左或线右袁反射光38中国教育信息化辕2020.24《中国教育信息化》编辑部:***********.cn的值相等且最大袁理想状态为100遥我们知道袁机器人的反应渊任务冤与变量渊条件冤只有一一对应袁程序才能够有效执行遥即同一条件下袁机器人只能做出一种反应遥让机器人在同一反射值下完成左转或右转两个任务袁同样是双难问题遥在百度汉语中袁野巡冶释义为野往来查看冶曰而野循冶才具有野反复寻找线的位置巡线野遵守冶袁要求的并不是尧依照尧沿袭冶袁作为前进的参考野的意思压线前进遥所以说在光感巡线中的冶袁而是冶遥这是我们需要厘野不断地来回尧清的第一个误区遥说到野前进冶时袁我们的第一反应往往是野直线前进冶遥据此袁图4中条件与任务的表述为院条件院无线钥有线钥任务院左转浴右转浴前进浴根据条件与任务一一对应的要求袁让机器人在两个条件下执行三个任务袁是无法完成的遥实质上袁野前进冶并不总意味着要野直线前进冶遥直线前进袁只是两点间的最短距离而已袁但并不是唯一方法遥例如袁汽车从山脚到山顶袁总是通过盘山公路不断地野左转前进冶或野右转前进冶而到达山顶的渊见图5冤遥图5盘山公路渊网络图片冤所以巡线的重点在于野巡到线后寅前进冶袁并没有要求野直线前进冶遥像盘山公路一样袁左转前进或右转前进袁同样是前进中的方法遥由此袁图4中的条件与任务表述就变成了一一对应的关系院条件院无线钥有线钥任务院左转前进浴右转前进浴实质上在巡线中袁野直线前进冶不仅在方法上无法判断袁在实际操作中也是不可取的遥在实际场地中袁需要使用巡线方法的往往不会是直线遥这是我们需要厘清的第二个误区遥《中国教育信息化》编辑部:***********.cn100袁100]遥我们知道袁EV3机器人转向的取值范围为[-转向袁依50表示直角右转或左转在非巡线状态下袁负值向左转向袁依100则分别表示向右袁正值向右或向左调头遥据此袁我们会固化地认为袁依50同样是巡线状态下的最大转向值袁而大于或小于这个值时机器人就会走野回头路冶袁这实际上是对巡线转向的另外一种误解遥事实上通过实操袁我们就会发现巡线中设置的角度就算是超过依50袁甚至是设值为依100袁只要电机功率适当都能完成巡线任务袁并不会野回头冶遥这是什么原因钥通过探究分析袁我们不难发现巡线中的条件与任务袁实质上是一种野循环性任务冶遥上例巡线中的条件与任务袁译成执行程式就是院如果野有线冶执行的任务是野左转前进冶袁那么野无线冶执行的任务则是野右转前进冶袁并如此循环噎噎反之亦然遥这就是为什么只要电机功率适当袁设置的值无论大小袁均能完成巡线任务的原因所在遥实质上袁值的大小反应的是转向的响应速度和效率100向目标靠近时袁表示的其实是需要让机器人以最大的转向速度遥例如袁转向值为原100或袁这是在巡线中我们需要厘清的另外一个问题遥四尧光感巡线的常见方法渊1冤结合变量与反应一一对应要求单感野最值法冶袁图4示例条件与任务的关系袁可转化为实质相同的左尧右两种巡线模式渊见图6冤袁在此我们以左巡线模式进一步说明院如果野无线冶执行的任务是野右转前进冶袁则野有线冶执行的任务就是模式野左转前进冶遥冶袁在这里我们把这种巡线方法称为野左巡线图6单感巡线示意图7冤遥这样袁接下来的编程也就瓜熟蒂落尧水到渠成渊见图渊左巡线模式下列程序中冤袁也可以是最小值袁反射值是一个实测参数渊右巡线模式袁可以是最大值冤遥两种模创新探索左巡线模式右巡线模式图7单感野最值法冶式逻辑相同袁没有实质的差别袁在实操中可以根据自己的习惯选用遥在这里我们不妨把这种通过测最大值或最小值作为执行条件的方法称为单感野最值法冶袁简称野最值法冶遥渊2冤光感是供机器人获取数据的主要设备双感野最值法冶袁野双感冶相对于野单感冶来讲袁意味着可以获取更多的数据条件袁从而让机器人执行巡线的方法变得更加多样遥需要说明的是袁为了让野双感巡线冶能获得可供比较和执行的有效数据袁双感的安装建议采用平行安装方式袁且要间距适当袁略大于野线冶宽遥间距过大袁转进幅度就会很大曰距离过小袁双感反射光就会同时野巡到线上冶袁获取的数据就没有参考价值遥根据条件与任务一一对应要求渊见图8冤院袁不难得出野双感巡线冶的以下执行关系图8双感巡线示意图TheChineseJournalofICTinEducation39创新探索淤于右光感碰到线盂左光感碰到线寅寅向右转进浴这样左右光感都没碰到线向左转进袁接下来的编程也就变得十分简单寅直行浴浴渊见图9冤遥图9双感野最值法冶事实上袁这里的双感巡线方法仍然是通过检测野最值冶作为执行条件袁其原理和方法与单感野最值法冶是一样的袁也可称为野最值法冶遥区别在于其最值源于双光感野最值法袁由左右光感各提供了一个冶相区分袁不妨把其称为野最值野双感最值法冶遥如果需要与单感值法冶遥冶或野双最进或向右转进野最值法冶袁以达到巡线之目的的原理是通过探测最值和不断地向左转遥利用野最值法冶巡线袁能实现简单的巡线任务袁但在实操中的最大问题是摆动幅度特别大袁巡线稳定性差遥特别是野双最值法冶袁并没能因获取数据的增加而让机器人变得更加平稳袁从而失去了增加光感的意义遥那么有没有一种方法袁在现有获取数据条件不变的情况下袁通过最大化地利用现有数据袁让机器变得更加平稳渊1冤如果我们对单感单感野均值法钥冶答案是肯定的遥野最值法冶进一步剖析就会发现袁其野光冶与野线冶的位置关系,无外乎有以下5种情况渊见图10冤院淤于反射光在线左反射光在线上且偏左曰曰图10野光线冶位置关系图40中国教育信息化辕2020.24《中国教育信息化》编辑部:***********.cn盂榆反射光在线上且居中虞反射光在线上且偏右曰曰那么反射光在线右袁这5种位置关系在巡线中遥袁谁需要转向的角度最大钥谁需要的最小钥根据最值法中野极值转进冶的原理袁我们不难得出淤尧盂尧虞需要转向的角度最大袁于尧榆需要转向的角度最小盂尧虞袁甚至不需要转向的判断遥因为分居于左巡线和右巡线的条件正中是巡线中的野极值冶位置袁是转向的条件袁是最理想的前进位袁于和榆淤尧则置袁是不需要转向的渊见图11冤遥左巡线右巡线图11单感巡线野光线冶图根据光感巡线中灰度在极值间渐变的原理袁不难推断出于尧榆灰度值即为最大尧最小两个极值之均值的结论遥由此袁可推导出以下转向关系式院转向值越光感实测值-最大值+2最小值12冤遥这样在这里袁完成实测数据的编程也就顺理成章袁我们把这种利用实测数据获取均值袁渊达到见图减小机器人摆动幅度袁增加巡线平稳性的方法叫做野单感均值法冶袁简称野均值法冶遥图12均值法渊左巡线模式冤渊2冤前面说过双感野差值法袁双感野冶最值法冶不能因光感的增加而使巡线更加稳定是一大憾事遥事实上袁双感获取到的数据与表1理想状态下光感数据与动作关系光感位置双感数据执行动作转向值右光感在线上[100袁0]向右转进100左光感在线上[0袁100]向左转进-100两光感均在线外[100袁100]直行0《中国教育信息化》编辑部:***********.cn单感相比其实是翻倍的袁只是没有被很好地利用而已遥下面我们以理想状态为例袁分析图8中不同光感位置所获取数据尧执行动作及转向值间的关系袁如表1所示遥我们发现了什么规律钥就是左右光感数据的差值尧转向值与执行动作其实是相互对应的遥而这种对应关系袁即使在非理想状态下同样成立遥所以不难推导出以下转向公式院转向值越左感实测值原右转实测值把该公式换成机器人能执行的程序袁就如图13所示遥在这里袁我们把这种通过计算左右光感实测值的差值来确定转向的方法称之为野差值法冶遥野双感差值法冶袁简称图13差值法五尧光感巡线优化要要要影响因素探讨及控制野野最值法为方便表述感巡线通用最值转进冶野均值法袁我们把以上所探讨的方法分别称为冶袁的原理和方式来达到巡线的目的冶和野差值法冶遥其中野最值法是光感巡线中的基础方法遥其优点是原理袁冶为单是通过尧双简单尧法遥这两种方法因能根据实测数据实时修正转向系数并野便于理解均值法冶和袁缺点是平稳性差野差值法冶分别是单遥尧双感巡线的常用方及时转进袁增加了机器人的稳定性遥从理论上讲袁这两种方法已经解决了最值法存在的问题袁提高了巡线的平稳性遥但通过实测就会发现袁两种方法在巡线中均存在效率性问题袁很难满足实际的训练和比赛要求袁并不具有适用性遥其实袁在野均值法冶和野差值法冶的编程中袁电机功率都是设置得很小的遥换句话说袁就是机器人的稳定性是通过牺牲巡线的速度来实现的遥如果我们把电机功率加大袁会出现什么样的情况钥通过实测袁我们就会发现无论是哪种方法袁只要功率稍微增大袁机器人就会野脱线冶袁甚至在功率不变的情况下袁只要线的曲度较大时袁同样也会发生野脱线冶现象袁根本无法达到巡线的要求遥这是什么原因钥回答此问题之前袁让我们先来回顾一下物理中野运动小车受力分析冶的经典案例院在水平道路上运动的小车袁在水平创新探索方向会受到牵引力和摩擦力的作用遥当牵引力大于摩擦力袁小车作加速运动曰当牵引力等于摩擦力袁小车作匀速运动曰当牵引力小于摩擦力袁小车作减速运动遥此案例之所以经典袁不仅因为这是最简单的物体运动受力分析的例子袁更在于该案例知识均是基于我们日常的生活遥在这里袁我们并不探讨速度与力或各种力间的相互关系袁仅仅是为了说明物体在水平运动中都是有摩擦力存在的遥另外袁我们还有这样的经验袁在百米赛跑时袁冲到终点后往往还要继续往前跑一段距离袁若突然拐弯或立刻停下来袁跑步的人往往会摔倒袁这是为什么钥这是因为有惯性的存在遥简单来讲袁惯性就是物体保持静止状态或匀速直线运动状态的一种性质袁是物体对其运动状态改变的一种阻抗遥惯性是物体的一种固有属性袁其大小与物体质量相关遥当我们了解了运动中的物体其实都会受到摩擦力野均值法冶和野差值法尧惯性等因素影响时冶中机器人野脱线冶袁的原因回过头再来看在言而喻了遥袁答案就不首先袁受光线尧色差等环境因素的影响袁实际巡线场地基本都无法达到理想状态袁即反射光的最大值无法达到100袁最小值也不可能为0遥因此袁实际的转向最值并不能达到理想转向值遥其次袁引进野均值法冶和野差值法冶的目的袁本身就是要让机器人稍有偏移就能及时转向袁从而达到使机器人平稳前进的目的遥所以在实际的应用中袁实际转向值通常会非常小遥最后袁由于机器人自身惯性和摩擦力的存在袁机器人在转进时会由于惯性和摩擦力共同产生一个转向阻力袁抵消了部分转向牵引值袁当转向值小于或等于阻力值时袁机器人就会发生野脱线冶前进的情况遥那么袁如何解决野脱线冶的问题钥答案是增大转向值袁让转向的实际牵引值始终大于转向阻力值袁即让机器人的牵引值在抵消阻力值后袁让实际转向值还具有牵引力袁这样就能真正达到转向的目的遥那么袁如何增大转向值呢钥加入比例系数是一种不错的方法遥因为在实地操作中袁光感实测值会随位移尧时间的变化而实时变化袁转向值也需要根据偏离的大小实时进行调整遥加入系数后袁就能让转向值根据光感实测值进行同比例实时变化遥接下来袁要研究的问题就是要加入多大的转向系数才合适钥这是一个难点袁因为在实际应用和实地操作中袁适合的转向值需要根据功率大小尧巡线的曲直度及平稳性等要求作出相应的调整袁才能满足实操的要求遥TheChineseJournalofICTinEducation41创新探索例如袁要让机器人平稳些袁转弯值就不能过大袁系数也相应的要小袁但如果功率较大或巡线的弯曲度较大袁就需要较大的转弯值才能完成巡线要求袁相应的系数也要增大遥当然袁转向系数的设置虽然会受多种因素的影响袁但还是可以根据光感值和转向值的关系袁快速尧准确地计算出一个具有实操意义的参考值遥那么袁如何计算转向系数的参考值钥在前面野均值法冶和野差值法冶的案例中100渊分别为最大值袁我们知道在理想状态下依50和冤或依100袁0渊最小值即机器人分别以应以冤时袁机器人的极值转向值袁即当光感值为依50或依100转向速度向目标靠近遥虽然在非理想状态下袁光感的最大值或最小值无法达到100或0袁但这并不意味着我们不能通过比例系数把转向值设为依100遥所以袁我们不防设在任何状态下袁与光感最大值和最小值相匹配的转向的野最值冶均为依100遥这样袁转向值的计算也就迎刃而解了渊1冤遥在均值法中均值法的设计与优化袁因为要要要均值系数法转向值越光感实测值-最大值+2最小值加入转向系数后袁则变为转向值越渊光感实测值-最大值+2最小值冤伊转向系数我们不防设实测光感最大时转向值为100袁则有渊最大值-最大值+2最小值冤伊转向系数越100所以转向系数越200最大值一最小值故图12所示均值法的执行程序袁加入转向系数后袁可进一步优化为图14中的执行程序遥在这里袁为了与前面的均值法相区别袁我们不防把这种加入了转向系数袁进行了设计与优化的方法称为野均值系数法冶遥图14均值系数法42中国教育信息化辕2020.24《中国教育信息化》编辑部:***********.cn渊2冤在差值法中差值法的设计与优化袁因为要要要差值系数法转向值越左感实测值原右感实测值加入转向系数后则变为转向值越渊左感实测值原右感实测值冤伊转向系数我们不防设实测光感差值最大时袁转向值为100袁则有渊左感实测值原右感实测值冤伊转向系数越100所以转向系数=100左感实测最大值原右感实测最小值故图13所示的差值法的执行程序袁加入转向系数后袁可进一步优化为图15中的执行程序遥图15差值系数法为了与前面说的差值法相区别袁我们不防把这种加入了转向系数袁进行了设计与优化的方法称为野差值系数法冶遥需要说明的是袁上述公式中的转向系数仅仅是参考系数袁在实操中需要结合场地实际进行相应的微调遥六尧结束语本文通过聚焦于光感巡线的设计与优化袁对EV3光感巡线中存在的误区进行了梳理甄别袁对光感巡线中的常见方法进行了概念化的概括野均值法冶和野差值法冶等概念遥理论上讲袁提出了袁光感巡线的原野最值法冶理极其简单袁并不需要花费如此精力进行探讨遥野本文进行相关探讨的真正目的袁意在通过对我们注几种方法的设计与优化逻辑熟视无睹冶的常用方法进行总结提炼的同时袁通过持续的分析推导袁更加关尧追根溯源袁运用抽丝剥茧式的追问袁打通横亘在学生心中的脉络误区袁深化学生对相关知识的理解和内化遥古语云院纸上得来终觉浅袁绝知此事要躬行遥引用在本文中袁是否可以理解为实眼看到的外化应用袁并不代表我们真正理解了相关应用的逻辑与原理遥若要真正理解袁并达到烂熟于胸和操纵自如袁就必须进一步躬身深究和探索遥这也许就是国家大力倡导探究性学习的真正意义所在遥(编辑院李晓萍)

因篇幅问题不能全部显示,请点此查看更多更全内容