飞思卡尔杯全国大学生.docx

上传人:b****3 文档编号:10533900 上传时间:2023-05-26 格式:DOCX 页数:20 大小:439.13KB
下载 相关 举报
飞思卡尔杯全国大学生.docx_第1页
第1页 / 共20页
飞思卡尔杯全国大学生.docx_第2页
第2页 / 共20页
飞思卡尔杯全国大学生.docx_第3页
第3页 / 共20页
飞思卡尔杯全国大学生.docx_第4页
第4页 / 共20页
飞思卡尔杯全国大学生.docx_第5页
第5页 / 共20页
飞思卡尔杯全国大学生.docx_第6页
第6页 / 共20页
飞思卡尔杯全国大学生.docx_第7页
第7页 / 共20页
飞思卡尔杯全国大学生.docx_第8页
第8页 / 共20页
飞思卡尔杯全国大学生.docx_第9页
第9页 / 共20页
飞思卡尔杯全国大学生.docx_第10页
第10页 / 共20页
飞思卡尔杯全国大学生.docx_第11页
第11页 / 共20页
飞思卡尔杯全国大学生.docx_第12页
第12页 / 共20页
飞思卡尔杯全国大学生.docx_第13页
第13页 / 共20页
飞思卡尔杯全国大学生.docx_第14页
第14页 / 共20页
飞思卡尔杯全国大学生.docx_第15页
第15页 / 共20页
飞思卡尔杯全国大学生.docx_第16页
第16页 / 共20页
飞思卡尔杯全国大学生.docx_第17页
第17页 / 共20页
飞思卡尔杯全国大学生.docx_第18页
第18页 / 共20页
飞思卡尔杯全国大学生.docx_第19页
第19页 / 共20页
飞思卡尔杯全国大学生.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

飞思卡尔杯全国大学生.docx

《飞思卡尔杯全国大学生.docx》由会员分享,可在线阅读,更多相关《飞思卡尔杯全国大学生.docx(20页珍藏版)》请在冰点文库上搜索。

飞思卡尔杯全国大学生.docx

飞思卡尔杯全国大学生

第二届“飞思卡尔”杯全国大学生

智能汽车邀请赛

技术报告

 

附件B面阵CCD图像处理与赛道识别研究

 

学校:

北京航空航天大学

队伍名称:

北航一队

参赛队员:

关新陈威唐振宇

 

带队教师:

陈博

 

关于技术报告和研究论文使用授权的说明

本人完全了解第二届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:

参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。

参赛队员签名:

带队教师签名:

日期:

 

目录

第一章引言4

第二章智能车硬件设计5

2.1机械设计5

2.1.1CCD支架5

2.1.2测速发电机支架6

2.1.3舵机安装6

2.1.4车模参数调节7

2.2硬件电路设计7

2.2.1电源电路7

2.2.2视频图像电路9

2.2.3电机控制电路10

2.3创新点11

2.4小结12

第三章智能车软件设计13

3.1CCD控制算法仿真平台13

3.1.1仿真平台的搭建13

3.1.2控制规律研究16

3.2软件调试平台介绍18

3.3创新点19

3.4小结19

第四章控制算法的研究20

4.1智能车控制思想20

4.2图像处理与赛道识别20

4.3智能车系统软件20

4.3.1智能车系统软件设计思想20

4.3.2软件构成21

4.4创新点23

4.5小结23

第五章总结24

5.1智能汽车技术指标24

5.2目前尚存在的不足与改进方向24

第一章引言

在第二届“飞思卡尔”杯全国大学生智能车比赛中,我们采用面阵CCD作为路面检测信息的传感器,以飞思卡尔16位微控制器MC9S12DG128B作为核心控制模块,引导改装后的模型汽车按照规定路线行进。

整个智能汽车制作过程中,我们主要做了以下工作:

1、硬件平台的搭建:

首先对模型车进行了机械部分的改造和调节,在不违反大赛规则的前提下对舵机进行了机械方面的设计和研究,一定程度上提高了舵机的灵敏度。

在硬件电路方面,精心设计了CCD图像采集和驱动电机电路;同时,为了调试方便和根据场地等外界环境需要,设计了人机交互的键盘输入和LCD输出硬件电路,并且加入了无线调试的硬件接口电路。

2、软件平台的搭建:

在软件设计方面我们搭建了无线调试平台,主要包括无线视频模块和无线数据传输模块两部分。

前者提供CCD获取的图像信息,可以录制智能车在赛道上的图像信息,便于分析研究控制算法;后者通过无线串口收发器发送的指令,执行转向及车速控制。

