基于摄像头的智能车路径识别方案.docx

上传人:b****6 文档编号:12351056 上传时间:2023-06-05 格式:DOCX 页数:24 大小:245.07KB
下载 相关 举报
基于摄像头的智能车路径识别方案.docx_第1页
第1页 / 共24页
基于摄像头的智能车路径识别方案.docx_第2页
第2页 / 共24页
基于摄像头的智能车路径识别方案.docx_第3页
第3页 / 共24页
基于摄像头的智能车路径识别方案.docx_第4页
第4页 / 共24页
基于摄像头的智能车路径识别方案.docx_第5页
第5页 / 共24页
基于摄像头的智能车路径识别方案.docx_第6页
第6页 / 共24页
基于摄像头的智能车路径识别方案.docx_第7页
第7页 / 共24页
基于摄像头的智能车路径识别方案.docx_第8页
第8页 / 共24页
基于摄像头的智能车路径识别方案.docx_第9页
第9页 / 共24页
基于摄像头的智能车路径识别方案.docx_第10页
第10页 / 共24页
基于摄像头的智能车路径识别方案.docx_第11页
第11页 / 共24页
基于摄像头的智能车路径识别方案.docx_第12页
第12页 / 共24页
基于摄像头的智能车路径识别方案.docx_第13页
第13页 / 共24页
基于摄像头的智能车路径识别方案.docx_第14页
第14页 / 共24页
基于摄像头的智能车路径识别方案.docx_第15页
第15页 / 共24页
基于摄像头的智能车路径识别方案.docx_第16页
第16页 / 共24页
基于摄像头的智能车路径识别方案.docx_第17页
第17页 / 共24页
基于摄像头的智能车路径识别方案.docx_第18页
第18页 / 共24页
基于摄像头的智能车路径识别方案.docx_第19页
第19页 / 共24页
基于摄像头的智能车路径识别方案.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于摄像头的智能车路径识别方案.docx

《基于摄像头的智能车路径识别方案.docx》由会员分享,可在线阅读,更多相关《基于摄像头的智能车路径识别方案.docx(24页珍藏版)》请在冰点文库上搜索。

基于摄像头的智能车路径识别方案.docx

基于摄像头的智能车路径识别方案

基于摄像头的智能车路径识别方案

摘要:

智能车硬件平台开采用飞思卡尔16位微控制器MC9S12DG128为核心的控制单元,由清华大学飞思卡尔嵌入式系统研发中心提供的开发板MC9S12EVKC单片机最小系统板,并在此基础上自行完成的外围硬件电路设计;软件开发环境使用Metrowerks公司为MC9S12系列单片机专门提供的全套开发工具CodeWarriorIDE。

文中介绍了智能车的系统总体结构,软硬件模块及开发流程。

其中重点介绍摄像头的硬件电路的设计,摄像头输出数字信号的采集,视频图像信号处理及控制系统硬件电路设计,速度与转向控制算法,以及包括调试中遇到的问题的解决方法。

关键字:

智能车,摄像头,视频数据采集,路径识别,速度与转向控制

 

IntelligenceCarBasedOnDigitalCamera

Abstract:

Inthisarticle,articlepresenttheembeddedsystemsdesignresultsofWuxiprofessionalcollageofscienceandtechnologyzhenzemotorcadeworkingduringtheperiodofpreparingthefourthsessionoftheFreescaleIntelligenceCarCompetition,Includinghardwaredesign,softwaredesignofsmartcar.thehardwareplatformofthesmartcarbasesonS12developmentboardwhichfeaturesMC9S12DG128micro-controller,FreescaleEmbeddedSystems,TsinghuaUniversityR&DCenterprovidesthedevelopmentboardofthesmallestsingle-chipsystemboardMC9S12EVKC,AndonthisbasistothecompletionoftheexternalhardwarecircuitdesignsoftwaredevelopmentenvironmentsoftwaredevelopmentusedCodewarriorIDEasitstool,whichisMetrowerksCorporationtechnicallyprovideacompletesetofdevelopmenttoolstoMC9S12seriesofsingle-chip.

