资讯详情

智能车竞赛技术报告 | 智能视觉组 - 北京科技大学智能视觉组

简 介: 本文设计了智能汽车系统 为核心控制单元,通过CMOS摄像头检测轨道信息,使用数字摄像头收集轨道灰度图,通过动态阈值算法生成二值图像数组,提取轨道识别的黑色导线;通过光电编码器检测模型车的实时速度PID控制算法调节驱动左右电机的速度,实现车辆运动速度和方向的闭环控制。为了提高模型车的速度和稳定性,使用C#、MFC对上位机等调试工具进行了大量的硬件和软件测试。实验结果表明,系统设计方案确实可行。

学 校:北京科技大学队伍名称:北京科技大学智能视觉组参赛队员:范一鸣范一鸣潘依涵陈云青陈云青陈云青陈云青指导教师:马飞???


??随着信息技术的发展,汽车电子模块越来越多,智能汽车领域备受关注。受教育部高等教育部委托(教育部函[2005]号。201),高校自动化专业教学指导委员会主办全国大学生智能汽车竞赛,以汽车电子的快速发展为背景,涵盖控制、模式识别、传感技术、电子、电气、计算机、机械等跨学科技术创意竞赛。

??参赛者必须由竞赛秘书处统一指定,并负责购买竞赛车模型。 32 位微控制器作为核心控制单元,独立构思控制方案和系统设计,包括传感器信号采集处理、控制算法和执行、动力电机驱动、转向舵控制等,完成智能汽车工程的生产和调试,并在指定日期和地点参加现场比赛。参赛队伍的排名(成绩)主要由赛车现场成功完成赛道的时间决定,辅以技术方案和生产工程的质量评分。

??本次全国大学生智能汽车竞赛分为基本四轮组、节能信标组、智能视觉组、电磁越野组、双车接力组、全向行进组、自行车拉力组、专业基础组八组。我们的团队参加了智能视觉组的比赛。本次比赛按照官方规定使用C模型,并使用指定的模型NXP本次比赛设计完成了一系列单片机。

??本篇技术报告主要包括机械系统、硬件系统、软件系统等,详尽地阐述了我们的设计方案,具体表现在硬件电路的设计以及控制算法的部分想法,希望能和其他学校的同学交流沟通,更进一步。

第一章 案设计


1.1系统概述

??摄像头车的整体结构如图所示。微处理器采集模拟CMOS摄像头硬件二值化信号获取轨道边缘信息;通过收集陀螺仪数据分析计算过桥信息;通过收集光电编码器对车轮转速的脉冲计数,获取车辆行驶的速度数据。图像处理、角度和速度由微处理器处理PID控制,最后PWM波输出驱动电机,舵机。

第二章 能车机械


??根据今年组委会的相关规定和智能视觉组的竞争规则,使用新的C模型来完成任务,因此需要一个合理的计划来完成任务。在比赛准备之初,我们对模型进行了详细的系统分析。但由于新C模型的精度不是很高,试图在规则允许的范围内改变模型,提高模型的整体精度,以提高车辆的驾驶稳定性。本章将主要介绍智能汽车模型的机械结构和调整方案。

2.1车身机械方案

??根据十六届智能车竞赛规则对智能视觉组的要求,我们选择新的C车模完成任务。

2.机械建模四轮车模

??东莞博思电子数字科技有限公司提供的新型C型车型是本次比赛的四轮赛车模型。车型外观如图2所示.1所示:

▲ 图2 1 四轮车模俯视图

2.2.调整14轮车模前轮倾角

??四轮车模后桥固定,后桥变化不大。在调试过程中,我们发现前轮对模型的运行有很大的影响,由于前轮轴与车轮之间的间隙较大,对高速转向中心的影响较大,会导致模型车在高速转向下的转向不足。然而,这是规则中禁止更改的部分,因此为了尽可能减少转向舵机的负载,我们调整了前轮的安装角度,即前轮定位。

