Robot Calibration (Laser Tracker)

介绍

工业机器人手臂重复精度高,但精度不高,因此可以通过机器人校准来提高工业机器人的精度。机器人的标称精度取决于机器人的品牌和型号。使用 RoboDK 和机器人校准选项,可以将机器人精度提高 2 到 10 倍。

使用 RoboDK,您可以校准 6 轴机器人手臂,小型机器人的精度可达 0.050 毫米,中型机器人的精度可达 0.150 毫米。校准后可获得的精度在很大程度上取决于机器人型号和您的设置。使用 RoboDK 无法校准 5 轴或 7 轴机器人手臂。

Robot Calibration LaserTracker - 图片 1

校准机器人需要一个测量系统。RoboDK 可用于校准机器人以及生成精确的机器人程序(包括过滤程序和使用 RoboDK 的离线编程引擎)。RoboDK 还可用于通过球杆仪测试或机器人铣削,测试校准前后机器人的精度。

机器人校准可显著提高离线编程(也称离线编程,OLP)机器人的精度。与未经校准的机器人相比,经过校准的机器人具有更高的绝对和相对定位精度。

视频:以下视频通过使用激光跟踪仪测量系统https://www.youtube.com/watch?v=DWSqZAFaJ2I 校准库卡机器人,展示了校准过程。

注:更多信息请点击https://robodk.com/robot-calibration#tab-lt 。

要求

使用 RoboDK 正确执行机器人校准需要以下硬件和软件组件。

1.一个或多个工业机械臂(6 轴机械臂)。

2.测量系统:任何激光追踪仪(如 Leica、API 或 Faro)或光学 CMM(如 Creaform 的 C-Track 立体相机)均可使用。
还应安装与测量系统通信的相应软件。例如,徕卡追踪仪不需要安装额外的软件,另一方面,C-Track 系统需要安装 VxElements 并带有 VxTrack 和 VxModel 选项。

3.必须安装 RoboDK 软件,并且需要获得相应的机器人校准测试许可证。对于网络许可证,需要连接互联网才能检查许可证。安装或更新用于机器人校准的 RoboDK:

a.从下载区下载 RoboDK:https://robodk.com/download。

b.为测量系统设置驱动器(最新的 Leica 追踪仪不需要该驱动器)     
解压缩并将子文件夹复制到    
C:/RoboDK/api/
API 激光跟踪仪:https://robodk.com/downloads/private/API.zip (OTII 和 Radian 追踪仪)。    
Faro 激光跟踪仪:https://robodk.com/downloads/private/Faro.zip (所有 Faro 追踪仪)。        
Leica 激光跟踪仪:https://robodk.com/downloads/private/Leica.zip (所有 Leica 追踪仪)。

4.使用激光追踪仪时,应在机器人工具上安装一个或多个目标。在工具设置过程中,确保避免将目标放置在轴 6 附近。否则将无法正确识别机器人法兰的位置。

注:校准机器人时可选择使用专用工具板。校准机器人时最好使用与制造/生产时相同的工具(相同的工具负载和重心)。校准过程中,可在机器人工具上安装一个 SMR。然后可使用机器人精度对工具(TCP)进行自我校准(确保使用机器人关节校准 TCP,而不是位姿)

离线设置

建议在开始测量前,先在 RoboDK 中创建机器人设置的虚拟环境(离线设置)。本节介绍如何离线准备 RoboDK 工作站。这可以在拥有机器人和追踪仪之前完成,只需使用安装了 RoboDK 的计算机即可。

RoboDK 校准项目示例可从样本站库中下载。

如果已经有离线机器人单元,请跳过本节。参考坐标系和工具坐标系可以近似估算。下图是一个测站示例。

注:"入门 "部分提供了有关创建新 RoboDK 工作站的更多信息。

Robot Calibration LaserTracker - 图片 2

RoboDK 站

