后处理器

后处理器是脱机编程的关键步骤,因为它们可以为特定的机器人控制器生成机2022世界杯8强赛时间器人程序。机器人编程必须遵循供应商特定的编程规则,这些规则在后处理器中实现。机器人后处理器定义了机器人程序必须如何为特定的机器人控制器生成。

从RoboDK仿真到特定机器人程序的转换是由后处理器完成的。每个机器人都连接到一个后处理器,后处理器将定义一个特定的机器人编程风格。程序脱机生成时使用后处理器,如生成程序部分(右键单击程序,然后选择Generate Robot program)。

RoboDK包括许多后处理器,支持超过50个不同的机器人制造商和控制器。支持的控制器列在可用后处理器部分。另外,也可以创建定制的后置处理器或修改现有的后置处理器。所有可用的post处理器都在C:/RoboDK/Posts/文件夹中。

一个后处理器是一个PY文件(每个后处理器都由Python脚本定义)。控件中的文件可以手动添加、修改或删除的帖子RoboDK文件夹。如果您已经提供了一个RoboDK后处理器(PY文件),它应该放在Posts文件夹中,以便它可以从RoboDK中选择。

本节展示如何选择、编辑或创建后处理器,并将其与RoboDK中的机器人一起使用。以下是一个快速的介绍://www.sinclairbody.com/help#PostProcessor

选择后置处理器

您可以通过右键单击机器人或程序轻松地选择一个后处理器。后置处理器的选择是分配给机器人的,因此,改变分配给一个程序的后置处理器将更新分配给同一机器人的所有程序使用的后置处理器。

为机器人选择后处理器:

1.右键单击机器人或程序

2.选择选择后置处理程序

3.从列表中选择一个后置处理器

4.选择OK。

后处理器-图1后处理器-图2

现在应用了更改,可以再次生成程序以查看结果。

作为一种选择,也可以通过以下步骤选择后处理器:

1.打开机器人面板(双击一个机器人)

2.选择参数

3.在Robot品牌框中选择您的后置处理器,如下图所示。

后置处理程序编辑器

您可以使用图形用户界面轻松地修改后处理器设置。后处理器编辑器允许您修改后处理器中定义的特定于机器人控制器的变量。

后期处理编辑器是一个应该启用的插件:

1.选择工具插件

2.双击后置处理程序编辑器插件来启用它(如果没有启用的话)。

后处理器-图3

按照以下步骤打开后期处理器编辑器:

1.选择程序后置处理程序编辑器。

2.选择要自定义的后处理器。

3.选择好吧.将打开一个新窗口,您将看到可以修改的变量。

4.选择将Post Processor保存为…

5.输入名称以保存它。

后处理器-图4后处理器-图5

例如,如果你选择发那科R30iA后置处理器,你会看到上图所示的窗口。

修改后处理器

您可以在RoboDK中修改现有的后处理器,以自定义机器人程序的输出或创建新的后处理器。大多数后处理器不需要编辑,只需改变配置标志即可获得所需的程序输出。

确保你有编辑它的后处理器的源代码。如果您要编辑的后期处理器不可编辑(已编译),请联系我们。

Post处理器必须放在文件夹C:/RoboDK/Posts/,以便他们可以从RoboDK中选择。上一节描述了如何将特定的机器人链接到后处理器。

每个后处理器都是一个PY文件。可以重命名文件或将文件从/复制到C:/RoboDK/Posts/文件夹,以共享不同的post处理器。要删除现有的post处理器脚本,只需删除Posts文件夹中相应的PY文件。

后期处理器可以使用任何文本编辑器或Python编辑器(Python IDLE)进行编辑。使用Python编辑器可以快速调试和评估文件末尾的示例程序。

应该安装Python以正确地测试和使用后处理器(Python默认与RoboDK一起安装)。

按照以下步骤修改现有的后置处理器:

1.选择程序添加/编辑后处理器

2.选择一个现有的后处理器

3.选择好吧.一个文本编辑器将打开和程序。

4.选择调试(F5)预览结果。如有必要,做出改变。根据您使用的文本编辑器,您可能必须选择运行运行模块(F5)代替。

后处理器-图6

另外,也可以手动编辑post处理器:

1.进入post processors文件夹:C: / RoboDK /文章/

2.用Python IDLE打开一个PY文件(右击编辑与IDLE)或其他文本编辑器。

3.进行所需的更改。

4.运行文件以测试结果:选择运行运行模块(默认为F5)来自Python IDLE。