无线调试平台不仅给程序调试带来了很多方便,可以在计算机上调试各种控制算法的性能,还保证了赛车在调试过程中的运动轨迹的可控性。

3、控制算法的研究:

通过对CCD图像传感器所摄取的路面图像进行处理,从而获得准确的赛道信息。

同时,在PC机上搭建了控制算法仿真平台,可以把设计好的图像处理算法和控制算法先在PC机进行模拟,待模拟成功后再移植到MC9S12DG128B单片机中去。

我们编写的基于PC机的控制算法仿真软件可以直观的模拟智能车在不同赛道的运行情况,通过改动相关参数,就可以方便、直观的观察智能车运行效果。

第二章智能车硬件设计

硬件是系统的基础,为了给整个智能车系统提供一个稳定、可靠的硬件平台,我们在硬件设计方面做了很多考虑,主要包括机械部分和电路部分。

2.1机械设计

根据比赛规则,我们对模型车进行了机械设计和改造,主要包括CCD支架和测速电机支架的设计、舵机的安装,以及车模底盘参数的调节。

2.1.1CCD支架

CCD支架的作用是合理的安装和固定好摄像头的位置,为了保证获得稳定的视频图像信息,支架必须有足够的强度和刚度,且尽量轻较好。

安装的高度和角度在调试过程中可以根据需要选择最合适的值。

本文中CCD支架如图2.1。

图2.1CCD支架

2.1.2测速发电机支架

由于本文是采用测速发电机实现对驱动电机转速的检测,所以需要考虑测速发电机的安装和固定等问题。

通过齿轮传动的方式将测速电机上小齿轮与差速齿轮啮合,并且改变传动比,让测速电机和驱动电机等速。

测速发电机支架如图2.2。

图2.2测速发电机支架

2.1.3舵机安装

舵机响应速度是整车过弯速度的一个瓶颈。

为了加快车轮转向速度,我们设计并安装了舵机转向机构。

在并非改变舵机本身结构的条件下,改变了舵机的安装位置,而安装高度的最佳值是通过试验获得的。

舵机支架如图2.3。

图2.3舵机支架

2.1.4车模参数调节

根据汽车理论对底盘参数进行了调节,具体包括车模前后轴的高度、差速齿轮的松紧和主销的角度等。

2.2硬件电路设计

除了大赛提供的MC9S12DG128开发板以外,硬件电路主要分为四部分:

CCD传感器部分;MC9S12DG128开发板扩展板部分;电机驱动部分。

电源电路

2.2.1电源电路

硬件电路的主电源由7.2V的蓄电池提供,而由于电路中不同模块的工作电压和电流容量各不相同,因此需要将电池电压转换成各个模块所需电压。

CCD图像传感器是采用12V工作电源,该电压由MC34063提供。

MC34063芯片转换效率高,升压的范围也比较广,所需的外围器件也较少,最大能够提供1.5A的电流,足够CCD使用。

电路原理如图2.4。

图2.4MC34063升压斩波电路

S12最小系统板等数字电路需要稳定5V电源,选用了LM2596作为稳压芯片。

当输入大于7V时,输出电压稳定在5V上。

当输入电压小于7V时,输出电压比输入电压低2V。

本系统的电池电压为7.2V,而控制系统要求输入电压范围为5±0.5V。

所以,即使电池电压下降到6.5V,系统依然可以继续工作。

而且该芯片最大的优点就是转换效率高,线形度好。

电路如图2.5所示。

图2.5LM2596稳压电路

2.2.2视频图像电路

图像采集器件使用的是模拟输出的CCD传感器,主要采用同步分离芯片LM1881,电路原理图如图2.6所示。

将视频信号通过一个电容接至LM1881的2脚,即可得到控制单片机进行A/D采集的控制信号:

一行同步BURST与奇偶场同步信号O/E。

需要注意的是,CSO信号中的上升沿表示一行视频信号的开始,而BURST信号中的下降沿也表示一行视频信号的开始,由于S12的IRQ输入端只支持低电平触发和下降沿触发,因此,应该使用BUSRT信号作为行同步信号。

图2.6LM1881视频同步分离电路

因此控制器视频采集的过程就是,将模拟信号转换为数字量,提供给控制程序使用。

由于一行视频信息输出的周期只有约60微秒,如果使用S12内部的AD模块,时间是非常紧张的,一行的图像信息中能采集到的像素数会非常有限,因此图像信息的精度会降低,也就会影响最终的识别和控制。

为此,我们对这一部分也做了精心的设计:

采集高速AD芯片,由外部晶振控制其采集、转换的时间间隔,在约60微秒的行周期内采集两百多个像素点。

