飞思卡尔智能车黑线识别算法及控制策略研究
飞思卡尔智能车大赛杭州电子科技大学杭电二队智能车技术报告

本设计采用单片机(MC9S12DG128)作为智能小车的检测和控制核心。
路径识别采用CMOS 摄像头,车速检测采用红外对管和编码盘,由MOS管组成H桥来控制驱动电机正反转的快速切换,利用PWM技术控制小车的运动速度及运动方向。
基于这些完备而可靠的硬件设计,还设计了一套PID优化算法,编写了全闭环运动控制程序,经反复测试,取得了较好的效果。
第一章引言.1 智能车系统研究内容智能车系统要求以MC9S12DG128为核心,能够自主识别路线,在专门设计的跑道上自动识别道路行驶,以最快的速度跑完全程。
其主要研究内容包括以下几个部分:电源、路径识别、直流电动机驱动及运动控制等。
1.1.1 电源根据智能车系统各部件正常工作的需要,对配发的标准车模用7.2V 1800mAh Ni-cd电池进行电压调节。
其中,单片机系统、车速传感器电路需要5V电压,摄像头的12V工作电压由DC-DC升压回路提供,伺服电机工作电压范围4.8V到6V,直流电机经过H桥路由7.2V 1800mAh Ni-cd蓄电池直接供电。
1.1.2 路径识别路径识别模块是智能车系统的关键模块之一,路径识别方案的好坏,直接关系到最终性能的优劣。
在高速度和预先判断算法的前提下,摄像头可能是寻找路径规迹的最好选择。
因为MC9S12DG128的运算处理和AD采样速度有限,因此确定合理的采样次数和合理的处理摄像头的数据是十分重要的。
舍弃非关键数据进行数据简化和制定高效率的路径规划也是一个难题。
1.1.3 直流电动机驱动直流电机的控制一般由单片机产生的PWM信号配以H桥路来完成。
为了得到更大的驱动电流和较好的刹车效果,选用低内阻的MOS管和适当的反向驱动也是必需的。
MOS管我们选取了IRF4905和IRFZ48N,在MOS管子的驱动方面我们直接使用IR公司的IR4427双道驱动芯片。
具体的H桥电路见图1.1 。
1.2 智能车制作情况整个智能车控制系统分为4部分电路板,分别为路径识别模块,单片机模块,直流电机驱动模块和速度检测模块,还有串口通讯及调试接口。
基于摄像头的智能车黑色虚线识别算法研究

黑色 实线 。x s 1 2 8 ( 飞 思 卡 尔 的芯 片 ) 片 内的 r a n是 8 K, 为减少 r a n的使用 效 率 , 应 尽 量 减小 图像 矩 阵 。 本文 中使 用 6 4 8 4的图像 矩阵 。具体 操作 : 步骤 1 : 从 离摄 像 头 开 始 选 取 1 2行 , 采 用 边 缘
), 求 出这两 点构 成 直 线 的斜 率 和 直 线 方 程 , 即
变的越厉害, 那么就把采集 到的赛道 图像分成几部 分处理 。本文将 图像分 4段采集 , 以远处 的图像小 近处图像大的特点使用远密进疏的原则 , 前2 0 行每
可算 出虚线行 的横坐标 , 来补足虚线 。
收稿 日期 : 2 0 1 3—0 6—2 6
组成 , 综 合 考虑 3种 方案 的特 点 , 本 文采 用 的 下 , 在 实 时 的 图像 数 据 获
取的基础上对图像信息进行数据处理 , 从而提取赛 道 中心 的黑 色 指 引虚 线 , 以此 来 作 为 舵 机 和 驱 动 电 机的控制依据。以往 的赛 道 中的黑色指 引线是实
1 摄像头采样数据 的特点
本 文采用 的数 字摄 像 头 的型号 为 0 V 7 6 2 0 , 将摄
像头固定在车体 的中间, 前 瞻性约 1 i n 。要 想采集 的图像准确 , 必须要了解摄像头的时序, 摄像头 的时
序 图如 图 1 所示。
求, 根据赛道特点 , 主要有 3 种 寻线设计方案 : 光电 传感器方案 、 摄像头方案和电磁方案 。2 0 1 1 年第六 届 比赛 中要求赛道是 由白色底板和黑色的指引虚线
坐标作为中心值。如不符合条件 , 则为无效行。
4 黑色指 引虚线 的提取算法
(毕业设计)飞思卡尔智能车及机器视觉