或者,也可以使用文本编辑器编辑这个文件,然后用Python双击它来运行它。

后处理器-图7

修改的例子

本节将向您展示如何对现有的后处理器进行小的更改。大多数后处理器都有一些变量,可以很容易地修改这些变量,以更改或激活特定于供应商的机器人编程特性。

例如,将对现有的KUKA和ABB后处理器进行以下更改:

·生成一个程序,将其子程序作为一个文件,并强制每个程序最多有3000行代码。大程序将被分成小程序并按顺序调用。

·设置一个关节运动,利用关节角度信息生成运动命令。

·覆盖最大速度为500mm /s。即使设定了移动速度更快的程序,在后处理器中速度也会被限制在500mm /s以内。

下面几节将展示如何对文本编辑器进行建议的更改。

在一个文件中生成所有程序

这个示例将向您展示如何更改KUKA KRC4后处理器的默认行为,以在同一个文件中生成主程序及其子程序。

确保后置处理程序编辑器启用插件,并按照以下步骤进行后期处理器修改:

1.选择程序后置处理程序编辑器。

2.选择要定制的后处理器(KUKA KRC4)。

3.选择好吧.将打开一个新窗口,您将看到可以修改的变量,如下图所示。

4.设置包括子程序变量改为True而不是False。

5.选择将Post Processor保存为…

6.输入新的名称保存(默认名称使用修改日期)。

后处理器-图8

您现在应该在RoboDK的Posts文件夹中有一个新的post处理器。现在你可以通过以下步骤来更新你的项目来使用这个新的后期处理器:

1.右击你的机器人。

2.选择选择后置处理程序。

3.选择您创建的新后处理器。

4.再次生成程序以查看结果。

您还可以使用文本编辑器进行这些更改。按照以下步骤更改后处理器的默认Python代码:

1.选择程序添加/编辑后处理器

2.选择您的后处理器。例如,对于KUKA KRC4 selectKUKA_KRC4

3.选择好吧.后处理器将显示在文本编辑器中。

4.设置变量MAX_LINES_X_PROG到3000年。

5.设置变量INCLUDE_SUB_PROGRAMS为True。

后处理器-图9

强制限制速度

这个示例将向您展示如何施加500毫米/秒的速度限制,并在使用RoboDK生成程序时避免使用更高的速度。

在这个例子中,我们假设我们使用的是KUKA的KRC2或KRC4控制器:

1.选择程序添加/编辑后处理器

2.选择您的后处理器。例如,对于KUKA KRC4 selectKUKA_KRC4

3.选择好吧.后处理器将显示在文本编辑器中。