??前轮定位的作用是保证汽车直线行驶的稳定性,轻转向,减少轮胎磨损。前轮为转向轮,其安装位置由四个可调参数决定,如主销内倾、主销后倾、前轮外倾和前轮前束,从而实现转向轮、主销和前轴在车架上的位置关系。

??在实际调试中,我们发现适当增加内倾角可以增加转弯时车轮与地面的接触面积,从而增加地面的摩擦程度,使车辆转向更加灵活,减少摩擦不足造成的转向不足。此外,与以往的模型相比,我们智能视觉组设计的模型具有更高的重心和更高的前端,因此我们对主销售后倾斜做了一些调整。

2.2.调整底盘高度

??在保证坡道顺利通过的前提下,尽量减少底盘,从整体上降低模型车的重心,使模型车转弯时更加稳定高速。但底盘过低会导致上桥刮底盘,影响车型正常行驶。

2.2.3齿轮啮合和编码器安装

??考虑到智能视觉组需要停车的问题,我们对汽车齿轮啮合的要求很高。如果啮合不好,将对汽车的正常驾驶和停车有很大的影响。为了更准确地获得电机转速的返回值,本模型安装了与上次相同的编码器。最后,综合考虑了读数精度和重心分布两个因素,采用齿轮安装协调,尽量保持传动齿轮轴平行,传动部分轻松光滑,无噪音过大、卡齿、丢失。如图2.2所示。

▲ 图2 2 编码器安装

2.2.4 舵机安装结构安装

??考虑到主板的安装方便和车模的转向性能,我们大大调整了舵机的安装结构。通过舵机驱动左右横拉杆实现比赛车模的转向。舵机的旋转速度和功率是肯定的。加快转向机构响应速度的唯一途径是优化舵机的安装位置和力矩延长杆的长度。由于功率是速度和扭矩乘积的函数,过度追求速度必然会失去扭矩,扭矩太小也会导致转向缓慢。因此,在设计中应综合考虑转向机构响应速度与舵机扭矩的关系,通过优化获得最佳转向效果。通过计算实际参数,我们得到了一套稳定高效的参数和结构。

??最后,我们设计了一套舵机连片(转向拉杆),综合考虑了速度与扭矩的关系,并简化了安装方法,根据模型底盘的具体结构实现了预期目标。

??至于舵机的安装方式,我们实验室的主流有直立安装和倒置安装,我们的舵机安装如图2所示.3所示。

▲ 图图2 3 舵机安装

2.2.5 舵机转角分析

??车模转向运动主是靠舵机和前轮来实现的,因此,关于舵机和前轮转向关系的分析就显得尤为重要。   依据数学建模,通过MATLAB进行分析后,得出了如下结果。

  右前轮转角(绿色)及舵机转角(红色)关于转弯半径关系图,如图2.4所示。

  舵机转角关于(右)前轮转角关系图,如图2.5所示。

  由以上两图得出结论:

  • 舵机转角变化范围即使较小,转弯半径的变化也会很大,因而对多级的控制显得尤为很重要。

  • 前轮打角越小,随着打角变化,转弯半径变化越明显,即小转角对半径的变化会更加明显,因而从前桥到舵机连片的机械固定需牢靠,尽量减少虚位。

  • 舵机转角关于前轮转角呈线性变化,在思路上为通过舵机转角改变从而获得所要前轮转角提供便利。   改变前束,获得新的右前轮转角(绿色)及舵机转角(红色)关于转弯半径关系图,如图2.6。通过与图2.4的对比,获

  得两种前轮方案对转角的影响,从而选择合适的方案。

▲ 图2.6

2.2.6 摄像头的安装

  为了降低整车重心,需要严格控制CMOS摄像头的安装位置和重量,我们自行设计了轻巧的铝合金夹持组件并采用了碳纤维管作为安装CMOS的主桅,这样可以获得最大的刚度质量比,整套装置具有很高的定位精度和刚度,使摄像头便于拆卸和维修,具有赛场快速保障能力。摄像头的安装如图2.7所示。

▲ 图2.7

