闫 浩,张迪洲,李永科
(1.军械工程学院 导弹工程系,河北 石家庄 050003;2.军械工程学院 光学与电子工程系,河北 石家庄 050003)
基于激光传感器智能车,利用单个水平照射的激光传感器,有效地检测坡道信息,并针对坡道做出相应的控制方案。由于该车模是自动循迹的,因此对赛道信息的依靠程度比较高,对传感器的精度和抗干扰能力要求也比较高。激光传感器通过调制发射避免了自然光对其造成的影响,提高了抗干扰能力。激光传感器相比于红外传感器在作用距离方面要远远优先,因此前瞻距离较大,大大提升了控制效果,而且激光传感器的接收电路能直接得到二值化后的结果,省去了中间模数转换和二值化的过程,采集到的信号返回给单片机直接是0和1,减少了单片机的工作量,提高单片机的整体运算速度[1]。但激光传感器也存在不能克服的问题,正是因为激光的作用距离远,也就出现了难以检测坡道信息的问题。
激光传感器的智能车在上坡时,由于光作用距离的变化以及坡面对光的反射,会产生干扰信号,导致激光传感器无法正常识别黑线的位置,最终使车模无法通过坡道[2]。针对这一问题,目前已有多种解决方案,这些方案大体上可以分为两类,一类是盲过法,另一类是非盲过法。非盲过法过程如下:首先由红外传感器采集数据,然后对所采得的数据进行模数转换,此时在黑线附近采得的数据会比干扰信号高,再经过简单的滤波,就能很容易判断出黑线的位置。但这种方法需要模数转换,而且需要红外传感器的参与,还需要设定阈值进行二值化来判断黑线位置,硬件实现和算法过程都较为复杂,且占用较多单片机的资源。盲过法过程如下:首先由某种坡道传感器检测坡道,一旦检测到立即屏蔽激光传感器,利用上一时刻传感器采集到的数据进行估算,当坡道传感器检测到车模已经通过坡道时,立即打开激光传感器,车模进入正常行驶状态。盲过法相比与非盲过法,主要问题是盲目性太大,但因为赛道上的坡道大多数都在直道上,所以影响不会很大,也可以通过再加一排红外传感器或者作用距离比较近的激光传感器来克服这个缺陷。本文主要以盲过法为例进行介绍[3]。
激光传感器的工作原理如图1所示,当发射管发射的激光照射到赛道的白色部分时,大量光线经过漫反射被反射回去,接收管接收到光线,传送到单片机的数据为0,当激光照射到赛道的黑色部分时,大量光线被吸收,接收管没有接收到光线,传送到单片机的数据[4]为1。
图1 激光传感器原理示意图Fig.1 Schemes of laser sensor principle
根据以上传感器识别赛道的原理,可以把激光管和接收管放置在车模前侧的左边或右边,使发射的激光平行于赛道,如图2所示,还可以通过调整激光的作用距离来调整检测坡道提前量的大小。
图2 传感器安装示意图Fig.2 Schemes of sensor installation
当车模前方没有坡道时,激光平行于赛道,此时,光线不会被反射,即接收管不会接收到光线,单片机收到的返回值为1。当车模靠近坡道到一定距离时,由于赛道的两侧是白色部分,激光管又置于车模的两侧,所以此时激光照射到赛道的白色部分,光线被反射,接收管接收到光线,单片机收到的返回值为0。当车模处于爬坡状态和坡顶时,光线照射不到赛道,不会被反射,接收管不会接收到光线,单片机收到的返回值为1。当车模处于下坡阶段时,光线照射到赛道的白色部分,发生反射,接收管接收到光线,单片机收到的返回值变为0。当车模通过坡道后,光线又照射不到赛道,不会被反射,接收管不会接收到光线,单片机收到的返回值为1。具体过程如图3所示。
图3 智能车坡道检测示意图Fig.3 Schemes of smart car ramp detection
在车模通过坡道的整个过程中,不难发现,单片机接收到的信号由以下变化过程1-0-1-0-1,共发生了4次跳变,根据这个原理设计算法。当发生第一次跳变时,说明车模前方有坡道,此时车模进入盲过阶段,车模按前一状态保持运动,直至单片机检测到最后一次跳变为止,具体程序流程如图4所示,如此便可以实现单个激光传感器对坡道的检测[5]。
将该方案应用到智能车实际的赛道检测算法中,通过实验,该方案可以提前检测到跑道,而且提前量可以根据自己的需要进行调整。相比于用倾角传感器和加速度传感器检测坡道的方案,该方案既经济实惠又能提前检测出坡道。但应用盲过法对车模的机械要求较高,在通过坡道的过程中不能自行调整,实验过程中可以根据实际情况选择是否再加一排红外传感器或作用距离比较近的激光管来克服这个不足。
图4 坡道检测流程图Fig.4 Ramp detection flow chart
实验过程中还发现一些问题,即在车模前部的左侧或右侧放置的激光管如果太靠近地面,则容易把周围的浅色物品识别为坡道,因此传感器的放置位置应当尽可能高一些,或者把激光的功率适当调小,使其作用距离不要太远,减小误判的几率[6]。
本文介绍了一种激光传感器智能车利用单个激光管检测坡道的方法,通过记录信号跳变次数,从而得到了智能车通过坡道时的相关信息[7]。通过实验,该方法简便可行,易于实现,成本较低,可以提前检测到坡道,且提前量的大小可以调整,利用该方案智能车可以顺利地通过坡道。
[1]卓晴,黄开胜,邵贝贝.学做智能车——挑战“飞思卡尔”杯[M].北京:北京航空航天大学出版社,2007.
[2]邵贝贝.微控制器嵌入式应用的在线开发方法 [M].北京:清华大学出版社,2007.
[3]吴怀宇,程磊,章政.大学生智能汽车设计基础与实践[M].北京:电子工业出版社,2008.
[4]安鹏,马伟.S12单片机模块应用及程序调试[J].电子产品世界,2006(211):162-163.AN Peng,MA Wei.S12 microcontroller module application and program test[J].Electronics World,2006(211):162-163.
[5]Gillespie T D.车辆动力学基础 [M].北京:清华大学出版社,2006.
[6]周斌,李立国,黄开胜.智能车光电传感器布局对路径识别的影响研究[J].电子产品世界,2006(5):139-140.ZHOU Bin,LILi-guo,HUANG Kai-sheng.Smartcar photoelectric sensor arrangement of the influence of the path recognition[J].Electronics World,2006(5):139-140.
[7]谭浩强.C程序设计[M].北京:清华大学出版社,2001.