版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件系统主要包括以下几个部分:赛道图像采集部分,图像数据处理部分,舵机、电机的控制部分,显示调试部分。整体流程图如图5.1所示:图5.1整体流程图摄像头组的一大难点就是图像的几个中断时序问题,只要控制好他们的先后顺序就能把图像采集得很好。该智能车使用的是OV7620CMOS摄像头,它可以直接输出行场同步信号,正常输出图像大小为240x640。但对于小车来说太大了,要想识别出赛道的有用信息只需要少量的像素信号就行。因此采用隔行采集和pclk分频的方法把图像进行缩减。图像采集时可以采用固定隔行采集的方法,这种方法虽然可以很好的采到真实的图像,但是到了后面的图像处理时就没有采用在特定行采集的方法好了。考虑到摄像头焦距的问题我们最终采用固定行采集方法。这种固定行采集方法可以将图像进行简单的纵向矫正。像素信号可以采用简单的延时方法采集,这种方法采回来的图像质量很差。一是图像的中心不好调整;二是很容易采到杂信号。因此,我们用软件模拟pclk的5分频信号,将原来的每行640个像素点减少到了128个点,再通过K60的DMA进行图像数据的采集。这种方法虽然也不是最准确的采集方法但是比起第一种方法还是有所进步的。这样就可以每扫描一场得到完整的简单的赛道信息了,由于我们使用的是软件分频,二值化和滤波,需要对图像处理占用一部分时间,为了避免采集与处理的冲突,所以选择了隔场扫描,每采集一场,然后处理图像并控制。之后再从新的一场开始采集,同时通过特定行行数组对图像矫正,能够保证图像的质量和真实的赛道情况,图5.2为摄像头采集到的赛道信息: 直入十字 斜入十字 虚线小s 直道图5.2赛道信息采集到的图像信息处理成完整的图像,就该提取赛道有用信息了。首先就是图像的二值化,这其中的难点是阈值的选取,只有阈值取得好才能很好的准确的简化图像信息。这其中就有动态阈值和静态阈值两种软件二值化的方法。静态阈值方法对于环境的适应能力比较差,环境变化就有可能不能准确的二值化图像。动态阈值方法虽然可以立刻适应新环境,但是它也有自己的弊端,最主要的是运行时间长,其次是它不一定能很好的找到一幅图像的阈值,最明显的地方是在虚线小S处,光线稍暗点就会把黑色虚线二值化没了。考虑两种方法的优缺点,最终采用静态阈值方法。只要在比赛时的试车阶段把环境的阈值调整好就可以了。得到二值化的图像后就是中心线的提取了。如何提取中心线是图像处理的关键,只有正确的提取中心线才能准确的控制小车。由于赛道两边的引导线是连续的,只有在十字和虚线小S处会出现短线的情况,但是这都可以通过图像底层的黑线补出来。因此我们采用先找图像底部引导线再通过此引导线向上逐行的寻找赛道两边的黑线方法来提取赛道边线,进而提取到中心线。关于中心线提取的具体思路如下:=1\*ROMANI从图像底层三行采用从中心依次向两边扩散搜索,找到黑点记录值;=2\*ROMANII如果两边都找到,直接求平均值得到中心点坐标;如果只找到一边就用图像边缘与这一边确定中心值;如果两边都没找到,图像中心即中心值。记录连续采到有效点的坐标值。如果采到有效的连续的三行黑色边线,则采用这三个边线的坐标来作为接下来提取黑线的引导线。否则继续寻找,直到找到可靠的引导线。=3\*ROMANIII以上行引导线提取到的中线点坐标向两边寻找黑点,找到后与上行的引导线做对比,如果相差不大则说明这个点采集正确。否则放弃这个点,用上一行引导线的坐标代替它。这样就会把十字和虚线小S的断线给补上。=4\*ROMANIV以这种方法提取下去就能把整幅图像的中线提取出来,考虑到急弯的时候会出现赛道长度的缩减,我们进行了赛道宽度的限制,当左右边线的差值小于某个值时就会停止中心线的提取。这样就会防止误采的可能。对于斜入十字我们也做了简单的防止串道的限制算法,就是在斜入十字时赛道的宽度会突然变宽,这是不可能的,所以当采集行比引导行的赛道宽度宽时就放弃本行数据,继续采取上行的数据代替。这样就不会在斜入十字是出现串道的情况。通过大量的实际实验证明我们这种方法既简单又可靠,在华北赛区的比赛中未出现串道的情况,图5.3为采用这种方法提取的中心线示意图。 直入十字 斜入十字 虚线小s 直道图5.3赛道中心线提取示意图PID(ProportionalIntegralDerivative)控制是最早发展起来的控制策略之一,由于其算法简单、鲁棒性和可靠性高,被广泛应用于工业过程控制,尤其适用于可建立精确数学模型的确定性控制系统。图5.4为模拟PID控制系统原理框图。图5.4PID原理框图PID是一种线性控制器,它根据给定值rin(k)与实际输出值yout(k)的差值e(t)构成控制方案,图5.5为利用运放实现模拟PID的一个例子:图5.5虚短虚断原则关于各调节器的作用说明:♥比例调节器P1、起调节作用,与输出量和给定量的差成正比,有差就有调节作用,所以他的调节结果总是有差存在,这种调节不可消除差,所以叫这种调节为有静差调节;2、但这种调节作用快,能很快减小误差,是最常用的一种调节器。3、积分I调节慢,所以PI是最常用的一种搭配。♥积分调节器I1、是给定量与输出量的差对时间的积分,在电路里就是用给定量与输出量的差给电容充电,只要时间足够长,电容器的电压总会到达给定量,使输出量与给定量的差为零;2、积分调节器是一种无静差调节器,意思是说可调节到给定值,做到精确、准确输出;♥微分控制调节器D1、,这种控制总是以输出量与给定量的差的变化率成正比,差变化越剧烈,调节作用越大,差变化越平稳,调节作用越弱;2、这种微分调节作用,使得输出量平稳而很少波动;3、这种微分调节作用,对输出量的变化、波动产生强烈的阻尼、抑制的作用,就像摩擦力的作用;增量式PID的算式为:如果换成智能车里的方向控制就变为:Pwm_offset=PWMMiddle+PID_P*(error-last_error)+PID_I*(error)+PID_D*(error+pre_error-2*last_error);如果换换成智能车里的速度控制就变为:Pwmtemp+=PID_P*(error-last_error)+PID_I*(error)+PID_D*(error+pre_error-2*last_error);在图像信息中确定中心值后,就可以得到当前中心线的朝向,舵机通过PD控制就可以得到很好的控制效果。通过合理调节P参数,就可以使小车在赛道上稳定行驶,在弯道增大P项可以使小车切内道,但是在直道上会震荡,于是我们采用动态P来实现舵机基本转向,直道的P系数小,弯道的系数大,然后再加入D项可以使转弯提前,出弯时转弯减小,调节PD系数可以将小车的行车线调整到一个较为理想的状态。后期还结合中心值加权,对路径做了一定的优化。舵机控制的基本公式如下:Pwm_offset=PWMMiddle+P*(error)+D*(error-last_error)其中:error是图像与赛道偏差,last_error为上一次的偏差,那么D项对应的就是赛道变化率。对于速度控制,我们采用了增量式PID控制算法,基本思想是直道加速,弯道减速。经过反复调试,将每场图像得到的黑线位置与速度PID参考速度值构成二次曲线关系。在实际测试中,我们发现小车直道和弯道相互过渡时加减速比较灵敏,与舵机转向控制配合得较好。基本PID公式如下:pwmtemp+=PID_P*(error-last_error)+PID_I*(error)+PID_D*(error+pre_error-2*last_error);基本速度公式如下:Speed=Highspeed-error*error/(Highspeed-lowspeed)通过不断实践,发现直入弯时,需要及时减速,所以我们根据中心值偏差以及有效行,判断基本赛道类型,不同的类型需要不同的高速和低速。结果表明这样控制效果更好。第六章系统开发及调试工具程序及硬件的调整必定离不开调试工具的帮助,合理的使用调试工具可以提高整个智能车制作的效率和质量。再因比赛规定赛场上是不能下载程序的,所以人机交互调试界面的易用性和可靠性就决定了小车对赛场赛道和光线的适应能力。IAREmbeddedWorkbenchforARM是IARSystems公司为ARM微处理器开发的一个集成开发环境。比较其他的ARM开发环境,IAREWARM具有入门容易、使用方便和代码紧凑等特点。相对于KeilforARM、CodeWarrior而言,IARforARM的编程界面是最简单的,编译效率高,在嵌入式系统的调试方面提供了可供调试的插件,方面用户调试程序。图6.1为IAR编程与调试界面。图6.1IAR编程与调试界面J-LINK仿真器是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器,可与IAR编译环境无缝连接,操作方便且下载速度快,是学习开发ARM最好最实用的开发工具,故使用此款仿真器开发K60,图6.2为J-LINK外观。图6.2J-LINK外观当后期调试需要小车在赛道上边行驶边发送赛道信息到上位机时,USB转串口线是无法满足要求的,经过考虑我们选择了蓝牙模块无线串口通讯。两块蓝牙模块一块当从机,一块当主机,配合USB-TLL模块可以方便的将接收到的数据显示在电脑上,图6.3为蓝牙模块和USB转TTL模块实物图。图6.3蓝牙模块及USB转TTL模块 我们采用全功能上位机对摄像头采集到的图像进行显示与分析。该软件可以实时显示串口接收到的图像,也可将二维数组转图像,支持图像保存,动态设置协议头,可以显示图像的行列值,灰度值,支持添加算法插件等高级功能。使后期图像的深入分析与复杂控制算法的编写成为可能,图6.4为全功能上位机界面。图6.4全功能上位机打开界面我们选用OLED显示屏显示参数,选用3X6X2.5MM贴片式微动按键调节参数。进一步缩小电路板面积,使车身整体更加精妙合理的设计成为可能。图6.5OLED与LCD5110比较表7.1模型车的主要技术参数说明项目参数路经检测方法摄像头组车模长、宽、高(mm)长:300宽:220高:350电容总量1400微法传感器种类及个数CMOS摄像头1个,测速编码器1个,红外对管5个除了车模原有的驱动电机、舵机之外伺服电机个数无额外伺服电机赛道信息检测精度1cm赛道信息检测频率30HZ车模总重量1Kg第八章总结我们小组成员都是非自动化专业,在小车制作过程中,对此产生了浓厚的兴趣,从对智能车一无所知开始,通过查找资料补充知识,经过一系列的设计电路,组装机械,编写程序,分析算法,最后终于能够让我们的车模跑的达到了预期的要求,并积累很多宝贵的经验。本智能车系统使用数字摄像头,直接输出期望的数据格式,减轻了硬件电路的负担。适当的使用了贴片式芯片,既保证散热又有效的缩减了电路面积。使用了32位单片机,比16位单片机执行速度快。中心线提取是根据边线连续性的特点提取的,这样大大提高其准确性,省去了对赛道识别的算法。由于OV7620本身场周期16.6毫秒的限制再加上我们使用的提取修正图像数组的固有缺点。导致必需使用隔场采集,使程序运行周期延长到了30毫秒左右。相比电磁组和光电组8毫秒左右的运行周期慢很多,且程序内各函数执行循序安排不甚合理导致内耗很大,严重影响了车速的提升。硬件设计不甚完善导致小车有些头重脚轻。采用的K60最小系统板体积偏大且没有集成SD模块,故日常调整参数时没有使用上预期的SD卡来读取小车运行的实际参数,智能凭借经验来调节,大大降低了参数调整的精度和准确性,也使调车的队员十分辛苦。使用灵敏度更高,场周期只有8毫秒的OV7725,采用硬件二值化并将电路制作在摄像头背面。充分利用DMA采集优势,将算法放在行中断,达到预期的一场采集并处理使程序运行周期达到8毫秒。采用线程更高,体积更小的光电编码器并完善硬件设计彻底解决车体头重脚轻的问题。采用体积更小,模块集成度更高的K60最小系统板,充分发挥32为单片机的强大功能。经过几个月的制作和调试智能车,每个队员都收获很大。通过这次比赛,不仅发挥了队员的创新合作精神,而且也学习到其他参赛队的控制思想和优秀作品。能参加这项比赛,对于本队每个人来说,定会成为人生当中铭记的经典,每个组员要感谢在这过程中一直鼓励、支持、帮助我们的指导教师,感谢学校和大赛组委会为我们提供的展示平台,感谢在这过程中所有帮助过我们的人们。[1]童诗白,华成英.模拟电子技术基础[M].北京:高等教育出版社,2001.[2]阎石.数字电子技术基础[M].北京:高等教育出版社,2000.[3]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京.清华大学出版社.2004[4]谭浩强著.C程序设计.北京:清华大学出版社,2003.[5]邱关源.电路.高等教育出版社,1999.[6]第七届北京科技大学CCD技术报告.[7]第七届常熟理工学院-闪电六队-技术报告. 第八届全国大学生智能汽车竞赛技术报告附录voidhang(){unsignedcharj,*p;if(PORTA_ISFR&(0X00000001<<10)){PORTA_ISFR|=0X00000001<<10;m++;if(m==XZ_Hang[Line_C]){p=&Image_Data[Line_C][0];for(j=0;j<COLUMN;j=j+2,p=p+2){*p=(unsignedchar)LPLD_GPIO_Get(PTB);asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");*(p+1)=(unsignedchar)LPLD_GPIO_Get(PTB);asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");//asm("nop");}Line_C++;}//enable_irq(87);if(Line_C==ROW){SF=1;K=0;//DisableInterrupts;disable_irq(87);disable_irq(88);return;}}}voidchang(){if(PORTB_ISFR&0X00000001<<11){PORTB_ISFR|=0X00000001<<11;PORTA_ISFR|=0X00000001<<10;disable_irq(88);Line_C=0;//LPLD_UART_PutChar(UART1,0xff);//LPLD_UART_PutChar(UART1,0xff);enable_irq(87);K=1;}}voidPIDctr(intyushe_maichong){
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 承包棋牌室协议书
- 安全协议书10篇
- 二零二四年度教育培训合同范本
- 三年级数学计算题专项练习及答案
- 二零二四年度环保设备制造与安装合同
- 2024版智能制造内支模架安装承包合同
- 二零二四年度艺人经纪合同:经纪公司与合作艺人之间的经纪合作协议
- 二零二四年度国际物流服务采购合同
- 2024年度面粉厂产品生产线环保改造合同
- 2024年度设备买卖合同解读
- 视频监控系统关键技术标准规范
- 弓形虫病课件
- 年产30万吨煤焦油深加工工程项目可行性研究报告
- 2024年辽宁工程技术大学马克思主义基本原理概论(期末考试题+答案)0
- 围手术期血糖管理指南
- 2024年中国人寿集团重庆分公司招聘笔试参考题库附带答案详解
- 中医妇科科普知识讲座课件
- 保险公司入职测评题库
- 数字经济职业生涯规划
- 青少年对中国传统文化的态度和认知程度
- 换轨大修施工组织
评论
0/150
提交评论