2.2.7 运用mini摄像头完成任务设计

  在mini摄像头固定的设计时,由于mini摄像头需要旋转,我们用了一个小金属舵机带动mini旋转,这样既可以减小体积,又可以减轻重量,固定方式和CMOS摄像头一样,该方案具有高稳定性以及高鲁棒性的优点。经过实际测试后,该方案可行性得到了验证。

 

第三章 路设计说明


3.1硬件方案设计

  我们主要从系统的稳定性、可靠性、高效性、实用性、简洁等方面来考虑硬件的整体设计。从最初方案设定到最终方案的敲定,我们经历各种讨论与大的改动才有了如下的硬件方案。

  可靠性与稳定性是一个系统能够完成预设功能的最大前提。在原理图与PCB的设计过程中,我们考虑到各个功能模块的电特性以及之间的耦合作用。对易受干扰的模块做了电磁屏蔽作用,而其他部分则做了相应的接地、滤波、模拟与数字电路的隔离等。

  高效与实用性是指本系统的各模块能充分完美的实现相应的功能。从以下两点可以体现出:

  1. 视频信号的提取一般有三种方法:片内AD转化、基于TLC5510的8位并行AD、硬件二值化。第一种方通过片内AD转换把连续的模拟视频信号转为数字信号存储起来。第二种方法通过外部AD芯片直接把视频信号转为并行的数字信号,而处理芯片只要通过普通IO来读取存储;前者不需要外部电路但浪费系统时间,对于主频不高的处理芯片会造成很大负担。而后者虽然精度高但浪费过多的硬件资源。硬件二值化是通过比较器去捕捉视频信号的跳变沿,这不仅减少了采集时间,也节约硬件资源,还省去了许多存储空间。但硬件二值化灵活性差,在面对复杂光线环境,固定阈值无法根据需求动态调整局部阈值,无法解决光线分布不均匀的赛道环境。数字信号虽然占用运算资源,但在芯片运算能力满足的条件下,可以通过程序复杂算法应对光线分布不均匀的赛道环境,适应能力更强。

  2. 对于电机驱动,由于新C车模电机对驱动性能要求高。我们设计了由单独的驱动芯片组成驱动器,该驱动器瞬间驱动电流最大可以达到几十安。

  简洁是指在满足了可靠、高效的要求后,为了尽量减轻车模的负载,降低模型车的重心位置,应使电路设计尽量简洁,尽量减少元器件使用数量,缩小电路板面积,使电路部分重量轻,易于安装。在设计完原理图后,注重PCB板的布局,优化电路的走线,整齐排列元器件,最终做到电路板的简洁。

3.2传感器选择

3.2.1摄像头选择

  CCD摄像头具有对比度高、动态特性好的优点,但需要工作在12V电压下,对于整个系统来说过于耗电,而且CCD体积大,质量重,会抬高车体的重心,这对于高速情况下小车的行驶非常不利。

  与之相比,COMS摄像头具有体积小、质量轻、功耗低,图像动态特性好等优点,因为小车对图像的清晰度,分辨率要求并不高,所以选用COMS摄像头。

  对于摄像头的选择,主要考虑以下几个参数:   1. 芯片大小   2. 自动增益   3. 分辨率   4. 最小照度   5. 信噪比   6. 标准功率   7. 扫描方式

  其中芯片大小主要会对视场的范围会有影响,扫描方式主要有追行扫描以及隔行扫描,像ov5116就是隔行扫描。

  市面上的摄像头主要分为数字和模拟两种,数字摄像头主要有OV7620,OV6620,OV7670,OV7725,模拟摄像头主要有OV5116,BF3003,MT9V136。大多数摄像头都支持sccb通信,可以很好的实现单片机与摄像头之间的交互。

  智能车的摄像头队图像的分辨率要求并不高,但是对动态特性要求非常高,特别是小车在高速行驶入弯或者出弯的时候,图像变化较大,这就对摄像头的自动增益有较高的要求。一般来说,在摄像头图像发生突变时,感光芯片本身会有一段适应时间,这段时间要求越小越好。

  我们先后试用了OV5116、MT9V022、OV7725、BF3003、MT9V136以及PC1030N等摄像头,后四种均为彩色摄像头,在经过硬件二值化后可以取其有效信息,与黑白数字摄像头得到的信息类似。经过对比,虽然后四种摄像头图像效果更好,动态性能也更好,但是在弯道、回环等元素中由于自动曝光导致得到赛道信息不准确,在智能车应用中MT9V022已足够满足需求,因此我们最终选择了MT9V022数字摄像头。

