基于边缘检测算法的智能车循迹系统设计

2014-04-08 07:04柯其延阙大顺杨锦涛卢伟
电气自动化 2014年3期
关键词:控制算法赛道电机

柯其延,阙大顺,杨锦涛,卢伟

(武汉理工大学 信息工程学院,武汉 430070)

0 引言

近年来无人驾驶汽车一直受到众人的瞩目,被认为是车联网的终极目标。同时随着汽车电子行业的逐渐升温与技术的日渐发展,越来越多的汽车厂商开始延伸智能车用载具平台,发展新一代自动驾驶技术。目前谷歌,奥迪都致力于研发无人驾驶技术,牛津等学府机构也努力研发新的技术实现方向[1]。

本文设计的一种智能车循迹系统是智能图像识别技术与单片微处理技术的相结合的综合运用,实现了赛道识别,自动循迹的功能,使智能车平稳快速地在赛道上行驶。该模型车为未来的无人驾驶汽车的发展提供了一种新的思路,有一定的参考意义。

1 系统整体设计

智能车系统主要由电源管理,电机驱动,路径识别,速度检测四大模块组成。硬件上,以MK60DN512ZVLQ10为核心控制芯片,两片BTS7970构成的桥式电路作为电机驱动电路,TSL1401线性CCD作为赛道检测元件[2]321。软件上,采用边缘检测算法,辅以增量式PID算法控制电机转速和转向本文主要针路径识别模块与速度PID控制模块进行研究和设计。系统总体结构框图如图1所示。

图1 系统总体结构框图

2 硬件设计

2.1 主控制器模块

Kinetis是基于ARMCortexTM-M4具有超强可拓展性的低功耗、混合信号微处理器。多达32通道的DMA可用于外设和存储器数据传输并减少CPU干预。K60微控制器系列具有以下性能:IEEE 1588以太网,全速和高速USB 2.0 On-The-Go带设备充电探测,硬件加密和防窜改探测能力。丰富的模拟、通信、定时和控制外设从100 LQFP封装256 KB闪存开始可扩展到256 MAPBGA 1MB闪存。大闪存的K60系列器件还可提供可选的单精度浮点单元、NAND闪存控制器和DRAM控制器。

本文系统核心控制模块采用飞思卡尔公司的MK60DN512ZVLQ10芯片组成的最小系统及相应接口模块组成。其最小系统设计简单,采用50 MHz和32.768 kHz的外部晶振,复位电路设计成按键复位和上电自动复位的方式。

2.2 电源管理模块

电源部分是智能车系统的重要部分,电源稳定供电,智能车系统才能稳定工作。使用电压7.2 V,2000 mAh的镍镉电池供电,而系统需要稳定的5 V与3.3V电压,故必须稳定的降压输出5 V与3.3 V。使用TI公司的降压芯片LM2940和LM1117-3.3 V,在输入为6.5 V~8.2 V之间时,LM2940芯片能稳定输出5 V电压给电机,舵机,TSL1401模块供电,LM1117-3.3 V芯片能稳定输出3.3 V电压给MK60DN512ZVLQ核心控制器供电。稳压电源电路图如图2所示。

图2 稳压电源电路图

2.3 电机驱动模块

电机驱动电路由H桥式电路组成。为使K60能够驱动电机工作,且能使电机正反转,通过两片英飞凌公司的BTS7970构成桥式电路。BTS7970的最大驱动电流为68 A,驱动能力极强。通过K60输入的两路PWM的占空比不同,控制输出电流的大小与方向,从而控制电机转速与方向。电机驱动电路如图3所示。

图3 BTS7970桥式驱动电路

2.4 图像采集模块

赛道信息的采集由TSL1401线性CCD模块完成,该模块以TAOS公司生产的TSL1401R芯片为核心,集成了高达128像素的线性阵列传感器以及专门用于线性CCD的透镜。该模块可以看到一维的图像,并可以通过移动模块来获得二维图像。

图4 TSL1401引脚图

TSL1401线性CCD的输出信号和环境光线密切相关,AO引脚输出电压值在白天自然光条件比晚上光源下高出很多,白炽灯光下比日光灯下输出电压高,同时正对光线比背光线输出电压高。因此,同一参数(镜头光圈、曝光时间)难以适应不同的环境,在光线较弱环境下的参数在强光下会出现输出饱和,在较强光线下调节好的参数在弱光下输出电压过低,甚至处于截止状态。在智能车应用中,白天自然光环境和晚上灯光环境、正对光和背光、不同的比赛场地之间都不能采用相同的曝光参数。与输出电压密切相关的参数是曝光量,曝光量取决于CCD模块所采用的镜头光圈大小和程序所控制的曝光时间。智能车为适应各种运行环境,必须实时感知环境,并根据环境闭环调节曝光量,使得在不同环境中曝光量都处于合理的范围,这样才能保证在不同环境中CCD输出电压在合理范围,以利于算法提取黑线信息。镜头相关参数一旦选定在智能车运行难以改变,曝光时间比较容易通过程序控制,故通过软件调整曝光时间。要增大输出电压,就是放大输出信号,可以采用运放来放大AO(IN)输出信号。为了能保证输出电压在合理范围(不饱和、不截止、能分辨赛道黑线),需要根据选定的镜头确定运放放大倍数。

