简 介: 本文详细介绍了扬州大学国大学生智能汽车竞赛智能视觉组扬州大学这辆盲车不吃水果的系统方案。本次比赛采用组委会统一指定的C型车模,NXP公司生产的32台单片机imix.RT1064是核心控制器,要求智能车以最快的速度识别白色轨道,使用智能车CMOS摄像头检测轨道信息,根据提取连接域获取轨道中线;通过编码器检测智能汽车的实时速度。使用PID控制算法调节电机转速和舵机角度,实现智能汽车在运动过程中的闭环控制。实验结果表明,系统设计方案确实可行。 : ,,
第一章 绪 论
1.1 智能汽车研究背景
??智能车是一种高新技术密集型的新型汽车,以汽车电子为背景涵盖控制、模式识别、传感技术、电子、电气、计算机、机械等多科学的科技创意性设计,一般主要由路径识别、速度采集、角度控制及车速控制等模块组成。可实现自动驾驶、自动变速及自动识别道路等功能,是现代电子产业发展中一项重要的组成部分。
??在中国,为加强大学生实践、创新能力和团队合作精神的培养,教育部委托教育部自动化专业教学指导分委员会举办年度全国大学生智能汽车竞赛。全国大学生智能汽车竞赛是以飞思卡尔半导体公司8位、16位、32位微控制器为核心控制模块,在竞赛组委会提供的统一汽车模型平台上,通过设计道路识别传感器和电机驱动电路,编写相应的软件和组装模型车,制作能够自主识别道路的模型车,按照规定的路线(赛前路线未知)行驶,以完成时间最短的为胜利。
1.2 方案总体介绍
??跑道表面为白色,两侧连续黑线为导线,黑线宽度为25mm。通过收集轨道图像,车型限制了跑道宽度40cm,拐角最小半径50cm,并规定了每个轨道标志的具体指标。参赛选手的目标是让智能车按照规则在最短的时间内完成两圈赛道。
??根据竞赛规则的相关规定,本智能车系统采用恩智浦公司生产的32位微控制器统一提供的C型车型imix.RT1064作为核心控制器,在IAR软件开发在开发环境中进行。通过CMOS图像传感器拍摄赛道图像,将图像信号输入到imix.RT1064微控制器进一步处理获取主要轨道信息;通过编码器检测速度,通过单片机正交解码计算脉冲获取速度和距离;转向舵PD控制;使用驱动电机PI控制,通过PWM控制驱动电路调节电机功率;速度的目标值由默认值、运行安全方案和基于图像处理的优化策略综合控制。
第二章 机设计和调整机械结构
??智能源汽车的核心是控制策略和算法。然而,机械结构也是限制赛车速度的一个巨大瓶颈。如果赛车的程序结构很好,但机械部件做得不好,其速度将大大受到限制。即当车速较高的时候,车模有明显的甩尾和侧滑现象,此时对车的机械结构要求很高。除了对车身姿势的影响外,机械性能还影响车辆的加减速响应速度、运行对称性和稳定性。因此,我们在不违反规则的情况下对车辆进行了多方面的改造,使车辆具有良好的运行性能。
2.1 整车布局
??我们组采用新型C车型,对称性好,尺寸290184196mm,轮胎尺寸为2961mm,适当填充海绵,软化轮胎,具有优异的减震性和耐磨性。驱动电机是RS-380,7.2V电机功率可达19.25W,额定功率为0.016kW,额定电压7.2V,额定电流0.5A,额定转速16200rpm,额定转矩可达10.9Nm,外形储存29.237.8mm。伺服电机为S3010舵机,6V电压时扭矩可达6.5kgcm,动作速度快,车模整体重量约1.3kg,质量轻。智能车的外观大致如图2所示.1。
(1) 减少车模底盘以减少重心。 (2) 舵机采用垂直姿方便。 (3) 调整前轮倾角,确保直线行驶的稳定性。 (4) 调整电池位置,使中心尽可能在车身中心 (5) 用轻便坚固的铝杆作为摄像头传感器的支撑材料。
▲ 图2.1 智能车外形图
2.2 电池选型安装
??使用原装模型NiCd由于其体积大、质量大,电池在早期使用过程中导致车辆快速抛尾和侧滑。NiCd不均匀的电池质量分布相当于增加车身不对称性。本次比赛支持使用带保护板的两个18650锂电池串联供电。经过多次尝试,我们绘制了锂电池与保护板的连接PCB,购买动力锂电池,放电能力强,可轻松驱动两台380电机。通过合理选择电池位置,调整车辆重心,使整车非常轻,加减速响应快。俯视图如图2.2所示
▲ 图2.2 俯视图
2.3 转向舵机安装
??舵机转向是整个控制系统中较大的延迟环节。为了减少此时的常数,舵机的响应速度可以通过改变舵机的安装位置来提高。通过分析舵机控制转向转向的原理,可以发现在相同的舵机转向条件下,舵机一端转向连杆的连接点离舵机轴越远,转向轮转向变化越快。这相当于增加力臂长度和线速。
??舵机有立式和卧式两种安装方式,比较两种方式发现,立式安装效果更好。 舵机安装时应保证左右对称,以保证舵机左右转向时力臂相等,最大 提高了舵机的响应速度。经过理论分析,功率等于速度和扭矩的乘机 大转向速度必然会降低输出扭矩,过小的扭矩会导致迟钝,因此在安装过程中必须考虑转向速度 机构响应速度与舵机扭矩的关系,获得最佳转向效果。
2.4 调整前轮倾角
??为了使汽车直线行驶稳定,转向轻,转向后可以自动纠正,减少轮胎和转向部件的磨损,必须在转向轮、转向节和前轴之间形成一定的相对安装位置,称为车轮定位。该系统使用的智能汽车通过四个轮胎与地面接触,两个后轮同轴有限,无法调整,与智能汽车的前进方向平行,因此改变智能汽车与地面的接触,调试有利于汽车转向,直线四轮定位,只能通过调整前轮倾角定位参数来实现。其安装位置由四个项目决定:主销内倾、主销后倾、前轮外倾和前轮前束。
2.4.1 主销后倾
??主销后倾是指主销轴与地面垂直线之间的夹角,向前为负,向后为正。当车辆转弯时,会产生与车轮偏转方向相反的正转矩,使车轮自动恢复到原来的中间位置。因此,主销后倾角越大,速度越高,前轮自动正能力越强,模型车通过增加或减少黄色垫片的数量来改变 主销后倾角。
??由于比赛中使用的转向舵机扭矩不大,主销后倾角过大会使转向沉重,转向延迟。因此,我们修改了主销后倾5左右~°
2.4.2 主销内倾
主销内倾是将主销(即转向轴线)的上端向内倾斜。从车前方看去,主销轴线与通过前轮中心的垂线之间形成一个夹角,即主销内倾角。轮胎调整为倾斜以后直线行走的时候是轮胎内侧着地,而当过弯的时候,由于惯性车体会要向弯道外侧倾斜,而这时候的外侧轮胎如果倾斜角度事先调整得当则正好可以胎面着地,从而使车辆在弯道获得最佳抓地力。使车轮转向后能及时自动回正和转向轻便。
2.4.3 前轮前束
车轮前束是指两轮之间的后距离数值与前距离数值之差,也指前轮中心线与纵向中心线的夹角。从上往下看,两个车轮指向的方向在前端指向内称为车轮前束,指向外的则称为车轮后束。前轮前束的作用是保证汽车的行驶性能,减少轮胎的磨损。前轮在滚动时,其惯性力自然将轮胎向内偏斜,如果前束适当,轮胎滚动时的偏斜方向就会抵消,轮胎内外侧磨损的现象会减少。
2.5 底盘高度调节
降低车模底盘可以降低重心,车模重心低可以使车模运行更加稳定,获得 更好的转弯特性。所以,在保证车模可以通过灯盘的情况下,底盘尽可能的降低,可以使车更加快速稳定。对于C车模,修改前轮滚动的轴心和车模底盘的高度差,可以修改车模底盘的高度,所以通过在前轮固定处垫垫圈来降低车模底盘高度。
第三章 硬件电路设计
硬件是基础,只有一个良好、稳定的硬件环境才能保证车能平稳快速的行驶。我们在整个系统设计过程中严格按照规范进行。本着可靠、高效的原则,在满足各个要求的情况下,尽量使设计的电路简单,PCB的效果简洁。
3.1 单片机系统设计
关于单片机系统的设计,由于使用的主控芯片RT1064的电源管理系统很复杂,有各种参考电压需要设计,并且采用的是BGA的封装,焊接难度很大,所以最终我使用的龙邱科技的核心板。
3.2 电源模块设计
3.3 电机驱动电路
3.4 传感器的选择
3.4.1 摄像头
比赛所用的摄像头可以分为两类:一类为CCD摄像头,另一类为CMOS摄像头。
CCD摄像头图像对比度高、动态特性好,但供电电压比较高,需要12V的工作电压。在智能车的实际运行中,电机加减速时会产生很大的冲击电流,会对12V的升压模块造成冲击。同时CCD摄像头的耗电也比较严重,这会使拍摄的图像稳定性不高。
CMOS摄像头,体积小,图像稳定性较高,只需3.3V供电,耗电量低,但动态性能不如CCD摄像头好。智能车高速运行时,摄像头拍摄的图像可能会变得模糊。但为了保证系统的稳定性,最终决定选用CMOS摄像头。
3.4.2 编码器
光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器, 这也是目前应用最多的测速传感器之一。其获取信息准确、精度高、应用简单。
采用增量式512线光电编码器,其供电电压为3.3V或5V,输出为小幅值的正弦信号。
3.5 主控与驱动
第四章 软件控制设计
高效的软件程序是智能车高速平稳自动寻线的基础。我们设计的系统采用CMOS摄像头进行赛道识别,图像采集及处理是整个软件的核心内容。在智能车的转向和速度控制方面,我们使用PID控制算法,使智能车能够稳定快速在赛道中循迹并完成比赛。
4.1 赛道中心线提取及优化处理
4.1.1 原始图像的特点
我们采用的摄像头是龙邱的神眼MT9V034,镜头使用的是135度无畸变镜头,所以获取到的原始图像质量较好,基本不存在枕型桶型畸变。实际试验发现,直接处理原图像即可获得不错的效果,不太需要进行图像的逆透视。
4.1.2 赛道搜线算法
单片机在对原始图像进行二值化之后,用搜线算法来对其进行处理,从而确定出赛道两边的黑线在哪儿,并计算出相对应的赛道中线,从而指导舵机转向和电机的加减速。搜线算法的基本思想如下: 使用中心搜线确定两边边界,遇到特殊元素就进入特殊元素处理的状态机中进行补线。
4.1.3 赛道中心的计算
得到完整的赛道信息矩阵后,即可通过一定的算法计算出赛道的中线,由PID控制算法的思想,我们正利用智能车的图像中心与赛道的实际中心的偏移量来控制舵机的转动和电机的驱动力度。赛道中线算法:
(1) 由图像底部向顶部扫描,将左右边界进行映射,得到一个映射关系,当赛道连通域结束,扫描结束; (2) 通过步骤(1)得到的映射关系,取对应左右边界的中点,求出中点的位置,保存在数组中。
4.1.4 中入十字识别
在图像前面10行出现边界全丢并且全部为白块时,判定为中入十字,用两点法进行补线。
4.1.5 斜入十字识别
当图像出现一边全丢一边有边界,并且边界的突然向一个异常的方向生长时,判定为斜入十字。
4.1.6 直入十字识别
当两边边界全部消失,并且两边都向异常方向生长时,判定为直入十字
4.1.7 环岛识别
根据环岛特征判定。
4.1.8 分叉路识别
识别到图像前面很多行为空白行后,向上搜索尖角,计算角两边的斜率,满足条件就判定为分叉路
4.2 OpenART识别
为了识别赛道中的数字、ApriTag码、水果、动物。我们采用OpenART模块进行识别。在灰度摄像头识别到相应标志后,OpenART会开启相应的识别模式进行识别。
4.3 PID控制算法介绍
在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。
PID控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。将偏差的比例§、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称PID控制器,原理框图如图4.19所示。
▲ 图4.19 PID控制器原理框图
- 比例环节:及时成比例地反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差。
- 积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强。
- 微分环节:能反映偏差信号的变化趋势(变化速率),并能在该偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。
数字PID控制算法通常分为位置式PID控制算法和增量式PID控制算法。
4.2.1 位置式PID
位置式PID中,由于计算机输出的u (k) 直接去控制执行机构(如阀门),u(k)的值和执行机构的位置(如阀门开度)是一一对应的,所以通常称公式(4.2)为位置式PID控制算法。
位置式PID控制算法的缺点是:由于全量输出,所以每次输出均与过去的状态有关,计算时要对过去e(k)进行累加,计算机工作量大;而且因为计算机输出的u(k)对应的是执行机构的实际位置,如计算机出现故障,u(k)的大幅度变化,会引起执行机构位置的大幅度变化,这种情况往往是生产实践中不允许的,在某些场合,还可能造成严重的生产事故。因而产生了增量式PID 控制的控制算法,所谓增量式PID 是指数字控制器的输出只是控制量的增量△u(k)。
4.2.2 增量式PID
当执行机构需要的是控制量的增量(例如:驱动步进电机)时,可由式(4.2)推导出提供增量的PID控制算式。由式(4.2)可以推出式(4.3),式(4.2)减去式(4.3)可得式(4.4)。
公式(4.4)称为增量式PID控制算法,可以看出由于一般计算机控制系统采用恒定的采样周期T,一旦确定了KP、TI 、TD,只要使用前后三次测量值的偏差,即可由式(4.4)求出控制增量。
增量式PID具有以下优点:
(1) 由于计算机输出增量,所以误动作时影响小,必要时可用逻辑判断的方法关掉。
(2) 手动/自动切换时冲击小,便于实现无扰动切换。此外,当计算机发生故障时,由于输出通道或执行装置具有信号的锁存作用,故能保持原值。
(3) 算式中不需要累加。控制增量△u(k)的确定仅与最近k次的采样值有关,所以较容易通过加权处理而获得比较好的控制效果。
但增量式PID也有其不足之处:积分截断效应大,有静态误差;溢出的影响大。使用时,常选择带死区、积分分离等改进PID控制算法。
4.2.3 PID参数整定
运用PID控制的关键是调整KP、KI、KD三个参数,即参数整定。PID参数的整定方法有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数;二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。由于智能车系统是机电高耦合的分布式系统,并且要考虑赛道的具体环境,要建立精确的智能车运动控制数学模型有一定难度,而且我们对车身机械结构经常进行修正,模型参数变化较为频繁,理论计算整定法可操作性不强,最终我们采用了工程整定方法。此外,我们先后实验了几种动态改变PID参数的控制方法。
4.4 转向舵机的PD控制算法
对于舵机的闭环控制,我们采用了位置式PD控制算法,根据往届的技术资料和实际测试,将每场图像中线上部分中点加权平均值与舵机PD参考角度值构成非线性关系。
在较低速(2m/s以下)试验时,在偏离黑线很大的某个范围,将Kp直接置100%,在偏离黑线较少的某个范围,将Kp值减小为原来的一半。取得的实际效果在弯道较多、直道较短的赛道上,车子转弯流畅,直道也能基本保持直线加速,车身左右抖动较小。
在提高车速至高速(2.5m/s以上)时,我们发现车身在直道上特别是长直道上时,车身左右震荡比较严重,究其原因,硬件上,我们认为首先是轮轴本身的松动并且转向机构左右转向性能可能存在不对称性,设计有待改进,软件上,是小偏差时放大倍数偏大导致稳定性较差在从弯道到直道的过程中,由于小车寻赛道本质上是一个随动系统,因为没有积分项,造成在进入直道时转向不够准确,跑直道时虽然能跟踪黑线,但是转向调整往往超调,导致车身在直道上左右震荡,这种震荡严重影响了车的整体速度。此外,我们对S弯的控制也过于简单,没有特别的处理,导致车在跑S弯的时候,几乎完全沿弯走,没有明显的直冲S弯的效果,原因是在前瞻有限的情况下,在采集的图像中S弯入弯和普通弯道是一样的,导致小车开始转向,由于中间一直检测到弯道,小车会沿S弯道左右震荡,同时相应会减速。
4.5 驱动电机的PI控制算法
对于速度控制,我们采用了增量式PI控制算法,基本思想是直道加速,弯道减速。经过反复调试,将每场图像得到的黑线位置与速度PI参考速度值构成二次曲线关系。在实际测试中,我们发现小车直道和弯道相互过渡时加减速比较灵敏,与舵机转向控制配合得较好。
第五章 系统调试
5.1 开发调试工具
软件开发工具选用的是Embedded Workbench for ARM。是IAR Systems公司为ARM 微处理器开发的一个集成开发环境(下面简称IAR)。比较其他的ARM开发环境,IAR具有入门容易、使用方便和代码紧凑等特点。它为用户提供一个易学和具有最大量代码继承能力的开发环境,以及对大多数和特殊目标的支持。嵌入式IAR Embedded Workbench 有效提高用户的工作效率,通过IAR工具,可以大大节省软件调试时间。
5.2 人机交互工具
在调试过程中需要不断地修改变量的值来达到整定参数的作用,对此我们选用了液晶屏配合按键和拨码开关的调试方法。此外,比赛的时候,修改参数我们同样用这个模块进行修改。
其中液晶屏我们选用TFT屏幕,该液晶具尺寸小,高分辨率等特点。。按键采用6个按键其便于操作并且节省空间。
结论
在此份技术报告中,我们主要介绍了准备比赛时的基本思路,包括机械、电路以及最重要的控制算法的创新思想。在机械结构方面,我们分析了舵机转向系统的改进办法,对前轮倾角进行一系列的改动。在电路方面,我们以模块形式分类,在最小系统、主板、电机驱动、电池使用、电磁采集等模块分别设计,经过不断实验,最后决定了最终的电路图。在程序方面,我们使用C语言编程,利用开发工具调试程序,经过小组成员不断讨论、改进,终于设计出一套比较通用稳定的程序。在这套算法中,我们结合路况调整车速,做到直道加速、弯道减速,保证在最短时间内跑完全程。
参考文献
[1] 卓晴,黄开胜,邵贝贝.学做智能车 [M].北京:北京航空航天大学出版社.2007. [2] 王淑娟,蔡惟铮,齐明.模拟电子技术基础 [M].北京:高等教育出版社.2009 [3] 张军.AVR单片机应用系统开发典型实例 [M].北京:中国电力出版社,2005. [4] 张文春.汽车理论 [M].北京.机械工业出版社.2005. [5] 殷剑宏,吴开亚.图论及其算法 [M] .中国科学技术大学出版社,2003. [6] 夏克俭.数据结构及算法 [M] .北京:国防工业出版社, 2001. [7] 邵贝贝.单片机嵌入式应用的在线开发方法 [M].北京.清华大学出版社.2004. [8] 蔡述庭.“飞思卡尔”杯智能汽车竞赛设计与实践 [M].北京:北京航空航天大学出版社. 2012.
- 图2.1 智能车外形图
- 图2.2 俯视图
- 图4.19 PID控制器原理框图