您好!欢迎光临工博士商城

埃斯顿机器人专营

产品:51    
联系我们
您当前的位置:首页 » 新闻中心 » 六轴机器人直角坐标系建立_机器人工具坐标系的创建--埃斯顿机器人
产品分类
新闻中心
六轴机器人直角坐标系建立_机器人工具坐标系的创建--埃斯顿机器人
发布时间:2022-05-12        浏览次数:1822        返回列表
 工具坐标系
 
点数据是由直角坐标系为基准的工具(Tool)坐标系中心位置及姿势所表示的。
 
位置用位置数据(X、Y、Z),姿势用姿势数据(U、V、W)指定。
 
除了机器人固有的 Tool 0 坐标系外,用户可自定义 1~15 共 15 个 Tool 坐标系。
 
机器人默认的 Tool 0 坐标系根据机器人类型分别如下定义。
 
水平多关节机器人(4 轴机器人)的 Tool 0 坐标系的定义
 
第 4 轴(旋转轴)的中心为原点,把第 4 轴旋转到 0 度角度时与机器人直角坐标系平行
 
的坐标轴为坐标轴的坐标系为 Tool 0 坐标系。(参考下图)。Tool 0 坐标系是固定在第四
 
关节(旋转关节)的,所以第四关节时 Tool 0 坐标系也同时旋转。
 
 
 
垂直多关节机器人(6 轴机器人)的 Tool 0 坐标系的定义
 
桌上型时,把所有关节移动到 0 度位置时第 6 关节的法兰面中心为原点,垂直上方向为
 
X 轴,机器人直角坐标的 X 轴方向为 Y 轴,对第 6 关节法兰面垂直的方向为 Z 轴的坐
 
标系为 Tool 0 坐标系(请参考下图)。
 
Tool 0 坐标系是固定在第 6 关节的,所以机器人姿势变化时 Tool 0 坐标系也相应的移动。
 
吊顶型和挂壁型时的 Tool 0 坐标系请参考下图。
 
 
 
用户自定义工具(Tool)坐标系的应用 )坐标系的应用
 
1) 视觉定位中的 Tool 应用。
 
用视觉定位来补正工件的角度时如果安装在旋转轴(第 4 轴)上的吸嘴或夹具的中心
 
(Tool 中心)与 Tool 0 坐标系不一致,通常需要根据角度偏移值和 Tool 中心的偏移值
 
经过复杂的三角函数计算才能准确的抓取工件。
 
这时事先把吸嘴中心或夹具中心校准为自定义 Tool 坐标系,就无需任何计算可准确抓
 
取工件。
 
2) 快速搬运工件时多 Tool 坐标系的应用
 
用一个吸嘴或夹具搬运工件时有时因机器人速度限制无法达到短循环时间的要求,这时
 
增加几个吸嘴或夹具同时抓取多个工件搬运可减短 10%-20%的循环时间,根据情况有
 
时甚至减短 30%-40%的循环时间。
 
每个吸嘴或夹具校准为独立的 Tool 坐标系,可简单实现。
 
3) 点胶等经常更换 Tool 时的应用。
 
在点胶项目中因胶针容易堵塞经常要更换,一般情况下每次更换胶头或胶桶后需要重新
 
校准点胶的位置,如果使用了自定义 Tool 的功能,每当更换胶头或胶桶时只需重新校
 
准胶头的 Tool 即可继续准确的点胶。
 
Tool 的定义方法
 
准确定义机器人夹爪或吸嘴的 Tool 是非常重要的。
 
根据 Tool 的定义机器人通过夹爪或吸嘴取得位置数据,位置数据的全部都与 Tool0 不
 
相关,只跟夹爪或吸嘴有关。
 
使用 SPEL+语言定义 Tool 时请使用 TLSET 指令。
 
Tool 的定义方法有以下几种。
 
使用机器人管理器的工具向导定义Tool
 
可以使用机器人管理器的工具向导定义Tool。
 
使用工具向导按照以下步骤操作。
 
(1) 打开机器人管理器
 
(2) 点击左边列表中的工具
 
(3) 点击工具向导按钮
 
(4) 按照工具向导的提示定义Tool。
 
Tool的手动计算方法 Tool的手动计算方法
 
NOTE 使用以下计算Tool的方法时,不能在释放轴的状态下(SFREE状态下)
 
计算,换句话说不能用手推动机器人。使用步进示教窗口步进移动机器人。 Tool
 
的计算请按照以下步骤进行。
 
(1) 请把U轴转动到0º。
 
(2) 步进示教窗口中的Tool设置为0(TOOL0)。
 
(3) 步进机器人,请把夹爪或吸嘴对准基准点(对的越准越好,对准的准确度直接影响Tool
 
的校准精度),此时U轴的角度要保持0º。
 
(4) 现在位置的X坐标和Y坐标记入X1和Y1。
 
(5) 步进U轴到180º的位置。
 
