一种基于光学辨识码的自动行驶智能小车及其控制方法与流程

文档序号:15684179发布日期:2018-10-16 20:53阅读:172来源:国知局

本发明涉及智能小车的自动行驶方法,特别涉及一种基于光学辨识码的自动行驶智能小车及其控制方法。



背景技术:

能够实现自动行驶的智能小车一直是研究热点。这类智能小车通过传感器识别道路信息,控制系统根据获取的信息控制驱动模块和转向模块,使其具有自动行驶的能力。

目前的智能小车大多使用摄像头、红外发射管对路径进行识别。使用摄像头对算法要求较高,小车整体体积较大,而使用红外发射管对跑道检测精度低,空间分辨率也比较低。同时,虽然跑道已知,上述方法却不能判断小车在跑道上的具体位置,不能获取未来一段距离内的路况,因此需要对路径进行实时识别,限定了小车的行驶速度。因此,设计一种通过获取小车实时位置信息实现自动行驶、算法简单、体积小巧的智能小车十分关键。



技术实现要素:

本发明的目的是提供一种基于光学辨识码的自动行驶智能小车及其控制方法,采用可以获取车辆实时位置信息的路径识别方法、提高性能(行驶速度,控制精度)、设计软硬件系统,实现车辆的自动行驶。

为实现上述目的,本发明的技术解决方案是,

一种基于光学辨识码的自动行驶智能小车,包括设置在智能小车上的oid识别模块、核心板、转向模块、驱动模块和供电模块;其中,oid识别模块包含红外线led光源和cmos数字图像传感器,cmos数字图像传感器与红外线led光源固定在智能小车的底部;核心板与小车底盘固定,核心板上设置有微控制单元,微控制单元与cmos数字图像传感器连接,并控制控制驱动模块和转向模块;转向模块设置在小车前轮处,用于对小车前轮进行方向控制;驱动模块设置在小车后轮处,用于对小车后轮进行速度控制;供电模块用于为智能小车供电;智能小车行驶在印刷有含碳的oid底码的跑道上。

作为本发明的进一步改进,所述的跑道包括由上至下依次设置的四版彩色印刷层、oid底码印刷层和纸张;四版彩色印刷层是由使用c、m、y版油墨分别印刷c、m、y版,用c、m、y版油墨混合后的油墨印制k版形成;oid底码印刷油墨层是用含碳的油墨印制oid底码形成。

作为本发明的进一步改进,核心板、驱动模块、转向模块及供电模块之间通过排线连接。

作为本发明的进一步改进,微控制单元包括oid图像预处理模块、oid图像识别模块和控制器;

cmos数字图像传感器,用于对采集的数字图像进行预处理;

oid图像识别模块,用于将预处理后的数字图像与oid底码模板库进行模板匹配,实现对oid底码的识别;

控制器,用于根据识别结果,获取车辆目前在跑道上的位置信息,并根据位置信息控制驱动模块、转向模块,实现智能小车在跑道上的自动行驶。

一种基于光学辨识码的自动行驶智能小车的控制方法,包括以下步骤:

智能小车放置在跑道上,开始行驶;oid识别模块不断扫描印制在跑道上的oid底码,并将图像数据发送到核心板,核心板上的微控制单元对图像数据进行预处理和图像识别,获知智能小车的位置信息,根据程序控制驱动模块和转向模块,智能小车实现自动行驶。

作为本发明的进一步改进,预处理步骤包括以下步骤:

首先,进行灰度操作:对于彩色的oid图像而言,将彩色图像转变为占用空间相对较小的灰度图像;采用加权平均法进行灰度化处理,给r、g、b分量分别增加一个加权系数,然后求和;用到的灰度化公式如下:

gray=0.229r+0.587g+0.144b

其次,滤波去噪:采用中值滤波的方法消除数字图像中的噪声,将每一个像素点的灰度值设置为该邻域内的所有像素点灰度值的均值,中值滤波公式为:

g(i,j)=med{f(i,j),(i,j)∈s}

f(i,j)为原图中点(i,j)得灰度值,s表示邻域,g(i,j)表示滤波后(i,j)处新的灰度值;

采用一个奇数大小的滑动窗口,对窗口内的灰度值进行排序,并用处于中间位置的像素灰度级来代替窗口中心原来的灰度级;

