飞思卡尔智能车黑线识别算法及控制策略研究
- 格式:pdf
- 大小:340.24 KB
- 文档页数:6
本设计采用单片机(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部分电路板,分别为路径识别模块,单片机模块,直流电机驱动模块和速度检测模块,还有串口通讯及调试接口。
图像处理在智能车路径识别中的应用摘要机器视觉技术在智能车中得到了广泛的应用,这项技术在智能车的路径识别、障碍物判断中起着重要作用。
基于此,依据飞思卡尔小车的硬件架构,研究机器视觉技术应用于飞思卡尔小车。
飞思卡尔智能车处理器采用了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应用案例飞思卡尔智能车光电传感器广泛应用于自动驾驶小车的各个方面,包括但不限于以下应用案例:防碰撞系统飞思卡尔智能车光电传感器可以配备在车辆的前部,用于检测前方是否有障碍物。
当传感器检测到前方有障碍物时,会向控制系统发出警告信号,控制系统则会采取相应措施,如减速或避让,以防止碰撞事故的发生。
导航系统飞思卡尔智能车光电传感器可以配备在车辆的底部,用于检测车辆行驶路径。
传感器将红外线发射到地面上的线路上,通过接收反射回来的光线来确定车辆的行驶方向和位置。
导航系统可以根据传感器的信号来控制车辆的行驶轨迹,以实现自动驾驶。
环境感知系统飞思卡尔智能车光电传感器可以配备在车辆的四周,用于感知周围的环境。
传感器可以检测到周围物体的位置、形状和距离等信息,以帮助车辆做出相应的决策,如避让行人或停车等。
飞思卡尔智能车摄像头边线、黑线提取方法分析
下面看一下CCD的信号提取
这是摄像头提取到的信号,如此看来是可以用阈值取线的方法的
然而实际的情况是很糟糕的比如这样
等等,这样的请款都是阈值所不能解决的,但上面的图线的一个显著特点就是有一个很夸张的边缘,这是一个明显的不能再明显的信息
如图所示
蓝色是图线,红色是微分,如此看来特征是很夸张的,我们可以很好的加以利用了
如果我们在微分一下特征会不会更明显呢?
蓝色是原图想,红色是微分,黄色是微分后再微分,如此看来,再微分已经没有什么明显的效果了,还是一次微分比较的好,
现在理一下思路,
第一步取图像
第二步微分
第三步求绝对值
第四步把一些小的值去掉
对于这样的东西我们就很很很容易处理了
但是我们还要注意这样的情况
即便是去掉了一些很小的信号但是还有一些稍大一点的信号这是值得关注的事情
注意:如果是线性ccd的话灰度值的平均水平有时会很低,为了好看可以采用软件放大的做法,个人认为加运放的效果不好,软件放大还可以加入一些智能的判断和操作,12位的AD转换进度完全够用,图像处理其实八位就完全够用啦。
摄像头黑线识别算法和赛车行驶控制策略引言按照首届全国大学生“飞思卡尔”智能车大赛规则要求,根据赛道特点,主要有两种寻线设计方案:光电传感器方案和摄像头方案。
这两种方案各有特点:光电传感器构成“线型检测阵列”的方案简单易行,但由于受规则限制(传感器数量不超过16 个),光电管的数量不可能太多,从而单个线型检测阵列所能确定的指引线信息较少。
所以采用此方案寻线精度不够高,在舵机转向控制时会产生直道蛇行或弯道舵机回摆,并且判断距离有限。
因此我们选择采用摄像头作为寻线传感器,一方面摄像头探测的赛道信息和距离更出色;另一方面,规定使用的MC9S12DG128 运算速度和自身AD 口的采样速度能够适应对黑白低线数摄像头的有效视频采样和对大量图像数据的处理。
图像数据信息特点摄像头的主要工作原理具体而言(参见图1),摄像头连续地扫描图像上的一行,则输出就是一段连续的电压视频信号,该电压信号的高低起伏正反映了该行图像的灰度变化情况。
当扫描完一行,视频信号端就输出低于最低视频信号电压的电平(如0.3V),并保持一段时间。
这样相当于,紧接着每行图像对应的电压信号之后会有一个电压“凹槽”,此“凹槽”叫做行同步脉冲,它是扫描换行的标志。
然后,跳过一行后(因为摄像头是隔行扫描的方式),开始扫描新的一行,如此下去,直到扫描完该场的视频信号,接着就会出现一段场消隐区。
此区中有若干个复合消隐脉冲,其中有个脉冲远宽于(即持续时间长于)其他的消隐脉冲,该消隐脉冲又称为场同步脉冲,它是扫描换场的标志。
场同步脉冲标志着新的一场的到来,不过,场消隐区恰好跨在上一场的结尾部分和下一场的开始部分,得等场消隐区过去,下一场的视频信号才真正到来。
摄像头每秒扫描25 幅图像,每幅又分奇、偶两场,先奇场后偶场,故每秒扫描50 场图像。
奇场时只扫描图像中的奇数行,偶场时则只扫描偶数行。
2024年飞思卡尔智能车总结
2024年飞思卡尔智能车在技术、市场和发展方面取得了重要进展。
在技术方面,飞思卡尔智能车在感知、决策和控制方面取得了显著的提升。
通过引入先进的传感器技术、深度学习算法和决策系统,智能车能够更准确地感知周围环境,并作出更精准的决策。
此外,智能车的控制系统也得到了改进和优化,使得车辆在各种复杂的道路条件下能够更安全、稳定地行驶。
在市场方面,飞思卡尔智能车取得了良好的销售业绩和市场份额。
随着智能汽车的普及,越来越多的消费者开始关注智能车的安全性、效率和便利性。
飞思卡尔智能车凭借其卓越的技术和可靠的性能,获得了广大消费者的认可和信赖,进一步扩大了市场份额。
在发展方面,飞思卡尔智能车与各大汽车制造商、科技公司和城市机构建立了紧密的合作关系。
通过合作,飞思卡尔能够更好地了解市场需求,持续改进和创新智能车技术。
此外,飞思卡尔还积极参与智能交通系统和城市智能化建设,为城市提供更安全、高效的交通解决方案。
综上所述,2024年飞思卡尔智能车在技术、市场和发展方面都取得了显著的进展,为智能汽车行业的发展做出了积极贡献。
未来,飞思卡尔将继续致力于推动智能车技术的发展,为用户提供更智能、更安全的出行体验。
第 1 页共 1 页。
第十届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告摘要本文设计的智能车系统以K60微控制器为核心控制单元,基于CCD摄像头的图像采样获取赛道图像信息,提取赛道中心线,计算出小车与黑线间的位置偏差,采用PD方式对舵机转向进行反馈控制。
使用PID控制算法调节驱动电机的转速,结合特定算法分析出前方赛道信息实现对模型车运动速度的闭环控制。
为了提高模型车的速度和稳定性,我们用C++开发了仿真平台、蓝牙串口模块、SD卡模块、键盘液晶模块等调试工具,通过一系列的调试,证明该系统设计方案是确实可行的。
关键词:K60,CCD摄像头,二值化,PID控制,C++仿真,SD卡AbstractIn this paper, we will design a intelligent vehicle system based on MC56F8366 as the micro-controller unit. using the CCD image sensor sampling to the track image information to extract the track line center, to calculate the positional deviation between the car with the black line, the use of PD on the rudder. The machine turned to the feedback control. We use PID control algorithm to adjust the speed of the drive motor, combined with specific algorithms to achieve closed-loop control of the movement speed of the model car in front of the track. In order to improve the speed and stability of the model car, we use the C++ to develop a simulation platform, Bluetooth serial module, SD card module, keyboard, LCD modules, debugging tools. Through a series of debugging, the system design is feasible.Key words: K60,CCD_camera, binaryzation, PID control, C++ simulation, SD card目录第1章引言................................................................................... - 1 - 第2章系统总体设计................................................................ - 2 - 2.1 系统分析..................................................................................... - 2 - 2.2 车模整体布局............................................................................. - 3 - 2.3 本章小结....................................................................................... - 4 - 第3章系统机械设计及实现................................................... - 5 - 3.1 前轮定位的调整......................................................................... - 5 -3.1.1主销内倾..............................................................................- 6 -3.1.2 后倾角.................................................................................- 6 -3.1.3 内倾角.................................................................................- 7 - 3.2 舵机安装....................................................................................... - 8 -3.2.1 左右不对称问题的发现与解决........................................- 10 - 3.3 编码器的安装............................................................................ - 10 - 3.4 摄像头安装.................................................................................- 11 -3.4.1 偏振镜的使用......................................................................- 12 -3.4.2 摄像头的标定......................................................................- 12 - 3.5 摄像头的选用.............................................................................- 13 - 3.6 红外接收装置.............................................................................- 14 -3.7 防止静电复位.............................................................................- 15 - 3.8 本章小结.......................................................................................- 15 - 第4章硬件电路系统设计及实现 ...................................... - 16 -4.1 硬件设计方案............................................................................- 16 - 4.2 电源稳压......................................................................................- 17 - 4.3 电机驱动......................................................................................- 18 - 4.4 图像处理部分............................................................................- 19 -4.4.1 摄像头升压电路.............................................................- 19 -4.4.2 视频分离电路.................................................................- 19 -4.4.3 硬件二值化.....................................................................- 19 - 4.5 灯塔电路......................................................................................- 21 - 4.6 本章小结......................................................................................- 21 -第5章系统软件设计.............................................................. - 22 -5.1 软件流程图...............................................................................- 22 - 5.2 算法新思路...............................................................................- 23 -5.2.1中心线提取.......................................................................- 23 -5.2.2 直角检测........................................................................... - 24 -5.2.3 单线检测......................................................................... - 24 - 5.3 舵机控制.....................................................................................- 25 - 5.4 速度控制.....................................................................................- 26 - 5.5 PID算法....................................................................................- 26 - 5.6 路径优化.....................................................................................- 31 -第6章系统联调...................................................................... - 33 - 6.1 开发工具.................................................................................... - 33 - 6.2 无线调试蓝牙模块及蓝牙上位机..........................................- 33 - 6.3 键盘加液晶调试......................................................................- 34 - 6.4 TF卡调试模块.........................................................................- 34 -6.4.1 TF卡.............................................................................- 34-6.4.2 SDCH卡 .........................................................................- 35 -6.4.3 软件实现.......................................................................- 36 - 6.5 C++上位机设计........................................................................- 36 - 6.6 电源放电模块...........................................................................- 38-6.6.1 镍镉电池记忆效应…………………………………….. - 39-6.6.2 放电及电池性能检测设备…………………………….. - 39- 6.7 本章小结....................................................................................- 40 - 第7章模型车技术参数........................................................ - 41 - 第8章总结............................................................................... - 42 - 参考文献...................................................................................... - 44 -第1章引言在半导体技术日渐发展的今天,电子技术在汽车中的应用越来广泛,汽车智能化已成为行业发展的必然趋势。
飞思卡尔智能车起跑线的识别前天东北赛区要举行个联谊会,所里的老师就让我们在联谊会的时候给大家演示一个识别起跑线的简单示范!虽然对于别人来说这不成什么问题,可是这对于刚接触小车,刚接触飞思卡尔片子的我来说就不得不成为一个问题了,幸亏有我们组的大黄牛在,才使我们识别起跑线的示范得以成功演示!真庆幸有我们组长这个大黄牛在。
识别起跑线关键在于设计一个好的算法能够准确、稳定的描述起跑线的特征,特别是和十字交叉线的区别,二者的区别就在于一个是连续的黑线,前者的直道两侧有两段黑色横线,并且两段横线和直道之间有一段特殊规格的白色区域;而后者是连续的白色横线和直道交叉。
这样就可以通过判断整场数据中符合前面特征的就为起跑线。
由于摄像头的物理特性,我们只采取是在近端出现并且有连续多行出现此特征的才为起跑线。
并且在连续识别起跑线第三次的时候使小车能够停下来。
由于看到小车的时候是在还没有到起跑线的时间,所以在判断为第三次看到起跑线的时候我们这时候并没有立即使小车停下来,而是设置一个延时,使小车能够在越过起跑线之后再停下来!这样子保证了没有延长小车行时间。
飞思卡尔智能车制作全过程(本人在很久以前做的一辆用来比赛的智能车--获得华北一等奖,全国二等奖,有许多可改进地方.)下面我们来立即开始我们的智能车之旅:首先,一个系统中,传感器至关重要."不管你的CPU的速度如何的快,通信机制如何的优越,系统的精度永远无法超越传感器的精度" .是的,在这个系统中,传感器的精度,其准确性就显得至关重要.如果你问我传感器的电路,呵呵,我早就和大家分享了,在我发表的日志中,有一篇<<基于反射式距离传感器>>的文章就详细的说明了传感器的硬件电路以及可以采取的信号采样方式.传感器安装成一排,如上面排列.(就是个一字排列,没有什么特别)接下来,看看我们如何处理传感器得到的信息:大家看到了.结构很简单,我们已经搞定了传感器通路.下面我们来看看多机的控制方面的问题:其实,不管是便宜还是比较贵的舵机,都是一样的用法.舵机的特点就是不同的占空比方波就对应着舵机的不同转角.当然不同的舵机有不同的频率要求.比如我用的这个舵机:方波频率50HZ.怎么改变占空比?这个不就是PWM模块的功能嘛.PWM模块可以输出任意占空比的方波.只要你控制其中的占空比寄存器,就可以直接控制舵机的转角.你只要将传感器的状态和这个占空比对应上,不就OK了?就这么简单,做到这里,你就可以让你的车在跑道上跑了!接下来,我们的工作是让智能车更加完善:速度要稳定.在当前的系统结构中,要使一个系统更稳定更可靠,闭环系统是一个选择.(如果你不知道什么是闭环系统,可以参照我的文章里面的一篇"基于单片机的PID电机调速"),既然是一个闭环系统,速度传感器是必不可少的,用什么样的传感器做为速度反馈呢:仔细看,和后轮之间有一条皮带的这个貌似电机的东西,就是我的速度传感器,它的学名叫"旋转编码器".这个器件的特点就是:每转一圈,就会从输出端输出一定的脉冲,比如我这个旋转编码器是500线的,就是转一圈输出500个脉冲.因此,我只要在单位时间内计数输出端输出的脉冲数,我就可以计算出车辆的速度.显然,这个速度可以用来作为PID速度调节的反馈.现在有了反馈,我们需要的是调节智能车驱动电机的速度了,如何来调速,就成了必须解决的问题了.我用的是驱动芯片MC33886.其实,这个芯片就是一个功率放大的模块.我们知道,单片机输出的PWM信号还是TTL信号,是不能直接用来驱动电机的.非要通过功率模块的放大不可.这个道理其实很简单,就像上次我给大家画的哪个电子琴电路的放大电路一样:看上面的那个三极管,就是将TTL电路的电流放大,才能够来驱动蜂鸣器.其实这里的这个MC33886就是这样的一个作用.而且我们自己也完全可以用三极管自己搭建一个这样的功率放大电路,当然,驱动能力肯定不如这里的这个MC33886(如我们用三极管就搭建了超过MC33886的电路,摩托罗拉就不会卖几十块钱一个了.呵呵.)知道了这个MC33886的工作原理,就好说了,一句话,通过PWM来调节电机的速度.当方波中高电平占的比例大,电机的平均电压肯定高,转速肯定快.也就是说,PWM的占空比越大,电机转速越高.看,就这么简单,这个智能车就做好了.接下来,我们就把我们知道的PID知识放到舵机和直流驱动电机的控制中去.就可以达到一个比较好的控制效果.如果要达到更高的水平,肯定机械方面的改造也少不了.当然,这不属于本文的讨论范围.呵呵.飞思卡尔智能车制作全过程---舵机篇智能车的制作中,看经验来说,舵机的控制是个关键.相比驱动电机的调速,舵机的控制对于智能车的整体速度来说要重要的多.PID算法是个经典的算法,一定要将舵机的PID调好,这样来说即使不进行驱动电机的调速(匀速),也能跑出一个很好的成绩.机械方面:从我们的测试上来看,舵机的力矩比较大,完全足以驱动前轮的转向.因此舵机的相应速度就成了关键.怎么增加舵机的响应速度呢?更改舵机的电路?不行,组委会不允许.一个非常有效的办法是更改舵机连接件的长度.我们来看看示意图:从上图我们能看到,当舵机转动时,左右轮子就发生偏转.很明显,连接件长度增加,就会使舵机转动更小的转角而达到同样的效果.舵机的特点是转动一定的角度需要一定的时间.不如说(只是比喻,没有数据),舵机转动10度需要2ms,那么要使轮子转动同样的角度,增长连接件后就只需要转动5度,那么时间是1ms,就能反应更快了.据经验,这个舵机的连接件还有必要修改.大约增长0.5倍~2倍.在今年中,有人使用了两个舵机分别控制两个轮子.想法很好.但今年不允许使用了.接下来就是软件上面的问题了.这里的软件问题不单单是软件上的问题,因为我们要牵涉到传感器的布局问题.其实,没有人说自己的传感器布局是最好的,但是肯定有最适合你的算法的.比如说,常规的传感器布局是如下图:这里好像说到了传感器,我们只是略微的一提.上图只是个示意图,意思就是在中心的地方传感器比较的密集,在两边的地方传感器比较的稀疏.这样做是有好处的,大家看车辆在行驶到转弯处的情况:相信看到这里,大家应该是一目了然了,在转弯的时候,车是偏离跑道的,所以两边比较稀疏还是比较科学的,关于这个,我们将在传感器中在仔细讨论。
飞思卡尔智能车电磁组分区算法介绍写在之前的话:1、⽬前我是⼀名在校学⽣,这也是我第⼀次写博客,不周之处,请多谅解;2、此算法并⾮原创,借鉴⾃⼭东德州学院第⼋届⽩杨队(PS:个⼈看法,对于⼀些⼈把别⼈的开源东西改头换⾯⼀下就说是⾃⼰的原创⾏为⼗分鄙视);3、对于此算法的理解和说明并⾮纸上谈兵,算法已经被我运⽤到了⼩车⽐赛中并取得好的成绩(具体就不多说了,⽐赛时车莫名其妙坏了,⽐赛前调试的速度绝对能进国赛,⽐较遗憾),总之这算法是我尝试过的最好的算法;4、这⼀次所介绍的只是路径算法和⼀些知识普及,后⾯有时间会介绍其余部分算法及许多好的思路(舵机电机控制思路(不只是简单的PID),双车策略);5、希望对于这⽅⾯有涉及的⼈能与我联系并交流或指出不⾜之处。
---------------------------------------------------------------分割线-----------------------------------------------------------------------------⼀、没有这⽅⾯了解的可以看看 飞思卡尔智能车分为三组:摄像头、光电、电磁,我做的是电磁车,三种车队区别在于传感器的不同,所以获得路径信息的⽅法也不⼀样,摄像头和光电识别的是赛道上的⿊线(⽩底赛道),⽽电磁车则是检测埋在赛道下的通⼊100mh电流的漆包线,摄像头和光电采⽤的是摄像头和ccd作为传感器,电磁则是⽤电感放在漆包线周围,则电感上就会产⽣感应电动势,且感应电动势的⼤⼩于通过线圈回路的磁通量成正⽐,⼜因为漆包线周围的磁感应强度不同,因此不同位置的电感的感应电动势就不同,因此就可以去确定电感位置;因此在车⼦前⾯设置了50cm的前瞻,电感布局如下(怎么发不了图⽚):分为两排,前排3个,编号0,1,2(前期还加了两个竖直电感⽤来帮助过直⾓弯,后来改为了⼋字电感);后排2个,编号3,4;现在车⼦获得了不同位置的感应电动势的⼤⼩了,但这些值是不能处理的:1、感应电动势太微弱;2、是模拟信号,信号太微弱就放⼤它;这就涉及到模拟电路的知识了,就不多说了(因为要把这讲完到PCB绘制的篇幅就⾜够写另开⼀号专门写这些⽅⾯来(PS:题外话(我的题外话⽐较多)):放⼤部分外围你设计的再好也抵不过⼀个更好的芯⽚,有两个例⼦,⼀个是我⾃⼰的:之前⽤的是NE5532,但是效果不理想,加了好多什么滤波,补偿,都⽤上,没⽤,软件⾥处理后⾯再说,后来⼀狠⼼换了AD620,感觉像是春天来了,因为它是仪⽤放⼤器,还有就是贵。
飞思卡尔智能车原理飞思卡尔智能车是一种基于嵌入式系统和人工智能技术的智能交通工具。
它通过搭载各种传感器、控制器和算法,在无人驾驶、自动泊车等场景下发挥重要作用。
本文将介绍飞思卡尔智能车的原理,并分析其在实际应用中的优势和挑战。
一、飞思卡尔智能车的硬件组成飞思卡尔智能车的硬件组成主要包括以下几个方面:1. 主控单元:主控单元是飞思卡尔智能车的核心组件,通常采用高性能的嵌入式处理器。
它负责接收来自各种传感器的信息,并根据预设的算法进行数据处理和决策。
2. 传感器:飞思卡尔智能车搭载多种传感器,如摄像头、激光雷达、超声波传感器等。
这些传感器可以实时感知周围环境的信息,包括道路状况、障碍物位置等,为智能车提供必要的数据支持。
3. 电机与驱动系统:飞思卡尔智能车搭载电机和对应的驱动系统,用于控制车辆的行驶和转向。
这些系统通常采用先进的电子控制技术,能够实现精确的转向和速度控制。
4. 通信模块:飞思卡尔智能车通过通信模块与其他车辆、交通基础设施等进行信息交互。
这种通信方式可以实现车辆之间的协同工作,提高交通系统的整体效率。
二、飞思卡尔智能车的工作原理飞思卡尔智能车的工作原理可以归结为以下几个关键步骤:1. 环境感知:飞思卡尔智能车通过搭载的传感器对周围环境进行感知。
摄像头可以捕捉到道路状况、交通标志和其他车辆的信息;激光雷达可以检测到障碍物的位置和距离;超声波传感器可以测量车辆与前方障碍物的距离等。
通过这些传感器获取到的数据,智能车可以对周围环境做出准确判断。
2. 数据处理与决策:主控单元接收传感器传来的数据,并根据预设的算法进行数据处理和决策。
它会将传感器的信息与事先建立的模型进行比对,进而判断车辆应该采取何种动作,如加速、刹车、转向等。
3. 控制指令生成:基于数据处理与决策的结果,主控单元生成相应的控制指令,通过驱动系统控制车辆的行驶和转向。
这些控制指令可以通过电机和驱动系统精确地控制车辆的运动。
4. 数据通信与协同:飞思卡尔智能车通过通信模块与其他车辆以及交通基础设施进行信息交互。
基于光电传感阵列和摄像头的寻线控制算法关军(上海交通大学机器人研究所上海200240)文摘本文,研究分析了分别基于光电传感器阵列和摄像头的寻线控制方案,通过评估比较两种方案各自具有的优势与不足,设计了一种基于两种传感器融合使用的寻线控制算法。
摄像头和光电传感阵列的混和使用,充分发挥了摄像头探测距离远,光电管信号可靠的特点,有效解决了摄像头在弯道行驶中丢失黑线的问题。
实践表明,该控制算法改善了赛车弯道行驶性能,提高了赛车寻线的可靠性。
关键词:摄像头;光电传感器;寻线控制;弯道识别A line-tracking control algorithm based on photoelectric sensor array and cameraGuan Jun(Research Institute of Robotics, Shanghai Jiao Tong University,Shanghai 200240, China)Abstract: In paper, we make a study on line-tracking control schemes based respectively on photoelectric sensor array and camera. Realizing that both schemes have their own advantages and disadvantages, we have designed a line-tracking control method which combines these two kinds of sensors. The use of camera and photoelectric sensor array together is able to make full advantage of the feature that camera could detect comparatively more distant and that photoelectric signal is more reliable, thus effectively solve the problem that the camera will miss the black line when turning. Experiments show that such method can improve the1performance of the vehicle when turning as well as the reliability of tracking.Key Word: Camera; Photoelectric sensor; Line-tracking control; Curve detecting寻线传感器的选择,是此次智能车竞赛需要首先考虑的问题。
基于摄像头的道路识别及赛车控制算法杨运海周祺吕梁摘要:本文探讨了摄像头在智能车道路识别中的应用,并提出了一种通用的控制算法。
在准确采集图像的基础上,利用临近搜索法对有效道路信息进行快速提取,通过分析赛道信息,计算出赛道黑线的走向趋势及赛车当前位置。
在充分考虑当前和过去的赛道信息的基础上,对赛道类型进行判断及分类。
在综合考虑赛道类型,黑线走向及车当前位置,对舵机的转向和电机的速度进行精确控制。
关键词:图像采集;临近搜索;转向控制,速度控制1.概述在飞思卡尔智能车汽车比赛中,路径识别方法主要有两大类,一类是基于红外光电传感器,令一类是基于摄像头。
通常,红外光电传感器安装灵活,原理简单,可靠性好,不易受环境光干扰,因而得到了广泛应用,但其对前方道路的预判距离非常有限,不适宜赛车高速行驶。
另一类是基于摄像头,与光电传感器相比,其优点非常明显,能提前获取大量前方道路信息,有利于实现赛车的最优控制。
但其缺点是图像采集要求有高的AD转换频率,图像处理算法复杂度高,且容易受环境光的干扰。
考虑到摄像头的优点远大于其缺点,因此选择了摄像头。
以下是摄像头的工作流程图:图B-1 摄像头工作流程摄像头控制赛车行驶方案有三大模块:图像采集、赛道信息提取、转向和速度控制。
2.图像采集考虑到S12的运算能力,我们采用了黑白制式、320*240的CMOS单板摄像头。
摄像头出来的是模拟信号,每秒有50场图像,场之间有场消隐信号,行之间有行消隐信号,经过lm1881分离后,可得到场同步信号和行同步信号,作为行中断信号。
由于行中断中要采集该行的信号,对时间要求很严格,其中断优先级应比普通中断的优先级高,因此我们选择IRQ作为行同步信号输入口,PT0作为场信号输入口。
此外,为保证图像不丢失,我们仅对场信号的下降沿进行捕捉。
图B-2 摄像头视频信号按照目前车的刹车时的加速度,我们选定图像拍摄最远处为前方1米就足以对速度做出了控制。
考虑到前轮到前方20cm为摄像头的盲区,故有效拍摄范围为0.8m,为了保证不丢失起跑线,每2.5cm至少拍摄一行,故一幅图像至少采集32行。
万方数据万方数据瞄董j磁&圜匡豆可.堡星篁查墨堡皇鱼可以消除影响。
因而从去噪效果和计算量两方面来考虑,lx3模板中值滤波更具有优势。
4黑线中心提取提取黑线中心部分是小车路径识别系统中最为重要的一个环节,关系到智能小车运行质量的好坏。
这里黑线中心提取方法为:先判断每行的第一个点是否为自点,如是白点则依次对白点进行计数(设计数为a,当遇到连续黑点时则计数黑点个数(设计数为b,再次遇到白点时则退出该行计数,此时黑线中心所在列为a+b/2;如果第一个为黑点,且不是噪声点(即为连续的黑点,则直接对黑点计数(设计数为b,当遇到连续白点后则退出计数,这种情况下得到的黑线中心位于第b/2列。
最后将从一幅图像上得到的所有中心位置按行存人一个一维数组中。
但是不得不考虑两种比较特殊的情况,起始线和十字交叉线。
通过观察发现这两种情况下每行出现黑点的数量远远大于黑线的黑点数(黑线一般能采集到2—3个黑点,所以当采集到的黑点数超过正常值时,便判定这一行为特殊行,并赋予特殊标志位(这里将特殊行中心点标志为50,因为经过图像处理后图像变成38}20数组,标志为50能将特殊点和正常点很明显的区分开,也方便了下面的改进差值算法。
由于规则要求小车能识别起始线,因而还需对特殊行进行分析。
图7为采到起始线的情况,可以看出起始线所在行具有多个跳变,考虑到车体偏离等情况,可以用白点跳变为黑点的次数(方案中选2或3来判定是否为起始线,如果符合情况则标志出这一行。
则其他的特殊行均为十字交叉情况。
虽然在前面已经有去噪处理,但是偶尔还是会有干扰,这样提取出来的某些行黑线中心位置就发生了跳变。
同时,为了后续的控制模块得到准确的道路信息,需要对特殊行及跳变点进行插值处理,即赋予其前后两行的平均值作为黑线中心值。
但是考虑到会出现这样的复杂情况:连续两行出现跳变点或者特殊行的前后出现跳变点,这时如果简单的按上面的方法进行插值,会插入一个误差很大的中心点,使道路产生弯点。
智能车黑线识别算法及控制策略研究
时间: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结论
本文在摄像头已经能够采集较为准确图像的基础上,提出并研究了黑色指引线的边缘提取算法,然后在该算法的基础上决定了舵机转向的控制策略,通过实践证明,采用此种算法和控制策略可以使赛车获得较快的行驶速度和较为可靠的转向性能。