(6) 步进机器人,请把夹爪或吸嘴对准基准点(对的越准越好,对准的准确度直接影响Tool
 
的校准精度),此时U轴的角度要保持180º。
 
(7) 现在位置的X坐标和Y坐标记入X2和Y2。
 
(8) 使用以下公式计算Tool的偏移量。
 
xTool = (X2 - X1) / 2
 
yTool = (Y2 - Y1) / 2
 
(9) 在机器人管理器的工具窗口中输入偏移量,或在命令窗口中执行以下指令来定义Tool。
 
TLSET 1, XY(xTool, yTool, 0, 0)
 
(10) 测试Tool的设置结果。
 
选择刚才用以上步骤定义的Tool。举例设置为Tool1 。然后步进机器人,请把夹爪或吸
 
嘴对准基准点。之后步进U轴,此时夹爪或吸嘴是对准基准点的情况下旋转不会有偏移。
 
使用向上的固定相机计算Tool偏移量的方法//Function中首先执行定位Tool中心用的序列。然后进行Tool偏移量的计算。
 
Function CalcTool
 
Boolean found
 
Real x, y, u ,x0, y0, u0,xTool, yTool, rTool, theta
 
Tool 0
 
VRun findTip
 
VGet findTip.tip.RobotXYU, found, x, y, u
 
If found Then
 
' Get the TOOL 0 position
 
x0 = CX(P*) ; y0 = CY(P*) ; u0 = CU(P*)
 
' Calculate initial tool offsets
 
' X and Y distance from tip found with vision
 
' to center of U axis
 
xTool = x - x0 ; yTool = y - y0
 
' Calculate angle at initial offsets
 
theta = Atan2(xTool, yTool)
 
' Calculate angle of tool when U is at zero degrees
 
theta = theta - DegToRad(u0)
 
' Calculate tool radius
 
rTool = Sqr(xTool * xTool + yTool * yTool)
 
' Calculate final tool offsets
 
xTool = Cos(theta) * rTool ; yTool = Sin(theta) * rTool
 
' Set the tool
 
TLSet 1, XY(xTool, yTool, 0, 0)
 
EndIf
 
Fend
 
抓取基板的Tool计算方法
 
在这个例子中Vision Guide 5.0用于机器人抓取需要放置的基板后计算此基板的Tool。
 
此时需要一个向上的相机一台。校准相机之后需要示教放置位置。
 
放置位置的示教方法如下
 
(1) 用机器人抓取基板。
 
(2) 为了计算Tool1请执行一次子程序CalBoardTool。
 
(3) 请切换至Tool1。
 
(4) 请步进移动基板。
 
(5) 请示教基板放置位置。Function CalcBoardTool As Boolean
 
Boolean found
 
Real fidX, fidY, fidU, r
 
Real robX, robY, robU
 
Real x, y, theta
 
Real toolX1, toolY1, toolU
 
Real toolX2, toolY2
 
CalcBoardTool = FALSE
 
Jump Fid1CamPos ' Locate fiducial 1 over camera
 
robX = CX(Fid1CamPos)
 
robY = CY(Fid1CamPos)
 
robU = CU(Fid1CamPos)
 
VRun SearchFid1
 
VGet SearchFid1.Corr01.RobotXYU, found, fidX, fidY, fidU
 
If found Then
 
x = fidX - robX
 
y = fidY - robY
 
theta = Atan2(x, y) - DegToRad(robU)
 
r = Sqr(x ** 2 + y ** 2)
 
toolX1 = Cos(theta) * r
 
toolY1 = Sin(theta) * r
 
Else 'target not found
 
Exit Function
 
EndIf
 
Jump Fid2CamPos ' Locate fiducial 2 over camera
 
robX = CX(Fid2CamPos)
 
robY = CY(Fid2CamPos)
 
robU = CU(Fid2CamPos)
 
VRun SearchFid2
 
VGet SearchFid2.Corr01.RobotXYU, found, fidX, fidY, fidU
 
If found Then
 
x = fidX - robX
 
y = fidY - robY
 
theta = Atan2(x, y) - DegToRad(robU)
 
r = Sqr(x ** 2 + y ** 2)
 
toolX2 = Cos(theta) * r
 
toolY2 = Sin(theta) * r
 
Else 'target not found
 
Exit Function
 
EndIf
 
x = (toolX1 + toolX2) / 2
 
y = (toolY1 + toolY2) / 2
 
theta = Atan2(toolX1 - toolX2, toolY1 - toolY2)
 
toolU = RadToDeg(theta)
 
TlSet XY(1, x, y, 0, toolU)
 
CalcBoardTool = TRUE
 
Fend
 
---------------------
 
作者:hackpig       来源  网络
更多详情:埃斯顿机器人                            



 

联系热线:18597848426(微信同号)   联系人:曾成龙 联系地址:上海市宝山区富联一路98弄6号

技术和报价服务:星期一至星期六8:00-22:00 埃斯顿机器人专营