APP下载

基于机器视觉的烟仓机器人路径识别与控制

2019-08-03张少杰艾宇张冰孙轩张铭张天顺宋国平

山东农业科学 2019年3期
关键词:机器视觉

张少杰 艾宇 张冰 孙轩 张铭 张天顺 宋国平

摘要:仓库中醇化的烟叶因含有水分,在微生物作用下会发生霉变。为降低烟叶霉变检测的劳动强度,提高烟叶检测效率,我们基于机器视觉研发了一款搭载FLIR C3红外热成像检测仪的烟仓机器人。本研究主要介绍了烟仓机器人软硬件控制系统的设计,并对机器人行进路径的识别与控制进行研究。烟仓机器人的硬件控制系统采用32位ARM处理器STM32F103ZET6,利用OV2640传感器进行图像的采集与传输;软件控制系统基于Microsoft Visual Studi0 2010开发环境,调用OpenCV等图像处理函数,实现图像分割、边缘检测及路径识别与规划。路径识别采用基于机器视觉的方法,利用高斯滤波去除图像中的噪音、干扰,经阈值化处理后采用Canny算子进行图像边缘检测处理,通过Hough变换,提取出车道的边缘线及车道中心线,根据车道中心线的角度偏差和像素偏差制定控制策略,从而实现烟仓机器人的自控行走,实际运行试验结果表明,该系统能够很好地实现路径识别和运动控制。本研究可为无线通讯和路径识别控制类机器人的相关设计研兖提供参考。

关键词:烟仓机器人;机器视觉;路径识别;STM32处理器;WIFI通讯

Path Recognition and Control of TobaccoWarehouse Robot Based on Machine VisionZhang Shaojiel , Ai Yul , Zhang Bingl , Sun Xuanl , Zhang Mingl , Zhang Tianshunl , Song Guoping2

Abstract The alcoholized tobacco leaves in the warehouse could mildew due to the presence of water.In order to reduce the labor intensity of tobacco leaf mold detection and improve the detection efficiency, wedeveloped a cigarette warehouse robot equipped with FLIR C3 infrared thermal imaging detector based on ma-chine vision. In this paper,the design of the software and hardware control system of the smoke bin robot wasintroduced, and the identification and control of the robot travel path were studied. The hardware control sys-tem adopted 32 - bit ARM processor STM32F103ZET6 , and used OV2640 sensor to collect and transmit ima-ges. The software control system was developed based on the Microsoft Visual Studi0 2010 development envi-ronment, and called the image processing functions such as OpenCV to realize image segmentation, edge de-tection and path recognition and planning. Path recognition adopted a machine vision - based method, whichused Gaussian filtering to remove noise and interference in the image. After thresholding, the Canny operatorwas used to detect the image edge, and the edge line and center line of the lane were extracted by Houghtransform. According to the angular deviation of the lane centerline and the pixel deviation to develop a controlstrategy, the smoke bin robot achieved the self - controlled walking. The actual operation test results showedthat the system could realize path recognition and motion control. This study could provide reference for the re-lated design research of wireless communication and path recognition control robots.

Keywords Tobacco warehouse robot; Machine vision; Path identification; STM32 processor; WiFicommunication

煙叶霉变是全球烟草行业普遍存在的问题[1]。随着我国仓储烟叶的总量和规模不断增加,每年因烟叶霉变造成的经济损失达70多亿[2]。而且引起霉变的微生物所分泌的真菌毒素严重威胁人类健康。所以研究如何快速检测和预防仓储烟叶霉变具有重要意义。人工智能的发展为实现烟仓烟叶霉变的智能化监测提供了技术手段。我们利用烟叶霉变区域温度会升高的特点,研发了一款搭载红外热成像检测仪的烟仓机器人,可以通过监测烟箱烟叶的温度变化,实现对仓储烟叶霉变的自动化检测,为预防和控制仓储烟叶霉变提供了有效的检测方法。其中,如何实现烟仓机器人的路径自动识别、规划和导航,是保障其良好运作的关键。目前常用的路径导航系统有自动寻迹控制系统、利用导航的控制系统、基于机器视觉的路径识别系统等。根据室内烟仓存储特点,若利用自动寻迹控制系统,需要在烟草中安装配套设施,实现比较困难;而在堆满烟箱的烟仓中使用导航控制系统,同样比较困难,而且造价较高。因此,我们选择利用机器视觉实现烟仓机器人的路径导航。