Thisarticleintroducestheintelligentcarsystemsarchitecture,softwareandhardwaremodulesanddevelopmentprocess,WhichfocusesonCamerahardwarecircuitdesign,Cameraoutputdigitalsignalcollection,Videoimagesignalprocessing,Controlsystemhardwarecircuitdesign,speedanddirectcontrolalgorithm,Aswellasthesolutionofproblemindebugging.

KeyWord:

Intelligentcar,Camera,VideoSampleCollection,SpeedandDirectControl

 

目录

第一章绪论4

1.1课程意义4

1.2课题背景4

1.3任务5

第二章硬件系统设计6

2.1单片机主要元件介绍6

2.1.1摄像头的介绍6

2.2硬件总体框图7

2.2.1电源、稳压电路8

2.2.2单片机控制板10

2.2.3测速电路11

2.2.4摄像头电路11

2.2.5舵机电路12

2.2.6软件方案选择电路12

2.2.7电机驱动电路13

2.2.8调试电路14

第三章软件系统设计15

3.1软件总体框架15

3.2图像采集与处理15

3.2.1采集方法15

3.2.2路径识别18

3.3速度和方向的控制22

3.3.1PID算法介绍22

3.3.2闭环控制24

谢辞25

参考文献26

 

第一章绪论

1.1课程意义

通过智能车的软硬件设计,较为深入的了解嵌入式设计,提升自己的知识层面,拓展自己的思维,增强自己的动手能力,提高团队协作能力,为以后向嵌入式方向发展打下一定的基础。

1.2课题背景

智能车的发展是从自动导引车(AutomaticGuidedVehicle,AGV)起步的。

AGV是指装有电磁或光学等自动导引装置,能够沿规定的导引路径行驶,具有安全保护及各种移栽功能的运输车辆。

1913年,美国福特汽车公司首次将有轨导引的AGV代替输送机用到底盘装配上。

1954年,英国采用在地板下埋线,组成了电磁感应导向的简易AGVS。

AGVS(AutomaticGuidedVehicleSystem)是指自动导引车(AGV)和地面导引系统组成的、进行物料搬运等作业的光机电一体化的系统。

1955年,英国研制出了在生产线上实用的AGVS。

1959年,在美国首先出现了应用AGV的自动化仓库。

1982年,德国出现了第一辆无人叉车。

1985年,计算机通讯。

识别技术应用于AGVS。

在国内,北京起重机械研究所于1976年研制出了我国第一台AGV。

1991年起,中科院沈阳自动化研究所研制了客车装配AGV系统。

随着科学技术的发展,许多新技术都应用到AGV或AGVS上。

例如,激光技术的应用使AGV实现虚拟路径的导航和安全保护;无线局域网的应用使AGV的调度实时性更强,是AGV调度技术的一场革命;现场总线的应用使AGV的可靠性和可维护性得到提高,RFID的应用使AGV与地面系统的信息交互量更大。

自适应性更强。

同时,随着智能交通系统研究的深入,无人驾驶智能车辆的研究也越来越受到人们的关注。

正因嵌入式产品无处不在,而嵌入式技术的发展也在突飞猛进,适逢中国物联网快速兴起,本人又是学嵌入式汽车控制这方面的专业,所以本人就毅然报名参加飞思卡尔智能车大赛,通过大赛积累了一些经验,趁毕业设计之时,把我的心得和经验做成了我的毕业设计。

1.3任务

以MC9S12DG128为中心控制芯片的最小单片机系统,基于摄像头,而进行的智能车路径识别与控制方案的设计,目标是使小车能够自动沿着白色跑道上的黑线以尽可能大的速度行驶。

 

第二章硬件系统设计

2.1单片机主要元件介绍

2.1.1摄像头的介绍

OV6620是美国OmniVision公司开发的CMOS彩色图像传感器芯片,它将光敏元阵列、驱动电路、信号处理电路、模数转换电路和接口电路等完全集成在同一芯片内,仅需设计相应的外围电路即可实现单芯片成像系统。

该芯片由于将CMOS光感应核与外围支持电路集成在一起,具有可编程控制与视频模/数混合输出等功能。

同时该芯片具有图像开窗的功能,允许用户根据实际使用需要设置有效图像窗口的大小,使其只输出该范围内的图像信息,其范围从4×2到356×292,并且窗口位置可以被放置在图像的任意位置,这对于采集特定范围的图像和提高系统速度有着重要的作用。

