ImageVerifierCode 换一换
格式:DOCX , 页数:79 ,大小:1.40MB ,
资源ID:9389353      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9389353.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(安徽赛区摄像头组合肥工业大学斛兵一队技术报告.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

安徽赛区摄像头组合肥工业大学斛兵一队技术报告.docx

1、安徽赛区摄像头组合肥工业大学斛兵一队技术报告第九届“飞思卡尔”杯全国大学生智能汽车竞赛技 术 报 告 学 校:合肥工业大学队伍名称:斛兵1队参赛队员: 徐悦 梁国俭 刘硕带队教师: 张阳 李红莉关于技术报告和研究论文使用授权的说明本人完全了解第九届“飞思卡尔”杯全国大学生智能汽车邀请赛关于保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。 参赛队员签名: 带队教师签名: 日 期: 摘 要本技术报告以第九届飞思卡尔杯全国大

2、学生智能车竞赛为背景,详细介绍 了基于数字摄像头为传感器的自主寻迹智能车设计。在研究了往届“飞思卡尔” 智能车设计方案的基础上,提出了直立智能车设计方案。本文首先讲述了系统 硬件设计,其中包括系统主板设计,电机驱动电路板设计等。在硬件设计的基 础上,本文介绍了系统软件设计及算法,并且对比了位置式与增量式PID的区别。最终,通过系统调试,验证系统可以达到预期设计要求。关键字:飞思卡尔 自主寻迹 直立智能车 数字摄像头 PID AbstractIn the background of the “Freescale” Cup National University Smartcar Competit

3、ion, this paper gives an account of the design of intelligent car, which is based on digital camera. By studying previous designs of intelligent cars, the paper puts forward the method which can extract the information of smart car. The paper firstly elaborates the hardware system, which includes th

4、e system board design, the motor driver module, and so on. Then the paper introduces the design of software system, which includes module testing, follow controller algorithm,distinguish the two differernt algorithm. Finally, the whole system meets the expectative requirement. Keywords : Freescale,

5、Auto-tracing, Smart car, digital camera PID 第一章 引 言1.1比赛背景智能车是一种高新技术密集型的新型汽车,它涵盖的范围广泛包括模式识别、 传感器技术、自动化控制实现、电力电子技术、计算机技术等多个领域。在国际上已经形成智能汽车研究、设计、开发、竞赛的热潮。在我国,教育部为了加强大学生实践、创新能力和团队合作精神的培养,委托教育部高等学校自动化专业教学指导分委员会主办了每年一度的全国大学生智能汽车竞赛。全国大学生智能汽车竞赛是在竞赛组委会提供的统一汽车模型平台上,使用飞思卡尔半导体公司的 8 位、16 位微控制器作为核心控制模块,通过设计道路识别传

6、感器和电机驱动电路、编写相应软件及装配模型车,制作一个能够自主识别道路的模型汽车,按照规定路线(路线赛前未知)行进,以完成时间最短者为优胜。智能车竞赛目前已经发展有摄像头、光电组和电磁组三个组别比赛,赛车速 度与比赛质量也越来越高,竞争更是日趋激烈。1.2 总体方案介绍本智能控制系统由传感器、信息处理、控制算法、执行机构、速度反馈 五个部分组成。其中,以单片机为核心,配有传感器、测速电路,执行机构以及它们的驱动电路构成了控制系统的硬件;信息处理与控制算法由运行在单片机中的控制软件完成。在检测方面,系统是以OV7725数字摄像头作为传感器进行路径识别,使用模拟的陀螺仪和加速度计采集车模角度和角速

7、度信息。控制方面系统重点研究在保证智能车直立稳定行驶的前提下,提高系统的响应速度。同时需要处理传感器获得信号,滤除干扰,提高系统可靠性。此外,机械结构的调整是保证智能车系统能够稳定可靠运行的前提。因此,机械结构的调校是至关重要的,机械结构调整的原则是:减少质量,降低重心,防止转向侧滑。1.3 本文结构本文共分为五章。第一章主要是介绍了比赛的背景及智能车系统总体方案的 介绍;第二章从智能车系统的机械结构出发,详细阐述了智能车系统各部分机 械结构的安装和调整;第三章重点介绍了系统中所涉及的硬件设计方案和原理; 第四章是介绍了智能系统的软件算法;第五章则对智能车部分模块的调试仿真 做出相关的介绍;第

8、六章对智能车的技术参数作简要说明。第七章简述智能车 制作过程中得出的结论。第二章 机械结构部分的设计及调整智能车的机械结构在赛车速度快慢上起着重要作用,要想提高智能车的速度,只有将机械结构与控制算法同时做好。总体来说,智能车的重心要尽可能低,以减小智能车在过弯的时侧翻的可能性,摄像头的支架在保证前瞻的情况下不能太高,需要在运行过程中保证智能车的稳定性,在此基础上,简化布局,使智能车外观简洁。下面将具体阐述本智能车的机械结构的设计及调整。整车外观如图所示:图 2.0.1 智能车总体图2.1 摄像头 的安装 摄像头安装应保证足够的前瞻(前瞻过近会影响提速,过远容易误判赛道), 通过实验,我们将前瞻

9、固定到120CM,盲区在18CM,有效视野范围1M左右。我们选择碳纤维管作为摄像头的支架,该材料质量轻、硬度高。在平时的调试过程中,为防止意外撞击导致摄像头损坏,我们安装了保护杆;并且在摄像头模块电路板与支架之间用两根杆子形成三角支架,以提高稳定性。摄像头安装效果如图2.1.1所示图2.1.1摄像头安装图2.2 加速度计和陀螺仪模块的安装本智能车采用模拟加速度计和陀螺仪,该模块包括一个三轴加速度计、一个水平方向陀螺仪及一个竖直方向陀螺仪。该模块安装位置与其使用性能密切相关,故安装时应注意:竖直陀螺仪旋转中心应在智能车车轮轴心线处,转向陀螺仪应与车轮轴心线平行,且两个陀螺仪应在车身中心线处。同时

10、模块安装不宜过高,过高会放大噪声,使采样得到的数据不准确。且加速度计输出值转化为角度的过程本身是一个近似过程,前提是加速度计位置比较低,可以被忽略。但是陀螺仪位置不能放太低,我们曾尝试把该模块放在两个电机中间,由于电机运行时产生的抖动很难消除,对陀螺仪产生干扰。在保证获得数据准确可靠的前提下,我们选择将该模块安装在智能车中部。 2.3 测速传感器的安装我们选择了欧姆龙500线光电编码器作为测速传感器,安装时过紧会增大智能车的行驶阻力,过松会导致滑齿,计数不准。经过验证,E车模的编码器齿轮与车轮齿轮属于一级啮合,安装时相比于D车模更容易出现滑齿现象,这可能是E车模相比于D车模比较难调校之处。安装

11、时综合考虑了齿轮啮合和摩擦的影响。2.4 电路板的安装为了提高智能车的稳定性,我们将电机驱动与主板分开,主板放在编码器和电机支架上侧,电机驱动板放在车身底板后侧。整个装调过程遵循质量最大集中原则,尽可能减小两个电机和两个编码器之间的空隙。2.5重心调整降低智能车重心,直接效果是有利于减小过弯侧翻。其中电池对整辆车重心和质量的影响很大,我们将电池安装在尽可能低的位置。前期试验都是在D车模上进行,如图2.5.1,这是平衡车最经典的安装方式,存在一定缺陷,车模在这种方式下由于是直立运行,受到阻力较大,且电路板和摄像头等器件安装的位置较高,重心相对较高。在试验后期我们采用倾斜的安装方式加以改善。虽然我

12、们最终采用第二种方案,但是对于两种方案,我们没有做精确对比。方式二也存在如下隐患:今年坡道角度最高达20度,限制电池离车身底板及其附属物不超过3CM,这意味着倒着跑电池位置不能放太低,也不能太远离车身。电池位置若调整不好很可能比方式一还高,重心可能更高。如图2.5.2 图2.5.1 D车机械安装方式图2.5.2 E车机械安装方式第三章 硬件电路设计说明3.1 硬件设计概述本智能车采用 MK60 作为主核心。需要 3.3V ,12 V及 5V 供电。系统还包括:编码器接口、通讯接口、液晶接口、拨码开关、陀螺仪加速度计接口、电机驱动接口和摄像头接口。调试时采用串口收发数据。下面将针对每一部分做具体

13、论述。3.2 传感器模块3.2.1 摄像头模块(1)摄像头工作原理 摄像头以隔行扫描的方式采样图像,当扫描到某点时,就通过图像传感芯片将该点处图像的灰度转换成与灰度对应的电压值,然后将此电压值通过视频信号端输出。如图3.2.1 所示,摄像头连续地扫描图像上的一行,就输出一段连续的视频信号,该电压信号的高低起伏正反映了该行图像的灰度变化情况。当扫 描完一行,视频信号端就输出一个低于最低视频信号电压的电平(如0.3 V),并 保持一段时间。这样相当于紧接着每行图像对应的电压信号之后会有一个电压“凹槽”,此“凹槽”叫做行同步脉冲,它是扫描换行的标志。然后扫描新的一行,如此下去,直到扫描完该场的信号,

14、接着会出现一段场消隐信号。其中有若干个复合消隐脉冲(简称消隐脉冲),在这些消隐脉冲中,有一个消隐脉冲远宽于其他的消隐脉冲(即该消隐脉冲的持续时间远长于其他的消隐脉冲的持续时间),该消隐脉冲又称为场同步脉冲,标志着新的一场的到来。摄像头每秒扫描25 帧图像,每帧又分奇、偶两场,故每秒扫描50 场图像。 图 3.2.1 摄像头工作原理图(2)摄像头对比我们主要对OV5116,SONY CCD,鹰眼三款摄像头进行性能对比。OV5116和SONY CCD属于模拟摄像头,需要后续较为复杂的处理电路。对比上一届的SONY CCD,它的质量是三种摄像头中最重的,这在机械上与平衡车的要求不符。OV5116的内

15、部芯片已经停产,目前市面上流通的多为翻新产品,良品率不确定,我们曾尝试用高速AD电路为其后续处理,但是其对光线要求很高,存在明显短板。相比之下,我们选择野火公司生产的以OV7725为基础的鹰眼摄像头。这是一款数字摄像头,在模块电路板上直接集成硬件二值化电路,输出的二值化图像十分清晰,噪声较少。 (2) 像素输出顺序数字摄像头输出图像时,一般都是从左到右,有上到下逐个输出(部分芯片可配置输出顺序): 图3.2.2 像素输出顺序有些摄像头有奇偶场,是采用隔行扫描方法,把一帧图象分为奇数场和偶数场两场。(ov7725没有奇偶场之分) 图3.2.3 行中断时序图3.2.4 场中断时序3.2.2陀螺仪和

16、加速度传感器模块 陀螺仪与加速度计模块为直接购买的成品集成模块,上面集成了水平和竖直陀螺仪ENC-03和加速度计MMA7361.单片机对其进行AD采样,进行软件滤波后得到角度和角速度,用它们来控制小车的直立 图3.2.5 加速度计陀螺仪集成模块3.2.3 速度采集传感器速度采集使用欧姆龙500线光电编码器。增量式编码器是直接利用光电转换原理输出三组方波脉冲A、B和Z相;A、B两组脉冲相位差90,从而可方便地判断出旋转方向.我们将这些脉冲信号连接到单片机的计数器端口,通过单片机的正交解码功能可获得车模的转速以及转向。3.3 电机驱动模块电机驱动电路板为一个由分立元件制作的直流电动机可逆双极型桥式

17、驱动器,其功率元件由四个N 沟道功率 MOSFET 管组成,额定工作电流可以轻易达到100A 以上,大大提高了电动机的工作转矩和转速。由于E车电机为双电机,所以,我们用两路相同的驱动器分别驱动两个电机。该驱动器主要由以下部分组成:PWM 信号输入接口、逻辑换向电路、死区控制电路、电源电路、上桥臂功率 MOSFET 管栅极驱动电压泵升电路、功率 MOSFET 管栅极驱动电路、桥式功率驱动电路、缓冲保护电路等,电路如图3.2所示。电路中肖特基二极管IN5819保证了电平VB_1、VB_2低于12V,VB_1高于MOTOR_A,VB_2高于MOTOR_B。 电路如下图示,首先使能端为高时,驱动桥这时

18、才会起作用。PWM0为某一占空比,PWM1为低时,使得IR2104驱动输出分别为低电平和相应的电压值。驱动桥电路左边上方IRLR7843与右边下侧的IRLR7843导通,另外的两个MOS管不导通,此时电机正转。因此,一个电机是由两路PWM控制,显然当PWM输出状态与上述相反则为反转。转速的大小取决于占空比的大小。图 3.3.1驱动电路原理3.4 电源模块智能车电池提供的是7.2V的电压。为了使智能车正常工作,需要将7.2V的电压转化为3.3V和5V的电压。智能车系统用的5V稳压芯片是LM2940和LT1086 。LM2940可以提供较大的稳压电流,具有较好的稳压性能,且纹波电压较小。陀螺仪、编

19、码器需要5V供电,为减少单片电源芯片的功耗,避免编码器等影响主控芯片工作,本设计采用了一片LM2940和一片LT1086分别为主控芯片和其他需要5V的模块供电。鹰眼和液晶采用AMS1117_3.3V供电,如果直接让电池电压通过AMS1117_3.3V芯片转化为3.3V,容易使芯片发热,故我们先将电池电压转化为5V,再转化为3.3V.稳压芯片供电,其原理图如下图所示:AMS1117_3.3V稳压电路如图3.4.1所示图3.4.1 3.3V电源5V LM2940稳压电路如图3.4.2所示图3.4.2 LM29405V LT1086稳压电路如图3.4.3所示图3.4.3 LT108612V MC34

20、063升压电路如图3.4.4所示图 3.4.4 MC34063第四章 算法实现及软件设计车模是否能够正常高速稳定运行,除了硬件系统外,软件系统的设计也很重要。整个软件系统主要由三部分构成:直立控制、速度控制及转向控制。控制算法均基于负反馈理论。4.1 整体算法说明软件控制程序主要用到K60中的PIT 模块、PWM 模块、AD模块、SCI模块、FTM模块,GPIO模块等。PIT模块用于设置定时中断;PWM 模块用于控制电机的运转,AD模块用于读取加速度计,陀螺仪的数据信息,SCI模块用于串口调试,FTM模块用于编码器数据采集。我们图像采集使用K60的DMA模块进行采集,主函数按普通的处理方法,在

21、主循环里:采集图像,图像处理,然后把处理结果存放在全局参数里。PIT定时执行直立控制:采集模块参数,然后直立控制,根据图像处理的全局参数来进行速度控制和方向控制。主循环:图像采集与处理 写 全局参数读直立控制的速度控制和方向控制。图 4.1.1 主程序流程图图4.1.2 图像处理流程图4.2 PID 控制算法介绍 在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其

22、它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用 PID 控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用 PID 控制技术。PID控制,实际中也有 PI和PD控制。 PID 控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称 PID 控制器,原理框图如图 4.2.1所示。 图4.2.1 PID控制器原理框图在计算机控制系统中,使用的是数字PID控制器,控制规律为: 公式1公式2式中 k采样序号,k = 0

23、,1,2; r(k)第k次给定值; c(k)第k 次实际输出值; u(k) 第k次输出控制量; e(k) 第 k次偏差; e(k-1) 第k-1次偏差; KP比例系数; TI积分时间常数; TD微分时间常数; T采样周期。 简单说来,PID 控制器各校正环节的作用如下: 比例环节:及时成比例地反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差。积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强。 微分环节:能反映偏差信号的变化趋势(变化速率),并能在该偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而

24、加快系统的动作速度减小调节时间。 数字 PID控制算法通常分为位置式 PID控制算法和增量式 PID控制算法。4.2.1位置式PID 位置式PID中,由于计算机输出的u(k)直接去控制执行机构(如阀门),u(k)的值和执行机构的位置(如阀门开度)是一一对应的,所以通常称公式2为位置式PID控制算法。位置式 PID 控制算法的缺点是:由于全量输出,所以每次输出均与过去的状态有关,计算时要对过去e(k)进行累加,计算机工作量大;而且因为计算机输出的u(k)对应的是执行机构的实际位置,如计算机出现故障,u(k)的大幅度变化,会引起执行机构位置的大幅度变化,这种情况往往是生产实践中不允许的,在某些场合

25、,还可能造成严重的生产事故。因而产生了增量式 PID 控制的控制算法,所谓增量式PID是指数字控制器的输出只是控制量的增量u(k)。4.2.2增量式PID 当执行机构需要的是控制量的增量(例如:驱动步进电机)时,可由式2推导出提供增量的 PID 控制算式。由式2可以推出式3,式2减去式3公式3 公式4公式4称为增量式PID控制算法,可以看出由于一般计算机控制系统采用恒定的采样周期T,一旦确定了KP、TI、TD,只要使用前后三次测量值的偏差,即可由式4求出控制增量。 增量式 PID 具有以下优点: (1) 由于计算机输出增量,所以误动作时影响小,必要时可用逻辑判断的方法关掉。 (2) 手动/自动

26、切换时冲击小,便于实现无扰动切换。此外,当计算机发生故障时,由于输出通道或执行装置具有信号的锁存作用,故能保持原值。 (3) 算式中不需要累加。控制增量u(k)的确定仅与最近 k 次的采样值有关,所以较容易通过加权处理而获得比较好的控制效果。 但增量式 PID 也有其不足之处:积分截断效应大,有静态误差;溢出的影响大。使用时,常选择带死区、积分分离等改进PID控制算法。4.3.3 PID参数整定 运用 PID 控制的关键是调整 KP、KI、KD 三个参数,即参数整定。PID参数的整定方法有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数;二是工程整定方法,它主

27、要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。由于智能车系统是机电高耦合的分布式系统,并且要考虑赛道的具体环境,要建立精确的智能车运动控制数学模型有一定难度,而且我们对车身机械结构经常进行修正,模型参数变化较为频繁,理论计算整定法可操作性不强,最终我们采用了工程整定方法。4.2 直立控制这部分是软件设计中最基础也是最难的一个部分,直立控制做得好,小车的速度和方向控制才更容易实现。智能车直立控制通过 PD 控制实现,将智能车简化为倒立摆,增加额外受力,使得恢复力与位移方向相反。4.2.1 直立模型分析图4.2.1 倒立摆受力分析F = mgsin-ma

28、cos 公式5只要轮子运动的加速度 ag,就可以产生回复力,来保持车模的直立。当然回复力越大,对于保持直立越好,但是太大也会导致系统振荡,当系统发生振荡时,可以加入一定的阻尼力来消除振荡,这就可以通过倒立摆的角速度分量来控制摆的平衡。4.2.2 直立控制算法说明直立控制采用PD控制实现。单片机采集陀螺仪和加速度的值后进行归一化处理,使用卡尔曼进行滤波,得到车模的角度和角速度。MMA7361 = adc_once(ZOUT, ADC_12bit); ENC03 = adc_once(Gyro2,ADC_12bit); Gyro_Now = (GYRO_VAL - ENC03 ) * Gyro_r

29、atio; angle_offset_vertical = (MMA7361_vertical - MMA7361)*MMA7361_ratio;Kalman_Filter(angle_offset_vertical,Gyro_Now);g_fAngControlOut = (angle-car_set_angle) * P_ANGLE + angle_dot * D_ANGLE ;4.3 速度控制4.3.1 速度控制理论分析 通常情况下速度控制部分由光电编码器把轮子的速度反馈回来,然后通过负反馈机制做一个PID控制器就可以控制速度,但是在直立小车系统里的速度控制就不是那么简单了,它看起来是一

30、个正反馈的机制。当需要车模加速时,并不是通常意义上加大给电机的电压让轮子加速,速度控制反而是让电机减速,这样车模就会往前倾,这时角度控制就会与速度控制相抗衡来达到一个平衡,但是这时车模会持续向前加速,因为车模往前有一个倾角就会有往前倒的角加速度,为了保持角度轮子也必须有一个向前的加速度,这样车模就可实现加速了。要实现减速则要让车模向后仰就可以了。图4.3.1 速度控制框图4.3.2 速度PID控制速度控制采用的是增量PID控制,我们只采用 PI控制,积分控制能使速度最终稳定在给定速度,比例控制能实现速度的快速调节。由于直立车的速度控制实际是改变车模倾角,因此速度控制对于直立控制是一种扰动,速度

31、控制周期不能过大,控制量要平滑输出。 void PIT1_IRQHandler(void) PIT_Flag_Clear(PIT1); Car_speed=0;/车模速度清零 L_speed= -FTM_QUAD_get(FTM1); FTM_QUAD_clean(FTM1); R_speed= FTM_QUAD_get(FTM2); FTM_QUAD_clean(FTM2); Car_speed=(L_speed+R_speed)/2; Error_Speed = g_Speedgoal - Car_speed; SpeedValuePID =P_SPEED*(Error_Speed - PreError_Speed) +I_SPEED*Error_Speed + D_SPEED*(Error_Speed - 2*PreError_Speed + EarError_Speed); EarError_Speed = PreError_Speed; PreError_Speed = Error_Speed; g_fSpeedControlOut += Sp

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

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