资源描述
基于闭环控制算法和PID优化算法的智能小车软件系统设计摘 要:在全国大学生飞思卡尔;杯智能汽车竞赛的背景下,设计出一种能够自动识别路径、跟踪赛道双边引导线的智能小车软件控制系统。智能小车以飞思卡尔(Freescale)公司的MC9S12XS128为检测和控制核心,根据不同的环境状况动态确定黑白二值化阈值之后,对摄像头采集到的图像进行处理,从而准确判断不同类型的赛道,进一步控制舵机和电机。使用舵机转向闭环控制算法和电机速度闭环控制算法,结合经典的PID控制算法,实现直道加速、弯道减速的优化。智能小车最终可以在黑色双边引导线的白色背景赛道上自动识别路径行驶。关键词:智能小车;MC9S12XS128;图像处理;闭环控制;PID控制中图分类号:TP311 文献标识码:ADesign of Smart Car Software System Based on Closed-Loop Control Algorithm and PID Optimization AlgorithmLI Biyue(Dept . of Electronic Engineering,College of Information and Electrical Engineering ,China Agricultural University ,Beijing 100083,China )Abstract:Under the background of Freescale cup national college students smart car competition,design a controlsystem software.Under this system,the smart car can automatically identify paths and trace the track of bilateral guideline.Tracking smart car system is designed based on the control chip of system of Freescale MC9S12XS128 MCU.Afterdetermine the black and white binarization threshold according to the different environmental conditions,run a series ofprocessing on the images captured by the camera.Then,make an accurate judgment in the different shapes of the circuit tofurther control of steering gear and motor.Using steering gear steering closed-loop control algorithm and motor speed closedloopcontrol algorithm,combined with the classic PID control algorithm to achieve optimization of car was straight-lineacceleration,deceleration in bend.Smart car could eventually automatically identify route which has the bilateral guide line ofthe white on black background and run steadily.Keywords:smart car;MC9S12XS128;image processing;closed-loop control;PID control1 引言(Introduction)智能车控制系统的设计以汽车电子为背景,涵盖自动控制、模式识别、传感技术、计算机、机械与汽车工程等多门学科,是一项新兴的综合性技术。智能车系统是智能汽车的迷你版本,二者在信息提取及处理、控制系统构成和控制方案整定方面有诸多相似之处,可以说智能车系统是智能汽车良好的实验平台。智能车系统主要包括三个大部分,分别为车模总体机械结构、硬件电路系统、软件算法控制系统。如果说硬件是智能车行驶的基础,那么程序算法就是灵魂。高效的程序则是智能车高速平稳自动寻迹的基础。2 系统总体设计(General design of system)2.1 概述智能小车控制系统采用飞思卡尔公司的16位单片机MC9S12XS128为检测和控制核心【1】。以COMS数字摄像头OV7620为路径检测传感器,以欧姆龙500线编码器为速度检测传感器,根据摄像头检测到的赛道信息【2】,以及编码器采集到的小车速度信息,基于XS128单片机通过智能小车软件控制系统对小车进行舵机转向和电机驱动的控制,使智能车系统达到所需的稳定性及快速性要求,从而实现小车的智能化行驶,如图1所示。2.1.1 需求规定(1)在小车功能方面最终完成的基于摄像头传感器的智能小车,要能够做到在此软件控制系统的支撑下,完成按规则绕赛道运行一周的任务。在准确识别赛道并稳定运行一周的基础上【3】,期望小车的速度越快越好,即完成比赛的用时越短越好。(2)在小车性能方面第一,要求智能小车软件控制系统应具有良好的运行效率,行驶速度尽可能快,能够快速准确判断出不同类型的弯道,并及时躲避在赛道上的障碍物;第二,应具有良好的灵活性,使行驶速度、自身调整角度都可以灵活改变;第三,应提供良好的测试模式,使设计人员可以方便的观察、调整的小车运行模式;第四,应具有良好的可扩展性,从而为日后升级系统提供方便。2.1.2 运行环境2.2 系统各模块设计2.2.1 基于核心板MC9S12XS128的主程序(main函数)设计(2)定义PLL_Init( ):初始化锁相环函数;SCI_Init( ):串口初始化函数;PIT_Init( ):PIT定时器中断初始化函数;PWM_Init( ):脉冲宽度调试模块初始化函数;PH_Init( ):初始化单片机PH口函数(用于接收编码器测速信息);OV7620_Init( ):初始化摄像头函数(用于OV7620信息采集)。2.2.2 图像采集模块(2)定义存储原始图像矩阵的二维数组:Im a g e _ D a t a 。(3)解释摄像头是智能车的眼睛,我们将采用数字摄像头进行赛道采集,在采集时,我们利用行、场中断进行数据采集。在每次捕捉到40个行中断之后,触发一次场中断,其中,在行中断的中断子函数中利用单片机读出图像数据。由于单片机的处理能力有限,所以不能对摄像头的一场图像中所有行的所有像素点都进行处理,但为了获得理想的赛道信息和足够的前瞻量,需要通过多次实验,需要选择出合适的行和每一行中需要采集的像素点数。最终,将所采集的数据存在一个二维数组中,得到原始的图像矩阵,以便后续处理。2.2.3 图像处理模块(2)定义BEST_THRESHOLD( ):确定最佳黑白二值化阈值函数。(3)解释在图像处理模块,为了能够做到识别不同光线环境下的赛道,首先需要确定一个合适的黑白二值化阈值,确定阈值后,在保持原始图像矩阵大小不变的前提下,对其进行均值滤波,在此算法基础上对原始图像进行二值化处理,从而达到降噪的目的,最终通过摄像头的上位机获取到赛道的二值图像。2.2.4 电机驱动模块(1)电机驱动模块采取速度闭环控制原理,结构示意图如图5所示。(2)定义speed_error=setV-backV:本次速度的偏差值=设定速度值-编码器读回的小车实际速度值;last_speed_error:上一次的速度偏差值;pre_speed_error:上上次的速度偏差值;derta_M:经过PID控制器处理过后的速度改变量。(3)解释取三次速度偏差值,经过PID控制器的处理,得到处理后的速度改变量,作用在设定速度setV上,通过调整过后的PWM波来控制电机的转动,使小车在不同类型赛道上行驶时有一个合适的速度。2.2.5 舵机转向模块(1)舵机转向模块采取运动方向闭环控制算法,结构示意图如图6所示。(2)定义Error:原始偏差数组;angle_error=E2:本次角度的偏差值=处理后的偏差值E2;last_angle_error:上一次的角度偏差值;pre_angle_error:上上次的角度偏差值;derta_S经过PID控制器处理过后的角度改变量。(3)解释通过获取到的赛道信息,提取出赛道的中线,与图像的中线进行比较,将每一行的偏差值存储在数组Error中,使用加权算法得到偏差值E2,取三次角度偏差值(指E2),经过PID控制器的处理,得到处理后的角度改变量,作用在舵机的参考零点上,通过调整过后的PWM波来控制舵机的转向量。2.2.6 调试模块为了能够对编码器采集到的小车速度以及摄像头采集到的赛道图像进行检测,还需要完善调试检测模块。实际使用中,我们将成品蓝牙模块与USB-TTL模块连接并连接至电脑,将另一个蓝牙模块连接至单片机的UART1组,即S2、S3口,该口定义为TXD、RXD,通过串口SCI接收与发送数据,接受到的数据我们通过上位机软件,串口助手进行接收。所接收到的图像如图7所示(以十字路口的识别为例)。3 关键技术及难点(Key technology and difficulty)3.1 PID控制算法3.1.1 PID控制算法简介PID控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量【4】,对被控对象进行控制,故称PID控制器,原理框图如图8所示。3.1.2 增量式PID可以看出由于一般计算机控制系统采用恒定的采样周期T,一旦确定了KP、KI、KD,只要使用前后三次量值的偏差,即可由上式求出控制增量【5】。3.2 图像采集时如何躲避消隐区在摄像头进行图像信息采集时会产生消隐区失真的问题,故使用延时函数,通过延时作用来跳过图像采集时的消隐信号,保证图像不失真。3.3 黑白二值化阈值的确定要想从原始图像数组中分离出白色赛道、黑色边界和蓝色的底布,必须在程序上设置一个灰度的阈值,当像素点灰度值大于该阈值时为白色赛道,当像素点灰度值小于该阈值时为非赛道,所以要将此值设置在蓝色底布和白色赛道之间。但是由于比赛场地灯光,以及底布蓝色深浅的不同,所界定的阈值也应该相应的改变,所以采用动态阈值可以大大提高小车对比赛环境的适应性【6】。3.4 图像降噪时的均值滤波算法点在内的像素总个数。在具体实现过程中,我们将在原始图像矩阵中依次取3*3的矩阵,采用九宫格形式,将每一次计算的均值赋给该矩阵的左上角元素,得到处理过后图像矩阵,根据动态设定的阈值进行二值化操作,得到最终的赛道的二值图像。3.5 电机驱动模块Set_V的确定由于在不同类型的赛道上小车行驶的速度不同,故设定值Set_V不能始终为一个固定值参与到电机控制环中。3.6 赛道中线的提取前提:规定白色为1,黑色为0。具体操作:提取二值化赛道图像(图10)的一行,从该行数组的第一个元素开始判断,当连续的1达到一定个数时(暂时规定10个1为标准),则第一个检测到的1所在的位置确定为Left;从该行数组的最后一个元素开始倒序判断,同样,当连续的1达到一定个数时,第一个检测到的1所在的位置确定为Right,每行数组均进行此操3.7 对原始偏差数组的加权处理算法小车速度大小V对图像远近处偏差值权重大小的影响:车速慢时舵机不用提前打角,只需利用近处的图像便可跑好,但是车速快时,由于舵机要提前打角,所以即使远处的图像不够真实准确,对于快速行驶的小车来说远处的图像也显得很重要。因此,当获取到原始偏差数组Error后,需要通过加权处理,对数组中不同行的元素乘以不同的权值,最终得到较为准确的偏差量E 2,该权值分配需满足如图11所示的关系。4 结论(Conclusion)经过调试和检测的结果证明,在基于MC9S12XS128的智能车软件控制系统的作用下,小车能够在黑色双边引导线的白色背景赛道上自动识别路径平稳行驶。通过PID控制算法的优化,实现了直道加速、弯道减速的设想;在图像采集时,使用延时函数在一定程度上解决了图像消隐区失真问题;均值滤波的降噪处理对于采集到的图像进行了进一步的完善;闭环控制算法更是保证了小车行驶的稳定性和快速性。相信通过进一步的探索与完善,这个智能小车软件控制系统会得到越来越广泛的应用。参考文献(References)【1】 Zhang.L.,Q.H.Song.Design of Smart Car ServosystemB a s e d o n C a m e r a . M a n u f a c t u r i n g S c i e n c e a n dTechnology,2012:5923-5927.【2】 Jiang.Z.J.,M.F.Wang,P.Guo.The Road Information VideoCapture and Processing Research for Smart Car Basedon CMOS Camera.Proceedings of 2009 InternationalConference on Information,Electronic and ComputerScience,Vols I and II,2009:96-101.【3】 Ye.M.J.,C.H.Hu.Design of Electromagnetic Smart CarS y s t e m . M e c h a n i c a l a n d E l e c t r o n i c s E n g i n e e r i n gIII,2012:343-346.【4】 张飞飞,杨雪松.基于MC9S12XS128单片机的路径图像识别智能小车.甘肃科技,2013(13):12-14.【5】 陶永华.新型PID控制及其应用第一讲PID控制原理和自整定策略.工业仪表与自动化装置,1997(04):60-64;46.【6】 孔岩,董奥,王勇.摄像头型智能车的赛道类型处理.电子世界,2016(11):134.【7】 王惠华,等.基于二值图像连通域提取的图像滤波方法.北京印刷学院学报,2015,06:39-41. 李旭东,廖中浩,孟娇.基于CMOS摄像头的智能车控制系统设计及实现.吉林大学学报(信息科学版),2013(04):414-418. 作者简介:李碧月(1996-),女,本科生.研究领域:电子信息工程.
展开阅读全文