ABB机器人工具数据和工件坐标以及负荷的设定
在进行编程前,需要设定好工具数据tooldata,工件坐标wobjdata和负荷数据loaddata.
工具数据 tooldata 的设定
工具数据tooldata用于描述安装在机器人第六轴的工具的TCP,质量,重心等参数;
默认工具tool0的工具中心点Tool Center Point,即TCP位于法兰盘的中心。
工具是独立于机器人的,有了TCP,实际应用可以以TCP为原点来建立一个空间直角坐标系;
首先,在机器人工作范围内找到一个非常精确的固定点作为参考点;
在工具上确定一个参考点(最好是工具的中心点)
手动操作机器人移动工具上的参考点,以4种以上不同的机器人姿态,尽可能的让参考点与固定点刚好碰上,为了获得更准确的TCP,下面的例子会使用6点法进行操作,第4点是工具的参考点垂直与固定点,第5点是参考点从固定点向将要设定为TCP的X方向移动,第6点是工具参考点从固定点向将要设定为TCP的Z方向移动;
TCP取点数量的区别:4点法,不改编tool0的坐标方向;5点法,改变tool0的Z方向;6点法,改编tool0的X和Z方向(在焊接应用最为常用)。前3个点的姿态相差尽量大些,这样有利于TCP的精度提高。
示例
示教器,选择手动操纵;
选择工具坐标;
新建一个名为tool1的工具坐标:
编辑tool1,选择定义;
选择TCP和Z,X,使用6点法设定TCP;
手动操作,使工具参考点靠上固定点,作为第一个点,单击修改位置,将点1位置记录下来:
改变姿态,使用同样的方式设定第2个点:
改变姿态,使用同样的方式设定第3个点:
第4个点的位置必须让工具参考点垂直靠上固定点:
这个实际在RobotStudio虚拟操作对新手来说比较困难,摸索了一下:先使用示教器,将工具调整到垂直(不需要接触到固定点),然后使用Freehand下的手动线性来拖动工具靠上固定点(期间可以使用不通的视图角度确认),手动线性模式下,可以一直保证工具垂直:
在第4个点的垂直姿态下,移动工具TCP的+X方向,记录下的位置即为第5个点:
工具参考点以点4垂直姿态从固定点移动到工具TCP的+Z方向,记录下的位置即为第6个点:
点击确定完成设定,自动校验误差,确认工具坐标是否建立的准确;
选中tool1,编辑选择更改值,此页面显示的内容即TCP定义时生成的数据;
根据实际情况,设定工具的质量mass(单位kg)和中心位置数据(此重心是基于tool0的偏移值,单位mm),确定后完成;
选择tool1,然后确定;
动作模式选定为重定位,坐标系选定为工具,工具坐标选定为tool1.
手动操作将工具参考点靠上固定点,在重定位的模式下,手动操纵机器人,如果TCP设定精确的话,可以看到不论机器人如何改编姿态,参考点与固定点始终保持接触。
工件坐标 wobjdata 设定
在手动操作界面,进入工件坐标,新建一个工件坐标数据,并对属性进行设定:
选定新建的工件坐标,在编辑菜单里,选择定义,用户方法选择3点,对工件坐标进行3点设定:
手动操作机器人的工具参考点靠近工件坐标定义的X1点,单击修改位置记录X1位置:
使用同样的方式记录X2的位置:
最后记录Y1的位置:
对自动生成的工件坐标数据进行确认:
**关于工件坐标 wobjdata **:
- 工件坐标对应工件,它定义工件相对于大地坐标(或其它坐标)的位置。机器人可以拥有若干工件坐标系,或者表示不同工件,或者表示同一工件在不通位置的若干副本;
- 对机器人进行编程时,就是在工件坐标中创建目标和路径;
- 重新定位工作站中的工件时,只需要更改工件坐标的位置,所有路径即可随之更新;
- 允许操作以外轴或传送导轨移动工件,因为整个工件可连同其路径一起移动;
我的理解是,一个机器人,如果对应多个工站,每个工站如果需要更换不同的治具(工件),那么,我们可以针对不通的治具,设定不同的工件坐标,这样,换线(换治具)的时候,就可以很方便的定位了(切换工件坐标)。
有效载荷 loaddata 设定
对应搬运应用的机器人,应该正确的设定:
- tooldata: 夹具的质量,重心;
- loaddata: 搬运对象的质量和重心;
示教器界面菜单选择手动操作,再选择有效载荷,新建并设定有效载荷数据的属性,单击初始值根据实际情况设定有效载荷数据:
有效载荷参数含义:
添加loaddata至RAPID程序中:
进入程序编辑界面,选择Settings:
选择Gripload指令:
将load0变更为我们新建的load1即完成设定:
调用例行程序(Service Routine):LoadIdentify
很多时候,我们并不知道工具工件的质量,重心等负荷数据,或者嫌麻烦,可以调用系统自带的例行程序LoadIdentify来自动测量和设置这些负荷数据。
手动状态下,打开程序编辑器,点击调试,**调用例行程序—**:
选择LoadIdentify,再点击转到(其它例行程序后续再研究):
开启电机(示教器使能)后,按运行按钮,提示如下画面,点击OK:
提醒运行程序的过程中,程序的指针会丢失,目前的路径也会清除。程序结束后,将PP指向main.按OK继续。
提醒是鉴别的是工具还是工件,我的理解是工具就是手臂上装的夹具,工件是夹具上有夹持工件,这里没有夹持工件,选择Tool:
接着提醒工具有没有安装到手臂上,手臂的轴在合适的位置:
接着提醒确认tool名称是不是对的(不能是tool0,如果不对,重新设置为对tool后,再回到程序编辑器,按示教器运行按钮继续:
接着问知不知道工具工件的质量,知道的话在定义loaddata的时候可以填写进去,本列选Unknow mass:
确认配置的角度:这里不是太理解,大概是说要选择轴6的实际位置与 the coming ditto for the measurement movements.建议是+/-90度,最小是+/-30度,如果不是+/- 90度,可以选Other,然后填写实际角度:
接着会自动检查手臂是不是在一个正确的位置,如果不在正确的位置,会要求拖动(jog)1个或几个轴到指定的位置(角度),粗略的就好。然后点击OK即可。如果还是不正确,手臂会自动的慢速移动到正确的位置,点击提示窗口的Move即可,我这边提示要求移动轴5到14度的位置:
拖动的时候会显示角度,拖动后点击OK:
可能还不正确,程序将慢速移动一些轴关节到精确的位置,点击MOVE来调整:
接着提示说是否要求在正式高速运动之前先低速运动测试(避免撞击到物品和人,但这样会需要更长的时间),另外,如果接下来实际跑程序的时候,你计划选择的是人工全速模式,那这里就不需要要选低速先测试。这里我们选择NO,直接跑程序:
提示切换到自动模式(需要重新回到程序编辑器,开启电机,重新按压示教器运行按钮,电机MOVE:
提示切换回手动模式,并降低速度(也可以不降低),重新开启电机,运行程序,之后再点击OK:
有时候电机显示安全防护停止状态,多试几次,显示电机开启后再运行程序。由于这里用的是仿真环境,所以最后提示没有真实的计算数值:
但与正式环境的过程是一样的,点击OK后,会呈现最终的计算结果,并询问是否更新tool1的loaddata?,点击YES更新,保存数据到loaddata:
也可以点击Analyze查看更多信息:
最后将PP移动至Main:
或者到程序编辑器调试里面将PP移至main: