基于机器视觉的全元素赛道智能小车实验系统设计与应用
2022-11-02俞洋李峰缪奕扬
俞洋,李峰,缪奕扬
(江苏理工学院 电气信息工程学院,常州 213001)
汽车产业正在向“电动化、智能化、网联化、共享化”的智能汽车方向快速发展[1-2].在智能汽车的研究领域,智能小车(下文简称智能车)相比于真实汽车有着专属的特点和用途[3].智能车具有机械结构简单轻便、驾驶模式低速安全、整车易于改造实现等特点,可以用于智能汽车核心控制系统的研发设计[4-5].而且智能车的设计涉及机械、电子信息、自动控制、人工智能等多个学科的知识和技术,是典型的复杂工程问题,因此很适合在本科工程人才培养中进行创新设计和实验教学[6-7].本文通过嵌入式电子系统、图像采集传感器和电机驱动器等设计智能车硬件系统,利用机器视觉和智能控制算法进行道路识别、智能车方向调整和速度调整,实现小型无人自动驾驶智能车实验系统,并提出符合复杂工程问题的实验设计方案.
1 实验系统方案设计
1.1 设计内容及目标
设计一辆能够循迹全元素赛道的四轮智能车实验系统.以单片机为数据处理与系统控制的核心,利用CMOS摄像头获取赛道图像并完成赛道信息识别,通过传感器获取小车后轮实时转速;基于以上信息,设计智能车控制算法自动控制舵机打角及电机转速,最终实现小车能稳定且快速地循迹直道、弯道、坡道、十字、环岛、三岔等赛道.为了实现实验教学与学科竞赛一体化,采用全国大学生智能汽车竞赛的全元素赛道,如图1所示.
图1 全元素赛道Fig.1 All-element track
1.2 系统整体设计方案
智能车实验系统的整体设计方案如图2所示.系统主要包括最小系统板、摄像头、舵机、电机、编码器、ips液晶屏等部分.
2 智能车硬件选型设计
2.1 车模选型
目前市面上主要有两种四轮小车车模[8],分为B车模和C车模,如图3所示.B车模配备的舵机为S-D5,虽然配了一款动力强劲RS-540电机,但由于这款舵机的力矩比较小,不能充分发挥电机的性能.当小车在急弯时,舵机会存在转向不及时的问题.所以如果选用这款车模,当小车行驶到S弯时,速度达到一定程度,小车容易冲出赛道.同时B车模只装有一个电机,后轮依靠机械差速,也无法在软件上实现对后轮的差速控制.
图3 B车模和C车模示意图Fig.3 Schematic diagram of model B and model C
C车模拥有的S3010舵机,扭矩相比S-D5大了许多.另外车上配备的两个RS-380电机也是C车模的优势,可以通过编程实现对智能小车的主动差速控制,从而能够更好地应对不同曲率的赛道.为了更好地适应全元素赛道的行驶要求,选择C车模作为本次设计的控制对象.
2.2 摄像头选型
为了尽可能提高智能车在赛道上的速度,摄像头就必须具有采集速度快、帧率高的特性.因此选择采用CMOS摄像头,相较于CCD摄像头,该类摄像头具有功耗低、帧率高、采集速度快等优点.
市面上主流的两款CMOS摄像头数据对比如表1所示.
表1 摄像头数据比较Tab.1 Camera data comparison
第一款OV7620型摄像头采用卷帘曝光,由于对图像进行逐行曝光,会造成一种“果冻效应”.智能车在高速移动时,使用该曝光方式,拍摄到的赛道图像容易失真.
第二款MT9V034型摄像头采用全局曝光,这种曝光方式是整帧图像同时曝光,具有高动态成像的特点,比较适合高速运动中的智能车拍摄赛道.
为针对全元素赛道环境,适应环境光线可能过暗的情况,选择感光度较高的摄像头更为合适,因此选择MT9V034摄像头采集赛道图像.
2.3 单片机选型
智能车实验系统需要用到DMA模块来驱动摄像头和更多的外部资源.Infineon公司的TC264D芯片主频可以达到200 MHz且内置了DMA模块,在传输图像的时候能够较为流畅且不受CPU的管控,而且有容量为752 KB的RAM,用于存储摄像头的图像信息.该芯片还同时拥有UART串口模块、PWM输出模块GTM、GPT12脉冲计数模块等,这些模块使得软件设计更加方便,所以选择TC264D作为主控芯片,原理图如图4所示[9].
图4 TC264D系统原理图Fig.4 System schematic diagram of TC264D
2.4 编码器选型
编码器作为小车的测速模块,其分辨率的大小决定了电机的控制精度[10].分辨率即编码器旋转一周所输出的脉冲数.
编码器的输出频率为:
公式(1)中R为编码器分辨率,N表示轮子转速.
为了保证控制精度,需将单片机的控制周期T设置为编码器脉冲输出周期的10倍以上,即:
电机转速与车速的关系为:
公式(3)中v是智能车的速度,z为车轮与编码器的传动比,r则代表轮子半径.
联立公式(1)-(3)可得R的结果如公式(4)所示:
智能车的齿轮传动比为7:3,车轮半径为0.032 m.要求控制周期为5 ms,小车速度不低于0.3m/s.通过公式(4)计算编码器的分辨率需大于574.市面上常见的编码有256线、512线、1024线,为达到控制要求,因此采用1024线的编码器.
3 智能车赛道识别算法设计
赛道图像的准确识别是智能车在赛道上实现自动驾驶的基础,其中道路边线检测是赛道图像识别的关键.赛道图像识别算法流程如图5所示,主要包括赛道边线检测、边线提取和中线计算等3个步骤.
图5 赛道图像识别算法流程图Fig.5 Flow chart of track image recognition algorithm
3.1 赛道边线检测
目前图像边界检测有两种主要的解决方案:1)基于图像分割法中的动态阈值把赛道和背景分割开,从而得到目标边界;2)使用边缘检测算子对图像进行边界信息提取,筛选赛道边缘信息.这两种方法在原图像数据没有信息缺失的情况下比较准确[11].但实际环境下赛道图像会出现信息缺失或噪声,如何提高在实际环境下赛道边线信息识别的准确性,对智能车后续的运动控制至关重要.因此设计了基于多曝光图像融合的算法改进实验.
由于篇幅限制,这里仅介绍基于图像分割原理的大津法[12].首先假想有一个最佳阈值,该阈值可以将所有像素分为前景和背景两类,并且使两者差别最大,而选择衡量差别的标准就是最大类间方差.设T为前景和背景的分割阈值,前景总数占图像比例为ω0,平均灰度为u0;背景总数占图像比例为ω1,平均灰度为u1.图像的总平均灰度如公式(5)所示:
根据平均灰度值,计算类间方差g如下:
重复使用公式(5)和(6),遍历所有分割阈值T,选取全部类间方差中的最大值,该类间方差g所对应的阈值T,就是大津法所求的最佳阈值.利用该算法处理的效果如图6所示.
图6中两幅图分别为原始灰度图和采用大津法二值化后的赛道图像,并可以看出该方法能够清晰地分割出赛道.
图6 赛道灰度与二值化图像Fig.6 Track image of gray scale and binary
3.2 赛道中线计算
如图7所示,当赛道的左右边线都完整时,可利用公式(7),基于赛道左右边线的坐标进行中线M计算.
图7 边线完整的图像Fig.7 Image with full edge
其中L为左边线坐标,R为右边线坐标.
如果遇到如图8所示的赛道左侧边线丢失的情况,不能利用公式(7)直接计算出中线值.此时中线计算方法如公式(8)所示,即将右边线向左平移进行补偿,补偿值为图像缺失行的上一行赛道宽度的1/2.
图8 左边线缺失的图像Fig.8 Image with missing left line
其中R为右边线坐标,C为补偿量.
4 智能车路径控制算法设计
智能车路径控制决定着智能车不脱离全元素赛道和行驶路径的好坏,具体算法流程如图9所示,其核心是路径方向的偏差计算和方向调整.
图9 路径控制算法流程图Fig.9 Flow chart of path control algorithm
4.1 方向偏差计算
智能车方向控制的偏差来源于虚拟赛道中心线与图像中心线的差值.由于摄像头的分辨率为188×120,所以取第93列为图像中线.将赛道中线数组与93逐行比较可以获得多行偏差,但是并不能确定将哪一行偏差用于舵机打角控制方向.所以如何根据图像处理获得的虚拟赛道中线来计算偏差是智能小车方向控制的关键所在.
由于智能车实验系统机械结构的限制,车模装备的摄像头因为角度问题,实际拍得的赛道图像会产生一定的畸变,相较于正常图像,远处图像会变小,近处图像会变大,如图10所示.
图10 畸变的赛道图像Fig.10 Distorted track image
鉴于图像的这种特征,实验系统引入分区加权的算法,能够有效改善因图像畸变导致图像中线偏差偏小的问题,使计算得出的偏差更加贴近真实值.根据图像中线的截止行,将截止行往下若干行的图像中线分为几个不同的区域,分别对各区域的中线值求平均后计算偏差,再赋予这些偏差不同的权值,最后求和得到最终偏差.具体计算方法如公式(9)和公式(10)所示:
公式(10)中e1、e2...ek为各区域偏差,middle[i]为中线数组,f1、f2...fk为各区域偏差的权值.
4.2 方向偏差调整
如果发生路径偏移,智能车需要根据路径的方向偏差信息,控制舵机打角实现路径方向调整.基于实验系统,可以进行以下两类实验.(1)基础实验.如果智能车路径发生偏移,采用位置式PD控制器调整舵机角度来调整路径[13-14].(2)扩展实验.智能车在循迹全元素赛道时,固定参数的位置式PD控制器不能很好的适应复杂赛道,比如对于S弯、三岔、环岛等赛道,如果固定PD参数不够大,会导致舵机打角不够或者不及时,小车的路径会变差,甚至还会冲出赛道;但是在直道、坡道时,过大的PD值又会导致小车高速行驶时抖动过大,稳定性大大降低.为解决这个问题,如图9中虚线部分所示,设计了基于模糊控制的舵机PD参数实时整定扩展实验,如图11所示.
图11 基于模糊控制的智能车路径调整框图Fig.11 Intelligent car path adjustment block diagram based on fuzzy control
5 智能车系统实验设计
复杂工程问题必须具备表2中的特征1和其余特征中的至少任意两条[15].根据这个原则,基于智能车实验系统设计培养学生解决复杂工程问题能力的实验,可以覆盖以下复杂工程问题特征:(1)智能车是综合性很高的实验系统,可以分解为系统方案设计与选取、电路系统设计、机械结构设计、道路识别算法设计和方向控制算法设计等相关的子问题;(2)运用电子系统设计、图像处理、电机控制等工程原理知识及方法分析实验基本原理;(3)实验设计涉及到机械、电子、自动化和计算机等多学科知识与技术,车模机械结构与电控系统设计、速度控制与稳定性控制等方面相互制约,需要系统考虑与设计;(4)从智能车的机械结构和运动控制等方面进行数学模型抽象与构建,使用Solidworks、Altium Designer和Matlab等现代化工具进行模型仿真;(5)随着赛道环境的恶化,常用的赛道识别和方向控制算法无法实现良好的效果,需要查阅文献,进行方法创新,设计能解决问题的非常规方法.下面介绍部分的实验设计以及实验效果.
表2 复杂工程问题的特征Tab.2 Characteristics of complex engineering problems
5.1 赛道识别算法实验
基于设计的实验系统,可以在低照度、正常照度以及高照度三种不同情况下进行赛道识别算法实验,测试在不同照度环境下传统赛道识别算法和改进算法的可行性与鲁棒性.
图12给出的是低照度情况下智能车识别的赛道图像.可以看出即使是最高曝光值的图像,也只能识别部分赛道信息.
图12 传统算法下低照度赛道的识别图像Fig.12 Low illumination track recognition image
图13和图14分别给出的是采用改进多曝光图像融合法的识别结果.可以看出在低照度情况下,多曝光图像融合法可以清晰地提取出正确的赛道边界.
图14 多曝光图像融合法低照度岔路赛道的识别图像Fig.14 Low illumination switch track recognition image based on multi exposure image fusion method
为了定性的评价算法性能,设计了如表3所示的标准差(STD)、信息熵(EN)和平均梯度(AG)作为为客观评价指标.表4给出了图13和图14的定量评价结果,可以看出采用Sobel算子的识别算法比采用Laplace算子的识别算法性能更优.
表3 算法性能定量评价指标Tab.3 Quantitative evaluation index of algorithm performance
表4 算法性能定量评价结果Tab.4 Quantitative evaluation results of algorithm performance
5.2 方向偏差实验
在赛道识别实验的基础上,为验证方向偏差计算方法的正确性与可靠性,可以选择不同的赛道元素来进行验证.
环岛赛道如图15所示,将小车放在环岛的不同位置进行测试.利用VisualScope虚拟示波器观察环岛各位置方向偏差波形如图16所示.
图15 环岛赛道Fig.15 Roundabout track
由图16偏差波形可见,智能车在环岛内运行时偏差值较大且波动较小,其余位置偏差较小,说明根据赛道中线计算出偏差符合实际环岛路径.
图16 环岛方向偏差波形Fig.16 Roundabout direction deviation waveform
三岔赛道如图17所示,将小车放入三岔路的不同位置进行测试,采集方向偏差变化波形如图18所示.小车在三岔路中需要4次转弯,从图18的数据波形可看出偏差也出现了4次突变,符合三岔赛道的路况.
图17 三岔赛道Fig.17 Three fork track
图18 三岔方向偏差波形Fig.18 Three fork direction deviation waveform
在直道赛道和S弯赛道也可以做类似的实验,综合四种元素的方向偏差测试,可以验证方向偏差计算方法的可靠性.
5.3 模糊PD参数整定实验
面对全元素赛道,智能车需要根据方向偏差值进行舵机控制,可以进行位置式PD参数整定的基础实验,以及基于模糊控制器实时整定PD参数的扩展实验,实现更好的方向控制.
根据图11所示的参数,方向偏差值e的模糊规则设计为:
(1)若e负大,则p大;
(2)若e负中,则p中;
(3)若e负小,则p小;
(4)若e为0,则p为0;
(5)若e正小,则p小;
(6)若e正中,则p中;
(7)若e正大,则p大.
P、D项的模糊规则设计思路与e类似,根据以上规则可以建立P、D参数模糊规则表,分别如表5和表6所示.具体的PD参数实时整定结果如表7所示,通过实验可以证明,根据赛道元素的不同,智能车可以很好地实时调整路径方向.
表5 P模糊规则表Tab.5 Fuzzy rule table of P parameter
表6 D模糊规则表Tab.6 Fuzzy rule table of D parameter
表7 PD参数整定值Tab.7 Setting value of PD parameters
6 结语
本文以智能车为背景,设计了基于机器视觉的全元素赛道智能车实验系统.以TC264D单片机为主控制器进行智能车的硬件设计,利用CMOS摄像头对道路信息进行采集与分析,根据赛道虚拟中线计算得到偏差,并对智能小车的方向控制策略以及PD控制器进行控制算法的设计与改进.基于设计的智能车实验系统,进行符合复杂工程问题的实验方案设计与测试,验证了实验系统设计方案有效性,可以有效地用于智能车创新设计与本科生解决复杂工程问题能力的培养.