基于飞思卡尔和摄像头的智能小车寻迹系统设计

分享到:

 1 引言

 
智能小车寻迹系统是基于摄像头和飞思卡尔16微处理器mc9s12xs128组成,由摄像头采集图像有用信息送入单片机分析道路参数。
 
智能小车跑道表面为白色,中心有连续黑线作为引导线,黑线宽25mm,铺设跑道地板颜色与背景不一样;跑道宽度为60cm,窄道区的宽度为45cm;跑道最小曲率半径不小于50 厘米; 跑道可以交叉,交叉角为90度。
 
系统主要包括视频图像采集、图像处理、黑线中心提取、路径判断。
 
2 视频图像采集
 
图像采集是基于mc9s12xs128单片机来实现的。mc9s12xs128是飞思卡尔开发的以cpu12内核为核心的单片机,采用5v电源供电,总线速度最高可达40mhz,8kb ram,128kb flash,具有丰富的i/o模块和工业控制专用的通信模块[1]。
 
(a) 视频信号;(b) 行同步信号;(c) 场同步信号;(d) 奇偶场同步信号
 
图1 摄像头信号时序图
 
摄像头前瞻距离大,有利于提高速度。同时跑道色内外色差只有黑白两色,只需提取探测画面的灰度信息就能识别黑线信息,因而图像采集选用黑白摄像头。摄像头输出的是pal制式的复合全电视信号,每秒输出25帧,每帧分为偶场和奇场。黑白视频图像信号由图像信号、消隐信号及同步信号共同组成。场同步脉冲标志着新的一场到来。场消隐区恰好跨在一场的结尾部分和下场的开始部分,得等到场消隐区过去,下场的视频信号才真正到来。pal制式的摄像头每秒扫描25幅图像,每幅又分奇偶两场,故每秒扫描50场图像[2]。为此要有效地采集摄像头的视频信号,需要把摄像信号进行分离。lm1881视频同步信号分离芯片可从摄像信号中分离出行同步脉冲,场同步脉冲和奇偶场脉冲。下图为视频信号lm1881分离后时序图如图1所示,其摄像头采样电路图如图2所示。
 
图2 摄像头采样电路图
 
设计采用80引脚mc9s12x128单片机。根据其引脚特点,pt口响应速度不如pj口响应速度好,所以选择pj口作为行中断和场中断输入口,本设计选用pj7和pj6。但是pj口共用一个中断向量,因此在软件设计中用巧妙的方法先开pj6,关闭pj7。当奇偶场上升沿脉冲到来时,产生中断,进入中断服务程序,中断服务程序里延时一段时间,清掉消隐时间,然后开启行中断pj口,当行中断产生时延时一段时间开始采集图像信息,这里所有延时都是为了滤掉采集的非图像信息。本系统采集图像是采集同一场图像(即奇场和偶场)。这样可以减少摄像头因奇偶场硬件上不同而带来偏差。
 
为获得充足的图像信息,实现对智能车准确控制,图像采集每场为42×47个点 。通过实验证明,42×47的图像能够得到满意图像信息。采集效果如图3所示。图中数值为20-25表示黑线所在位置。
 
图3 图像采集灰值情况
 
3 图像处理
 
了防止场地黑线干扰导致控制出错,需要对整幅图像进行滤波处理。因为黑色指引线是一条平滑连续的曲线,因此对于图像中出现的那些跳跃性较大的点即可视为干扰加以去除。
滤波方法有很多,如中值滤波对单片机开销较大,因此本系统采用对整幅图像进行较为简单的插值处理。这样不仅占用cpu时间少,而且也实现了对实时控制的要求。摄像头提取到的近处黑线信息出错的概率非常小,因此利用近处黑线的中心偏差,对前方的黑线中心偏差进行插值滤波。其滤波流程图如图4所示。插值滤波时,同时要注意小车在过急弯时的情况,因此要对插值后的黑线中心进行限幅处理。
图4 插值算法流程图
 
4 引导线提取
 
由于黑线和白赛道的灰度值不确定,如果以设定的值作为黑线的灰度值,必然适应新环境的能力不强。但是黑色和白色灰度值之差变化不大,因此可以用灰度值之差作为黑线与白道的标准。根据实验,灰度值之差一般在15-30之间。本系统就是以此范围作为灰度值范围。
 
在查找黑线的点顺序也有一定方法。如果采用常用的从左到右依次查找黑点,这样不仅容易把周围的颜色误认为黑线,同时在一定程度上比较耗时。本系统采用从图像中央开始向侧查找,当找到黑线就停止该行查找,这样不仅可尽量减少查找到周围的颜色的机会,同时也能减少查找耗时。同时注意,在查找黑点时,应该查找到两个或两个以上的黑点才能作为黑线的位置,这样可以避免因随机产生的干扰的影响。
 
5 路径判断
 
5.1 弯直道判断
 
根据图像采集特点,直道时黑点偏离中心线位置较小,弯道时偏离中心线的位置大,用一个数学公式表征这一特点[3]即
 
式中:xi为采集到的黑点实际坐标
 
x为图像中心线的坐标位置
 
n为采样到黑点的总行数
 
通过多次实际赛道实验,直道时的curve一般在2以下,小弯道在3-10的范围内,10以上则能判定为大弯道,这就以数值判断赛道的情况,从而实现对舵机的有效控制。在实际的舵机控制中,需要根据赛道的实际情况做适当校正。
 
5.2 大s弯和小s弯的判断
 
跑道分为大s弯和小s弯。通过实际实验,小车的舵机在改变角度的时候,小车会减速,因此小车的舵机改变角度的大小和次数都会影响最后的比赛成绩。在小s弯时,小车摄像头可以照到全部,取平均值后相当于是直道,小车舵机可不改变方向而直线行驶从而提高速度。在大s弯时,由于大弯不能在完整的的一个视野范围内,小车将取平均值后偏离直道,小车舵机将改变方向行驶。
 
5.3 十字交叉路线的判断和起跑线的识别
 
两个黑色引导线垂直相交,经ad采样后,横向灰度值特点为黑色灰度值都在同一行,经查找由黑到亮变化的灰度值是没有的,因而此处黑点坐标几乎接近中心位置,不会对引导线的位置产生影响,这就实现了小车不发生错误通过十字交叉路线。
 
小车起点如图5所示,特点是先由黑变亮,再由亮变黑。所以可根据这样的特点进行起点识别。当采样的灰度值由黑变亮再由亮变黑可判断为起跑线。但是这样判断可能会把十字交叉路线或窄道的三角形标记误判为起点。为了准确判断需要进行3次以上具有起点特点时才可判断。
 
图5 起点线
 
6 结束语
 
本系统采用基于coms摄像头的路径识别方法,通过摄像头采集的道路信息送入单片机处理,通过算法提取出赛道黑线中心,识别弯道、窄道、坡道、起跑线等信息。通过大量试验及参加大赛结果表明,本智能小车寻迹系统能够准确识别道路情况,结果较为理想。该系统满足实时、安全、温定快速的要求,具有广阔的应用前景,是当前智能车辆导引技术研究的主流方向和发展趋势。
 

 

精彩活动