其性能特点有:

(1)单芯片1/4尺寸。

(2)5V操作电压。

(3)I2C总线控制,标准SCCB接口。

(4)开窗功能,局部图像输出。

(5)视频信号输出:

RGB/RawRGB/YUV/YCbCr。

(6)自动曝光控制/自动白平衡/自动增益控制/自动亮度控制。

(7)图像质量控制,包括颜色饱和度、锐度、伽马校正等。

其内部包含以下几个模块:

图像象素阵列

OV6620具有356X292的象素阵列大小,即10万象素。

时序发生器

控制以下功能:

象素阵列控制和帧产生(CIF,QCIF输出);内部时钟信号产生和分配;帧率时序;自动曝光控制;外部时序(垂直同步信号VSYNC,水平参考信号HREF和象素时钟PCLK)输出以便外部电路读取图像。

模拟信号处理模块

自动增益控制;自动白平衡;图像质量(颜色饱和度、锐度、色调、伽马等)控制。

A/D转换经过模拟处理模块后,数据通过多路转

换开关分两路进行A/D转换.转换速率为12MHz,与象素速率完全同步。

输出格式控制

发送图像前,控制输出数据格式。

数字视频端口

2.2硬件总体框图

摄像头

测速

调试电路

单片机

电源、稳压电路

电机驱动

 

软件方案选择电路

舵机

图2.1硬件总体框图

硬件总体框图见图2.1

系统硬件设计可以说是整个智能车设计的基础和重中之重。

正确的硬件设计方向思路,是系统稳定可靠的基础,功能强大的硬件系统,更为软件系统的发挥提供了强大的平台。

通过总结以往各届比赛经验和各个参赛队伍的技术方案,我们首先确定了我们硬件设计方向与思路。

1、整车低重心设计。

通过以往几届比赛的经验我们看到,往往重心低,体积小巧,布局紧凑的赛车更能取得好的成绩。

而重心过高的“长颈鹿”往往在高速过弯时出现侧翻。

而通过汽车理论与现实中的竞速类比赛我们也可以看到,凡是竞速类的赛车均是低重心设计。

于是,我们通过合理布局电路板和各种传感器,尽可能地降低整车重心。

在不影响传感器前瞻,或者不过度牺牲传感器性能的情况下,尽量降低摄像头高度,以提高赛车的侧翻极限。

2、整车电路集成化,一体化设计。

模块化设计和一体化设计是两种互有利弊的设计思路。

模块化的好处是系统有良好的扩展性,可升级性,维护性好。

但缺点是体积较大,接插件较多,整个系统有很多废重,不利于小型化和轻量化。

集成化的设计思路的好处是原件密度高,系统可以小型化一体化,对于布局空间非常局促的智能车来说,小型化的电路设计更为方便布局。

但是缺点是系统升级麻烦,需要极高的可靠性的保证。

我们在最终采用的方案中,通过综合考虑各方面因素,在确定了系统最终硬件方案不做大的更改的情况下,在确保了系统可靠性的前提下,最终选择了一体化,集成化的硬件设计思路。

使车体硬件电路布局紧凑,稳定可靠。

3、大前瞻,高分辨率方案。

在摄像头的安装不影响赛车行驶的前提下,尽可能的提高传感器前瞻,更大的前瞻,能为赛车提供更多的信息,更能让赛车提前作出决策直至抛弃记忆算法。

而高分辨率则是大前瞻的保证,几十个像素的分辨率显然不能让赛车的视野跳出车前几十厘米的范围。

4、轻量化设计。

重量的减轻,可以带来加速快,减速及时等一系列有点,所以达到设计目标的情况下,应尽可能减轻车重。

单片机是系统的核心,稳定可靠的最小系统更是整个系统稳定的关键所在。

由于我们采用的数字图像采集方案最终的电路较为复杂规模较大,为了达到集成化一体化,减小重量的目的,我们最终抛弃了模块化的设计方法,选用了高度集成单一电路板的设计,将单片机最小系统与图像处理模块,电源,驱动等全部集成在一块PCB上,通过合理布线,保证了单片机的稳定运行。

