智能车竞赛技术报告 | 智能车视觉 - 扬州大学 - 这辆盲车不吃水果
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能车竞赛技术报告 | 智能车视觉 - 扬州大学 - 这辆盲车不吃水果相关的知识,希望对你有一定的参考价值。
简 介: 本文详细介绍了扬州大学“这辆盲车不吃水果”在第十六全国大学生智能汽车竞赛智能视觉组中的系统方案。本次比赛采用大赛组委会统一指定的C型车模,以NXP公司生产的32位单片机imix.RT1064为核心控制器,要求智能车识别白色赛道以最快速度完成整个比赛,智能车采用CMOS摄像头对赛道信息检测,根据提取连通域得到赛道中线;通过编码器检测智能车的实时速度。使用PID控制算法调节电机的转速和舵机的打角,实现智能车在运动过程中速度和方向的闭环控制。实验结果表明,该系统设计方案确实可行。
关键词
: imixRT1064,图像处理,PID
队伍名称:这辆盲车不吃水果
参赛队员:戴进
史宏图
侯强
带队教师:陈万培
邓小颖
第一章 绪 论
1.1 智能车研究背景
智能车是一种高新技术密集型的新型汽车,以汽车电子为背景涵盖控制、模式识别、传感技术、电子、电气、计算机、机械等多科学的科技创意性设计,一般主要由路径识别、速度采集、角度控制及车速控制等模块组成。可实现自动驾驶、自动变速及自动识别道路等功能,是现代电子产业发展中一项重要的组成部分。
在我国,教育部为了加强大学生实践、创新能力和团队合作精神的培养,委托教育部高等学校自动化专业教学指导分委员会主办了每年一度的全国大学生智能汽车竞赛。全国大学生智能汽车竞赛是在竞赛组委会提供的统一汽车模型平台上,使用飞思卡尔半导体公司的8位、16位、32位微控制器作为核心控制模块,通过设计道路识别传感器和电机驱动电路、编写相应软件及装配模型车,制作一个能够自主识别道路的模型汽车,按照规定路线(路线赛前未知)行进,以完成时间最短者为优胜。
1.2 方案总体介绍
比赛跑道为表面白色,两边有连续黑线作为引导线,黑线宽为25mm。车模通过采集赛道图像进行路径检测比赛规则限定了跑道宽道区宽度40cm,拐角最小半径50cm,并且规定了各赛道标志的具体指标。参赛队员的目标是使智能车按照规则以最短时间完成两圈赛道。
根据竞赛规则相关规定,本智能车系统采用大赛组委会统一提供的C型车模,以恩智浦公司生产的32位微控制器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~6°
2.4.2 主销内倾
主销内倾是将主销(即转向轴线)的上端向内倾斜。从车前方看去,主销轴线与通过前轮中心的垂线之间形成一个夹角,即主销内倾角。轮胎调整为倾斜以后直线行走的时候是轮胎内侧着地,而当过弯的时候,由于惯性车体会要向弯道外侧倾斜,而这时候的外侧轮胎如果倾斜角度事先调整得当则正好可以胎面着地,从而使车辆在弯道获得最佳抓地力。使车轮转向后能及时自动回正和转向轻便。
2.4.3 前轮前束
车轮前束是指两轮之间的后距离数值与前距离数值之差,也指前轮中心线与纵向中心线的夹角。从上往下看,两个车轮指向的方向在前端指向内称为车轮前束,指向外的则称为车轮后束。前轮前束的作用是保证汽车的行驶性能,减少轮胎的磨损。前轮在滚动时,其惯性力自然将轮胎向内偏斜,如果前束适当,轮胎滚动时的偏斜方向就会抵消,轮胎内外侧磨损的现象会减少。
2.5 底盘高度调节
降低车模底盘可以降低重心,车模重心低可以使车模运行更加稳定,获得 更好的转弯特性。所以,在保证车模可以通过灯盘的情况下,底盘尽可能的降低,可以使车更加快速稳定。对于C车模,修改前轮滚动的轴心和车模底盘的高度差,可以修改车模底盘的高度,所以通过在前轮固定处垫垫圈来降低车模底盘高度。
第三章 硬件电路设计
硬件是基础,只有一个良好、稳定的硬件环境才能保证车能平稳快速的行驶。我们在整个系统设计过程中严格按照规范进行。本着可靠、高效的原则,在满足各个要求的情况下,尽量使设计的电路简单,PCB的效果简洁。
3.1 单片机系统设计
关于单片机系统的设计,由于使用的主控芯片RT1064的电源管理系统很复杂,有各种参考电压需要设计,并且采用的是BGA的封装,焊接难度很大,所以最终我使用的龙邱科技的核心板。
3.2 电源模块设计
● 5V稳压
● 3.3V稳压
● 6V稳压
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.
● 相关图表链接:
以上是关于智能车竞赛技术报告 | 智能车视觉 - 扬州大学 - 这辆盲车不吃水果的主要内容,如果未能解决你的问题,请参考以下文章
智能车竞赛技术报告 | 智能车视觉 - 上海工程技术大学 - 萌鸡小队
智能车竞赛技术报告 | 智能车视觉 - 武汉理工大学 - WHY
智能车竞赛技术报告 | 智能车视觉 - 中国计量大学 - 赛博-10
智能车竞赛技术报告 | 智能车视觉 - 中国海洋大学 - The Waves