飞思卡尔智能车摄像头组技术报告.docx_第1页
飞思卡尔智能车摄像头组技术报告.docx_第2页
飞思卡尔智能车摄像头组技术报告.docx_第3页
飞思卡尔智能车摄像头组技术报告.docx_第4页
飞思卡尔智能车摄像头组技术报告.docx_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七届“飞思卡尔”杯全国大学生 智能汽车竞赛技 术 报 告(校徽)学校:*队伍名称:*参赛队员:* * *带队老师:*关于技术报告和研究论文使用授权的说明 本人完全了解第七届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名: 带队教师签名: 日 期: 摘 要本文以第七届全国大学生智能车竞赛为背景,介绍了智能赛车控制系统的软硬件结构和开发流程。该比赛采用组委会规定的标准车模,以 Freescale 半导体公司生产的 16 位单片机MC9S12X128为核心控制器,在 CodeWarrior IDE开发环境中进行软件开发,要求赛车在未知道路上完成快速寻线。整个系统涉及车模机械结构调整、传感器电路设计及信号处理、控制算法和策略优化等多个方面。为了提高智能赛车的行驶速度和可靠性,对比了不同方案(如摄像头与光电管检测方案)的优缺点,并结合 Labview 仿真平台进行了大量底层和上层测试,最终确定了现有的系统结构和各项控制参数。它采用摄像头对赛道进行检测,通过边缘提取获得黑线位置,用 PID 方式对舵机进行反馈控制。通过速度传感器获取当前速度,采用增量式数字PID控制实现速度闭环,根据预判信息和记忆信息对速度进行合理分配。同时采用拨码开关和LCD显示屏实现人机交互系统。测试结果表明,在该控制系统下,自寻迹机器人小车具有良好的位置跟踪和快速切换速度性能。关键词:智能车,跟踪寻迹,摄像头,传感器,PID,最优曲率ABSTRACTIn the background of the 7nd National Intelligent Car Contest for College Students, this article introduces the soft hardware structures and the development flow of the vehicle control system. This contest adopting the standard model car prescribed by the contest organization committee, using the 16-bit MCU MC9S12X128 produced by Freescale Semiconductor Company as the core controller, developing under the CodeWarrior IDE, requires the car track the line fast on the road. The whole system includes the aspects of the mechanism structure adjustment, the sensor circuit design and signal process, controlalgorithm and strategy optimization etc.In order to increase the speed and the reliability of the car, the advantage and disadvantage of the different schemes (such as the camera and photoelectric cell scheme) are compared, and a great number of the bottom layer and the upper layer tests are carried on combined with the Labview simulation platform. At last, the current system structure and each control parameters are determined. It captures the road information through a camera, then abstracts the black line position by edge-detection method. After that, PD feedback control is used on the steering. The system obtains the current speed using a speed sensor, so that it can realize the feedback control of the speed by the increased digital PID algorithm control method. At the same time, the use of an LCD displays trails information and keyboard is used to achieve the man-machine interaction. According to the pre-judge inform and the memorized inform, it allocates the speed properly. The test results showed that the self-tracing robot car had good position tracking and fast speed switching performance .Key words: intelligent vehicle,line track, camera,sensor, PID, optimal curvature目 录第一章:引言11.1背景介绍11.2发展现状11.3章节安排2第二章:系统整体框架32.1系统框架32.1.1硬件系统32.2.2软件系统42.2方案简介4第三章:机械设计63.1汽车行驶的数学模型63.2整体布局与调整73.2.1车模分析73.2.2 车模布局思想83.3机械结构调整93.3.1前后轮定位93.3.2其他机械模块调整93.3摄像头的安装93.4舵机的安装103.5编码器的安装10第四章:硬件电路设计124.1硬件设计方案124.2传感器的选择124.2.1摄像头124.2.2编码器124.3电路设计方案134.3.1单片机最小系统板134.3.2稳压模块电路144.3.3驱动模块电路14第五章:软件系统设计165.1 软件各功能模块设计165.1.1 时钟模块165.1.2 PWM输出模块165.1.3 ECT模块175.1.4外部中断175.2视频采集与图像处理175.2.1摄像头工作原理175.2.2图像处理195.3路径识别思想215.4舵机转向和速度调节235.4.1PID控制算法介绍235.4.2舵机转向控制245.4.3速度控制255.4.4细节控制25第六章:开发环境、调试工具286.1软件开发平台Codewarrior IDE286.2辅助调试方法286.2.1 Labview调试286.2.2人机交互界面296.2.3无线模块29第七章:结论31参考文献32鸣谢32第七届全国大学生智能汽车邀请赛技术报告 (队名)第一章:引言1.1背景介绍智能汽车就是一种无人驾驶汽车,也可以称之为轮式移动机器人,主要依靠车内以计算机系统为主的智能驾驶仪来实现无人驾驶。它一般是利用车载传感器来感知车辆周围环境,并根据感知所获得的道路、车辆位置和障碍物信息,控制车辆的转向和速度,从而使车辆能够安全、可靠地在道路上行驶。无人驾驶汽车从根本上改变了传统的“人一车一路”闭环控制方式,将不可控的驾驶员从该闭环系统中请出去,从而大大提高了交通系统的效率和安全性。现代无人驾驶汽车以汽车工业为基础,以高科技为依托,遵循由低到高、由少到多、由单方面到多方面、螺旋上升的规律发展。其横向发展离不开各种用途的实际需要,而其纵向发展的生命力在于持续不断的技术创新。全国大学生飞思卡尔智能汽车竞赛是受教育部高等教育司委托,由教育部高等自动化专业教学指导分委员会主办的全国大学生智能汽车竞赛。该竞赛以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一。该竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。 大赛按照传感器类别的不同分为三个组别:光电组、摄像头组、电磁组。各组自己设计、选择规则允许内的传感器件,结合赛会指定的微控制器件,进行车辆运行中赛道信息的识别、动力控制、转向控制等具体内容。在赛会规则的允许范围内,最快完成比赛的将取得最好成绩。本报告将从硬件到软件一一的为大家呈现本智能车的设计方案和制作过程。1.2发展现状智能汽车,是一种集环境感知、规划决策、自动行驶等功能于一体的综合系统,集中地应用到自动控制、模式识别、传感器技术、汽车电子、电气、计算机、机械等多个学科,是典型的高新技术综合体,具有重要的军用及民用价值。 在20世纪80年代,美国就提出自主地面车辆(ALV)计划,这是一辆8轮车,能在校园的环境中自主驾驶,但车速不高。1995年,一辆由美国卡耐基梅隆大学研制的无人驾驶汽车NavlabV,完成了横穿美国东西部的无人驾驶试验。2005年,美国国防部“大挑战”比赛上,最终由美国斯坦福大学工程师们改装的一辆大众途锐多功能车经过7个半小时的长途跋涉完成了全程障碍赛,第一个到达了终点。在无人驾驶技术研究方面位于世界前列的德国汉堡Ibeo公司,最近推出了其研制的无人驾驶汽车。我国国防科技大学从20世纪80年代开始进行无人驾驶汽车技术研究。2000年6月,国防科技大学研制的第4代无人驾驶汽车试验成功,最高时速达76 km,创下国内最高纪录。以上转述只是冰山一角,智能车的技术正在不断发展中。目前,智能车领域的研究已经能够在具有一定标记的道路上为司机提供辅助驾驶系统甚至实现无人驾驶。这些智能车的设计通常依靠特定道路标记完成识别,通过推理判断模仿人工驾驶进行操作。通常,智能车接受辅助定位系统提供的信息完成路径规划,如由GPS等提供的地图,交通拥堵状况,道路条件等信息。1.3章节安排本文内容的安排如下所示: 第一章 引言 本章主要介绍了 Freescale 车模竞赛的基本情况,智能车的发展状况。 第二章 系统整体框架 本章对系统硬件模块方案和软件控制方法进行了选择与论证。 第三章 机械设计 本章对机械结构的安装与改进,各个模块的安装技巧作了详细的介绍。 第四章 硬件电路设计 本章主要介绍了自行设计的基于飞思卡尔单片机的最小系统板的设计,电源模块、驱动模块、摄像头模块和速度传感器模块的设计与实现。 第五章 软件系统设计 本章软件系统各模块的设计思路作了详细的介绍。特别介绍了图像处理中的各种技巧、PID 控制策略的应用和起跑线识别算法的设计等问题 第六章 开发工具及其调试 本章对开发工具与调试方法作了简单介绍。 结论 对整个参赛过程中的经验与教训作了总结。第二章:系统整体框架2.1系统框架智能汽车系统分为两个部分:硬件系统与软件系统。硬件系统包括了电路系统和机械系统;而软件系统则可以分为底层代码和实现算法,后者主要包括用于实现路径识别的算法、电机转速闭环、舵机角度控制和导引策略等。具体层次结构如图2.1所示。本文分层次展开硬件系统与软件系统。图 2.1 智能汽车系统结构图2.1.1硬件系统根据需求分析,经过仔细研究,决定采用模块化设计。智能汽车的硬件系统由核心控制模块(MCU)、传感器模块、电源管理模块、存储器模块、电机驱动模块、舵机驱动模块、人机接口模块、无线通讯模块和放电器模块组成,如图2.2所示。图2.2 智能汽车控制系统总体设计框图2.2.2软件系统系统的软件流程图如图2.3:图2.3 系统流程图2.2方案简介智能汽车系统的工作原理是预瞄理论和闭环控制理论的典型体现。其示意图如图2.4所示。图2.4 智能车系统工作原理示意图在本届比赛中,组委会提供了多种单片机可供选择,分为16位和32位两种类型。我们选择了总线频率较高的16位MC9S12XS128作为主控芯片,并且自己制作了最小系统板。图像采集单元,考虑到动态性、功耗性以及复杂性,我们经过对比最终选择了CMOS的OV7620作为图像采集传感器。将图像采集来后,为了减小干扰,首先我们对整幅进行了二值化,然后利用跟踪边缘算法对黑线进行提取,为了使提取的黑线更加准确我们对提取的黑线进行了中值滤波和限幅滤波。最终使黑线的变化更加平稳。提取出黑线后,我们采用了PD策略对舵机进行控制,增量式PID对电机进行控制;并结合最优曲率算法和中心偏移量识别赛道类型,让小S直接冲过去,大S尽量内切,最大难度的发卡弯沿线通过。然后,小车的速度根据前方的路况自动调整。 在硬件方面,我们为了使电路更加简化,自己制作了最小系统板,使得单片机,电源,电机驱动等模块集中到了一块最小系统板上,合理分布,最大限度的优化小车硬件与机械结构。第三章:机械设计任何的控制算法和软件程序都是需要一定的机械结构来执行和实现的,因此在设计整个软件架构和算法之前一定要对整个车模的机械结构有一个感性的认识,然后建立相应的数学模型。从而再针对具体的设计方案来调整赛车的机械结构。本章的将主要介绍赛车车模的机械特点和调整方案。3.1汽车行驶的数学模型汽车是现代社会的主要交通工具,在对汽车研究过程中,形成了一大批研究成果。我们在查阅了一大堆资料的前提下,形成了自己对汽车原理的首先建立汽车行驶的数学模型(见图3.1)图3.1 汽车行驶数学模型图中:AP,BN为连接杆与主销之间的杆长L杆AB,CD为前轮轴长L前,后轮轴长L后KL为前轴与后轴的轴距L轴距根据汽车理论, 假设轮胎不打滑,并忽略轮胎所受的重力作用产生的形变以及左右两侧轮胎由于受力不均产生的形变,即可得到理想的汽车转向模型:如图3.1所示,即左右两轮的轴线与后轮的主轴,三点交于车身中心所处道路位置的曲率中心。不失一般性, 这里只讨论右转的情形。对于图3.1,设左轮转向为,右轮角分别为,对于以上模型,显然有如下关系:于是得到在理想状态下,汽车的过弯时的转角方程:公式(1)同样也可以得到右转时公式(2)采用第七届“飞思卡尔”智能车大赛组委会提供的韩国Matiz系列1:10模型车的参数对公式(1),公式(2)进行仿真。得到车模行驶时理论转弯半径与车轮转角的关系(见图3.2)和右轮也左轮的转角关系(见图3.3)3.2 弯半径与车轮转角关系 图3.3 右、左轮的转角关系在模型车结构参数一定的情况,小车左右两轮的转角存在一定的函数关系,当向右过弯时,右轮转向比左轮转向大,同理向左转弯时,左轮转向较右轮转向大,同时,随着道路曲率半径的越大,车轮所需的转角越小。在实际调试过程中,要以理论为基础,配合以上理论计算公式,寻找小车的轮速参数。3.2整体布局与调整在整个智能车系统中,优良的系统构架是一个优秀车模不可或缺的重要基础,而车模的整体布局又是参与此类竞速比赛的车模的基础中的基础。车模的整理布局在很多方面决定了车模潜力的挖掘和技术水平的发挥,甚至在某些情况下影响着软件设计和控制算法。下面将分模块予以分析。3.2.1车模分析在此届比赛中,摄像头组使用的车模是由广东东莞市博思电子数码科技有限公司提供的G768车模平台(图 3.4),配置 FUTABA3010 型号伺服器(图 3.5)和 RN260 电机 (图 3.6)。图3.4 模型车车体 图3.5伺服器 图3.6电机该车模结构合理,重心位置控制较好,重心较低,前后轮距合理。特别是传动系统性能优良,相比较与上届的B型车模,该车模的动态传动系统要好很多。并且车模的本身结构也有利于参赛选手根据自身情况进行适当的改装,满足自身控制的需求。但是该车模也有一个缺陷,及其配置的驱动电机带载能力比较差,电机本身在带载情况下的加速性能比较差,这就给调速带来了很大的麻烦,这些将在调试中具体探讨。3.2.2 车模布局思想为了使车模在竞赛中发挥出最好的水平,我们最车模的布局有以下几个想法: 第一 车模的整体布局应该尽量简洁。这对于车模的整体质量影响很大,以至于影响速度的发挥。而且,在很多方面关系着车模的整理稳定性。因此,尽可能的去除车模上的冗余结构很有必要。 第二 车模的整体布局应该做到稳定。车模的稳定不只是机械结构上的稳定,同样也对电路的稳定性有这很大的要求。车模的电路设计方面应该努力屏蔽噪声干扰对整个电路带来的影响。 第三 车模的整体布局应该做到高效。 此次智能车竞赛必竟是竞速比赛,毫秒之间可以决定胜负。因此,车模能否做到高效是关系速度的一个重要指标。从以上角度出发,最终我们设计出自己的车模模型,实物如图3.7所示。图3.7 实体车型3.3机械结构调整3.3.1前后轮定位在调试中我们发现,模型车过弯时,转向舵机的负载会因为车轮转向角度增大而增大。为了尽可能降低转向舵机负载,我们对前轮定位进行了调整。前轮定位的作用是保障汽车直线行驶的稳定性和转向轻便。前轮定位参数主要包括:主销后倾角(图3.8)、主销内倾角(图3.9)、前轮外倾角和前轮前束。我们将前轮外倾角和前轮前束分别设为0 度、0mm,主销稍微内倾和后倾。后轮采用窄轮距,可有效避免切弯过度时有一个后轮跑出去。 图3.8主销后倾角 图3.9主销内倾角3.3.2其他机械模块调整除了以上部分的调整外,还对主悬架弹簧松紧、底盘高度和齿轮传动机构进行了适当调整。通过增加避震弹簧的刚性、降低底盘高度、调整齿轮间隙,改善了赛车的行驶表现。 3.3摄像头的安装 摄像头安装主要考虑的问题有: 固定摄像头的材料,摄像头的安装位置和摄像头的安装高度。为了降低整车重心,需要严格控制CMOS摄像头的安装位置和重量,我们自行设计了轻巧的铝合金夹持组件并采用了碳纤维管作为安装CMOS的主桅,这样可以获得最大的刚度质量比,整套装置具有很高的定位精度和刚度,使摄像头便于拆卸和维修,具有赛场快速保障能力。摄像头的安装如图3.10/3.11所示。 图3.7底座-单杆安装图 图3.8单杆-摄像头安装图3.4舵机的安装舵机转向是整个车模系统中延迟最大的一个环节,为了减小此时间常数,通过改变舵机的安装位置,加长力臂可以提高舵机的响应速度。鉴于往届经验以及本届车模舵机性能,我们进行多套方案的试验,诸如将舵机竖直、水平以及其它不同方向的摆放方法。考虑到舵机响应时间、稳定性以及虚位的诸多因素,我们最终选择倒卧式安装舵机,延长舵机臂杆至 33mm,并自行设计了舵机安装支架,达到了很好的效果。具体安装见图3.12。图3.12舵机安装效果图3.5编码器的安装对光电编码器的安装,可以将光栅盘安装在电机轴上,通过先计算电机转速再来计算模型车后驱动轴得知车速。但是,这种方法太麻烦,并且在电机轴上装光栅盘会影响电机的性能。所以,我们将光栅盘安装在模型车后驱动轴上,根据光电编码器的输出脉冲计算不同时刻模型车的后轮转速。光电编码器的固定如图 3-10 所示(欧姆龙500p)。此处要注意的是,装在光电编码器上的齿轮个数不要太多,太多了就会降低检测精度。我们用的齿轮是 17齿。配齿轮时还要注意模数这个参数,模数不匹配齿轮就会装不上,此处齿轮模数为0.5。装齿轮时注意不要过紧也不要过松。图3.10光电编码器第四章:硬件电路设计4.1硬件设计方案从最初进行硬件电路设计时我们就既定了系统的设计目标:可靠、高效、简洁,在整个系统设计过程中严格按照规范进行。 可靠性是系统设计的第一要求,我们对电路设计的所有环节都进行了电磁兼容性设计,做好各部分的接地、屏蔽、滤波等工作,将高速数字电路与模拟电路分开,使本系统工作的可靠性达到了设计要求。 高效是指本系统的性能要足够强劲。我们主要是从以下两个方面实现的: (1) 采用运算放大器设计的比较器实现了图像二值化的高速转换,大大提高了图像采集的分辨率; (2) 使用了由分立元件BTS7960制作的直流电动机桥式驱动器,该驱动器的额定工作电流可以轻易达到100A以上,大大提高了电动机的工作转矩和转速。 简洁是指在满足了可靠、高效的要求后,为了尽量减轻整车重量,降低模型车的重心位置,应使电路设计尽量简洁,尽量减少元器件使用数量,缩小电路板面积,使电路部分重量轻,易于安装。我们在对电路进行了详细分析后,对电路进行了简化,合理设计元件排列、电路走线,使本系统硬件电路部分轻量化指标都达到了设计要求。4.2传感器的选择4.2.1摄像头目前市面上常见的摄像头主要有CCD和CMOS两种:CCD摄像头具有对比度高、动态特性好的优点,但需要工作在12V电压下,对于整个系统来说过于耗电,且图像稳定性不高;CMOS 摄像头体积小,耗电量小,图像稳定性较高。因此,经过实验论证之后我们决定采用CMOS摄像头。对于CMOS摄像头分为数字和模拟两种。在往届比赛中,我们看到有不少参赛队采用涉资摄像头,本着严谨的态度,我们选用了OV7620进行实验,对数字摄像头的可行性进行了论证。经过实验,得到结论:数字摄像头OV7620可以直接输出 8 路数字图像信号,使主板硬件电路的简化成为可能,且能够达到60帧/S的帧速率,能够满足要求。4.2.2编码器考虑到智能车的实际速度控制对速度反馈信号波形要求不是太高,因此在满足比赛要求的基础上,我们使用了自制的光电编码器来测速,从而尽量简化电路。我们实验室使用线切割在直径为30mm 的圆盘周围加工出100 个细缝,使用红外光电对射管作为采集码盘脉冲可鉴向的传感器。速度传感器实物图如图4.1所示。虽然自制的光电编码器结构简单,价格便宜,但是容易受到外部光线和灰尘的干扰,影响测速的精度。因此,我们改用了高性能的欧姆龙EE6A2-CWZ3C如图4.2所示。码盘内部经发光二极管等电子元件组成的检测装置检测输出脉冲信号,通过计算每秒光电编码器输出脉冲的个数就能反映当前驱动电机的转速。 图4.1光电码盘 图4.2欧姆龙编码器4.3电路设计方案智能车控制系统电路由三部分组成:MC9S12XS128 为核心的最小系统板、主板、ZLG7290键盘。最小系统板可以插在主板上,组成了信号采集、信号处理、电机控制、舵机控制单元。为了减小电机驱动电路带来的电磁干扰,我们把控制单元部分和电机驱动部分分开来,排布在主板的两端。 主板上集成了本系统的主要电路,它包括如下部件:电源稳压电路、最小系统板插座、摄像头接口、舵机接口、电机驱动模块、编码器模块、键盘接口、LCD电路、拨码开关、指示灯等。4.3.1单片机最小系统板单片机最小系统部分使用 MC9S12XS128 单片机,112 引脚封装,为减少电路板空间,板上仅将本系统所用到的引脚引出,包括 PWM 接口,计数器接口,外部中断接口,若干普通 IO 接口。其他部分还包括电源滤波电路、时钟电路、复位电路、串行通讯接口、BDM 接口和 SPI接口。单片机最小系统板电路原理图如图 4.3。图4.3单片机最小系统板电路原理图4.3.2稳压模块电路赛会指定的镍镉可充电电池的额定电压为 7.2V,实际调试中,我们发现其电压实际值有时会达到8V 甚至于 8V以上。因此需要有性能优越的抗干扰稳压芯片。 由于电路中的不同电路模块所需要的工作电压和电流容量各不相同,因此电源模块应该包括多个稳压电路,将充电电池电压转换成各个模块所需要的电压。并且单片机的电源好坏直接关系到单片机能否正常工作以至于整个系统的控制稳定。我们在测试了许多类型的稳压芯片之后觉得采用了性能优异的LM2596(图 4.4) 。它是一款微功耗低压差线性电源芯片使用这个芯片。该芯片稳定工作时所需要的外围器件很少,使用方便。2596 的工作压降很低,静态电流也很小,散热少,很适合这种情况下的使用。图4.4 LM2596驱动电路4.3.3驱动模块电路电机的驱动方案有 MOS 管,MC33886,BTS7960 三种主要的方案。MOS 管的搭建效率较高,驱动电流很大,但是针对现有的双电机情况,用 MOS 管搭建两个电机的驱动较为复杂。MC33886 芯片的内阻较大,发热明显,芯片较大引脚较多。我们最终采用了功能较为完善,性能稳定的 BTS7960 芯片。原理图如图 4.5。为保证 PWM信号的稳定,我们使用了 74LS244 加强信号的稳定,原理图如图 4.6。图4.5 BTS7960原理图图4.6 74LS244电路电机的驱动采用两片BTS7960并联,一路PWM控制。基于上文提到的整体的布局,最终设计出稳压电路和驱动电路一体板。PCB如图4.7图4.7 稳压-驱动一体板第五章:软件系统设计高效稳定的软件程序是智能车平稳快速寻线的基础。本智能车采用 CMOS 摄像头作为寻线传感器,图像采集处理就成了整个软件的核心内容。在智能车的转向和速度控制方面,我们使用了鲁棒性很好的经典 PID 控制算法,配合使用理论计算和实际参数补偿的办法,使在寻线中的智能车达到了稳定快速的效果。软件系统部分主要包括:系统初始化、图像采集、图像处理、赛道判断、舵机打角、电机控制以及速度反馈处理等。系统流程图如图5.1所示。图5.1系统流程图5.1 软件各功能模块设计5.1.1 时钟模块时钟基本脉冲是CPU工作的基础。MC9S12XS128微控制器的系统时钟信号,由时钟振荡电路或专用时序脉冲信号提供。MCU内部的所有时钟信号都来源于EXTAL引脚,也为MUC与其他外接芯片之间的通信提供了可靠的同步时钟信号。X12的总线时钟是整个MCU系统的定时基准和工作同步脉冲,其频率固定为晶体频率的1/2。 对于X12, 可以利用寄存器SYNR、 REFDV来改变晶振频率fOSCCLK,可以选用8MHz或16MHz外部晶体振荡器作外时钟。对 SYNR 和 REFDV 进行设置,可以得到48MHz的总线频率。5.1.2 PWM输出模块MC9S12XS128集成了8路8位独立PWM通道,通过相应设置可变成4个16位PWM通道,每个通道都有专用的计数器,PWM输出极性和对齐方式可选择,8个通道分成两组,共有4个时钟源控制。PWM0、PWM1、PWM4、PWM5为一组,使用时钟源ClockA和ClockSA;PWM2、PWM3、PWM6、PWM7构成另一组,使用时钟源ClockB和ClockSB。ClockA和ClockB均是由总线时钟经过分频后得到,分频范围1128,通过寄存器PWMPRCLK来设置,ClockSA和ClockSB是分别通过ClockA和ClockB进一步分频后得到的,分频范围为1512,分别通过寄存器PWMSCLA和PWMSCLB来设置,计算公式为:ClockSA=ClockA/(2*PWMSCLA)ClockSB=ClockB/(2*PWMSCLB)通过寄存器PWME来控制PWM0PWM7的启动或关闭。为了提高精度,我们将PWM0和PWM1,PWM2和PWM3,PWM6和PWM7级联,构成16位的PWM通道,级联时,2个通道的常数寄存器和计数器均连接成16位的寄存器, 3个16位通道的输出分别使用通道7、3、1的输出引脚,时钟源分 别由通道7、3、1的时钟选择控制位决定。级联时,通道7、3、1的引脚变成PWM输出引脚,通道6、2、0的时钟选择没有意义。但是通过PE模式设置就相当方便了,不用再去写代码控制寄存器,直接在窗口里面设置就可以了。5.1.3 ECT模块X12得ECT具有8个输入(IC)捕捉/输出(OC)比较通道,可以通过设置TIOS寄存器选择输入或输出比较功能。ECT既可以作为一个时基定时产生中断,也可以用来产生控制信号。 在PE模式里一样很方便,将所用到的P7口添加进来并做相应的设置就可以了。通过ECT模块,我们实现了对脉冲进行计数,检测智能车的速度,对速度进行闭环控制。5.1.4外部中断对于摄像头图像的采集我们需要用到两个中断,所以我们需要添加两个中断口到PE模式中来,对其捕捉脉冲的方式选择、使能、端口的选择进行设置,设置好后编译后便可直接使用。5.2视频采集与图像处理5.2.1摄像头工作原理摄像头的主要工作原理是:按一定的分辨率,以隔行扫描的方式采集图像上的点,当扫描到某点时,就通过图像传感芯片将该点处图像的灰度转换成与灰度成一一对应关系的电压值, 然后将此电压值通过视频信号端输出。具体而言(参见图 5.2) ,摄像头连续地扫描图像上的一行,则输出就是一段连续的电压视频信号,该电压信号的高低起伏正反映了该行图像的灰度变化情况。当扫描完一行,视频信号端就输出低于最低视频信号电压的电平 (如0.3V) , 并保持一段时间。这样相当于,紧接着每行图像对应的电压信号之后会有一个电压“凹槽” ,此“凹槽”叫做行同步脉冲,它是扫描换行的标志。然后,跳过一行后(因为摄像头是隔行扫描的方式) ,开始扫描新的一行,如此下去,直到扫描完该场的视频信号,接着就会出现一段场消隐区。此区中有若干个复合消隐脉冲(简称消隐脉冲) ,在这些消隐脉冲中,有个脉冲,它远宽于(即持续时间长于)其他的消隐脉冲,该消隐脉冲又称为场同步脉冲,它是扫描换场的标志。场同步脉冲标志着新的一场的到来,不过,场消隐区恰好跨在上一场的结尾部分和下一场的开始部分,得等场消隐区过去,下一场的视频信号才真正到来。摄像头每秒扫描 25 幅图像,每幅又分奇、偶两场,先奇场后偶场,故每秒扫描 50 场图像。奇场时只扫描图像中的奇数行,偶场时则只扫描偶数行。采集时序图如图5.3所示。图5.2视频信号(a)视频信号;(b)行同步信号;(c)场同步信号;(d)奇-偶场同步信号图5.3信号时序图尽管通过图像处理可以获得更多的道路信息 ,但会增大 S12控制器的数据存储和处理负担。S12 芯片的处理能力不足以支持像PC 那样的运算能力,受片内AD的转换能力和片内ROM的限制,最终我们初始化成40*90的分辨率,即采集40行90列的数据,定义的数组大小image4090。采集原图像信息如图5.4所示。图5.4 原图像采集5.2.2图像处理前面提到了摄像头图像信息的特点,接下来将结合比赛赛道的图像特点来提出相应的黑线提取算法边沿检测算法。由于比赛赛道是在白色底板上铺设黑色引导线,因此干扰比较小,黑线提取较为容易。很自然的就想到了图像处理算法中较为简单的边界提取算法。由于黑色赛道和白色底板之间的色差较大,直接反映在图像数据中就是大于一个黑白色阀值。通过实验可以基本上确定该阀值的大小,根据现场光线的变化影响会有略微的变化。但是该阀值基本上介于 65110 之间。因为可以通过判断相邻数据点的差是否大于该阀值,作为边沿提取算法的依据和主要参数。其中,为了减小环境的干扰,采用了中值滤波和限幅滤波。该算法的主要过程为: 1、从最左端的第一个有效数据点(30)开始依次向右进行阀值判断: 由于实际中黑白赛道边沿可能会有模糊偏差,导致阀值并不是简单的介于相邻的两个点之间,很可能要相隔两个点(参考图5.5) 。因此:2、第line为原点,判断和 line3 的差是否大于阀值,如果是则将 line3 记为 i,从 i 开始判断在接下来的从 i+3到该行最末一个点之间的差值是否大于阀值,如果大于则将line+i/2+2的坐标赋值给黑线中心位置(参考图 5.6)。3、本系统,采集方案采用从近到远处理,跟踪寻迹。跟踪边缘检测算法寻找出目标指引线的上边缘,用上边缘的位置代表目标指引线的位置。因为目标指引线是连续的,所以相邻两列的上边缘点比较接近。跟踪边缘检测正是利用了这一特性,其主要思路是:当已寻找出某列的上边缘,若在该位置附近寻找下一列的上边缘,则只用花较少的步骤就可以找到(如图5.7)。这种方法的特点就是始终跟踪在每列上边缘的附近,去寻找下一列的上边缘,所以就称这种方法为“跟踪”边缘检测算法。图5.5 Labview分析图像图5.6黑线提取算法图5.7跟踪边缘算法利用该算法所得到的黑线提取效果不仅可靠,而且实时性好;在失去黑线目标以后能够记住是从左侧或者右侧超出视野,从而控制舵机转向让赛车回到正常赛道。具体黑线提取效果可参考图5.8。图5.8原图像与黑线提取效果图结合赛道的特点针对性的利用边沿检测算法来提取黑线;实验表明,只要阀值取得合适,该算法不仅可靠,而且实时性较好。如果更进一步可以设置阀值根据现场情况的变化而变化。在黑色引导线已经能够可靠提取的基础上, 我们可以利用它来进行相应的弯、直道判断,以及速度和转向舵机控制算法的研究。5.3路径识别思想影响赛车速度成绩的一个非常重要因素就是对弯道和直道的提前识别判断,从而实现安全过弯、快速通过直道,提高比赛成绩。根据前面提到的最终以 10 行黑线信息作为弯、直道的判断算法依据,采用最优曲率算法进行赛道判断,下面简单介绍一下该算法。赛道类型如图5.9所示。图5.9赛道类型在黑线边沿检测提取算法的基础上,我们可以根据 10 行的数据中每行黑线位置与10 行平均位置(参考 公式3)之相对位移,然后求 10 行相对位移之和(公式 4) 。最后根据该值的大小并且结合实际赛道实验数据,来确定弯道和直道之间的阀值大小,而且,随着弯道系数的增大,该位移之和也会相应增大。 公式(3)公式(4)根据该弯直道判断算法,可以得到一组由直道入弯、然后出弯的Curve参数曲线。(参考图 5.10和表1、2)图5.10 赛道类型180与S弯表一表二观察表 1 和表2 可以得到在弯道中curve 数值一般都大于10,偶尔在切线位置处出现小于10的情况,但是作为弯道的判断已经足够了,而且随着曲率半径的减小curve值也会相应的增大。因此可以根据 curve的值来设置几个阀值,判断赛车前方的路况信息,决定赛车是否减速。同时舵机控制与速度控制算法可以采用以 curve为特征量进行控制。5.4舵机转向和速度调节5.4.1PID控制算法介绍在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID 控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。 PID 控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称PID控制器,原理框图如图5.11所示。图5.11 PID控制器原理框图在计算机控制系统中,使用的是数字PID控制器,控制规律为:式中:简单说来,PID控制器各校正环节的作用如下: 比例环节:及时成比例地反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差。 积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强。微分环节:能反映偏差信号的变化趋势(变化速率),并能在该偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。 数字PID控制算法通常分为位置式PID控制算法和增量式PID控制算法。位置式 PID控制算法:用矩形数值积分代替上式中的积分项,对导数项用后向差分逼近,得到数字PID控制器的基本算式(位置算式)如公式4: 公式(4)其中 T 是采样时间,kp,Ti,Td 为三个待调参数,在实际代码实现算法时,处理成形式如公式5:PreU=Kp*error+Ki*Integral+Kd*derror 公式(5)增量式 PID 控制算法:对位置式加以变换可以得到PID算法的另一种实现形式(增量式),如公式6: 公式(6)我们在实现代码时,处理成形式如公式7所示:PreU+=(Kp*d_error+Ki*error+Kd*dd_error) 公式(7)运用 PID控制的关键是调整三个比例系数, 即参数整定。 PID整定的方法有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。由于智能车整个系统是机电高耦合的分布参数系统,并且要考虑赛道具体环境,要建立精确的智能车运动控制数学模型有一定难度, 而且我们对车身机械结构经常进行不断修正,模型参数变化较频繁,可操作性不强;二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,而且方法简单。所以实际调车过程中,采用了第二种方法。5.4.2舵机转向控制转向舵机的控制采用了模糊的 PD控制,根据黑线位置和有效黑线条数动态改变 PID 参数,得到了较好的控制效果,经过反复测试,选择的 PID调节策略是:1、将积分项系数置零,经过测试发现,相比稳定性和精确性,舵机在这种动态随动系统对动态响应性能要求更高。更重要的是,在 Ki置零的情况下,我们通过合理调节Kp 参数,发现车能在直线高速行驶时仍能保持车身非常稳定,没有震荡,基本没有必要使用 Ki参数; 2、微分项系数 Kd 则使用定值,原因是舵机在一般赛道中都需要较好的动态响应能力;具体在单片机实现程序代码如下:PWM=(int)(PWM_MID+k.p*(*p)+k.d*(*(p+)-(*p);/增量式PD控制其中:PWM是当前舵机转角控制值;PWM_MID是舵机转正值;*p和*(p+)分别为当前和上次黑线中心偏移量;k.p、k.d为PID控制系数。5.4.3速度控制通过光电编码器获取的当前速度值来调整电机的 PWM 占空比,可以实现对于速度的闭环控制。这样做改变了通过直接设置 PWM 占空比调整电机转速的开环控制方法,通过对速度的闭环控制,去掉电源电压和车身重量对车速的影响,采取了最可靠的方法,保证赛车各段速度较为稳定。 电机控制主要要求提高电机的响应速度和调速准确性,故选用PID参数时选取较大的 P参数,而积分参数I 对车速控制有惯性,影响反应速度,而积分参数I 过大会使速度波动增加,影响车辆的稳定运行,所以选择了非常小的积分参数。经过多次试验,小车最终采用位置式PID控制,效果比较理想,小车在赛道上调速平稳,响应较快。在直道上车速平稳,入弯、出弯时加减速响应较快,比较好的完成速度的控制。具体的在单片机上实现代码跟据公式7得如下代码:pwm=(int)(pre_pwm+k.p*(*p-*(p+1)+k.d*(*p+*(p+2)-(*(p+1)*2)+k.i*(*p);其中:pwm为当前速度控制量;pre_pwm为当前量;*p、*(p+1)、*(p+2)分别为当前、上次和上上次黑线中心偏移量;k.p、k.d、k.i为PID控制系数。其中反馈速度的获取上, 采用周期性读取脉冲累加器的值, 具体流程如图 5.12所示: 图5.12速度获取流程图5.4.4细节控制控制策略 1弯急走外道,弯缓走内道: 采用双边沿算法,采集到图像中每一行的边沿位置,并利用数组accord_Left,accord_Right中存取两个边沿。进而利用双边沿,实现弯急走外道,弯缓走外道。这样走法的好处是:在弯急时,由于车转角比较大,车在大多数情况下会贴着内道走,车走的路径的半径比较小,一则转弯的阻力非常大,二则程序中弯道减速非常大,这两者的综合结果是,车转弯时车速非常慢,采用 走外道的方法可以减弱这种状况带来的影响。在弯缓时,由于这时车速比较快,车的转角也不是非常大,车的转弯阻力也不大,转向等状况比较好,可以走内道减少行车路径的长度节约时间。 控制策略 2D形弯加速策略: 在实际调车过程中,发现由于采用大角度的转弯减速策略,赛车在过D形弯时,D形弯后半圆,车的速度非常的慢,而一旦减速后再加起速来又需要一段时间。这样就使赛车过 D形弯时,用时非常多。考虑到D形弯时一旦进弯车的转角比较稳定,在看到直道前可以提前适当加速,从而减少过弯时间。 根据D形弯的具体特点长直道入弯,再到长直道,判断长直道的方法是:以当前采集到得信息为参考点,如果往前第十幅图像采集到的是弯道,在前 5幅图像时是弯道,当前图像又是弯道,则认为是进入 D形弯。适当选择图像就可以准确判断D形弯,在实际调车过程中证明,这种判断非常准确。D形弯如图 5.13所示:图 5.13 D 形弯控制策略 3超前转向判断方法: 由于摄像头看的比较远,摄像头看到图像,单片机计算出转角及转速,舵机及电机驱动电路作出反应,中间有一段延时。如果摄像头往前看的距离和车作出反应的时间相匹配,则车沿线跑,若晚于后者,则会造成车转弯的滞后;若早于后者,则造成车的转弯的超前。我们可以将摄像头看的图像位置放在车转角超前的位置,单片机算出的转角和速度不直接给舵机和驱动板,而是暂时的存放在一个数组中,我们根据实际超前情况从数组中选择适当的转角和速度给与舵机和驱动板。 可以根据超前算出的这些值来判断车将要走的路径是何种赛道情况,从而选择走这种赛道的最佳方法。在实际的调试过程中这种方法起到了一定的效果。不过摄像头看的越远,干扰越大,车跑的越不稳定,所以不能超前太多。控制策略4起跑线检测:如图 5.14起跑线是白、黑、白、黑、白、黑、白、黑、白相间分布分布的,根据这一特点在程序里可以设置 start_line数组专门来存放图像中某几行黑点的个数,选择适当的阈值就可以判断出线。在实际调车过程中发现由于摄像头拍摄图像的宽度有限,车过起跑线时有可能不是正对着过,这样造成漏检的可能就非常的大。因此,只检测两边黑点个数,这样也可以客观的反应起跑线的特点,并且实际调试过程中发现这种方法比较准确。图5.14赛道出发去示意图第六章:开发环境、调试工具前面几章从硬件设计到软件构架对智能车系统做了详尽的介绍和分析。一个系统方案制定好后,其实主要的工作是不断细化和调试。在对程序进行开发和软硬件联调的过程中需要一整套的软件开发与调试工具。在整个程序开发过程中,除采用汇编语言开发的方式外,还可使用 Metrowerks 公司为MC9S12 系列单片机专门提供的全套开发工具(Metrowerks Codewarrior IDE) 。这是一套用C 语言进行编程的集成开发环境本文智能车系统的软件设计部分就是在此开发环境下完成的。同时为了观察摄像头采集和控制算法的效果,还采用了NI公司的虚拟仪器Labview 作为辅助开发调试工具。并自行设计了采用拨码开关和LCD显示屏的人机交互界面。6.1软件开发平台Codewarrior IDE在整个开发调试过程中,使用 Metrowerks 公司为 MC9S12系列专门提供的全套开发工具CodeWarrior IDE 开发环境,到现在,CodeWarrior 已经出现 CodeWarrior 5.0版,功能相比于以前有了许多提高。CodeWarrior for S12X是面向以 HC12和S12X 为CPU的单片机嵌入式应用开

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论