2.2.1电源、稳压电路

图2.2电源电路

电源同样是系统稳定的前提。

前面提到的单片机和摄像头模块对电压的波动尤其敏感。

智能车频繁加减速的过程中,由于电机和舵机电流巨大,如果电源模块设计不合理,很容易在加速或电机反转减速的瞬间拉低5V电源的电压,导致单片机或摄像头复位,最终导致赛车控制失败进而冲出跑道。

为此,我们专门设计了线性稳压模块稳压至所需电压。

这样的设计能够做到在电池状态不稳定的情况下,仍能保证智能车的稳定运行,大大提高了赛场上的适应能力。

电路原理图如上图2.2。

电源模块中MIC29502作为5V稳压芯片,电池一端通过D1和D2引出6V电压。

2.2.2单片机控制板

图2.3控制板电路

控制板电路图如图2.3。

PA0~PA7口接数字摄像头Y0~Y7口

PB0~PB3接到软件选择方案的拨码开关上

PT0接到摄像头场中断信号VSYNC,PT1接到摄像头行中断信号HREF

PP0舵机控制信号,接到舵机控制驱动端,PP0、PP1分别接到MC33886的IN2、IN1端,控制MC33886的输出OUT2、OUT1,最终控制电机的正反转,实现电机的加减速

PM0、PM1是MC33886上OUT0、OUT1的开关信号

PJ6、PJ7普通I/O口,用于关闭H桥的默认状态

PS0、PS1串行通信接口,PS0输出到MAX232的T1IN引脚,PS1接收来自MAX232的R1OUT的信号。

2.2.3测速电路

如图2.4,速度脉冲信号采集端PT2实时采集速度信号,反馈到单片机以实现闭环控制。

图2.4测速电路

2.2.4摄像头电路

OV6620的优点:

供电电压低,简化电路;内部集成AD和视频分离模块,简化电路,并且使得采集程序简单,采集质量高;视频信号转换在内部进行,减轻单片机负担。

OV6620共有32个引脚,但我们真正能用到的不多。

这辆智能车仅仅用到13个引脚,其他引脚并未使用,但是其他学校也有使用其他引脚的。

现在把常用的引脚列出来:

Y0~Y7(数据输出端,接单片机IO口)、VSYNC(场中断信号端)、HREF(行中断信号端)、VCC(接5V)、GND(接地)、VTO(接视频采集卡调焦),其他可能会使用到的引脚:

PCLK(像素同步信号端)、FODD(奇偶场信号端)。

具体电路图如下图2.5。

图2.5摄像头电路

2.2.5舵机电路

如图2.6,PP0给予舵机转向信号

图2.6舵机电路

2.2.6软件方案选择电路

拨码开关信号,来选择何种方案,也就是单片机通过读取PB0~PB3的值来选取所需要的软件方案,如图2.7。

图2.7软件方案电路

2.2.7电机驱动电路

两片MC33886芯片来控制电机的正反转,而MC33886的输出是由单片机的PWM控制,即通过改变PWM的占空比来实现电机的加减速、正反转(正反转临界占空比为50%)。

电路原理图见下图2.8。

图2.8电机驱动电路

2.2.8调试电路

BDM在线调试,RS-232标准的串行通信接口,如图2.9。

图2.9串口通信电路

第三章软件系统设计

3.1软件总体框架

中断被触发后,将数字信号存储到单片机。

当一场图像采集完毕后,立即根据该场图像信息进行图像处理,从图像数据中提取赛道黑线,求得赛车于黑线位置的偏差,接着采用PID方法对舵机进行反馈控制。

最终赛车根据检测到的速度,结合我们的速度控制策略,对赛车速度不断进行恰当的控制调整,使赛车在符合比赛规则情况下沿赛道快速前进。

框架图如下图3.1。

图3.1软件总体框架

3.2图像采集与处理

3.2.1采集方法

单片机采集图像传感器的数据有两种方法,模拟式和数字式。

在往届比赛中,使用最为广泛的图像采集方案为基于LM1881视频同步分离芯片的模拟信号采集方案。