4.定位setSpeed函数定义(def setSpeed

5.添加下面一行,使最大速度为500mm /s。在生成$VEL之前需要添加这一行。以米/秒为单位改变速度的CP输出:
Speed_mms = min(Speed_mms, 500)

后处理器-图10

利用关节角进行运动

本节将向您展示如何修改现有的后置处理器,以使用关节值而不是笛卡尔值强制进行轴向移动。

在本例中,我们将对ABB IRC5机器人控制器应用此更改。

1.找到你的机器人控制器的编程手册。在本例中,我们使用了ABB IRC5快速编程手册。

2.寻找关节的运动指令。在这种情况下,我们称之为ABB的绝对联合运动指令MoveAbsJ.此命令需要jointtarget定义关节轴的变量。

后处理器-图11

3.选择程序添加/编辑后处理器并选择当前用于修改它的后置处理器。如果您目前使用的是一个可定制的后期处理器,它将被默认选中。

4.你应该找找MoveJ后处理器内部的函数。这个函数定义了后处理器生成关节运动命令的方式。另外,RoboDK使用MoveL线性运动。使用Python编程语言,修改添加到程序文件中的行,以提供关节角度信息,如下图所示。

后处理器-图12

5.最后,您可能需要修改后处理器将关节角度或姿势转换为字符串的方式。的函数angles_2_str而且pose_2_str定义如何分别将关节角度和姿态转换为文本。

后处理器-图13

大多数RoboDK后处理器使用关节数据进行关节运动,使用笛卡尔坐标进行直线运动。建议在一系列线性运动的第一个点开始时始终作为关节运动,并指定关节坐标。这就避免了用错误的机器人配置启动程序,从而达到奇异点或轴的极限。

可用后处理器

RoboDK默认提供超过70个后处理器,支持20多个机器人制造商生成机器人程序。一些后处理器可以进一步定制,以生成具有特定格式的程序。

默认情况下,以下后处理器在RoboDK中是可用的:

·ABB RAPID IRC5:用于ABB IRC5机器人控制器

·ABB RAPID S4C:用于ABB S4C机器人控制器

·Adept Vplus:用于Adept V+编程语言

·Allen Bradley Logix5000:用于Allen Bradley Logix5000 PLC

·Aubo:用于Aubo机器人控制器

·clos:用于clos机器人控制器

·Comau C5G:用于Comau C5G机器人控制器

·Denso PAC:用于Denso RC7(及更老的)机器人控制器(PAC编程语言)

·Denso RC8:用于Denso RC8(以及更新的)机器人控制器(PacScript编程语言)

·Dobot:用于教育类Dobot机器人

·斗山:用于斗山协作机器人

·爱普生:用于爱普生机器人控制器

·Fanuc R30iA:用于Fanuc R30iA和R30iB机器人控制器

·发那科R30iA_Arc:发那科弧焊用

·Fanuc RJ3:用于Fanuc RJ3机器人控制器

·GCode BnR:用于B&R机器人控制器

·GSK:为GSK机器人

·HCR:用于韩华机器人控制器

·上银HRSS:用于上银机器人

·现代:用于现代机器人控制器

·KAIRO:用于Keba KAIRO机器人控制器

·Kinova:用于Kinova机器人

·川崎:用于川崎AS机器人控制器

·KUKA IIWA:用于Java的KUKA IIWA日出编程

·库卡KRC2:用于库卡KRC2机器人控制器

·库卡KRC2_CamRob:用于库卡CamRob铣削选项

·库卡KRC2_DAT:用于库卡KRC2机器人控制器,包含DAT数据文件

·库卡KRC4:用于库卡KRC4机器人控制器

·KUKA KRC4_Config:用于KUKA KRC4机器人控制器,每一行都有配置数据

·库卡KRC4_DAT:用于库卡KRC4机器人控制器,包含DAT数据文件

·Mecademic:用于Meca500机器人所需的Mecademic脚本代码

·Mecademic Python:生成一个Python脚本,可以远程控制Meca500机器人。

·三菱:用于三菱机器人控制器

·Motoman/Yaskawa:用于不同的Motoman机器人控制器使用Inform II和Inform III (JBI)

·Nachi AX FD:用于Nachi AX和FD机器人控制器

·欧姆龙:用于欧姆龙/泰克曼机器人控制器

·OTC:代恒OTC机器人控制器

·松下:用于松下PRG程序(需要松下G2PC工具将ASCII文件编译为二进制文件)

·Precise:用于Precise Scara机器人

·Robostar:用于机器人控制器

·新松:用于新松机器人控制器

·Siemens_Sinumerik:用于西门子Sinumerik ROBX机器人控制器

·Staubli VAL3:生成Staubli VAL3机器人程序(CS8控制器及后续版本)。它嵌入了机器人的运动。

·Staubli VAL3_Machining:用于具有Machining HSM选项的Staubli VAL3控制器。

·Staubli S6:用于Staubli S6机器人控制器

·东芝:东芝机器人

·Techman:用于欧姆龙/Techman机器人控制器

·通用机器人:对于UR机器人,它生成线性运动作为姿态目标

·Universal Robots URP:对于UR机器人,它生成一个URP,可以在Polyscope (UR机器人控制器)中加载和修改

·通用Robots_RobotiQ:用于UR机器人,包括支持RobotiQ抓手

·Universal Robots_MoveP:对于UR机器人,它生成线性运动作为MoveP命令

·雅马哈:用于雅马哈机器人

参考

本节包括与后处理器相关的有用参考资料。

以下视频显示了在RoboDK的后处理器的概述://www.sinclairbody.com/help#PostProcessor

后处理器中每种方法的参考文档可以在文档的RoboDK API部分找到://www.sinclairbody.com/doc/en/PythonAPI/postprocessor.html

大多数后处理器使用robodk.py模块://www.sinclairbody.com/doc/en/PythonAPI/robodk.html#robodk.Matrobodk.py模块提供了姿势操作(乘法,逆,…)和不同格式的姿势到欧拉角之间的转换工具。

学习Python编程可以在线获取文档:
https://docs.python.org/3/

当程序生成时,会生成一个预处理的/通用的Python程序,并保存在本地的临时文件夹中。预处理程序与正确的后处理器链接(由用户在RoboDK中选择)。post处理器定义了一个RobotPost类,用于生成所需的代码。

预编译程序是用Python执行的。