飞思卡尔智能车技术报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六届“飞思卡尔”杯全国大学生智能汽车邀请赛技术报告
学校:
队伍名称:
参赛队员:
带队教师:
关于技术报告和研究论文使用授权的说明
本人完全了解第六届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。
参赛队员签名:
带队教师签名:
日期:
摘要
随着现代科技的飞速发展,人们对智能化的要求已越来越高,而智能化在汽车相关产业上的应用最典型的例子就是汽车电子行业,
汽车的电子化程度则被看作是衡量现代汽车水平的重要标志。
同时,汽车生产商推出越来越智能的汽车,来满足各种各样的市场需求。
本文以第六届全国大学生智能车竞赛为背景,主要介绍了智能车控制系统的机械及硬软件结构和开发流程。
机械硬件方面,采用组委会规定的标准 A 车模,以飞思卡尔半导体公司生产的80管脚16 位单片机MC9S12XS128MAA 为控制核心,其他功能模块进行辅助,包括:摄像头数据采集模块、电源管理模块、电机驱动模块、测速模块以及无线调试模块等,来完成智能车的硬件设计。
软件方面,我们在CodeWarrior IDE 开发环境中进行系统编程,使用增量式PD 算法控制舵机,使用位置式PID 算法控制电机,从而达到控制小车自主行驶的目的。
另外文章对滤波去噪算法,黑线提取算法,起止线识别等也进行了介绍。
关键字:智能车摄像头图像处理简单算法闭环控制无线调试
第一章引言
飞思卡尔公司作为全球最大的汽车电子半导体供应商,一直致力于为汽车电子系统提供全范围应用的单片机、模拟器件和传感器等器件产品和解决方案。
飞思卡尔公司在汽车电子的半导体器件市场拥有领先的地位并不断赢得客户的
认可和信任。
其中在8 位、16 位及32 位汽车微控制器的市场占有率居于全球第一。
飞思卡尔公司生产的S12 是一个非常成功的芯片系列,在全球以及中国范围内被广泛应用于各种汽车电子应用中。
受教育部高等教育司委托,高等学校自动化专业教学指导分委员负责主办全国大学生智能车竞赛。
该项比赛已列入教育部主办的全国五大竞赛之一。
此项赛事涉及的专业主要有:控制,电子,图像处理,及计算机等,能极大的培养学生的动手能力及创新型思维。
也因此受到全国各大高校的重视。
从第一届发展到现在,飞思卡尔智能车比赛在全国高校的影响力也越来越大。
在整个备赛过程中,随着对小车各种性能要求认识的提高,我们的设计理念也随着不断的得到了更新。
现在我们认识到,稳定的电路是小车运行的基本保证,优良的机械性能是小车快速稳定运行的有力保证,良好的控制算法能充分发挥硬件电路和机械性能的优势,再加上一定的应赛策略就能在比赛中取得好成绩。
基于以上的重要认识,在小车的制作过程中我们始终把硬件电路设计、机械调节与安装以及控制算法优化三个方面摆在同等重要的位置,同时入手,一齐改进,单把某个或两个方面作为重点来突破都无法取得满意的效果。
我们从零起步,一步一个脚印的走过来;在数十次的试验和尝试过程中,我们从头摸起,如今建立起了一套科学合理的试验和研究方法,培养了迅速行动的良好习惯和大胆创新的开拓精神,为今后的工作和学习打下了坚实的基础;在无数次的各种交流和学习后,我们深刻认识到了努力学习、大胆交流和团结协作的重要性。
硬件电路设计
智能小车的硬件电路设计在整个系统中起着基础性作用,硬件电路的稳定性好坏影响着整个调试过程。
本系统以飞思卡尔公司S12系列16位80引脚的MC9S12XS128作为核心控制处理器。
此单片机具有8kB的RAM、64kB的EEPROM,完全满足系统需要,而且具有很好的超频性能。
同时片上还集成了许多标准模块,包括2个异步串行通信口SCI、3个同步串行通信口SPI、8通道输入捕捉/
输出比较定时器、1个10位8通道A/D转换模块、1个8通道脉宽调制模块,这些资源能够满足完成智能车所需要的所有的条件。
硬件电路是整个小车系统运行的基本,因此小车硬件的设计制作必需仔细考虑,精心设计,最终可以稳定可靠地运行。
基于这样的认识与综合小车的结构,合理地设计电路外形,合理的布局与布线,最终的框图如下:本系统的硬件设计主要包括,电源模块,视频采集模块,电机驱动模块等等,下面将就个部分进行详细的介绍。
图2.1 小车控制系统框图
电源电路设计
电源是小车系统的心脏,向各个电路模块提供能量,如果电源的任何一个出了小问题,都会使系统无法正常工作,因此供电部分一定要也必须要稳定可靠。
考虑到各部分模块需要,其中5V的电压分别供给单片机、测速、视频分离模块,6V供给舵机,7.2V供给电机驱动,12供给摄像头。
CMOS 摄像头供电
在此部分,我们采用了升压电路,采用的芯片为MC34063,通过该电路直接把电池的7.2V 升压到12V ,然后供给摄像头。
MC34063是开关稳压芯片,可构成升压、降压斩波电路。
输出开关电流大于1.5A 。
2.5mA 的低静态电流。
实验证明,由其构成的12V 稳压电路完全能够为CMOS 摄像头提供稳定的电源保证。
其图所示:
舵机供电
本想直接采用电池电压的7.2V 为舵机供电,但实际上每个电池的实际电压却远远不只7.2V ,有的甚至达到8点几伏,而且电池电压在整个系统运行的时候会有很大的波动,为了避免产生不必要的问题,我们最终采用6V 电压为舵机供电,6V 电压是从7.2V 的电池电压中稳压下来的,采用的稳压芯片为LM1117。
7.2V 电源
LM2940
5V MC34063 12V
LM1117 6V 单片机 编码器 CMOS 舵机
电机
其他电路模块供电
下面对各种常见 3.3V 和5V 稳压芯片进行分析,寻找一款最符合稳定、高效和简单的硬件设计宗旨的稳压芯片。
表 4.2.1 常见 3.3V、5V 稳压芯片对比
稳压芯片78系列LM317系列LM2575 系
列
LM2940 系
列
LM1117 系
列
输出电压5V 1.2~37V可调5V可调5V 5V可调
额定电流1A 1.5A(2A max) 1A(1.5A
max)
1A(2A max)
800mA(1A
max)
最小压差3V 2V 2V 0.5V 1V 输出纹波较大小小较小较小电路复杂程度低较低较高低低价格低较低较高较高较低
稳压芯片系列,性能稳定且外围电路只有两个滤波电容,电路设计简单高效,最能满足硬件设计宗旨和需求。
所以我们在5V 稳压芯片选择贴片的LM2940芯片。
具体电路图如下图所示
视频信号采集电路模块
我们的小车采用黑白CMOS模拟摄像头来采集路况信息。
该摄像头重量轻、体积小、易安装是我们选用它的原因之一。
视频信号分离采用LM1881视频分离芯片,分离出模拟视频信号的行同步信号和场同步信号,单片机根据这些同步信号来搭建控制时序,完成信号处理和各种控制。
如图所示:
电机驱动电路
竞速比赛的智能车最关键的就是要有强劲的驱动力。
这个“驱动力”不光
包括通常所说的驱动电机,同时还包括电机驱动电路。
由于比赛规则严禁改动更换驱动电机,所以一个好的电机驱动电路对比赛影响非同小可,要能够保证长时间大电流输出的情况下减少升温且要稳定持续工作。
对于PWM调速的电机驱动电路,主要有以下性能指标:
1.输出电流和电压范围:它决定着电路能驱动多大功率的电机。
2.效率:高的效率不仅意味着节省电源,也会减少驱动电路的发热。
要提高电路的效率,可以从保证功率器件的开关工作状态和防止共态导通(H桥或推挽电路可能出现的一个问题,即两个功率器件同时导通使电源短路)入手。
3.对控制输入端的影响:功率电路对其输入端应有良好的信号隔离,防止有高电压大电流进入主控电路,这可以用高的输入阻抗或者光电耦合器实现隔离。
4.对电源的影响:共态导通可以引起电源电压的瞬间下降造成高频电源污染;大的电流可能导致地线电位浮动。
5.可靠性:电机驱动电路应该尽可能做到,无论加上何种控制信号,何种无源负载,电路都是安全的。
BTS7960 在较小的电路板空间占用的情况下为大电流保护的PWM 电机驱动提供了一种成本优化的解决方案,于传统的MC33886驱动能力十分有限,,根据上图各种驱动方案得比较得知用BTS7960是较好的选择。
其电路图如下:
不过在今年的飞思卡尔比赛中摄像头组的C车模是双电机驱动,所以就要用到四块的BTS7960芯片分别对两个电机驱动,原来基础上再加一路驱动电路就行了,加两路闭环,两路PWM分开控制,最关键的还是软件,不过直道上,两轮的速度应该相同才有利于在直线上的加速,可以通过两个编码器反馈进而调节两个电机,而且舵机的响应速度很高,0.16sec/60度,可以电机辅助转弯,没有必要使电机共轴。
但是考虑到程序算法的复杂性,而且经过有些组别在我们已经采用两个电机级联的方法,感觉这影响也不是很大,既然有过成功的案例,所以我们暂时也通过电机共轴来简化程序。
主控制系统
主控制系统相当于大脑,车子的转向,加速减速、识别、判断全都由它来完成。
我们直接采用比赛提供的MC9S12XS128,但是由于现在经验还是不够,
所以我们将主电路,电源电路,驱动电路分开,以降低电路问题带来的风险。
图13 单片机最小系统原理图
单片机引脚规划如下:
PORTA1-5:按键
PORTT0-2:LED 测试灯
PORTB0-7:摄像头数据线
PORTE2-7:无线传输模块
PE2:奇偶场信号
IRQ:行同步脉冲输入信号。
PT6:光电编码器脉冲输入信号。
PWM0、1:舵机角度控制信号输出。
PWM2、3、4、5:电机速度控制信号输出。
机械结构设计
硬件软件的结合可以控制小车能够顺利地运行,但真正在赛道上跑的是小车,良好的机械的性能可以帮助小车更好地工作。
就像一个真正的赛车手一样,要跑出好成绩,除了需要一个好车手以往,还需要一辆好车,两者缺一不可。
基于这种想法,我们非常重视车模的机械结构。
差速器的调节
差速器的松紧程度对模型车的转弯性能、加速性能有较大的影响。
差速器越松对转弯越有利,但是不利于模型车的加速,如果差速器过松,还会导致差速器严重的滑动,使得编码器测得的速度与实际速度不符等。
差速器越紧越有利于加速,但是不利于转弯。
综上应选择一折中的程度,即半锁状态,新车模在未调节差速器时即处于这种状态。
传动齿轮的调节
轮子的动力是电机通过传动齿轮传到后轮的,因此齿轮间的耦合十分重要。
如果耦合过松则齿轮容易受损甚至会打坏齿轮,但如果过紧又会加重电机的负担,甚至造成磨擦过大或者卡死现象。
所以要把齿轮调节到一个适当位置,使齿轮既可传动又不会因为磨擦过大发出噪声。
同时,为了减小齿轮间的磨擦,我们给齿轮间加上润滑油。
舵机的安装
舵机是车模中很重要的一个部分,车子的转向全靠它。
舵机的安装得是否得当直接关系到车子的转向性能,因此考虑一个好的安装方法是十分重要的。
由于比赛规定禁止改动伺服舵机,所以我们采取加压的方法提高舵机的性能。
实践表明,电压过高极易烧毁舵机里面的驱动三极管,我们只好使用较适宜的 5V 作为舵机的电源电压。
还有,我们也试图提高舵机输入的 PWM 波的频
率来提高舵机的性能,最后因为这样的改动极为容易造成舵机的烧毁,故使用较为常用的 50Hz 作为舵机输入的 PWM 波的频率。
车辆的转向响应就存在这样一个平衡:即增加转向力臂可以提高转向的响应速度,但增加力臂也会导致车辆高速转向时车轮对舵机反向的作用力增加,一旦这个反向的力矩大于舵机的扭矩,舵机就会因发热过度而烧毁。
鉴于舵机性能所限的情况下,我们通过车子高速转向时所需的扭力计算出安全力臂约为 3cm,所以根据整车的实际情况,在尽量减少转向传动摩擦的前提下,我们选择了舵机直接传动转向传动轴的方法,力臂长度为 2.6cm。
摄像头的安装
摄像头是收集道路信息的核心部分,安装方法的好坏直接关系到车子的性能。
因些必须选择一个合适的安装方法既可以让摄像头有足够广的视野,又不使车子的重心过高。
为了使得整车的重心降低,摄像头的高度就要有所限制,但是随之而来的问题就是摄像头的视野收到了局限。
如果摄像头放在整车的前方,盲区和视野区都将缩小,车辆的视野宽度和前瞻性都将受到影响;如果摄像头放在整车的后方,盲区和视野区都将扩大,虽然能够提高车辆视野宽度和前瞻性,但是小车前的盲区也会成为影响车辆稳定性的隐患(如图 2.2.1 所示)。
图 2.2.1 前置摄像头与后置摄像头的视野差异
CMOS摄像头视野的调整
摄像头的左右视野不对称,是一个不等腰梯形,因此必要在机械设计时做
图3.2 摄像头可视范围示意图
光电编码器安装
编码器安装方法也有很多种,为了安装得牢固,我们采用刚性安装的耦合方法,直接采用齿轮带动编码器。
本想在车模上直接打孔安装,但为了避免打孔打偏产生误差及可调性不好,我们放弃了这一想法。
采用设计外部零件固定编码器的方法,最终设计了一个较好的安装零件,而且前后左右可调,可以理想地安装编码器。
如图3.3所示为未装编码器时的模型:
其它部件的调节
这要根据到以后的情况进行调试,改进。
软件设计
高效稳定的程序是智能车平稳快速寻线的基础。
本智能车采用CMOS摄像头作为寻线传感器,图像采集处理就成了整个软件的核心内容。
在智能车的转向和速度控制方面,我们使用了经典PID控制算法,配合理论计算和实际参数补偿等办法,使在智能车达到了稳定快速的效果。
系统程序主要包括初始化程序、图像采集及图像处理程序和PID速度控制程序等。
下图为系统软件流程图。
4.1系统软件流程图
由于摄像头每秒扫描25 帧图像,每帧又分奇、偶两场,先奇场后偶场,故每秒扫描50 场图像。
采集每场需要的时间大约为20ms,程序每采集一场图像执行控制一次,故速度控制也只能限定在20ms内调整一次。
视频信号采集
CMOS视频模拟信号经LM1881视频分离芯片分离出场信号和行信号,以场信号和行信号作为视频信号时序根据,使用S12单片机片内AD对模拟信号进行采集。
本队采用的CMOS黑白摄像头每帧信息共320行,其中场头消隐22行,场尾
消隐11行(以LM1881分离出来的场信号跳变沿作分界),即有效的图像信息为287行。
在单片机内存有限的情况下,如此大的信息量不可能完全被采集。
根据摄像头安装位置和俯仰角度大小,以及考虑到图像的畸变等因素,本队采取跳行采集,所跳行数从近到远。
根据需要共采集12行信息,每行采集52个点,从而形成12*52像素的图像数组用于路况分析。
为了检测起始线,采集到的一帧前面2行作为起始线的检测数据。
按照本队摄像头的安装方案,从一帧的第100行到260行在路面上前后可以覆盖20cm的距离,按照4m/s的速度计算,摄像头每采集一帧图像(20ms)小车可前进8cm。
所以能覆盖20cm的检测方案足以完成对所经过路面的路况检测,不会漏掉起始线。
图像采集
摄像头采样机制摄像头主要由镜头,图像传感芯片和外围电路构成。
图像传感芯片又是其最重要的部分,摄像头的指标(如黑白或彩色,分辨率)就取决于图像传感芯片的指标。
摄像头通常引出三个端子,一个为电源端,一个为地端,另一个就为视频信号端(有的摄像头多出一个端子,那是音频信号端)。
电源接多大要视具体的单板而定,目前而言,一般有两种规格,6-9V,或9-12V 。
视频信号的电压一般位于0.5V-2V 之间。
摄像头的主要工作原理是:按一定的分辨率,以隔行扫描的方式采样图像上的点,当扫描到某点时,就通过图像传感芯片将该点处图像的灰度转换成与灰度成一一对应关系的电压值,然后将此电压值通过视频信号端输出。
具体而言(参见图4.2),摄像头连续地扫描图像上的一行,就输出一段连续的电压视频信号,该电压信号的高低起伏正反映了该行图像的灰度变化情况。
当扫描完一行,视频信号端就输出一低于最低视频信号电压的电平(如0.3V),并保持一段时间。
这样相当于,紧接着每行图像对应的电压信号之后会有一个电压“凹槽”,此“凹槽”叫做行同步脉冲,它是扫描换行的标志。
然后,跳过一行后(因为摄像头是隔行扫描的方式),开始扫描新的一行,如此下去,直到扫描完该场的视频信号,接着就会出现一段场消隐区。
此区中有若干个复合消隐脉冲(简称消隐脉冲),在这些消隐脉冲中,有个脉冲,它远宽于(即持续时间长于)其他的消隐脉冲,该消隐脉冲又称为场同步脉冲,它是扫描换场的标志。
场同步脉冲标志着新的一场的到来,不过,场消隐区恰好跨在上一场的结尾部分和下一场的开始部分,得等场消隐区过去,下一场的视频信号才真正到来。
摄像头每秒扫描25 幅图像,每幅又分奇、偶两场,先奇场后偶场,故每秒扫描50 场图像。
奇场时只扫描图像中的奇数行,偶场时则只扫描偶数行。
图4.2摄像头视频信号
检测赛道相对车模中心的偏移量、方向、曲率等信息是实现车模自主沿赛道运行基础,获取更多、更远、更精确的赛道信息是提高车速的关键。
LM1881是针对电视信号的视频同步分离芯片,它可以直接对电视信号进行同步分离,准确地获得所需的视频图像信号,使用者可根据需要对该同步信号进行时序逻辑控制。
图4.3 LM1881应用原理图
图4.3引脚2 为视频信号输入端,摄像头信号即由此输入LM1881 。
引脚1 为行同步信号输出端,它输出的信号波形只是输入的摄像头信号在黑屏电位之下的波形的简单复制(对比图中b 和a)。
引脚3 为场同步信号输出端,当摄像头信号的场同步脉冲到来时,该端将变为低电平,一般维持230us,然后重新变回高电平(如图4.4中的c)。
引脚7 为奇-偶场同步信号输出端,当摄像头信号处于奇场时,该端为高电平,当处于偶场时,为低电平。
奇-偶场的交替处与场同步信号的下降沿同步,也就是和场同步脉冲后的上升沿同步(如图4.4中的d)。
事实上,我们不仅可以用场同步信号作为换场的标志,也可以用奇-偶场间的交替作为换场的标志。
视频信号中除了包含图像信号之外,还包括了行同步信号、行消隐信号、场同步信号、场消隐信号以及槽脉冲信号、前均衡脉冲、后均衡脉冲等,因此,若要对视频信号进行采集,就必须准确地把握各种信号问的逻辑关系。
LM1881就是针对视频信号的同步分离而生产的,LM1881可以从0.5~2V的标准负极性NTSC制、PAL制、SECAM制视频信号中提取行同步、场同步、奇偶场识别等信号,这些信号都是图像数字采集所需要的同步信号,由此便确定采集点在哪一场,哪一行。
本队的连接方式在前面硬件部分已经介绍了。
图像采集原理
摄像头视频信号端接LM1881 的视频信号输入端,同时也接入S12 的一个AD 转换器口(选用AD0)。
LM1881 的行同步信号端(引脚1)接入S12 的一个带中断能力的I/O 口(选用IRQ 口,S12 带中断能力的接口除T 口外还有H 口、P 口、J 口和E 口)。
之所以选用中断IRQ 口是因为,行同步信号(即对应摄像头信号的行同步脉冲)持续时间较短,为了不漏检到行同步信号,若使用普通I/O 口,则只能使用等待查询的方式来检测到行同步信号,这会浪费不少S12 的CPU 资源。
LM1881 的奇-偶场同步信号输出端接S12 的XIRQ口。
采样思路,摄像头是采用隔行扫描的方式,奇场时只扫描画面的奇数线,偶场时只扫描画面的偶数线。
摄像头每场信号的第23 行至第310 行为视频信号,即摄像头每场会扫描产生288 行的视频信号。
为方便设计,我们忽略奇场和偶场在扫描位置上的细微差别,认为奇、偶场的扫描位置相同。
因此,我们只需对这288 行视频信号中的某些行进行采样就足够了。
假设每场采样27 行图像数据,我们可以均匀地采样288 行视频信号中的27 行,例如采样其中的第14 行、第23 行、第32 行、……、第257 行、第266 行,即采样该场信号的第36 行、第45 行、第54 行、……、第279 行、第288 行(每场开始的前22 行视频为场消隐信号)。
当XIRQ 口的信号由高变低或由低变高时,表明新的一场到来了,由此时开始对行同步信号重新计数。
当IRQ 口每检测到一个上升沿,表明一个行同步信号刚过去,让计数变量增1。
当计数变量变为36 时,表明第36 行信号(即第14 行视频信号)开始了,对此行信号进行采样,直到下一个行同步信号到来为止。
保持对每个行同步信号的计数,直到计数变量又增加9 个变为45 时,开始对到来的第45 行信号(即第23 行视频信号)进行采样,直到下一个同步信号到来为止。
如此下去,计数变量每增加7 个,就采样随后的一行视频信号,直到采样完第288 行信号(即第266 行视频信号),然后就结束了对该场信号的采样。
S12 是每9 行视频信号才采样其中一行,因此在这每9 行中那8 行不需要采
样的信号持续的时间内,可让S12 处理别的任务,然后,隔段时间检侧一次PT 口有没有接受过新的上升沿或下降沿(表明有新的行同步信号过去),并相应地给计数变量增1。
这样,既不影响摄像头视频采样,也不耽误智能车定位系统中别的任务的执行。
图像处理
CMOS传回来的视频信号接入LM1881视频分离芯片,分离出模拟视频信号的行同步信号和场同步信号,单片机根据这些同步信号来搭建控制时序,完成信号采集,AD转换。
每场图像采集12行52个点,即图像被单片机采集后存于 的数组中。
采用跳变检测法,识别图像每行中的黑点,进而辨别出图像中1252
的直道,大弯,急弯,还有小S弯等。
黑线提取方法
根据采集点电平高低来提取前方路面黑点信息,低电平(数值小)表示黑点,高电平(数值大)表示白色路面,通过提取黑点位置来判断路况。
黑线提取思路有:
a) 直接利用原始图像逐行扫描,根据设定的阈值提取黑白跳变点;这方法费时且容易受干扰。
b) 黑线宽度有一个范围,在确定的黑线宽度范围内提取有效黑块,这样可
以滤除不在宽度范围内的黑点干扰;
c) 利用黑线的连续性,根据上一行黑线中心的位置来确定本行求出的黑线
中心是否有效;
d) 图像是远处小近处大,所以黑线宽度范围和前后行黑线中心的位置差别
都要动态调整;
e) 求黑线中心时,因为近处的黑线稳定,远处黑线不稳定,所以采用由近
及远的办法;
f) 图像数据量大,全部扫描一遍会浪费很多时间,利用前面已经求出的黑
线中心位置判断出黑线的趋势,从而推断出下一行的黑线大概位置,确定出扫描范围,避免整行逐点扫描,节约时间;
g) 提取出整场所有有效行的黑线中心后,根据预先设定好的权重计算出黑
线中心的加权平均,作为本场的黑线中心。