张桂红 武汉交通职业学院
基于Pixy Cmucam5图像识别传感器的物品分拣装置
张桂红 武汉交通职业学院
本系统以Pixy Cmucam5图像识别传感器,ATmega2560单片机为核心,利用图像识别模块采集物品图像信息,经过色调过滤算法确定物品颜色及位置,单片机输出3路脉冲信号到步进电机驱动器,驱动固定在滑台x、y、z轴的3个步进电机工作,使固定在滑台的机械手到达指定位置并完成抓取任务,搬送物品到指定坐标。
Pixy Cmucam5图像识别传感器;ATmega2560;色调过滤算法;高精度滑台
1.1 图像识别模块的选择
Pixy Cmucam5是由Charmed实验室联合卡内基梅隆大学共同推出的一款图像传感器。其强大的处理器上搭载着一个图像传感器,它会选择性的处理有用的信息,将特定颜色的物体的视觉数据发送给相互配合的微型控制器,而不是输出所有视觉数据以进行图像处理。所以Arduino板或其它微控制器很容易跟它交流,并腾出许多CPU资源来执行其他事件。该模块不仅能进行颜色识别,还能知道带颜色物品的位置,通过颜色来追踪物体。
1.2 色调过滤算法
系统在图像识别时使用基于色调过滤算法(hue-based color filtering algorithm)来识别物体。通过将彩色图像从RGB空间转换到HSV空间,能够有效地提取出彩色图像中的颜色信息。另外,由于彩色图像中景物的色调信息(H)具有恒常性,它不易受到光照条件变化的影响,因此适应性更强。本系统在图像识别前,预先将被识别物体(立方体或乒乓球)的HSV值存入处理器,然后在识别过程中,将实时图像中各个坐标的HSV值与存储器中内容对比,从而找到匹配的物体,并将匹配物体的坐标发送给电机控制装置。实验证明,此方法对红橙黄绿青蓝紫各位颜色的物体均能快速识别,取得良好的效果。
1.3 微处理器的选择
图1 步进电机动作与坐标匹配
采用Arduino Mega2560。Arduino Mega 2560是一款基于ATmega2560的微控制器板。它有54个数字输入/输出引脚(其中15个可用作PWM输出)、16个模拟输入、4个UART(硬件串行端口)、1个16 MHz晶体振荡器、1个USB连接、1个电源插座、1个ICSP头和1个复位按钮,USB供电。由于其理想的PWM输出特性,是控制电机首选器件。
1.4 步进电机动作与坐标匹配
摄像头图片x轴坐标范围为(0,320),y轴坐标范围为(0,200),物体所在平面x轴坐标范围为(0,150cm),y轴坐标范围为(0,100cm),据此将摄像头图片坐标转换为物体平面坐标。设滑台动作起点坐标为(x1,y1),终点坐标为(x2,y2),则滑台x轴位移距离为x2-x1,y轴位移距离为y2-y1,规定当距离为正时,电机正转,滑台沿坐标轴正向移动;当距离为负时,电机反转,滑台沿坐标轴负向移动。而单片机向驱动器发送的脉冲数与位移距离是正比例关系,可以据此对单片机进行编程。控制流程图如图1所示:
系统总体设计方案如图2所示。
图2 系统总体设计方案
2.1 硬件电路的组成
硬件电路由ATmega2560控制板模块、电源模块、图像识别模块、电机驱动模块、按键模块、声光报警模块组成。
2.2 搬送装置的选择
采用高精度三轴滑台加机械手。滑台x,y轴水平移动,可以找到物品的位置,再通过滑台z轴的竖直移动和机械手动作完成抓取任务,最后搬送到指定的区域。
2.3 电机驱动模块
电机驱动模块选用MB450A两相混合式步进电机驱动器。此驱动器采用交流伺服驱动器的电流环进行细分控制,电机的转矩波动很小,低速运行很平稳,几乎没有振动和噪音。高速时力矩也大大高于其它二相驱动器,定位精度高。该步进电机静力矩1.8Nm,步距角为1.8度,连续收到200个步进指令正好转一圈。当驱动器设置为128细分时,单片机向驱动器发送25600个脉冲,电机转一圈。因此,单片机可以通过脉冲信号对电机进行极高精度的控制。
2.4 程序设计
主程序设计流程图如图4所示。
图4 主程序设计流程图
本系统通过按键来选择系统工作模式,图像识别模块将物品颜色及位置信息发送到Arduino Mega2560,经过分析运算后,驱动电机运动并完成搬送任务。
[1]唐良瑞,谢晓辉.基于D-S证据理论的图像图像分割方法[J].计算机学报,2003,26(7)
[2]杨小冬,宁新宝.自动图像识别系统图像分割算法的研究[J].南京大学学报.2004,40(4)