张波波,李明伟,徐舒宇
(1.大连理工大学电信学部,辽宁大连 116024;2.大连65044部队,辽宁大连 116024)
机械手嵌入式视觉系统
张波波1,李明伟1,徐舒宇2
(1.大连理工大学电信学部,辽宁大连 116024;2.大连65044部队,辽宁大连 116024)
设计了一种基于ARM和FPGA技术,针对传送带上块状物料的按规则有序摆放问题,能为机械手提供定位定向数据的嵌入式视觉系统。系统前端通过FPGA驱动传感器采集图像并进行初步处理,后端以ARM9(s3c2440)为主控制器,识别物料目标,计算定位定向数据,将数据发送至机械手控制器,两端并行运算。实验表明该系统能对传送带上物料块快速准确的进行定位和定向,满足精度和实时性要求同时使设备小型化。
嵌入式技术;视觉系统;机械手
在生产线物料传输过程中存在一些高度重复且需要一定智能性的物料有序摆放问题,往往需要耗费大量的人力,使用自动化机械设备能够减少人力使用,提高生产的效率。目前,机器手视觉系统的实现大多使用微机为数据处理平台,采用专用CCD相机,成本较高,设备体积较大[1-2]。针对这种现状,本文设计了一种嵌入式机械手视觉系统,该系统能够完成特征识别、标定后的空间几何量测量和控制的功能,特点是仅仅作为系统的一个外设,体积小、性价比高、便于批量化生产。
机械手系统和视觉系统联机整体示意图如图1所示。
图1 系统整体示意图
图1中,光电开关能够检测物料移动位置,并作为曝光触发信号连接到相机装置内,物料块运动至光电开关处,会触发光电开关,相机装置在收到触发信号后延时一定时间,等物料块进入相机视野后曝光,采集物料图像,对图像进行处理,识别物料块并计算物料块空间坐标和方向数据,最后将数据通过局域以太网发送至机械手控制器。机械手控制器移动机械手吸盘到机械手操作区指定位置抓取物料块,然后吸盘旋转一定角度使物料块标记朝向统一方向,最后释放物料块到下一流程生产线上。
视觉系统组成如图2所示,主要由图像采集、图像预处理、目标识别与计算3部分组成。
图2 视觉系统组成
在图像采集部分,FPGA驱动图像传感器,在适当时刻曝光,采集物料块图像。图像预处理部分由FPGA对物料图像滤波、二值化,检测物料块边缘,提取边缘坐标并存储。目标识别与计算部分由ARM9主控芯片S3C2440分析边缘坐标数据,识别出物料及上面的方向标志,计算物料质心坐标、方向标志坐标,并根据相机标定参数进行图像坐标与三维空间坐标变换,最后将数据通过局域以太网发送至机械手控制器。
系统硬件主要由图像传感器、FPGA和ARM 3部分组成。系统总体硬件结构如图3所示。
图3 系统硬件框图
图像传感器采用MT9P031,它是一款CMOS图像传感器,具有体积小、质量轻、功耗低、易于编程控制等优点,MT9P031输出有效图像尺寸最大为水平2592像素、垂直1944像素[3]。相同视野下,图像有效像素越多,计算质心时精度越高,但是当图像太大时,由于数据量太大又会降低系统处理速度,为了兼顾处理速度和计算精度,通过配置寄存器可动态设置为全帧全幅或设置为1280V像素×720H像素。
FPGA采用Spartan-3E系列中的XC3S250E,该芯片片内逻辑资源丰富,最高频率可达300 MHz[4],能够满足本设计对实时性的要求。FPGA作为前端的处理器件,接收ARM处理器通过SPI接口发送的指令并返回器件的工作状态给ARM,驱动MT9P031进行图像采集,此外,FPGA还对图像数据进行预处理,并将数据存入存储器件SRAM中。
ARM采用S3C2440,其内部集成了ARM920T核,最高工作频率可达533 MHz,外围资源丰富,便于扩展功能[5]。S3C2440外围连接SDRAM、FLASH、RS232、DM9000网卡。SDRAM作为程序运行时的内存使用;FLASH具有掉电非易失的特点,用来存储操作系统及应用程序;RS232作为串口,可以用来下载调试应用程序,观察程序运行状态;DM9000网卡作为通信接口与上位机测试软件和机械手控制器通信。
S3C2440是本设计的主控制器件,它与FPGA共享存储器件SRAM[6]。FPGA采集数据时,连接S3C2440地址线的管脚为高阻态,ARM将不能读取数据,FPGA采集数据完毕后,将地址线切换到ARM上,此时对于ARM来说,FPGA是透明的,SRAM通过FPGA直接连接到ARM上,如图4所示。
图4 共享存储示意图
在传送带装置上适当位置安装光电开关,每当光电信号被触发产生一个电平变化,表示有物料已经到位,根据传送带速度设定适当延时使物料进入相机视野时恰好进行曝光。
该系统程序分为FPGA程序和ARM程序2部分。
3.1 FPGA程序设计
FPGA程序有5个模块:SPI通信模块、传感器配置、曝光控制、图像预处理、SRAM读写控制。SPI通信模块接收ARM发送的配置参数;传感器配置模块根据参数配置图像传感器;曝光控制模块检测光电开关信号,产生传感器曝光信号;图像预处理模块对图像数据滤波消除噪声干扰,然后二值化、检测物料目标边缘,将边缘处坐标以坐标对的形式存入SRAM中。
3.2 嵌入式系统
ARM采用嵌入式Linux操作系统,该操作系统以其开放源代码、可灵活裁剪的内核、支持的硬件广泛、开发资源众多等特点,在嵌入式领域得到广泛应用[7]。系统上电后,首先执行一段引导程序,完成硬件初始化,引导Linux内核加载到内存中,然后运行Linux内核并挂载文件系统,再然后加载驱动模块,有SRAM驱动、SPI驱动、I/O口驱动,这三个驱动模块提供了读写SRAM、SPI、GPIO的操作接口,最后运行应用程序,完成系统功能,如图5所示。
图5 嵌入式系统运行流程
3.3 应用程序流程
嵌入式系统中的应用程序分为主线程和工作线程,如图6所示。
(a)主线程
(b)工作线程
主线程首先进行系统初始化,然后与对方建立网络连接,判断接收数据内容是相机参数还是线程控制指令,执行存储参数或创建/停止线程操作。
工作线程初始化完成后,读取相机参数,通过SPI接口将相机参数发送给FPGA,延时一定时间等待FPGA初始化。然后发送开始曝光指令,等待FPGA返回指令,读取共享存储SRAM中的数据。最后依次调用坐标计算子程序、坐标转换子程序,并将结果数据通过以太网发送。工作线程在运行时检查线程停止标志判断是否停止运行。
3.4 图像质心计算方法
该方法的主要功能是根据FPGA预处理后的坐标对数据来判断连通性,计算目标的质心坐标值及方向标志中心坐标值。预处理的坐标对数据包含目标的边缘信息,格式为(X1,X2,Y),X1,X2分别表示一个扫描线段头部列坐标和扫描线段尾部的列坐标,Y表示这个线段的行坐标。
计算步骤如下:
(1)从第i个线段的Y坐标开始。若Y不为0,表示没有遍历过该线段,将该线段作为目标的起始线段,若为0,表示已经遍历过,跳过此线段。
(2)取第i+1个线段坐标,先判断是否满足连通条件:若满足,再区分是方向标志线段还是目标内普通线段,分别统计符合条件线段行数、像素个数等值,并将遍历过的线段Y值置0,取下一个线段,继续步骤(2);若不满足,执行(3)。
(3)根据步骤(2)中的统计值计算质心坐标和方向标志中心坐标,存入缓冲区,然后执行(1),直至所有坐标都被遍历。
3.5 坐标值转换方法
根据相机线性透视投影模型,从二维图像坐标转换为三维空间坐标首先需求取相机内、外部参数。
图7 透视投影模型
图7中,三维空间中一点P(XW,YW,ZW) 投影到图像平面上点p(u,v)的变换公式如下[8]:
(1)
式中:ax,ay,u0,v0为相机内参数;R为旋转矩阵;t为平移向量;M1为内参矩阵;M2为外参数矩阵;s为常数因子。
传统求参数方法利用三维立体靶标,相当于已知靶标上面各点的三维空间坐标和图像坐标,直接求取未知的相机内外参数矩阵。由于制作精度很高的立体靶标成本较高,该方法在实际应用中受到很大的限制[8]。文献[9]给出一种基于平面靶标的方法。该方法利用一种平面棋盘格作为靶标,假设靶标平面位于空间坐标系XWOWYW的XY平面上,即Z=0,靶标平面上点P(XW,YW,0)和图像坐标之间变换公式为[8]
(2)
式中:ax,ay,u0,v0为相机内参数;r1,r2分别为旋转矩阵R的第1列和第2列;t为平移向量;s为常数因子。
根据文献[9]中求相机标定参数的原理,利用Matlab软件中calib工具箱求解上述公式中的内外参数[10]。
计算步骤如下:
(1)采集N(N≥10)幅棋盘格图像,每幅图中棋盘格位姿都不相同;
(2)手工标定棋盘最外围4个顶点,修改参数,使所有角点都尽可能被准确标出;
(3)计算内部参数,根据误差结果,选取误差最大的图像,反复调整数次,减小误差;
(4)取一幅平放在传输带上的棋盘格图像,计算外部参数,这样将传送带平面作为三维坐标系的xy平面,z轴垂直于传送带平面。物料块在传送带上的运动可视为在xy平面内的运动。
求解出相机内外参数后,通过上位机将参数发送给ARM存储备用,ARM在工作线程中坐标转换子程序主要根据式(2)和相机内外参数完成。
利用本文设计的视觉系统完成实验,标定用棋盘大小为8×13,每个格子尺寸20 mm×20 mm,图像大小为1 280×720。
实验结果如表1所示。由表1数据可看出,系统精度在1 mm以内。
表1 视觉系统输出结果比较
图像坐标/像素系统计算的三维坐标/mm真实三维坐标/mm344.413,137.448-0.017,19.9900,20412.586,201.92119.876,40.01720,40615.428,331.01860.092,99.98460,100816.032,392.40379.894,159.91480,1601018.956,586.402139.929,219.689140,220
注:因设传送带表面为xy平面,表中三维坐标z坐标均为0 mm。
本文基于图像的二值化、边缘检测、质心计算和相机标定方法,结合实际生产过程中对物料传输的具体需求设计出一种能够为机械手提供定位定向数据的嵌入式视觉系统,该系统定位精度高,体积小,成本低,应用前景广阔。
[1] 于宇.基于图像的视觉伺服机器人系统:[学位论文].哈尔滨:哈尔滨工业大学,2007.
[2] 段彦婷.机械臂视觉伺服系统的研究:[学位论文].哈尔滨:哈尔滨工业大学,2008.
[3] Micron Tech.MT9P031:1/2.5-inch 5Mp Digital Image Sensor[EB/OL].[2007- 09-16].http://www.micron.com/ima-ging.
[4] XILINX.Spartan-3E FPGA Family Com- plete Data Sheet.2005.
[5] SAMSUNG Electronics.S3C2440A 32- BIT CMOS MICROCONTROL - LER USER'S MANUAL Revision 1.2004.
[6] 关杰.嵌入式网络图像处理系统的实现:[学位论文].大连:大连理工大学,2010.
[7] 韦东山.嵌入式Linux应用开发完全手册.北京:人民邮电出版社,2008.
[8] 张广军.机器视觉上.北京:科学出版社,2005.
[9] ZHANG Z Y.A flexible new tec- hnique for camera calibration .IEEE Trans,Pattern Analysis and Machine Intelligence,2000,22(11): 1330~1334.
[10] BOUGUET J Y.Camera Calibr- ation Toolbox for Matlab [EB/OL].(2004.10.15)[2013.12.02].http://www.vision.caltech.edu/ bouguetj/calib_doc/htmls/example.html.
Embedded Vision System of Manipulator
ZHANG Bo-bo1,LI Ming-wei1,XU Shu-yu2
(1. College of Electronic Engineering,Dalian University of Technology,Dalian 116024,China; 2.Dalian 65044 Troops,Dalian 116024,China)
An embedded vision system based on technology of ARM and FPGA was designed to resolve the difficulty of sorting lump materials on conveyor. It could provide positioning and orientation data for manipulator. In frontend of the system, FPGA drove image sensor to acquire the images and processed data initially. In backend, the main controller ARM9 (s3c2440) recognized materials, calculated positioning and orientation data, and sent data to manipulator controller. These two parts worked parallelly. The experiments show that this system can orientate lump material on conveyor rapidly and accurately, thus meeting accuracy and real-time demands, and miniaturizing equipments at same time.
embedded technology; vision system; manipulator;
2015-01-13 收修改稿日期:2015-07-12
TP274.2
A
1002-1841(2015)10-0079-03