摘 要:机器视觉是机器人应用的一个重要方向,码垛机器人已经越来越多的应用在物流生产线的各个方面,但是普通的码垛机器人无法适应现代物流仓储种类多、位置偏差大的特点。介绍了一种应用机器视觉实现柔性生产的码垛机器人系统,该系统主要由机器人系统、机器视觉系统、夹手工具、传输线、工控机系统、位置传感器等组成,关键技术包括码垛机器人码垛算法和机器视觉系统标定算法的实现,并编写了相应的算法程序和控制程序,经过严格测试可适应传输线上不同种类、不同位置的货物类型,并实现对这些货物的自动判断,适应货物位置自动调整并实现自动抓取货物。目前该系统已经在学校的物流实训室得到了应用,满足了学校教学的要求,对工业生产有一定的指导作用。
关键词:机器视觉;离线编程;码垛机器人;上位计算机
目前的自动化生产设备已经不能满足企业日益增长的生产需求。以码垛设备为例,机械式码垛机,具有占地面积大、程序更改复杂、耗电量大等缺点;采用人工搬运,劳动量大,工时多,无法保证码垛质量,影响产品顺利进入货仓。目前欧、美、日的码垛机器人[1]在码垛市场的占有率超过了90%,绝大数码垛作业由码垛机器人完成。
普通的码垛机器人采用示教方式通过码垛算法进行自动码垛,但是由于货物到达固定工位的与事先规定的位置会有一定的偏差,如果不采用一定的修正措施,码垛机器人可能无法抓取货物。因此,设计了一套基于机器视觉的码垛机器人系统,采用离线编程[2]的方式来灵活控制机器人工作,实现了码垛机器人的柔性工作。
1 系统原理
货物到达固定工位后,首先采用机器视觉系统的测量设备,生成货物的三维信息。然后通过视觉标定系统,将获取的三维信息通过总线的方式传递给上位计算机,上位计算机[3]根据实现确定的码垛算法,计算出机器人系统的控制量,最后通过机器人离线编程技术,控制机器人运动,实现任意货物任意角度的抓取。在滚道上,设置光电开关判断货物到位等相关信息。
1.1 系统组成
系统主要包括:机器人系统[4]、机器视觉系统、上位机软件系统[5]、管理软件系统[6](物流部)、滚道系统、气动手爪系统、空气压缩泵、工控机系统。机器人系统是整个系统的执行机构,负责码垛工作;机器视觉系统用于获取工位上货物的三维信息,主要包括货物的大小、高度和方向;上位机软件系统用于码垛算法的实现并通过离线编程手段控制机器人运动;管理软件系统是整个物流实训室的管理软件,控制货物的出货和入货以及货物的数据库管理等功能;其余设备为系统辅助设备。系统组成如图1所示。
图1 系统组成图
1.2 工作流程
工作启动后,管理软件系统通知上位机软件系统此次搬运货物的个数及长、宽、高信息。然后上位机软件系统通过这些信息,生成合理的码垛算法,通过码垛算法通知管理软件系统第一个货物的信息(长、宽、高)。
图2 控制流程图
货物运输到工人搬运工位,工人把货物从托盘搬运到滚道,滚道通过信号知道货物已经放置在滚道上,上位机软件判断机器人搬运工位就绪,控制滚道把货物运输到机器人搬运工位,上位机软件系统控制机器视觉系统,判断货物是否是需要的货物,如果是,机器人进行位置修正后,开始搬运工作,如果不是,报警,人工进行处理。
上位机软件系统判断堆放货物的托盘是否到位,如果到位,通过已经生成的码垛算法[7],把货物搬运到托盘的正确位置上。如果没有到位,报警,人工进行处理。当货物码放完毕,或者达到托盘码放的最高高度,通知管理软件系统,把托盘运走。控制流程图如图2。
2 关键技术
2.1 机器视觉系统
在项目中,由于货物的种类繁多,面积和高度各不相同,而且需要在同一个出货口出货,对于示教编程来说,工作量比较大,而且维护不方便。所以,采用了智能相机+高度测量设备来获取出货口货物的三维尺寸,通过标定系统把机器人坐标系和货物的实际坐标系建立统一的世界坐标系[8],并控制机器人到固定的工位去抓取货物。在智能相机中,通过Bolb功能获取货物的面积,这个面积是像素面积,所以还需要把相机的像素坐标系同实际的货物坐标系进行标定[9],采用的方法是找一个已知大小的货物,在相机中测量出像素面积,并通过测高设备测量货物的高度,找出高度、像素面积和实际面积之间的对应关系,通过这个关系就可以通过货物的高度和在相机中的像素面积得到货物的实际面积。对于本项目,属于柔性码垛系统,本身要求的精度不高,在现场通过安装一些照明灯,增加工位和货物的对比度,减少了环境对测量的影响,结果满足了要求。
2.2 机器人离线编程技术
机器人离线编程技术有别于机器人本身的示教技术,离线编程技术[10]直接通过计算机来控制机器人的运动,通过上位机编程,通过上位机程序来控制机器人的运动,这样就降低了用户操作的难度[11],并且保证了系统运行的稳定性[12]。
图3 机器视觉系统
所以,在项目中,采用了上位机离线编程技术控制机器人运动,简化了操作步骤,增强了系统的稳定性和可靠性。
2.3 自由码垛算法
在项目中,由于各个货物都需要码放在一个固定的托盘上,对于货物在托盘上的摆放位置需要仔细规划。在项目中,由于是一个超市出货系统,超市管理软件首先根据当前的存货量,下达当前需要的货物种类和数量。当笔者的上位机软件接收到货单后,首先规划货物的码放顺序,通过自由码垛算法,将规划好的货物码放顺序下达给立体仓库管理软件,立体仓库软件按照下达的货物顺序,依次运输各个货物到固定工位,货物到位后,笔者的上位机软件通过事先规划好的码放顺序把货物码放在托盘上。码垛算法有如下规则: 1)同一种货物必须连续码放,因为这样符合立体仓库出货要求,而且增加工作效率。2)优先摆放大面积货物。3)然后优先摆放高度比价大的货物。4)必须考虑如何放置货物,因为采用的是气动夹手,而不是吸盘,所以必须考虑夹手张开有足够的空间。
算法部分关键代码如下:
3 工程实现
3.1 软件控制系统
程序启动首先加载AD卡IO卡及机器人驱动程序和函数库,加载成功,显示界面[13](如图4),通过连接机器人可以实时与机器人通过以太网通讯[14],传递搬运中的位置点信息,通过读取路径文件得到预置的位置点信息,实际路径是在此基础测量修正后的结果。点击复位将机器人调整到准备状态位姿,点击系统启动,启动程序内Socket线程实时接收和发送数据,点击自动运行后,系统在检测到相应到位信号并正确解析搬运任务后自动开始运行,运行结束后,点击系统终止,结束线程,释放资源。
3.2 机器视觉系统
项目中采用了康耐视的数字相机,该相机是一个智能相机,内置各种图像处理算法,基于Power PC构架[15],在运算能力上一般,但可以满足工程需要,性价比较高。该相机可以更换镜头并添加灯光系统,在机械装配上比较方便。在电气连接上,一个RJ45的以太网口,另一个是十芯的类似RJ45的信号+电源接口,方便电气连接。另外为了得到货物的三维信息,在智能相机的基础上,增加了一个超声波测距传感器[16],可以得到货物的高度尺寸。然后通过标定系统,可以得到实际货物的实际体积大小。
如图5,笔者使用blob工具来计算货物的像素面积。说明:根据现场环境的实际情况,可调整曝光速度。
图4 软件显示界面
图5 视觉系统界面
3.3 码垛机器人系统
项目中采用了日本FANUC机器人公司提供的FANUC RJ3机器人系统(如图6,图7)以及Robot interface离线编程控件,该控件是一个VB类型的DLL控件,该控件提供了查询关节值、姿态值,读写数字IO、系统IO,读写数字寄存器,读写位置寄存器,读写系统变量,查询程序执行状态,查询报警等功能。该控件通过以太网与上位机通讯,通过控件提供的初始化命令进行通讯前的初始化工作。
本文介绍的基于机器视觉的码垛机器人系统已经在浙江经济技术职业学院和沈阳金融学校的物流实训室得到了应用,很好的完成了教学任务。随着机器视觉和机器人视觉伺服[17]的不断发展,机器视觉将得到更多的应用,将能满足更复杂、更严格的码垛任务。
图6 FANUC RJ3机器人本体
图7 FANUC RJ3机器人控制柜