大大提高了图像的精细度,为软件上的准确识别工作打下了很好的基础。

以这样快的采集速度得到的图像信息,如果采用中断的方式进行读取,CPU将会非常频繁的进入中断,必然会影响其控制算法程序的正常运行。

为解决这一矛盾,我们使用外部扩展存储器的方式解决这个问题。

在电路设计中,我们扩展了一个线性的存储器,该存储器的数据输出连接到S12的外部扩展数据口,使S12工作在外部扩展模式。

线性存储器的读写控制由S12输出的一个控制信号即可完成。

经过这样的处理,整个图像采集的工作基本上已由硬件完成,MCU所做的工作只是在需要采集的行信号即将到来前,控制存储器完成信号数据的存储,存完这一行之后,控制存储器将数据输出,读出的操作只需申请一个外部变量,连续对其进行读操作即可。

2.2.3电机控制电路

电机控制从控制方法上可以分为开环控制和闭环控制两种。

开环控制在用法上比较简单,只需考虑输出,不需要反馈信号,使用上比较简单,但是其缺点是速度控制的精度比较低,不能适应不同的赛道环境。

另外一种为闭环控制,电机的速度控制信号输出由需要的速度和电机的实际转速二者决定,即需要对电机的实际转速进行采集和反馈。

这种做法的好处是控制精度比较高,对赛道的适应性会好很多。

通常情况下的电机转速的闭环控制,是通过软件的自动控制算法实现的,需要将电机的转速反馈给S12,通过软件上的自动控制算法,由需要的速度同实际的速度的偏差,给出纠正值,达到对速度的稳定控制。

但是这样一来将会增加S12的负担。

而我们的智能车利用CCD进行识别,使微控制器更多的关注图像的采集及处理是我们设计时一直注意的问题。

因此我们在电机驱动电路上下了很大的功夫,最终确定了一种硬件的闭环控制方案。

这种方案使用了测速发电机完成电机速度信号的采集。

测速发电机输出的电压大小表征了电机的实际转速。

这一电压同S12输出的PWM信号的积分值进行比较,由它们的偏差控制电机该加速还是减速。

在电机驱动上,我们用MOS管作为分立元件搭建了H桥驱动电路,如图2.7所示。

通过逻辑设计,可以让电机处于多种模式下工作,经过在赛道上对赛车进行试验,电机的加减速效果很好,完全可以满足赛车对不同赛道加减速的要求。

图2.7H桥电机驱动电路

表2.1电机工作模式

模式(nENABLE=0):

HIN1

nLIN1

HIN2

nLIN2

0,自由正转模式

1,自由反转模式

2,带制动的正转模式

3,带制动的反转模式

4,双极驱动的正转模式

5,双极驱动的反转模式

6,全速前进

7,停止(刹车)

nENABLE=1:

PWM

L

PWM

nPWM

PWM

nPWM

H

L

L

H

nPWM

PWM

nPWM

PWM

nPWM

H

L

H

L

H

L

H

nPWM

PWM

L

L

L

L

H

L

H

nPWM

PWM

L

L

H

2.3创新点

这部分的创新点主要有以下三部分:

✓对舵机进行抬高等方面的机械改进,为智能车高效行进,灵活转向提供保证,并在实际运行中也得了证明。

✓CCD图像处理电路,可获得高分辨率图像信息,为控制算法提供有力支撑。

✓使用测速发电机的驱动电机硬件电路,工作稳定且解决了散热问题;双极性驱动模式,大大缩短了智能车加减速的时间。

2.4小结

在硬件设计方面,我们尽量做到可靠、高效,这样才能为整个系统提供一个良好的平台。

第三章智能车软件设计

3.1CCD控制算法仿真平台

循线智能车作为一个自动控制系统,其数学模型较难建立,而用赛车反复试验各种方法则较费时间与资源。

为了寻找更好的控制规律,我们针对路径优化问题编写了一个仿真调试平台,以期有所帮助。

在不发生侧滑的情况下,智能车有着确定的运动规律。

虽然真实情况下在车速较高时经常发生滑动,但路径优化的最终目标是在不发生侧滑的情况下达到最大车速。

因此,只考虑运动学规律而不考虑动力学因素的影响进行仿真对路径优化的研究还是有重要意义的。

另外,在仿真平台上进行参数调整可以积累经验,对实车调试也有很大帮助。

我们使用了与真实赛车,赛道相同的仿真模型进行仿真实验,通过对比实验表明,在相同的控制规律下,实车较低速运动的路径与仿真路径吻合很好。

3.1.1仿真平台的搭建