3.2.2陀螺仪选择

  本届大赛对陀螺仪的型号没有限制,经过挑选我们最终确定陀螺仪使用L3G4200D。

  L3G4200D该产品为ST推出采用一个感应结构检测三条正交轴向运动的3轴数字陀螺仪。L3G4200D是三轴共用一个感应结构,这一突破性概念可以消除轴与轴之间的信号干扰,避免输出信号收到干扰信号的影响。

3.2.3编码器选择

  为了使用闭环控制,我们在汽车模型上附加了编码器。经过机械和电路性能的考虑和挑选,最终我们选用了ABI Mini增量式旋转编码器。

  和其他元件相比,选用编码器可以使电路更加完善,信号更加精确。编码器功耗低,重量轻,抗冲击抗震动,精度高,寿命长,非常实用。编码器内部无上拉电阻,因此编码器接口出需要设计上拉电阻。同时为了保证波形的稳定,主控板上使用了74HC14非门隔离。微处理器自身具有正交解码功能,因此这里无需使用任何外围计数辅助器件,只需要将接口连接到单片机上相应的接口即可。接口如图3.1和图3.2所示。

▲ 图3.1 编码器接口

▲ 图3.2 非门电路

3.3电路模块实现

3.3.1电源管理模块

  首先了解一下不同电源的特点,电源分为开关电源和线性电源,线性电源的电压反馈电路是工作在线性状态,开关电源是指用于电压调整的管子工作在饱和和截至区即开关状态的。线性电源一般是将输出电压取样然后与参考电压送入比较电压放大器,此电压放大器的输出作为电压调整管的输入,用以控制调整管使其结电压随输入的变化而变化,从而调整其输出电压,但开关电源是通过改变调整管的开和关的时间即占空比来改变输出电压的。

  从其主要特点上看:线性电源技术很成熟,制作成本较低,可以达到很高的稳定度,波纹也很小,而且没有开关电源具有的干扰与噪音,开关电源效率高、损耗小、可以降压也可以升压,但是交流纹波稍大些。

  电源模块对于一个控制系统来说极其重要,关系到整个系统是否能够正常工作,因此在设计控制系统时应选好合适的电源模块。竞赛规则规定,比赛使用智能汽车竞赛统一配发的标准车模用7.2V 2000mAh Ni-cd供电或者使用锂电池(两节18650,2AH,配备保护板),我们在多次尝试对比之后选择采用锂电池。而路径识别的CCD传感器均使用的是3.3V的电源。单片机系统、陀螺仪、编码器需要5V电源,伺服电机工作电压范围为4V到6V(为提高伺服电机响应速度,采用7.2V 供电),直流电机可以使用锂电池直接供电,智能汽车电压调节电路示例见图3.3。

▲ 图3 3 电源管理模块原理图

  在电源管理模块中,我们选用了5片TPS7350和2片TPS7333,其中DCDC5-12和IR2184S共用一个5V电源,逻辑元件和编码器共用另一个5V电源,OpenArt mini单独使用一个5V电源,主单片机单独使用一个5V电源,其余模块共用3.3V电源。为了使摄像头的供电稳定,满足摄像头在高速下的运行要求,我们外加了一块5V电源单独给摄像头供电。

  16届规则规定,AI视觉组的微控制器使用 NXP 公司的任意一款单片机。经过考虑,我们决定采用 微处理器作为主控单片机。我们最先使用TPS7350作为 微处理器的供电芯片,但是在实际使用过程中发现TPS7350容易出现过热保护的问题,考虑到 微处理器的功耗比较大,我们决定不采用LDO作为 微处理器最小系统的供电芯片,而是更换为DC-DC降压芯片。我们向后尝试了AOZ1280CI和MP1584EN这两款芯片,实际使用一段时间后,我们最终确定使用MP1584EN。其原理图和PCB布局如下:

▲ 图3 4 ME1584EN-3.3V稳压原理图

▲ 图3 5 ME1584EN-3.3V稳压PCB布局

3.3.2电机驱动模块

  常用的电机驱动有两种方式:

  一、集成电机驱动芯片;

  二、采用N沟道MOSFET和专用栅极驱动芯片设计。市面上常见的集成H桥式电机驱动芯片中,33886型芯片性能较为出色,该芯片具有完善的过流、欠压、过温保护等功能,内部MOSFET导通电阻为120毫欧,具有最大5A的连续工作电流。使用集成芯片的电路设计简单,可靠性高,但是性能受限。由于比赛电机内阻仅为几毫欧,而集成芯片内部的每个MOSFET导通电阻在120毫欧以上,大大增加了电枢回路总电阻,此时直流电动机转速降落较大,驱动电路效率较低,电机性能不能充分发挥。

  由于分立的N沟道MOSFET具有极低的导通电阻,大大减小了电枢回路总电阻。另外,专门设计的栅极驱动电路可以提高MOSFET的开关速度,使PWM控制方式的调制频率可以得到提高,从而减少电枢电流脉动。并且专用栅极驱动芯片通常具有防同臂导通、硬件死区、欠电压保护等功能,可以提高电路工作的可靠性。

     IR公司号称功率半导体领袖,所以我们主要在IR公司的产品中进行选择。其中IR2184型半桥驱动芯片可以驱动高端和低端两个N沟道MOSFET,能提供较大的栅极驱动电流,并具有硬件死区、硬件防同臂导通等功能。使用两片 IR2184型半桥驱动芯片可以组成完整的直流电机H桥式驱动电路。由于其功能完善,价格低廉容易采购,所以我们选择它进行设计,如图3.4所示。

▲ 图3 6 IR2184应用图

     选择MOSFET时主要考虑的因素有:耐压、导通内阻和封装。智能汽车电源是额定电压为7.2V的电池组,由于电机工作时可能处于再生发电状态,所以驱动部分的元件耐压值最好取两倍电源电压值以上,即耐压在16V以上。而导通内阻则越小越好。封装越大功率越大,即同样导通电阻下通过电流更大,但封装越大栅极电荷越大,会影响导通速度。常用的MOSFET封装有TO-220、TO-252、SO-8等,TO-252封装功率较大、而栅极电荷较小。于是我们最终选择了IR公司TO-252封装的LR7843型N沟道MOSFET,VDSS=55伏、RDS(on)=8.0毫欧、ID=110安。

  

▲ 图3 7 电机驱动分析图

  这个驱动设计单从信号逻辑上分析比较容易理解,但要深入的理解和更好的应用,就需要对电路做较深入的分析,对一些外围元件的参数确定做理论分析计算。图3.8中IC是一个高压驱动芯片,驱动2个半桥MOSFET。Vb,Vs为高压端供电;Ho为高压端驱动输出;COM为低压端驱动供电,Lo为低压端驱动输出;Vss为数字电路供电.此半桥电路的上下桥臂是交替导通的,每当下桥臂开通,上桥臂关断时Vs脚的电位为下桥臂功率管Q2的饱和导通压降,基本上接近地电位,此时Vcc通过自举二极管D对自举电容C2充电使其接近Vcc电压.当Q2关断时Vs端的电压就会升高,由于电容两端的电压不能突变,因此Vb端的电平接近于Vs和Vcc端电压之和,而Vb和Vs之间的电压还是接近Vcc电压.当Q2开通时,C2作为一个浮动的电压源驱动Q2;而C2在Q2开通其间损失的电荷在下一个周期又会得到补充,这种自举供电方式就是利用Vs端的电平在高低电平之间不停地摆动来实现的。

  由于自举电路无需浮动电源,因此是最便宜的,如图所示自举电路给一只电容器充电,电容器上的电压基于高端输出晶体管源极电压上下浮动。图2.6中的D和C2是IR2184在脉宽调制(PWM)应用时应严格挑选和设计的元器件,根据一定的规则进行计算分析;并在电路实验时进行调整,使电路工作处于最佳状态,其中D是一个重要的自举器件,应能阻断直流干线上的高压,其承受的电流是栅极电荷与开关频率之积,为了减少电荷损失,应选择反向漏电流小的快恢复二极管,芯片内高压部分的供电都来自图中自举电容C2上的电荷;为保证高压部分电路有足够的能量供给应适当选取C2的大小.

  MOSFET具有相似的门极特性,开通时需要在极短的时间内向门极提供足够的栅电荷,在自举电容的充电路径上,分布电感影响了充电的速率,下桥臂功率管的最窄导通时间应保证自举电容有足够的电荷以满足栅极所需要的电荷量再加上功率器件稳态导通时漏电流所失去的电荷量.因此,从最窄导通时间为最小值考虑,自举电容应足够小;综上所述,在选择自举电容大小时应考虑,既不能太大影响窄脉冲的驱动性能;也不能太小影响宽脉冲的驱动要求,应从功率器件的工作频率、开关速度、门极特性等方面进行选择、估算后调试而定。

