APP下载

基于OpenMV的智能“寻的”小车控制系统

2020-08-05李成勇谭寒钟胡晶晶

液晶与显示 2020年8期
关键词:信号灯测距障碍物

李成勇, 谭寒钟, 王 莎, 胡晶晶

(重庆工程学院 电子信息学院,重庆 400056)

1 引 言

近年来,随着科技的不断进步,无人控制技术逐步成熟,无人控制的智能小车自动行驶成为人们关注的热点[1]。随着人工智能和自动化技术的迅速发展,各种高科技以及前沿技术广泛应用于智能小车领域,使智能小车越来越多样化[2]。无人驾驶汽车将物联网、人工智能等顶尖新科技与传统汽车技术相结合,汽车行业正在进行全新的改革,现在还处于尝试阶段,并没有建立规范化、标准化、完整的理论知识体系,因此自动驾驶技术探索之路还在进行中。自动驾驶技术是将相关车载传感器、控制器、执行器等结合,旨在让人解放双手,享受生活。从技术方面来讲,自动驾驶汽车可以分为两大发展方向:(1)驾驶辅助系统;(2)无人驾驶系统。其中,无人驾驶系统是主要研究方向,安全辅助驾驶是智能交通的重要研究方向。近20多年来,安全辅助驾驶是无人驾驶系统的研究创新方向之一,它主要由控制器、传感器、显示器、摄像头等元器件制造而成。在模拟情景下,小车行驶在路上,摄像头根据路况实时采集、更新行驶过程中车体与车道标识线的距离,通过一系列处理后将信息传递给单片机、传感器,若此时行驶路径发生偏移,便能在0.5 s的时间内由控制器发出警报,提前警示驾驶员,为驾驶员预留更多的反应时间与空间。安全辅助驾驶的研究方向多基于视觉摄像头,但是无论从国外研究现状还是国内研究技术水平来看,通过视觉方式实现车道偏移预警功能,在很大程度上受当地气候环境影响和光照突变的影响。

本文设计一种采用OpenMV作为主控的基于机器视觉的循迹避障智能小车系统,能够从标记的指定位置出发,迅速找寻规定场内随机点亮的信号表示灯。该系统能够自动循迹,找寻规定场内随机点亮的信号灯,遇到障碍物时可自动避障。

2 系统方案的选择与描述

2.1 速度控制算法设计

实现智能小车的速度控制算法有两种,分别为PID(比例-积分-微分控制器)控制算法与比例控制算法[3]。其中比例算法实现较为简单,算法中的比例系数容易求解及操作,设计过程简单明了。在本系统的设计应用中,信号表示灯的个数不定,位置布局不固定,比较灵活,并且随机点亮信号灯容易导致比例算法中的比例系数很难调整,易造成智能小车摆动幅度大,平衡性差,造成智能小车翻车的概率大幅增加。PID算法可以明显改善上述缺点,使用积分与微分控制器的调节,使其离散值保持在一定区间内。因此,比例系数设置更为容易[4]。

本设计中的速度控制采用PID算法,可以实现智能小车有效灵活地加、减速。

2.2 障碍物识别算法设计

智能小车在行驶过程中可能会不定期地遇见障碍物,通过设计障碍物识别算法辨别障碍物,可使智能小车曲线行驶避开障碍物。在局部特征点检测快速发展阶段,人们对于特征的认识也越来越深入,近几年许多学者提出的特征点检测算法及其改进算法也愈来愈多,在众多的算法中涌现出众多佼佼者。在本系统中,利用FAST(Features from Accelerated Segment Test)算法[5-6]在灰度图下对障碍物进行特征提取,然后进行障碍物识别。FAST算法在某像素与其周围领域内足够多的像素点相差较大,则该像素可能是角点,通过不断地比较进行特征点检测。同时,在障碍物识别中加入模板匹配(NCC算法)[7-10],进一步提高识别障碍物的精确度,双重算法的使用能够达到高精度、高效率识别的目的。

2.3 障碍物测距算法设计

实现障碍物测距的方法较多,有单目视觉障碍物测距[11]、激光雷达障碍物测距[12]、激光测距[13]等方法。其中激光雷达障碍物测距方式价格较高,智能小车载重增大,对于本系统来说不实用,而激光测距方式发出的光线会对OpenMV识别造成偏差,智能小车在行驶过程中受到影响。单目视觉测距算法可以很好地弥补上述方法的不足,单目测距根据图像摄取模块焦距、图像摄取模块离地面高度以及障碍物底部在相平面上的位置,通过光学相似三角计算获得障碍物距离,可以很好地完成本系统的实验要求,在智能小车负重未增加的情况下,小车行驶效率进一步提高。

2.4 信号灯红外识别算法设计