RoboDK 工作站是存储虚拟环境工作站和校准信息的地方。工作站保存为 RDK 文件。请按照接下来的步骤,从零开始创建用于机器人校准的机器人工作站(视频预览:https://youtu.be/Nkb9uDamFb4):

1.选择机器人:

a.选择文件➔ 打开机器人资源库。在线资源库将在浏览器中打开。

b.使用筛选器,按名称、品牌、负载、...

c.选择 "打开",机器人就会自动出现在您打开的 RoboDK 项目中。

d.或者,您也可以从http://robodk.com/library 下载机器人文件(.robot 文件),然后用 RoboDK 打开。

Robot Calibration LaserTracker - 图片 3

2.为机器人校准项目做好准备:

a.通过选择程序➔ Add Reference Frame(添加参考坐标系)来添加参考坐标系

i.必须相对于机器人基本坐标系添加一个 "测量参考 "插件。

ii.必须针对刚才添加的 "测量参考 "添加一个 "追踪仪参考"。

iii.可选择在 "测量参考 "坐标系中增加一个 "工具参考",以显示追踪仪看到的工具位置。

提示 1:拖放树中的项目可重建现实世界中存在的依赖关系。例如,必须将追踪仪参照与 "测量参照 "相对应。

提示 2:分别按住 ALT 键和 SHIFT+ALT 键,可近似移动任何参考坐标系或工具坐标系。或者,双击参考坐标系并输入正确坐标。

秘诀 3:在树中选中任何物体时,按 F2 键为其重新命名。

b.添加工具物体(支持 STL、IGES 和 STEP 文件格式),并将其拖放到机器人上(在项目树内),这会自动将物体转换为工具。更多信息,请点击此处

Robot Calibration LaserTracker - 图片 4Robot Calibration LaserTracker - 图片 5

可选:选择程序➔ 添加工具 (TCP),添加您希望在台站中可视化的任何 TCP(检查碰撞或其他)。设置 TCP 的近似值:

i.双击新工具。

ii.设置 TCP 近似值。您可以使用右侧的两个按钮同时复制/粘贴 6 个值。

iii.建议用 "CalibTool id "重新命名校准所用的 TCP,其中 id 为校准目标编号。

Robot Calibration LaserTracker - 图片 6

c.使用菜单 "文件 "➔ "打开... "添加其他 3D CAD 文件(STL、IGES、STEP、SLD......)以建立虚拟工作站模型,或者将文件拖放到 RoboDK 的主窗口。

提示 1:导入测量工作区的三维文件并将其命名为工作区,以便在追踪仪工作区内生成机器人测量结果。如果不想将测量限制在追踪仪工作区内,也可以将工作区设置为不可见。更多信息请参阅下一节。

提示 2:可以选择 CTRL+ALT+Shift+P 来阻止导出已在 RoboDK 中导入的机密 3D 文件。

3.在管理平台中添加校准模块:

a.选择菜单 Utilities➔ 校准机器人

b.选择点(3 DOF)      
如果您拥有可进行位姿测量并与 RoboDK 兼容的激光追踪仪(如 Leica T-Mac 激光追踪仪),则可选择位姿(6 DOF)。

Robot Calibration LaserTracker - 图片 7

然后会出现以下窗口。

Robot Calibration LaserTracker - 图片 8

此窗口可以暂时关闭。您可以随时双击机器人校准站项目打开它。

提示:要只校准机器人的原点(也称为 "掌握 "或 "归位"),请在校准设置中选择校准参数,然后,选择 "掌握/归位 (16)"。否则,请保留为 "完全",这是默认使用的校准类型,可进一步提高精度。

Robot Calibration LaserTracker - 图片 9

4.拯救车站

a.选择文件➔ 保存站台

b.选择文件夹并选择文件名。

c.选择保存。将生成一个新的 RDK 文件(RoboDK 工作站文件)。

您可以随时打开 RDK 文件(双击文件)来恢复台站修改。

总之,必须仔细检查以下几点:

1.校准工具(SMR 目标)应称为 "CalibTool 1"。强烈建议仅使用 1 个工具/目标开始校准。如果校准目标较多,则应相应增加索引。例如,如果有 3 个校准工具/SMR,则应分别命名为 "CalibTool 1"、"CalibTool 2 "和 "CalibTool 3"。

2.测量参考坐标系直接取决于机器人底座。

重要: 如果要恢复轴 1 的原点位置,测量参考坐标系必须与机器人的方向相似。您必须能够使用 3 个点以重复精度极高的方式测量该参考坐标系。更多信息请参见附件 I。

目前,您可以使用这个参考坐标系的估计值。

3.追踪基准应直接连接到测量基准。追踪仪基准必须是激光追踪仪相对于测量基准的大致位置。基准设置将正确调整追踪仪位置。

4.校准站中存在机器人校准项目,您计划进行的所有测量都不会发生碰撞,且激光追踪仪均可看到(为每组测量选择显示)。

5.如果要自动检查碰撞,则应在每个要用于检查碰撞的物体中使用名称标记 "碰撞"。建议使用比校准工具大 25% 左右的工具进行碰撞检查,以安全避免碰撞。

生成校准目标

要成功完成机器人校准,需要进行四组测量:

1.基本设置:需要进行六次(或更多次)移动轴 1 和轴 2 的测量,以便相对于机器人放置校准基准。在校准设置窗口中选择 "显示",机器人将沿序列移动。

2.工具设置:需要进行七次或更多次测量,以校准工具法兰和工具目标(移动轴 5 和 6)。选择 "显示",机器人将按顺序移动。

3.校准测量:校准机器人需要60 次或更多的测量。这些测量可随机放置在机器人工作区内,且不会与周围物体发生碰撞。

4.验证测量(可选):可根据需要使用任意数量的测量来验证机器人的精度。这些测量值仅用于验证机器人的精度,而不是校准机器人。

前两组测量由 RoboDK 自动生成。选择 "显示",机器人将按照顺序进行测量(如下图所示)。如果需要更改顺序,请选择 "测量",然后通过选择 "导出数据 "将校准测量结果导出为 CSV 文件。可使用 Excel 表编辑该文件,然后单击导入数据重新导入。

重要: CSV 文件的第一行必须保持不变。

最后两组测量(校准和验证)可使用名为Robot Calibration LaserTracker - 图片 10 Create measurements 的宏脚本生成。启动机器人校准项目时,该脚本会自动添加到管理平台中。双击宏即可执行。这是一个 Python 程序,可引导用户定义以下设置:

测量次数:要生成的测量次数。默认情况下使用 80 个测量值,因为机器人校准至少需要 60 个测量值。

参考位置:参考位置必须是机器人的一个位置,在这个位置上,工具正对着追踪仪,目标清晰可见。

关节限值:必须提供关节的下限和上限。

笛卡尔极限您可以提供相对于机器人参考坐标系的笛卡尔限值(X、Y、Z 值)。

脚本会自动生成工具正对追踪仪的测量值,并尊重关节和笛卡尔约束。在参考位置上,允许工具围绕面向追踪仪的方向旋转 +/-180 度。此外,关节运动序列不会发生碰撞,并且位于测量工作区内(如果工作区设置为可见)。下图显示了自动序列开始前向用户显示的摘要。序列完成可能需要 5 分钟。

Robot Calibration LaserTracker - 图片 11

如果需要,可以右击创建测量脚本并选择编辑脚本,然后修改算法的其他参数。脚本会自动将用户输入的内容保存为测站参数。您可以通过右键单击测站并选择测站参数来查看、编辑或删除这些设置,如下图所示。

算法精加工完成后,会弹出一条新消息。您可以选择 "校准",将 60 次测量结果用于机器人校准。您可以重新执行相同的脚本,生成另一组测量值用于验证。这一步是可选的,但建议使用 80 个测量值进行验证。

Robot Calibration LaserTracker - 图片 12

Robot Calibration LaserTracker - 图片 13

最后,还可以通过选择导入数据(在测量菜单内)来导入手动选择的配置。您可以将 CSV 或 TXT 文件导入一个 Nx6 值数组,其中 N 是配置的数量。

Robot Calibration LaserTracker - 图片 14

机器人校准设置

需要将激光跟踪仪和机器人连接到计算机,以便自动执行测量程序。此外,建议通过三个点测量参考坐标系,以防移动激光追踪仪(如果要恢复轴 1 的原点,则必须执行此步骤,详情请参见附件 II)。

要求至少连接一个 SMR 目标(建议连接三个或更多),如下图所示。

Robot Calibration LaserTracker - 图片 15            Robot Calibration LaserTracker - 图片 16

必须按顺序完成以下小节,开始测量。

连接至追踪仪

要正确设置与 RoboDK 的通信,需要激光跟踪仪的 IP。请按照以下步骤验证与激光跟踪仪的通信:

a.选择菜单 " 连接➔连接激光跟踪仪 "。打开一个新窗口。

b.设置激光跟踪仪的 IP。

c.点击 "连接 "按钮。

如果连接成功,您将看到一条显示 "就绪 "的绿色信息。可以关闭窗口,连接将保持激活状态。

Robot Calibration LaserTracker - 图片 17

连接到机器人

要正确设置与 RoboDK 的通信,需要机器人的 IP(或 RS232 连接的 COM 端口号)。按照以下步骤验证与机器人的通信:

1.选择连接➔ 连接机器人。将出现一个新窗口。

2.设置机器人的 IP 和端口(如果通过 RS232 连接,则设置 COM 端口)。

3.单击连接按钮。

4.如果出现任何问题,请参阅附录。

注:更多信息请参见程序部分

如果连接成功,您将看到一条绿色信息,显示 "就绪"。如果选择 "获取位置",虚拟机器人的位置应与真实机器人的位置完全一致。或者,选择 "移动关节",将机器人移动到模拟器中的当前位置。您可以暂时关闭此侧窗口,连接将保持激活状态。

Robot Calibration LaserTracker - 图片 18

重要提示:如果选择 "获取位置 "和 "移动关节",虚拟机器人的位置应与真实机器人的位置完全一致。否则,某些机器人设置可能不正确。

测量参考目标

如果计划在校准过程中移动激光跟踪仪,建议测量一个校准参考坐标系。校准参考框架应固定在机器人底座上,这将有助于在校准过程中移动追踪仪或比较两个机器人的校准结果。校准参考坐标系必须由 3 个有形点/巢定义。

重要: 强烈建议不要移动激光追踪仪,跳过此步骤。至少如果您是第一次校准机器人的话。

如果不打算相对于机器人移动追踪仪,或者不需要恢复轴 1 的原点,则可以跳过这一步。在这种情况下,将使用激光追踪仪的基准。

重要:如果要恢复轴 1 的原点,此步骤非常重要。更多信息请参阅附录 III。

每次移动激光跟踪仪时都应遵循这些步骤:

1.选择 Connect➔ Connect Faro 激光追踪仪。或您拥有的相应追踪仪。

2.设置激光跟踪仪的 IP,然后选择连接(如果激光跟踪仪未连接)。

3.如图所示,设置校准基准和追踪仪基准。校准基准也称为 "测量基准"。

4.选择 "设置基本目标"。

Robot Calibration LaserTracker - 图片 19

RoboDK 将通过下图所示的菜单为用户提供指导。程序完成后,激光跟踪仪的位置将相对于校准基准自动更新。

Robot Calibration LaserTracker - 图片 20

Robot Calibration LaserTracker - 图片 21Robot Calibration LaserTracker - 图片 22Robot Calibration LaserTracker - 图片 23

机器人校准

机器人校准分为 4 个步骤。每个步骤都需要进行一组测量。这四个步骤必须依次进行:

1.基础参考测量(3 分钟)。

2.工具参考测量(3 分钟)。

3.校准测量(7 分钟,60 次测量)。

4.验证测量(7 分钟,60 次测量)。

以下视频展示了如何在 20 分钟内完成校准: https://www.robodk.com/robot-calibration#tab-lt。验证测量(步骤 4)并不是校准机器人的必备条件,但它为精度结果提供了一个客观的视角。还可以看到在一个区域校准机器人和在另一个区域验证机器人所产生的影响。

为四组测量中的每一组选择 "测量 "按钮。这将打开一个新窗口,允许进行新的测量,以及以文本文件(csv 或 txt 格式)导入和导出现有测量值。

默认情况下,机器人和测量系统通过连接的机器人自动同步。如果没有机器人驱动器,仍可通过生成机器人程序来执行机器人校准,该程序将在示教器上提示用户进行手动同步。

1.取消选中自动同步。

2.点击 "制作机器人程序 "按钮。

3.使用合适的后处理器生成机器人程序。

Robot Calibration LaserTracker - 图片 24

测量底座

如果在 6 次测量中都对同一目标进行测量,则可以在工具法兰的任何位置执行这些测量。要开始测量,请在 "基础设置 "部分选择 "测量"。将打开以下窗口。然后,选择 "开始测量",机器人将按顺序完成预定测量。

小贴士双击一个测量点,继续从该位置开始测量。

Robot Calibration LaserTracker - 图片 25

测量完成后关闭窗口,测量参考坐标系将相对于机器人基本坐标系进行更新。如果没有选择任何参考坐标系,可以添加一个参考坐标系(选择程序➔ 添加参考坐标系),并将其置于机器人基准参考坐标系之下(在项目树中拖放)。

Robot Calibration LaserTracker - 图片 26

摘要将显示机器人参考坐标系相对于校准参考坐标系的位置和方向([x,y,z,w,p,r] 格式,单位为毫米和弧度)。

测量工具

只要在 6 次测量中测量同一个目标,就可以在工具法兰的任何位置进行 1-6 次测量。之后,每测量一个 TCP,就会为同一个 TCP 增加一个测量插件,在本例中,您有 3 个 TCP,所以总共要进行 6+3=9 次测量。您可以双击一个测量点,继续从该位置开始测量。

和上一节一样:在工具设置部分选择测量。将打开以下窗口。选择 "开始测量",机器人将按顺序完成计划的测量。双击某个测量点,可从该位置继续测量。

Robot Calibration LaserTracker - 图片 27

程序完成后,摘要将显示校准后的 TCP。TCP 的定义(下图中为 "CalibTool 1")将自动更新。如果没有选择任何 TCP,可以添加一个新的 TCP(选择 "程序➔添加空工具"),然后选择 "重新计算"。这时会出现一个新窗口,您必须根据测量的顺序选择工具的 "id"。您可以重复同样的步骤,根据需要更新任意数量的 TCP(本例中为 3 个 TCP)。如果工具名称以数字结尾,则会自动检测到工具的 id。

Robot Calibration LaserTracker - 图片 28

校准

在校准部分选择测量,打开机器人校准测量窗口。然后,选择 "开始测量",机器人将按顺序完成计划的测量。双击某个测量点,即可从该位置继续测量。

Robot Calibration LaserTracker - 图片 29

测量完成后关闭窗口。机器人将自动校准,如果没有问题,它会显示以下信息。

Robot Calibration LaserTracker - 图片 30

最后,绿色屏幕会显示一些有关校准测量的统计数据,以及这些测量的精度提高了多少。

Robot Calibration LaserTracker - 图片 31

验证

您不应该使用校准机器人时的测量结果来验证机器人的精度,因此,建议进行额外的测量来验证精度(对精度结果有一个更客观的观点)。

必须按照相同的校准程序进行验证测量。摘要将显示验证统计数据。更多信息,请参阅 "结果 "部分

结果

校准完成后,您可以通过阅读 RoboDK 提供的统计数据,分析精度的提高情况。要显示这些统计数据,请打开机器人校准窗口(双击图标 "机器人校准")。验证部分的汇总窗口将显示校准前(标称运动学)和校准后(校准运动学)的误差。提供两个台面,一个显示有关位置误差的统计数据,另一个显示距离误差:

位置误差:位置误差是指机器人相对于参考坐标系所能达到的一点精度。

距离误差距离误差通过测量两点间的距离误差获得。将机器人看到的两点之间的距离(通过校准运动学获得)与测量系统看到的距离(物理测量)进行比较。所有组合都会考虑在内。如果进行了 315 次测量,则距离误差值为 315x315/2= 49455。

提供的统计数据包括平均误差、标准偏差 (std) 和最大误差。此外,还提供了平均值加上标准偏差的三倍,这相当于 99.98% 测量的预期误差(如果考虑到误差服从正态分布)。

Robot Calibration LaserTracker - 图片 32

选择 "显示统计",两个直方图将显示校准前后的误差分布,一个直方图显示位置精度,另一个显示距离精度。以下图像与本示例中使用的 315 次验证测量相对应。

Robot Calibration LaserTracker - 图片 33

Robot Calibration LaserTracker - 图片 34

最后,您可以选择 "制作报告",然后将生成一份包含本节信息的 PDF 报告。

程序过滤

校准机器人后,您可以通过不同的方式使用机器人校准:

过滤现有程序:修改程序内的所有机器人目标,以提高机器人的精度。可以手动完成,也可以使用 API。

使用 RoboDK for Offline Programming 生成准确的程序(生成的程序已被过滤,包括使用 API 生成的程序)。

要手动过滤现有程序:将机器人程序文件拖放到 RoboDK 的主屏幕上(或选择文件➔ 打开),然后选择仅过滤。程序将被过滤并保存在同一文件夹中。过滤摘要将提及过滤算法是否存在问题。如果您想在 RoboDK 中模拟程序,也可以选择导入程序。如果程序有任何依赖关系(工具坐标系或基本坐标系定义、子程序......),它们必须位于导入第一个程序的同一目录中。

Robot Calibration LaserTracker - 图片 35

Robot Calibration LaserTracker - 图片 36

将程序导入RoboDK后,您可以在有或没有绝对精度的情况下重新生成程序。在RoboDK的主要精度设置中(工具➔ 选项➔ 精度),您可以决定是否始终使用精确运动学生成程序,是否希望RoboDK每次都询问,或者是否希望使用当前的机器人运动学。右击机器人,激活/禁用 "使用精确运动学 "标签,即可更改当前机器人运动学。如果激活,则会看到一个绿点;如果未激活,则会看到一个红点。

Robot Calibration LaserTracker - 图片 37

Robot Calibration LaserTracker - 图片 38

使用 API 过滤程序

在给定校准过的机器人和机器人程序的情况下,使用RoboDK可以通过调用FilterProgram过滤整个程序:

robot.FilterProgram(file_program)

在资源库的 "宏 "部分,有一个名为 "过滤程序"(FilterProgram)的宏示例。以下代码是使用 RoboDK API 过滤程序的 Python 脚本示例。

from robolink import *     # 与 RoboDK 通信的 API

from RoboDK import *       # 基本矩阵运算

导入 os                 # 路径操作

 

# 获取当前工作目录

CWD= os.path.dirname(os.path.realpath(__file__))

 

# 如果 RoboDK 没有运行,则启动它,并链接到 API

RDK = Robolink()

# 可选:提供以下参数,以便在幕后运行

#RDK= Robolink(args='/NOSPLASH /NOSHOW /HIDDEN')

 

# 获取校准后的工作站(.rdk 文件)或机器人文件(.robot):

# 提示:校准后,右键单击机器人,选择 "另存为 .机器人"。

calibration_file= CWD+ '/KUKA-KR6.rdk'

 

# 获取程序文件:

file_program= CWD+ '/Prog1.src'

 

# 载入 RDK 文件或机器人文件:

calib_item= RDK.AddFile(calibration_file)

if not calib_item.Valid():

    raise Exception("Something went wrong loading "+ calibration_file)

 

# 检索机器人(如果只有一个机器人,则无弹出窗口):

机器人= RDK.ItemUserPick('Select a robot to filter', ITEM_TYPE_ROBOT)

if not robot.Valid():

    raise Exception("未选择机器人或机器人不可用")

 

# 激活精度

机器人.setAccuracyActive(1)

# 筛选程序:这将自动保存一份程序副本

# 根据机器人品牌重命名文件

status, summary= robot.FilterProgram(file_program)

 

如果 status== 0

    print("Program filtering succeeded")

    print(summary)

calib_item.Delete()

RDK.CloseRoboDK()

否则

    print("Program filtering failed! Error code: %i" % status)

    print(summary)   

RDK.ShowRoboDK()

使用 API

以下代码是一个 Python 脚本示例,使用 FilterTarget 命令,利用 RoboDK API 过滤目标(位姿目标或关节目标):

pose_filt,关节 = robot.FilterTarget(nominal_pose, estimated_joints)

如果第三方应用程序(RoboDK 除外)使用位姿目标生成机器人程序,本示例将非常有用。

注意:如果程序是使用 API 自动生成的,则不需要这样做。

from robolink import *     # 与 RoboDK 通信的 API

from RoboDK import *       # 基本矩阵运算

 

def XYZWPR_2_Pose(xyzwpr):

    return KUKA_2_Pose(xyzwpr) # 将 X、Y、Z、A、B、C 转换为位姿

   

def Pose_2_XYZWPR(pose):

    return Pose_2_KUKA(pose) # 将位姿转换为 X、Y、Z、A、B、C

 

# 启动 RoboDK API 并获取机器人:

RDK= Robolink()

机器人= RDK.Item('', ITEM_TYPE_ROBOT)

if not robot.Valid():

    raise Exception("机器人不可用")

 

pose_tcp= XYZWPR_2_Pose([0, 0, 200, 0, 0, 0]) # 定义 TCP

 

pose_ref= XYZWPR_2_Pose([400, 0, 0, 0, 0, 0]) # 定义基准坐标系

 

# 更新机器人 TCP 和参考坐标系

robot.setTool(pose_tcp)

robot.setFrame(pose_ref)

 

# 对 SolveFK 和 SolveIK(正向/逆向运动学)非常重要

robot.setAccuracyActive(False) # 精度可开可关

 

# 在关节空间中定义一个名义目标:

关节= [0, 0, 90, 0, 90, 0]

 

# 计算关节目标的机器人标称位置:

pose_rob= robot.SolveFK(joints) # 相对于机器人基座的机器人凸缘

 

# 计算 pose_target:相对于参考坐标系的 TCP

pose_target= invH(pose_ref)*pose_rob*pose_tcp

 

print('Target not filtered:')

print(Pose_2_XYZWPR(pose_target))

 

joints_approx= joints # joints_approx 必须在 20 度以内

pose_target_filt, real_joints= robot.FilterTarget(pose_target, joints)

print('Target filtered:')

print(real_joints.tolist())

print(Pose_2_XYZWPR(pose_target_filt))


机器人掌握

机器人校准后,通常需要 RoboDK 来过滤程序,因此需要 RoboDK 许可证(基本 OLP 许可证足以在机器人校准后生成精确的机器人程序)。过滤程序是指在考虑所有校准参数(约 30 个参数)的情况下,对程序中的目标进行更改/优化,以提高机器人的精度。

或者,您也可以只校准关节偏置加上基准和工具参考坐标系(4 个关节偏置参数加上基准坐标系的 6 个参数再加上工具坐标系的 6 个参数)。校准的精确度不如使用默认的完整校准,但可能允许在机器人控制器中输入某些参数,而不依赖 RoboDK 生成机器人程序。

若要仅对关节偏置进行校准,则必须选择校准参数(Calib.Param. 按钮,然后选择 Mastering 按钮(在机器人校准菜单内)。

Robot Calibration LaserTracker - 图片 39

Robot Calibration LaserTracker - 图片 40

选择 "制作母点程序 "后会出现一个新窗口。在该窗口中,您可以选择要考虑创建新原点的轴。

Robot Calibration LaserTracker - 图片 41

在机器人校准窗口中将出现 "制作主控程序 "按钮。选择此按钮可生成一个程序,使机器人到达新的原点。将其传输到机器人并执行,然后记录新的原点位置。

重要:恢复轴 1 和轴 6 的原点需要特别注意,更多信息请参见附录

如果机器人和电脑已连接,您可以右击程序并选择发送程序到机器人,自动将程序发送到机器人。否则,您可以选择生成机器人程序,查看原点位置的新关节值。

Robot Calibration LaserTracker - 图片 42

重要提示: 如果更改了机器人的主控参数(原点位置),但仍想使用完整的校准(过滤程序),则必须再次进行校准测量(以及验证(如有))并重新校准。在这种情况下,您可以使用 RoboDK 过滤程序或从头开始生成程序(通过 CAM 文件:APT、G 代码......)。

例如,您必须按照以下步骤更新安川(Motoman)机器人的原点位置。

重要提示: 此步骤不应运行两次。否则,您将设置不同的原点位置。

您必须先运行 "MASTERING "程序,将机器人带到新的原点。

程序进入控制器后,您必须以 "管理模式 "登录(安川(Motoman)机器人的密码通常为 99999999),并且需要进入示教模式。以下图片显示了必须遵循的步骤。

Robot Calibration LaserTracker - 图片 43Robot Calibration LaserTracker - 图片 44

Robot Calibration LaserTracker - 图片 45Robot Calibration LaserTracker - 图片 46

Robot Calibration LaserTracker - 图片 47Robot Calibration LaserTracker - 图片 48

确保更新机器人所有关节的原点位置。

设定原点后,必须删除将机器人带到新原点的机器人程序。

重要提示:此程序不应执行两次。

参考坐标系和工具坐标系

RoboDK 提供了一些校准参考坐标系和工具坐标系的实用程序。可分别从实用工具➔ 校准参考坐标系实用工具➔ 校准工具坐标系访问这些工具。

Robot Calibration LaserTracker - 图片 49

要校准参考坐标系或工具坐标系(也分别称为用户坐标系和 TCP),您需要一些接触 3 个或更多点的机器人配置,这些机器人配置可以是关节值或笛卡尔坐标(在某些情况下带有方向数据)。建议使用关节值而不是笛卡尔坐标,因为这样更容易在 RoboDK 中检查真实的机器人配置(通过复制粘贴机器人关节到 RoboDK 主屏幕)。

重要: 校准机器人时,强烈建议使用关节值而不是笛卡尔坐标。如果使用关节值,则会考虑到机器人的精度,从而更准确地示教 TCP。

工具校准

选择实用工具➔ 校准工具,使用 RoboDK 对 TCP 进行校准。您可以根据需要使用不同方向的任意多个点。点越多、方向变化越大越好,因为我们将获得更好的 TCP 估计值,以及对 TCP 误差的良好估计。

注:更多信息请参见提示部分

以下两个选项可用于校准 TCP:

通过用不同方向的 TCP 接触一个静止点。

用 TCP 触摸平面(如触摸探针)。

如果我们需要校准触发式测头或主轴,建议通过接触平面基准进行校准。这种方法更稳定,不会出现用户误差。

如果 TCP 是球形的,则会计算出球心作为新的 TCP(无需提供球体直径)。

Robot Calibration LaserTracker - 图片 50

用平面校准 TCP 必须遵循以下步骤(如图所示):

1.选择需要校准的工具。

2.选择校准方法➔ "Calib XYZ by plane"。

3.使用 "关节 "选择校准。

4.选择正在使用的机器人。

5.选择用于 TCP 校准的配置数(建议使用 8 个或更多配置)。

6.选择参考平面的估计值。如果参考平面与机器人 XY 平面(来自机器人参考)不平行,则必须在± 20 度范围内添加该参考平面的估计插件。该平面的位置并不重要,重要的是方向。

Robot Calibration LaserTracker - 图片 51

7.您可以开始填写关节值台面。您可以手动填写,也可以使用按钮进行复制/粘贴(如图所示)。您还可以使用 "Get Jx(获取关节值)"按钮,从模拟器中的机器人获取当前关节值。如果您要从与机器人连接的真实机器人中获取关节值,则必须先从机器人连接菜单中选择 "获取当前关节"(有关使用 RoboDK 连接机器人的更多信息,请参阅附图或附录)。强烈建议保留一份用于校准的关节的单独副本(例如文本文件)。

Robot Calibration LaserTracker - 图片 52

8.台面填好后,您将看到新的 TCP 值(X,Y,Z),即窗口末尾的 "校准 TCP"。您可以选择 "更新",新的 TCP 将在 RoboDK 工作站中更新。使用此方法无法找到测头的方向。

9.您可以选择 "显示误差",然后就可以看到每个配置相对于计算出的 TCP(即所有配置的平均值)的误差。如果某个配置的误差大于其他配置,您可以将其删除。

10.您必须手动更新实际机器人控制器中的数值(仅限 X、Y、Z)。如果该 TCP 将用于 RoboDK 生成的程序中,则无需更新机器人控制器中的数值。

参考坐标系校准

选择实用工具➔ 校准参考系以校准参考坐标系。可以使用不同的方法设置参考坐标系。在图中的示例中,参考坐标系由三个点定义:点 1 和点 2 定义 X 轴方向,点 3 定义 Y 轴正方向。

Robot Calibration LaserTracker - 图片 53

重要: 建议在校准参考系之前使用关节目标并激活机器人精度,因为机器人手臂的精度将有助于更好地定义参考系。

注:有关参考坐标系校准的更多信息,请参阅提示部分

附件 I - 轴 1 和轴 6 的母版

如果要恢复轴 1 和轴 6 的主站/原点值,必须特别注意。对于轴 1,这些值与机器人底座坐标系直接相关,而对于轴 6,则与 TCP 参考坐标系直接相关。因此,必须进行外部测量才能正确设置这些值。在校准菜单中选择 "制作主程序 "后,将出现此窗口。

Robot Calibration LaserTracker - 图片 54

要正确设置这两个轴的母带参数,必须遵循接下来的两个程序。

轴 6 参考

您必须使用参考目标来正确设置轴 6 的 "原点 "位置。角度偏置将是为使测量的 TCP(X、Y、Z)与已知 TCP 参考值达到最佳匹配而需要绕工具法兰 Z 轴旋转的角度。测量的 TCP(见下图)是校准程序第二步中测量的 TCP 之一。参考 TCP 是与所使用校准工具的其中一个 TCP 相对应的已知参考。

理想情况下,基准 TCP 必须由坐标测量机相对于工具法兰进行测量(最好是机器人工具法兰的复制品)。或者,也可以使用新的机器人首次测量(校准程序的第二步)TCP,并将一个测得的 TCP 作为基准。使用镙丝钉和/或适当的工具法兰作为基准非常重要,可确保末端效应器始终放置在相同的位置。

Robot Calibration LaserTracker - 图片 55

轴 1 参考

如果我们想将轴 1 与真实的机器人基准框架对齐,那么在开始机器人校准之前,必须正确测量三个基准目标。必须选择这些基准目标,以便找到相对于机器人的参考坐标系。

轴 1 的 "原点 "位置直接取决于三个基座目标以及机器人基座设置。机器人底座设置是第一个校准步骤,通过移动和测量轴 1 和轴 2,将测量系统的底座相对于机器人底座坐标系放置。

按 "设置基本目标 "可以设置测量系统的基本目标(见下图)。这 3 个测量点将定义所需的机器人参考坐标系(前 2 个测量点定义 X 轴,第 3 个点定义正 Y 轴)。您应使用与机器人基座相关的适当参考点,以便此程序可重复精度。

关节 1 的修正角度将是通过 3 个点测量的基准参考点 X 轴与通过移动机器人轴 1 和轴 2 测量的基准参考点之间的夹角。当然,这两个向量之前都是投影到通过触摸树点获得的基准参考的 XY 平面上的。

Robot Calibration LaserTracker - 图片 56

附件 II - 测试 Faro 激光跟踪仪

校准机器人需要使用测量系统对机器人进行测量。要进行这些测量,需要一个能与计算机通信的 Faro 激光追踪仪。通信是通过一个可在控制台模式下运行的驱动器 exe 文件完成的。

例如,Faro 提供了一款名为 "追踪仪实用工具 "的免费应用程序。该应用程序可以初始化激光跟踪仪,并执行一些健康检查等。

要初始化追踪仪,应启动 "Tracker Utilities "应用程序,使用追踪仪 IP 进行连接,然后选择 "Startup Checks"(启动检查)。跟踪仪初始化时,应在初始化前将 1.5'' SMR 目标置于 "原点 "位置。否则,初始化后绿灯将闪烁,测量将无效。

初始化完成后,你将看到 "启动完成 "信息,如下图所示。

Robot Calibration LaserTracker - 图片 57Robot Calibration LaserTracker - 图片 58

如果追踪仪出现问题,可以按 "Health Checks...(健康检查...)"运行一些健康检查。接下来的两张图片分别显示了一次成功的检查和一次失败的检查。有时,重新连接电缆并重启激光跟踪仪后,问题就会迎刃而解。

Robot Calibration LaserTracker - 图片 59Robot Calibration LaserTracker - 图片 60

注:建议不时执行追踪仪自我补偿。该补偿使用追踪仪头部的一些参考点来自动校准测量系统。或者,您也可以运行一些角度精度检查来验证激光跟踪仪的精度。

Robot Calibration LaserTracker - 图片 61

最后,您可以使用 "测量垫 "进行测量。激光跟踪仪可以以 1000 Hz 的速率跟踪目标并测量 XYZ 位置。如果设置为每点 1 个采样点和连续触发,追踪仪每秒将在 CSV 文件中记录 1000 个测量值。

您可以使用该功能测量机器人路径,并使用 RoboDK 的路径精度检查功能检查路径上的精度、速度和加速度。

Robot Calibration LaserTracker - 图片 62