自吸泵厂家
免费服务热线

Free service

hotline

010-00000000
自吸泵厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

基于机器视觉的烟仓机器人控制系统设计及路径识别《资讯》

发布时间:2020-08-17 12:36:40 阅读: 来源:自吸泵厂家

2019-08-05 13:31:02来源:山东农业科学

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

烟叶霉变是全球烟草行业普遍存在的问题[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客户端与下位机服务器端的连接,实现数据的接收和控制命令的发送。

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

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

3.1图像采集与传输

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

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

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]。通过消除噪声、计算梯度幅值与方向、非极大值抑制、滞后阈值,使其达到最优检测。边缘检测效果如图所示。

4.3高斯滤波与Hough变换

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

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

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试验验证

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

6结论

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

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

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

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

芬琳漆

芬琳漆

芬琳水性环保漆怎么样