图像处理在智能车路径识别中的应用摘要机器视觉技术在智能车中得到了广泛的应用,这项技术在智能车的路径识别、障碍物判断中起着重要作用。
基于此,依据飞思卡尔小车的硬件架构,研究机器视觉技术应用于飞思卡尔小车。
飞思卡尔智能车处理器采用了MC9S12XS128芯片,路况采集使用的是数字摄像头OV7620。
由于飞思卡尔智能车是是一款竞速小车,因此图像采集和处理要协调准确性和快速性,需要找到其中的最优控制。
因此本设计主要需要完成的任务是:怎样用摄像头准确的采集每一场的图像,然后怎样进行二值化处理;以及怎样对图像进行去噪处理;最后也就是本设计的难点也是设计的核心,怎样对小车的轨迹进行补线。
本设计的先进性,在众多的图像处理技术中找到了适合飞思卡尔智能车的图像处理方法。
充分发挥了摄像头的有点。
经过小车的实际测试以及相关的MATLAB 仿真,最终相关设计内容都基本满足要求。
小车的稳定性和快速性得到显著提高。
关键词:OV7620,视频采集,图像处理,二值化The Application of Image Processing in the Recognition ofIntelligent Vehicle PathABSTRACTCamera Machine vision technology in the smart car in a wide range of applications, the technology identified in the path of the smart car, and plays an important role in the obstacles to judge. Based on this, based on the architecture of the Freescale car, machine vision technology used in the Freescale car. Freescale smart car the processor MC9S12XS128 chip traffic collected using a digital camera OV7620. Freescale's Smart car is a racing car, so the image acquisition and processing to coordinate the accuracy and fast, you need to find the optimal control. This design need to complete the task: how to use the camera to accurately capture every image, and then how to binarization processing; and how to image denoising; last is the difficulty of this design is the design of the core, how to fill line on the trajectory of the car.The advanced nature of the design found in many image processing techniques of image processing methods for Freescale Smart Car. Give full play to the camera a bit. The actual testing of the car and MATLAB simulation, the final design content can basically meet the requirements. The car's stability and fast to get improved significantly.KEY WORDS: OV7620,Video Capture,Picture Processing,Binarization目录前言 (1)第1章飞思卡尔赛车及机器视觉的概述 (2)1.1 智能车的研究背景 (2)1.1.1 智能车的发展历史 (2)1.1.2 应用前景 (2)1.2 智能车设计要求介绍 (3)1.3 机器视觉介绍 (4)1.4 小结 (4)第2章主要思路及技术方案概要 (5)2.1 总体设计主要方法步骤 (5)2.2 摄像头的对比与选择 (5)2.2.1 摄像头的选取 (5)2.2.2 模拟摄像头 (6)2.2.3 数字摄像头 (6)2.2.4 摄像头的选定 (7)2.3 二值化方案的选取 (7)2.3.1 双峰值法 (7)2.3.2 迭代法 (8)2.3.3 大津法 (8)2.3.4 灰度拉伸-一种改进的大津法 (9)2.3.5 二值化方案的最终选定 (9)2.4对图像进行去噪 (9)2.4.1 传统的去噪法 (9)2.4.2 小波去噪 (11)2.4.3 去噪方法的最终确定 (13)2.5小结 (13)第3章硬件设计 (14)3.1 硬件总体方案设计 (14)3.2 核心控制板 (15)3.3 摄像头的安装 (15)3.4 小结 (16)第4章软件设计 (17)4.1 系统软件总体设计方案 (17)4.2 图像二值化软件设计 (17)4.3 去噪设计 (19)4.3.1 实验信号的产生 (19)4.3.2各参数下去噪效果对比 (20)4.4 二值化后补线 (24)4.5 小结 (32)第5 章结果分析 (33)5.1 采集到的灰度值去噪前的MATLAB仿真 (33)5.1.1 去噪前MATLAB函数和仿真结果 (33)5.1.2 去噪后MATLAB仿真结果 (34)5.2 边界扣取 (35)5.2.1 边界扣取函数 (35)5.2.2 边界扣取仿真结果 (36)5.3 补线后效果 (37)5.4 小结 (38)结论 (39)谢辞 (40)参考文献 (41)附录 (42)外文资料翻译 (45)前言机器视觉技术近几十年来已经得到广泛的应用,并且已经取得了巨大的成功,大大改善了人们的日常生活。
飞思卡尔智能车光电资料