机器视觉是近年人工智能研究的热点,具有成本低、安装便捷、识别精度高等优势,国内外学者已利用机器视觉技术研制出自动导航的机器人[3]。美国研究者制作的NavLab机器人,能够通过机身安装的CCD摄像机采集道路图像,并经图像处理成功识别出路径中的S型道路;Ativa等基于前人的视觉理论研究,利用机器视觉实时识别并采集图像,根据实时采集的图像与运动着的物体保持某种相对不变的特征,获得物体在实际环境中的位置坐标,成功搜索出了路径[4];杨为民等[5]用基于机器视觉的动态窗口跟踪技术大大减少了图像处理的工作量,并利用霍夫变换获取了自然导航路径;张磊等[6]利用机器视觉成功对麦田的收割边界进行边缘检测,为机车的行进提供了有力依据;张成涛等[7]同样利用机器视觉算法对目标直线进行检测,成功为谷物收割机行进进行导航。

本文主要对我们研发的烟仓机器人的软硬件系统、无线通讯系统进行介绍,并对其如何基于机器视觉实现路径识别、规划和控制进行分析研究和试验验证,以期为无线通讯类机器人更好地实现路径导航提供参考。

1 烟仓机器人的机体设计

1.1 烟仓机器人平台的搭建

基于机器视觉的烟仓机器人由两部分组成:硬件端和软件系统。硬件端以ARM系统中的STM32处理器为控制核心,辅以WIFI通信模块、摄像头模块、驱动模块等。软件系统在PC端运行,实现图像处理、路径识别与规划、机器人控制等功能。总体设计框图如图1所示。

ARM系统将采集的烟仓平面图像数据通过WIFI模块发送给PC端的软件系统,然后利用VC++、OpenCV等图像处理技术实现图像的分割、边缘检测、Hough变换等,获得标定烟仓通道的图像信息,进而换算出烟仓过道的中心线作为烟仓机器人的运动轨迹,并结合中心线控制算法在运动过程中进行实时控制。

1.2 ARM控制系统

ARM系统采用的是由STMicroelectronics公司生产的STM32系列处理器,该系列处理器为ARM V7构架,Cortex - M3内核,支持Thumb-2指令集。开发环境为Keil uVision V 4.10。

本研究的烟仓机器人硬件系统主芯片采用的是STM32系列的STM32F103RET6处理器,有OV2640接口、WIFI模块接口、串行通讯接口、JTAG接口等。通过编写功能程序实现无线通讯、图像采集、行走控制等功能。

1.3 摄像头模块

摄像头模块采用OV2640传感器,并可对传感器窗口、图像尺寸、图像窗口和图像输出大小进行设置。OV2640具有感光整列、模拟信号处理、数字信号处理器、SCCB接口等功能模块。

1.4 驱动模块

烟仓机器人驱动电路主芯片采用L293D[8,9],电机用有抗干扰功能的直流减速电机。L293D的工作电压可从4.5 V至36 V,使能端兼容所有的TTL输入。烟仓机器人的驱动系统配有两个直流减速电机,每个电机型号相同,通过驱动板进行驱动。

2 通讯系统的设计

通过构建烟仓局域网,利用WIFI实现烟仓机器人的通讯功能。