3.3.3视频处理模块

  我们的智能模型车自动控制系统中使用黑白全电视信号格式CMOS摄像头采集赛道信息。摄像头视频信号中除了包含图像信号之外,还包括了行同步信号、行消隐信号、场同步信号、场消隐信号以及数字信号等。因此,若要对视频信号进行采集,就必须通过SCCB设置数字摄像头的部分参数。

3.3.4 OpenArt mini

  对于AI视觉组来说,要完成AI部分的识别二维码、数字、水果、动物等任务,OpenArt mini是必不可少的。我们购买了逐飞的成品摄像头,通过串口将识别的信息与主单片机进行通信,从而执行对应的任务。

3.3.5接口及外接模块

  对于单片机最小系统、陀螺板、视频模块、OpenArt mini,我们在主板上设计了外接接口,用于连接。

▲ 图 3.8: 微处理器 控制最小系统接口

▲ 图3 9: 微处理器 图像最小系统接口

  我们最小系统的原理图参考了龙邱公司、NXP公司的 微处理器最小系统原理图,我们更改了内核供电方案,屏蔽了没有使用到的引脚。在软件上,我们使用了龙邱公司提供的开源库。

  在调试过程之中,我们需要实时的了解与掌握一些车的运行状态,比如说传感器的状态,舵机的转角等,调试时用OLED显示屏将这些参数显示出来,让我们实时的监测车的状态,从而做出判断,这样很大程度的方便了对车的调试。

 

第四章 能车控制软件


  效的软件程序是智能车高速平稳自动寻线的基础。我们设计的智能车系统采用CMOS摄像头进行赛道识别,图像采集及校正处理就成了整个软件的核心内容。在智能车的转向和速度控制方面,我们使用了鲁棒性很好的经典PID控制算法,配合使用理论计算和实际参数补偿的办法,使智能车能够稳定快速寻线。

4.1赛道中心线提取及优化处理

4.1.1原始图像的特点

  在单片机采集图像信号后需要对其进行处理以提取主要的赛道信息,同时,由于交叉道、起点线的存在,光线、杂点、赛道远处图像不清楚的干扰,图像效果会大打折扣。因此,在软件上必须排除干扰因素,对赛道进行有效识别,并提供尽可能多的赛道信息供决策使用。

  在图像信号处理中我们提取的赛道信息主要包括:赛道两侧边沿点位置、通过校正计算的赛道中心位置,中心点规划面积,赛道变化幅度,赛道类型判别。

  由于摄像头自身的特性,图像会产生梯形式变形,这使得摄像头看到的信息不真实。因此我们利用赛道进行测量,创建函数还原出了真实赛道信息。原始图像是一个将数字图像经模拟电路转换得到的二维数据矩阵,矩阵的每一个元素对应一个像素点,近处的图像大,黑线为梯形状。

  程序上将每一行的黑白跳变点(跳变点按从右到左的顺序)记录下来,保存到两个二维数组里(分别表示上升沿、下降沿)。通过遍历上升沿和下降沿可以完成赛道边沿的提取。

  摄像头采集到几种典型赛道图像如图4.1~图4.4所示。

