1. 引言
近年来,我国工业机器人行业发展迅速,一定程度上推动了机器人在工业生产制造方面的运用与发展,并且在工业自动化中发挥了巨大作用 [1]。在工业生产流程中,工业机器人会根据预先设置的程序,有序执行相关任务 [2]。面对复杂的工业任务,单个机器臂已无法胜任,于是提出了多机械臂协同控制 [3]。多机械臂协同控制并不在于叠加各个单机械臂的功能,而是通过系统中各子机械臂协同控制来起到一个一加一大于二的效果 [4]。
工业机器人代替人工进行生产活动,特别是多机械臂协同控制流水线生产的作业模式,逐渐成为工业生产制造的主要发展趋势。在多机械臂协同控制生产流水线中,不同的工业机器人因为设计与制造日趋智能化和人性化而导致类型存在异同,它们之间的协同控制方式也因此多样化 [5]。随着机器人系统日趋智能化和作业任务日趋复杂化,对于多机器臂间的协同控制研究就显得尤为重要 [6] [7]。
本文以双机械臂装箱搬运流水线生产模拟为例,对如何在流水线的生产过程中完成具有较高实时性和高效率的机械臂间协同控制方式进行研究,以掌握工业机器人的控制原理和方法,以及工业机器人间协同控制设计的基本思路与方法,更好理解多机械臂协同控制流水线生产的高效率作业过程。
2. 实验基础
实验设计目的是利用工业装箱机器人和工业码垛机器人协同控制完成货品从装箱到搬运的模拟流水线生产过程。本文选择使用固高工业码垛机器人及其控制系统(完整生产线如图1所示)和固高工业装箱机器人及其控制系统(完整生产线如图2所示)进行双机械臂的协同控制实验。
固高工业码垛机器人和固高工业装箱机器人都为6自由度机器人,并配备有传送带,传感器和对应的作业工具(如码垛机器人的吸盘和装箱机器人的夹具、夹爪),能够完成装箱和搬运的操作,适合于双机械臂装箱搬运协同控制实验研究。码垛机器人控制系统的主要部件实物图如表1所示,装箱机器人控制系统的主要部件实物图如表2所示。
![](//html.hanspub.org/file/4-2340855x9_hanspub.png)
Figure 1. Complete production line of palletizing manipulator
图1. 码垛机器人完整生产线
![](//html.hanspub.org/file/4-2340855x10_hanspub.png)
Figure 2. Complete production line of packing manipulator
图2. 装箱机器人完整生产线
![](Images/Table_Tmp.jpg)
Table 1. Main parts of palletizing manipulator
表1. 码垛机器人主要部件
![](Images/Table_Tmp.jpg)
Table 2. Main parts of packing manipulator
表2. 装箱机器人主要部件
3. 双机械臂协同控制设计
3.1. 运动需求分析
根据实验基础和设计目的分析可知:两个工业机器人及其控制系统是相互独立的,要完成协同控制需要两个机器人之间存在通信连接,当装箱机器人完成任务后,码垛机器人获得某个指令或者信号后,执行所属任务。因此,双机械臂装箱搬运协同控制可以通过添加适合的程序指令,传感器,或者两个工业机器人间进行信号通讯来完成协同控制。
3.2. 方案论证及选择
从添加程序指令,传感器,和两机器人间信号通讯方面来设计了相应的三个方案。这三个方案的主要内容如表3所示。
![](Images/Table_Tmp.jpg)
Table 3. Introduction of the scheme
表3. 方案内容介绍
方案一虽然只使用了延时指令来完成了协同,没有进行硬件连接,节省一定资源和带来一定便利,但是延长的时间设置需要准确,不然两机器人的生产时间线会存在时差。方案二中两机器人的协同控制会更加的精确和高效,会更贴切真实工业流水线生产,只是两机器人之间的需要完成运动控制器上IO通讯模块的接线,并确保信号的传输是有效的。方案三虽然通过红外传感器传输信号完成协同控制,但是当物品的形状,大小和材质等情况不同时,就需要调整传感器的位置,并且两个机器人的生产线都是已经封装好的线路,在生产线上添加传感器需要注意线路的排置。总的来说方案二的实现比其他方案在协同控制实时性与控制性要准确,故选择方案二进行实现。
3.3. 方案论证及选择
为贴近流水线生产,将方案二进行升级,把两机器人间的单向信号通讯改连接为双向信号通讯连接,码垛机器人与装箱机器人执行完指定任务后,向对方发送执行信号,重复进行流水线生产过程,最终方案的协调控制流程图如图3所示。
4. 双机械臂协同控制实现
4.1. 机器人电气连接
通用数字IO信号连接与机器人运动控制器上的8轴端子板的CN10和CN11模块接口相关,且CN10和CN11通用输入输出供电为24 V,所以继电器选择欧姆龙型号为LY2N-J 2开2闭8脚的24V直流(DC)继电器,电缆线选择4芯1平的RVV纯铜电缆线。
![](//html.hanspub.org/file/4-2340855x18_hanspub.png)
Figure 3. Flow chart of coordination and control
图3. 协同控制流程图
根据CN10和CN11模块的接口定义,作为信号输出端的装箱机器人,在其端子板上选择CN10的“OVCC”作为24V供电输出和“EXO15”作为通用输出,其分别连接继电器的8号和7号接口;而作为信号输入端的码垛机器人,在其端子板选择CN10中的“OGND”作为24V供电地和CN11中的“EXI13”作为通用输入,分别连接继电器的3号和5号接口,以上接线选择红蓝色线进行连接,连接实物如图4所示。作为信号输出端的码垛机器人,在其端子板上选择CN10的“OVCC”作为24V供电输出和“EXO15”作为通用输出,其分别连接继电器的14号和13号接口;作为信号输入端的装箱机器人,在其端子板选择CN10中的“OGND”作为24V供电地和CN11中的“EXI13”作为通用输入,分别连接继电器的5号和9号接口,以上接线选择黄绿色线进行连接,连接实物如图5所示。
4.2. 机器人电气接线
装箱机器人与码垛机器人各端子板上的接线及两个继电器的接线总图如图6所示,图中引线所指的图7和图8为对应位置放大图。
图7(a)所示为装箱机器人端子板CN10通用信号输出的接线实物图、图7(b)为继电器接线实物图、图7(c)为码垛机器人端子板CN10与CN11的通用信号输入接线实物图,图中数字为对应继电器接口,线框为对应连接接口,其中5号和7号接线使用蓝线连接,3号和8号接线使用红线连接。
图8(a)所示为码垛机器人端子板CN10通用信号输出的接线实物图、图8(b)为继电器接线实物图、图8(c)为装箱机器人端子板CN10与CN11的通用信号输入接线实物图,其中9号和13号接线使用黄线连接,5号和14号接线使用绿线连接。
![](//html.hanspub.org/file/4-2340855x19_hanspub.png)
Figure 4. Wiring diagram of control system of packing manipulator
图4. 装箱机器人控制系统接线图
![](//html.hanspub.org/file/4-2340855x20_hanspub.png)
Figure 5. Wiring diagram of control system of palletizing manipulator
图5. 码垛机器人控制系统接线图
![](//html.hanspub.org/file/4-2340855x21_hanspub.png)
Figure 6. General layout of electrical wiring
图6. 电气接线实物总图
![](//html.hanspub.org/file/4-2340855x22_hanspub.png)
Figure 7. Enlarged wiring diagram of control system of packing manipulator
图7. 装箱机器人控制系统接线实物放大图
![](//html.hanspub.org/file/4-2340855x23_hanspub.png)
Figure 8. Enlarged wiring diagram of control system of palletizing manipulator
图8. 码垛机器人控制系统接线实物放大图
4.3. 机器人协同控制程序及调试
本文使用位置点进行编程,即将机械臂任务执行的过程拆分为多个位置点,在程序执行的过程中,机械臂按程序指令中所指定的位置点进行移动,完成指定的运动任务,其中装箱机器人从第一个物品夹取到复位设定有16个位置点,码垛机器人从货物箱搬运到空箱放置设定有10个位置点。
程序使用MOVL指令进行位置点移动,DOUT指令进行传送带,传感器和作业工作的状态控制以及进行IO通讯信号发送控制,WAIT指令用于IO信号等待,TIMER指令用于IO信号持续输出,JUMP指令用于程序循环。装箱机器人的执行代码内容可参考附录1装箱机器人执行代码,码垛机器人的执行代码内容可参考附录2码垛机器人执行代码。
在调试过程中,装箱机器人的执行过程如表4所示。在接收到装箱机器人的执行信号后,码垛机器人的执行过程如表5中顺序所示。
![](Images/Table_Tmp.jpg)
Table 4. Execution process of packing manipulator
表4. 装箱机器人执行过程
![](Images/Table_Tmp.jpg)
Table 5. Execution process of palletizing manipulator
表5. 码垛机器人执行过程
5. 总结
本文主要针对双机械臂协同控制设计的目的,对码垛机器人和装箱机器人进行协同控制,实现了贴近于真实工业流水线生产中装箱与搬运的协同控制,采用IO通讯连接方案,进行两个机器人间的信号交互,实现了较高实时性与效率的机械臂间的协同控制;搭建了模拟真实装箱到搬运协同控制作业流水线,掌握了机械臂间协同控制设计的基本思路与方法。将相关方法用于多类型的机械臂进行生产制造过程的模拟,可以实现多机械臂间的协同控制关系。
基金项目
2019年度教育部产学合作协同育人项目《机械工程控制实验课程体系建设》(项目编号:201902110021)。
附录
附录1:装箱机器人执行代码
0000 N0P
0001 DOUT DO0.1 = 0
0002 DOUT DO0.0 = 1 //气爪松开
0003 DOUT DO1.11 = 0
0004 DOUT DO1.10 = 1//夹具松开
0005 DOUT DO1.4 = 1
0006 DOUT DO1.5 = 0//传送带转动
0007 WAIT DI1.4 = 1 T =0 s B0//等待传感器信号数值‘1’输入
0008 DOUT DO1.4 = 0
0009 DOUT DO1.5 = 0 //传送带停止
0010 DOUT DO1.11 = 1
0011 DOUT DO1.10 = 0//夹具夹紧
0012 MOVL P1 V = 60% BL=0 VBL=0 //以60%速度移动至点1
0013 MOVL P2 V = 20% BL=0 VBL=0 //以20%速度移动至点2
0014 DOUT DO0.1 = 1
0015 DOUT DO0.0 = 0//气爪夹紧
0016 MOVL P1 V = 20% BL=0 VBL=0 //以20%速度移动至点1
0017 MOVL P3 V = 20% BL=0 VBL=0//以20%速度移动至点3
0018 MOVL P4 V = 5% BL=0 VBL=0 //以5%速度移动至点4
0019 DOUT DO0.0 = 1
0020 DOUT DO0.1 = 0 //气爪松开
0021 MOVL P5 V = 60% BL=0 VBL=0 //以60%速度移动至点5
0022 MOVL P6 V = 20% BL=0 VBL=0 //以20%速度移动至点6
0023 DOUT DO0.1 = 1
0024 DOUT DO0.0 = 0//气爪夹紧
0025 MOVL P5 V = 20% BL=0 VBL=0 //以20%速度移动至点5
0026 MOVL P7 V = 20% BL=0 VBL=0 //以20%速度移动至点7
0027 MOVL P8 V = 5% BL=0 VBL=0 //以5%速度移动至点8
0028 DOUT DO0.0 = 1
0029 DOUT DO0.1 = 0 //气爪松开
0030 MOVL P9 V = 60% BL=0 VBL=0 //以60%速度移动至点9
0031 MOVL P10 V = 20% BL=0 VBL=0 //以20%速度移动至点10
0032 DOUT DO0.1 = 1
0033 DOUT DO0.0 = 0 //气爪夹紧
0034 MOVL P9 V = 20% BL=0 VBL=0 //以20%速度移动至点9
0035 MOVL P11 V = 20% BL=0 VBL=0 //以20%速度移动至点11
0036 MOVL P12 V = 5% BL=0 VBL=0//以5%速度移动至点12
0037 DOUT DO0.0 = 1
0038 DOUT DO0.1 = 0 //气爪松开
0039 MOVL P13 V = 60% BL=0 VBL=0 //以60%速度移动至点13
0040 MOVL P14 V = 20% BL=0 VBL=0 //以20%速度移动至点14
0041 DOUT DO0.1 = 1
0042 DOUT DO0.0 = 0 //气爪夹紧
0043 MOVL P13 V = 20% BL=0 VBL=0 //以20%速度移动至点13
0044 MOVL P15 V = 20% BL=0 VBL=0 //以20%速度移动至点15
0045 MOVL P16 V = 5% BL=0 VBL=0 //以5%速度移动至点16
0046 DOUT DO0.0 = 1
0047 DOUT DO0.1 = 0 //气爪松开
0048 DOUT DO1.10 = 1
0049 DOUT DO1.11 = 0 //夹具松开
0050 MOVL P1 V=60% BL=0 VBL=0 //以60%速度移动至点1
0051 DOUT DO0.15 = 1 //向码垛机器人发送任务完成信号
0052 TIMER T = 500 ms//延时500ms
0053 DOUT DO0.15 = 0 //停止信号输出
0054 WAIT DI0.13 = 1 T=0 s B0 //等待码垛机器人发送信号
0055 JUMP L=0001 //跳转到0001指令执行
0051 END
附录2:码垛机器人执行代码
0000 NOP
0001 WAIT DI0.13 = 1 T=0 s B0 //等待装箱机器人发送信号
0002 DOUT DO0.8 = 1 //传送带转动
0003 WAIT DI0.4 = 1 T=0 s B0 //等待传感器数值‘1’输入
0004 DOUT DO0.8 = 0 //传送带停止
0005 MOVL P1 V = 60% BL=0 VBL=0 //以60%速度移动至点1
0006 MOVL P2 V = 60% BL=0 VBL=0 //以60%速度移动至点2
0007 MOVL P3 V = 40% BL=0 VBL=0 //以40%速度移动至点3
0008 MOVL P4 V = 5% BL=0 VBL=0 //以5%速度移动至点4
0009 DOUT DO0.0 = 1 //吸盘吸紧箱子表面
0010 MOVL P2 V = 10% BL=0 VBL=0 //以10%速度移动至点2
0011 MOVL P1 V = 20% BL=0 VBL=0 //以20%速度移动至点1
0012 MOVL P5 V = 20% BL=0 VBL=0 //以20%速度移动至点5
0013 MOVL P6 V = 5% BL=0 VBL=0 //以5%速度移动至点6
0014 DOUT DO0.0 = 0 //吸盘松开
0015 MOVL P5 V = 20% BL=0 VBL=0 //以20%速度移动至点5
0016 MOVL P7 V = 60% BL=0 VBL=0 //以60%速度移动至点7
0017 MOVL P8 V = 5% BL=0 VBL=0 //以5%速度移动至点8
0018 DOUT DO0.0 = 1 //吸盘吸紧箱子表面
0019 MOVL P7 V = 30% BL=0 VBL=0 //以30%速度移动至点7
0020 MOVL P1 V = 30% BL=0 VBL=0 //以30%速度移动至点1
0021 MOVL P9 V = 30% BL=0 VBL=0 //以30%速度移动至点9
0022 MOVL P10 V = 5% BL=0 VBL=0 //以5%速度移动至点10
0023 DOUT DO0.0 = 0 //吸盘松开
0024 DOUT DO0.15 = 1 //向装箱机器人发送信号
0025 TIMER T = 500 ms//延时500ms
0026 DOUT DO0.15 = 0 //停止向装箱机器人发送信号
0027 MOVL P9 V = 60% BL=0 VBL=0 //以60%速度移动至点9
0028 MOVL P1 V = 60% BL=0 VBL=0 //以60%速度移动至点1
0029 WAIT DI0.13 = 1 T=0 s B0 //等待装箱机器人发送信号
0030 JUMP L=0002 //跳转到0002指令执行
0031 END