版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE2基于MK60系列微处理器主控芯片的智能车控制系统设计摘要本次智能汽车设计方案主要分为四大部分,其中以NXP研发的MK60系列微处理器作为主控芯片,并由此自主设计构思智能汽车控制解决方案以及相关系统模块的设计,其实现的主要功能分为OV7725摄像头信号的采集与数字化处理、车身姿态控制算法的优化以及车辆速度的调节与控制等,最终达到智能汽车可以在无外界控制的情况下,依靠自身设备自主的识别赛道元素,并能够实时地输出车辆运行状态,能够根据不同的路况实时地调节车辆的运行状态的目标。在这个项目设计制作以及后期调试的过程中,我们针对智能汽车的各种整体构架和基本布局分别做了深入地研究,分别在其机械结构、硬件搭建和软件设计等方面均做了很多改进,硬件上主要考虑各种传感器的结构和布局,改进了驱动电路,软件上则是采用多种算法相互结合的方式:寻线算法放弃了左右边线简单运算的方法,而是采用了优化位置的加权算法。而在控制算法上,从PID控制探索到Bang-Bang算法,再发展至模糊PID,为了能够实现智能车的最优控制我们对此进行了广泛而深入的研究。关键词:模式识别,PID控制器,图像识别,智能汽车目录前言 1第1章绪论 21.1引言 21.2国内外智能汽车的发展状况 21.2.1国外智能汽车的发展状况 21.2.2国内智能汽车的发展状况 2第2章智能汽车整体架构设计 42.1车模机械系统的组成 42.2车模底盘及转向机构调校 52.3各电路模块的安装 62.3.1摄像头的安装 62.3.2编码器的安装 72.3.3锂电池的安装 7第3章硬件电路设计 83.1硬件电路整体架构 83.2图像采集模块 83.3主控模块 93.4电机驱动模块 93.5电源管理模块 10第4章软件系统设计 124.1软件系统设计方案 124.2车模行驶信号获取与处理 134.2.1原始赛道图像获取 134.2.2赛道边线的提取 144.2.3车模行驶偏差获取与处理 144.2.4起跑线的识别 164.3车模行驶状态控制 174.3.1车模速度控制 174.3.2车模转向控制 194.3.3Bang-Bang控制算法 204.4程序流程图 20第5章系统调试与运行 225.1IAREmbeddedWorkbenchIDE调试软件 225.2COMS摄像头上位机 22第6章结论 24致谢 25参考文献 26附录1主程序 28附录2电路图 33前言智能车作为多项高新技术的经典结合体,它涵盖了精密传感器、微处理器、图像信息后期处理、电子信息通信以及经典自动控制等相关的先进技术。在依托传统控制理论、现代控制原理、单片机原理及应用、传感器、机器视觉信息处理、计算机科学等众多专业技术的基础上迅猛发展,形成了以自动控制理论为核心,多学科、多门类相互渗透的智能控制技术。随着我国综合国力和科研地位的显著增强,智能控制技术在对原有汽车自动化控制技术的基础上经过几代人的不断努力,由开始的汽车智能驾驶领域逐步覆盖到人们生活的各行各业。其控制技术的发展程度和水平现在已经成为我们衡量一个国家科技实力和综合创新水平高低的重要指标。第1章绪论1.1引言随着高新技术的不断发展和我国科研技术的显著提升,在尖端技术发展日新月异的今天,其中无人驾驶技术由人们眼中可望而不可即逐步转变为普及寻常百姓家,现在的普通家用轿车大多数都配备了L2级智能辅助驾驶系统,而这一变化只用了短短四年。科技进步让人们的生活水平大幅度提升,是实现中华民族伟大复兴的重要手段,由此,中央十四五规划纲要提出,要重点提高科研建设投入,解决一系列“卡脖子”的高精尖技术,使尖端技术真正的掌握在中国人手里。1.2国内外智能汽车的发展状况1.2.1国外智能汽车的发展状况国外的智能汽车研究要早于我国数十年,其发展历史可以分为三个阶段:第一阶段:二十世纪五、六十年代初,世界上的第一台自动导向搬运车系统在美国BarrettElectronics公司研制成功,起初该系统只是用在超市送货的遥控车上,后来经过设计改良,在各类加工厂的流水线上有了他的身影。毋庸置疑,它的出现为汽车零部件的制造、后期设备的装配立下了汗马功劳,它的出现标志着世界智能汽车控制系统的研究正式开始。第二阶段:1980年,智能汽车控制系统的研究已经在全球各地初见成效,从开始时的一国主导发展到现在的多国并驾齐驱的局势。在以英、法、德牵头的欧盟国家也相继启动了智能汽车控制系统的研发;在亚洲,公路辅助驾驶研究会在日本成立。第三阶段:在进入二十一世纪后,世界各国的智能汽车控制系统均取得了很多成果,其中以美国特斯拉公司为代表生产的电动汽车使用的智能汽车控制技术尤为突出。1.2.2国内智能汽车的发展状况我国的智能汽车控制系统研发较国外相比起步较晚,但近年来政府大力支持,科技人才的引进,使这种差距在逐渐缩小,国产汽车中如小鹏、蔚来、吉利等厂家都取得了较多的成果。随着我国自主研发的火星探测器“祝融”成功着陆、中国空间站的搭建,运用在智能汽车控制上的技术在各个领域也得到了充分的普及和应用,我国的控制技术已走在世界前列。
第2章智能汽车整体架构设计2.1车模机械系统的组成智能车机械系统包含了车模底盘、驱动机构、转向机构、以及电路模块四个部分。车模机械系统如图2.1所示。图2.1车模机械系统车模底盘是构成整个车模的基础,其材料由玻璃纤维构成。底盘上搭载着各个模块及零件,是整个车模最为重要的部件之一,底盘的质量直接影响着车模的质量。底盘上承载了车模的驱动机构,C车模采用后轮驱动的形式,驱动电机和传动机构以及驱动轮通过机械连接的方式固定在底盘上。底盘前部承载着车模的转向机构,通过机械连接固定在底盘上。同时底盘起着支撑整个车体的作用,是整个车模系统的主要承力机构,各电路模块均安装在底盘之上。C车模底盘结构如图2.2所示。图2.2C车模底盘结构驱动机构由一组RS380电机以及驱动齿轮构成,C车模采用后轮两驱设计,大功率电机能更好的使车辆在过弯时有更好的差速性能。驱动电机参数如图2.3所示。额定电压:7.2V空载电流<630mA最大功率>20W空载转速15000±3000rpm图2.3驱动电机参数转向机构包含了轮鞘、转向杯、轴承几个部分。转向机构安装在底盘的前部,驱动前轮运动,并控制车模的运动方向。其安装角度很有讲究,科学的安装角度直接影响着小车拐弯时的流畅性和车模整体的运行效率。机械上的问题往往都出现在转向机构上,这部分也是车模最脆弱的一部分。电路模块主要包括了OV7725摄像头采集电路模块、MK60主控模块、电机驱动模块以及电源管理模块四个部分。摄像头是整个车模获取赛道信息的唯一器件,摄像头的性能一定程度上决定了车模运行的稳定性,好的摄像头能够获取更加准确的信息,使得车模精准的运行。主控模块是整个车辆的核心控制,MCU通过处理摄像头采集的数据来调节PWM,进而控制后轮电机以及前轮转向。电机驱动模块采用经典的H桥电路控制后轮转速。电源管理模块通过LDO线性稳压器将锂电池的电源进行分配,供给各电路模块使用。2.2车模底盘及转向机构调校我们选用博斯威龙公司生产的C车模作为本次设计车模,为了更好的提高智能汽车在赛道的通过性以及稳定性,我们通过调节前叉臂的高度来降低车身高度,使其在过弯时有更稳定的车身姿态。舵机的安装方式和安装位置直接关系到舵机在接到动作指令后能否可以迅速灵敏地控制前轮打角转向,若舵机的调整没有到位或者安装有问题,将会在很大程度上限制其转向的角度以及转向反馈响应的速度。舵机的安装形式大体分为两种,一种采用卧式的安装方法,将舵机横放在底盘上,通过舵机输出轴驱动转向机构。但是卧式安装舵机的高度过低,需要增加一个机械连杆,这样稳定性会有所下降。而且舵机卧式安装的话,由于舵机宽度较大,会比较占空间,并且不好固定。另一种采用立式安装,将舵机站立着安装在底盘上。这种安装方式方便固定,舵机输出轴的转动方向和转向机构的运动方向在同一轴线上,这样减少了传动机构,增大了前轮转向的力矩。转向会更加灵敏,所以我们采用立式安装。舵机安装方式如图2.4所示。图2.4舵机安装方式2.3各电路模块的安装2.3.1摄像头的安装该车模所安装的摄像头采用的是龙邱科技公司二次开发生产的OV7725型彩色摄像头,该摄像头拥有30W像素并且具有硬件二值化功能,最高支持150HZ的帧频率,可以提供稳定的画面。为了保证摄像头拥有足够的视野,我们将摄像头在符合比赛要求的前提下尽可能的调高,这样就可以保证以一定的角度俯视地面,一定程度上可以解决反光的影响。小车运行过程中会产生明显的震动,会引起摄像头的震动,摄像头一震动小车图像也会跟着震动,小车也会更加剧烈的震动,如此就会形成正反馈,造成不好的后果。因此需要减轻摄像头的震动,所以摄像头的安装支架采用三角形结构,大大增强了稳定性。2.3.2编码器的安装为了实现智能车的闭环控制,我们选用编码器来实时采集后轮转速,再由单片机进行调节,本车模采用的磁电式编码器,型号为龙邱科技公司生产1024线mini编码器。由于编码器为磁电式编码器,所以在安装使用时需要尽可能的远离电机,防止磁场对编码器产生干扰。该款编码器具有强大的兼容性,可以直接输出方向和脉冲并且同时兼容正交解码。编码器安装如图2.5所示。图2.5编码器安装2.3.3锂电池的安装我们选用锂离子电池代替普通镍铬电池,并将电池安装在了车模的中前部,并用扎带固定好。其目的是既能提高车模在高速行驶时的稳定性,又能增强前轮对地面的压力。在增强转向能力和减轻车身重量之间做出平衡,车模和电池应尽量贴合,保证智能汽车重心处于较低水平,同时需要注意在调试过程中,车速过快时需要及时调整电池位置,否则容易出现甩尾现象,在这里,电池既充当能源供给又扮演着配重的角色。
第3章硬件电路设计3.1硬件电路整体架构硬件电路包含了采集模块、主控模块、驱动模块和电源管理四个模块。硬件电路架构如图3.1所示图3.1硬件电路架构图3.2图像采集模块由于COMS制作工艺较为复杂,摄像头数据采集模块我们直接选用龙邱科技公司研发生产的OV7725摄像头组模块采集赛道图像,该模块集成了基础的COMS以及图像二值化电路,可以进一步减轻MCU的数据处理压力,提高程序执行速度。摄像头接口和单片机之间以并口的方式传送数据,为了尽可能的加快数据传输速率,我们将图像数据设置为单片机的直接存储器访问接口传输。图像采集模块电路如图3.2所示。图3.2图像采集模块电路3.3主控模块主控模块由恩智浦公司生产的Cortex-M4为内核的MK60DN512ZVLQ10控制芯片及外围电路构成,该芯片带DSP的高达100MHzARMCortex-M4核,最多128KBRAM,32kHz晶体振荡器,能更迅速的处理所需信息。主控模块如图3.3所示。图3.3主控模块电路3.4电机驱动模块本次我们选用博斯威龙公司生产的C车模附带的380电机为动力电机,该电机具有功率较大、工作电流强,工作电压最低值为12V的特征,由于直接使用电池并不能正常的驱动电机,而且还容易损坏电池,为此,我们选用了经典的电机驱动电路——H桥电路,使用该电路可以由MCU产生的PWM来控制MOSFET的导通和关断,选取MC34063做升压电路,将电源电压升至12V,选用IRLR7843MOS芯片作为MOSFET的驱动芯片。为了防止电机驱动电路对单片机造成干扰,在驱动电路的输入级接入了逻辑门电路74LVC245进行隔离。电机驱动模块电路如图3.4所示。图3.4电机驱动模块因为C车有两个驱动轮,所以我们使用八个MOS管构成两组H桥式电路驱动电机。极大地保证了380电机在大电流以及瞬时逆转的情况下能可靠工作。电机驱动PCB板如图3.5所示。图3.5电机驱动模块PCB板3.5电源管理模块由于整个智能车系统各个外接设备的额定电压不同,而电源供给只有7.2V一种,这就需要我们利用LDO来将电源合理升/降压来供给各个模块,其中主要电路为7.2V转3.3V,7.2V转5V以及7.2V转6V。其中3.3V主要给MCU、OLED、拨码开关供电,5V主要给OV7725摄像头模块、编码器模块、蜂鸣器供电;6V专为舵机供电。由于整个电路系统中5V使用最多,电路功耗最大,电流峰值可达2A,为了降低电源纹波干扰,我们选用现在市场普遍的电路方案——线性稳压电路,分别选用TPS7333、TPS7350以及AMS1117系列作为稳压芯片。图3.6是TPS7350的最小系统原理图。图3.6TPS7350的最小系统原理图
第4章软件系统设计4.1软件系统设计方案一套结构清晰简洁的算法程序是智能车平稳的高速行驶,快速低容错寻线的基础。基于MK60的智能小车自动控制系统是我们自行设计开发的,它依靠CMOS摄像头采集并准确识别轨道上的各种元素。因此,图像采集、二值化后处理和图像畸变校正成为整个软件算法的核心内容。我们充分利用一种具有良好鲁棒性的经典PID控制算法来控制智能车辆的转向和速度。通过理论计算和实际参数补偿的方法,使智能车能够稳定、快速地完成比赛。软件系统结构如图4.1所示:图4.1软件系统结构图像获取与处理包含了图像的采集、图像的处理以及图像偏差提取三个部分。赛道元素的采集是将OV7725采集的每一帧图像通过调整合适的阈值将灰度图像转为二值化的黑白图像,图像由此变为0—255个数值,将其采集到内存中,并转化为坐标的形式。经过二值化的图像在编写的图像处理程序中将采集到的图像保存在一个二维数组中,这样就可以将图像问题转换成数学问题进行处理。图像的处理主要是通过赛道边线的提取来进行赛道中线的计算与补线的,赛道元素的识别,赛道弯曲程度的计算。图像处理算法是整个软件系统的核心。偏差提取是根据图像处理的结果提取车模对应于赛道的偏差,智能车根据计算得到偏差要及时调整舵机,使其能够以最理想的路径行驶。车模控制主要包含有车模的高速运动速度控制和前轮转向控制两大部分。速度自动化控制系统是利用自动控制理论最经典的PID算法实现控制,智能车根据路况通过调整MCU输出的PWM波占空比来随时调整速度,即在直道加速以获取最短通过时间;在弯道匹配后轮差速,在不冲出赛道的前提下快速通过。前轮转向控制是根据图像处理的结果提取智能车的行驶偏差,目标中线与实际中线对比,控制智能车在赛道上根据赛道的曲率进行转向,并且保证智能车转向与速度匹配,使其运行流畅,无剧烈抖动或反应迟缓现象发生。4.2车模行驶信号获取与处理4.2.1原始赛道图像获取在摄像头采集模块将图像信息传给MCU后需要首先进行预处理,因为赛道元素多种多样,有圆环、十字、障碍、坡道以及起跑线,而且在比赛现场还要考虑各种干扰,如光照、反光、人影等,同时,为了尽可能多的采集到更多有效信息,我们的摄像头配备了120°广角镜头,为此还要考虑到采集的原始图像的畸变,因此,只能在图像算法上进行优化,来排除干扰因素,最大限度的对赛道进行有效识别,并提供尽可能多的赛道信息供MCU判断使用。通过摄像头得到的原始图像需要提取不同信息来提供给MCU进行进一步处理,其中关键的信息有赛道的曲率、赛道元素的标志位信息、赛道中值的提取、边界的拟合等,由简单的成像原理可知,摄像头拍摄的图片会有失真,有近大远小的效果,所以后期还需要进行处理。摄像头前瞻的高度也决定的车辆运行时提前反应的速度,摄像头越高,视野越高,能捕捉的图像长度就越多,能够好的预判,及时调整车辆速度和姿态,但是,图像过高也会导致失真明细,标志位细节也会丢失,所以,需要在图像广度和细节处进行调节,我们选取的高度是30CM。赛道中线的提取我们使用的方法是记录黑白跳变和白黑跳变处为左右边界,然后将数值存入数组,中线的计算只需要将左右边界数值作差除以2即为赛道中线数值。原始赛道提取图像如图4.2所示。图4.2原始赛道提取图像4.2.2赛道边线的提取边沿提取算法的基本思想如下:直接逐行扫描原始图像,根据设定的阈值提取黑白跳跃点;有一个轨道宽度范围。在确定的轨道宽度范围内提取有效的轨道边缘,滤除不在宽度范围内的干扰。利用轨迹的连续性,根据白块在前一条直线上的位置和边缘的位置确定直线的边缘点;在寻找边缘点时,由于近像稳定,远像不稳定,采用由近到远的方法;进出交叉口时,可通过修正计算出边缘角,滤除交叉口,补齐直线;根据点迹边缘不连续的特点,对点迹边缘点进行预测拟合。4.2.3车模行驶偏差获取与处理偏差提取过程中,智能车行驶在弯道上,车辆要拐弯,这就要提取车辆对于赛道的偏差。为了使智能车速度更快,智能车理想情况下要切内线走,这样可以以最短的路径走完全程。但是想走内切并不容易,首先得使小车沿着中间线走,这时我们选取某一行对应于中间线的偏差,调试小车直到能稳定沿着中间线走,至于选哪一行是经过多次试验总结得来的。如果小车能沿着中间线走了,我们在把中线偏差加上一个这一段中线上两点间的斜率,偏差和斜率都乘以一个权重,就是实际偏差了。至于斜率选哪两点的斜率实验出来的,对应的加权代码为:my_deviation=(int)(1.1*current_median_Line_lk-0.9*B)。加权的结果为1.1倍的点的偏差加上0.9倍的斜率,由于线性回归方程计算的斜率得到的值时反的,用减代替加,负负得正。斜率的计算方面,传统的两点法虽然计算斜率非常简单,但由于图像是运动的,因此不可靠。如果任何一点偏离,斜率就错了。利用线性回归方程计算斜率,将图像中的每个点都纳入计算范围。为了使汽车模型在最短的时间内跑完全程,要求汽车模型走最短的路径。因此,在偏差提取中,取距车身约50cm处的一点偏差和摄像机视场中线一段坡度,加上实验拟合的权重,解算得到总偏差,之后将得到的总偏差重新放入PID控制系统中进行动态反馈调节。其中最小二乘法是相比于两点求斜率更有效的算法。在本程序中最小二乘法的函数是根据数学中的函数公式演化而来,其作用效果和数学公式是一样的。最小二乘法数学公式如式4-1,式4-2:a=b=在程序中累加我们使用的是循环的方式实现的,为了降低单片机执行的压力,我们没有采用浮点型计算数据,一旦遇到需要进行浮点运算的时候,就使用除法代替。以下是小车最小二乘法计算斜率的C语言函数:intregression(intstartline,intendline){if(endline>55)endline=55;inti;intsumX=0,sumY=0,avrX=0,avrY=0;intnum=0,B_up1=0,B_up2=0,B_up,B_down;for(i=startline;i<=endline;i++){num++;sumX+=i;sumY+=currentzhongjian[i];}avrX=sumX/num;avrY=sumY/num;B_up=0;B_down=0;for(i=startline;i<=endline;i++){B_up1=(int)(currentzhongjian[i]-avrY);B_up2=i-avrX;B_up+=(int)(10*(B_up1*B_up2));B_up=B_up/100*100;B_down+=(int)(10*((i-avrX)*(i-avrX)));}if(B_down==0)B=0;elseB=B_up*10/B_down;returnB;}4.2.4起跑线的识别赛道中存在起跑线,需要根据图像识别出起跑线,起跑线检测的思想用跳变沿的思想。检测的方法是从底部几行的中间位置开始,各往左和往右推13个像素点,然后从这个像素点的坐标开始,横坐标不变,纵坐标逐次减小,向上扫描,当发现像素点颜色出现从白变成黑的情况则记录下变化的状态,继续向上扫描,再次出现从黑变成白的跳变,且两边同时跳变,为了增大可靠性,允许两边跳变的出线一定的先后顺序,但是不允许出线较大时间间隔,则此时必然是起跑线。当检测到起跑线后会置位一个标志位,电机控制函数会控制电机反转刹车然后停车。由于车辆跑完一圈需要一定的时间,程序不需要每时每刻都检测起跑线,所以当车辆发车后10S才开始检测起跑线。这样可以降低在行驶过程中误判的几率,提高程序执行的效率。实现的方法是在定时器里增加变量,每隔5ms变量增加1,直到增加2000次,就开始执行起跑线检测程序。起跑线的图像如图4.3所示。图4.3起跑线图像4.3车模行驶状态控制4.3.1车模速度控制为了让车模整体上行驶速度更快,需要使用变速行驶的策略,既直道加速弯道减速。轨道的曲率是汽车模型判断是直线还是曲线的基础。曲率越大,轨迹越弯曲。根据不同的曲率给出不同的速度。由于数学中曲率计算方法的复杂性和单片机的耗时性,为此我们在保证算法可靠的前提下进行了一系列的简化处理,通过数学中最简单的左加右减进行记录每个行中断的记录点,以中线为标准,左加右减记录曲率。最后,处理完场中断,将每个行中断得到的数值组合记录,就能得到当前整个图像的曲率。根据曲率的大小程度,判断赛道的特点以及匹配不同的PD电机控制参数。当曲率超过一定的阈值时,数值越大,差速越大,前轮转向越剧烈,反之亦然。为了使速度控制精准,我们采用了PID控制车速。由于车模目标速度是连续变化的,是一个动态的系统,在这种情况下PID控制首先要保证的是跟随能力,所以静差的影响可以忽略,从而可以去除积分项,采用PD控制。速度PID控制的架构图如图4.4所示。图4.4PID控制的架构图PID控制器数学公式如式4-3:u(t)=kp×e(t)+ki智能汽车在运行过程中,速度静态误差非常小,往往不会对小车的运行产生影响,并且小车目标速度是不断不断变化的,因此在PID算法中我们将积分项系数设为0,只使用了PD控制。经过调试后发现小车能够很流畅的在道路上运行,精准的实现速度的切换。以下是PID控制车速的程序代码:Voidspeedcontrol(){piancha_speed=maichongshu-speed_now;speed_wucha=speed_now-maichongshu;dwucha=speed_wucha-lastspeed_wucha2;zhankongbi=last_zhankongbi+speed_kp*speed_wucha-speed_ki*lastspeed_wucha+speed_kd*dwucha;//调速if(zhankongbi>7000)zhankongbi=7000;if(zhankongbi<0)zhankongbi=0;if(piancha_speed>menkan){fanzhuan(dut);}elsezhengzhuan(zhankongbi);Last_zhankongbi=zhankongbi;Lastspeed_wucha3=Lastspeed_wucha2;Lastspeed_wucha2=Lastspeed_wucha1;Lastspeed_wucha1=Lastspeed_wucha;Lastspeed_wucha=speed_wucha;}4.3.2车模转向控制车模转向控制是根据摄像头拍摄的赛道图像,处理得到车模相对于赛道中间位置的偏差。偏差是将车模图像的中间坐标减去给定值39得到的,因为车模摄像头拍摄的图像横轴是有80个坐标点,其坐标从0到79中间值为39.5由于在程序中不允许出现浮点数据,所以采用39作为中间坐标,得到的偏差经过PID算法计算最终输出到舵机,控制舵机转向。最终小车的位置将通过摄像头反馈回来,进行下一周期的运算。车模的前轮转向我们采用了和后轮控制相同的PD控制算法。同样由于小车转向是个不断变化的过程,是个动态的模型,主要保证控制的跟随性,无需考虑静态误差。为了补偿C模型的转向抖动,我们采用了前四阶偏差和电流偏差的差值作为微分项,使抖动现象得到了很大的改善。为了防止转向机失速,必须限制转向机的角度。赛道情况是非常复杂的,同一组参数并不一定能够完全适应不同的赛道形式,比如KP过大,车模会出现抖动的现象,过小的话拐弯力度不够。所以我们引入了模糊PID算法的概念,就是根据赛道的弯曲程度给定不同的KP值,在直道上以小一点的KP系数运行,提高稳定性,弯道上以较大的KP运行,增大拐弯力度。具体的分段方式是根据偏差大小来分的,偏差变大说明小车正在进入弯道,变小说明进入直道。以下是方向控制的代码:voidservo()//舵机控制函数{if(abs(my_piancha)<5)//直道上,偏差绝对值小于5{kp1=18;//直道上的P,小一点,防止直道抖动}elsekp1=20;//不是直道P就要大一点。以增大拐弯力度,切赛道内侧。jiao=(int)(kp1*duojijiaodu-kd*(lastpiancha_4-duojijiaodu));if(jiao>=1000)jiao=1000;if(jiao<=-1000)jiao=-1000;ftm_pwm_duty(FTM1,FTM_CH0,4210+jiao);//20}4.3.3Bang-Bang控制算法Bang-Bang控制算法与PID控制最大的区别是:当系统反馈检测到的输出量大于理想输入值时,控制增量将急剧增加到控制上限,从而以最快的速度降低输出。同理,当系统反馈检测到的输出量小于理想输入值时,控制增量将急剧减小到控制下限,从而以最快的速度增大输出。4.4程序流程图程序采用的是循环执行的架构,其流程图如图4.5所示:图4.5程序流程图
第5章系统调试与运行5.1IAREmbeddedWorkbenchIDE调试软件软件开发环境使用的是IAR开发软件。IAR是一个集成的开发环境,可以进行在线调试,具有非常友好的调试界面。在此开发环境下可以进行软件模拟仿真,硬件在线仿真。支持对更改程序的版本模式,可以将工程更改为发布版本和调试版本两种模式,非常方便。在软件中可以通过LiveWatch窗口实时监测到程序中各个变量的值,以及各个寄存器的状态,这对于项目的开发起到了很大的作用,缩短了项目开发的周期。如图5.1所示IAR调试界面图5.1IAR调试软件5.2COMS摄像头上位机为了能够更直观的观察摄像头实时传输数据,我们使用了由逐飞科技开发的智能车传感器调试助手,该软件集成了CCD/COMS两种类型的摄像头,可以根据需要直接将图像转换为二值化图像或灰度图像,通过改变阈值,调节摄像头二值化程度,使其更好的匹配赛道。如图5.2为上位机调试界面图5.2上位机调试界面
第6章结论围绕本项目智能汽车辆控制系统的设计目标,进行了三大方面的设计和调试,分别是机械调试、电路搭建、程序算法,其中机械调试是基础,电路搭建是必要条件而程序算法决定了智能汽车的最优控制。三大环节环环相扣,缺一不可,这也使得车辆调试的难度成指数倍加大。首先,我对智能汽车整体框架进行了多方面探索,最终采用了模块化的设计方案,将智能汽车化整为零,通过调节各部件的位置、角度,使车辆机械部分达到最优状态。其次,我对主控MCU进行选型,通过多方面对比,我们最终选用MK60作为整个电路的核心控制单元,随后,我们又搭建了电源管理模块、电机驱动模块、光耦信号隔离模块,使得电路设计简单、结构清晰明了,并可以根据需求进行随时调整,可操作性高。然后,我通过各种途径,查阅大量文献资料,最终确立了以图像处理算法为基础,通过识别赛道标志位进行判断,根据PD闭环和Bang-Bang控制相结合控制实现智能汽车自主运行的算法。程序结构简单,计算方便且灵活性较高。最后,车辆整合搭建,根据机械调试、电路特点最后对程序进行微调,使得程序能够最大程度上匹配该车辆的硬件设备。
参考文献[1]胡寿松.自动控制原理[M].科学出版社,2018.[2]康华光.电子技术基础[M].高等教育出版社,2006.[3]胡向东.传感器与检测技术[M].机械工业出版社,2016.[4]刘德良.分析汽车基本机械原理结构[J].河南科技,2014.[5]胡健等.单片机原理及接口技术实践教程[D].机械工业出版社,2004.[6]吴振昊等.基于OV7725和串口的图像采集验证系统[J].信息技术,2015.[7]叶梦君等.基于OV7725摄像头智能车系统的设计与实现[J].湖北师范大学学报,2020.[8]游丰凯等.基于K60微控制器的直流电机PWM调速系统研究设计[J].九江学院学报,2015.[9]滕彦飞.基于K60系统板的智能小车控制系统设计[J].青岛理工大学,2014.[10]刘恒超.模式识别及其在图像处理中的应用分析[J].科学与信息化,2020.[11]杨恢先等.单片机原理及应用[M].国防科技大学出版社,2003.[12]GeneF.Franklin.自动控制原理与设计[M].电子工业出版社,2016.[13]郝洪荣.光电传感器的智能车设计及其控制探究[J].大众标准化,2020.05.25.[14]熊和金.智能汽车系统研究的若干问题[J].交通运输工程学报,2010.[15]华亮.移动机器人运动机构及控制系统的研究与实现[D].浙江工业大学,2006.[16]郝宝青.智能车辆视觉导航中道路与行人检测技术的研究[D].哈尔滨工业大学,2006.[17]蓝希紧.四轮定位对汽车的影响[J].科技创新导报,2013.[18]宁慧慧.智能小车运动轨迹的控制方法研究[D].中北大学,2018.[19]芦静.浅谈摄像头在智能车上采集图像寻迹避障的处理[D].中国科学投资,2010.[20]Jie.Tao.DesignandImplementationofHumanoidRobotBasedonMK60EmbeddedMicroprocessor[J].AppliedMechanicsandMaterials,2014.[21]K.Natarajan.SystemidentificationandPIDcontrollertuningusingband‐passfilters[J].TheCanadianJournalofChemicalEngineering,1997.[22]KhalidMahboob.DevelopmentofAndroidControlledArduinobasedIntelligentCarParkingSystem[J].InternationalJournalofWirelessandMicrowaveTechnologies,2020.[23]WeimingWU.Rapiddynamicalpatternrecognitionforsamplingsequences[J].中国科学,2021.
附录1主程序#include"common.h"#include"include.h"uint8imgbuff[CAMERA_SIZE];//定义存储接收图像的数组uint8img[CAMERA_H][CAMERA_W];//函数声明voidPORTA_IRQHandler();voidDMA0_IRQHandler();voidHardWare_Init(void);voidPIT0_IRQHandler();voidPORTE_IRQHandler();voidset_vector_handler(VECTORn_t,voidpfunc_handler(void));//设置中断函数到中断向量表里voidHardWare_Init(void){DisableInterrupts;camera_init(imgbuff);//摄像头初始化set_vector_handler(PORTA_VECTORn,PORTA_IRQHandler);//设置PORTA的中断服务函数为PORTA_IRQHandlerset_vector_handler(DMA0_VECTORn,DMA0_IRQHandler);//设置DMA0的中断服务函数为PORTA_IRQHandler#if1 ftm_quad_init(FTM2);//FTM2PTA10(PTA11)正交解码初始化ftm_quad_clean(FTM2);//计数寄存器清零lptmr_pulse_init(LPT0_ALT2,0xffff,LPT_Rising);//PTA19lptmr_pulse_clean();#endif#if1 pit_init_ms(PIT0,1);//PIT初始化1ms set_vector_handler(PIT0_VECTORn,PIT0_IRQHandler);//设置中断复位函数到中断向量表 enable_irq(PIT0_IRQn);//使能PIT0中断#endifNVIC_SetPriorityGrouping(4);//设置优先级分组,4bit抢占优先级,没有亚优先NVIC_SetPriority(PORTA_IRQn,0);//配置优先级图像场中断PORTANVIC_SetPriority(DMA0_IRQn,1);//配置优先级图像DMA0NVIC_SetPriority(PIT0_IRQn,2);//配置优先级编码器PIT0#ifOpenDialSwitchDialSwitchInit();//拨码开关初始化#endifgpio_init(PTB19,GPO,0);//蜂鸣器初始化SteerInit();//舵机初始化MotorInit();//电机初始化if(DialSwitch_1){LCD_Init();//LCD_ST7735R液晶初始化,不能初始化在摄像头前面}EnableInterrupts;//使能总中断}voidmain(void){HardWare_Init();while(1){camera_get_img();//(耗时13.4ms)图像采集img_extract(img,imgbuff);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车维修检验工风险评估与管理能力考核试卷含答案
- 申请项目延期的正式告知7篇
- 技术部门需求与解决方案申请模板
- 创新研发实力支撑承诺函6篇
- 阅读点燃梦想成长伴书同行小学主题班会课件
- 二手车经纪人安全实践竞赛考核试卷含答案
- 多工序数控机床操作调整工达标考核试卷含答案
- 数字孪生应急响应指挥系统设计课题申报书
- 电冰箱零部件制作工变更管理模拟考核试卷含答案
- 露酒酿造工安全教育考核试卷含答案
- CNAS-CC01:2015 管理体系认证机构要求
- 草籽采购(牧草种子采购)投标方案(技术方案)
- 兽医屠宰卫生人员考试题库及答案(415题)
- 黑龙江省哈尔滨市萧红中学2024-2025学年八年级上学期期中语文试题(含答案)
- 2024新人教版英语七年级上单词默写单
- 备战2025年中考语文答题技巧与模板构建(全国)题型11 概括、探究主旨(主题)(解析版)
- 装配式建筑装饰装修技术 课件 模块二 装配式楼地面
- 2023年新高考I卷数学高考试卷(原卷+答案)
- 材料准备施工方案
- 精神病学-症状学-课件
- 港式清单模板
评论
0/150
提交评论