最后,边缘检测:检查每个像素的领域并对灰度变化率进行量化,产生最大输出值的边缘模板方向表示该点边缘的方向,如果所有方向上的边缘模板接近于零,该点处没有边缘;如果所有方向上的边缘模板输出值近似相等,没有可靠边缘。

作为本发明的进一步改进,图像识别步骤包括以下步骤:

将预处理后的数字图像与oid底码模板库进行模板匹配,实现对oid底码的识别,当发现模板库中的某一oid码与之相匹配时,则判断此oid码被成功识别,根据设定好的程序,核心板控制驱动模块中电机的转速和转向模块中电机转向的角度。

作为本发明的进一步改进,oid识别模块采用双队列结构存储cmos数字图像传感器采集到的图片,具体为:一个队列用于临时存储采集到的oid码图像,从另一个队列中取出待处理的oid图像进行预处理和识别;当用于临时存储图像的队列满时,oid码图像预处理与识别线程从中取得待处理的图像;当队列中的待处理图像取完时,队列为空,oid数字图像采集线程向此队列中插入采集到的图像。

作为本发明的进一步改进,双队列结构存储具体算法描述如下:

在oid数字图像采集线程中:

(1.1)根据队列指示变量copycount选择队列,值为0选择队列1,值为1选择队列2;向队列中插入采集来的光纤图像,操作指向下一个插入位置的变量:in_index=(in_index+1)%队列长度;

(1.2)判断变量in_index是否为0,不为0执行第(1.1)步,否则先锁住临界区,改变队列指示变量copycount的值:copycount=(copycount+1)%2,释放临界区;

(1.3)释放信号量semaphorefull,使其值增加1,表示有1个队列的光纤图像等待处理;

在oid码图像预处理与识别线程中:

(2.1)等待信号量semaphorefull有值,当信号量semaphorefull有值时,执行第(2.2)步,信号量semaphorefull的值减1,否则继续等待;

(2.2)锁住临界区;

(2.3)根据队列指示变量的值选择待处理队列,值为0选择队列2,值为1选择队列1;

(2.4)解锁临界区。

本发明的有益效果是:

本发明基于光学辨识码的自动行驶智能小车,包括设置在智能小车上的oid识别模块、核心板、转向模块、驱动模块和供电模块,智能小车行驶在印刷有含碳的oid底码的跑道上。通过oid识别模块不断扫描印制在跑道上的oid底码,并将图像数据发送到核心板,核心板上的微控制单元对图像数据进行预处理和图像识别,获知智能小车的位置信息,根据程序控制驱动模块和转向模块,智能小车实现自动行驶。采用可以获取车辆实时位置信息的路径识别方法、提高性能(行驶速度,控制精度)、设计软硬件系统,实现车辆的自动行驶。

进一步,因为oid编码图形能够隐藏在印刷品下,肉眼难辨,具有保密与视觉干扰低的特性,跑道上可以有更多的图案,附带更多的信息。同时,oid只要使用普通印刷油墨就可以完成,跑道制作成本低廉。

本发明采用识别oid的方式实现智能小车的自动行驶,能够实时的获取智能小车在跑到上的位置信息。同时,由于本发明的智能小车所用的coms数字图像处理装置位于车辆底部,可以使智能小车的体积更小。

进一步,智能小车oid识别模块采用双缓冲队列技术以减少图像的处理时间,经测试,每帧图像的平均处理时间约为1.8ms。智能小车采用多线程技术,合理分配处理任务,实时识别跑道oid底码,同时能够实时控制驱动模块和转向模块,实现智能小车的自动行驶。

附图说明

图1本发明的安装结构图。

图2本发明的硬件系统框图。

图3sccb功能框图。

图4oid采集模块示意图。

图5软件流程图。

图6图像采集、识别总体方案。

图7图像预处理、识别流程图。

图8图像处理队列结示意图。

其中:1-oid识别模块,2-核心板,3-转向模块,4-驱动模块,5-供电模块,6-红外线led光源,7-cmos数字图像传感器,8-四版彩色印刷层,9-oid底码印刷油墨层,10-纸张。

具体实施方式

下面结合附图对本发明的技术进行详细说明:

本发明基于识别oid实现自动行驶的智能小车的安装结构如图1所示,其硬件系统由oid识别模块1、核心板2、转向模块3、驱动模块4和供电模块5组成。其中,oid识别模块1包含红外线led光源6和cmos数字图像传感器7。将cmos数字图像传感器7与红外线led光源6固定在智能小车的底部,把系统的其他部分放置于智能小车底盘固定,核心板2设置两个螺丝孔可以和底盘固定。转向模块3放置在智能小车靠前部分,驱动模块4放置在靠后部分,供电模块5放置在核心板2与驱动模块4之间。硬件系统框图如图2所示。