在本系统中实现信号灯识别采用颜色追踪算法,该算法可以准确识别到点亮的信号灯。颜色追踪算法信息全面,对全幅图像、所有的颜色均会进行搜索,搜索目标颜色的精确度会进一步提高。其中由查找X、Y上最小宽度的像素方式,同时设置面积阈值,如果色块面积小于阈值设定值则会被过滤掉,大于等于设定的面积阈值则会保留。所以,通过设置点亮时的颜色阈值与面积阈值则可对其追踪。

3 理论分析与设计

3.1 速度控制算法的理论分析

智能小车行驶过程中,本系统中的速度控制可由PID算法对电机进行控制。PID控制系统原理图如图1所示。

图1 PID控制系统原理图Fig.1 Schematic diagram of PID control system

在该算法中,r(t)为输入,y(t)为实测值,e(t)为偏差信号,其中关系如式(1)所示:

e(t)=r(t)-y(t)

.

(1)

输出为一种线性组合规律,该规律由偏差信号的比例、积分、微分决定,具体由式(2)表示:

(2)

式中:Kp是比例系数;Ti是比例积分常数;Td是微分时间常数。

3.2 障碍物识别算法的理论分析

本系统中障碍物识别算法的核心算法为FAST算法和模板匹配算法(NCC算法)。其中,FAST算法速度快,在摄入的图像以像素p为中心半径为r,同时检测其像素点数。设置p点为候选点,同时定义阈值,这些像素点与像素p比较,若绝对值均小于阈值,则p点不是特征点;若超过阈值则进行下一步考察。以此类推计算出超过阈值的像素点个数,若至少有半数像素点超过设置阈值,则是特征点;否则,直接过滤。

对图像进行非极大值抑制,计算特征点处的FAST得分值(score值,也即s值),判断以特征点p为中心的一个邻域内,如果有多个特征点,判断每个特征点的s值,若p是邻域所有特征点中响应值最大的则保留;否则抑制。

如果邻域内只有一个特征点,保留并对其得分进行计算,计算公式如式(3)所示:

(3)

式中,V表示所得到的分数,t表示阈值。

NCC算法是一种归一化相关匹配法,是基于图像灰度信息的匹配方法。

NCC算法计算原理公式如式(4)所示。

(4)

可根据积分图像提前计算出任意窗口大小和与平方和,式(4)中uf表示带检测图像,ur表示参考模板图像的窗口均值。在积分图像建立起窗口下的待检测图像与模板图像的和平方,以及交叉乘积5个积分图索引后就完成了预计生成。通过索引表查询计算结果,NCC就实现了线性时间的复杂度计算。

3.3 障碍物测距算法的理论分析

小车在运行过程中,障碍物测距可通过单目视觉测距算法测量。单目视觉测距算法原理图如图2所示。

图2 单目视觉测距原理框图Fig.2 Schematic diagram of monocular visual distance measurement

单目测距算法中,Hm、Rm为障碍物真实值,Apix、Bpix为摄像头中的图像,其关系可推演得出。在左边的摄像头里的几何关系可得出式(5)与式(6):

(5)

(6)

由公式(5)和(6)可推理出公式(7):

(7)

原理框图中真实环境中的集合关系,可得出式(8):

(8)

将公式(8)代入公式(7),可得出结论公式(9):

(9)

3.4 信号灯红外识别算法分析

小车在追踪点亮的信号表示灯,采用颜色追踪算法。点亮的信号灯与未点亮的信号灯在颜色上存在差异,本系统通过该点不同而设计颜色追踪算法。

颜色追踪算法搜集信息全面,精度高,在施行过程中出错的概率大幅降低。该算法利用机器视觉中需要识别的颜色进行追踪,在RGB下对点亮的信号灯进行阈值设定,设定需要追踪物体的颜色后,则该颜色在此种环境状态下能够在设定的阈值范围内识别。不仅如此,还通过设计面积阈值,对颜色面积进行判断识别,其中由查找X、Y上最小宽度的像素方式,同时设置面积阈值,如果色块面积小于阈值设定值则会被过滤掉,大于等于设定的面积阈值则会保留,这样可排除外界因素干扰。当两者同时识别后驱动小车对目标进行追踪。

4 电路与程序设计

4.1 硬件设计

首先通过OpenMV摄像头系统进行图像采集,然后将图像信息数据送传至拥有STM32F427的OpenMV系统进行颜色追踪、模板匹配、测距、特征点检测等处理,然后驱动智能小车的电机。循迹避障智能小车系统框图如图3所示。

图3 循迹避障智能小车系统框图Fig.3 Block diagram of tracking obstacle avoidance intelligent vehicle system

