利用 roboguide 离线编程结合力传感器的打磨技术 在打磨行业中,利用机器人打磨技术,需要精准的打磨线路以及合适的打磨力度, FANCU 机器人本体有着很高的重复精度,再加上其离线编程软件 robogude 以及自身研制的 力传感器,可以很好的找到打磨路径,并自动生成机器人程序,加上力传感器控制打磨方向 的力度,可以打磨出符合客户要求的产品。 现就苏州 AVY 打磨得 apple 产品,概述一下整个打磨得调试过程。 1. 选择合适的打磨路径。 下图所示为 AVY 打磨得 appleK18 产品的图 1: 图 1 实际工件图 由于该产品需要对整个面进行全抛光,分析得出,分为两个方面抛光,一个是大平 面,一个是四周带有弧度的圆角。对于大平面,因为是平面,可以手动调试。对于有弧 度的边,利用 3D 软件(PROE,UG 等),将要打磨得地方用一个平面整体切出来,这 样会在边上面留下一条线痕,将其导成 IGS 文件。 2. 根据路径,离线编写程序 在 roboguide 中生成使用的机器人,将上面生成的工件 IGS 文件用 part 的形式导入 roboguide 中,命名为 workpiece,如图所示: 在 roboguide 中生成一个 FIXTURE,命名为 table,将该 table 置于机器人运动范围之 内,在该 table 中的 part 中加入导入的 workpiece,如图 3,图 4 所示: 图 3 添加 table 图 4 添加 workpiece 在 roboguide 中,生成一个 Tool 坐标系,用这个 Tool 坐标系来做 User 坐标系,这个 User 坐标系是后续我们需要在实际机器人中所用的 User 坐标系,为了是将 roboguide 中所 生成的程序坐标与实际生产中的程序坐标对应起来,为此,我们将这个 User 坐标系原点放 在工件的表面正中心,在这里必须注意了,这里使用的 User 坐标系的序号必须与实际中用 的序号是一致的。 首先,在 roboguide 中生成一个 LINK,将 Tool 坐标系点定义到这个 LINK 的最前端, 如图 5 所示,然后打开 roboguide 中的示教器,依次按键操作:MENU(菜单)--SETUP(设 定)—F1TYPE(类型)--Frames(坐标系)进入坐标系设置界面,进入 USER Frame(用户坐标 系),用三点法做用户坐标系,首先找工件的中心点作为坐标系原点(这个中心点可以用 3D 软件做一个标记),然后定义出 X 方向与 Y 方向(在这里,采用默认的世界坐标系中的 X 方向与 Y 方向)。将定义好的用户坐标系激活。 图 5 工具坐标系 定义好用户坐标系之后,就可以利用工件上的轨迹自动生成程序了。 (1) 点击 roboguide 中菜单 Teach—Draw Part Features,会出现一个 Draw 的菜单,用鼠 标点击一下工件 workpiece,选择 Draw 菜单中的 Edge Line,然后沿 workpiece 的切痕画出 轨迹线,最后一点的时候双击一下,就会得出轨迹线并弹出一个对话框,如图 6 所示: 图 6 根据轨迹离线编程 (2) 在 Feature1 workpiece 对话框中,可以修改程序内容与属性,在 General 菜单中, TP Program Name 中可以更改程序的名字,在这里将其改名为 AVY,UFrame 中表明生成程 序中的点的用户坐标系(即上面我们用三点法生成的),UTool 中表明生成程序中的点的工 具坐标系。 Feature Name: workpiece 中特征名字,即所画轨迹线名 TP Program Name: 生成程序的名字 UFrame:程序中用户坐标系 UTool: 程序中工件坐标系 Generate Feature TP Program:点击该按钮,会自动生成 程序 (3) 在 Prog Settings 菜单中,可以修改生成程序中第一个点的运动类型,运动速度的运 动终止类型,可以修改轨迹程序段中运行速度,运行终止类型,修改最后一个点的终止类型。 Feature First Point Mo Type: 第一个点的运动类型 Feature First Point Speed:第一个点的运动速度 Feature First Point Term Type:第一个点的终止类型 Segment Speeds:生成轨迹程序中点的运动速度 Segment Term Types:生成轨迹程序中点的终止类型。 Feature Last Point Term Type:程序中最后一个点的终 止类型 (4) 在 Pos Defaults 中,可以修改生成程序中机器人的姿态,即改变机器人的 TCP 运行 方向,可以修改生成点的运动类型,是否考虑机器人速度等。 1. Tool Frame Axis 工具坐标系轴 Normal to surface: TCP 中与工件表面法向的坐标系 Along the segment: 沿着轨迹线 TCP 前进的方向 Across the segment:与轨迹线交叉的 TCP 方向 2. Orientation Handling TCP 运行方向 Fixed tool spin keep normal: TCP 方向固定,保持法向垂直 Change tool spin along path, keep normal: TCP 方向随轨迹 方向改变,保持法向垂直 No orientation changes, disregard normal:没有方向改变,不 考虑法向垂直 Straight Line Detection:轨迹检测生成程序直线的程度 Circular Move Detection:检测轨迹生成程序圆弧指令程度 当这些设置都更改好了之后, (5)在 Pos offsets 选项中,可以使程序整体偏移,在这里,可以对程序的轨迹进行各个方 向的平移与旋转。 1. Translations Offsets 平移偏移 Translations relative to default position: 相对于默认的位 置进行平移。 Translations relative to segment:相对于轨迹线的平移。 Translate: Normal to Surface Axis(z):相对于面的法线方 向平移(Z 方向) Translate: Along Segment Axis(x):相对于面的 x 方向平移 (x 方向) Translate: Normal to Surface Axis(y):相对于面的 y 方向平 移(Z 方向) 2. Orientation Offsets 旋转偏移 Rotations relative to surface:相对于表面旋转 Rotations relative to normal:相对于法线旋转 Use the robot’s current orientation:使用机器人当前的 方向 Rotate: Normal to Surface Axis (RZ):面上的法线旋转 Rotate: Along segment Axis (RX):沿着轨迹线的 X 轴方向 Rotate: Across Segment Axis(RY):与轨迹线交叉的 Y 轴方向 3. When Applying the offset 当使用偏移的是时候 Translate first , then rotate: 首先考虑平移,然后旋转 Rotate first, then translate: 首先考虑旋转,然后平移 完成上面的设置就可以回到 General 菜单中,点击 Generate Feature TP Program 生成程 序即可。然后在 TP 程序中即可看到生成的 AVY 程序。将该程序导入到实际的机器人控制 器内。 3. 实际机器人做用户坐标系,匹配离线程序。 利用 roboguide 生成的离线程序并不能在实际当中直接应用,必须做出相应得 User 坐标 系,才能使之对应上,该 User 坐标系必须与上面 roboguide 中生成程序的 User 坐标系序号 必须相同。 首先通过机器人做一个 Tool 坐标系,然后通过该工具坐标系来做用户坐标系,具体方 法同上面 roboguide,在做这个 User 坐标系的时候,要确保该 User 坐标系的原点与上面 roboguide 中相同(即在工件的中心) ,方向也要一致,这样生成的离线程序才可以使用。 实际机器人的 Tool 坐标系,做在机器人打磨头的表面(与工件表面接触的那个点)。 在这里,如果是圆形的打磨头,将 TCP 中心置于磨头中心靠后一点位置在打磨有圆角的工 件时,效果会比放在中心点效果要好(这个是经过实验的经验)。 4. 修改离线生成的程序,并设置力传感器 离线编写好的程序只是一个初步的程序,还要加入力传感器的语句。在这里先对力传 感器进行设置。 (1)设置力传感器 在 TP 上按 DATA—F1(type)--Force Ctrl,进入到 Force Ctrl Schedule 中,光标移到需 要设置的序号中,按 F3(DETAL),再按 F4(choice)选择力传感器应用类型,在这里选择 Contouring(打磨),系统会提示 Set default data,选择 F4(yes),即会弹出力传感器设置菜 单,如图所示, 比 Push direction:力传感器计算压力的方向 Contact F Threshold:力传感器起作用的临界力,一般 比下面的 Contouring F 力要小 Approach Velocity:接近点的速度 Control Frame:力传感器控制的应用坐标系 User Frame No:程序使用的用户坐标系 Tool Frame No:程序中使用的工具坐标系 Contouring Force:打磨中压力的大小 Push Dist Limit:压力方向调整的距离极限 Force Control Gain:力反馈的频率 在这里,机器人打磨,磨具是放在机器人手臂上,所以 Control Frame 选用工具坐标系(如 果是工件放在机器人手臂上,而磨具固定的话,则选用用户坐标系),因为我用的工具坐标 系是用 6 点法做的,将 Z 的正方向改为沿法兰盘垂直向上了,所以这里的 Push Direction 为 -Z,在 Force Control Gain 中,点 Detail,将第二项 Contour Impedance 的第一个 Master Freq 的值改为 1Hz(这个是日本那边告诉的经验值),一般是按照 0.25 的增幅来调节的,一旦看 到力回馈有轻微抖动,这个值就不能再增加了。这个是力回馈的检测频率。 在上面的 Force Ctrl/BASIC 界面中,点击 F5(PERFORM),进入 Force Ctrl/Perform 界面, 改动第 9 项 Pushing Dir. Velocity 值,该参数表示压力方向的调整速度,将其改为 10-50mm/sec 之间的值。 这样,力传感器的参数就基本上调好了。 在 Force Ctrl Schedule 中,移动光标到另外一个新的序号上,按 F3(DETAIL),再按 F4(choice)选择力传感器应用类型,在这里选择 Contouring End,系统会提示 Set default data, 选择 F4(yes),即生成一个打磨应用结束列表,这个列表并不需要设置。 (2)在程序中加入力传感器指令 在生成的 AVY 程序中,在程序中开始接触上的那一个点之后,加入力传感器应用指令, 点击 INST 中 3(Force Control),然后选择 1(FORCE CTRL),写入上面设置好的力传感器序 号,然后在程序结束的那个点之后,同样点击 INST 中 3(Force Control),然后选择 1(FORCE CTRL),写入上面设置好的力传感器结束序号,这样,整个打磨过程中力传感器都可以得到 应用了。 5. 经验与总结 通过上面的步骤,可以大致编写出应用程序用到实际当中去,但是有可能会出现一些问 题,现在就我遇到的问题,大致总结一下。 (1) 如果是对一个工件的圆周进行打磨(例如上面工件的四边),且在 Orientation Handling TCP 中选用了 Change tool spin along path, keep normal 选项,这样的话,生 成的程序会出现 TCP 一个 360 度的翻转,如果力传感器压力方向是采用机器人 X 轴 或 Y 轴方向的话,需要靠机器人 J4 与 J5 轴来翻转,而我们机器人的 J4 与 J5 轴是 有限位的,这样的话,我们只能采用机器人的 Z 轴方向来打磨。 (以上情况 ABB 机 器人无这个情况,就现场我观察,他们的机器人在旋转的时候,其 J4,J5 轴没有旋转, 我暂时还没弄情况是什么原因,这个有待下一步技术讨论) (2) 同上面,如果选用了 Z 轴方向,因为生成的程序中 J6 需要旋转 360 度,生成程序中, 初始点的 J6 轴角度加上 360 度可能会导致限位报警,所以要解决一下,如果采用的 是 M16iB 或者 M20iA 等 J6 限位可以更改扩大的机器人,可以更改一下 J6 轴限位大 小,另外一个方法就是将初始点的 J6 反向旋转 360 度(因为这个只与 JOINT 坐标 系有关系,与 XYZ 坐标系没有关系) ,后面点因为是用 L 直线来走的,不受影响, 就不会出现限位的问题。 (3) 在生成程序中,加入 ACC 指令,将 ACC 调小,这样会使机器人更加平稳,打磨出 来的效果会比较好。 (4) 程序中加入压力传感器指令,要在点接触到工件那个点之后加入,如果加在点接触 之前,会出现被压死的现象,结束点就在打磨最后的那个点后面加上即可。 (我们从 日本实验室借过来的力传感器无上述现象) (5) 在打磨工艺中,上述的 Pos Defaults 中, Orientation Handling TCP 一般选择 Change tool spin along path, keep normal,在 Pos offsets 选项中,将 Normal to Surface Axis(Y 轴) 偏向-5 度左右,然后现实中机器人 TCP 设置在打磨头中心靠后的区域(加入沿 TCP, x 轴方向前进),打磨出来的效果会好一些。 (6) 生成程序打磨四边的前进方向最好与磨头旋转方向一致(例如都是顺时针方向),否 则,如果使用的压力过大,且方向相反,会产生一个大的反作用力,致使磨头旋转 不畅。 (7) 实际当中所做的用户坐标系可能会有些不准,如果打磨出来的效果发现四边或者四 个拐角的地方差距很大,需要重新调整用户坐标系。 上面所述就是这次 AVY 离线编程的大体内容,在这里,由于是要将软件当中的程序与 实际应用匹配起来,通过做用户坐标系的方法会带来一些误差。由于本人仅仅对这个方面的 工件进行了测试,经验有限,在具体应用中,上面所述的方法会有一些不同设置与改变,希 望大家能够积累更多的经验,不断改进我们的方法,使我们的技术更加成熟与完善,谢谢!! 2010.3.29 周兵