oid识别模块1通过sdio(securedigitalinputandoutput,安全数字输入输出卡)将数据由最高有效位至最低有效位串行传入核心板。本智能小车采用dsp(数字信号处理器)作为微控制单元。核心板2、驱动模块4、转向模块3,供电模块5之间通过排线连接。

由于dsp的主频高,电源电压和和电压不同,输入输出逻辑复杂,需要在数字电源和模拟电源以及数字地与模拟地之间加电感构成无源滤波电路以满足系统的要求。cpu内核电源上电要先于i/o电源上电,后于i/o电源掉电。

在总线的设计中,本发明主要用到了sccb,实现对coms数字图像传感器的初始化与基本操作,包括设置曝光时间、窗口的大小、收集帧频率和其他参数的设置。这些参数的设置与cmos数字图像传感器各个控制寄存器参数的设置相关,通过cmos数字图像传感器中的sccb总线来完成对所有寄存器的设定。sccb串行总线的ic2结构,使用一个单一的、双向两向结构。系统启动sccb时,sccb_e必须是由高到低进行跳转,当sccb_e信号由低到高进行跳转时,sccb停止数据传输过程。同时,在开始的前后期间,scc_e处于低电平的状态不变,在此过程中,sio_c每当出现正脉冲时,系统的传送工作开始,进行数据的一位传送。在i2c总线上,dsp作为主设备,cmos数字图像传感器作为从设备,时钟信号由dsp产生,如图3所示。

本发明采用oid(opticalidentification,一种光学辨识码)编码图形是由一依据特定规则的一些点组成的。采用五版印刷的技术制作跑道,除了印制底码的油墨必须含碳外,其余的c、m、y油墨中不能含碳,并用c+m+y混合后的油墨印制k版。

通常红外光会过滤掉所有可见光,位于玩具车底部的红外线led照射跑道后,同样安装在车辆底部的cmos数字图像传感器只能识别到含碳的oid底码层。核心板将对cmos数字图像传感器传送的图像处理。首先,对cmos数字图像传感器获取的图片进行一系列预处理,包括:图像灰度化处理、采用滤波技术剔除噪声等干扰、对图像进行边缘特征提取。接下来将经过预处理的图片与对应的oid底码模板进行匹配,得到对oid编码的识别结果。

这些编码含有相应的信息,根据识别结果,微控制单元可以获取车辆目前在跑道上的位置信息,并根据这些信息控制驱动模块与转向模块,最终实现智能小车在跑道上的自动行驶。

跑道的印制及oid采集模块结构如图4所示。跑道的印制采用五版印刷的技术。五版oid印刷就是在四版彩色印刷层8的基础上再加上一版oid底码印刷层9。因为红外光会过滤掉所有可见光,对含碳颜料有反应。为了使安装在车辆底部的coms数字图像传感器7借助红外线led只识别到oid底码,而不受其他印刷图形的干扰,需要对油墨配置进行调整:使用正常c、m、y版油墨分别印刷c、m、y版,用c、m、y版油墨混合后的油墨印制k版得到四版彩色印刷层8,用含碳的油墨印制oid底码形成oid底码印刷油墨层9。本智能小车oid识别模块1使用的cmos数字图像传感器是一种以cmos感光器件为主的高分辨率、低功耗图像传感器,可以有效减少硬件系统开销。其内部集成了adc和存储单元,能直接读出数字信号。存储速度与传输速率都很快,能够满足智能小车较高速行驶的要求。在光学特性上,coms数字图像传感器7可将视觉干扰系数降至1.5%,工作照度为10000lux,在室外阳光下同样可以读取到oid编码,读取错误率低于0.1%;在电气特性上,耗电量在工作时仅为4ma,待机时为1.5ma,延长了智能小车的使用时间。

智能小车上电2秒内进入待机模式,在该模式下,oid识别模块1开始工作,使用者需要将智能小车放置在特制的跑道上。随后,oid识别模块1扫描到oid底码,智能小车自动进入自动行驶模式。oid识别模块1不断扫描印制在跑道上的oid底码,并通过sdio将图像数据发送到核心板2。核心板2对这些数据进行处理,获知智能小车的位置信息,根据设定的程序控制驱动模块4和转向模块3。智能小车即可实现自动行驶,如图5所示。