4.1.2赛道边沿提取

  边沿提取算法的基本思想如下:

(1) 直接逐行扫描原始图像,根据设定的阈值提取黑白跳变点; (2) 赛道宽度有一个范围,在确定的赛道宽度范围内提取有效赛道边沿,这样可以滤除不在宽度范围内的干扰; (3) 利用赛道的连续性,根据上一行白块的位置和边沿的位置来确定本行的边沿点; (4) 求边沿点时,因为近处的图像稳定,远处图像不稳定,所以采用由近及远的办法; (5) 进出十字的时候,通过校正计算出边沿角度可较好的滤除十字并补线; (6) 人字元素是整个赛道边沿角度是尖锐角的部分,根据这个特征通过计算边沿的角度以及内侧两条边沿包络形成的面积可以有效的识别出人字;为了排除赛道方向的突变对控制造成干扰,将人字建模成为具有一定曲率的弯道,并进行补线; (7) 由于权重分配的问题,如果不对障碍进行一定的处理的话,控制量对于远端的障碍相应比较小,可能在很接近障碍的时候才有响应,这样很容易造成撞到障碍,为了消除这种影响,我们利用曲线包络的形式 将障碍作用的区域人为扩大,这样有效避免了碰撞障碍的危险。

  边沿提取算法的程序流程如图4.5所示。

  处理后得到的黑线中心如图4.6~4.9图所示。

4.1.3图像校正

  图像校正的实现如下: (1) 调整好摄像头位置、前瞻,固定好;将摄像头对准黑白相间的赛道板,然后用电视观看摄像头图像,用照相机对准电视拍照(见图4.10);

(2) 从照片中截取出赛道部分,然后用matlab编写程序,载入图片并进行相应的桶形变换、透视变换,调整好参数,生成校正表和反校正表;

▲ 图4.11 校正后的效果

(3) 在单片机程序中加入常量表,然后就可进行相应的校正和反校正变换了。 (4) 用上位机观察的校正效果如下:

▲ 图4.12 上位机模拟校正

4.1.4推算中心

  通过之前提取的赛道边沿数据推算中心:当左右边沿点总数较少时返回;若只有单边有边沿点数据,则通过校正对单边数据按法线平移赛道宽度一半的距离;当能找到与一边能匹配上的另一边沿点时则直接求其中心作为中心点。推算完中心点后,对中心点进行均匀化,方便之后的控制。计算出的中心点效果如下:

4.1.5摄像头图像入库的处理

  我们的策略是使用摄像头后车入库。车子接到球跑完赛道后半段,图像在车库前先识别出车库的特征,判断出当前图像为车库后,寻找入库补线的起始点和终止点,然后调用补线函数,在图像校正域中补一条半径为赛道宽度的四分之一圆弧,对左右边界点进行均匀化处理后,就得到了以上图像。