模拟信号采集方案需先将摄像头输出的复合视频信号进行分离,得到独立的同步信号和视频模拟量信号,接着根据同步信号对模拟视频信号进行A/D转换或者运用硬件二值化电路对模拟视频信号进行二值化。

对模拟信号进行A/D转换这种方案往往需要一个高速的A/D转换器件和一个视频信号分离器件(通常使用LM1881)。

在对A/D转换精度要求不高的情况下,通过对DG128/DG256微控器进行超频,将其片内A/D超频至8M甚至更高的频率,再经过一系列的调整和设置,在8-bit精度下A/D转换时间可以低至1.5us左右,通常每行图像可以采集到40到80个点(根据单片机频率而定)可以基本满足比赛的需要。

这种方式的特点是硬件结构简单、通用,采集方法已有详细的资料,实现比较简单。

但是缺点是由于使用了单片机内部AD,图像的分辨率完全取决于AD的速度。

但是单纯的靠超频来提高采集点数不但会带来系统不稳定的后果(有的队伍为了提高分辨率将单片机超频至40Mhz甚至48Mhz),更大的问题是由于超频是有极限的,这种方法已经没有了多少上升空间。

在为了降低重心而将摄像头尽可能降低的大趋势下,图像质量日趋恶化,此种方案已经不可能满足图像采集对高分辨率的要求。

而数字式图像采集方案则是利用CMOS图像传感器可以直接输出并行数字信号与时序信号的特性,直接读取传感器的数字输出。

该方案性能稳定,不需要A/D,也不需要额外的同步信号分离电路与升压电路。

图像采集工作在单片机就变成了按照一定顺序将外部数据并行读入,因此程序简单,采集速度快。

但是问题的难点在于,数字摄像头在输出场同步信号VSYN与行同步信号HREF(这两个信号我们在模拟信号采集中已经非常熟悉)的同时,还同时输出像素同步信号。

虽然场行同步信号我们可以通过中断甚至查询去采集,但是像素同步信号PCLK由于其输出频率达到了8MHz甚至更高(视输出场频决定),导致单片机在无外围电路配合的情况下根本无法捕捉如此高频的信号。

最终解决这个问题的方法是通过合理设计相应的外围信号采集电路,配合单片机对高频图像信号进行采集。

这种方案的不足之处就是虽然省去了时序分离电路和升压电路,但复杂的时序逻辑控制电路(比赛禁止使用FPGA等可编程器件)也带来了电路规模扩大的后果,导致最终我们的电路在采用全贴片高密度布线的情况下,电路规模仍大大超过了通常的模拟信号采集方案。

进而带来了布线困难,电路板过大布局困难,布局困难又进一步导致整车重心配置困难等后果。

虽然有着以上不足,但是我们认为此方案仍旧是可行的和有前途和潜力的。

理由在于:

1首先也是最大的优势就是可以轻易实现行分辨率100像素甚至200像素的

高分辨率图像采集。

较以往几十个点的模拟方案有了质的飞跃。

2省去了一路12V电源。

我们只需保证一路5V电源稳定可靠即可,而不必再去同时保证12V升压的稳定。

因为图像的稳定往往需要电源的稳定。

以往比赛中有些队伍的失败问题确实出现在摄像头电源不稳定上面。

赛车的加速和减速往往瞬间拉低电池电压,导致升压失败摄像头图像不稳定。

3虽然电路较复杂,但是全程数字信号采集与处理,较模拟信号更稳定可靠。

在保证了电路设计,芯片焊接等硬件方面的质量后,此种方案的可靠性完全可以信赖。

4软件处理数字信号,更合理,不论二值化还是运用其它图像处理算法,空间更广,灵活性更大。

故此,我们最终采用了数字信号采集的图像处理方案,并且其稳定性及可靠性经受住了考验。

以下是一些程序代码:

摄像头初始化

//IRQ行中断初始化

voidIRQ_init(void){

INTCR_IRQEN=1;//外部IRQ使能

INTCR_IRQE=1;}//IRQ选择为边沿触发

//Timer0场中断初始化

voidECT_init(void){

DDRT=0x00;//PT口定义输入

TIOS=0x00;//设为输入捕捉

TSCR1=0x80;//定时器使能

TSCR2=0x04;//允许定时器溢出中断,定时器时钟32M/(2^3)=4M

TCTL4=0xAB;//触发电平:

下降沿-_隔行采集

TIE=0x02;//开中断

TFLG1=0xFF;}//清除中断标志

