视觉导引智能寻迹小车系统设计剖析.docx
《视觉导引智能寻迹小车系统设计剖析.docx》由会员分享,可在线阅读,更多相关《视觉导引智能寻迹小车系统设计剖析.docx(46页珍藏版)》请在冰点文库上搜索。
视觉导引智能寻迹小车系统设计剖析
毕业设计(论文)
题目视觉导引智能寻迹小车系统设计
如需要源代码或者其他资料可以联系我(1163776101@ORm201570436@)
姓名
学号
所在学院机械工程学院
专业班级
指导教师
日期年月日
摘要
智能车作为现代社会的新产物,以及它的安全、节能、环保、智能化和信息化越来越受到人们的关注,在智能车的基础上开发出来的产品已经成为自动化物流运输、柔性生产组织等系统的关键设备。
本设计是一种基于单片机控制的简易智能寻迹小车系统,对智能车自主行驶的决策以及算法也进行了相应的研究。
本论文主要从总体方案设计、硬件和软件设计。
硬件方面以Cortex-m3为控制核心,使用STM32F103RBT6单片机,辅助模块包括电源模块、驱动模块,图像采集模块以及为了调试方便而采用的辅助调试模块。
软件设计方面重点介绍了寻迹小车如何解决轨道检测和线路跟随问题。
单片机将CMOS摄像头对路面黑色轨迹进行检测的信号,通过一定的算法分析,通过调整PWM占空比控制小车左右两轮的速度以实现转向,从而使小车能够沿着黑色轨迹自动行驶,到达自动寻迹的目的。
关键字:
智能车,图像处理,STM32
abstract
Asthenewproductofmodernsociety,intelligentvehicle,anditssafety,energysaving,environmentalprotection,intelligenceandinformationtechnology,ispaidmoreandmoreattention,Theproducthasbecomethekeyequipmentoftheautomationlogisticstransportation,theflexibleproductionorganizationandsoon.Thisdesignisasimpleintelligenttracingcarsystembasedonmicrocontrollercontrol,andtheautonomousdrivingdecisionandalgorithmoftheintelligentvehiclearealsostudied.
Thispapermainlyfromtheoverallschemedesign,hardwareandsoftwaredesign.HardwaretoCortex-M3asthecontrolcore,usestm32F103RBT6microcontroller,auxiliarymoduleincludingpowersupplymodule,adrivingmodule,imageacquisitionmoduleandtofacilitatethedebuggingandtheauxiliarydebugmodul.Thedesignofthesoftwarefocusesonhowtosolvethetrackdetectionandlinefollowingproblem.SCMCMOScameraontheroadtodetecttheblacktrajectoryofthesignal,throughacertainalgorithmanalysis.ByadjustingthedutyratioofPWMtocontrolthespeedofthecararoundtwowheelstoachievethesteering,sothatthecarcanautomaticallytravelalongtheblacktrack,reachingthepurposeofautomatictracing.
Keywords:
smartcar,imageprocessing,stm32
1.2本课题的研究现状1
2视觉导引智能寻迹小车系统方案设计3
2.1系统总体设计3
2.2系统工作原理4
3视觉导引智能寻迹小车硬件设计5
3.1电源模块设计5
3.1.1电源电压分配5
3.1.2正向低压降稳压器AMS117简介5
3.1.3AMS117-5V和3.3V稳压电路图6
3.2单片机最小系统的设计6
3.3道路图像采集模块9
3.3.1OV5116CMOS摄像头的特点和优势10
3.3.2摄像头的工作原理10
3.3.3图像的采集11
3.3.4图像的处理13
3.4直流电机驱动模块14
4视觉导引智能寻迹小车软件设计17
4.1STM32I/O口与外设的连接简介17
4.2单片机各个模块的初始化17
4.3图像信号的采集20
4.3.1行数据的采集20
4.3.2场数据的采集20
4.3.3电机的控制20
5系统的测试25
5.1系统测试的目的25
5.2系统测试的原则25
5.3系统测试的结果25
6结论27
7谢辞28
8参考文献29
1绪论
1.1课题背景
目前,在企业生产技术不断提高、对自动化技术要求不断加深的环境下,智能车辆以及在智能车辆基础上开发出来的产品已成为自动化物流运输、柔性生产组织等系统的关键设备。
世界上许多国家都在积极进行智能车辆的研究和开发设计。
智能车辆也叫无人车辆,是一个集环境感知、规划决策和多等级辅助驾驶等功能于一体的综合系统。
它具有道路障碍自动识别、自动报警、自动制动、自动保持安全距离、车速和巡航控制等功能。
智能车辆的主要特点是在复杂的道路情况下,能自动地操纵和驾驶车辆绕开障碍物并沿着预定的道路(轨迹)行进。
智能车辆在原有车辆系统的基础上增加了一些智能化技术设备:
1)计算机处理系统,主要完成对来自摄像机所获取的图像的预处理、增强、分析、识别等工作。
2)摄像机,用来获得道路图像信息。
3)传感器设备,车速传感器用来获得当前车速,障碍物传感器用来获得前方、侧方、后方障碍物等信息。
智能车辆作为移动机器人的一个重要分支正得到越来越多的关注
1.2本课题的研究现状
目前,国际上很多的研究机构已经开始关注智能交通系统(ITS)方面的研究工作了,并且也取得了很大的成果,已经研发出了一些智能化的原型车辆,并且进行了相应的测试。
然而这种智能化原型车研发,其整个过程得益于一些交叉学科的相关领域知识,如机器人技术、人工智能、自动控制、电子通讯、信号处理技术等,从中得到许多新观点,新方法。
从近来几年的发展来看,汽车电子的迅猛发展必将逐步满足人们对节能、安全、环保以及信息化和智能化的需求。
智能化作为现代社会的新产物,是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。
同遥控小车不同,遥控小车需要人为控制转向、启停和进退,比较先进的遥控车还能控制其速度,而智能小车,则可以通过计算机编程来实现其对行驶方向、启停以及速度的控制,无需人工干预,是一个集环境感知、规划决策,自动行驶等功能于一体的综合系统,它集中地运用了计算机、传感、信息、通信、导航、人工智能及自动控制等技术,是典型的高新技术综合体。
现在的智能控制在很多工厂和车间都有很大的应用舞台;人性化,智能化是下一代智能控制的研究方向,目前,我国的研究广度和深度还是不够大,在很多领域几乎是零,需要我们进一步的加深对智能控制的研究,比如汽车电子控制,航天控制,轮船控制等等,在芯片性能上,国内的研究和开发也是欠缺的,芯片的稳定性在很大程度上限制了很多领域的进展,大多都是被国外垄断,这些都是需要我们来面对和改进的地方,也正是发展的重点。
此外,智能汽车在高速公路,山地,野外,现代物流业,现在制造系统及柔性制造系统中都有广泛运用,该研究已成为人工智能领域的一个非常重要的热点之一。
1.3本课题的研究目的和意义
随着人们物质文化生活水平的不断提高,智能化的电子玩具深受人们的喜爱,尤其是各种智能小车,由于这类玩具具有较好的交互性,可控性,能够给人们带来很好的娱乐以及参与其中的体验,高科技智能化的电子类玩具逐渐成为市场的主流。
与此同时,智能小车可以应用于考古、机器人、医疗器械等许多方面,尤其在足球机器人研究方面具有很好的发展前景。
因此,智能化小车的研究不仅具有很大的现实意义,还具有极为广阔的应用前景和市场价值。
随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。
全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。
可见其研究意义很大。
通过构建智能小车系统,培养设计并实现自动控制系统的能力。
在实践过程中,熟悉以单片机为核心控制芯片,设计小车的检测、驱动和显示等外围电路,采用智能控制算法实现小车的智能循迹。
灵活应用机电等相关学科的理论知识,联系实际电路设计的具体实现方法,达到理论与实践的统一。
在此过程中,加深对控制理论的理解和认识。
本文所研究的智能车是一个比较好的智能模型,通过摄像头循迹来获得路面的信息,通过处理后从而来引导小车的运行,达到一定的智能化。
2视觉导引智能寻迹小车系统方案设计
按照题目要求,本次设计的系统是利用主控芯片控制电机,通过CMOS摄像头传感器对路面的轨迹信息进行检测,并将检测信号传输给控制器,然后控制器做出相应的处理,实现小车的自动寻迹行走,该系统设计的首要问题即解决路径检测和小车转向。
2.1系统总体设计
采用与地面颜色有较大差别的线条(如跑道表面通过白纸来覆盖,其中心有30mm宽度左右的连续黑线)作为小车运行的引导线,同时也作为识别道路状况的标志、该论文的整体智能车就可以看作是一个控制的系统。
一个完整的智能寻迹小车包括机械结构,硬件和软件三部分。
机械结构是寻迹小车能够行驶的根本。
寻迹小车有了一定的机械结构,再加上相应的硬件和软件,就构成了一个完整的系统。
图2.1系统模型框图
该系统通过面阵CMOS摄像头来实现路径识别功能,将CMOS摄像头采集过来的视频信号二值化后送入微处理器进行处理,根据路面信息来决定智能小车的行驶方向;而车速控制采用一定的算法来实现车速的调节。
另外,在软件设计中,本课题采用实时采集路况信息方法和实时控制智能小车的速度,最终达到实现整个系统的控制,使小车可以自主的按照路面信行驶。
智能车首先将路面上的白纸黑线信息进行检测,再将该智能车的姿态信息一起送给控制器STM32,控制器STM32将采集过来的路面黑线信息和智能小车的行驶信息的数据进行相应的处理、分析、决策、最终分别得出对电机的控制量和对智能小车的控制量,并对驱动电机的转速和转向加以控制,从而实现对智能小车的合理控制,即达到实时性也达到对精度的控制。
为了实现上述对智能车的控制,寻迹小车硬件系统可分为四大模块:
32位微控制器STM32F103RBT6核心控制模块,电源管理模块,道路图像采集模块,电机驱动模块。
首先要实现对路面信息采集和实时监测,并且要达到一定的抗干扰能力,从而给控制器STM32提供一个很好的决策依据。
要达到一定的实时性,首先控制器的处理速度要快,只有控制器的处理速度达到一定的速度了,才能相应的使小车的行驶速度快,实现一个稳定的实时系统。
再次,该智能小车需要一个稳定的电量来源,给行驶的小车一个可靠的能量储备,来驱动小车电机模块和该智能小车的控制器等模块的能量利用。
还有就是电源管理部分,对于该智能小车中的不同的模块,需要不同级别的电压情况,需要采取一些措施来合理的分配电源的电压,供给不同的应用模块,是小车正常的行驶。
2.2系统工作原理
本次设计采用的是OV5116CMOS摄像头作为图像传感器,运用LM1881视频同步信号分离芯片,分离出行步信号和场同步信号,供单片机来采集图像;同时运用AD模块AD8032高速比较器来进行硬件二值化,单片机由此来信号,经过一定的算法来识别路径。
整个系统上电后,STM32单片机开始不停的扫描与检测电路相连接的I/O口状态,一旦检测到相应I/O口有信号变化,就会执行对应的中断程序和判断程序,并将输出电机控制信号,通过L9110H双桥直流电机驱动模块来驱动左右两个电机,以此通过控制电机的速度来实现小车寻迹的功能。
小车转向主要通过两个不同占空比的PWM波来控制左右两个电机的转转速,由于占空比不同因此左右两轮的速度也就不同,右轮快则寻迹小车向左转,反之则右转,从而实时的控制小车的行驶状态,是沿着黑色轨道行驶的。
直流电机
图2.7系统原理图
3视觉导引智能寻迹小车硬件设计
视觉导引智能寻迹小车的硬件设计在整个智能车的设计过程中占有非常重要的位置,它是寻迹小车可靠、稳定运行的基础。
选择不同的硬件电路及器件,对系统的功能实现影响很大。
尽管很多硬件电路和器件都能实现同样的功能,但是遵循电路简单、功能强大、方便调试等原则,结合上一章所选择的硬件模块,在这些基础之上。
选择了最佳的硬件电路和器件。
3.1电源模块设计
3.1.1电源电压分配
本设计中,本着环保节能、实用经济的原则,选择的是两个3.7V可充电的锂电池串联来为系统提供7.4V的系统电压。
由于各个模块所需的电压各相同,需要一些电压的转换电路来实现系统对电压的需要。
在电源分配的电路中,要供给OV5116CMOS摄像头图像传感器5V的直流电压、主控芯片STM32F103RBT6最小系统的3.3V电压、以及双L9110H直流电机驱动的驱动电压(直接电源供电即可)。
5V
电机驱动模块
道路图像采集模块
图3.1电源电压分配
3.1.2正向低压降稳压器AMS117简介
AMS117系列是输出电压固定的正向低压降稳压器,在1A电流下压降为1.2V。
AMS1117有两个版本:
固定输出版本和可调版本,固定输出电压为1.5V、1.8V、2.5V、2.85V、3.0V、3.3V、5.0V,具有1%的精度;固定输出电压为1.2V的精度为2%。
AMS1117内部集成过热保护和限流电路,是电池供电和便携式计算机的最佳选择。
并且AMS117芯片价格便宜,调压电路非常简单,适合在本设计中使用。
AMS117封装和实物如下图所示。
图3.2AMS封装和实物图
3.1.3AMS117-5V和3.3V稳压电路图
为了确保AMS1117的稳定性,输出需要连接一个104钽电容。
图3.3降压AMS117-3.3和AMS117-5电路图
3.2单片机最小系统的设计
采用STM32系列单片机。
这款单片机采用了Tail-Chaining中断技术,完全基于硬件进行中断处理,最多可减少12个时钟周期数,在实际应用中可减少70%中断。
它具有一个32位的核,处理速度明显优于MSP430。
并且可以直接用库函数产生产生不同频率和占空比的PWM波形,调速很方便。
在用串口对摄像头调节焦距以及用串口显示的路径来确定编写的程序时,STM32单片机都非常的方便。
并且,只要学过51单片机,学习STM32很方便和容易。
以STM32F103RBT6为核心的单片机最小系统的硬件电路设计主要包括以下几个部分:
时钟电路、电源电路、复位电路、BOOT接口。
其中各个部分的功能如下:
1、时钟电路会给单片机提供一个外接的8MHZ的石英晶振。
2、电源电路主要是给单片机提供3.3V的电源。
3、复位电路在电压达到正常值是给单片机一个复位信号。
4、BOOT接口让用户可以控制单片机是运行程序还是向单片机下载程序。
如图3.4所示,该最小控制系统采用标准的STM32系列单片机的时钟电路。
STM32系列的控制器可以使用外部晶振或外部时钟源,经过内部PLL或不经过内部PLL为系统提供参考时钟,也可以使用内部RC振荡器经过或不经过内部PLL为系统提供时钟源。
当使用外部晶振作为系统时钟源时,外部晶振的频率为4~16MHZ,可以为系统提供精确的系统参考源。
本系统使用8MHZ的外接晶振为系统提供精确的系统时钟参考,使用32.768KHZ低速外部晶体作为RTC时钟源,连接到芯片的PC14、PC15引脚上。
图3.4STM32晶振电路图
在STM32系列芯片中,由于有完善的内部复位(RESET)电路,外部复位电路就特别简单,使用阻容复位方式即可,如下图3.5所示。
图3.5复位电路图
图3.6BOOT引脚的电路图
图3.7STM32F103RBT6引脚图
3.3道路图像采集模块
道路图像采集模块主要是通过CMOS摄像头采集跑道信息,并对信息进行处理,区分出不同的赛道形状,判断出赛车相对于黑线的位置。
智能循迹小车系统的总体工作模式为:
CMOSOV5116图像传感器采集跑道图像,输出PAL制式信号,将该信号经过8050三极管进行图像模拟信号AV的放大,在经过高速比较器AD8032的信号处理模块进行硬件二值化,采用LM1881进行视频同步信号分离,二值化图像信号、奇偶场信号、行同步信号输入到STM32F103RBT6微控制器,通过二维数组存取跑道信息并进行处理;通过获取的道路信息,经过一定的算法,;来判别智能循迹小车是否要左转、右转或者直线行走,通过改变TIM通道的PWM的占空比,以改变循迹小车的左右两轮的速度,以实现按照获取的内道路信号来自动行驶的功能。
图3.8道路采集模块的流程图
3.3.1OV5116CMOS摄像头的特点和优势
(1)摄像头电路板的尺寸25*28mm。
(2)5V供电电压。
(3)输出四条信号线,分别是行中断信号HS、场中断信号VS、图像模拟信号AV、图像二值化数字信号D。
(4)集成了模拟放大为数字式的电平信号8050三极管。
(5)PAL制,每秒25帧,一帧两场,那么每秒就有50场。
意味着16.7MS左右就有一幅图像产生。
(6)集成LM1881视频分离芯片,直接输出场同步信号VS、行同步HS等供采集的时序信号。
3.3.2摄像头的工作原理
摄像头按一定的分辨率,以隔行扫描的方式采集图像上的点,当扫描到某点时,就通过图像传感芯片将该点处图像的灰度转换成与灰度一一对应的电压值,然后将此电压值通过视频信号端输出。
如下图3.8所示,摄像头连续地扫描图像上的一行,则输出就是一段连续的电压信号,该电压信号的高低起伏反映了该行图像的灰度变化。
当扫描完一行,视频信号端就输出一个低于最低视频信号电压的电平(如 0.3V),并保持一段时间。
这样相当于,紧接着每行图像信号之后会有一个电压“凹槽”,此“凹槽”叫做行同步脉冲,它是扫描换行的标志。
然后,跳过一行后(因为摄像头是隔行扫描的),开始扫描新的一行,如此下去,直到扫描完该场的视频信号,接着会出现一段场消隐区。
该区中有若干个复合消隐脉冲,其中有个持续时间远长于其它的消隐脉冲,称为场同步脉冲,它是扫描换场的标志。
场同步脉冲标志着新的一场的到来,不过,场消隐区恰好跨在上一场的结尾和下一场的开始部分,得等场消隐区过去,下一场的视频信号才真正到来。
摄像头每秒扫描25幅图像,每幅又分奇、偶两场,先奇场后偶场,故每秒扫描50场图像。
奇场时只扫描图像中的奇数行,偶场时则只扫描偶数行。
摄像头有两个重要的指标:
分辨率和有效像素。
分辨率实际上就是每场行同步脉冲数,这是因为行同步脉冲数越多,则对每场图像扫描的行数也越多。
事实上,分辨率反映的是摄像头的纵向分辨能力。
有效像素常写成两数相乘的形式,如“320x240”,其中前一个数值表示单行视频信号的精细程度,即行分辨能力;后一个数值为分辨率,因而有效像素=行分辨能力×分辨率。
图3.9摄像头的视频信号
3.3.3图像的采集
由于OV5116摄像头图像传感器输出的信号是图像模拟信号AV,而图像模拟信号AV是集行同步信号、场同步信号、消隐信号的复合信号,所以OV5116摄像要能有效地对视频信号进行采样,首先要处理好的问题是如何提取出摄像头信号中的行同步脉冲、消隐脉冲和场同步脉冲,否则,单片机将无法识别所接收到的视频信号处在哪一场,也无法识别是在该场中的场消隐区还是视频信号区,更无法识别是在视频信号区的第几行。
这里有两种可行的方法。
第一,直接采用A/D转换进行提取。
当摄像头信号为行同步脉冲、消隐脉冲或场同步脉冲时,摄像头信号电平就会低于这些脉冲模式之外时的摄像头信号电平。
据此,可设一个信号电平阈值来判断A/D转换采样到的摄像头信号是否为行同步脉冲、消隐脉冲或场同步脉冲。
第二,就是给单片机配以合适的外围芯片,此芯片要能够提取出摄像头信号的行同步脉冲、消隐脉冲和场同步脉冲以供单片机作控制之用。
由于单片机的处理速度有限,而一些脉冲的间隔时间又较短,我们就采用了第二种方法进行信号提取。
LM1881视频同步信号分离芯片可从摄像头信号中提取信号的时序信息,如行同步脉冲、场同步脉冲和奇、偶场信息等,并将它们转换成TTL电平直接输给单片机的I/O 口作控制信号之用。
LM1881的端口接线方式如图3.10所示。
图3.10LM1881接线图
其中,引脚2为视频信号输入端,引脚1为行同步信号输出端(下图中的b)。
引脚3为场同步信号输出端,当摄像头信号的场同步脉冲到来时,该端将变为低电平,一般维持230us,然后重新变回高电平(如图3中的c)。
引脚7为奇-偶场同步信号输出端,当摄像头信号处于奇场时,该端为高电平,当处于偶场时,为低电平。
事实上,不仅可以用场同步信号作为换场的标志,也可以用奇-偶场间的交替作为换场的标志
图3.11LM1881分离视频信号的时序图
采用LM1881从摄像头信号VIDEO中分离出奇偶场同步信号O/E和行同步信号HS。
(1)行同步信号:
行同步信号为一系列的脉冲信号,其直接接单片机的外部中断口PB14引脚,每次行同步信号到来都会触发一次外部中断,该行中断信号用于采集每一行数据的标志位,该信号一般是高电平有效,并且可以对该中断进行计数,便可一直到当前黑白图像信号是哪一行。
(2)奇偶场同步信号:
奇偶场同步信号的输出为高/低电平,奇场输出高电平,偶场输出低电平,其可以直接接单片机的普通I/O口,用时只需读取该I/O口的高低电平就可以知道摄像头当前输出的图像是奇场还是偶场。
用改口接单片机PB15口,每次场同步信号到来都会触发一次外部中断,该场同步信号用于判断一场数据是否读取完和进入下一场的标志位。
该信号一般是低电平有效,当检测到场中断信号时,即刻把之前寄存器累积的数据清零,使得下一场的数据当检测到行中断信号时,即刻进入读取行数据。
3.3.4图像的处理
1.摄像头信号的转换电路
由于摄像头输出的黑白全电视信号为PAL制式模拟信号,所以必须经过相应的图像
处理模块进行相应转换之后才能由单片机进行处理。
解决方案有以下三种:
(1)使用单片机内部A/D转换
采用单片机的AD口,读取图像数据。
这个方案的优点是外接电路简单。
缺点是受到单片机AD转换速率的影响,读取的数据慢,而且数据错误率较高,同时严重的占用单片机的资源,导致程序运行慢等的缺点。
一般单片机超频到64M下,一行采集大概是80个点。
其精度对于图像的分析是不够的,特别是前瞻50cm以后的信号,使得图像分辨率不高,赛道检测信息量不足,这种方法达不