目录
本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSim),欢迎关注!
概述
多机器人同步运动也是工业领域常见的一种应用,如大体积重型工件的搬运、多焊道对称焊接等,这些应用都需要多台机器人同步运动来完成。
在ROBOGUIDE软件中同样能够实现多机器人同步运动虚拟仿真,本期就来介绍一下。
ROBOGUIDE软件使用版本:V9.40
多机器人虚拟系统创建
在ROBOGUIDE软件中使用工作站创建向导先创建单台机器人的虚拟系统,工艺类型选择为搬运,系统选项中额外勾选“Motion Package(R809)”、“Simultaneous R. Link(J777)”两个选项。其中,Motion Package(R809)选项是机器人运动功能软件包;Simultaneous R. Link(J777)选项是机器人同步仿真运动链接功能选项包,它是实现多机器人同步运动虚拟仿真的必选项。其他参数选项均保持默认即可。
再为工作站添加剩余的机器人,点击“Cell”菜单,然后依次点选“Add Robot”→“Single Robot-Serialize Wizard”,在弹出的虚拟机器人编辑向导对话框中,参考上述机器人创建步骤,添加相同的机器人。
重复上述步骤,在虚拟仿真环境中一共添加4台机器人。
机器人全部添加完成后,软件工作区中多了4台机器人,但是由于机器人位置与姿态是相同的,因此它们重合在了一起。在左侧的Cell Browser中可以看到机器人控制器下出现4台机器人虚拟控制器,它们分别对应已添加的4台机器人。
周边设备模型添加与布局
使用ROBOGUIDE软件自带的模型创建功能创建一个“Cylinder”类型的模型作为工件。再创建出两个“Box”类型的模型作为简易工装,其中一个作为抓取工件的工装,另一个作为放置工件的工装。然后将工装放置到合适位置,并将工件安装到抓取工装上。详细属性参数如下:
工件
Name:Work
Scale:Diameter=500mm,Length=10000mm
抓取工装
Name:Pick_Fixture
Scale:(X,Y,Z)=(1000,1000,1000)
Location:(X,Y,Z,W,P,R)=(2000,5000,1000,0,0,0)
Parts:勾选“Work”,Part Offset设置偏移量(X,Y,Z,W,P,R)=(0,-2500,250,0,0,0),勾选“Visible at Teach Time”和“Visible at Run Time”
Simulation:勾选“Allow part to be picked”,Create Delay为6 sec
放置工装
Name:Place_Fixture
Scale:(X,Y,Z)=(1000,1000,1000)
Location:(X,Y,Z,W,P,R)=(2000,-2000,1000,0,0,0)
Parts:勾选“Work”,Part Offset设置偏移量(X,Y,Z,W,P,R)=(0,3600,250,0,0,0),取消勾选“Visible at Teach Time”和“Visible at Run Time”
Simulation:勾选“Allow part to be placed”,Destroy Delay为2 sec
机器人
将4台机器人分别放置到合适位置,相关位置与角度参数如下所示:
C:1,GP:1(X,Y,Z,W,P,R)=(0,0,0,0,0,0)
C:2,GP:1(X,Y,Z,W,P,R)=(4000,145,0,0,0,-180)
C:3,GP:1(X,Y,Z,W,P,R)=(4000,3145,0,0,0,-180)
C:4,GP:1(X,Y,Z,W,P,R)=(0,3000,0,0,0,0)
这里的机器人位置与角度非常重要,一定要记住了,后续在校准机器人同步运动标定数据时会用到。
从模型库中为每一台机器人添加工具,工具模型目录为“grippers/folk01”,并将其安装到机器人上。相关属性参数如下所示:
Location:(X,Y,Z,W,P,R)=(0,0,0,180,0,0)
UTOOL:(X,Y,Z,W,P,R)=(0,0,174.5,0,0,0)
在机器人1的工具上安装工件,Parts选项卡中勾选“Work”,然后在Part Offset下设置偏移量(X,Y,Z,W,P,R)=(430,2500,60,0,0,0),取消勾选“Visible at Teach Time”和“Visible at Run Time”。
机器人外围设备全部添加与布局完成后,其效果如下图所示。
工作站以太网RIPE通信设置
ROUOGUIDE软件中多台机器人是通过以太网交互通信实现的同步运动,在Cell菜单栏下选择“RIPE Setup”,然后在弹出的RIPE Setup对话框中Robot Controllers下选择对应的机器人虚拟控制器,并在Network ID下设置网络ID。由于ROBOGUIDE软件的功能限制,机器人的ID 应该是除1之外的数字。
点击“OK”按钮后,弹出“RIPE设置更改”的信息提示框,点击“是”按钮,各台机器人虚拟控制器依次重新启动,重新启动完成后配置开始生效。
机器人TCP/IP通信设置
分别打开四台机器人的虚拟示教器,按“MENU”键,然后依次选择“设置”→“主机通讯”→“TCP/IP”→“F3 详细”,在设置主机通信界面中确认“机器人名称”、“端口#1 IP地址”是否与RIPE Setup对话框内设置的一致。若不一致,则需要修改为一致。
设置主机器人链接
ROBOGUIDE软件中多机器人同步运动是通过主从协同的方式实现的,在多台机器人中必须有一台机器人作为主机器人,其他的机器人均为从机器人。同步运动时由主机器人发布协同运动指令,控制从机器人实现同步运动。在本案例中,将机器人1作为主机器人,其他三台机器人作为从机器人。这里机器人1的名称用“C:1,GP:1”表示,即机器人虚拟控制器1中的组1,其他机器人以此类推。
在机器人1的虚拟示教器中按“MENU”键,然后依次选择“设置”→“Multi-Arm”,进入MULTI ARM设置界面,再依次选择“1 同步式样”→“F3 详细”,进入同步样式界面。此时,已经将机器人1作为主导装置,也就是主机器人。
输入注释信息“RobotLink_Test”,同步输出下设置为信号“DO[1]”。再次按“F3 详细”,进入详细信息界面,其中需要设置的内容如下表所示:
No. | 主机名称 | 组群 | 同步 | 仿真 | 优先 | |
1 | Master | Robot_1 | 1 | |||
2 | Slave | Robot_2 | 1 | 是 | 否 | 否 |
3 | Slave | Robot_3 | 1 | 是 | 否 | 否 |
4 | Slave | Robot_4 | 1 | 是 | 否 | 否 |
返回MULTI ARM设置界面,选择“3 状态输出信号” →“F3 详细”,进入状态信号详细信息界面,设置内容如下所示:
1 主导装置状态信号:DO[2]
2 从动装置状态信号:DO[0]
再次返回MULTI ARM设置界面,选择“4 校准(Calib)资料” →“F3 详细” →“F3 详细”,在校准(Calibration)资料详细信息界面中,设置内容如下所示:
C:1,GP:1(X,Y,Z,W,P,R)=(0,0,0,0,0,0)
设置完成后按“F4 完成”,然后手动机器人进行冷启动,启动完成后设定值生效。
ROBOGUIDE软件中多机器人同步运动虚拟仿真时,一般情况下都是以主机器人的位置作为基准位置,也就是零点位置,因此在校准(Calibration)资料界面输入校准标定数据时,主机器人的校准坐标值要全部输入“0”。
设置从机器人链接
设置其余3台从机器人与主机器人的链接,前两步3台从机器人设定参数值相同。在虚拟示教器中按“MENU”键,依次选择“设置”→“Multi-Arm”→“2 主导装置一览表”→“F3 详细”,进入主导装置一览表详细信息界面,设置内容如下表所示:
No. | 主机名称 | 组 | 同步信号 |
1 | Robot_1 | 1 | DI[1] |
返回MULTI ARM设置界面,选择“3 状态输出信号” →“F3 详细”,进入状态信号详细信息界面,设置内容如下所示:
1 主导装置状态信号:DO[0]
2 从动装置状态信号:DO[2]
再次返回MULTI ARM设置界面,选择“4 校准(Calib)资料” →“F3 详细” →“F3 详细”,进入校准(Calibration)资料详细信息界面。这一步骤中,3台从机器人需要设置不同的参数值。
从机器人的校准标定坐标值是从机器人的位置坐标相对于主机器人的位置坐标的偏移量,也就是主机器人位置坐标值与从机器人位置坐标值的差值。经过计算后得到3台从机器人的校准标定坐标值,如下所示:
C:2,GP:1(X,Y,Z,W,P,R)=(-4000,-145,0,0,0,180)
C:3,GP:1(X,Y,Z,W,P,R)=(-4000,-3145,0,0,0,180)
C:4,GP:1(X,Y,Z,W,P,R)=(0,-3000,0,0,0,0)
设置完成后按“F4 完成”,然后手动机器人进行冷启动,启动完成后设定值生效。
设定工作站I/O信号连接
主从机器人的通信与链接设置完成后,还要在ROBOGUIDE软件中设置I/O信号连接,这样在同步运动时才能实现主从机器人之间的信号交互。
软件“Cell”菜单下选择“I/O Interconnections”,在弹出的I/O InterConnects对话框中,按照下图所示依次添加主机器人与从机器人之间的I/O信号连接。
手动确认主从机器人之间的通信和同步运动
主从机器人全部配置完成后就可以手动测试机器人之间的通信与同步运动了。打开主机器人的虚拟示教器,然后按“MENU”键,依次选择“手动操作”→“机器人同步动作”,进入机器人人工同步动作界面,此时界面中现在的同步状态显示为“单独”,也就表示主从机器人处于独立运动状态,可以使用各自的虚拟示教器单独手动运行机器人。
按“F4 主导装置”,界面中的现在的同步状态切换为“主导装置(人工)”,表示主从机器人已建立通信链接,并且机器人手动同步运动已处于激活状态。
此时,在主机器人的虚拟示教器中手动运行主机器人,软件工作区中就可以看到从机器人会跟随主机器人同步运动,可以直线运动也可以单轴运动,并且在直线运动时从机器人TCP相对位置始终与主机器人TCP相对位置保持不变。
测试完成后按“F5 单独”,主从机器人断开通信链接,手动同步运动取消激活,机器人恢复各自独立运动状态。
若是按“F4 主导装置”后,界面中现在的同步状态后显示“同步不完全”,则表示主从机器人之间未能完全成功建立通信,此时机器人不能实现同步运动。
遇到这种现象,可以通过多次按“F5 单独”与“F4 主导装置”切换运动状态或重启机器人虚拟控制器来重新建立通信。
如果上述方法未能解决问题,那么可以按“F3 状态”,进入机器人同步动作状态界面,在界面中能够具体看到是哪一台机器人处于“没有回应”状态,然后再对有问题的机器人做进一步的分析与调试。状态检查完成后,按“PREV”键,返回机器人人工同步动作界面。
在手动机器人同步运动时要注意以下几点:
ROBOGUIDE软件仅支持通过主机器人的虚拟示教器来手动同步运动机器人,并且只支持按键同步运动操作,其他手动运行机器人的操作(例如在软件工作区中拖动TCP、在虚拟示教器的Current Position窗口上输入数值等)都不适用于同步运动。
当机器人处于同步运动状态时,只能在主机器人虚拟示教器上手动运行机器人,要避免在从机器人虚拟示教器上手动运行机器人,否则会出现意想不到的错误。
当通过同步运动运行机器人时,由于PC的性能或CPU的工作状态,软件工作区中所有机器人的运动可能不会被刷新。这时,可以通过在软件“Tools”→“Options”→“Teach”选项卡内,降低Teach-Time Refresh Rate(示教时间刷新率)来解决这个问题。
主机器人示教编程
在主机器人上创建搬运工件的抓取仿真程序PICK与放置工件的仿真程序PLACE,仿真程序只需要在主机器人上创建,从机器人上无需创建。如下图所示,是抓取工件仿真程序PICK。
如下图所示,是放置工件仿真程序PLACE。
在主机器人的虚拟示教器中创建名称为“MASTER”的程序,在程序详细信息的Multi-Arm程序数据界面中,设置“1 程序类型”为“R. Link Master Sub prog”,即作为主机器人同步运动链接的子程序。
再创建名称为“MAIN”的主程序,然后按照下图所示点位示教机器人程序,其中P[4]点为P[3]点沿着Y坐标轴负方向平移900mm。
程序示教完成后,在P[3]点下方分别添加调用抓取工件仿真程序PICK、主机器人同步运动链接子程序MASTER、放置工件仿真程序PLACE。
从机器人示教编程
参考主机器人程序创建步骤,分别为3台从机器人创建名称为“SLAVE”的程序,并在Muti-Arm程序数据界面中将程序类型设置为“R. Link Slave Sub prog”,即作为从机器人同步运动链接的子程序。
分别再为3台从机器人创建名称为“MAIN”的主程序。由于从机器人的运动路径与主机器人的运动路径一致,因此可以直接导出主机器人的MAIN程序,并将其导入从机器人修改后使用,这样也能加快示教编程速度,避免重复工作。
左侧Cell Browser中展开“C:1-Robot Controller1(简称C:1,其他机器人以此类推)”,在其下的Programs内右击机器人主程序MAIN,依次选择“Export”→“To Loadset”,将主机器人的MAIN程序导出到loadset文件夹。
在左侧Cell Browser中分别展开“C:2”、“C:3”、“C:4”,右击其中的Programs,在弹出的快捷菜单中选择“Load Program”,Load TP or LS File对话框中浏览到仿真项目文件根目录内的loadset文件夹,将其中的MAIN.TP程序文件打开,MAIN程序即被导入机器人。
从位置的姿态上看,从机器人2和从机器人3的姿态相当于主机器人绕基准坐标系Z轴旋转了-180°,所以导入两台机器人的MAIN程序中示教点位坐标也就需要绕Z轴旋转-180°,也就是真实的从机器人Y坐标值是主机器人Y坐标值相对于机器人基准坐标系X轴的对称值,因此需要对两台机器人的Y坐标数值稍作修改。
在两台机器人的虚拟示教器中进入MAIN程序,分别修改点P[4]、P[5]、P[6]的Y坐标值,其中P[1]、P[2]、P[3]的Y坐标值为0,因此不需要修改。
将光标移动到P[4]点处,然后按“F5 位置”,在位置详细信息中将Y坐标值更改为原值的相反数,如-900修改为900,最后按“F4 完成”。点位全部修改完成后,软件工作区中可以看到两台机器人的运动轨迹线与主机器人的运动轨迹线变为一致。
在3台从机器人的MAIN程序中,删除主机器人调用的抓取工件仿真程序PICK与放置工件仿真程序PLACE,并将调用主机器人同步运动链接子程序MASTER修改为调用从机器人同步运动链接子程序SLAVE。
主从机器人同步运动子程序示教编程
要想实现主从机器人的同步运动,还需要示教主从机器人同步运动链接子程序。
在虚拟示教器中,先将主机器人与从机器人手动运行到工件抓取点P[3]位置处,此点位将作为主从机器人同步运动的起始点。然后在主机器人中进入“机器人人工同步动作”界面,按“F4 主导装置”键,建立主从机器人通信链接,并激活手工同步运动。
然后将虚拟示教器分别切换到每一台从机器人,并进入SLAVE子程序,在其中示教机器人当前点位,作为同步运动起始点程序。
在从机器人中SLAVE子程序只能示教直线类型运动指令,并且只能添加一条运动程序。
这里要注意,如果在完成了从机器人同步运动子程序的示教后,更改机器人在软件工作区上的位置或从机器人的校准标定数据,那么同步运动仿真将会失败。更改从机器人的校准标定数据时,必须重新示教从机机器人同步运动子程序中同步运动起始点程序。
从机器人的SLAVE子程序示教完成后,将虚拟示教器切换到主机器人,按“F5 单独”,断开主从机器人通信链接,取消激活同步运动。
进入MASTER子程序,示教当前机器人点位,作为主机器人同步运动起始点程序,并按照下图所示点位示教机器人搬运工件程序,其中P[4]点为P[1]点沿着Y坐标轴负方向平移900mm。从机器人中的点位无需全部示教,只需示教同步运动起始点即可。
MASTER子程序全部示教完成后,如下图所示。
机器人同步运动仿真运行
程序全部示教完成后就可以对机器人仿真运行了。确保主机器人为“单独”运动状态,然后在所有机器人中进入主程序MAIN。此时,即可启动仿真运行。同步运动效果如下方动态图所示,可以看到四台机器人同步运动,共同完成工件的搬运工作。
若是需要实现多次搬运工件的仿真效果,可以分别在主从机器人的MAIN程序中添加FOR循环指令进行控制。
The End