基于激光传感器的智能车的坡道检测
2012-11-03 来源:21ic
1 问题描述
激光传感器的智能车在上坡时,由于光作用距离的变化以及坡面对光的反射,会产生干扰信号,导致激光传感器无法正常识别黑线的位置,最终使车模无法通过坡道。针对这一问题,目前已有多种解决方案,这些方案大体上可以分为两类,一类是盲过法,另一类是非盲过法。非盲过法过程如下:首先由红外传感器采集数据,然后对所采得的数据进行模数转换,此时在黑线附近采得的数据会比干扰信号高,再经过简单的滤波,就能很容易判断出黑线的位置。但这种方法需要模数转换,而且需要红外传感器的参与,还需要设定阈值进行二值化来判断黑线位置,硬件实现和算法过程都较为复杂,且占用较多单片机的资源。盲过法过程如下:首先由某种坡道传感器检测坡道,一旦检测到立即屏蔽激光传感器,利用上一时刻传感器采集到的数据进行估算,当坡道传感器检测到车模已经通过坡道时,立即打开激光传感器,车模进入正常行驶状态。盲过法相比与非盲过法,主要问题是盲目性太大,但因为赛道上的坡道大多数都在直道上,所以影响不会很大,也可以通过再加一排红外传感器或者作用距离比较近的激光传感器来克服这个缺陷。本文主要以盲过法为例进行介绍。
2 单激光管坡道检测方案
2.1 硬件设计
激光传感器的工作原理如图1所示,当发射管发射的激光照射到赛道的白色部分时,大量光线经过漫反射被反射回去,接收管接收到光线,传送到单片机的数据为0,当激光照射到赛道的黑色部分时,大量光线被吸收,接收管没有接收到光线.传送到单片机的数据为1。 根据以上传感器识别赛道的原理,可以把激光管和接收管放置在车模前侧的左边或右边,使发射的激光平行于赛道,如图2所示,还可以通过调整激光的作用距离来调整检测坡道提前量的大小。
2.2 软件实现
当车模前方没有坡道时,激光平行于赛道,此时,光线不会被反射,即接收管不会接收到光线,单片机收到的返回值为1。当车模靠近坡道到一定距离时,由于赛道的两侧是白色部分,激光管又置于车模的两侧,所以此时激光照射到赛道的白色部分,光线被反射,接收管接收到光线,单片机收到的返回值为0。当车模处于爬坡状态和坡顶时,光线照射不到赛道,不会被反射,接收管不会接收到光线,单片机收到的返回值为1。当车模处于下坡阶段时,光线照射到赛道的白色部分,发生反射,接收管接收到光线,单片机收到的返回值变为0。当车模通过坡道后,光线又照射不到赛道,不会被反射,接收管不会接收到光线,单片机收到的返回值为1。具体过程如图3所示。
在车模通过坡道的整个过程中,不难发现,单片机接收到的信号由以下变化过程1—0—1—0—1,共发生了4次跳变,根据这个原理设计算法。当发生第一次跳变时,说明车模前方有坡道,此时车模进入盲过阶段,车模按前一状态保持运动,直至单片机检测到最后一次跳变为止,具体程序流程如图4所示,如此便可以实现单个激光传感器对坡道的检测。
3 实验结果分析
将该方案应用到智能车实际的赛道检测算法中,通过实验,该方案可以提前检测到跑道,而且提前量可以根据自己的需要进行调整。相比于用倾角传感器和加速度传感器检测坡道的方案,该方案既经济实惠又能提前检测出坡道。但应用肓过法对车模的机械要求较高,在通过坡道的过程中不能自行调整,实验过程中可以根据实际情况选择是否再加一排红外传感器或作用距离比较近的激光管来克服这个不足。
实验过程中还发现一些问题,即在车模前部的左侧或右侧放置的激光管如果太靠近地面,则容易把周围的浅色物品识别为坡道,因此传感器的放置位置应当尽可能高一些,或者把激光的功率适当调小,使其作用距离不要太远,减小误判的几率。
4 结束语
本文介绍了一种激光传感器智能车利用单个激光管检测坡道的方法,通过记录信号跳变次数,从而得到了智能车通过坡道时的相关信息。通过实验,该方法简便可行,易于实现,成本较低,可以提前检测到坡道,且提前量的大小可以调整,利用该方案智能车可以顺利地通过坡道。