图3.1智能车路径仿真平台

为了能够较为方便地研究各种不同的控制规律下智能车运动的路径,我们使用VC++6.0编写了路径仿真平台。

其界面如图3.1所示。

软件由以下几部分构成:

智能车模块,CCD图像获取与处理模块,控制器模块,赛道绘制模块。

●智能车模块

该模块完成小车的运动与显示。

并根据当前的车速与前轮转向角,按照车辆运动规律时时计算下一时刻车体的位置与姿态,并显示在屏幕上。

智能车的几何尺寸以及CCD的视野范围可以方便地进行设定,如图3.2所示。

3.2设定车体尺寸与CCD参数

●CCD图像获取与处理模块

根据车体当前所处的位置与姿态,实时获取设定CCD视野范围内的赛道图像并放入预先开辟的内存缓冲区中,供后续图像处理使用。

同时将图像显示在屏幕中央,以方便人们分析。

这里获取的图像是没有经过透视变换的正常图像,可以直接模拟实际图像经校正后的效果。

CCD模块还负责对图像进行处理并找到一系列赛道点参数放入一个数组中备用。

这里的图像是黑白二值化且无干扰点的图像,可以使用较为简单的搜索算法。

●控制器模块

控制器模块负责对赛道信息进行处理并得到当前智能车的前轮转向角输出至智能车模块。

控制器模块面对的是与真实赛车相同的路径信息,可以与单片机共用相同的程序,有较好的通用性。

我们可以方便地试验各种控制规律,然后移植入单片机运行。

●赛道绘制模块

赛道绘制模块时时将赛道绘制在屏幕上。

目前只能通过修改程序绘制不同的赛道,以后可以考虑发展更加方便的方法。

3.1.2控制规律研究

使用单排光电传感器可以得到智能车前方一定距离的一行赛道位置信息。

将这一行位置信息乘以比例系数作为舵机转角是智能车最常见的控制规律。

影响这种方案成绩的一个重要因素是传感器的前瞻距离。

为研究使用一行赛道信息进行比例控制的效果,我们首先设定相同的比例系数,采用不同的前瞻距离进行控制。

前瞻10cm时,采用恰当的比例系数可以使两前轮中点处路径与赛道基本重合,见图3.3。

图3.3前瞻10cm时的路径

在相同的比例系数下,20cm的前瞻距离可以使智能车运动路径较赛道有一定的提前量,且具有了一定的“抄内道”效果,见图3.4。

图3.4前瞻20cm时的路径

30cm的前瞻距离可以使智能车运动路径较赛道有较大的提前量,有明显的“抄内道”效果,见图3.5。

图3.5前瞻30cm时的路径

因此可以得出结论,对于单排光电传感器方案的智能车,前瞻可以使路径提前量增大,不易丢失目标,对克服舵机延迟,提高过弯速度有很大帮助。

3.2软件调试平台介绍

赛车在调试过程中会经常改变一些参数,为了使整个调试过程灵活、可靠,我们开发了一套基于PC机的无线调试系统,并实现了在该软件下直接编写控制算法调试的目的。

我们用C++builder开发了PC机的控制界面,如下图3.6所示:

图3.6调试软件

采用无线数据传输的方式,还可以在智能汽车运行的过程对其进行实时控制和信息采集。

我们的调试平台可以做到,实时将图像传感器的状态发送到PC机,同时通过PC机,我们可以实时对智能车进行控制。

如图3.7所示,对图像进行分析和标定。

图3.6图像标定分析

3.3创新点

✓安装无线收发模块在运行过程中,实时地监控状态信息,实现对赛车的控制,并且实现算法的移植。

✓我们的智能车仿真调试平台很好地模拟了装有CCD的赛车运行时的实际情况,大大方便了算法的设计与调试工作。

调试平台可以工作在手动与自动两种模式下。

自动模式用于时时仿真,以检验控制算法的效果;手动模式允许用户手工操作键盘控制赛车行进,这样可以更好地分析各种情况,以提出更有效的控制方法。

3.4小结

在调试平台的帮助下,我们设计好控制方法之后就可以先利用它进行调试,以发现存在的不足,提出改进方法,大大方便了调试工作。

第四章控制算法的研究

4.1智能车控制思想

首先由CCD器件采集图像信息,然后通过图像处理、模式识别,得出赛道的具体参数,如果为直道,则高速行驶;如果为必须转弯的弯路,就提前做好转弯准备,按照计算的舵机偏角和车速运行;如果该弯路存在“捷径”,就按照计算结果,直接进行“捷径”运行。

4.2图像处理与赛道识别