本系统图像采集、识别方案由图6所示。cmos数字传感器采集的数字图像需要先进行预处理,如图7所示。首先进行灰度操作。对于彩色的oid图像而言,其每个像素是由三个不同的颜色分量r、g、b组成,会占用大量的存储空间,为了减少图像处理的运算量,提高系统的运算速度,满足智能小车快速行驶的要求,需要将彩色图像转变为占用空间相对较小的灰度图像。灰度化的主要思想是用与r、g、b三个分量相关的一个量来代替各个分量,消除图像像素间的颜色差,使像素之间仅存在亮度上的差异。本发明采用加权平均法进行灰度化处理,即给r、g、b分量分别增加一个加权系数,然后求和。用到的灰度化公式如下:

gray=0.229r+0.587g+0.144b

由于图像在采集、传输和处理的过程中会因为各种干扰而含有噪声,如高斯噪声、椒盐噪声、颗粒噪声等。噪声恶化了图像的质量,使得图像趋于模糊,严重的甚至会淹没特征,给后续的识别处理带来困难。所以接下来进行滤波去噪。中值滤波不仅对边缘信息保存得比较好,平滑均匀性也较好。所以这里采用中值滤波的方法消除数字图像中的噪声,将每一个像素点的灰度值设置为该邻域内的所有像素点灰度值的均值。周围采样区域的大小直接影响滤波的效果:采样区域过大会增加处理器的运算量;采样区域太小会使得面积稍大的杂点不能有效去除。中值滤波公式为:

g(i,j)=med{f(i,j),(i,j)∈s}

f(i,j)为原图中点(i,j)得灰度值,s表示邻域,g(i,j)表示滤波后(i,j)处新的灰度值。

我们采用一个奇数大小的滑动窗口,对窗口内的灰度值进行排序,并用处于中间位置的像素灰度级来代替窗口中心原来的灰度级。当滑动窗口中存在两类目标时,其排序的中值是多的那一类,以保证图像不模糊。

接下来进行边缘检测。边缘检测算子检查每个像素的领域并对灰度变化率进行量化,产生最大输出值的边缘模板方向表示该点边缘的方向,如果所有方向上的边缘模板接近于零,该点处没有边缘;如果所有方向上的边缘模板输出值近似相等,没有可靠边缘。

将预处理后的数字图像与oid底码模板库进行模板匹配,实现对oid底码的识别。oid底码模板库是根据每个模板中的特征建立的树状结构。里面存储着标准字符的特征表。通过算法将识别的oid底码的特征与模板库中的标准oid码的特征表一一比较,当发现模板库中的某一oid码与之相匹配时,则可判断此oid码被成功识别,根据设定好的程序,核心板控制驱动模块中电机的转速和转向模块中电机转向的角度。

双队列结构存储cmos数字图像传感器采集到的图片,就是在一个队列中存储采集到的图片,在另一个队列中对图片进行预处理和识别,如图8。一个队列用于临时存储采集到的oid码图像,从另一个队列(如果存满图像)中取出待处理的oid图像。当用于临时存储图像的队列满时,oid码图像预处理与识别线程从中取得待处理的图像;当队列中的待处理图像取完时,队列为空,oid数字图像采集线程向此队列中插入采集到的图像,具体算法描述如下。

在oid数字图像采集线程中:

(1)根据队列指示变量copycount选择队列,值为0选择队列1,值为1选择队列2;向队列中插入采集来的光纤图像,操作指向下一个插入位置的变量:in_index=(in_index+1)%队列长度。

(2)判断变量in_index是否为0,不为0执行第(1)步,否则先锁住临界区,改变队列指示变量copycount的值:copycount=(copycount+1)%2,释放临界区。

(3)释放信号量semaphorefull,使其值增加1。表示有1个队列的光纤图像等待处理。

在oid码图像预处理与识别线程中:

(1)等待信号量semaphorefull有值。当信号量semaphorefull有值时,执行第(2)步,信号量semaphorefull的值减1,否则继续等待。

(2)锁住临界区。

(3)根据队列指示变量的值选择待处理队列,值为0选择队列2,值为1选择队列1。

(4)解锁临界区。

另外,本发明的上述实施方式为实施例,具有与本发明的权利要求书的技术思想使之相同的方法并发挥相同作用效果的技术方案,均包含在本发明内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1