您好, 访客   登录/注册

机器人课堂程序教学的关键点

来源:用户上传      作者:吴林汉

  摘 要:机器人教学融合了机械原理、电子传感器、计算机硬件及软件算法等众多先进技术,它可以很好地激发学生的学习兴趣,培养他们的创新思维和创新能力。在开展机器人项目教学研究时,有一些细节问题值得我们关注。本文从机器人的程序教学和参数调整两个方面对机器人教学研究做了一定的梳理,期望对有志于研究机器人课堂教学的老师有一定的帮助。
  关键词:机器人; 程序教学; 参数调整
  中图分类号:G633.67           文献标识码:A      文章编号:1006-3315(2020)12-032-002
   最近几年一个新兴的名词越來越多地出现在人们的视野中——人工智能。什么是人工智能?这是一个很复杂的概念,简单地说,它是计算机科学的一个分支,它尝试了解智能的本质,并生产出一种新的能以人类智能相似的方式做出反应的机器,它的研究领域包括机器人、语言识别、图像识别、自然语言处理和专家系统等。可以说人工智能将是未来一段时间甚至是很长时间人类进步的发展方向。而在人工智能这么多的研究领域中,机器人教育承担起了将人工智能项目具体落实到中小学教育中的重任。
   如果说人工智能是人类进步的发展方向,那么机器人教学就是中小学综合学科的发展方向。机器人教学融合了机械原理、电子传感器、计算机硬件及软件算法等众多先进技术,它可以很好地激发学生的学习兴趣,培养他们的创新思维和创新能力。不过,在中小学开展机器人项目教学研究时,有一些细节问题值得我们关注,如果能很好地解决这些问题,那么教师在教授过程中会避免很多不必要的麻烦,学生在学习过程中也会取得更好的效果。
  一、结合学科知识讲解程序命令
   主控程序是机器人的灵魂,没有程序的机器人只是一个徒有其表没有任何作用的结构。主控程序是由一条条可以执行的命令组成,它规定着机器人的具体行为,它可能是中文也可能是英文,但不论在那种编程语言中,他都是由一个个单词组成。所以在对学生讲授命令的时候,要充分考虑学生已有的知识水平,尽量使用他们容易理解的方式,不要一味地按照教科书讲解。在进行命令编程教学的过程中,受限于中英文翻译方式和对词语理解的不同,我们经常会碰到一些不太容易讲授的命令,如果找不到好的方法,学生的理解就会非常困难。不过我们也不用太担心,因为命令已经被设计开发出来,就必然有他存在的作用。程序设计往往都是通过编写多条命令相互配合进行工作,很少有独立工作的命令。所以我们可以认真仔细地思考一下,对于一些难以理解的命令语句,我们可以重新考虑它的设计原理,再将命令使用到的结构部件进行相互联系,配合所需要的学科知识,就一定会找到有效的解决方法。
   例如:VEX机器人可以使用Graphical ROBOTC这样一种图形化的编程方式进行程序编写,在进行VEX机器人的教学时,经常会用到“前进”这样一个非常简单的动作。但是在这样一种图形化的编程语言中,前进有多种方式。“forward”是通过主控对机器整体发出前进命令,“setmotor”则是对具体的某个电机发出前进命令,还有一些其他的命令,它们都可以达到相同的效果。那么为什么一个简单的前进命令要分为这么多种操作方式呢?如果不能很好地将这几种命令进行区分讲解,就会对学生造成一定的困扰,究竟该用哪一种命令让机器人做出前进移动。“forward”命令简单易懂,实现的效果就是让机器人整体向前移动。“setmotor”命令的使用方法则有不同。如果想使用“setmotor”命令让机器人移动,通常要配合使用“wait”时间命令,这是为什么呢?因为“setmotor”命令默认规定的是机器人电机的功率(当然也可以使用其他参数),你可以简单地理解成电机转动的速度,数值越大速度越快,数值越小速度越慢。物理学公式告诉我们,速度×时间=距离。所以如果你希望使用“setmotor”命令来将机器人移动到一个你需要的位置,就一定要使用“wait”时间命令。也许有人会发现不使用“wait”命令机器人也能行走起来,那是因为如果你没有设置时间参数,主控程序就会默认你的时间参数是∞无穷大。此时如果不配合使用其他命令,你的机器人将会一直行走直到电池耗尽。
   这样一讲解是否就让学生易于理解了呢?其实类似这样的情况还有很多,往往都是因为几个不同命令去控制同一种动作的情况,所以这时我们不如换个思路,结合一下学科知识,说不定就能找出让学生易于理解的讲授方法。
  二、针对实际情况调整程序参数
   对机器人进行程序设计,就是希望它能按照设计者的意图完成各种任务。但并不是程序编写完就算完成任务了,对已经编写好的程序进行参数调整是一个很重要的过程,它决定着机器人能否精准和有效的运行。调整参数并不是靠想象和猜测就可以完成的,它需要有切实的根据,我认为可以将参数调整大致分为两个方面:1.根据机器人的物理结构进行参数调整,2.根据真实环境的状况测试进行参数调整。
  1.根据机器人的物理结构进行参数调整
   在学习机器人的初期,大家使用的机器人几乎都是一样的,它是根据教学需要而使用的基础机型。但是随着学习的深入以及竞赛的需要,每一台机器人的设计都是不一样的。它包含着任务完成的需要以及机器设计者的思维方法。所以需要根据机器人设计的物理结构进行具体的参数调整,不能“一概而论”。
   例如:通常情况下,为了保证机器人行走的稳定,设计者会设计3或4个轮子,而根据机器的结构需要和电机的有效利用,通常会使用不同数量的电机进行控制。有的设计者喜欢用电机控制前面两个轮子,这样设计出来的机器人就是前驱结构,前轮主动后轮从动。有一些设计者则喜欢用电机控制后面两个轮子,这样设计出来的机器人就是后驱结构,后轮主动前轮从动。就是这样一个小小的区别,在调整参数时就会有很大的不同。在进行转弯参数调整的时候,前驱结构的机器人因为是前轮带动后轮,这样的物理特性就导致了它会出现“转向不足”的情况,车头比车尾先完成转弯,而实际上整个机器人小车并没有完全完成转弯。所以针对这种类型的机器人,在进行转弯参数调整的时候,就要将转角调整得略大一些。那么后驱结构的机器人则刚好相反,它的物理特性决定了它会出现“转向过度”的情况。当后轮完成转向的时候,前轮已经进行了过度的转向,所以则要将转角调整的小一些。当然在条件允许的情况下,我们也可以将机器人小车设计成四驱结构,这样我们调整的转角参数就介于前驱和后驱之间。   2.真实环境的测试调参
   在对机器人进行设计程序的时候,我们通常会根据脑海中对真实任务环境记忆的印象进行编程。但这只是一个理想化的设计,并不能代表机器人最终执行的情况,它执行的结果可能和我们设计的思路很接近,也有可能相差很远。所以在设计完程序之后,很重要的一个步骤就是在真实环境中进行测试调参。(在机器人竞赛的时候,也会有勘察场地这样一个重要环节。)
   (1)地面环境。同样是机器人的行走设计,采用不同材质的轮子,在不同的表面进行移动,因为他们的摩擦力不同,都会有不同的结果。一般情况下,设计者为了追求完成任务的速度,会将机器人电机的功率调整的比较大,这样机器人行走起来会很快,完成任务的时间也会更短。但如果在表面比较光滑的场地进行移动时,这样的设计会让机器人在该停的地点停不下来,或者移动中有偏差,导致误差比较大,针对这种情况就可以考虑让机器人在停止之前做一个减速操作,这样就可以使任务完成的更加高效精准。
   (2)灯光环境。现在很多机器人套件都加上了一些传感器,这样可以帮助机器人完成更多更复杂的任务,也有越来越多的任务要求机器人按照场地线路行走完成。这就要求机器人使用色度(灰度)传感器进行巡线操作。但是在具体调参的时候,我们会发现一个很严重的问题,那就是书本上给出的参数数值,在实际环境中屡屡出错。原因就是现场的灯光环境。由于场地表面会反射现场的光,而使用传感器监测的数值也是由光线反射而来,那么同样的场地,在暖色光源下的反射数值和在冷色光源下的反射数值是不一样的,在其他不同环境光下测出的数值也会不一样。这就需要设计者在设计完成之后,根据现场环境进行调参,这样调整出来的参数才是最符合实际需要的,也才能让机器人更准确地完成现场任务。
   机器人程序的参数调整过程和物理、化学学科中的实验过程很相似,不仅要根据任务要求量身设计程序(实验),还要考虑现场情况对调整参数(实验数据)進行调整,一切都从目标任务中来,又都还原到实际情境中去。也许这也体现了机器人教学的另一种本质。
   机器人教学不仅仅是机械原理、电子传感器、计算机软硬件的结合,更重要的是培养学生分析问题、解决问题的能力,我们需要关注的也不能局限于学生在数学、物理、科学、信息技术等学科方面的知识掌握情况,更应该关注他们是如何将这些学科知识融会贯通,并根据不同任务要求,应用到实际情境中。可以说机器人教育是一种更能体现学科融合和能力应用的教育。也或许正是因为这样一种更加高级的教育方式,才让学生如此喜爱它吧。
转载注明来源:https://www.xzbu.com/9/view-15374333.htm