WIFI模块采用Marvell8686 MR09[10芯片,内置IEEE802. 11协议栈,采用SDIO接口传输数据。MR09WIFI芯片模块通过SDIO接口连接ARM芯片,网络标准采用IEEE 802. llb/g。

2.1 搭建平台

下位机(即服务器端)以STM32为核心的硬件端运行LWIP协议,内嵌TCP/IP协议栈,支持MR09EIFI WIFI模塊芯片。

PC端(即客户端)模式用VS2010编程软件、MFC框架编写程序.网卡为Intel( R) Centrino(R) Wireless -N 1030,网络频带为2.4 GHz,支持802. lln协议。

2.2 构建通讯网络

下位机通过Marvell8686 MR09芯片模块与电脑建立WIFI局域网系统[ll],PC端上位机则在Visual C++开发环境中实现网络编程。两者间通过WIFI实现局域网内数据信息的传输。

2. 2.1 设置下位机 通过STM32处理器运行LWIP协议[12-14],应用TCP/IP进行数据通讯,由LWIP协议提供的一系列函数(tcp_new建立控制块;tcp_bind绑定本地IP地址;tcp_listen;tcp_ac-cept调用指定回调函数;tcp_write发送TCP数据;tcp_recv调用新数据的回调函数)完成数据传输。其操作流程如下:

(1)网卡初始化,设置网络信息;

(2)在tcp_accept()函数中注册tcp_recv()的回调函数;

(3)在回调函数中调用tcp_recved()函数控制机器人;

(4)读取数据通过tcp_write()函数发送,实现网络通讯。2.2.2设置上位机使用MFC中封装的套接字函数与类CSocket在Visual C++开发环境中实现网络编程,使用Windows API函数进行程序开发。套接字函数包括connect发送连接函数;send发送数据函数;接受数据报函数。

上位机网络通讯的操作步骤如下:

(1)创建CMysocket类对象继承于CSocket类;

(2)创建CAboutDlg类对象继承于CDialog类;

(3)在CAboutDlg类的OnInitDialog()函数中,创建套接字对象pMysocket=new CMysocket( this);

(4)如果创建套接字对象失败,发送消息提示创建套接字对象失败;

(5)点击“连接”按键,调用connect函数,通过指定端口连接服务器,连接失败,弹出提示消息;

(6)点击“视频打开”按键,调用send函数,发送控制指令,请求实现图像传输;

(7)点击“视频关闭”按键,关闭图像传输。

2.3 通讯工作流程

通过构建烟仓局域网建立PC客户端与下位机服务器端的连接,实现数据的接收和控制命令的发送。通讯流程如图2所示。

3 图像采集与驱动控制功能实现

基于机器视觉的烟仓机器人PC端操控界面如图3所示,可实现无线通讯、图像显示、图像处理、远程控制等功能。

3.1 图像采集与传输

OV2640图像输出是在行输出时序与帧输出时序的控制下进行,HREF在高电平时为行参考信号输出,VSYNC在低电平时为帧同步信号输出。OV2640的帧同步信号接到STM32处理器的引脚,OV2640系统通过中断方式捕捉帧同步信号。读取JPEG数据时,只需要在HREF为高电平时,在PCLK上升沿读取数据,直到VSYNC为低电平,完成一帧JPEG图像数据采集。STM32处理器通过PB、PC等接口与OV2640图像模块连接,实现图像的采集。图像采集流程如图4所示。

采集到的图像马上进入图像传输程序,MR09WIFI芯片模块通过SDIO接口连接ARM芯片,初始化网卡与摄像头模块,进入服务器模式,客户端与服务器建立连接后,发送命令到服务器,回调函数判断命令是否正确,执行相对应的运行功能程序,其具体流程如图5所示。

3.2 驱动控制

驱动控制包括控制命令与控制信号两部分,控制命令为PC端发送给烟仓机器人的控制指令,下位机接收控制指令后,通过字符串判断函数,确定命令发出的控制信号,通过L293D驱动电机进行运动。

引脚EN1、EN2为使能引脚。当EN1、EN2引脚为高电平时,输出引脚OUT随输入引脚IN的变化而变化;当ENI、EN2引脚为低电平时,输出引脚OUT不受输入引脚IN的变化而变化。引脚输入输出状态如表1所示。

电机1控制接口接OUT1、OUT2,电机2控制接口接OUT3、OUT4,通过控制L293D输入端引脚IN实现不同的运行功能。控制信号控制L293D引脚电平的高低,实现前进、后退、左转、右转、暂停。控制命令格式与控制信号状态见表2。

4 路径识别与控制

4.1 阈值化处理

阈值化处理是对图像中的像素进行取舍,利用图像中物体与背景的较大灰度差异实现像素级的分割,提取需要的部分。在进行阈值化处理[15,16]时,将图像中每一个像素点的灰度值与设定的阈值比较,找到需分割的图像所对应的像素点,对需要的像素点设定特定的数值表示。给定一个数组与阈值,根据数组中的数值是否高于阈值进行处理。

例如对8位灰度图进行阈值化处理时,应用Open CV中的阈值化函数thershold,预先设定好特定的阈值量thresh,阈值化操作只需要将大于thresh的灰度值设定为max val,将低于thresh的灰度值设定为O,即可提取出需要的部分。该阈值化类型如(1)式所示。

4.2 边缘检测

系统采用Canny算子进行边缘检测[17]。通过消除噪声、计算梯度幅值与方向、非极大值抑制、滞后阈值,使其达到最优检测。边缘检测效果如图6所示。

4.3 高斯滤波与Hough变换

高斯滤波是一种线性平滑滤波[18],用来消除高斯噪音,实现减噪功能。本研究采用二维零均值离散高斯函数作为平滑滤波器,函数如下:

哈夫( Hough)变换是检测图像的一种主要方法,是通过点一线对偶性,把图像空间中的检测问题放到参数空间中进行累加的一种参数估计技术。通过建立二维累加数组,使哈夫变换检测直线。其实现效果如图7所示。

4.4 路径规划

为保证机器人始终在车道线内行走,需对行走路径进行实时规划[19],即建立坐标系,根据左右车道线在坐标系中的坐标点构建出车道中心线[20]。首先利用Hough变换,获得左车道两端坐标为(Xl,y1)、(x2,y2),右车道两端坐标为(X3,y3)、(X4,y4),进而求得车道中心线两点坐标为(x5,Ys)、(X6,y6),其中,

x5=(Xl+x3)/2;

(3)

Ys=(Yi +y3)/2;

(4)

X6=(X2+X4 )/2;

(5)

y6=(y2+y4 )/2。

(6)

Hough变换提取到的路径坐标点数可能大于理论坐标点数,这时需先采用排序算法对Hough变换后存在的坐标点进行排序,之后再通过公式(3)、(4)、(5)、(6)进行换算,从而得到车道中心线的坐标,最后由图形绘制函数规划出运动路径。

4.5 运行控制

通过路径规划得到烟仓机器人的运动轨迹后,为保证烟仓机器人沿着车道线中心线行进,还需根据车道中心线在坐标系内的角度偏差与像素偏差,制定控制策略,控制运动过程。车道中心线的斜率为:角度偏差与像素偏差的推算公式分别为:

当角度偏差为正值时,发送左转命令;为负值时,发送右转命令;为零时,根据像素偏差进行控制,依像素偏差正负值,分别发送左转、右转命令。烟仓机器人行进偏差与控制策略见表3。

5 试验验证

验证试验结果表明,本研究开发的系统能够很好地完成对烟仓机器人行进路径的识别、规划及机器人运动的控制。如角度偏差为正,机器人运动方向偏右,则驱动机器人左转(图8);角度偏差为负,机器人运动方向偏左,则驱动机器人右转(图9)。

6 结论

(1)硬件控制平台选取32位的ARM处理器STM32F103ZET6,外围芯片主要有摄像头模块OV2640、无线通讯模块Marvell8686 MR09、驅动芯片L293D等。软件运用LWIP协议、TCP/IP协议、Socket网络编程,建立局域网实现下位机与PC间的WIFI无线通讯。

(2)PC端软件的开发在MFC框架下进行,调用OpenCV等的图像处理函数,实现图像的分割、边缘检测、Hough变换,进而实现路径的识别与规划。

(3)基于角度和像素偏差,通过建立数学模型生成控制决策,实现烟仓机器人自控行走。

本研究开发的烟仓机器人利用机器视觉实现了对路径的自动识别和规划,对路径识别控制类机器人和车辆的相关研究具有一定的参考价值。

参考文献:

[1] David K.Muller Stored Product[M].USA, 1998: 97 - 103.

[2] 金闻博.卷烟储运学(校内教材)[M].合肥:中国科学技术大学,1998:25-40.

[3] Zou X J,Zou H X.Lu J,et al.Virtual manipulator - basedhinoular stereo vision positioning syste.m and errors modeling[J]. Machine Vision and Aplications, 2012, 23(1):43 - 46.

[4] Atiya S,Hager G.Real - time vision - based robot localization[C]∥Proceedings. IEEE International Conference on Robot-ics and Automation. 1991.

[5] 杨为民,李天石,贾鸿社,等.农业机械机器视觉导航研究[J].农业工程学报,2004 ,20(1):160 - 165.

[6] 張磊,王书茂,陈兵旗,等.基于机器视觉的麦田边界检测[J].农业机械学报,2007,38(2):111-114.

[7] 张成涛,谭或,吴刚,等.基于达芬奇平台的联合收获机视觉导航系统路径识别[J].农业机械学报,2012,43(增刊):271 - 276.

[8] 董靖川,张朝,温洋,等.基于STM32的低碳避障实验小车电控设计[J].实验技术与管理,2017,34(12):45 - 49.

[9] 王辉,于立君,董泽全,等.基于STM32的循迹平衡小车实验教学平台研究[J].实验技术与管理,2017,34(5):136 -139.

[10] 高杰.基于WIFI的无线视频监控硬件电路设计[J].电子测试,2017(1):22 -23.

[11] 马捷,鄂金龙.基于近场通信的WiFi传输连接方案[J].计算机工程,2013(6):1-6.

[12] Thomas Valerrian Pasca Santhappa, Sumanta Patro, Bheemarju-na Reddy Tamma. Network coordination function for uplink traf-fic steering in tightly coupled LTE Wi-Fi networks[J].Com-puter Networks,2017, 127: 296 - 316.

[13] Qi Hui, Li Qi. Implementation of LWIP TCP/IP protocol stackbased on Sl C33 E07[M]//Wu Y W. Software Engineering andKnoWledge Engineering: Theory and Practice. SpringerBerlin - Heidelberg,2012:635 - 642.

[14] 龚正,沈建新.WIFI镜头机无线图像采集系统[J].计算机系统应用,2016,25(4):263 -267.

[15] Ding X L,Zhao Q, Li Y B,et al.A real - time and effectiveobject recognition and localization method[J].Applied Me-chanics and Materials, 2014, 3372( 615): 82 - 87.

[16] 林开颜,吴军辉,徐立鸿,等.彩色图像分割方法综述[J].中国图象图形学报,2005,10(1):1-10.

[17] 丁文,李勃,陈启美.Canny色彩边缘检测及分类新方法[J].北京邮电大学学报,2012,35(1):115 -119.

[18] 樊可霞,周一军,涂煊,等.基于OpenCV的社保卡号码识别算法的研究[J].信息技术,2014(3):175 -178.

[19] 聂瑞柱.基于视觉的A(;V路径跟踪技术研究[D].青岛:青岛科技大学,2015.

[20] 李天剑,王会香,黄民.基于机器视觉的仓储机器人控制方法研究[J].北京信息科技大学学报(自然科学版),2015,30(6):12-17.

猜你喜欢

机器视觉
基于芯片点胶系统的视觉检测技术研究
全自动模拟目标搜救系统的设计与实现
基于机器视觉的自动浇注机控制系统的研究
大场景三维激光扫描仪在研究生实践教学培养中的应用
基于机器视觉的工件锯片缺陷检测系统设计
基于机器视觉技术的动态“白带”常规检测系统的开发
对激光切割机的改进
人工智能在高校图书馆的预期
基于车牌识别的机器视觉课程研究
机器视觉技术在烟支钢印检测中的应用