OpenMV摄像头可以实现物体在动态特征下无接触远距离测量,是光测量的一种有效应用。OpenMV摄像头电路结构如图4所示。

图4 OpenMV摄像头电路结构Fig.4 Circuit structure of OpenMV camera

电源管理模块选择有3种方案:锂电池、镍镉电池、镍氢电池。控制系统各个部件都需要合适且比较稳定的电压,电源电压大小和能量要充足,才能保证系统在行驶时的稳定性。因此选择12 V的锂电池,电源管理图如图5所示。

图5 电源管理图Fig.5 Power management diagram

电机驱动模块选择12 V的ASLONG-JGB37微型直流减速电机。根据电池供电的不同,电机的转速也不同,而该电机转速可调。带减速的电机加上了减速箱,降低了转速,增强了扭力。

4.2 软件设计

首先对系统进行初始化,摄像头系统将会进行图像采集,如果采集到图像,摄像头系统将采集到的图像数据送传至OpenMV进行处理。若检测到点亮的信号表示灯,调整转角,系统会对点亮后的信号表示灯进行颜色追踪。若在追踪过程中检测到障碍物,系统将会对障碍物进行测距,同时调整转角,驱动电机使小车曲线行驶,避免触碰障碍物;若未检测到障碍物,驱动小车前进,此时小车将会直线行驶。通过控制PWM口的信号输出可以实现轮速的控制, 主程序流程如图6所示。

图6 主程序流程图Fig.6 Flow chart of main program

5 测试方案与测试结果

5.1 测试方案

当检测到点亮的信号表示灯时,左右车轮高速转动, 小车直行,完成灭灯任务;当检测到障碍物坐标出现在图像中的左边时,智能小车左轮高速正转, 右轮低速正转, 实现右转,避开障碍物,然后通过检测点亮的信号表示灯继续追踪,完成灭灯任务; 当检测到障碍物坐标出现在图像中的右边时,右轮高速正转, 左轮低速正转, 实现左转,避开障碍物,然后通过检测点亮的信号表示灯继续追踪,完成灭灯任务。如果未检测到点亮的信号灯,智能小车通过右轮高速正转, 左轮低速正转, 实现差速控制左转寻找场内随机点亮的信号灯。

5.2 测试结果及分析

按照上述设计方案,完成的循迹避障智能小车控制系统模型,在规定时间内需要从指定位置出发,智能小车快速找寻规定场内的随机点亮的信号表示灯,当智能小车进入到点亮的信号表示灯的规定范围内时,信号灯会自动熄灭。此时,下一处的信号灯将会随机点亮,智能小车再一次需要完成灭灯,每个灯被灭后可能再次被点亮。如此,在规定时间内完成灭灯任务,同时统计灭灯个数。循迹避障智能小车测试实验过程如图7所示。 循迹避障智能小车测试数据如表1所示。

图7 循迹避障智能小车灭灯实验图Fig.7 Experiment diagram of tracking obstacle avoidance intelligent vehicle lamp extinction

表1 小车灭灯测试数据Tab.1 Test data of car lights out

根据不同距离 OpenMV摄像头返回的数据,计算出当前信标灯对应小车的坐标值, OpenMV 摄像头测试数据如表2所示。

表2 OpenMV摄像头测试数据Tab.2 Test data of OpenMV camera

根据表1、表2测试数据,可以得出以下结论:在300 s时间内,平均灭灯个数超过50个,说明本系统具有可行性,小车能够精确识别点亮的信号表示灯;通过 OpenMV摄像头得到的左中右坐标值,误差值在1 cm范围内,说明系统可准确通过摄像头数据识别障碍物并进行测距;小车能够进行左中右坐标值位置测量,说明系统能够在追踪及灭掉点亮的信号灯过程中避开障碍物;小车在2,4,6 m位置处得到坐标值,说明系统能准确地驱动小车前进,完成灭灯。本系统达到设计要求。

6 结 论

本文提出的基于OpenMV智能“寻的”小车控制系统采用OpenMV摄像头系统完成图像数据的采集,通过将图像数据送传至OpenMV系统进行处理,完成对点亮的信号表示灯的追踪,达到了避开障碍物的设计要求。该系统采用FAST特征点检测、NCC模板匹配、PID控制、单目视觉测距等算法,处理速度更快,精度高,数据精确,负载轻,小车实验测试数据差值小,几乎可以忽略,系统稳定,达到设计的预期效果。

猜你喜欢

信号灯测距障碍物
高低翻越
SelTrac®CBTC系统中非通信障碍物的设计和处理
类星体的精准测距
赶飞机
交通信号灯
信号灯为什么选这三个颜色?
浅谈超声波测距
安装在路面的交通信号灯
基于PSOC超声测距系统设计
相对差分单项测距△DOR