1、2016 江苏省计算机教学年会1浅谈 FLL 竞赛机器人的搭建及编程 作者: 周洋单位:泰州技师学院地址:江苏省泰州市龙轩路 9 号邮编:225300字数:3412 字2016 江苏省计算机教学年会2浅谈 FLL 竞赛机器人的搭建及编程摘要:在 FLL 机器人竞赛中,基础小车的搭建是完成任务的基础,完成任务的准确性和稳定性有很大一部分因素取决于基础小车的搭建,本文从驱动轮、从动轮、重心、传感器、电机等几个方面来探讨基础小车的搭建问题以及阐述了在比赛中常用 PID 巡线技术。关键词:FLL、机器人、传感器、搭建、PID、巡线近十年,机器人竞赛越来越普及,种类也非常繁多,这些比赛对促进青少年的发现
2、问题、解决问题的能力有着很大的提升作用,与当前所倡导的素质教育不谋而合。许多大学目前也开设了机器人专业,家长的教育理念也有所更新,机器人教育也符合孩子们的天性,种种原因都使得机器人教育和机器人比赛蓬勃发展,一片欣欣向荣。其中 FLL 比赛是较为复杂,对青少年的能力考验要求比较高的一项比赛,在该项赛事中,机器人的结构搭建又是完成比赛中各项任务的基础,本人近几年多次指导学生参加江苏省青少年机器人大赛获得一等奖,现将一些搭建和编程的经验与大家分享,希望对参赛者能有所帮助。一、 驱动轮和从动轮的要求乐高器材中可以用作驱动轮的轮子很多,有大、有小、有宽、有窄,在比赛中很多参赛队都各有采用。这些轮子在走直
3、线时是没有什么误差的,主要的误差来自于拐弯,太宽的轮子由于场地不是绝对平整的,在拐弯的时候的中心点就没法确认,导致拐弯的误差较大,所以应选用较窄的轮子误差较小。直径大的轮子可以实现较快的速度,但同时惯性较大引起误差;直径较小的轮子速度较慢,2016 江苏省计算机教学年会3但误差较小。轮胎与周围结构件的距离要空开 2 毫米以上的距离,防止轮胎与结构件摩擦引起误差。从动轮不宜选择万向轮,因为万向轮的在结构上不够稳定,会引起转向的误差,可以选择转动灵活的普通轮毂在作为从动轮。通常两动力轮之间的距离在 1518 厘米左右,动力轮与从动轮的前后轴距在 1420 厘米左右。二、车体重心的要求在垂直方向,为
4、了车体的稳定,整机的重心应该尽量靠下,在乐高所有的器件中控制器(包括电池)和电机的重量是比较大的,所以这些零件应该装在较低的位置。在水平方向,整机的重心应该离驱动轮较近,离从动轮较远,两者的距离大约为 1:2。如果重心离驱动轮较远,那么驱动轮就有可能会打滑,引起比较大的误差;如果重心离驱动轮太近甚至就落在驱动轮上,那么在行进的过程的惯性就会引起车辆的点头和抬头,从而引起误差。三、 传感器的使用乐高提供的传感器种类很多,但能够在 FLL 比赛中发挥作用的却很少。光电(颜色)传感器在比赛中使用频率较高而且是必不可少一个传感器,可以用单光电来巡线定位,常用的定位算法是 PID算法,但在实际比赛中往往
5、只要用到 P 算法就可以达到要求。可以用双光电来进行垂直定位,在车辆的左右水平位置各安装一个光电传感器,左侧的传感器控制左轮,右侧的传感器控制右轮,左侧的传感器检测到黑线左轮就后退,检测到白色左轮就前进,右侧也是一样,这样就可以达到与黑线垂直对齐的目的。可以用单光电光电巡线+光电定位,一个光电传感器负责巡线,另一个光电传感器负责检测旁边垂直的黑线,一但检测到黑线,机器就可以进行下一步动2016 江苏省计算机教学年会4作,例如停下来完成任务等。角度传感器也使用得比较多。它是集成在电机内部的,用来反馈电机旋转的角度,是非常重要的控制电机的手段。超声波传感器可以用在对精度要求不是很高的任务上,因为小
6、车前进的速度和超声波本身都会对距离的判断带来误差,使用的距离也应该控制在 412 厘米左右,太近或太远都会有较大的误差。触碰传感器可以用在启动机器和靠墙对齐时使用。可以利用按一下触碰传感器来启动机器或是在比赛过程中再次启动机器。靠墙对齐就要求在机器的最后面的水平对称位置安装两个触碰传感器,一但两个传感器同时被按下就说明对齐成功,可以进行下一步动作。至于陀螺仪、声音传感器、温度传感器在 FLL 比赛中都不适合使用。四、 车身形状的要求首先整个车体的结构要非常稳固和结实,不能再比赛中有零件松脱的现象。结构不稳固会在行进中引起跟距离成正比的误差。如有零件松脱了,裁判会进行判罚。第二,车辆的前后左右最
7、好使用圆弧或倒角的结构,不要使用直角,这样在车体拐弯的时候可以减少碰到模型或墙壁的概率。第三,车体后面做成一个平面或在左右两边做出两个凸起,用来进行靠墙对齐。第四,如果需要安装导向轮,那导向轮的位置一定要在驱动轮的前面,不要超过墙壁的高度。第五,车辆的四周要平滑,要留下固定点。这样就可以方便地安装和拆除策略物。五、 控制器和连接线的要求控制器最好是横放在车辆上,否则重心不太容易控制。控制器2016 江苏省计算机教学年会5的下载口的空间要预留出来,否则无法下载程序。控制器要方便拆卸,这样可以方便更换电池和充电。连接线要尽量藏到车辆里面去,千万不能鼓在旁边,更不能碰到传动部件,这样会严重影响任务的
8、执行。六、电机的选择要求目前主流的电机主要是 NXT 电机和 EV3 电机,在实际使用中EV3 电机在启动时的误差要比 NXT 电机要大,所以我们通常使用 NXT电机。电机要挑选两个最为接近的电机,在挑选时可用一根轴连接两个电机,然后让两个电机同时转动,在启动时比较平顺,没有跳动的即可作为一对电机来使用。七、巡线算法巡线是 FLL 竞赛中一项非常重要的支撑技能。有了它机器人就能在场地上准确定位,完成任务;有了它机器人就能充分利用场地上的线路,提高速度和准确性。在一般的教材中提到的往往是由传感器判断黑白位置,控制器控制左右轮交替前进的方式,该方式车体摆动较大,定位的精度不够,所以在比赛中失误较多
9、。为了能够达到比赛精度,我们往往采用的是 PID 算法巡线。1、PID 巡线的 P 算法有了稳定的好的车体,下面就欠缺好的算法了。机器人在巡线的时候巡的是黑白的交界线,用我们的肉眼看这条分界线是黑白分明,黑色的光线暗而白色的光线亮。实际上光线不论从暗到明还是从明到暗都不是跳跃的而是线型变化的。我们利用这个线型的变化值来确定机器人的位置,来确定驱动轮电机的功率,从而修正位置。通常我们用于驱动的电机都习惯是 B 和 C(因为程序默认 B 和2016 江苏省计算机教学年会6C) ,依照前进的方向,左侧的为 B 电机,右侧的为 C 电机。假定黑色路线的平均光线值为 5,白色部分的光线值为 55,那么平
10、均值 30我们就可以看成是黑白分界线的值,换句话说就是传感器测出的值为 30,那么我们就确定传感器的位置在分界线上,值越小就越靠近黑线里面,值越大离黑线就越远。我们以巡右侧的分界线为例来说明一下算法。首先由传感器测出当前的光线值,然后用平均值减去当前光线值,若差是正值则说明偏黑线部分,这时 B 电机应该功率大,C 电机应该功率小甚至是负值。用该差值乘以一个 0 到 1 的系数(该系数由光电跟驱动轮的距离和驱动轮的大小决定) ,得到一个新数值,用该新数值加上一个基础功率(该功率越大前进越快,车辆越不稳定,反之亦然)就得到 B 电机的功率;用基础功率减去该新数值就得到 C 电机的功率,这样就实现了
11、调整机器人位置的目的。这里的关键就是根据需要找好系数和基础功率,这两个值直接决定了巡线的速度和稳定性,而这两点往往是矛盾的,所以要找好平衡点。2、PID 巡线的 I 算法以上的 P 算法对于一些比较平滑的线路已经能够做到比较好的巡线精度了,但对于弯曲度比较大的曲线或是急拐弯就显得不够了,那就要加入 I 算法。每次计算出当前光线值和平均值的误差后,将这个误差存到一个变量中,那么就会出现这样一个公式:变量=变量+误差,如果线路比较平滑,那么误差有正、有负,所以大部分的误差是可以抵消的,变量趋近于零。但对于曲度较大的线路,引入该算法后就可以修正误差,我们最终希望变量趋近于零,得到较为平顺的行进线路。
12、具体做法是我们将累累积的误差,也就是这个变量加到 B 和 C 电机的基础功率里,还是以巡右侧线为例,基础功率加2016 江苏省计算机教学年会7上变量赋给 B 电机;基础功率减去变量赋给 C 电机即可。3、PID 巡线的 D 算法前面的 P 算法用于修正当前的误差;算法用于修正累积的过去的误差。D 算法就是用于预测未来的误差给予修正。假定误差的下一个变化与当前最后一个变化是相同的,我们据此来预测将来。这个意思是说,下一个误差的期望值是:修正量=当前误差+前两次传感器采样误差的变化量。以上是在近几年的比赛中对于基础小车搭建的一些心得和 FLL比赛中使用的 PID 算法的基本原理,希望对大家能有所帮助。1 肖建编. ASP.NET 编程实例与技巧集粹. 北京:北京希望电子出版社,2003.2 巴兹拉等. ASP.NET 安全性高级编程. 北京:清华大学出版社,2003.3 Jesse Libert.Programming C#中文版. 电子工业出版社,2006.4 米切尔的等编著. ASP.NET 权威指南. 北京:中国电力出版社,2003.5 曾登高编著.NET 系统架构与开发. 北京:电子工业出版社,2003.