//AD初始化

voidAD_init(void){

ATD0CTL2=0xC0;//AD上电,快速清零,无等待,关闭外部触发

ATD0CTL3=0x08;//每通道转换一次,无FIFO

ATD0CTL4=0x81;//8位精度2*AD周期总分频4

ATD0CTL5=0xA0;//右对齐,无符号,单通道,通道0

ATD0DIEN=0x00;}//关闭数字输入

当行同步信号过来时,先判定该行信号是否处于场消隐区,处于则退出。

反之,延时一段时间使行消隐区过去,再判断是否采集数据,是则采集AD值传至数组中。

当场同步信号过来时,先关闭中断,再交换图像指针,处理图像,判断道路特性,从而判断舵机和电机工作。

如图3.2为软件流程图。

图3.2软件流程图

3.2.2路径识别

图像的二值化处理就是讲图像上的点的灰度置为0或255,也就是将整个图像呈现出明显的黑白效果。

即将256个亮度等级的灰度图像通过适当得阀值选取而获得仍然可以反映图像整体和局部特征得二值化图像。

首先要把灰度图像二值化,得到二值化图像,这样子有利于图像进一步处理时,图像的集合性质只与像素值为0或255的点的位置有关,不再涉及像素的多级值,使处理变得简单,而且数据的处理和压缩量小。

为了得到理想的二值图像,一般采用封闭、连通的边界定义不交叠的区域。

所有灰度大于或等于阀值的像素被判定为属于特定物体,其灰度值为0表示,否则这些像素点被排除在物体区域以外,灰度值为1,表示背景或者例外的物体区域。

因为赛道只有黑白两种颜色,其很容易分辨,采用二值化算法可以得到很好的效果,为了得到可靠的阀值,我们进行了大量的试验,最后得出了这个阀值为52,当小于这个阀值时,我们认定是检测到黑线,当大于这个阀值时,我们认为是检测到白线。

图5.3为二值化后在串口上显示出来的图像。

黑线提取流程:

黑线的提取我们参考了去年上海大学的黑线提取方法,在前十行采用边缘提取方法,十行以后的利用跟踪边缘提取方法。

实验测得这种方法只要细节掌握好能够很好的提取出黑线。

下面是具体的黑线提取方法,如图3.3:

图3.3黑线提取流程图

1)首先准备提取黑线

2)用检测跳变的方法提取出前十行中每行的两个跳变点,然后求平均值就可以得到前十行的黑线位置。

当搜索到多个跳变的时候,我们根据上一行跳变的位置确定出最优的那个跳变的位置作为本行的黑线跳变位置。

当前十行都没有找到黑线的时候,我们就认为这幅图像的黑线丢失了,然后依据前一幅图像黑线的位置,给这幅图像的整体赋极值。

当只有十行中的几行丢失时,我们就继续搜索黑线直道找完前十行位置。

3)当前十行黑线存在时,我们利用前十行黑线的位置确定第十一行黑线的位置,然后在这个区间搜索黑线,依次类推用前一行黑线的位置确定后一行黑线的位置,当本行黑线没有找到时,此行黑线位置保持上行的值,下行搜索的位置相应的扩大。

有连续3行黑线搜索不到十我们就认为黑线丢失,退出搜索。

这样既可以去除干扰,还可以大大的提高算法的效率。

值得注意的是:

第十行和前一行第九行这个接口位置边缘确定非常重要,要考虑的非常全面,不然有可能就只能搜索到前十行的黑线,后面的黑线因为边缘的问题所有不到。

4)搜索完成后推出搜索。

对搜索到的黑线进行中值滤波和限幅滤波。

只要搜索范围合理,这种算法有很强的抗干扰能力,并且可以滤除十字交叉和三角黑区的干扰。

3.3速度和方向的控制

路径识别我们采取了东北大学的三点确定曲率的方法,在一幅图像的前中后各取一点,然后利用这三点计算出赛道的曲率。

经过我们实验发现,直道曲率为一个恒定的值42,蛇形道的

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2