图5 LMV358运放电路

图5所示的运放放大倍数 A =1+R1/R2,也就是对TSL1401的输入信号AO(IN)进行A倍放大。

2.5 速度检测模块

速度采集的方法有很多种,本文采用的是欧姆龙旋转式增量型编码器采集电机速度。编码器能产生A、B相脉冲,根据A、B相脉冲的数量与相位差,确定电机的转速与方向。编码器安装图如图6所示。

图6 欧姆龙编码器安装图

3 软件设计

3.1 赛道检测模块软件设计

本系统软件采用IAR软件与蓝牙为调试工具,C语言进行程序设计,算法基本原理见框图。在方向控制中,采用线性CCD对赛道信息进行采集,经过相关图像处理之后,计算得方向偏差。以此作为方向控制的输入量,通过舵机转向角不同控制车模转向消除车模距离道路中心的偏差[3]。程序设计流程图如图7所示。

图7 TSL1401赛道信息采集流程图

提取赛道边沿的原则是在保证准确性的前提下提高运算速度,并具有较好的环境适应能力。本设计使用的是边缘检测算法。由于白板的灰度值很大,黑线的灰度值很小,所以会检测到一个下降沿的跳变,记录下跳变沿发生时的列号,就能确定出黑线的位置,即采用阈值法提取边缘[4]。只需设定好跳变的阈值,就可以比较准确的检测出黑色引导线。采用由近到远的搜索方式,搜索图像的有效边沿和无效边沿,找到左右边线,以黑线的位置为基准建立搜索窗口,然后分别在窗口内继续寻找双边线[5]。

3.2 速度控制部分软件设计

在过程控制中,PID控制器,一直是应用最为广泛的一种自动控制器;PID控制也一直是众多控制方法中应用最为普遍的控制算法,PID算法的计算过程与输出值(OUT)有着直接函数关系。本系统采用增量式PID控制算法。增量式PID是指数字控制器的输出只是控制量的增量。当执行机构需要的控制量是增量,而不是位置量的绝对数值时,可以使用增量式PID控制算法进行控制[6]。

(1)与(2)相减整理后可得增量式PID控制算法公式为:

由(1-3)可看出,只要控制系统采用恒定的采样周期T,一旦确定A、B、C,只要使用前后三次测量的偏差值,就可以由(1-3)求出控制量。增量式PID控制算法计算量小,应用在智能车系统,调试方便。速度控制PID算法流程图如图8所示。

图8 PID速度控制流程图

4 智能车测试结果与分析

实验主要包括智能车循迹过程中,上位机采集赛道图像与数据分析。本文系统在赛道上测试了45度,60度和135度弯以及10m长直赛道,智能车能以2 m/s的速度稳定行驶在赛道上。本文设计的智能车如图9所示。

图9 智能车实物图

TSL1401线性CCD每次只能扫描一行赛道信号,而根据一行赛道信息是无法使智能车正常行驶的。故每次处理5~6行采集的赛道信息,用K60处理后再控制舵机是否转动和电机转速。

在日光灯条件和自然光条件下测试结果相差不大,测试结果如表1所示。

表1 赛道测试结果

5 结束语

本文介绍了基于TSL1401线性CCD循迹的智能车系统设计。该系统以freescale 32位单片机MK60DN512ZVLQ10为核心控制芯片,通过曝光可调边缘检测算法提取赛道黑线,采用增量式PID控制算法,通过旋转式速度传感器采集智能车速度对小车形成速度闭环控制[2]323。该智能车系统为无人驾驶汽车提供了一种思路。

[1] 狄港生. 无人驾驶迷失[J].汽车杂志,2013,34(2):44.

[2] 李兴泽,王福平.基于CCD摄像头的小区自动循迹停车系统[J].计算机应用,2013,33(S1):321-323.

[3] 艾超.基于方向小波变换的图像边缘检测算子研究[D].西安:西安电子科技大学,2013.

[4] 邢尚英.基于小波变换的图像边缘检测[D].成都:成都理工大学,2013.

[5] 李萱.小波神经网络特征提取技术在图像边缘检测中的应用[D].成都:电子科技大学,2013.

[6] 黄智伟.全国大学生电子设计竞赛训练教程(修订版)[M].北京:电子工业出版社,2010.

猜你喜欢
控制算法赛道电机
自制冰墩墩不能滑出“法律赛道”
科创引领,抢跑新赛道
泵用电机水润滑轴承选择与应用
关于电机滚动轴承的选择与计算
瞻望电机的更新换代
征服蒙特卡洛赛道
纺织机械手专利瞄准控制算法
基于ARM+FPGA的模块化同步控制算法研究
无人驾驶,先上赛道如何?
电机隐忧