中南大学比亚迪双子座队飞思卡尔杯全国大学生智能汽车邀请赛技术报告.docx
《中南大学比亚迪双子座队飞思卡尔杯全国大学生智能汽车邀请赛技术报告.docx》由会员分享,可在线阅读,更多相关《中南大学比亚迪双子座队飞思卡尔杯全国大学生智能汽车邀请赛技术报告.docx(42页珍藏版)》请在冰豆网上搜索。
中南大学比亚迪双子座队飞思卡尔杯全国大学生智能汽车邀请赛技术报告
第一章引言1
1.1背景介绍1
1.2整车设计思路1
1.2.1控制系统1
1.2.2赛车整体结构设计2
1.2.3电源系统3
1.3文章结构3
第二章机械结构调整5
2.1总体思路5
2.2底盘调整5
2.3舵机安装5
2.3.1舵机延时性分析5
2.3.2舵机的安装与控制延时解决办法7
2.4差速机构调整8
2.5传感器支架的设计安装9
2.6电路板安装9
第三章硬件设计11
3.1总体方案11
3.2电源模块11
3.2.1主电机供电与单片机供电分离电路11
3.2.2单片机供电电路12
3.2.3CMOS供电电路12
3.2.4ADC供电电路13
3.3视频信号检测模块13
3.3.1CMOS视频信号时序13
3.3.2外部高速AD转换14
3.3.3电压跟随14
3.3.4视频信号分离14
3.4电机驱动模块15
第四章软件设计16
4.1方向控制方案16
4.1.1方向控制数据的选取16
4.1.2方向控制坐标的校正17
4.1.3方向控制曲率的计算……………………………………………...17
4.2道路形状精确识别算法18
4.2.1直道的识别19
4.2.2大弯的识别19
4.2.3急弯的识别20
4.2.4“大S型”道的识别20
4.2.5“小S型”道的识别21
4.2.6圆道的识别21
4.2.7交叉线的识别22
4.2.8起跑线的识别23
4.3分类进行方向控制算法24
4.3.1直道的方向控制算法24
4.3.2大弯的方向控制算法24
4.3.3急弯的方向控制算法24
4.3.4“大S型”道的方向控制算法25
4.3.5“小S型”道的方向控制算法25
4.3.6圆道的方向控制算法25
4.3.7交叉线的方向控制算法26
4.3.8起跑线的方向控制算法26
4.4速度控制方案26
4.4.1速度控制的重要性26
4.4.2速度控制的算法设计27
4.5棒-棒控制算法28
4.5.1棒-棒控制算法简介28
4.5.2棒-棒控制算法用于该赛车系统28
4.5.3棒-棒控制与PID控制两种方法结合的必要性28
4.6PID控制算法29
4.6.1PID控制算法简介29
4.6.2数字PID控制算法29
4.7经典PID算法实现速度的控制32
4.7.1经典PID算法实现速度控制的计算机仿真32
4.7.2经典PID算法实现速度控制的具体实现32
4.7.3PID参数调节33
4.8控制系统实时性能分析33
第五章仿真与调试35
5.1Plastid软件仿真35
5.2调试36
5.2.1系统硬件调试36
5.2.2摄像头调试36
5.2.3软件系统调试36
第六章赛车主要技术参数38
第七章总结与展望39
7.1总结39
7.2展望40
参考文献42
第一章引言
1.1背景介绍
全国大学生智能汽车竞赛是在统一汽车模型平台上,使用飞思卡尔半导体公司的8位、16位微控制器作为核心控制模块,通过增加道路传感器、设计电机驱动电路、编写相应软件以及装配模型车,制作一个能够自主识别道路的模型汽车,按照规定路线行进,以完成时间最短者为优胜。
该竞赛是涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械及车辆工程等多个学科的科技创意性比赛。
全国大学生智能汽车竞赛已经成功举办了四届,比赛规模不断扩大、比赛成绩不断提高。
通过比赛促进了高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。
[1]
从2009年10月开始,我们就开始着手准备这项赛事。
历时10个月时间,经历了机械构造、硬件方案、算法思路的不断创新,这些创新体现在设计理念上,也贯穿赛车制作过程的始终。
由于这些创新,赛车各方面综合性能得到提升,并且获得了良好的赛场表现。
本技术报告将详细介绍我们为第五届“飞思卡尔”杯全国大学生智能汽车邀请赛而准备的智能车系统方案。
1.2整车设计思路
1.2.1控制系统
智能车系统是一个相对复杂的反馈系统。
CMOS摄像头采集的赛道图像信息、光电编码器采集到的车体运行速度、加速度传感器采集到的车体纵向和横向加速度,是反馈控制系统的输入量。
执行器(直流电机和伺服舵机)以及模型赛车构成反馈系统的装置。
飞思卡尔S12系列的16位单片机是系统的控制器。
在智能车系统的搭建到赛车快速、稳定地按照赛道行驶的整个过程中,反馈原理是我们分析问题和解决问题的基本原理。
图1.1智能车控制系统
1.2.2赛车整体结构设计
关于赛车的整体结构布局(如图1.2所示),我们主要思路是:
减轻车体重量,电路板模块化处理,尽量降低并合理调整车体重心。
为此,我们将电路板体积做到了最小,在双面板情况下集成度做到了最高;选用轻质单板CMOS摄像头;选用轻质碳素合金支杆安装摄像头;尽可能的降低了摄像头高度;微控制板与大功率驱动板分开安装;
图1.2整车布局
1.2.3电源系统
电源模块主要包括单片机电源模块、舵机电源模块、摄像头电源模块。
电源模块示意图:
图1.3电源模块
由于组委会提供的是7.2v的直流电源,而不同模块需要不同的电压,因此需要选择合适的稳压芯片以得到相应的电压。
单片机电源模块我们选用LP3853ES—5.0芯片,它是国家半导体生产的线性低压差稳压芯片,它只要有0.1v的压差就可以输出稳定电压,压差达到0.3v就可以输出最大电流3A,其输入的最高电压为7v,输出5v。
其典型应用电路图如图
图1.4LP3853典型电路图
舵机电源是6v,我们采用LM317T芯片为其供电,因为提高舵机的电压可以提高舵机的反应时间(但舵机寿命会大大缩短),LM317T的输出电压从1.2v道37v可调节,我们选用该芯片是为了调节电压以调节舵机反应时间。
摄像头选用CMOS摄像头,标准电源电压是12v,由MAX1771开关稳压芯片给它供电。
该芯片输入电压范围大,效率高。
1.3文章结构
技术报告分七个章节:
第一章节主要是对模型车设计制作的主要思路以及实现的技术方案概要说明,提出技术报告的行文框架。
第二章介绍了赛车机械改造的总体思路,并详细说明了机械结构调整情况。
第三章说明系统的硬件实现。
第四章说明方向控制和速度控制算法设计。
第五章介绍仿真和调试的方法。
第六章是赛车的具体参数。
第七章总结了整个制作过程中的创新点和不足之处,提出了下届备赛过程的努力方向。
第二章机械结构调整
2.1总体思路
关于赛车机械结构的调整,我们主要从以下几个方面考虑:
①车体重量:
比赛规则规定,智能车的驱动电机和传动机构不允许更改,意味着赛车的最大驱动力是一定的。
要想提高赛车的平均速度,必须提高其加速和制动性能,在驱动力一定的情况下,尽量减轻车体的重量是必要的,我们将电路板体积做到了最小,在双面板情况下集成度做到了最高。
②重心安排:
导引线弯道的最小半径为0.6米,要使得智能车能在弯道上高速通过,必须防止侧滑和侧翻,尤其是侧翻。
重心位置是影响侧翻的最关键的因素,所以设计中应尽量降低智能车的重心。
为此,选用轻质单板CMOS摄像头;选用轻质碳素合金支杆安装摄像头;尽可能的降低了摄像头高度;微控制板与大功率驱动板分开安装;
2.2底盘调整
在独立悬架下摆臂与底板之间可以通过增减垫片来调整底盘离地间隙。
垫片有1mm和2mm两种规格。
一片垫片不加,车前部离地间隙为9mm,故离地间隙的调整范围为9~12mm。
由于采用CMOS摄像头式布置结构,为保证车模高速行驶时的稳定性并降低重心,将底盘离地间隙设为最低9mm。
2.3舵机安装
2.3.1舵机延时性分析
舵机的响应时间对于控制非常重要,舵机能够及时响应微控制器发出的指令并产生相应的动作可以保障智能车在高速行驶过程中能够及时转弯,不脱离轨道。
否则,即使控制算法再好,输出控制信号后,执行器(舵机)没有动作,则也达不到预期的控制效果。
例如,微控制器已经根据赛道信息发出了转弯指令,但舵机响应控制信号延迟,则会出现已经到了弯道跟前,但是舵机却还没有转动的情况,智能车在惯性的作用下依旧向前冲,等舵机转动时小车车身已经偏离出轨道了。
情况好的,在减速刹车后经过一段时间还能转回来,驶上正常的轨道;情况坏的则会冲出赛道,导致摄像头检测不到正确的赛道信息,不能够继续行驶。
在之前的比赛中,有很多队伍都提到了舵机的响应会滞后,但是没有分析原因,导致有些队伍无法对症下药,不得不以牺牲速度为代价,来换取智能车平安完成比赛。
在此,我们对舵机延时的原因做一个比较详细的分析,以便做出相应的改进。
①微控制器输出周期延时
前面已经提及,我们利用S12微控制器内部集成的PWM模块产生周期一定,占空比(及脉宽)可调的PWM波形。
而控制PWM波周期和占空比是通过S12微控制器的两个8位的内部寄存器来实现的,它们是PWMPERx(PWMPeriod)和PWMDTYx(PWMDuty),其中x代表0~7通道的序号。
设定好这两个寄存器的值后(具体的设置还与系统总线频率和其它寄存器的值相关),对应的通道就会一直输出一个固定频率的PWM波,直到改变这两个寄存器的值为止[5]。
当智能车检测到前方有弯道时,经过运算得出需要的占空比和所对应的寄存器的值,将这个值赋给PWMDTYx寄存器,随后输出PWM波的占空比就会发生相应的改变。
但是,当在软件中改变了PWMDTYx寄存器中的值后,输出PWM波的占空比并不会立刻改变。
PWMDTYx寄存器为双缓冲结构,由于S12微控制器内部硬件结构的原因,当在PWM信号输出过程中进行写操作时,写入的值将进入缓冲器,而不是直接进入该寄存器,直到通道被禁止或当前周期结束,计数器重新被写入(计数器回0)时才能进入该寄存器。
这样设计的目的,虽然是为了避免输出变化着的不稳定的PWM波形,但是却产生了延时,如图2.2所示。
假设我们产生的PWM波的频率是50Hz,即周期为20ms。
我们在软件中运算得出需要的占空比对应的PWMDTYx寄存器的值,并将其赋值给PWMDTYx寄存器,如果这一时刻在A点,即一个周期刚开始的时刻,那么我们运算得出的结果将要在缓冲器中保存20ms,在下一周期开始时才进入PWMDTYx寄存器,使占空比变成我们计算出的结果;如果那一时刻刚好在C点,即一个周期即将结束的时刻,那么我们运算的结果能够立刻进入PWMDTYx寄存器,使下一周期的占空比发生变化;而通常这一时刻则在B点,即20ms中的任意一点。
因此,这就是第一次延时产生的原因所在。
根据上面的叙述,当PWM波周期为20ms时,产生的延迟时间为0~20ms。
我们将这个延时叫做微控制器输出周期延时。
图2.2PWM波占空比改变示意图
②舵机机械延时
由于舵机内部具有小型直流电机、级联减速齿轮组、位置反馈电位器等机械装置,因此不可能瞬间达到我们所期望的输出角度,这就是影响舵机控制特性的一个主要参数即响应速度,也叫做舵机输出轴转动角速度,这个参数一般以舵机空载时输出转盘旋转60°所需要的时间表示。
大赛指定使用的舵机工作电压范围为5V左右,在4.8V时,响应速度时0.20sec/60degrees,在6V时,响应速度为0.16sec/60degrees。
而带了负载之后,响应速度还会略微下降。
由此可知,舵机转动一定角度有时间延迟,时间延迟正比于旋转过的角度,反比于舵机的响应速度。
例如,当舵机收到从0°转动到60°的信号时,要经过160ms才会达到我们预期的角度值。
我们将这部分延时叫做舵机机械延时。
2.3.2舵机的安装与控制延时解决办法
因此,舵机的控制输出延时由微控制器输出周期延时和舵机机械延时两部分组成,由上分析可知,延时最大时会达到将近20ms+160ms=180ms。
可以说,舵机的响应速度直接影响智能车通过弯道时的最高速度。
因此提高舵机的响应速度是提高智能车平均速度的一个关键。
根据以上的分析,提出以下几个解决办法:
1.提高PWM波频率。
指定舵机可接收的PWM信号频率范围为50–200Hz,对应的周期为20ms–5ms,通过上述分析可知,频率越高,微控制器输出周期延时就越短,因此我们在设置S12微控制器PWM模块输出信号时选用200Hz的频率,可以有效减少延迟时间。
图2.3舵机安装方式
2.提高舵机工作电压。
在上述分析中可以看出,工作电压越高,响应速度则越快,我们使用电池电压为7.2V,略高于舵机标定的工作电压范围,但是可以直接舵机供电。
如此一来,舵机的响应速度还可以进一步提高,大约为0.1sec/60degrees。
3.安装更长的舵机输出臂。
采用杠杆原理,在舵机的输出舵盘上安装一个较长的输出臂,将转向传动杆连接在输出臂末端。
这样就可以在舵机输出较小的转角下,取得较大的前轮转角,从而提高了整个车模转向控制的速度。
如图2.3所示,这种方法是通过机械方式,利用舵机的输出转距余量,将角度进行放大,加快了舵机响应速度[4]。
2.5传感器支架的设计安装
赛车CMOS图像传感器的架设主要考虑以下几个因素:
1、确保CMOS图像传感器位置的居中且正对前方。
因为当CMOS图像传感器不居中,其采集进来的图像也不是居中的,而处理程序对舵机输出量是居中的,这样就会导致智能车在直道上也偏离赛道中央,即使可以通过程序校正,也会导致扫描到的图像面积左右不对称,会浪费一部分图像信息。
2、CMOS图像传感器的安装高度要足够高。
这样可以使得智能车在CMOS图像传感器的安装角度不是很大的情况下就能够前瞻到前方足够远处的路况信息。
因为当摄像头的角度过大时候,采集进来的图像形变过大,且图像中的干扰信息增多,对模型车的处理算法十分的不利。
而且当摄像头的安装位置较高时,所能扫描到的图像靠近智能车的部分范围较大,当智能车偏离赛道一定距离时,依然可以扫描到黑线,这样会便于图像的算法处理。
一般要求该范围为60cm宽,因为赛道宽60cm,即智能车基本上可以偏离黑线30cm。
3、CMOS图像传感器的安装是可调整的。
这样以便于CMOS图像传感器居中的校正,以及在实际调试中选择最佳探测角度,以及对CMOS图像传感器视野范围进行标定。
经过多次的实验和总结,我们对CMOS图像传感器的远度进行了标定,对CMOS图像传感器的采集的图像信息进行了中心位置的校正。
将CMOS图像传感器的视频信息通过视频采集卡传到计算机中,通过调节CMOS图像传感器各个旋转变量使得摄像头的图像位置居中。
校正后的摄像头能够采集到小车前方上底为60cm,下底为240cm,高为170cm的近似等腰梯形图像。
经过上述设计,前轮的静态侧翻极限是55度,后轮的侧翻极限是70度,而在赛道上侧滑极限一般不会超过50度,所以赛车在侧向加速度很大的极限情况下会先发生侧滑而不会发生侧翻。
2.6电路板安装
电路板应安装于智能车的最低的部位,并且固定于底盘。
由于电池的安装前移了2cm,考虑到赛车的空间,PCB板应设计成一定的形状以便于安装。
PCB设计形状示意如图2.4所示。
这个形状有利于摄像头支架的安装,同时防止了前轮转角过大时与电路板接触。
第三章硬件设计
3.1总体方案
系统硬件电路主要由两块PCB板构成,分别集成了整个系统的逻辑电路和驱动电路。
系统电路板实物图为图3.1。
对视频信号的采集采用了外部高速ADC,其转换频率最高可达80MHz。
采用官方推荐的16位微控制器MC9S12XS128,内部RAM为8KB[2],相对其它用于该赛事的16位单片机具有较小的RAM空间,但速度很高且工作性能较稳定。
主电机驱动电路采用功率MOSFET管搭建的H桥电路,该驱动电路导通内阻极小,相比之下赛车可获得更大的加速度和直道上限速度。
3.2电源模块
由于电源对高频干扰具有较强的抑制作用。
同时由于其低功耗特点,在进行电路板设计时,可以减少散热片的体积和PCB板的面积,有时甚至不需要加装散热片,方便了电路设计与使用,提高了稳定性能。
3.2.1主电机供电与单片机供电分离电路
图3.2单片机电源和电机电源分离
主电机在启动的瞬间和反转的瞬间会产生高达20A的冲击电流。
由于对赛车速度的控制采用的是bang-bang控制,因此在赛车的行驶的过程中始终存在较大的电流波动。
而主电机和单片机都是由单独电池供电,若在主电机电源和单片机电源系统之间不加任何隔离措施,有可能导致在赛车行驶的过程中单片机复位,这是绝对不允许的。
所以在主电机电源和单片机电源系统之间加了一极∏滤波器。
电路图如图3.2所示。
3.2.2单片机供电电路
单片机电源模块我们选用LP3853ES—5.0芯片,它是国家半导体生产的线性低压差稳压芯片,它只要有0.1v的压差就可以输出稳定电压,压差达到0.3v就可以输出最大电流3A,其输入的最高电压为7v,输出5v。
其典型应用电路图如图
3.3单片机电源电路
3.2.3CMOS供电电路
CMOS的工作电压为12V,而电池的最高电压只有8.5V,所以12V电压必须经过DC-DC升压得到。
一般由升压电路得到的电压纹波较大,若直接由该电压为CMOS供电,CMOS输出的视频信号质量较差。
所以升压后的电压必须经过滤波再稳压才能为CMOS供电。
通过测试MC34063专用DC-DC芯片和MAX1771专用DC-DC芯片,发现采用MC34063芯片搭建电路获得的升压后的电压经过滤波稳压之后其带负载性能差,而MAX1771则表形出较好的性能。
由MAX1771搭建的升压-滤波-稳压电路图如图3.4所示。
图3.4CMOS电源电路
3.2.4ADC供电电路
由于视频AD转换精度的要求较高,所以其转换电路的数字电源和模拟电源采用单独供电,即用两片LM2940稳压后对其进行供电,其电路与给单片机供电电路一致。
3.3视频信号检测模块
3.3.1CMOS视频信号时序
摄像头输出的视频信号是一个串行的,由消隐信号、同步信号和视频信号叠加而成的复合信号。
视频信号的采集必须按照同步信号的时序进行,才能消除消隐信号的影响。
合理的利用同步信号时序,可以对整个系统的工作时序有更加精确的把握,增加程序的稳定性能。
3.3.2外部高速AD转换
对视频信号进行AD转换有两种方式,即单片机片内AD转换和外部AD转换。
S12的AD转换器采集速度较低,根据S12器件手册,进行10位AD转换所需要的时间为7微秒。
这样,采集的图像每行只能有8个像素,水平分辨率很低。
一般而言,摄像头分辨率越高,单行视频信号持续的时间也越短,在AD转换时间不变的情况下,AD对单行视频信号所能采样的点数也越少。
通常,摄像头横向(行方向)的像素数远多于AD对单行视频信号采样的点数。
真正决定赛车图像采样模块实际横向分辨能力的不是摄像头横向的像素数,而是AD采样单行视频信号的点数。
单次AD转换的时间=AD时钟周期x14=(1/2Mhz)x14=7us。
S12的AD时钟是通过分频总线时钟得到的,两者间具体的关系如下式:
AD时钟频率=总线时钟频率/2(AD预分频系数+1)
因为每个视频信号行中都有一个行消隐区,该区持续的时间约为行同步脉冲持续的时间,即4.7us,所以单个视频信号行中有效视频持续的时间约为62-4.7=57.3us。
在不超频情况下,AD转换时间为7us,因此采样单行视频信号的有效点数一般为[57.3/7]=8个,也就是说此时的图像传感系统的横向分辨能力为8像素。
尽管摄像头横向的像素数可达几百,但Freescale16位单片机通过AD只能采样到这几百个像素中的8个,这无异于图像采样系统在横向上只有8个像素的分辨能力。
如前面所述,摄像头的分辨率越高,尽管可提高纵向分辨能力,却会减少Freescale16位单片机AD采样单行信号的点数,削弱了横向分辨能力。
为此,必须采用外部高速AD。
3.3.3电压跟随
经过测试发现CMOS图像传感器的输出阻抗较大,即带负载能力较弱。
电压跟随单元是用于减小视频信号的输出阻抗的。
电压跟随单元采用高速集成运放构成,与滤波电路,AD转换电路一起构成信号检测模块。
3.3.4视频信号分离
前面分析了视频信号的时序,为了采集图像信息,CPU需要根据行、场同步信号启动AD转换器,采集稳定后的图像信息。
由于视频输出的复合信号的变化很快,无法直接根据输出信号的高低分离出视频信号,所以需要另外设计同步分离电路。
在本方案中,使用了LM1881视频同步分离集成块,获取视频同步信号,将此同步信号连到单片机的中断输入端口。
电路原理图如图3.5所示。
图3.5视频信号分离电路
3.4电机驱动模块
图3.6H桥驱动电路
图3.7H桥控制电路
驱动单元是控制系统的重要组成部分,从原先的MC33886专用电机驱动芯片驱动到为采用低导通内阻的MOSFET功率管搭建H桥结合逻辑电路驱动,赛车的加速和制动性能以及上限速度得到了很大程度的提高。
电路如图3.6所示。
MOSFET选型为IRF7832。
第四章软件设计
系统硬件位于底层,是整个系统的基础,系统软件结构则根据硬件和控制需求来制定。
系统的基本软件流程为:
首先,对各功能模块和控制参数进行初始化。
然后,通过图像采集模块获取前方赛道的图像数据,同时通过速度传感器模块获取赛车的速度。
采用PID对舵机进行反馈控制。
另外根据检测到的速度,结合速度控制策略,对赛车速度不断进行适当调整,使赛车在符合比赛规则的前提下,沿赛道快速行驶。
4.1方向控制方案
4.1.1方向控制数据的选取
图4.1方向控制程序流程
如果在舵机控制算法上优化,使之过弯道走内弯、“小S型”弯道直接冲过,“大S型”弯道尽量把偏转降到最低。
其中心目的就是使赛车少走弯道,缩短行驶距离。
我们在实验中曾发现,如果不进行控制算法的优化,单纯增加赛车的直线速度并不总是能缩短单圈的时间,因为速度快到一定程度后,赛车在过弯时将发生侧滑,赛车走过的距离增加了,抵消了速度增加带来的优势,而且在如果转弯过多,也会造成赛车速度的降低。
赛车方向控制的程序流程图如上图4.1所示
4.1.2方向控制坐标的校正
因为CMOS图像传感器所扫描到的图像是一幅发射式的图像,产生了严重的畸变,如果不进行校正,那么扫描到的数据的正确性将无法保证,那么对于道路形状的判定将会不准确,造成赛车判断失误,走的不是最优路径,严重时甚至冲出轨道。
因此,在进行赛车方向控制时,进行坐标的校正显得至关重要。
下面对坐标校正的方法进行具体的介绍。
由于CMOS图像传感器所扫描到的图像总是向外扩张,扫描到的图像并非为一个标准的长方形,在不考虑纵向畸变的情况下可以近似认为是一个梯形[7],严重影响到了数据采集的准确性,所以我们必须对扫描到的数据进行校正。
我们根据实验发现,越是靠近CMOS图像传感器的地方,扫描到的范围就越窄,离CMOS图像传感器距离较远的地方,扫描到的范围就越宽,因此,在相同的情况下,如果CMOS图像传感器在最近处和最远处采集到黑线的数字信号距离中心位置均是30的话,事实上最远处偏离中心位置的距离可能比最近处偏离中心位置的距离大很多。
按照赛车的安装方法,在扫描到的数字量相同的情况下,在第40行处偏离中心位置的距离超过了第0行偏离中心位置的4倍还要多,故必须进行校正,校正的方法就是在不同的行乘以一个不同