针对智能车CCD透视变换问题建立了数学模型,能够准确地将图像中的引导线坐标转换为真实位置。

并且提出了基于曲率分析的赛道类型识别方法,能够较为准确地判别前方赛道类型。

详见附录B面阵CCD图像处理与赛道识别研究

4.3智能车系统软件

4.3.1智能车系统软件设计思想

为了便于软件的编写、修改、调试,在软件设计中,采用了层次化、模块化、结构化和参数化设计技术。

(1)层次化

采用层次化设计是本系统设计软件的一大特点。

我们把程序分为两大层面,即物理层和应用层。

这样做的好处是为了便于程序调试和移植,同时也增加了程序的可读性和可维护性。

有了物理层后,我们就可以将在PC机上模拟的应用层的程序无需改动地直接移植到单片机上运行。

(2)模块化设计

采用模块化设计是为了便于系统的移植和维护,避免代码的重复,从而节省数据的存储空间。

(3)结构化编成

采用结构化的编程方法使得程序结构清晰、逻辑性强、便于设计修改,并符合了自顶向下的程序设计规测。

(4)参数化

为使软件能适应各种控制单元、硬件配置、运行环境等方面的具体要求,系统采用了参数化设计,注重于数据结构和其上进行的操作,这样有助于增强整个运行软件的灵活性和适应性。

本系统的软件设计采取了自顶而下,逐步细化的设计方法。

首先,按程序结构化的设计思想设计主程序结构,其次设计中断服务程序,然后再按功能模块化思想设计各个子程序,并逐步细化各功能模块,同时不断完善中断服务程序和主程序,最后完成所有软件的设计。

C语言是一种面向微处理器的结构化程序设计语言。

它除了具有程序设计快、可读性好、易于维护和扩充等一般结构化程序设计语言所具有的优点外,还能够直接面向微处理器的内部结构,所以用于应用系统开发可以得到一种不同于传统的用汇编语言编程的开发方式,能够极大地提高应用系统得开发效率。

因此我们采用了C语言编写该系统的软件。

4.3.2软件构成

(1)主程序

主程序为一个顺序执行的无限循环的程序。

主程序首先对系统硬件和系统各变量进行初始化。

先关中断,设置MCU工作频率和各个外设的状态,初始化各端口,控制算法初始化,然后开中断,最后程序进入主循环。

主程序流程图如下:

图4.1主程序流程图

(2)功能子程序

功能子程序主要包括物理层功能子程序和应用层功能子程序。

物理层功能子程序主要是完成物理层的驱动,主要包括:

定时器设置子程序,IIC总线设置子程序,电机驱动子程序、电机调速子程序、舵机转向子程序、按键检测子程序、串口配置及发送子程序、CCD数据读取子程序、EEROM读写自程序。

应用层功能子程序主要分为调试用功能子程序和算法控制功能子程序。

(3)中断服务子程序

本系统中只有两个中断服务子程序,即串口收中断服务子程序、定时器服务子程序。

为了能解析从串口发来的命令,我们自定了命令协议,并编写了命令解析的状态机程序。

4.4创新点

采用层次化设计是本系统设计软件的一大特点。

我们把程序分为两大层,即物理层和应用层。

这样做的好处是为了便于程序调试和移植,同时也增加了程序的可读性和可维护性。

有了物理层后,我们就可以将在PC机上模拟的应用层的程序无需改动地直接移植到单片机上。

4.5小结

在软件设计中,采用了层次化、模块化、结构化和参数化设计技术,使我们的程序具有高度的可读性和可移植性,更便于修改和维护。

在赛道图像信息处理方面我们利用了图像处理和模式识别的一些关键技术,很好的实现了赛道识别。

第五章总结

5.1智能汽车技术指标

模型车的主要技术参数说明:

1、改造后的车模总体重量为1.3kg;长度为280mm;宽度为170mm;高度为255mm。

2、电路功耗15W,所有电容总容量1880uF。

3、传感器种类以及个数:

加速度传感器1个;

测速传感器1个;

CCD传感器1个;

4、除了车模原有的驱动电机、舵机之外伺服电机个数为0。

5、赛道信息检测精度为1mm,频率为50Hz。

5.2目前尚存在的不足与改进方向

目前我们采用的CCD图像算法稳定性需要进一步提高,对经过图像处理后的数据,控制算法比较简单,通过实际赛道调试可以改进更加完善。

通过优化代码,减少控制算法消耗的系统时间,继续寻找一个稳定可靠的CCD控制算法。

最终我们可以根据具体赛道情况采用最为合适的方案,这样就保证了我们在参赛中可以发挥自己的最好成绩。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2