4.1.6路径选择

  根据往届比赛以及本届华北赛的经验,赛车能否以最短的时间完成比赛,与赛车的速度和路径都有着密切的关系,因此,如何使赛车以一个最合理、最高效的路径完成比赛是提高平均速度的关键。   对于赛车路径的优化,我们从以下三个方面来完成:

     根据我们的分析,当赛车采集到的图像能够覆盖一个比较完整的S弯道时,通过加权算法计算出来的中心就会处于视场中央附近,此时赛车会以一个比较好的路径快速通过S弯道;相反,如果视场无法覆盖一个完整的S弯道,赛车就会误处理为普通的单向弯道,这样赛车的速度就会大大减慢。因此,尽量增大视场的长度和宽度就很有必要了。

  视场的长度与单片机可以处理的图像行数成正比。我们采用由运算放大器制作的模拟比较器进行图像二值化,处理速度较A/D转换有了很大提高,大大增加了单片机处理的图像行数,最终处理行数为95行(隔3行提取一行),达到的视场长度为200多cm。为了增加视场宽度,增加每行采集的图像点数之外,我们采用了广角镜头,从而有效地增加了视场宽度。

     对整场有效行的中心求加权平均值的算法,在低速情况下可以有效地优化赛车路径,但在赛车速度提高到一定程度之后由于过弯时的侧滑,路径不是很好。而由于图像分布不均,三分之二的行分布于车体前方40cm的范围内,求出的加权平均值受车体近处的图像影响较大,因此整场图像求加权的算法对于高速情况下的路径优化效果不是很明显。

  为了解决这个问题,我们对于参与加权计算的图像行数及权重进行了处理,减小了车体前部50cm范围内的图像参与加权的行数和权重,同时增大视场前部图像的权重。在经过长期调试之后,得到了一套比较合适的参数,能够有效优化高速情况下的赛车路径。

     对于在校正后的图像数据中求得的中心线,反校正到原始图像后存在一行中含有多个中心点的情况。在通常情况下,这种情况出现在较远的视野中,但由于我们增大了视场前部图像的权重,这些中心点对权重的影响极大,导致车模容易出现掉轮甚至冲出赛道的现象。

  为了解决这个问题,我们利用数学方法求出了中心线的折点,对折点之后的中心点单独处理,使车模不再出现掉轮的现象。

4.2折点求取原理简介

  折点是指数学中的极值点,即一阶导数为0的点,但一阶导数为0的点不一定都是极值点,究竟是否是极值点,还要判断二阶导数。在图像的离散数据中,极值点的离散化计算公式如式如下:

( Y n − 1 − Y n ) ⋅ ( Y n − Y n + 1 ) < 0 \left( {Y_{n - 1} - Y_n } \right) \cdot \left( {Y_n - Y_{n + 1} } \right) < 0 (Yn−1​−Yn​)⋅(Yn​−Yn+1​)<0

  但这个公式在图4.18中存在一些问题,对于(Xn,Yn)点,由于 ( Y n − Y n + 1 ) \left( {Y_n - Y_{n + 1} } \right) (Yn​−Yn+1​) 为0,所以该点不会被判断为极值点。但我们认为这样的点也能反映图像的特征,因此对上式作出修改得到新的折点计算方法:

( Y n − 1 − Y n ) ⋅ ( Y n − Y n + 1 ) ≤ 0 & & ! ( 0 = = ( Y n − 1 − Y n ) & & 0 = = ( Y n − Y n + 1 ) ) \left( {Y_{n - 1} - Y_n } \right) \cdot \left( {Y_n - Y_{n + 1} } \right) \le 0\& \& !\left( {0 = = \left( {Y_{n - 1} - Y_n } \right)\& \& 0 = = \left( {Y_n - Y_{n + 1} } \right)} \right) (Yn−1​−Yn​)⋅(Yn​−Yn+1​)≤0&&!(0==(Yn−1​−Yn​)&&0==(Yn​−Yn+1​))

  极值点是针对某一个坐标轴而言的,对上式稍作修改,即可得到针对另一个坐标轴的极值点的计算公式:

( X n − 1 − X n ) ⋅ ( X n − X n + 1 ) ≤ 0 & & ! ( 0 = = ( X n − 1 − X n ) & & 0 = = ( X n − X n + 1 ) ) \left( {X_{n - 1} - X_n } \right) \cdot \left( {X_n - X_{n + 1} } \right) \le 0\& \& !\left( {0 = = \left( {X_{n - 1} - X_n } \right)\& \& 0 = = \left( {X_n - X_{n + 1} } \right)} \right) (Xn−1​−Xn​)⋅(Xn​−Xn+1​)≤0&&!(0==(Xn−1​−Xn​)&&0==(Xn

标签: 轴向屏蔽电感aoz1014aic集成电路功率电感自动组装机电容式接近开关ki02092bf5a二极管2bf5a6ni37ic集成电路

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台