1、第七届“飞思卡尔”杯全国大学生 智能汽车竞赛技 术 报 告(校徽)学校:*队伍名称:*参赛队员:*带队老师:*关于技术报告和研究论文使用授权的说明本人完全了解第七届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名: 带队教师签名: 日 期: 摘 要本文以第七届全国大学生智能车竞赛为背景,介绍了智能赛车控制系统的软硬件结构和开发流程。该比赛采用组委会规定的标准车模,以
2、Freescale 半导体公司生产的 16 位单片机 MC9S12X128 为核心控制器,在 CodeWarrior IDE 开发环境中进行软件开发,要求赛车在未知道路上完成快速寻线。整个系统涉及车模机械结构调整、传感器电路设计及信号处理、控制算法和策略优化等多个方面。为了提高智能赛车的行驶速度和可靠性,对比了不同方案(如摄像头与光电管检测方案)的优缺点,并结合 Labview 仿真平台进行了大量底层和上层测试,最终确定了现有的系统结构和各项控制参数。它采用摄像头对赛道进行检测,通过边缘提取获得黑线位置,用 PID 方式对舵机进行反馈控制。通过速度传感器获取当前速度,采用增量式数字 PID 控
3、制实现速度闭环,根据预判信息和记忆信息对速度进行合理分配。同时采用拨码开关和 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 t
4、he 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
5、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 (
6、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 inform
7、ation 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
8、 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
9、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 车
10、模布局思想 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.
11、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第七届全国大学生智能汽车邀请赛技术
12、报告 (队名)1第一章:引言1.1 背景介绍智能汽车就是一种无人驾驶汽车,也可以称之为轮式移动机器人,主要依靠车内以计算机系统为主的智能驾驶仪来实现无人驾驶。它一般是利用车载传感器来感知车辆周围环境,并根据感知所获得的道路、车辆位置和障碍物信息,控制车辆的转向和速度,从而使车辆能够安全、可靠地在道路上行驶。无人驾驶汽车从根本上改变了传统的“人一车一路”闭环控制方式,将不可控的驾驶员从该闭环系统中请出去,从而大大提高了交通系统的效率和安全性。现代无人驾驶汽车以汽车工业为基础,以高科技为依托,遵循由低到高、由少到多、由单方面到多方面、螺旋上升的规律发展。其横向发展离不开各种用途的实际需要,而其纵向
13、发展的生命力在于持续不断的技术创新。全国大学生飞思卡尔智能汽车竞赛是受教育部高等教育司委托,由教育部高等自动化专业教学指导分委员会主办的全国大学生智能汽车竞赛。该竞赛以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一。该竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。 大赛按照传感器类别的不同分为三个组别:光电
14、组、摄像头组、电磁组。各组自己设计、选择规则允许内的传感器件,结合赛会指定的微控制器件,进行车辆运行中赛道信息的识别、动力控制、转向控制等具体内容。在赛会规则的允许范围内,最快完成比赛的将取得最好成绩。本报告将从硬件到软件一一的为大家呈现本智能车的设计方案和制作过程。1.2 发展现状智能汽车,是一种集环境感知、规划决策、自动行驶等功能于一体的综合系统,集中地应用到自动控制、模式识别、传感器技术、汽车电子、电气、计算机、机械等多个学科,是典型的高新技术综合体,具有重要的军用及民用价值。 在 20 世纪 80 年代,美国就提出自主地面车辆(ALV)计划,这是一辆 8 轮车,能在校园的环境中自主驾驶
15、,但车速不高。1995 年,一辆由美国卡耐基梅隆大学研制的无人驾驶汽车 NavlabV,完成了横穿美国东西部的无人驾驶试验。2005 年,美国国防部“大挑战”比赛上,最终由美国斯坦福大学工程师们改装的一辆大众途锐多功能车经过 7 个半小时的长途跋涉完成了全程障碍赛,第一个到达了终点。在无人驾驶技术研究方面位于世界前列的德国汉堡 Ibeo 公司,最近推出了其研制的无人驾驶汽车。我国国防科技大学从 20 世纪 80 年代开始进行无人驾驶汽车技术研究。2000 年 6 月,国防科技大学研制的第 4 代无人驾驶汽车试验成功,最高时速达 76 km,创下国内最高纪录。以上转述只是冰山一角,智能车的技术正
16、在不断发展中。目前,智能车领域的研究已经能够在具有一定标记的道路上为司机提供辅第七届全国大学生智能汽车邀请赛技术报告 (队名)2助驾驶系统甚至实现无人驾驶。这些智能车的设计通常依靠特定道路标记完成识别,通过推理判断模仿人工驾驶进行操作。通常,智能车接受辅助定位系统提供的信息完成路径规划,如由 GPS 等提供的地图,交通拥堵状况,道路条件等信息。1.3 章节安排本文内容的安排如下所示: 第一章 引言 本章主要介绍了 Freescale 车模竞赛的基本情况,智能车的发展状况。 第二章 系统整体框架 本章对系统硬件模块方案和软件控制方法进行了选择与论证。 第三章 机械设计 本章对机械结构的安装与改进
17、,各个模块的安装技巧作了详细的介绍。 第四章 硬件电路设计 本章主要介绍了自行设计的基于飞思卡尔单片机的最小系统板的设计,电源模块、驱动模块、摄像头模块和速度传感器模块的设计与实现。 第五章 软件系统设计 本章软件系统各模块的设计思路作了详细的介绍。特别介绍了图像处理中的各种技巧、PID 控制策略的应用和起跑线识别算法的设计等问题 第六章 开发工具及其调试 本章对开发工具与调试方法作了简单介绍。 结论 对整个参赛过程中的经验与教训作了总结。第七届全国大学生智能汽车邀请赛技术报告 (队名)3第二章:系统整体框架2.1 系统框架智能汽车系统分为两个部分:硬件系统与软件系统。硬件系统包括了电路系统和
18、机械系统;而软件系统则可以分为底层代码和实现算法,后者主要包括用于实现路径识别的算法、电机转速闭环、舵机角度控制和导引策略等。具体层次结构如图 2.1 所示。本文分层次展开硬件系统与软件系统。图 2.1 智能汽车系统结构图2.1.1 硬件系统根据需求分析,经过仔细研究,决定采用模块化设计。智能汽车的硬件系统由核心控制模块(MCU)、传感器模块、电源管理模块、存储器模块、电机驱动模块、舵机驱动模块、人机接口模块、无线通讯模块和放电器模块组成,如图2.2 所示。核心控制模块( M C U )存储器模块传感器模块电机驱动模块舵机驱动模块无线通讯模块伺服电机无线通讯模块上位机显示 L C D 拨码开关
19、人机接口模块直流电机电源模块第七届全国大学生智能汽车邀请赛技术报告 (队名)4图 2.2 智能汽车控制系统总体设计框图2.2.2 软件系统系统的软件流程图如图 2.3:图 2.3 系统流程图2.2 方案简介智能汽车系统的工作原理是预瞄理论和闭环控制理论的典型体现。其示意图如图 2.4 所示。摄像头传感器单片机前方赛道信息P W M角度 、 速度电机 、舵机输出值编码器 、 加速度传感器小车速度和加速度信息驱动模块图 2.4 智能车系统工作原理示意图在本届比赛中,组委会提供了多种单片机可供选择,分为 16 位和 32 位两种类型。我们选择了总线频率较高的 16 位 MC9S12XS128 作为主
20、控芯片,并且自己制作了最小系统板。图像采集单元,考虑到动态性、功耗性以及复杂性,我们经过对比最终选择了 CMOS 的 OV7620 作为图像采集传感器。将图像采集来后,第七届全国大学生智能汽车邀请赛技术报告 (队名)5为了减小干扰,首先我们对整幅进行了二值化,然后利用跟踪边缘算法对黑线进行提取,为了使提取的黑线更加准确我们对提取的黑线进行了中值滤波和限幅滤波。最终使黑线的变化更加平稳。提取出黑线后,我们采用了 PD 策略对舵机进行控制,增量式 PID 对电机进行控制;并结合最优曲率算法和中心偏移量识别赛道类型,让小 S 直接冲过去,大 S 尽量内切,最大难度的发卡弯沿线通过。然后,小车的速度根
21、据前方的路况自动调整。 在硬件方面,我们为了使电路更加简化,自己制作了最小系统板,使得单片机,电源,电机驱动等模块集中到了一块最小系统板上,合理分布,最大限度的优化小车硬件与机械结构。第七届全国大学生智能汽车邀请赛技术报告 (队名)6第三章:机械设计任何的控制算法和软件程序都是需要一定的机械结构来执行和实现的,因此在设计整个软件架构和算法之前一定要对整个车模的机械结构有一个感性的认识,然后建立相应的数学模型。从而再针对具体的设计方案来调整赛车的机械结构。本章的将主要介绍赛车车模的机械特点和调整方案。3.1 汽车行驶的数学模型汽车是现代社会的主要交通工具,在对汽车研究过程中,形成了一大批研究成果
22、。我们在查阅了一大堆资料的前提下,形成了自己对汽车原理的首先建立汽车行驶的数学模型(见图 3.1)图 3.1 汽车行驶数学模型图中:AP,BN 为连接杆与主销之间的杆长 L 杆AB,CD 为前轮轴长 L 前 ,后轮轴长 L 后KL 为前轴与后轴的轴距 L 轴距根据汽车理论, 假设轮胎不打滑,并忽略轮胎所受的重力作用产生的形变以及左右两侧轮胎由于受力不均产生的形变,即可得到理想的汽车转向模型:如图 3.1 所示,即左右两轮的轴线与后轮的主轴,三点交于车身中心所处道路位置的曲率中心。不失一般性, 这里只讨论右转的情形。对于图 3.1,设左轮转向为 ,右轮角分别为 ,对于以上模型,显然有LR如下关系
23、: ,LRPAQOCMANOD于是得到在理想状态下,汽车的过弯时的转角方程:第七届全国大学生智能汽车邀请赛技术报告 (队名)7公式(1)同样也可以得到右转时公式(2)采用第七届“飞思卡尔”智能车大赛组委会提供的韩国 Matiz 系列 1:10 模型车的参数对公式(1) ,公式(2)进行仿真。得到车模行驶时理论转弯半径与车轮转角的关系(见图 3.2)和右轮也左轮的转角关系(见图 3.3)3.2 弯半径与车轮转角关系 图 3.3 右、左轮的转角关系在模型车结构参数一定的情况,小车左右两轮的转角存在一定的函数关系,当向右过弯时,右轮转向比左轮转向大,同理向左转弯时,左轮转向较右轮转向大,同时,随着道
24、路曲率半径的越大,车轮所需的转角越小。在实际调试过程中,要以理论为基础,配合以上理论计算公式,寻找小车的轮速参数。3.2 整体布局与调整在整个智能车系统中,优良的系统构架是一个优秀车模不可或缺的重要基础,而车模的整体布局又是参与此类竞速比赛的车模的基础中的基础。车模的整理布局在很多方面决定了车模潜力的挖掘和技术水平的发挥,甚至在某些情况下影响着软件设计和控制算法。下面将分模块予以分析。3.2.1 车模分析在此届比赛中,摄像头组使用的车模是由广东东莞市博思电子数码科技有限公司提供的 G768 车模平台(图 3.4) ,配置 FUTABA3010 型号伺服器(图 3.5)和 RN260 电机 (图
25、 3.6) 。()()coscostantanLRL杆 杆轴 距 轴 距 前2222cos()()tanRLLRO杆轴 距轴 距 前 轴 距 ( )第七届全国大学生智能汽车邀请赛技术报告 (队名)8图 3.4 模型车车体图 3.5 伺服器 图 3.6 电机该车模结构合理,重心位置控制较好,重心较低,前后轮距合理。特别是传动系统性能优良,相比较与上届的 B 型车模,该车模的动态传动系统要好很多。并且车模的本身结构也有利于参赛选手根据自身情况进行适当的改装,满足自身控制的需求。但是该车模也有一个缺陷,及其配置的驱动电机带载能力比较差,电机本身在带载情况下的加速性能比较差,这就给调速带来了很大的麻烦
26、,这些将在调试中具体探讨。3.2.2 车模布局思想为了使车模在竞赛中发挥出最好的水平,我们最车模的布局有以下几个想法: 第一 车模的整体布局应该尽量简洁。这对于车模的整体质量影响很大,以至于影响速度的发挥。而且,在很多方面关系着车模的整理稳定性。因此,尽可能的去除车模上的冗余结构很有必要。 第二 车模的整体布局应该做到稳定。车模的稳定不只是机械结构上的稳定,同样也对电路的稳定性有这很大的要求。车模的电路设计方面应该努力屏蔽噪声干扰对整个电路带来的影响。 第三 车模的整体布局应该做到高效。 此次智能车竞赛必竟是竞速比赛,毫秒之间可以决定胜负。因此,车模能否做到高效是关系速度的一个重要指标。从以上
27、角度出发,最终我们设计出自己的车模模型,实物如图 3.7 所示。第七届全国大学生智能汽车邀请赛技术报告 (队名)9图 3.7 实体车型3.3 机械结构调整3.3.1 前后轮定位在调试中我们发现,模型车过弯时,转向舵机的负载会因为车轮转向角度增大而增大。为了尽可能降低转向舵机负载,我们对前轮定位进行了调整。前轮定位的作用是保障汽车直线行驶的稳定性和转向轻便。前轮定位参数主要包括:主销后倾角(图 3.8) 、主销内倾角(图 3.9) 、前轮外倾角和前轮前束。我们将前轮外倾角和前轮前束分别设为 0 度、0mm ,主销稍微内倾和后倾。后轮采用窄轮距,可有效避免切弯过度时有一个后轮跑出去。图 3.8 主
28、销后倾角 图 3.9 主销内倾角3.3.2 其他机械模块调整除了以上部分的调整外,还对主悬架弹簧松紧、底盘高度和齿轮传动机构进行了适当调整。通过增加避震弹簧的刚性、降低底盘高度、调整齿轮间隙,改善了赛车的行驶表现。 3.3 摄像头的安装摄像头安装主要考虑的问题有: 固定摄像头的材料,摄像头的安装位置和摄像头的安装高度。为了降低整车重心,需要严格控制 CMOS 摄像头的安装位第七届全国大学生智能汽车邀请赛技术报告 (队名)10置和重量,我们自行设计了轻巧的铝合金夹持组件并采用了碳纤维管作为安装CMOS 的主桅,这样可以获得最大的刚度质量比,整套装置具有很高的定位精度和刚度,使摄像头便于拆卸和维修
29、,具有赛场快速保障能力。摄像头的安装如图 3.10/3.11 所示。图 3.7 底座-单杆安装图 图 3.8 单杆-摄像头安装图3.4 舵机的安装舵机转向是整个车模系统中延迟最大的一个环节,为了减小此时间常数,通过改变舵机的安装位置,加长力臂可以提高舵机的响应速度。鉴于往届经验以及本届车模舵机性能,我们进行多套方案的试验,诸如将舵机竖直、水平以及其它不同方向的摆放方法。考虑到舵机响应时间、稳定性以及虚位的诸多因素,我们最终选择倒卧式安装舵机,延长舵机臂杆至 33mm,并自行设计了舵机安装支架,达到了很好的效果。具体安装见图 3.12。图 3.12 舵机安装效果图3.5 编码器的安装对光电编码器
30、的安装,可以将光栅盘安装在电机轴上,通过先计算电机转第七届全国大学生智能汽车邀请赛技术报告 (队名)11速再来计算模型车后驱动轴得知车速。但是,这种方法太麻烦,并且在电机轴上装光栅盘会影响电机的性能。所以,我们将光栅盘安装在模型车后驱动轴上,根据光电编码器的输出脉冲计算不同时刻模型车的后轮转速。光电编码器的固定如图 3-10 所示(欧姆龙 500p) 。此处要注意的是,装在光电编码器上的齿轮个数不要太多,太多了就会降低检测精度。我们用的齿轮是 17 齿。配齿轮时还要注意模数这个参数,模数不匹配齿轮就会装不上,此处齿轮模数为 0.5。装齿轮时注意不要过紧也不要过松。图 3.10 光电编码器第七届
31、全国大学生智能汽车邀请赛技术报告 (队名)12第四章:硬件电路设计4.1 硬件设计方案从最初进行硬件电路设计时我们就既定了系统的设计目标:可靠、高效、简洁,在整个系统设计过程中严格按照规范进行。 可靠性是系统设计的第一要求,我们对电路设计的所有环节都进行了电磁兼容性设计,做好各部分的接地、屏蔽、滤波等工作,将高速数字电路与模拟电路分开,使本系统工作的可靠性达到了设计要求。 高效是指本系统的性能要足够强劲。我们主要是从以下两个方面实现的: (1) 采用运算放大器设计的比较器实现了图像二值化的高速转换,大大提高了图像采集的分辨率; (2) 使用了由分立元件 BTS7960 制作的直流电动机桥式驱动
32、器,该驱动器的额定工作电流可以轻易达到 100A 以上,大大提高了电动机的工作转矩和转速。简洁是指在满足了可靠、高效的要求后,为了尽量减轻整车重量,降低模型车的重心位置,应使电路设计尽量简洁,尽量减少元器件使用数量,缩小电路板面积,使电路部分重量轻,易于安装。我们在对电路进行了详细分析后,对电路进行了简化,合理设计元件排列、电路走线,使本系统硬件电路部分轻量化指标都达到了设计要求。4.2 传感器的选择4.2.1 摄像头目前市面上常见的摄像头主要有 CCD 和 CMOS 两种:CCD 摄像头具有对比度高、动态特性好的优点,但需要工作在 12V 电压下,对于整个系统来说过于耗电,且图像稳定性不高;
33、CMOS 摄像头体积小,耗电量小,图像稳定性较高。因此,经过实验论证之后我们决定采用 CMOS 摄像头。对于 CMOS 摄像头分为数字和模拟两种。在往届比赛中,我们看到有不少参赛队采用涉资摄像头,本着严谨的态度,我们选用了 OV7620 进行实验,对数字摄像头的可行性进行了论证。经过实验,得到结论:数字摄像头 OV7620 可以直接输出 8 路数字图像信号,使主板硬件电路的简化成为可能,且能够达到 60帧/S 的帧速率,能够满足要求。4.2.2 编码器考虑到智能车的实际速度控制对速度反馈信号波形要求不是太高,因此在满足比赛要求的基础上,我们使用了自制的光电编码器来测速,从而尽量简化电路。我们实
34、验室使用线切割在直径为 30mm 的圆盘周围加工出 100 个细缝,使用红外光电对射管作为采集码盘脉冲可鉴向的传感器。速度传感器实物图如图 4.1 所示。虽然自制的光电编码器结构简单,价格便宜,但是容易受到外部光线和灰尘的干扰,影响测速的精度。因此,我们改用了高性能的欧姆龙 EE6A2-CWZ3C如图 4.2 所示。码盘内部经发光二极管等电子元件组成的检测装置检测输出脉冲信号,通过计算每秒光电编码器输出脉冲的个数就能反映当前驱动电机的转第七届全国大学生智能汽车邀请赛技术报告 (队名)13速。图 4.1 光电码盘 图 4.2 欧姆龙编码器4.3 电路设计方案智能车控制系统电路由三部分组成:MC9
35、S12XS128 为核心的最小系统板、主板、ZLG7290 键盘。最小系统板可以插在主板上,组成了信号采集、信号处理、电机控制、舵机控制单元。为了减小电机驱动电路带来的电磁干扰,我们把控制单元部分和电机驱动部分分开来,排布在主板的两端。 主板上集成了本系统的主要电路,它包括如下部件:电源稳压电路、最小系统板插座、摄像头接口、舵机接口、电机驱动模块、编码器模块、键盘接口、LCD 电路、拨码开关、指示灯等。4.3.1 单片机最小系统板单片机最小系统部分使用 MC9S12XS128 单片机,112 引脚封装,为减少电路板空间,板上仅将本系统所用到的引脚引出,包括 PWM 接口,计数器接口,外部中断接
36、口,若干普通 IO 接口。其他部分还包括电源滤波电路、时钟电路、复位电路、串行通讯接口、BDM 接口和 SPI 接口。单片机最小系统板电路原理图如图 4.3。第七届全国大学生智能汽车邀请赛技术报告 (队名)14图 4.3 单片机最小系统板电路原理图4.3.2 稳压模块电路赛会指定的镍镉可充电电池的额定电压为 7.2V,实际调试中,我们发现其电压实际值有时会达到 8V 甚至于 8V 以上。因此需要有性能优越的抗干扰稳压芯片。 由于电路中的不同电路模块所需要的工作电压和电流容量各不相同,因此电源模块应该包括多个稳压电路,将充电电池电压转换成各个模块所需要的电压。并且单片机的电源好坏直接关系到单片机
37、能否正常工作以至于整个系统的控制稳定。我们在测试了许多类型的稳压芯片之后觉得采用了性能优异的LM2596(图 4.4) 。它是一款微功耗低压差线性电源芯片使用这个芯片。该芯片稳定工作时所需要的外围器件很少,使用方便。2596 的工作压降很低,静态电流也很小,散热少,很适合这种情况下的使用。图 4.4 LM2596 驱动电路4.3.3 驱动模块电路电机的驱动方案有 MOS 管,MC33886,BTS7960 三种主要的方案。MOS 管的搭建效率较高,驱动电流很大,但是针对现有的双电机情况,用 MOS 管搭建两个电机的驱动较为复杂。MC33886 芯片的内阻较大,发热明显,芯片较大引脚较多。我们最
38、终采用了功能较为完善,性能稳定的 BTS7960 芯片。原理图如图 4.5。为保证 PWM 信号的稳定,我们使用了 74LS244 加强信号的稳定,原理图如图 4.6。图 4.5 BTS7960 原理图第七届全国大学生智能汽车邀请赛技术报告 (队名)15图 4.6 74LS244 电路电机的驱动采用两片 BTS7960 并联,一路 PWM 控制。基于上文提到的整体的布局,最终设计出稳压电路和驱动电路一体板。PCB 如图 4.7图 4.7 稳压-驱动一体板第七届全国大学生智能汽车邀请赛技术报告 (队名)16第五章:软件系统设计高效稳定的软件程序是智能车平稳快速寻线的基础。本智能车采用 CMOS
39、摄像头作为寻线传感器,图像采集处理就成了整个软件的核心内容。在智能车的转向和速度控制方面,我们使用了鲁棒性很好的经典 PID 控制算法,配合使用理论计算和实际参数补偿的办法,使在寻线中的智能车达到了稳定快速的效果。软件系统部分主要包括:系统初始化、图像采集、图像处理、赛道判断、舵机打角、电机控制以及速度反馈处理等。系统流程图如图 5.1 所示。图 5.1 系统流程图5.1 软件各功能模块设计5.1.1 时钟模块时钟基本脉冲是 CPU 工作的基础。MC9S12XS128 微控制器的系统时钟信号,由时钟振荡电路或专用时序脉冲信号提供。MCU 内部的所有时钟信号都来源于EXTAL 引脚,也为 MUC
40、 与其他外接芯片之间的通信提供了可靠的同步时钟信号。X12 的总线时钟是整个 MCU 系统的定时基准和工作同步脉冲,其频率固定为晶体频率的 1/2。 对于 X12, 可以利用寄存器 SYNR、 REFDV 来改变晶振频率fOSCCLK,可以选用 8MHz 或 16MHz 外部晶体振荡器作外时钟。对 SYNR 和 REFDV 进行设置,可以得到 48MHz 的总线频率。5.1.2 PWM 输出模块MC9S12XS128 集成了 8 路 8 位独立 PWM 通道,通过相应设置可变成 4 个 16第七届全国大学生智能汽车邀请赛技术报告 (队名)17位 PWM 通道,每个通道都有专用的计数器,PWM
41、输出极性和对齐方式可选择,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/
42、(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 模式设置就相当方便了,不用再去写代码控
43、制寄存器,直接在窗口里面设置就可以了。5.1.3 ECT 模块X12 得 ECT 具有 8 个输入(IC)捕捉/输出(OC)比较通道,可以通过设置TIOS 寄存器选择输入或输出比较功能。ECT 既可以作为一个时基定时产生中断,也可以用来产生控制信号。 在 PE 模式里一样很方便,将所用到的 P7 口添加进来并做相应的设置就可以了。通过 ECT 模块,我们实现了对脉冲进行计数,检测智能车的速度,对速度进行闭环控制。5.1.4 外部中断对于摄像头图像的采集我们需要用到两个中断,所以我们需要添加两个中断口到 PE 模式中来,对其捕捉脉冲的方式选择、使能、端口的选择进行设置,设置好后编译后便可直接使用
44、。5.2 视频采集与图像处理5.2.1 摄像头工作原理摄像头的主要工作原理是:按一定的分辨率,以隔行扫描的方式采集图像上的点,当扫描到某点时,就通过图像传感芯片将该点处图像的灰度转换成与灰度成一一对应关系的电压值, 然后将此电压值通过视频信号端输出。具体而言(参见图 5.2) ,摄像头连续地扫描图像上的一行,则输出就是一段连续的电压视频信号,该电压信号的高低起伏正反映了该行图像的灰度变化情况。当扫描完一行,视频信号端就输出低于最低视频信号电压的电平 (如 0.3V) , 并保持一段时间。这样相当于,紧接着每行图像对应的电压信号之后会有一个电压“凹槽” ,此“凹槽”叫做行同步脉冲,它是扫描换行的
45、标志。然后,跳过一行后(因为摄像头是隔行扫描的方式) ,开始扫描新的一行,如此下去,直到扫描完该场的视频信号,接着就会出现一段场消隐区。此区中有若干个复合消隐脉冲(简称消隐脉冲) ,在这些消隐脉冲中,有个脉冲,它远宽于(即持续时间长于)其他的消隐脉冲,该消隐脉冲又称为场同步脉冲,它是扫描换场的标志。场同步脉冲标志着新的一场的到来,不过,场消隐区恰好跨在上一场的结尾部分和下一场的开始部分,得等场消隐区过去,下一场的视频信号才真正到来。摄像头每秒扫描 25 幅图像,每幅又分奇、偶两场,先奇场后偶场,第七届全国大学生智能汽车邀请赛技术报告 (队名)18故每秒扫描 50 场图像。奇场时只扫描图像中的奇
46、数行,偶场时则只扫描偶数行。采集时序图如图 5.3 所示。图 5.2 视频信号( a)视频信号;(b)行同步信号;(c)场同步信号;(d)奇-偶场同步信号图 5.3 信号时序图尽管通过图像处理可以获得更多的道路信息 ,但会增大 S12 控制器的数据存储和处理负担。S12 芯片的处理能力不足以支持像 PC 那样的运算能力,受片内 AD 的转换能力和片内 ROM 的限制,最终我们初始化成 40*90 的分辨率,即采集 40 行 90 列的数据,定义的数组大小 image4090。采集原图像信息如图 5.4 所示。第七届全国大学生智能汽车邀请赛技术报告 (队名)19图 5.4 原图像采集5.2.2
47、图像处理前面提到了摄像头图像信息的特点,接下来将结合比赛赛道的图像特点来提出相应的黑线提取算法边沿检测算法。由于比赛赛道是在白色底板上铺设黑色引导线,因此干扰比较小,黑线提取较为容易。很自然的就想到了图像处理算法中较为简单的边界提取算法。由于黑色赛道和白色底板之间的色差较大,直接反映在图像数据中就是大于一个黑白色阀值。通过实验可以基本上确定该阀值的大小,根据现场光线的变化影响会有略微的变化。但是该阀值基本上介于 65 110 之间。因为可以通过判断相邻数据点的差是否大于该阀值,作为边沿提取算法的依据和主要参数。其中,为了减小环境的干扰,采用了中值滤波和限幅滤波。该算法的主要过程为: 1、从最左
48、端的第一个有效数据点(30)开始依次向右进行阀值判断: 由于实际中黑白赛道边沿可能会有模糊偏差,导致阀值并不是简单的介于相邻的两个点之间,很可能要相隔两个点(参考图 5.5) 。因此:2、第 line 为原点,判断和 line3 的差是否大于阀值,如果是则将 line3 记为 i,从 i 开始判断在接下来的从 i+3 到该行最末一个点之间的差值是否大于阀值,如果大于则将 line+i/2+2 的坐标赋值给黑线中心位置(参考图 5.6) 。3、本系统,采集方案采用从近到远处理,跟踪寻迹。跟踪边缘检测算法寻找出目标指引线的上边缘,用上边缘的位置代表目标指引线的位置。因为目标指引线是连续的,所以相邻两列的上边缘点比较接近。跟踪边缘检测正是利用了这一特性,其主要思路是:当已寻找出某列的上边缘,若在该位置附近寻找下一列的上边缘,则只用花较少的步骤就可以找到(如图5.7) 。这种方法的特点就是始终跟踪在每列上边缘的附近,去寻找下一列的上边缘,所以就称这种方法为“跟踪”边缘检测算法。图 5.5 Labview 分析图像第七届全国大学生智能汽车邀请赛技术报告 (队名)20