巡线竞速是常见的机器人比赛项目,它对速度和精准度要求都比较高。该项目大多要求现场进行结构搭建,并且赛前只提供培训参考地图,比赛使用的地图和巡线任务一般是现场才进行公布,对于参赛选手的能力要求较高。
巡线任务的基础要求是车体(符合规格)的正投影始终覆盖着黑线,从起点通过巡线的方式沿着轨迹运动到终点,轨迹一般为8-20mm粗细的黑线,15mm粗的黑线轨迹居多,底色多为白色,地图材质为喷绘居多。
1
一、参考值的功能及计算方法
巡线使用的传感器为颜色传感器,它能检测三种不同类型的数值:颜色(0-7)、反射光强度(0-100)、环境光强度。巡线使用的参数基本为反射光强度或者称为灰度值。
(一)何为灰度值?
颜色传感器发出的光在地图表面经过漫反射,重新被颜色传感器接收到的光线强度,它的变化范围是0-100,数值越大,表示反射回来的光线强度越大。
(二)如何利用灰度值来区分地面和黑线?
灰度值表示的是反射回来的光线强度,不同颜色、材质的物体距离颜色传感器同样距离的前提下,反射回来的光线强度不一样。颜色越深,反射回来的光线越少,颜色传感器检测到的灰度值也就越小,所以黑线上的灰度值会比较低,而白色地图上的灰度值会比较高,但是同样是黑线上,不同位置的灰度值并不相等,不同位置的白色地图检测的灰度值也不一样,如何有效区分地面和黑线呢?我们引入参考值这一概念来进行说明。
(三)参考值的计算
通过实际的检测,我们发现虽然黑线和白色地图上的灰度值不是每个地方都相等,但是他们的数值变化范围不大,如:
黑线:10、13、9、8
白色地图:50、48、52、49
用折线图表示如下:
在EV3程序模块中一般需要使用一个参数来区分白色地图和黑线,从上图可以知道,只要这个值大于黑线上灰度值的最大值,小于地面上灰度值的最小值就可以用来作为参考值,但是我们没必要去找到参考值的上下限,因为需要大量的测量,一般采用以下三种方式处理:
第一种:地面和黑线各测三次,计算地面和黑线上的灰度值的平均值,将两者的平均值作为参考值,也就是:
灰地平=(地1+地2+地3)/3
灰黑平=(黑1+黑2+黑3)/3
参考值=(灰地平+灰黑平)/2
第二种:地面和黑线各测一次灰度值,取两者的平均值作为参考值,即
参考值=(灰地+灰黑)/2
第三种:因为黑线附近的灰度值是接近线性变化的(已在另一个PID巡线推送中测试证明),测量黑线和地面的分界处的灰度值作为参考值,即
参考值=灰分界
参考值的功能在于区分地面和黑线,个人比较倾向于第二种方法,并且一般都让小朋友近似取整,不会影响分辨效果,并且能避免小数点的存在引发输入失误。
结合参考值的功能,以及黑线和地面上的灰度值分布图,我们可以知道黑线上的灰度小于参考值,地面上的灰度大于参考值。
知道了如何区分地面和黑线,接下来我们看看几种简单的基础巡线和P巡线(比例巡线)。
2
1、2、3、4个光感的基础巡线
(一)单光感Z字巡线——一个光感,两种动作状态
在只使用一个颜色传感器巡线的情况下,并不能通过程序来区分颜色传感器在线的左侧还是右侧,所以巡线过程中,颜色传感器只能在线的其中一侧巡线,下面以颜色传感器在黑线的右侧巡线为例来说明巡线原理。
当颜色传感器看到黑线时,车子需要右转,才能保证不越过黑线;当颜色传感器看到地面时需要左转才能不飞线,程序实现如下: