何文芝
在2017年国际奥林匹克青少年智能机器人竞赛(中国赛区)中,我校学生胡泽雄、贺汝成夺得机器人场地定向任务赛的金牌。
现以这次大赛为例,分享一下我在机器人教学中的一些经验。
一、组装机器人
机器人如果重心太高、速度过快就易倾倒,速度过快还会导致惯性过大,降低制动的准确度,加大编程难度。
重心所在的位置决定了机器人的行走性質,如果重心偏向一边会导致机器人无法走好直线,速度稍快就会翻车。所以应尽可能使机器人的重心保持在中心位置,必要时可加配重物来调节平衡。
由机器人零部件所组成的机器人要符合工程学的结构原理。机器人是一个体系,电机装在哪、要不要减速、用哪种方式减速等都有讲究。所选用塑料零件的强度、几何尺寸要符合要求,力求简单但不影响效果、结构紧凑但不影响性能。机器人在运动过程中绝不能出现散架或掉零件的现象。
二、编程技巧
1.直线行进
我们通常的做法是在一个循环中每隔一小段时间就比较两个电机转过的角度,如有误差立即在功率上进行补偿。
例如用于前进的两个电机B和C,在前进的同时检测B电机和C电机转过的角度,求两角度的差。如得到的是正数,说明B电机转多了,用这个正数加上原本设定的基础功率赋给C电机的功率,这样C电机的功率就略慢于B电机,弥补了误差。利用C电机和B电机的累积角度控制循环结束的条件,就可以控制机器人直线行驶的距离。
在此次比赛中,机器人转两次弯还要挑起一根在运动路径中的横杆,组装和编程时应注意横杆被挑起后不能落在机器人行驶的前方,否则机器人在前进过程中会压到横杆而改变行进方向。正确的方法是挑起横杆后让其落在机器人后方或侧面。
2.转弯
准确转弯是机器人准确走位的一项重要技能。例如此次比赛无迹可巡,只能依靠编程技巧。机器人有两个驱动轮和一个万向轮,采用弧线法的程序比较麻烦,采用转角法虽然程序简单,但风险比采用弧线法大。通过多次练习,我让学生采用单边旋转法,经过精准编程,机器人在两次经过弯道和三段直线后顺利到达终点。
3.定位
在相同的程序下,机器人从不同的位置出发可能产生完全不同的效果,所以出发定位是机器人准确性的基础。
对于其他比赛而言,出发定位可借助桌面的挡板,用挡板做一个面或一个角度定位,还可用事先准备的矩形或其他形状的定位器给机器人定位。但在国际奥林匹克竞赛中只能借助场地上的定位点定位,多次练习、记住位置方能解决问题。总之,除程序本身的容错性能之外,出发定位是保证机器人完成任务的基础。
4.加速
机器人在出发的一瞬间由静止状态变为运动状态,如果出发的功率较大,由于重心的偏离使摩擦力不够或不均衡,可能使机器人在出发时就偏离方向,在之后的行进中这种误差还会被放大,甚至导致后面的程序无法执行。所以应让机器人慢慢加速,减小出发瞬间产生的误差。
在乐高教程中有一种采用几个慢慢增大功率的移动模块来实现加速的方法。但在实践中,我发现加速的同时机器人行进的速度很不稳定,机器人会出现走走停停的现象,反而增大了误差,所以在比赛中一般不采用这种加速方法。
我们利用一个循环模块,循环的次数取决于加速后功率的大小。在循环模块的内部放一个移动模块和一个等待模块。移动模块的功率由循环次数决定,等待模块的时间取决于加速度的大小。这样就可以获得比较平稳的加速过程。
机器人是一门综合技术,需要我们在实践中不断地探索和学习,凭着自己的坚持和兴趣不断地攀登,为机器人教育事业、为人工智能的发展贡献自己的一份力量。