设计思想及算法实现
车模与赛道的参数如图1所示。车模运行的主要形式主要是车模的规定的赛道内行进,赛道中央有一条25mm宽的黑色引导线。
图1 车模及赛道的相关参数
常用的车模巡线方案有光电传感器阵列和CCD探测法等,这里介绍光电传感器阵列的设计方案。光电传感器是靠红外发射管和红外接收管组成的传感器,如图2所示。
(a) 白色反射面下的红外反射 (b) 黑色反射面下的红外吸收 图2 用于路况识别的红外光电传感器
红外发射管发射的红外线具有一定的方向性,当红外线照射到白色表面上时会有较大的反射,如果距离Dl取值合适,红外接收管可接收到反射回的红外线,再利用红外接收管的电气特性,在电路中处理红外线的接收信息;如果反射表面为黑色,红外光会被表面将其大部分吸收,红外接收管就难以收到红外线。这样,就可以利用红外收发管组成的光电传感器检测赛道黑线,实现智能车的巡线方案。
光电传感器阵列布局参数的确定
如图3所示,光电传感器阵列参数主要有管距D(管内侧距离),管直径d,影响光电传感器阵列参数的主要因素有:
起跑标志线和十字交叉线;
比赛规则对车模尺寸的限制;
跑道黑色引导线的宽度;
舵机转弯精度。
根据以上影响因素,建立模型如图3和图4所示。
图3 光电传感器阵列与起跑线的相对关系(1)
图4 光电传感器阵列与起跑线的相对关系(2)
起跑标志线和十字交叉线的识别方案要和光电传感器阵列参数联系起来考虑,所以首先根据起跑标志线的基本识别方法来确定光电传感器阵列参数。单片机在处理起跑标志线和十字交叉线的区别时,较方便的方法就是当光电传感器阵列经过十字交叉线时7个传感器全检测到黑线,而经过起跑标志线时会有个别传感器检测到白色赛道表面。根据这个道理,建立模型如图3和图4所示,分两种情况讨论:
1) 光电传感器阵列有2个传感器检测到白色跑道而其它传感器检测到黑线时,如图3所示;
2) 光电传感器阵列有1个传感器检测到白色跑道而其它传感器检测到黑线时,如图4所示。
根据以上两种情形,在光电传感器阵列采用等距分布的情况下,可有如(1)式所示的数学描述。 (1) (2) (3) 根据(3)式,做如图5所示的数轴标注方法来表示不等式的取值范围。
图5中计算所得的D值范围为(25,30-1.5d)。但是也要考虑特殊情况。由于车身在经过起跑标志线时并不是每次都能保持和跑道引导线平行,所以要考虑当车身偏斜进入起跑线时的情况会不会使(1)式有所变化。如图5所示。
图5 数轴标注D的取值范围
考虑偏斜的角度如图6所示,车身偏斜时在起跑线白色间隙的长度f=19mm,这样(1)式的数学描述中发生变化的仅仅是图4所示中的跑道间隙值17.5mm,该值被f代替。带入新值后用数轴标注法标注D值的区间如图7所示。比较图6发现, A点向B点靠近形成A′点,并没有超过B点;C点和D点分别移动到C′点和D′点位置,所以D的取值范围有扩大的趋势,这样,图5标注的D值范围符合要求。
图6 车身偏斜进入起跑标志线的情况
图7 改变数据后数轴标注D的取值范围
如果偏斜角度继续增大,前排光电传感器阵列不能同时进入起始标志线,这样在单片机编程算法中很容易处理这种情况。
综合以上讨论,可知:
光电传感器的管距(管内侧距离)D取值范围为(25, 30-1.5d);
根据误差理论,单纯从传感器的外径尺寸上考虑,其值d越小越好;
本设计中取光电管直径d值为3mm,D值范围(25mm,25.5mm)。
实测效果
根据以上分析的光电传感器的管距D取值范围制作车模的寻线传感器阵列,对车模进行了大于50次的测试,实测结果表明:车模均能正确识别到起跑线。
但是,设计还存在一些问题,主要有:
对D的取值要求苛刻;
要求红外传感器的正常工作率为90%以上。
结语
本文分析了智能车模比赛中的相关技术参数,建立了光电传感器阵列的数学模型,确定了阵列参数。这为车模系统的路况记忆算法提供了基本参考点。本文还分析了起跑线识别方法的实测效果,实测结果表明:车模均能正确识别到起跑线。
作者:太原理工大学计算机与软件学院 姚世选 裴永斌 常晓明
|