采用图像处理技术的机械臂定位装置

2017-02-03 05:05刘冀龙赵建伟
电子设计工程 2017年21期
关键词:树莓驱动器象限

刘冀龙,尹 岗,赵建伟

(1.内蒙古工业大学内蒙古呼和浩特010051;2.中国矿业大学(北京)北京100089)

在采矿工业中,货物搬运与抓取是非常重要的工作,然而由于采矿行业的地形限制,大部分工作环境都非常恶劣,很多工作场合不适合人工操作[1]。随着科学技术的发展,机器人技术与机器视觉技术日趋成熟,矿物搬运机器人在特殊领域中有着广泛应用[2]。本文利用树莓派3作为视觉处理设备,Arduino MEGA2560单片机作为下位控制机械臂,搭建出一套能够进行运动目标颜色识别的机械臂控制系统,可以跟踪指定颜色的目标进行抓取。

1 系统结构

矿物搬运机器人分为底盘运动部分与机械臂抓取部分[3],其中本装置是应用于机械臂抓取部分而设计的。视觉处理部分由USB摄像头与树莓派3组成,运动控制部分由MEGA2560单片机、闭环步进电机驱动器FESS60与大型机械臂组成。

在视觉处理端,USB摄像头固定在机械爪上方,使得机械爪与与摄像头处于同一水平面,采集到的图像传入树莓派3中进行处理;树莓派3内移植开源视觉开发库OpenCV,利用OpenCV进行颜色识别与跟踪[4];运动控制端MEGA2560单片机通过串口接收处理后的数据,再控制FESS60对机械臂进行运动控制。由于树莓派3的处理速度足以实现实时检测,因此整个系统是一套实时运动控制系统。

2 视觉处理端设计

2.1 摄像头选择

由于矿山环境的恶略性以及摄像头需要安装在机械爪上随时运动[5],选用的摄像头必须具有坚固的外壳和自动对焦、曝光补偿等功能,这样才能保证读取到高质量的图像。

经过实际测试后,综合价格因素,选用OV5640自动对焦摄像头,其摄像头具有以下特点:

1)采用OV5640 CMOS Sensor

2)AF自动对焦马达镜头。M12 800万像素高清镜头。

3)支持自动曝光控制AEC,自动白平衡AEB与自动增益控制AGC

4)全金属外壳,外壳下方有固定孔位,便于安装

2.2 视觉算法流程

当摄像头采集回图像之后需要对原始图像进行处理,针对ARM嵌入式存储空间小,CPU主频较低的特点,选择算法优化较为成熟,能够跨平台交叉编译的开源视觉库Open Source Computer Vision Library(OpenCV)作为核心[6]。整体算法流程图如图1所示。

图1 机械臂颜色追踪算法流程图

为了实现摄像头的可替代性与通用性,在OV5640摄像头可以外接USB2.0接口,采用Linux内核中集成的 Video for Linux2(V4L2)接口传输图像[7]。利用V4L2接口读取到原始图像之后需要对原始图像进行预处理,预处理之后就可以选择合适的颜色阈值分割法对多颜色目标进行检测,分割出不同颜色之后选择要抓取的目标颜色,计算整个目标的质心与面积,再将目标的位置通过串口发送给Arduino MEGA2560单片机,MEGA2560驱动机械臂进行抓取。

2.3 HSV颜色分割

在图像处理中,最常用的颜色空间是RGB模型[8],常用于颜色显示和图像处理,但对于多颜色目标,RGB模型不容易进行颜色分割,因此,需要用能够直接进行颜色信息分割的颜色模型。

HSV颜色模型是把H(色相),S(饱和度),V(亮度)当做色值来定位颜色的空间[9]。其中色相的取值范围是0~360度,用来表示颜色的类别。红色是0度,绿色为120度,蓝色则是240度。饱和度的取值范围是0%~100%。用来表示颜色的鲜艳程度,灰色的饱和度是0%,纯粹的颜色比如大红(255,0,0)青色(0,255,255)等等的饱和度是100%。亮度的取值范围是0%~100%,用来表示颜色的明暗程度,亮度为0%时为黑色,亮度为100%时为白色,介于0%~100%之间时,则用来表示各个颜色的明暗程度[10]。

HSV在用于指定颜色分割时,有比较大的作用。相对于RGB空间,HSV空间能够非常直观的表达色彩的明暗,色调,以及鲜艳程度,方便进行颜色之间的对比[11]。因此选择HSV颜色分割法进行颜色分割。使用OpenCV中内集成的RGB转HSV函数cvCvtColor(image,hsv,CV_BGR2HSV)就能实现颜色空间的转换。不同的是OpenCV中H∈[0,180][12]。经过实验,识别蓝色的取值是H在100到140,S和V都在90到255之间。图2是识别蓝色球的结果。

图2 蓝色球识别效果图

经过实际测试,S与V保持在90到255之间可以满足所有的颜色选择需求,只需要更改H值就能选择不同的颜色进行识别,表1是在日光下进行实际测试后总结的一些常用颜色的H值范围。

表1 常用颜色H值范围

2.4 串口数据发送

树莓派3识别到目标之后,需要将位置信息发送给Arduino MEGA2560单片机,单片机作为机械臂控制核心控制机械臂动作。为了简化发送的信息,采用象限规划的方式进行编码,具体规划方法如图3所示。