飞思卡尔智能车光电资料概述飞思卡尔智能车(Smart car)系列是一款基于飞思卡尔公司的光电传感技术的自动驾驶小车。
光电传感技术是利用光电元件将感受到的光信号转化为电信号,并通过处理电信号得到有用的信息。
飞思卡尔智能车光电资料提供了有关自动驾驶小车的光电传感器的详细信息,包括工作原理、技术规格和应用案例等。
工作原理飞思卡尔智能车光电传感器是通过感受周围的光线来实现环境感知和障碍物检测的。
光电传感器通常由发射器和接收器两部分组成,发射器将红外线或其他光束发射出去,接收器则接收到从目标物体反射回来的光线。
通过测量发射光束和接收光束之间的差异,可以判断目标物体的位置、形状和距离等。
光电传感器可以分为两种类型:距离传感器和线路传感器。
距离传感器主要用于测量目标物体与车辆之间的距离,常用于自动驾驶小车的防碰撞系统。
线路传感器主要用于检测车辆行驶的路径,常用于自动驾驶小车的导航系统。
技术规格飞思卡尔智能车光电传感器具有以下技术规格:•工作电压:3.3V•工作电流:10mA•输出信号:数字信号•工作距离:10cm - 100cm•发射角度:60度•接收灵敏度:高于5000Lux应用案例飞思卡尔智能车光电传感器广泛应用于自动驾驶小车的各个方面,包括但不限于以下应用案例:防碰撞系统飞思卡尔智能车光电传感器可以配备在车辆的前部,用于检测前方是否有障碍物。
当传感器检测到前方有障碍物时,会向控制系统发出警告信号,控制系统则会采取相应措施,如减速或避让,以防止碰撞事故的发生。
导航系统飞思卡尔智能车光电传感器可以配备在车辆的底部,用于检测车辆行驶路径。
传感器将红外线发射到地面上的线路上,通过接收反射回来的光线来确定车辆的行驶方向和位置。
导航系统可以根据传感器的信号来控制车辆的行驶轨迹,以实现自动驾驶。
环境感知系统飞思卡尔智能车光电传感器可以配备在车辆的四周,用于感知周围的环境。
传感器可以检测到周围物体的位置、形状和距离等信息,以帮助车辆做出相应的决策,如避让行人或停车等。
智能车路径识别及控制策略的研究

21 0 2年 7月
机床与液压
MACHI NE OOL & HYDRAUL CS T I
J 12 2 u . 01
Vo . 0 No 1 14 . 3
第4 O卷 第 l 期 3
DO :1 . 9 9 jis. 0 1—3 பைடு நூலகம் . 0 2 1 . 2 I 0 3 6 /.sn 10 8 1 2 1. 3 0 5
og iin. Thef z y ag rt m n he fl rng p o e sn r do e ofnd t t sto d dr ci n. Th n to u z lo h a d t ti r c s i gwe ea ptd t i i e i hepah po iin a ie to n e PD o to tae y c n r lsr tg
硬件设计包括信号调理 电路 、电源和电机驱动的设计等 。实验结果证 明,按该 方案设计 的智 能车 能够快速稳定运行 。 关键词 :智能车 ;激光传感器 ;路径识别 ;模糊算法 ;控制策略
飞思卡尔智能小车算法介绍(个人总结)

式中,
q0
Kp
1;TTi
Td T
q1
;Kp
1
2。Td
T
q2
Kp
Td T
3.2.1 PID控制算法
由此可见,要利用 u和( k ) 得u (到k 1) ,只需u (要k )用到 , 和 e (三k 个1)历史e(数k 据 2。) 在编u (程k 过 1程) 中,这三个历史数据可以采用
平移法保存,从而可以递推使用,占用的存储单元少,编程简单, 运算速度快。增量型算法的程序流程图如图3.6所示。
25工qgz1lt70108100801nlj23456j2x013x084x105x086x01jj40108100801tj武汉科技大学信息科学与工程学院tj武汉科技大学信息科学与工程学院tj武汉科技大学信息科学与工程学院壬322模糊控制算法tj武汉科技大学信息科学与工程学院o模糊控制表可以离线求出作为文件存储在计算机中计算机实时控制时只要将ad转换得到的偏差和偏差变化ec进行量化得到相应的等级e和ec然后从文件中直接查询所需采取的控制策略
3.1 编程语言简介
在绝大多数场合,采用C语言编程即可完成预 期的目的,但是对实时时钟系统、要求执行效率高 的系统就不适合采用C语言编程,对这些特殊情况 进行编程时要结合汇编语言。汇编语言具有直接和 硬件打道、执行代码的效率高等特点,可以做到C 语言所不能做到的一些事情,例如对时钟要求很严 格时,使用汇编语言便成了唯一的选择。这种混合 编程的方法将C语言和汇编语言的优点结合起来, 已经成为目前单片机开发最流行的编程方法。关于 编程语言的详细介绍可参阅相关书籍。
第3章 智能汽车设计基础—软件
第3章 智能汽车设计基础—软件
在智能车系统的设计中,硬件是基础,没有一个好的硬 件平台,软件就无法运行。对于智能车系统来说,软件的核心 是控制算法。而完成这些任务的编程语言有汇编语言和C语言。 软件部分是整个智能车系统的灵魂,在硬件方面各参赛队之间 大同小异,真正体现各参赛队智能车的优势和最后决定比赛成 绩好坏的往往是软件部分,尤其是核心控制算法的设计。本章 首先简要介绍软件编程中使用的汇编语言和C语言各自的特点, 然后重点介绍核心控制算法的原理。
飞思卡尔智能车摄像头边线、黑线提取方法分析

飞思卡尔智能车摄像头边线、黑线提取方法分析
下面看一下CCD的信号提取
这是摄像头提取到的信号,如此看来是可以用阈值取线的方法的
然而实际的情况是很糟糕的比如这样
等等,这样的请款都是阈值所不能解决的,但上面的图线的一个显著特点就是有一个很夸张的边缘,这是一个明显的不能再明显的信息
如图所示
蓝色是图线,红色是微分,如此看来特征是很夸张的,我们可以很好的加以利用了
如果我们在微分一下特征会不会更明显呢?
蓝色是原图想,红色是微分,黄色是微分后再微分,如此看来,再微分已经没有什么明显的效果了,还是一次微分比较的好,
现在理一下思路,
第一步取图像
第二步微分
第三步求绝对值
第四步把一些小的值去掉
对于这样的东西我们就很很很容易处理了
但是我们还要注意这样的情况
即便是去掉了一些很小的信号但是还有一些稍大一点的信号这是值得关注的事情
注意:如果是线性ccd的话灰度值的平均水平有时会很低,为了好看可以采用软件放大的做法,个人认为加运放的效果不好,软件放大还可以加入一些智能的判断和操作,12位的AD转换进度完全够用,图像处理其实八位就完全够用啦。
摄像头黑线识别算法和赛车行驶控制策略

