循线控制算法 - 基于光电传感器的能自主识别道路的智能车

2012年08月07日 11:33 来源:互联网 作者:互联网 我要评论(0)

  二、循线控制算法

  本文采用经验反馈控制,即在普通经验控制的基础上,加入pid控制的思想,引入比例、积分、微分三个控制常数,实施反馈,并采用积分分离的控制方法。

  循线控制算法是利用前后两排传感器综合检测信号来推理得到模型车的精确转向及具体的车速。方向判断的方法是:如图3,首先判断下排5个传感器的情况,假设s3处在黑线位置,再观察上排8个传感器,此时s3将上排传感器分为左右两边,由于相邻两个传感器间距离稍大于黑线宽度,因此任何时刻只能有2个传感器同时检测到黑线,这样一来根据分析上下两排传感器信号就可以基本判断出模型车的转向情况。例如,某一时刻s3和s8检测到黑线,就可大致判断模型车应向右拐,并根据两个传感器的连线和竖直方向的夹角可判断舵机的转向和大致角度。

  但同时还应注意,当车模进入左侧弯道时,也可能出现s3和s8共同检测到黑线的情况,这种情况下就要检查上一时刻的传感器信号,就是检测s4||s13的情况,若s4||s13结果为1,则认为车模应左拐,若s4||s13结果为0则应右拐。一次方向判断的流程如图5所示。

  

  在程序中建立两个数组,一个存储每次检测到的信号,另一个存储实施控制后的当前信号作为历史数据。加入这种带历史纪录判断的思想后,使得控制更为精确。

  除了以上判断法则之外,还有两种情况需要考虑。即只有一个传感器检测到黑线的情况以及交叉赛道的情况。对于只有一个传感器检测到黑线的情况,同样需要检查上一时刻的传感器信号,例如,某一时刻只有s6检测到黑线,若上一时刻s5检测到黑线,则车模左转,若上一时刻s7检测到黑线,则车模右转。

  对于交叉赛道的情况,则利用一种“滤波”的思想将其“滤”除掉。遇到交叉赛道时,必然会出现同一排几个传感器同时检测到黑线的情况,此时就给模型车一个命令使其直线前进,将交叉赛道排除掉。

  这就是本系统基于经验逻辑判断的循线控制算法,在此基础上通过不断实验调整各个参数可达到较好的控制效果。


上一页12345下一页

本文导航