安徽赛区摄像头组陆军军官学院小龙号技术报告.docx
- 文档编号:16101147
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:29
- 大小:786.69KB
安徽赛区摄像头组陆军军官学院小龙号技术报告.docx
《安徽赛区摄像头组陆军军官学院小龙号技术报告.docx》由会员分享,可在线阅读,更多相关《安徽赛区摄像头组陆军军官学院小龙号技术报告.docx(29页珍藏版)》请在冰点文库上搜索。
安徽赛区摄像头组陆军军官学院小龙号技术报告
第九届“飞思卡尔”杯全国大学生
智能汽车竞赛技术报告
学校:
陆军军官学院
队伍名称:
小龙号
参赛队员:
陈荣
钟小龙
齐圣贤
带队教师:
黄峣尹春雷
关于技术报告和研究论文使用授权的说明
本人完全了解第九届“飞思卡尔”杯全国大学生智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:
参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。
参赛队员签名:
带队教师签名:
日期:
第一章引言
随着科学技术的不断发展进步,智能控制的应用越来越广泛,几乎渗透到所有领域。
智能车技术依托于智能控制,前景广阔且发展迅速。
目前,掌握着汽车工业关键技术的发达国家已经开发了许多智能车的实验平台和商品化的车辆辅助驾驶系统。
有研究认为智能汽车作为一种全新的汽车概念和汽车产品,在不久的将来会成为汽车生产和汽车市场的主流产品。
面向大学生的智能汽车竞赛最早始于韩国,在国内,全国大学生“飞思卡尔”杯智能汽车竞赛从2006年开始已经举办了九届,包括光电组、摄像头组和电磁组三个赛题组。
在智能车系统设计中,我们把小车重要模块分为三类:
环境感知系统、自主决策系统、操作执行系统。
这三个组成部分,相互联系、相互制约,共同完成控制任务。
本技术报告对此几个方面进行了综合论证。
在此也对所参考的汽车控制、电子电路、机械构造以及往届技术报告等多方面文献资料的编纂者表示感谢。
没有你们的辛勤付出,我们也不可能在这么短的时间内完成智能车系统的设计及制作,是你们让我们站在了巨人的肩膀上,非常感谢你们的辛勤劳动与付出。
第二章整车设计
2.1整车设计思路
全国大学生智能汽车竞赛关键就是以较快的速度完成比赛,由此我们把小车重要模块分为三类:
识别系统、判断系统、操作执行系统。
识别系统,我们的该部分主要包括感知路面信息的传感器和感知车体状态的传感器。
我们选用CMOS摄像头:
获取赛道信息。
编码器:
得到车体当前速度。
判断系统,通过对单片机的编程来实现决策控制。
操作执行系统,也就是硬件系统,主要就是相应的驱动电路。
三系统相互合作,使小车以较快的速度完成比赛
2.2直立设计思路
根据比赛规则要求,维持车模直立也许可以设计出很多的方案,本参考方案假设维持车模直立、运行的动力都来自于车模的两个后车轮。
后轮转动由两个直流电机驱动。
因此从控制角度来看,车模作为一个控制对象,它的控制输入量是两个电极的转动速度。
车模运动控制任务可以分解成以下三个基本控制任务,如图2.1所示:
(1)控制车模平衡:
通过控制两个电机正反向运动保持车模直立平衡状态;
(2)控制车模速度:
通过调节车模的倾角来实现车模速度控制,实际上最后还是演变成通过控制电机的转速来实现车轮速度的控制。
(3)控制车模方向:
通过控制两个电机之间的转动差速实现车模转向控制。
图2.1
三个分解后的任务各自独立进行控制。
由于最终都是对同一个控制对象(车模的电机)进行控制,所以它们之间存在着耦合。
为了方便分析,在分析其中之一时假设其它控制对象都已经达到稳定。
比如在速度控制时,需要车模已经能够保持直立控制;在方向控制的时候,需要车模能够保持平衡和速度恒定;同样,在车模平衡控制时,也需要速度和方向控制也已经达到平稳。
这三个任务中保持车模平衡是关键。
由于车模同时受到三种控制的影响,从车模平衡控制的角度来看,其它两个控制就成为它的干扰。
因此对车模速度、方向的控制应该尽量保持平滑,以减少对于平衡控制的干扰。
以速度调节为例,需要通过改变车模平衡控制中车模倾角设定值,从而改变车模实际倾斜角度。
为了避免影响车模平衡控制,这个车模倾角的改变需要非常缓慢的进行。
车模平衡控制是通过负反馈来实现的。
因为车模有两个轮子着地[2],车体只会在轮子滚动的方向上发生倾斜。
控制轮子转动,抵消在一个维度上倾斜的趋势便可以保持车体平衡了。
如图2.2所示。
图2.2
下面对倒立车模进行简单数学建模,然后建立速度的比例微分负反馈控制,根据基本控制理论讨论车模通过闭环控制保持稳定的条件。
假设倒立车模简化成高度为L,质量为m的简单倒立摆,它放置在可以左右移动的车轮上。
假设外力干扰引起车模产生角加速度()xt。
沿着垂直于车模地盘方向进行受力分析,可以得到车模倾角与车轮运动加速度以及外力干扰加速度()at()xt之间的运动方程。
如图2.3所示。
图2.3
对应车模静止时,系统输入输出的传递函数为:
右半平面,因此车模不稳定。
车模引入比例、微分反馈之后的系统如下图所示:
图2.4加入比例微分反馈后的系统框图
这一点,需要k1>g,k2>0。
由此可以得出结论,当k1>g,k2>0时,直立车模可以稳定。
在角度反馈控制中,与角度成比例的控制量是称为比例控制;与角速度成比例的控制量称为微分控制(角速度是角度的微分)。
因此上面系数分别称为比例和微分控制参数。
其中微分参数相当于阻尼力,可以有效抑制车模震荡。
通过微分抑制控制震荡的思想在后面的速度和方向控制中也同样适用。
总结控制车模直立稳定的条件如下:
(1)能够精确测量车模倾角θ的大小和角速度θ'的大小;
(2)可以控制车轮的加速度。
2.3整车布局
智能车比赛作为竞速比赛,对智能车系统的高速性和稳定性要求都非常高,这也对智能车系统的整体组装提出非常高的要求。
因此在布局上应尽量的对称、简洁。
经过理论论证与实验测试,我们得到以下几点布局原则:
(1)车模结构微变,改变各个部位的布局,以降低重心。
(2)用轻便坚固的碳纤杆作为摄像头杆的材料。
(3)使用适当的前瞻,以便赛道的识别。
第三章机械改造
今年摄像头组比赛车模为D、E型车模并且反向行驶。
针对不同的车模、不同的规则,应该进行不同的调整。
我们对该车模进行了详细的系统分析。
E型车模原设计结构利于,因此在规则允许范围内对车模进行重新改造是很必要的提高方法。
本章将主要介绍智能汽车车模的机械结构及调整方案。
3.1车体建模
此次竞赛的赛车车模选用由北京科宇通博科技有限公司提供的E型车模。
车模如图3.1所示。
图3.1
车体机械结构的调整,主要是以整车布局原则为指导,综合考虑重心的控制、各功能模块及其相关电路的安装以及转向轮和动力轮的调节等多种因素进行调整。
3.2重心的调整
通过重心的调整,可使模型车转弯时更加稳定、高速。
其调整主要分为重心高度的调整以及重心在整车上局部分布的调整。
在重心高度调整上主要通过车模主要功能部件的调整来调节车模整体的重心。
原则是各个部件居中于车的轴上。
重心在整车上局部分布的调整,也应综合车模主要功能部件的安装,本着均匀、对称的原则进行调整。
3.4速度反馈模块的安装
车模运动过程中,根据路况的不同需要经常地进行速度变化,为了实现对系统的闭环控制,需要加装速度反馈模块。
常见的速度反馈模块主要是通过安装码盘或者编码器实现速度反馈的。
但码盘安装难度较大且易受外界环境影响,导致系统速度信息反馈的稳定下降;编码器则不同,可以不受外界环境影响稳定的反馈速度信息,因此应选用编码器。
编码器的安装,我们采取了车模上给定的安装方式,没有在其他位置上做改动。
图3.3编码器安装
3.5摄像头的安装
摄像头的位置是整个系统中重心位置最高的,为了降低系统重心,需要严格控制CMOS摄像头的安装位置和重量。
经过精心挑选和严格比较,我们采用了碳纤维管作为安装CMOS的主桅,这样不仅降低了系统重心,而且可以获得很大的刚度质量比。
对于摄像头的安装,可以根据车体布局选择不同的安装方式,由于多杆安装难度大,且安装完毕后调整维度有限,不能很好地完成系统功能,因此我们选用单杆固定。
我们最终的安装方式不仅具有很高的定位精度,而且摄像头便于拆卸和维修,具有赛场快速保障能力。
摄像头的安装如图3.4所示。
图3.4摄像头安装
3.6加速度计和陀螺仪的安装
陀螺仪跟角速度计都是用来检测车模的倾斜角度,我们将这块带有陀螺仪和加速度计的电路板固定在整个车模中间质心的位置。
这样可以最大程度减少车模运行时前后振动对于测量倾角的干扰,同时陀螺仪一定要安装水平,因为陀螺仪安装的不水平,就会使得小车转弯出现突然加速减速的情况,只要陀螺仪安装的水平就不会出现这样的情况。
这要在不断测试中调整陀螺仪位置。
图3.5加速度计和陀螺仪的安装
第四章电路设计
4.1电路设计思路
我们为了使小车在行驶的过程中更加稳定,我们不仅从机械上尽量减轻整车重量,降低车体重心位置,同时使电路设计尽量简洁,尽量减少元器件使用数量,缩小电路板面积,使电路部分重量轻,易于安装。
我们在对电路进行详细、彻底的分析后,对电路进行了大量简化,并合理设计元件排列和电路走线,使得单片机在超频条件下能够稳定工作,这样使本系统硬件电路部分能够紧紧贴在车模底盘上面。
智能车硬件电路有电源模块、微控制器核心处理、转速控制、车体实时速度采集六个部分。
4.2电源模块
本系统中电源稳压电路分别需要有+5V,+3.3V。
+3.3V给单片机;+5V为编码器模块供电、摄像头、加速度计和陀螺仪、液晶;+7.2V给电机预驱动电路供电。
由于整个系统中+5V电路功耗较大,为了降低电源纹波,我们考虑使用线性稳压电路。
另外,后轮驱动电机工作时,电池电压压降较大,为提高系统工作稳定性,必须使用低压降电源稳压芯片,我们选用了tps7350,效果较好。
图4.1tps7350
4.3图像采集模块
目前市场上的摄像头所采用的感光器件分为CCD和CMOS两种。
两者都是利用感光二极管进行光电转换,将图像转换为数字数据,而其主要差异是数字数据传送的方式不同。
CCD摄像头在灵敏度、分辨率、噪声控制等方面优于CMOS传感器,但工作电压为12V,需要对电池电压进行升压处理后再给它供电,增加了电源管理电路的复杂程度。
与CCD摄像头相比之下,CMOS摄像头不需要斩波升压来提供电源,并且具有较强的可编程控制能力,也不需要额外地进行A/D采样。
数字CMOS摄像头可以直接输出数字图像信号,使得微处理器可以直接采用一组IO口读取传感器发回来的图像信息。
这大大简化了主板硬件电路的设计。
我们认为各方面都更适合于作为小车的视觉传感器。
CMOS图像传感器产品种类很多,大部分是彩色的,分辨率也很高.考虑小车的具体情况,小巧而CIF分辨率甚至QCIF分辨率的黑白摄像头足够满足小车赛道情况采集与路径识别的需要。
图4.2摄像头
4.4微控制器核心处理模块
组委会规定车模控制电路必须采用飞思卡尔半导体公司的8位、16位、32位MCU作为唯一的微控制器。
飞思卡尔不同系列的微控制器包括,32位Kinetis系列;32位ColdFire系列;32位MPC56xx系列;8位微控制器系列(可使用2片);16位DSC系列;16位微控制器9S12XS系列;16位微控制器9S12G系列。
这样使得我们的选择大大宽泛了,可以根据自己的设计方案择优采用不同的主控芯片。
我们选择了32位Kinetis系列的K60DN512。
基于ARMCortex-M4内核的Kinetis系列依靠强劲的内核和丰富的外围设备适合应用于图像处理等方面。
K60DN512芯片是Kinetis系列K60子系列的典型芯片,是Kineits系列中集成度最高的芯片。
K60DN512具有丰富的通讯接口、AD转换电路和外围控制电路。
其特性如下:
(1)ARMCortex-M4内核,主频高达100MHZ。
(2)多达100路GPIO引脚,所有GPIO引脚兼容5V电平。
(3)8路电机控制,2路方波解码,4路可编程定时器;
(4)512KFlash和128KSRAM;
(5)32路DMA供外设和存储器使用,大大提高CPU利用率;
(6)33路单路和4路差分的16位AD转换,2路12位DA转换;
(7)10种低功耗模式,包括运行,等待,停止和断电;
(8)集成硬件和软件看门狗,硬件加密电路和CRC电路;
(9)工作电压1.71V~3.6V,工作温度-40°~105°;
(10)IEEE1588以太网接口,支持MII和RMII通讯;
(11)USB2.0全速和高速接口,支持OTG;
(12)SD卡主机控制器,6路UART,IIC,IIS,SPI,CAN;
从上面的特性可以看出,K60的性能相当的强悍,可以大大方便摄像头组智能车的控制。
图4.3主控芯片
4.5电机驱动电路
电机驱动有两种方案可选择,一种是使用专用的,另一种是使用独立的MOSFET搭建H桥。
传统的使用专用电机驱动芯片的方案优点是使用简便,稳定性好,有内置的过流、过压保护。
H桥虽然有着低阻抗、高电流负载能力的优点,但是却容易发热,以致易烧坏。
因此,我们采用电机驱动芯片的设计方案。
用四块BTS7971驱动芯片来驱动电机。
图4.4驱动电路
4.6加速度计和陀螺仪模块
本次使用加速度传感器为Freescale公司生产的三轴模拟输出加速度传感器MMA7361L。
陀螺仪为日本村田公司生产的单轴模拟输出陀螺仪ENC-03MB。
图4.5加速度计和陀螺仪
第五章智能车软件部分
高效稳定的软件程序是智能车平稳快速寻线的基础。
本智能车采用工字电感线圈作为寻迹传感器,传感器数据处理就成为了整个软件系统的核心内容。
在智能车的转向和速度控制方面,我们使用的是经典的PID控制算法,配合使用理论计算和实际参数补偿的方法,使在寻迹中智能车达到了稳定快速的效果。
5.1智能车控制系统总体方案
软件设计时控制系统的核心,在具有良好的硬件基础上,好的算法才能充分发挥作用,粗略思想则更进一步决定了比赛的成绩。
算法上的灵活运用可以用来弥补硬件上的一些不足,所以硬件基础和策略算法是相辅相成的,最终目的是实现算法和硬件的相协调。
智能车系统的控制算法及软件设计由以下几个部分组成:
路径识别检测、速度检测、PWM电机控制算法、速度控制策略、转向控制策略等。
道路检测由摄像头完成。
电机和测速部分使用了单片机的PWM模块、SPI模块和外部中断等。
小车主程序框图
。
图5.1主程序框图
控制策略的选择对智能小车的行驶性能也是至关重要的。
速度固然越快越好,但也要使小车能够平稳完成比赛。
譬如,直道入弯前速度需要减慢,以免冲出赛道;而从弯入直时则应让小车加速,在直道上能以较高速度完成。
5.2路径识别模块软件设计
路径识别是智能小车的核心内容,是决定小车能否顺利完成比赛的关键部分。
路径识别模块将智能车顶端的OV7620摄像头采集的图像进行软件二值化处理,因为考虑到直立车对时序的要求比较严格,故我们从采集的316列、20行的数据中,隔点选取数据处理成158列、20行,减少二值化处理所需时间,而后在吸取各类图像二值化算法的思想后根据采集得到的图像特征,自行编写了所需时间较短的简易双峰取比例算法。
该算法取动态阈值的步骤包括:
采集每一行的两个极值,取一定比例系数与其相乘,然后将得到的灰度值相加得到所须当行动态阈值。
二值化处理后根据阈值处理边沿黑白跳变,取两边边界。
两边边界的中间位置,就是中线的位置了。
图5.1是该算法处理后生成的二值化图像。
图5.2二值化图像
图5.3直道处理图像
图5.4弯道处理图像
图5.5障碍处理图像
5.3转向控制策略细述
首先将摄像头采集的图像处理,提取出两边的赛道后,模拟出中线,通过判断中线在赛道的偏移位置,控制智能车的转向。
当中线在赛道中间是,判定前方为直线轨迹则控制电机转向正中,同时控制驱动电机保持预设速度;当中线在赛道右方时,判定前方为右弯轨迹,则控制电机差速向右偏转相应角度,同时根据车速检测单元检测的当前速度,控制电机使转弯速度平稳,以免小车冲出赛道;当中线位于赛道左方时做类似处理。
以此根据做差后的数值可以判断车体与赛道中线的位置关系,从而控制电机差速转向,修正车体位置。
5.4智能车电机控制算法
一般情况下小车的实际速度与期望速度之间会有一定的差异,而且该差异会随着路径曲率的变化而发生变换。
为了使得小车能够以最快速度跟踪期望速度,调速过程中采用了PID控制。
实际使用速度控制策略,构成闭环速度控制系统,利用PWM控制电机转速,使得小车能够在稳定运行的前提下尽可能提高响应速度,从而缩短调速过程。
PWM控制原理
脉宽宽度调制(PWM)技术控制的原理就是通过直流斩波,利用大功率晶体管的开关特性来调制固定电压的直流电源。
按照一个固定的频率来接通和断开,并根据需要改变的一个周期内的“接通”和“断开”时间的长短,通过改变直流电机电枢上的电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。
智能车速度控制策略
速度控制及执行系统硬件部分由H桥电机驱动系统、电机、传动齿轮。
系统的控制对象为模型汽车、系统执行器为电机、系统测量环节为速度检测。
系统框图如下:
图5.6闭环速度控制系统框图
PID控制算法
比例积分微分控制是过程控制中应用最广泛的一种控制规律[5]。
实际经验及理论分析充分证明这种控制规律用于多数被控对象能够获得较满意的控制成果。
(1)比例(P)控制
比例控制是一种最简单的控制方式。
其控制器的输出与输入误差信号成比例关系。
当仅有比例控制时,在比例控制器中系统输出存在稳态误差。
控制器的输出信号Uo与输入信号ΔUi(即偏差)的大小成正比,即
(2)积分(I)控制
在积分控制器中,控制器的输出信号Uo与输入信号ΔUi对时间的积分成正比,即
积分控制中,只要输入信号ΔUi存在,控制器的输出信号Uo就不断积累,系统的输出量逐渐趋向期望值,直至输入偏差信号ΔUi=0,系统进入稳态为止。
无静差控制是积分控制的最大优点。
为了消除稳态误差,在控制器中必须引入“积分项”。
积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。
因此,比例+积分的控制器,可以使系统在进入稳态后无稳态误差。
(3)微分(D)控制
微分控制器针对被调量的变化率进行调节,可以调节被调量的变化趋势,及时避免出现大的偏差。
在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系,即:
这样,具有比例+微分的控制器,就能够提前抑制误差的控制作用等于零,从而避免了被控量的严重超调。
所以对有较大惯性或滞后的被控对象,比例+积分微分控制器能改善系统在调节过程中的动态特性。
第六章系统开发及调试
6.1开发工具
本系统控制软件采用大赛提供的IAREmbeddedWorkbenchIDE软件及BDM作为调试工具,此外,厂家提供的编程环境支持C语言和汇编语言的程序设计,以及C语言与汇编语言的混合编程,大大方便了用户的程序设计,提高了系统开发效率。
在此基础上,我们还自主开发了液晶图像显示,MFC上位机等辅助调试工具,方便对程序的调试与系统的完善。
6.2液晶图像显示
未来方便观察和分析赛道信息,以及了解程序处理环节中的细节,利用液晶显示需要了解的数据信息。
图6.1液晶调试工具显示图
6.3蓝牙模块
利用蓝牙模块发回车载运行过程中的数据信息,从而找出问题出现在哪个位置,能够快速地发现与解决问题。
图6.2蓝牙模块
6.4串口模块
串口模块是最基本的单片机开发调试工具,可以利用串口模块将程序中的关键数据进行实时反馈,实现对各参数实时观察为了方便智能车调试,以便对下一步对软件进行相应的修改。
图6.3串口模块
第七章结论
自从参加智能车以来,从刚开始的完全不懂,一步步的深入学习,走进国赛的赛场。
这样的成果是我们队的不断拼搏与努力的结果。
在这几个月的备战过程中,场地和经费方面都得到了学校和学院的大力支持,在此特别感谢一直支持和关注智能车比赛的学校和学院领导以及各位指导老师、指导学长,同时也感谢比赛组委会能组织这样一项有意义的比赛。
面对即将到来的大赛,在历时近五个月的充分准备以及赛区赛的考验之后,我们有信心在全国比赛中取得优异成绩。
以下为车模主要技术参数:
表7.1模型车主要参数
赛车基本参数
长
300mm
宽
208mm
高
300mm
车重
1509g
功耗
空载
4.2W
带载
大于20W
电容总容量
1600uF
传感器
编码器
2个
摄像头
1个
除了车模原有的驱动电机、舵机之外伺服电机个数
0
参考文献
[1]卓晴,黄开胜,邵贝贝学做智能车北京-北京航空航天大学出版社2007
[2]谭浩强C++程序设计北京-清华大学出版社2004
[3]易大义,“计算方法[M]”,浙江大学出版社,1995
[4]童诗白·模拟电子技术基础·北京:
高等教育出版社,2001
[5]陶永华,尹怡欣,葛芦生·新型PID控制及其应用·北京:
机械工业出版社,1998
[6]阎石·数字电子技术基础·北京:
高等教育出版社,1998
[7]邓鲁华等,“数字图像处理(原书第3版)”,机械工业出版社
[8]《大学生智能汽车设计基础与实践》吴怀宇程磊章政著电子工业出版社
附源代码
/***********************************************************/
voidKalman_Filter(floatangle_m,floatgyro_m)
{
floatdt=0.005;
staticfloatP[2][2]={{0.1,0},{0,0.01}};
staticconstfloatQ_angle=0.0790;
staticconstfloatQ_gyro=0.0380;
staticconstfloatR_angle=5.8;
intC_0=1;
angle+=(gyro_m-q_bias)*dt;
Pdot[0]=Q_angle-P[0][1]-P[1][0];
Pdot[1]=-P[1][1];
Pdot[2]=-P[1][1];
Pdot[3]=Q_gyro;
P[0][0]+=Pdot[0]*dt;
P[0][1]+=Pdot[1]*dt;
P[1][0]+=Pdot[2]*dt;
P[1][1]+=Pdot[3]*dt;
floatangle_err=angle_m-angle;
constfloatPCt_0=C_0*P[0][0];
constfloatPCt_1=C_0*P[1][0];
floatE=R_angle+C_0*PCt_0;
floatK_0=PCt_0/E;//Kk
floatK_1=PCt_1/E;
floatt_0=PCt_0;
floatt_1=C_0*P[0][1];
P[0][0]-=K_0*t_0;
P[0][1]-=K_0*t_1;
P[1][0]-=K_1*t_0;
P[1][1]-=K_1*t_1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 安徽 赛区 摄像头 陆军 军官 学院 小龙 技术 报告