摄像头组中国石油大学华东石大摄像头二队技术报告.docx
- 文档编号:10629614
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:80
- 大小:2.49MB
摄像头组中国石油大学华东石大摄像头二队技术报告.docx
《摄像头组中国石油大学华东石大摄像头二队技术报告.docx》由会员分享,可在线阅读,更多相关《摄像头组中国石油大学华东石大摄像头二队技术报告.docx(80页珍藏版)》请在冰豆网上搜索。
摄像头组中国石油大学华东石大摄像头二队技术报告
第七届“飞思卡尔”杯全国大学生
智能汽车竞赛
技术报告
学校:
中国石油大学(华东)
队伍名称:
石大摄像头二队
参赛队员:
田伟伟
寻贇贇
张洋弘
带队教师:
宋继志
王媛媛
关于技术报告和研究论文使用授权的说明
本人完全了解第七届“飞思卡尔”杯全国大学生智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:
参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。
参赛队员签名:
带队教师签名:
日期:
摘要
本文设计的智能车系统以飞思卡尔半导体公司的16位单片机MC9S12XS128微控制器为核心控制单元,在CodeWarrior5.0开发环境中进行软件开发,采用摄像头组指定的A型车模,使智能车在跑道上沿着两边黑线以最快的速度行驶。
智能车系统使用OV7620数字摄像头来获取赛道图像信息,并以中断的方式将数据传送到单片机来进行处理。
为节省单片机的处理时间,单片机在中断的间隙对数据进行处理。
智能车系统的控制方面,本车通过电机驱动模块驱动电机和编码器进行测速,使用PID控制算法进行速度的闭环控制。
为了提高智能车的速度和稳定性。
我们使用了蓝牙串口、SD卡、matlabGUI上位机多种调试工具。
实验结果表明,此系统设计方案可以使用。
关键字:
MC9S12XS128,OV7620,PID,SD卡,matlabGUI
引言
随着科学技术的不断发展进步,智能控制的应用越来越广泛,几乎渗透到所有领域。
智能车技术依托于智能控制,前景广阔且发展迅速。
大学生智能汽车竞赛是以迅猛发展、前景广阔的汽车电子为背景,以智能汽车为研究对象,涵盖自动化、电子、机械、计算机等多专业,自动控制、模式识别、传感技术等多学科的创意性科技竞赛。
智能汽车在无人驾驶、月球探测、危险环境下的无人搜救等方面具有重要应用前景。
全国大学生“飞思卡尔”杯智能汽车竞赛是在规定的模型汽车平台上,使用飞思卡尔半导体公司的8位、16位微控制器作为核心控制模块,通过增加道路传感器、电机驱动电路以及编写相应软件,制作一个能够自主识别道路的模型汽车,按照规定路线行进,以完成时间最短者为优胜。
本技术报告详尽地阐述了本智能车系统的机械结构系统、硬件系统、软件系统和调试系统的设计方案,由于我们学校对“飞思卡尔”智能车上的成果不是很突出,经验积累不是很丰厚,因此,我们在做智能车时走了一些弯路,但是也有我们独立探究的新思路和创新点,本技术报告上也都会详细阐述。
第一章系统整体设计
1.1系统概述
智能车以处理器MC9S12XS128为处理核心,通过OV7620摄像头获取赛道路径,并对黑线进行提取,根据自身小车的姿态与黑线之间的偏差产生控制量,控制舵机进行转向和电机的速度大小,编码器实时反馈电机转速,使速度控制更精确,实现电机的PID的闭环控制。
系统框图如图1.1所示。
图1.1系统结构框图
1.2整车布局
小车的整体布局本着重心尽可能低,重量分布尽可能均匀;系统结构尽可能稳固,的目的,机械结构特点:
(1)架高舵机并直立安装,以提高舵机响应速度。
(2)主板尽可能放低位置,降低小车重心;
(3)摄像头置于模型车的中间,保证有一定的前瞻,减少赛车前方盲区和均衡小车重心位置。
(4)采用高强度、低质量的碳杆作为摄像头支架以减小小车重量。
布局如图1.2所示。
图1.2整车布局图
第二章系统机械结构设计与实现
2.1车体机械结构
今年摄像头组使用了由东莞市博思电子数码科技有限公司生产的A型车模。
车模机械结构如图2-1所示
图2.1A型车模结构图
车模参数如下:
车模:
G768
电机:
RS380-ST/3545,
舵机:
FUTABA3010
2.2舵机固定结构
关于舵机的安装方式,我们参考了很多学校历年的做法,主要有直立式安装和倒立式安装。
考虑到如何使舵机有较快的响应速度和在过弯时有足够的打角,我们尝试了这两种方式,并从力学的角度进行综合分析,最终我们选择使用直立方式固定。
我们使用旧电路板做了一个U型片作为舵机臂,再通过舵机臂与前轮拉杆连接。
由于随着舵机的架高,舵机臂变长,舵机的打角也会增大,但是舵机架的高度还影响小车的重心高度,架高舵机会使小车前轮重心偏高。
不利于小车的稳定性。
而且舵机架的过高后,舵机臂会很长,舵机提供不了转向所需要的力矩,对小车的性能有影响。
因此,舵机架的高度应在一个合适的范围内,来保证舵机的响应速度、打角大小和打角力度。
舵机安装如图所示;
图2.2舵机安装图
2.3摄像头固定结构
摄像头的固定方式对小车性能的影响非常之大。
从机械方面来讲,车模的重心越低越好。
摄像头架的越高,小车的重心会升高,小车的稳定性会变差,所以从机械的方面考虑摄像头架的高度应尽可能低。
而且车模重心前后的位置保持在车体中间偏后的位置较好,因为重心太靠前容易甩尾,太靠后车模容易造成前轮转向不足,由于车模是后轮驱动,后轮需要更大的压力来确保动力输出。
这就要求摄像头架的前后位置能够保证车模的重心在车体中间偏后的位置。
从图像的角度考虑,今年赛道有效信息与往年不同,是赛道两边的黑线。
为了较好地提取两边的黑线,我们要把摄像头的高度架的尽可能高,使摄像头照到视角宽度大于赛道的宽度。
同样,为了保证使摄像头获得较大的前瞻,对摄像头的高度也有要求。
综合考虑以上几点,我们最终选择是摄像头架在中间偏后的位置,并且对架摄像
头的杆也进行了选择,选择了质量轻、强度大的树脂碳杆作为摄像头的支架。
摄像头安装如图所示;
图2.3摄像头安装图
2.4前轮倾角
2.4.1车轮定位参数介绍
车轮定位角度是存在于悬架系统和各活动机件间的相对角度,保持正确的车轮定位角度可确保车辆直线行驶,改善车辆的转向性能,确保转向系统自动回正,避免轴承因受力不当而受损失去精度,还可以保证轮胎与地面紧密接合,减少轮胎磨损、悬架系统磨损以及降低油耗等。
汽车悬架系统主要定位角度包括:
车轮外倾、车轮前束、主销后倾、主销内倾、推力角等
图2.4.1主销内倾及车轮外倾
1.车轮外倾:
在过车轮轴线且垂直于车辆支承平面的平面内,车轮轴线与水平线之间所夹锐角。
如图2.4.1所示,即由车前方看轮胎中心线与垂直线所成的角度,向外为正,向内为负。
其角度的不同能改变轮胎与地面的接触点,直接影响轮胎的磨损状况。
并改变了车重在车轴上的受力分布,避免轴承产生异常磨损。
此外,外倾角的存在可用来抵消车身载重后,悬架系统机件变形所产生的角度变化。
外倾角的存在也会影响车的行进方向,因此左右轮的外倾角必须相等,在受力互相平衡的情况下不致影响车辆的直线行驶,再与车轮前束配合,使车轮直线行驶并避免轮胎磨损不均。
四轮定位仪测量车轮外倾角的范围为±10°。
图2.4.2车轮前束
2.车轮前束:
车轮前束如图2.4.2所示,同一轴两端车轮轮辋内侧轮廓线的水平直径的端点为等腰梯形的顶点,等腰梯形前后底边长度之差为前束。
当梯形前底边小于后底边时,前束为正,反之则为负。
车轮的水平直径与车辆纵向对称平面之间的夹角为前束角。
由于车轮外倾及路面阻力使前轮有向两侧张开做滚锥运动的趋势但受车轴约束,不能向外滚动,导致车轮边滚边滑,增加了磨损,通过前束可使车轮在每瞬间的滚动方向都接近于正前方,减轻了轮毂外轴承的压力和轮胎的磨损。
四轮定位仪测量车轮前束角的范围为±6°。
图2.4.3主销后倾
3.主销后倾:
主销后倾如图2.4.3所示,过车轮中心的铅垂线和真实或假想的转向主销轴线在车辆纵向对称平面的投影线所夹锐角为主销后倾角,向前为负,向后为正。
主销后倾角的存在可使车轮转向轴线与地面的交点在轮胎接地点的前方,可利用地面对轮胎的阻力产生绕主销轴线的回正力矩,该力矩的方向正好与车轮偏转方向相反,使车辆保持直线行驶。
后倾角越大车辆的直线行驶性越好,转向后方向盘的回复性也越好,但主销后倾角过大会使转向变得沉重,驾驶员容易疲劳;主销后倾角过小,当汽车直线行驶时,容易发生前轮摆振,转向盘摇摆不定,转向后转向盘自动回正能力变弱,驾驶员会失去路感;当左右轮主销后倾角不等时,车辆直线行驶时会引起跑偏,驾驶员不敢放松转向盘,难于操纵或极易引起驾驶员疲劳。
四轮定位仪测量主销后倾角的范围为±15°。
4.主销内倾:
主销内倾如图2.4.2所示,定义为在同时垂直于车辆纵向对称平面和车辆支承平面的平面内,由真实的或假想的转向主销的轴线在该平面上的投影与车辆支承平面的垂线所构成的锐角。
主销内倾角的作用,是使车轮在受外力偏离直线行驶时,前轮会在重力作用下自动回正。
另外,主销内倾角还可减少前轮传至转向机构上的冲击,并使转向轻便,但内倾角不宜过大,否则在转向时,会使轮胎磨损加快。
主销内倾角越大前轮自动回正的作用就越强烈,但转向时也越费力,轮胎磨损增大;反之,角度越小前轮自动回正的作用就越弱。
四轮定位仪测量主销内倾角的范围为±20°。
图2.4.4推力角
2.4.2车模的前轮倾角的调整
在调试过程中,我们发现由于前轮轴和车轮之间的间隙较大,对车高速时转向中心的影响较大,会引起高速转向下模型车的转向不足。
然而这里是规则中严禁改动的部分,所以为了尽可能降低转向舵机负载,我们对前轮的安装角度,即前轮定位进行了调整。
前轮定位的作用是保障汽车直线行驶的稳定性,转向轻便和减少轮胎的磨损。
前轮是转向轮,它的安装位置由主销内倾、主销后倾、前轮外倾和前轮前束等4个项目决定,反映了转向轮、主销和前轴等三者在车架上的位置关系。
在实际调试中,我们发现适当增大内倾角的确可以增大转弯时车轮和地面的接触面积,从而增大车了地面的摩擦程度,使车转向更灵活,减小因摩擦不够而引起的转向不足的情况。
第三章硬件系统的设计与实现
3.1硬件设计方案
从最初进行硬件电路设计时我们就既定了系统的设计目标:
可靠、高效、简洁,在整个系统设计过程中严格按照规范进行。
可靠性是系统设计的第一要求,我们对电路设计的所有环节都进行了电磁兼容性设计,做好各部分的接地、屏蔽、滤波等工作,将高速数字电路与模拟电路分开,使本系统工作的可靠性达到了设计要求。
高效是指本系统的性能要足够强劲。
我们主要是从以下两个方面实现的:
(1)电机驱动板会发热,而稳定的母版电路应保证其温度的稳定性。
所以我们将电路板分成两个模块:
母版和电机驱动板。
并且将不同的功能模块放在不同的电路板上,在出现问题时,可较快的发现和解决问题。
(2)使用了由分立元件制作的直流电动机可逆双极型桥式驱动器,该驱动器的额定工作电流可以轻易达到100A以上,保证了电动机的工作转矩和转速。
简洁是指在满足了可靠、高效的要求后,为了尽量减轻整车重量,降低模型车的重心位置,应使电路设计尽量简洁,尽量减少元器件使用数量,缩小电路板面积,使电路部分重量轻,易于安装。
我们在对电路进行了详细分析后,对电路进行了简化,合理设计元件排列、电路走线,使本系统硬件电路部分轻量化指标都达到了设计要求。
3.2摄像头的选择
目前市面上常见的摄像头主要有CCD和CMOS两种:
CCD摄像头具有对比度高、动态特性好的优点,但需要工作在12V电压下,对于整个系统来说过于耗电,且图像稳定性不高;CMOS摄像头体积小,耗电量小,图像稳定性较高。
因此,经过实验论证之后我们决定采用CMOS摄像头。
对于CMOS摄像头分为数字和模拟两种。
数字摄像头不需要外围线路可以直接连接单片机,并且输出信息为灰度值。
可以通过二值化后直接转化为0、1数字来代表黑白点。
对于不同光线的环境条件下,我们仅需一个动态阈值函数,就可将环境影响尽可能的去除,分辨出赛道的黑线。
数字摄像头又涉及到选OV7620还是选OV6620。
我们从摄像头视角宽度考虑,OV7620是120度,而OV6620仅是90度。
而今年赛道黑线在两边,要想更好地提取到赛道信息,我们必须使用广角摄像头,仅这一点,我们选择使用OV7620。
3.3电路设计方案
3.3.1单片机最小系统板
今年比赛规则上对单片机最小系统板的使用有所改变,今年不但可以使用往年要求使用的单片机,还增加了32位微控制器作为核心控制单元。
但是我们考虑到新出的32位的单片机的可用资料很少,学习起来费时较多,就没有使用。
而是选择了16位的MC9S12XS128单片机。
MC9S12XS128是一款常用的16位MCU,有丰富的片内资源。
但是MC9S12XS128单片机的片内RAM只有8KB,不能完全满足摄像头图像采集时保存那么多数据的需要。
且MC9S12XS128单片机的最高CPU总线频率只有40MHz,但是为了达到更快的控制,我们将单片机超频到64MHz。
3.3.2电源稳压电路
本系统中的电源稳压电路有两种,一路为5V稳压电路,一路为6V稳压电路。
其中5V为单片机、蓝牙、摄像头供电。
6V为舵机、编码器供电。
整个系统中+5V和+6V电路功耗较小,为了降低电源纹波,考虑使用线性稳压电路。
另外,后轮驱动电机工作时,电池电压压降较大,为提高系统工作稳定性,必须使用低压降电源稳压芯片。
常用的低压降串联稳压芯片主要有LM2940、LM1117等。
LM2940虽然压降比LM1117更低,但是纹波电压较大。
相比之下,LM1117的性能更好一些,具有输出电压恒定,压降较低的优点,但是其线性调整工作方式在工作中会造成较大的热损失,导致电源利用率不高,工作效率低下。
经过反复比较,最终系统选用微功耗低压差线性电源芯片TPS7350,其具有完善的保护电路,包括过流、过压、电压反接保护。
使用这个芯片只需要极少的外围元件就能构成高效稳压电路。
与前两种稳压器件相比,TPS7350具有更低的工作压降和更小的静态工作电流,可以使电池获得相对更长的使用时间。
由于热损失小,因此不需要专门考虑散热问题。
由于编码器和舵机同是6V供电,我们原来在设计电路时使用了一路6V稳压电路,开提供编码器和舵机的供电问题。
但是,随后,我们发现由于编码器的需用电压较大,在车舵机打角时,会使编码器不能正常工作。
为此,我们重新修改了电路,使用两路6V稳压电路,分别供给舵机和编码器。
TPS7350的5V和6V稳压电路如图3.3.1所示。
图3.3.1稳压电路
3.3.3电机驱动电路
电机驱动电路板为一个由分立元件制作的直流电动机可逆双极型桥式驱动器,其功率元件由四支N沟道功率MOSFET管组成,额定工作电流可以轻易达到100A以上,大大提高了电动机的工作转矩和转速。
由于C车电机为双电机,所以,我们用两路相同的驱动器分别驱动两个电机。
该驱动器主要由以下部分组成:
PWM信号输入接口、逻辑换向电路、死区控制电路、电源电路、上桥臂功率MOSFET管栅极驱动电压泵升电路、功率MOSFET管栅极驱动电路、桥式功率驱动电路、缓冲保护电路等,电路如图3.11所示。
电路中肖特基二极管IN5819保证了电平VB_1、VB_2低于12V,VB_1高于MOTOR_A,VB_2高于MOTOR_B。
高电平用1表示,低电平用0表示。
当Direction为1时,经过74V1G14得到inverted信号为0。
Breakdown为单片机输出的PWM信号,inverted和Breakdown经过74V1T08得到IN_B为0,Direction和Breakdown经过74V1T08得到IN_A与Breakdown信号相同。
IN_A输入到IR2104,得到HO_1以及LO_1,都为方波信号,幅值不同。
IN_B为0,输入到IR2104,得到HO_2以及LO_2,HO_2为0,LO_2为1。
HO_1、LO_1、HO_2、LO_2分别连接4个MOS管,此时Q100在HO_1为1时导通,为0时不导通,Q101在LO_1为1时导通,为0时不导通,Q102不导通,Q103一直导通。
因此电流从MOTOR_A流向MOTOR_B,电机正转。
当Direction为0时,采用同样的分析方法,可知电机反转。
电机转速取决于Breakdown的占空比大小。
电机驱动模块包括12V的升压电路和H桥电路。
升压电路和H桥电路分别如图3.3.2和3.3.3所示。
3.3.2升压电路图
3.3.3H桥电路图
第四章软件系统的设计与实现
4.1灰度图像处理算法
4.1.1图像采集
OV7620是1/3”CMOS彩色/黑白图像传感器。
它支持连续和隔行两种扫描方式,VGA与QVGA两种图像格式;最高像素为664×492,帧速率为30fps;数据格式包括YUV、YCrCb、RGB三种,能够满足一般图像采集系统的要求。
VO7620提供的3种数据制式,我们选用YUV16位的数据制式且只提取其中的Y信号即亮度信息,生成黑白图像。
使用HREF-行同步信号、VSYNC-场同步信号为采集控制信号。
为了提高本系统的实时性,视频采集采用外部中断触发的方式采样图像数据。
根据上文可知,YUV16视频信号的场频为60HZ,即一场信号将持续16.67ms,且一般每场摄像头扫描480线。
HREF-行同步信号、VSYNC-场同步信号为采集控制信号,分别接到PJ7和PJ6口,设置PJ口,使PJ7能响应上升沿中断;PJ6能响应下降沿中断,设置函数如下:
voidinit_interrupt()
{DDRJ_DDRJ7=0;
DDRJ_DDRJ6=0;
PIEJ_PIEJ6=1;
PIEJ_PIEJ7=1;
PPSJ_PPSJ7=1;//对行同步改为上升沿捕捉
PPSJ_PPSJ6=0;//场同步信号使用下降沿捕捉
}
从整个智能车系统来看,每场持续的16.67ms时间里系统不但要完成视频采集及处理,还要控制前轮转向和后轮速度的控制。
故采样只能是隔行进行的,但是又要得到足够多的信号来完成对道路的识别,所以要选择合适的采样行。
比如可以从第53行开始每隔1行采集图像,即采集的行数分别是:
53、55、57、59.....。
为了实现这个目的,有一个很容易想到的办法:
把要采样的行号放到数组里:
constunsignedcharGetN[61]={
53,54,55,56,57,58,59,60,61,62,63,//远处踩点稍微离散点采了18个点
64,65,66,67,68,70,72,74,76,78,80,82,84,86,88,90,93,96,99,102,//主要踩点区105,108,111,114,117,120,124,128,132,136,//中场区菜23个点140,144,148,152,156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,229
};//待采集的数据有效行数
然后用行中断计数器与其比较,当行中断计数器LineCount小于230时就采样。
采用隔行采样的方式还可以充分利用CPU时间来进行图像处理,所以本系统利用中断方式来触发采样。
并把采样得到的数据存储到数组里。
采样系统的程序流程图如图4.1.1所示:
图4.1.1:
采样系统的程序流程图
场中断:
由于16位的单片机的处理速度有限,我们无法对每场数据都处理,而采取了隔场处理的方式。
一次在场中断到来时,我们有一个奇偶场标志,奇数场数据不接收、不处理,而偶数场数据才接收并处理。
行中断:
根据我们前面提到的待采集行的行号数组,在行中断到来时,如果行号属于数组中的数,则对该行数据进行接收,而非数组中的数,则舍弃该行数据。
行中断中对每一列的接收:
为了在接收图像信息的时候,尽可能不丢数据,我们没有使用for循环来控制每一列的接收,因为我们在尝试使用for循环的时候,发现采集到的数据丢失严重,而且左右不完全对称。
对图像的质量影响很大。
因此,我们选择了每行分别接受。
程序设计如下:
if(LineCount==GetN[60-ImageRow])
{
ImageData[ImageRow][0]=PORTB;_asm(nop);//采集数据的接口
ImageData[ImageRow][1]=PORTB;_asm(nop);
ImageData[ImageRow][2]=PORTB;_asm(nop);
ImageData[ImageRow][3]=PORTB;_asm(nop);
ImageData[ImageRow][4]=PORTB;_asm(nop);
ImageData[ImageRow][5]=PORTB;_asm(nop);//采集数据的接口
ImageData[ImageRow][6]=PORTB;_asm(nop);
ImageData[ImageRow][7]=PORTB;_asm(nop);
ImageData[ImageRow][8]=PORTB;_asm(nop);
ImageData[ImageRow][9]=PORTB;_asm(nop);
、
、
、
ImageData[ImageRow][116]=PORTB;_asm(nop);
ImageData[ImageRow][117]=PORTB;_asm(nop);
ImageRow--;
}
LineCount++;
if(LineCount==230)
{
FieldEnd=1;
TIE_C0I=0;
}
4.1.2阈值算法
阈值分割法是一种基于区域的分割技术,它对物体与背景有较强对比的景物的分割特别有用。
它计算简单,而且总能用封闭且连通的边界定义不交叠的区域。
阈值分割法的关键在于阈值的确定。
如果阈值是不随时间和空间而变的,称为静态阈值;如果阈值随时间或空间而变化,称为而动态阈值。
基于静态阈值的分割方法算法简单,计算量小,但是适应性差。
基于动态阈值的分割方法其复杂程度取决于动态阈值的计算方法。
针对本智能车系统,普通的双峰法就能适合绝大部分情况。
因为智能车的运行环境是比赛赛道,背景和前景区分明显,且背景简约。
但是实验环境并不理想,由于受到光线斜射的影响,有时背景和前景的对比十分不明显。
结合实际需要,提出了一种新的计算阈值的方法。
由于16位的单片机处理速度有限,如果实现对整场数据求动态阈值占用时间较多,会使我们单片机在后面提取赛道信息算法的时间受限制。
但是考虑到静态阈值的环境适应能力很差,我们依旧使用动态阈值。
因此,为了减小运算量,我们仅取每场图像的第一行,找到这一行的像素最小值和像素最大值,将像素最小值加上像素最大值的二分之一作为整幅图像的阈值。
其他行阈值都是以该行阈值为根据,在该数值的基础上加上一个数或减去一个数得到每行的阈值。
4.1.3二值化算法
摄像头的二值化算法其实很简单,就是根据上面我们所求的每行动态阈值,将当大于此阈值的像素点设为0点,将小于此阈值的像素点设为1点。
即可将原来的灰度图像变成由0、1序列表示的图像。
4.2黑线提取算法
4.2.1求双边线算法
黑线提取算法的基本思想如下:
(1)从第
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 摄像头 中国 石油大学 华东 技术 报告