ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

EPSON六轴机器人坐标系、TCP标定与点数据编程避坑

EPSON六轴机器人坐标系、TCP标定与点数据编程避坑 简介这份EPSON 6轴机器人培训PPT面向工业自动化调试与示教编程人员围绕六自由度机器人的坐标系体系与运动指令展开适合刚接触爱普生机械手的工程师梳理基础概念也可作为现场示教时的速查材料。包内为1个pptx文件约604KB以图文对照的课件形式组织涵盖机器人基本坐标系以J1法兰中心为原点、遵循右手定则、工具0坐标系随姿态变化而移动的特性、点数据中位置XYZ与姿势UVW的含义以及工具坐标系、本地坐标系在视觉引导、多手爪抓取、涂胶、阵列料盘搬运等场景中的选用差异。指令部分讲解Jump3、Go、Move的用法与各姿势标志位的含义并说明AutoLJM最小关节移动量与LJMAvoidSingularity奇异点回避功能最后给出工具坐标系UVW的向导设置步骤。目前已有101人学习下载适合希望把示教点位与坐标系切换逻辑一次理清的入门至中级读者。1. 撞过一次刀之后才明白坐标系没切对有多贵产线上那台 EPSON 六轴换完夹爪复机第一个循环就直奔料盘边框去了。机械没问题程序也没改问题出在示教时忘了把 Jog 模式从机器人坐标系切回工具模式点位记录的姿态基准换了机器人老老实实按新基准执行于是撞了。这类事故在六轴应用里非常典型四轴 SCARA 只有平面加升降点位错了顶多压一下六轴多了两个腕部自由度同一个 TCP 位置可能对应八组甚至更多的关节解坐标系或者姿态标志差一点机器人就会挑一组绕大圈的姿势跑过去。这份 EPSON 六轴机器人培训资料讲的正是这一层机器人坐标系、Tool 0、工具坐标系、Local 坐标系各自的定义与适用场景点数据XY(x,y,z,u,v,w)的写法Go/Move/Jump3的区别以及AutoLJM、AvoidSingularity这两个避免姿势翻车的开关。适合已经能手动把机器人开起来、但还没系统理过坐标系的调试人员也适合做视觉引导、多工位治具搬运的集成工程师。2. 四个坐标系谁跟着谁J1 原点、Tool 0 与工具/Local 坐标系坐标系这件事最容易混的是「哪个是固定的、哪个会跟着关节跑」。把这一点理清楚后面看指令和标志位就只是查表的事。2.1 机器人坐标系与 Tool 0一个固定一个随法兰动机器人坐标系以 J1 法兰中心为原点XYZ 正方向按右手定则确定通常 X 指向前方、Y 指向左侧、Z 指向上方。它在机器人安装完成、原点标定好之后就固定不变是整个系统里唯一的全局参考。所有「绝对」的位置描述最终都要能换算到这个框架里。Tool 0 坐标系同样按右手定则但它以 J6 法兰中心为原点固定在第 6 关节法兰上。这意味着 J2 一抬、J5 一摆Tool 0 的原点和轴向立刻跟着走。很多人第一次看到 Tool 0 会以为它是「工具坐标系」其实它只是一个跟着法兰跑的中间参考法兰上没装工具时Tool 0 就是末端的位置基准装了工具之后真正的作业点在工具尖端那就得再定义工具坐标系。判断方法很简单示教器切到 Tool 0手动旋转 J1如果参考点跟着一起转圈说明它绑定在法兰上切到机器人坐标系旋转 J1坐标值变化但局部轴向不变说明它是固定框架。2.2 工具坐标系与 Local 坐标系两类完全不同的「用户坐标」工具坐标系定义在工具末端原点就是 TCPTool Center Point姿态用 U/V/W 描述。它的典型应用都跟轨迹形状强相关视觉引导抓取时相机算出来的偏移量是相对工具末端的在工具坐标系里直接叠加最省事双抓手取放时两个手爪各建一个工具坐标系同一段路径可以复用涂胶时胶枪的枪嘴方向决定了胶线宽度必须用工具坐标系来控制末端姿态。工具号在 EPSON RC 里一般有 15 组可用配合Tool指令或点数据的/TL标志切换。Local 坐标系有的叫工件坐标系、本地坐标系是机器人坐标系的一个偏移本质是给机器人坐标系加了一层平移和旋转。它解决的是「治具上有一堆同样的工作点」这个问题一块料盘 6×4 阵列如果每个点都按机器人坐标系示教就是 24 组数据建一个 Local 1 把原点放到料盘左下角那 24 个点就变成(i*pitch, j*pitch, 0)的规则计算改料盘尺寸只改pitch一个变量。装配、涂胶、阵列搬运都吃这一套。EPSON RC 通常支持 Local 1 到 Local 15够绝大多数工位用了。要注意的是Local 坐标系不能跨工件复用。换料盘忘了重建 Local机器人就会按旧偏移去抓偏出来的量正好是两块料盘的安装误差。2.3 示教器上切坐标系Jog 模式的隐含影响示教时默认状态下手动移动的方向以机器人坐标系为准按 X 就是沿机器人坐标系 X 正向走切到工具模式后方向以工具坐标系为准按 X 是沿工具末端 X 轴走。这两者只在工具姿态与机器人坐标系对齐时才一致涂胶、斜插装配这类姿态偏转大的场合差异会非常明显。关键在于不同模式下记录的同一个物理位置点数据里的姿态基准是不一样的。所以调点位之前先确认三件事。当前 Jog 模式是机器人坐标系还是 Tool 模式示教器状态栏会显示。程序里那个点当初是用哪种模式示教的看有没有/TL标志。如果中途换过工具坐标系编号旧点数据要重新核对。坐标系原点位置是否随姿态移动典型用途机器人坐标系J1 法兰中心否固定全局定位、安全边界、Home 点Tool 0J6 法兰中心是随 J2/J3/J5 变化法兰末端基准、无工具时的末端参考工具坐标系工具末端 TCP否相对法兰固定视觉引导、多抓手、涂胶、斜插Local 坐标系机器人坐标系的偏移点否固定阵列料盘、多工位治具、装配提示换夹爪、修夹爪、动过法兰连接件之后工具坐标系必须重新标定不能沿用旧参数。3. 点数据格式与 Go/Move/Jump3 的参数怎么写坐标系的定义只是前提落到程序里就是点数据的写法。EPSON 的点数据看起来只有六个数字真正决定机器人怎么动的是括号后面的那串标志位。3.1 XY(x,y,z,u,v,w) 里 U/V/W 的物理含义点数据以机器人为基准描述工具坐标系中心的位置和姿势位置用 X/Y/Z单位 mm姿势用 U/V/W单位度。三者分别对应绕 Z、绕 Y、绕 X 轴的旋转也就是常说的一种欧拉角组合。这里最容易记反U 是绕 Z 转V 是绕 Y 转W 是绕 X 转跟字母顺序不对应。P100 XY(300.000, 0.000, 200.000, 0.000, 0.000, 0.000)X300、Y0、Z200 是 TCP 在基准坐标系里的位置U/V/W 全 0 表示工具姿态与基准坐标系的三轴对齐。实际项目里很少出现全 0因为工具装上法兰后本身就有安装角度标定完工具坐标系以后全 0 的理想姿态往往落在机器人到不了的关节范围内。调试时有个省事的做法先把机器人手动开到目标位置用示教器读出当前的 X/Y/Z/U/V/W直接把数值抄进点数据。比对着图纸算三角变换快得多也不容易算错符号。3.2 标志位 /R /L /TL /J4F0 /J6F0 /0 /A /NF 的读法当点位不是手动示教出来的而是由视觉像素坐标换算、或者用公式算出来的就必须显式指定标志位否则机器人只能猜姿态猜错就是撞机。Go XY(x0, y0, z, u, v, w) /R /A /NF /J6F0 /J4F0 /0含义拆开看标志作用什么时候必须写/R以机器人坐标系为基准数值由绝对定位计算得出时/L以 Local 坐标系为基准阵列料盘、多工位治具/TL以工具坐标系为基准视觉引导、工具方向偏移/J4F0J4 轴旋转量标志归零点需要固定腕部解时/J6F0J6 轴旋转量标志归零点同上影响绕工具轴的转角/0手腕姿态标志限定用右手还是左手解/A手臂姿态标志限定肘上还是肘下解/NF不翻转要求腕部不翻时加J4/J6 的标志位最容易被忽略也最容易出事故。同一个 TCP 位置J6 可以停在 0 度也可以停在 ±360 度程序跑起来都到得了但绕线、气管、相机线缆会多绕一圈跑几十个循环就绞断了。视觉项目里如果像素坐标反算出来的点是新点标准做法是先手动开到目标位置看示教器显示的 J4/J6 实际停在哪个区间把对应的标志抄进去代码里固化成常量不要每次动态判断。不同 RC 版本对标志位的支持范围和默认值略有差异具体以联机帮助里的 Point Data 页面为准尤其是/0和/A的取值含义各家机型的默认解不一样。3.3 Go、Move、Jump3 三条指令的差别三条指令描述的是三种不同的插补方式选错了轻则节拍变慢重则路径撞到障碍。指令插补方式路径形状典型场景Go关节插补PTP不可控各轴各自走空行程、远离工件时的转移Move直线插补CP末端走直线涂胶、贴合、插装等有轨迹要求的动作Jump3三维拱形跳越抬升—平移—下降取放料、跨越治具挡边 三条指令的对照写法 Function move_demo Motor On Power High Speed 30; Accel 30, 30 Go P100 关节插补先把机器人开到起点附近 Move P101 直线插补末端沿直线贴近工件 Jump3 Here :Z(100), P100 :Z(100), P101 抬起 100 后跳越到 P101 FendJump3的语法结构是「离开点、接近点、目标点」三段每段后面可以跟一个高度限制。Here是关键字表示当前姿态位置省得专门为起点做一条点数据。:Z(100)表示把拱顶限制在 Z 方向不超过 100机器人会根据当前姿态自动算出一个既不过冲也不蹭边的抬升量。如果拱顶方向要沿工具坐标系而不是机器人坐标系的 Z 轴写法换成带TL的形式抬升方向跟着工具末端走 沿工具坐标系 Z 轴方向抬升 50mm 后跳越 Jump3 Here -TLZ(50), P102 -TLZ(50), P102-TLZ(50)是沿着工具坐标系 Z 轴的负方向偏移 50mm适合工具是斜装的胶枪、或者末端带长吸杆的场合——按机器人 Z 抬升可能抬不够按工具方向抬才是真正的「远离工件」。这里正负号取决于工具坐标系的 Z 轴指向标定完工具后先用Go单步走一次看方向再放进Jump3里跑连续动作。注意Jump3的拱形轨迹是机器人自己算的障碍物上方空间不够时它不会报错只会贴着走或者绕路。首次使用前把速度降到 10% 单步跑一遍。4. 工具坐标系标定与 TCP 验证从 U0,V0,W180 开始工具坐标系标不准后面所有的点数据都是浮的。标定本身不难难的是验证——很多现场标完直接跑跑到第 20 个循环才发现 TCP 偏了 2mm那时候废品已经堆了一筐。4.1 工具坐标系向导的输入项在 RC 里进 [工具] 菜单打开工具坐标系向导选工具号Tool 1 到 Tool 15需要填四类信息TCP 相对 J6 法兰的平移量 X/Y/Z以及工具姿态 U/V/W。平移量可以用尺子量但更靠谱的是用示教法反算——让工具尖端对准一个固定的基准针从不同姿态去靠多点拟合出 TCP。工具姿态的初始值培训资料给的是U 0, V 0, W 180。这个组合表示工具的 Z 轴与法兰的 Z 轴反向也就是工具朝外伸出的常见状态。不同厂家的夹爪、胶枪安装方向差别很大这个初值只是个起点标完必须用下面的方法验证。4.2 单轴旋转法验证 TCP 精度验证思路很直接如果 TCP 标定准确那么机器人以 TCP 为圆心做单轴旋转时工具尖端在空间里应该纹丝不动。操作步骤如下。把工具姿态设成U 0, V 0, W 180移到基准点上方把尖端对准基准针。单独旋转 U 轴一定角度一般取 180 度观察尖端是否偏离基准针。退回U 0, V 0, W 180的初始姿态。单独旋转 W 轴同时保持 U 和 V 为 0再观察尖端偏移。 验证用围绕工具坐标系做小角度单轴摆动的示例 Function tcp_check Motor On Power Low Speed 5; Accel 10, 10 Go P_home 到位姿态 U0, V0, W180 Move P_offset_u 只改 U其余两轴保持 Wait 1 Go P_home Move P_offset_w 只改 WU/V 保持 0 Wait 1 Go P_home Fend三段中间的两个目标点姿态上只允许一个角度变化其余保持。跑完如果尖端在两次摆动中都回到原位说明 TCP 的平移量标对了如果绕 U 轴摆动时尖端画圈说明 X/Y/Z 中有一项偏了圈的大小就是偏差的半径如果绕 W 轴摆尖端不动、绕 U 轴摆会动多半是工具 Z 向长度错了。这个方法不能同时暴露所有方向上的误差但能快速定位到是哪一项不准。注意验证时把速度压到 5% 以下Power Low也调低。摆动过程中姿势接近奇异点时机器人可能会出现关节突然大幅摆动的情况。4.3 视觉引导像素坐标转过来之后要补什么视觉引导是工具坐标系用得最重的场景。相机给出的是像素坐标经过手眼标定矩阵换算成机器人坐标下的 XY 偏移然后生成一个新点。这个新点不是示教出来的姿态信息是空的所以必须显式补齐标志位。流程一般是先用示教器手动开到目标位置读出示教器上的 X/Y/Z/U/V/W 和目标位置对应的 J4/J6 值把这些作为模板记录下来代码里用模板的姿态部分拼上视觉算出的位置部分。 视觉引导取料位置来自视觉姿态来自模板点 Function vision_pick Real dx, dy Motor On Power High Speed 50; Accel 50, 50 dx VGet(1) 视觉 X 偏移单位 mm dy VGet(2) 视觉 Y 偏移 位置用模板点加上视觉偏移姿态与标志沿用模板 P_target XY(P_tpl.X dx, P_tpl.Y dy, P_tpl.Z, P_tpl.U, P_tpl.V, P_tpl.W) /R /J4F0 /J6F0 Jump3 Here :Z(80), P_target :Z(80), P_target FendP_tpl.X这类写法是从已有模板点里取分量避免手抄数值抄错。/R表示位置基准是机器人坐标系/J4F0和/J6F0锁住腕部解防止机器人为了走最短路径把 J6 转到大角度去。标定本身有误差视觉也有误差两者叠加之后偏 1 到 2mm 很常见。抓手有余量就无所谓做精密插装的话得在抓取前加一次微调动作或者用带浮动补偿的夹爪。5. AutoLJM 与 AvoidSingularity六轴最容易翻车的两处六轴跟四轴最大的差别是同一个 TCP 位置有多组关节解。选解这件事EPSON 给了两个工具AutoLJM和LJMAvoidSingularity。AutoLJM的作用是自动选择关节移动量最小的解。默认情况下机器人可能挑一组关节转角最大的姿势过去看起来走的是「直线」实际上 J4/J6 各转了上百圈气管跟着绞。开启这个功能后Go会自动比对当前姿态和各组解之间的距离选关节变化最小的那一组。程序里也可以显式调用写成Go P100 LJM只对这一条指令生效适合用在那些「每次姿态都不确定」的取放点上。奇异点是另一个坑。六轴的奇异位形主要有三类腕部奇异J5 接近 0 度时 J4 与 J6 轴共线绕工具轴旋转的自由度丢失肩部奇异TCP 落在 J1 轴线附近肘部奇异J3 完全伸直。走到奇异点附近机器人要么某个关节速度瞬间飙高要么直接报错停机。EPSON 的AvoidSingularity参数和LJMAvoidSingularity指令就是用来回避的在Move、Arc这类走轨迹的动作里机器人会在接近奇异位形时自动绕开一小段代价是实际路径与理论直线有偏差。配置上先在 RC 的 [设置]-[系统配置]-[运动] 里找AvoidSingularity相关项打开回避功能并设置回避距离程序里再对关键动作显式加上回避指令。验证方法是把机器人手动开到 J5 接近 0 度的位置单步执行一次Move观察是否报错、末端轨迹偏移多少。偏移量在工艺允许范围内才可以用。现场调试有几条经验值得记。第一Go用于空行程、Move用于有轨迹要求的动作这条边界别越用Move走长距离空行程既慢又容易撞到奇异点。第二每次换工具后除了重标工具坐标系还要重新确认一遍 J4/J6 的标志位工具长度变了腕部解的最优选择也会变。第三Jump3的拱顶高度要多留 20 到 30mm 余量料盘上的工件高度波动、吸盘抓取后的姿态偏移都会吃掉这个余量。第四奇异点报错不要在程序里用异常处理吞掉它出现的位置往往就是轨迹本身有问题的地方改路径比加回避更彻底。本文还有配套的精品资源点击获取
返回列表