基于
CCD
黑白图像检测的寻线智能车设?/p>
Design of Intelligence Automotive
Black and white image detection based on CCD line
尹绘?/p>
王飞
周浪
(德州学?/p>
cooper
?/p>
摘要?/p>
本设计以“飞思卡尔”杯全国大学生智能车竞赛为背景,提出了一种根?/p>
ccd
采集到的像素点电压信号引导小车循迹行驶的方案。本文主
要介绍了?/p>
CCD
原始图像的处理,黑线提取,以及转向舵机,控制,摇头舵机控制。并根据方案实际制作了小车。实践证明该方案是可行的?/p>
关键词:
智能车,
ccd
,黑线提取,舵机控制,适应性?/p>
I.
引言
飞思卡尔智能车竞赛已经成功举办九届?/p>
分为三个组别:光电组,摄像头组,电磁组,
其中电磁组是检测通电导线产生的电磁场?/p>
号,
摄像头组通过采集到图像提取黑线,
这两
个组别受外界干扰比较小,而从第八届开始,
光电组开始用线?/p>
CCD
采集信号,在我看?/p>
CCD
就是一个只能采集一行像素值得摄像头,
但是比摄像头更容易受光线影响?/p>
因此我们?/p>
计了一套适应性比较强的算法来?/p>
CCD
图像
进行处理,以便保证稳定提取到黑线?/p>
II.
设计原理
CCD10ms
曝光在跑道上采集到的原始?/p>
像如图所示?/p>
?/p>
1
放大两倍后图像
?/p>
2
线?/p>
CCD
通过感受外界光线强弱输出
不同的电压值?/p>
光线强电压值高?/p>
光线暗电?/p>
值低?/p>
这样就可以区分黑白,
但是
TSL1401
?/p>
?/p>
CCD
的输出信号和环境光线密切相关?/p>
?/p>
自然光条件比晚上灯光?/p>
AO
引脚输出电压
值高出很多,
正对着光线比背着光线输出电压
高,
白炽灯光下比日光灯下输出电压高?/p>
因此?/p>
同一参数(曝光时间、镜头光圈)难以适应?/p>
种环境,因为
ccd
的这个特性,
许多商家采取了改变曝光时间,
改变放大
倍数等很多方法,
但是改变曝光时间会占用更
多的
CPU
资源,改变放大倍数需要加运放?/p>
III.
设计方案(程序主题思路?/p>
因此我们通过不断的探索,
终于找到一?/p>
适应性强,无需动态曝光,无需动态放大,?/p>
且可以稳定提取黑线的方案?/p>
此方案基本思路
如下?/p>
我们观察发现
ccd
在赛道上采集到的?
像在黑线处会有一个大的跳变,
因为这个地方
是由白变黑或者由黑边白,
因此我们可以通过
寻找最大跳变值来确定黑线位置?/p>
首先我们?
ccd
采集到的
128
个点隔点做差,我们观察图
像发现(?/p>
1
,图
2
?/p>
,三个点(中间隔一个)
做差差值最大?/p>
当然首先你得先把镜头焦距?/p>
到一个跳变特别明显的位置?/p>
然后固定住?/p>
?/p>
上次中线位置向左找最大跳变,
向右找最小跳
变?/p>
最大跳变点处即为左边线?/p>
最小跳变点?/p>
即为右边线?/p>
这种提线方案的好处是?/p>
可以?/p>
应不同光线?/p>
如果你的图像很低?/p>
并且有有?/p>
波(小的跳变点)
,你可以软件放大两倍后?/p>
行中值滤波,
可以保留大的跳变?/p>
滤掉小的?/p>
变。因为我?/p>
CCD
图像较好,固没用此滤?
程序?/p>
为了防止在全黑全白时最大跳变点也会
出现?/p>
造成误判?/p>
我采用了摇头的方案来避免
全黑,所谓摇头就是把
CCD
架在另外的一?/p>
舵机上面,让
ccd
跟随中线摆动,这样就不会
出现全黑?/p>
也就不会出现两条黑线全丢?/p>
可以
保证大的前瞻?/p>
在全白处?/p>
我们把最大跳变和
像素点最大值做比较?/p>
如果最大跳变值小于最
大值的四分之一?/p>
我们就认为是全白?/p>
因为?/p>
全白时不会出现特别大的跳变?/p>
另外摇头并不能保证不丢线?/p>
因此需要一
个丢线判断?/p>
这个判断是,
最大跳变值与最?
跳变值得绝对值作比较?/p>
如果他们两个之间?
超过较大值的一半,
则认为单侧丢线,
单侧?/p>
先后另外一条线按照上次赛道宽度补出?/p>
摇头舵机的安装,
ccd
的安装,如图?/p>
摇头过十字一直是一个难题,
再加上今?/p>
新加了人字掉头路这一元素?/p>
所以我们又加了
一?/p>
CCD,
采用?/p>
CCD
摇头方案?/p>
十字的处?/p>
思路?/p>
远前?/p>
ccd
检测到全白后,
由近前瞻
ccd
接管?/p>
如果两个
ccd
同时检测到全白则打正切
由远前瞻
ccd
负责循迹,直道远前瞻
ccd
找到
黑线,经过测试此方案既能保持远前?/p>
ccd
60cm
以上的前瞻,又可以稳定的过十字?/p>
摇头舵机的控制我们没有采用传统的?/p>
量式
pid
?/p>
而是用的位置?/p>
pid
?/p>
因为我们广角
镜头可以看到几乎两个赛道宽度?/p>
并且增量?/p>
pid
十字不太好处理?/p>
转向舵机的控制,
转向舵机的转向量为摇
头舵机打脚加上偏差乘以转向舵?/p>
P
?/p>
转向?
?/p>
P
我们用的二次函数?/p>
保证直道
,
?/p>
S,
不晃?/p>
并且急弯能打死?/p>
主要参考文?/p>
1
张阳
吴晔
,
滕勤
mc9s12xs
单片机原
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
开
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
(2011
?/p>
9
?/p>
1
?/p>
)
2
卓晴
,
黄开?/p>
,
邵贝?/p>
.
学做智能?/p>
[M].
北京
:
北航出版?/p>
,2007.3
,