摄像头黑线识别算法和赛车行驶控制策略引言按照首届全国大学生“飞思卡尔”智能车大赛规则要求,根据赛道特点,主要有两种寻线设计方案:光电传感器方案和摄像头方案。
这两种方案各有特点:光电传感器构成“线型检测阵列”的方案简单易行,但由于受规则限制(传感器数量不超过16 个),光电管的数量不可能太多,从而单个线型检测阵列所能确定的指引线信息较少。
所以采用此方案寻线精度不够高,在舵机转向控制时会产生直道蛇行或弯道舵机回摆,并且判断距离有限。
因此我们选择采用摄像头作为寻线传感器,一方面摄像头探测的赛道信息和距离更出色;另一方面,规定使用的MC9S12DG128 运算速度和自身AD 口的采样速度能够适应对黑白低线数摄像头的有效视频采样和对大量图像数据的处理。
图像数据信息特点摄像头的主要工作原理具体而言(参见图1),摄像头连续地扫描图像上的一行,则输出就是一段连续的电压视频信号,该电压信号的高低起伏正反映了该行图像的灰度变化情况。
当扫描完一行,视频信号端就输出低于最低视频信号电压的电平(如0.3V),并保持一段时间。
这样相当于,紧接着每行图像对应的电压信号之后会有一个电压“凹槽”,此“凹槽”叫做行同步脉冲,它是扫描换行的标志。
然后,跳过一行后(因为摄像头是隔行扫描的方式),开始扫描新的一行,如此下去,直到扫描完该场的视频信号,接着就会出现一段场消隐区。
此区中有若干个复合消隐脉冲,其中有个脉冲远宽于(即持续时间长于)其他的消隐脉冲,该消隐脉冲又称为场同步脉冲,它是扫描换场的标志。
场同步脉冲标志着新的一场的到来,不过,场消隐区恰好跨在上一场的结尾部分和下一场的开始部分,得等场消隐区过去,下一场的视频信号才真正到来。
摄像头每秒扫描25 幅图像,每幅又分奇、偶两场,先奇场后偶场,故每秒扫描50 场图像。
奇场时只扫描图像中的奇数行,偶场时则只扫描偶数行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
智能车黑线识别算法及控制策略研究
时间:2009-05-1811:23:07来源:电子技术作者:北京信息科技大学,机电工程学院张淑
谦王国权
0引言
“飞思卡尔”杯全国大学生智能车大赛是由摩托罗拉旗下飞思卡尔公司赞助由高等学校自动化专业教学指导委员会负责主办的全国性的赛事,旨在加强大学生的创新意识、团队合作精神和培养学生的创新能力。
此项赛事专业知识涉及控制、模式识别、传感技术、汽车电子、电气、计算机、机械等多个学科,对学生的知识融合和动手能力的培养,对高等学校控制及汽车电子学科学术水平的提高,具有良好的推动作用。
智能车竞赛所使用的车模是一款带有差速器的后轮驱动模型赛车,它由大赛组委会统一提供。
自动控制器是以飞思卡尔16位微控制器MC9S12DGl28(S12)为核心控制单元,配合有传感器、电机、舵机、电池以及相应的驱动电路,它能够自主识别路径,控制车高速稳定运行在跑道上。
比赛要求自己设计控制系统及自行确定控制策略,在规定的赛道上以比赛完成的时间短者为优胜者。
赛道由白色底板和黑色的指引线组成。
根据赛道的特点,比赛组委会确定了两种寻线方案:1.光电传感器。
2.摄像头。
两种寻线方案的特点如下:
(1)光电传感器方案。
通过红外发射管发射红外线光照射跑道,跑道表面与中心指引线具有不同的反射强度,利用红外接收管可以检测到这些信息。
此方案简单易行程序调试也简单且成本低廉,但是它受到竞赛规则的一些限制(组委会要求传感器数量不超过16个(红外传感器的每对发射与接收单元计为一个传感器,CCD传感器计为1个传感器)),传感器的数量不可能安放的太多,因而道路检测的精度较低,能得到指引线的信息量也较少。
若采用此方案容易引起舵机的回摆走蛇形路线。
(2)摄像头方案。
根据赛道的特点斯用黑白图像传感器即可满足要求。
CCD摄像头有面阵和线阵两种类型,它们在接口电路、输出信号以及检测信息等方面有着较大的区别,面阵摄像头可以获取前方赛道的图像信息,而线阵CCD只能获取赛道一条直线上的图像信息。
摄像头方案的所能探测的道路信息量远大于光电传感器方案,而且摄像头也可以探测足够远的距离以方便控制器对前方道路进行预判。
虽然此方案对控制器的要求比较高,但组委会提供的MC9S12DGl28(S12)的运算能力以及自身AD口的采样速度完全能够满足摄像头的视频采样和大量图像数据的处理的要求。
本文就是在摄像头方案的前提下,在实时的图像数据获取的基础上对图像信息进行数据处理,从而提取赛道中心的黑色指引线,再以此来作为舵机和驱动电机的控制依据。
1摄像头采样数据的特点
采用的黑白摄像头的主要工作原理为:按一定的分辨率,以隔行扫描的方式采集图像上的点,当扫描到某点时,就通过图像传感芯片将该点处图像的灰度转换成与灰度一一对应的电压值,然后将此电压值通过视频信号端输出,见图1。
摄像头连续地扫描图像上的一行,则输出就是一段连续的电压信号,该电压信号的高低起伏反映了该行图像的灰度变化。
当扫描完一行,视频信号端就输出一个低于最低视频信号电压的电平(如O.3V),并保持一段时间。
这样相当于紧接着每行图像信号之后会有一个电压“凹槽”,此“凹槽”叫做行同步脉
冲,它是扫描换行的标志。
然后,跳过一行后(因为摄像头是隔行扫描的),开始扫描新的一行,如此下去,直到扫描完该场的视频信号,接着又会出现一段场消隐区。
该区中有若干个复合消隐脉冲,其中有个远宽于(即持续时间长于)其它的消隐脉冲,称为场同步脉冲,它是扫描换场的标志。
场同步脉冲标志着新的一场的到来,不过,场消隐区恰好跨在上一场的结尾和下一场的开始部分,到该场消隐区过去,下一场的视频信号才真正到来。
摄像头每秒扫描25幅图像,每幅又分奇、偶两场,先奇场后偶场,故每秒扫描50场图像。
奇场时只扫描图像中的奇数行,偶场时则只扫描偶数行。
因MC9S12DGl28(S12)控制芯片的处理能力达不到计算机的运算速度,故采用了目前市面上分辨率最小的320X240的CMOS单板摄像头,它同样可以每秒扫描501幅图像。
为了扩大摄像头的扫描距离来满足图像和控制处理的需要,将S12单片机的总线周期超频到32M,这样摄像头每行最多能够采集70个点。
通过实验测得摄像头扫描的每场图像中有320个行信号,其中的第23行到第310行是视频信号,即每场中有用的视频信号有288行。
第3ll行到下一场第22行是场消隐信号。
在实际的图像处理和控制过程当中完全没有必要对全部288行视频信号进行处理。
由于每行能采集到80个有点像素点,所以在每场视频信号中每隔15行对行信号采集一次,用18行视频信号来判断前方是直道还是弯道,从而对小车进行速度和转向的控制。
2黑色指引线的提取算法
赛道是由白色KT板上铺设黑色指引线组成,外界干扰比较少容易提取黑线。
据此采用的是图像处理方法是较为简单的边缘提取算法。
边缘与图像的性质之所以能联系在一起,是由于图像中的物体与物体,或者物体与背景之间的交界可以视为边缘,图像的灰度及颜色急剧变化的地方也可以看作是边缘。
在图像中有颜色的变化必定会有灰度的变化,故对于边缘的检测与提取焦点集中在灰度上就可以。
由于黑色指引线和白色跑道的色差较大,可以确定一个分别黑白色的阈值,通过实验确定该阈值(V ALUE)为8。
由于光照强弱的原因黑色像素的灰度值可能不完全一样,实际操作中我们发现只要灰度值小于4(DIFFV AL)的点即可视为黑色点。
摄像头扫描的图像分为一下两种情况:
(1)扫描图像只有一条竖直黑线,如图2所示
从左边的第一个有效像素点(usefu1_line)开始依次对相邻的像素点进行灰度值相减(左减右),当两者的差值大于阈值(V ALUE)时,判定下一个像素点(usful_line+1)对应的为黑线的左边缘。
继续相减当差值再次大于阈值时,将此像素点定位黑线的右边缘。
该程序如下所示:
其中g_ucDif为两个像素灰度值之差的绝对值,LINE_MAX为采集图像的最大有效列数,ROW_MAX为采集图像的最大有效行数,ucImage_data[][]为存储图像像素点的一个二维数组,ucImage_temp为临时存储图像的数组。
(2)扫描到的图像为黑色交叉线,如图3所示
前面提到S12单片机的总线超频以后通过AD转换每一行图像我们能采集到70个有效数据点,而黑线的宽度只有25mm(大赛组委会规定),在这个宽度内最能只能包含6个有效的数据点。
因此对于黑色交叉线我们只要将右边缘(right)所在列数与左边缘(1eft)所在列数相减,如果差值大于6,我们即可判定此时为黑色交叉线。
程序只要在前面的基础上加上一下语句即可完成。
其中B1ackwire_data[]为采集到的黑线中心线数据,它将在后面的控制策略中被用到。
3智能车的控制算法
在比赛中,影响赛车速度的一个关键的因素就是赛车能不能提前识别弯道与直道,也就是说赛车的控制算法对提高赛车的成绩起到至关重要的作用。
这里采用鲁棒性好且算法简单的经典PID算法。
但普通的PID是线性算法,若参数设置太大则小车在走直道时很容易出现振荡的情形,而在高速走弯道的时则易出现反应迟钝、冲出赛道的情况。
因此采用非线性的PID算法,使之对小偏差不敏感而对大偏差敏感,实现了直道平稳同时弯道灵敏的目的。
驱动电机的PID控制部分通过下面算法实现:
其中,MVn、MVn-1;当前和上次操作量;△MVn:当前操作量微分;en、en-1、en-2:当前,上次,上上次偏差;KP、Ki、Kd的数值通过实验得到。
经过测试发现,对于舵机控制当它的积分环节ki为O时,小车的表现性能要更好,所以对舵机采用的是带非线性的PD算法。
该算法首先需要知道所采集图像中黑线的转弯斜率(如图4所示),图中直线表示赛道为直道,左右两边的线分别表示左转弯和右转弯时摄像头可能采集到的黑线情形,不同的线表示不同的转弯斜率(slope),在后面的PD控制中我们将用到此斜率。
采用的是带有预判的控制策略(如图5所示),具体分为以下几种情况:(1)赛道一直为直道时,程序如下:
其中,STEER_CENTER为舵机转向中心,g_lOldPwm为前一步的PWM输出,g_sCurE为当前的转弯偏差,g_soldE为前一步的转弯偏差。
4结论
本文在摄像头已经能够采集较为准确图像的基础上,提出并研究了黑色指引线的边缘提取算法,然后在该算法的基础上决定了舵机转向的控制策略,通过实践证明,采用此种算法和控制策略可以使赛车获得较快的行驶速度和较为可靠的转向性能。