图3 象限规划图

如图3所示,设计成四象限形式,在不同象限内编码不同的字符,当目标质心处于四象限当中的某一象限时,树莓派3通过串口给MEGA2560发送串口数据,另外当质心坐标与象限原点偏差不超过5个像素时时,发送数据1,超过5个像素发送0,因此串口一共发送3位字符串数据给MEGA2560。

3 运动控制端设计

运动控制端主要包括MEGA2560单片机、闭环步进电机驱动器FESS60与大型机械臂,其中MEGA2560接收到串口发送的数据之后进行循环判断[13],驱动FESS60控制大型机械臂进行定位抓取等动作。

3.1 Arduino控制器

本装置中使用的是Arduino MEGA2560是一块使用USB连接PC的单片机,具有多达54路数字输入输出,特别适合需要大量IO接口的设计。处理器核心是ATmega2560,16路PWM输出,16路模拟输入,4路UART接口,一个16 MHz晶振,一个USB,一个电源插座,一个ICSP header和一个复位按钮[14]。

3.2 FESS60闭环步进电机驱动器

FESS60闭环步进电机驱动器用来控制机械臂进行动作,FESS60属于混合步进电机[15],采用脉冲控制,具有反馈系统,同时兼具步进电机与伺服电机的优点,适合低转速运行。

本装置采用MEGA2560来产生脉冲,利用8路数字输出控制4个步进电机,每两路数字输出控制一个点机,其中DIR接口用来控制步进电机正反转方向,PUL接口用来输入脉冲波形,所需的控制信号都用MEGA2560产生,其中一组步进电机驱动程序如下:

如以上程序所示,一个引脚控制电机正反转方向,一个引脚产生一段高低电平脉冲来驱动步进电机转动。

4 实验结果

经过本方案设计的机械臂定位装置实物图如图4所示,大型机械臂可以跟踪不同颜色圆球进行动作并顺利抓取,对于运动的物体,机械臂可以跟随物体进行运动,对于静止的物体,可以定位到物体中心位置,当摄像头中心与目标质心相差5个像素以内时,机械爪向前运动,当目标面积在摄像头视野内超过10 000时机械爪停止并合爪,分别测试红色、绿色、蓝色球都能完成抓取动作。

图4 机械臂抓取实验图

5 结论

本文设计的采用图像处理技术的机械臂定位装置以树莓派3作为视觉检测核心,控制器采用价格低廉的Arduino MEGA2560单片机与FESS60闭环步进电机驱动器作为控制核心,应用简便快捷,经过测试表明,该装置能够快速准确地找到目标并对确定的颜色进行跟踪,可以应用到矿山地区,安装在矿物搬运机器人上对某种矿物进行抓取搬运,降低人工搬运的危险,具有较高的实用价值。

[1]杜永志.采矿技术的特点及应用分析[J].内蒙古煤炭经济,2016(10):18-19.

[2]苗登雨.重载搬运机器人结构设计与动态性能分析优化[D].合肥:合肥工业大学,2014.

[3]赵彬,高宏力,张艳荣.搬运机器人控制系统设计[J].机械设计与制造,2014(12):183-186.

[4]沈镭,高丽.中国西部能源及矿业开发与环境保护协调发展研究[J].中国人口.资源与环境,2013(10):17-23.

[5]A Dziri.Real-time multiple objects tracking on Raspberry-Pi-based smart embedded camera[J].JournalofElectronicImaging,2016,25(4):41-45.

[6]阴亚芳,袁浩,廖延娜.基于机器视觉的光滑球面缺陷检测系统设计[J].电子设计工程,2016(14):113-115.

[7]幕鑫.嵌入式人脸识别系统的研究与应用[D].无锡:江南大学,2013.

[8]S Lin,Y Chen,YK Lai,等.Fast capture of textured full-body avatar with RGB-D cameras[J].Visual Computer,2016:1-11.

[9]李慧霞.室内智能移动机器人规则物体识别与抓取[D].北京:北京交通大学,2016.

[10]Jisuanji,Fuzhu,Sheji,等.Relationship between Saturation and Brightness Value in HSV Color Space[J].Journal of Computer-Aided Design&Computer Graphics,2014,26(8):1272-1278.

[11]谭晓波,殷苌茗,周书仁.融合HSV空间与形态学的救生衣图像分割[J].计算机应用与软件,2016(1):198-202.

[12]OpenCV 官 方手 册[EB/OL].[2016-05-11].http://opencv.org/.

[13]张雁琳.基于Arduino的ZigBee无线传感节点的硬件设计[J].电子设计工程,2015(24):162-165.

[14]Mega2560 官方手册[EB/OL].https://www.arduino.cc/en/Main/ArduinoBoardMega2560.

[15]李国杰.混合式步进电机静音细分驱动器及其应用[D].杭州:杭州电子科技大学,2014.

猜你喜欢
树莓驱动器象限
勘 误
复数知识核心考点综合演练
常数牵手象限畅游中考
藏起驱动器号确保数据安全
基于树莓派的骑行智能头盔设计
基于树莓派的远程家居控制系统的设计
平面直角坐标系典例分析
压电陶瓷驱动器的迟滞特性
响应面法优化红树莓酒发酵工艺
SiC基和Si基永磁同步电动机驱动器的比较