Robot Calibration (Optical CMM)

介绍

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

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

Robot Calibration Creaform - 图片 1

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

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

视频:以下视频通过使用 Creaform C-Track 测量系统 https://www.youtube.com/watch?v=Htpx-p7tmYs 校准发那科(Fanuc)机器人,展示了校准过程。

注:欲了解更多一般信息,请访问 https://robodk.com/robot-calibration#tab-ct。

要求

使用 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.为测量系统设置驱动器(Creaform 光学 CMM 不需要)。  
解压缩并复制相应文件夹:
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 追踪仪)。       
到文件夹:C:/RoboDK/api/

离线设置

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

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

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

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

Robot Calibration Creaform - 图片 2

RoboDK 站

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

1.选择机器人:

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

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

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

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

Robot Calibration Creaform - 图片 3

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

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

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

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

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

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

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

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

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

Robot Calibration Creaform - 图片 4Robot Calibration Creaform - 图片 5

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

i.双击新工具。

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

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

Robot Calibration Creaform - 图片 6

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

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

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

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

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

b.选择位姿(6 DOF)

Robot Calibration Creaform - 图片 7

然后会出现以下窗口。

Robot Calibration Creaform - 图片 8

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

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

Robot Calibration Creaform - 图片 9

3.拯救车站

a.选择文件➔ 保存站台

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

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

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

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

1.测量参考 "参考坐标系应直接连接到机器人基本参考坐标系。

重要提示: 如果要恢复轴 1 的原点,测量参考坐标系必须与机器人的方向相似。更多信息请参见附件 I。

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

2.追踪基准应直接连接到测量基准。追踪仪基准必须是追踪仪测量设备相对于测量基准的估计位置。基础设置将找到追踪仪的准确位置。

3.管理平台中存在 "机器人校准 "项目,您计划进行的所有测量都不会发生碰撞,追踪仪也能看到(双击校准设置,选择显示四组测量中的每一组)。

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

生成校准目标

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

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

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

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

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

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

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

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

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

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

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

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

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

Robot Calibration Creaform - 图片 11

算法完成后将弹出新消息。选择校准,将 60 次测量结果用于机器人校准。您可以重新执行相同的脚本,生成另一组测量值进行验证。此步骤为可选步骤,但建议使用 60 次以上的测量值进行验证。

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

Robot Calibration Creaform - 图片 12

Robot Calibration Creaform - 图片 13

最后,还可以通过选择导入数据(在测量菜单内)来导入手动选择的配置。您可以以 Nx6 矩阵形式导入 CSV 或 TXT 文件,其中 N 为配置数。

Robot Calibration Creaform - 图片 14

机器人校准设置

需要两个物体:一个工具物体(由机器人手持)和一个基础参考物体(在机器人单元中静止)。每次测量时,追踪仪必须能够看到工具物体和基准参考物体。这些物体也被称为 "模型"(在 VXelements 中),它们是由附加在工具和参考坐标系物体上的一组目标定义的。追踪仪会追踪这些目标的位置,提供这些物体的参考坐标系作为相对于追踪仪的测量值。RoboDK 将每次测量结果作为工具相对于基准参考坐标系的位置,因此可以移动追踪仪而不改变测量结果。

需要在工具和参考坐标系上分别附加一组目标,以便正确跟踪这些物体。下面的图片展示了一些适当设置的示例:

Robot Calibration Creaform - 图片 15Robot Calibration Creaform - 图片 16

Robot Calibration Creaform - 图片 17Robot Calibration Creaform - 图片 18

必须按顺序完成以下小节才能开始测量。最后,还需要将追踪仪和机器人连接到电脑上,以便自动执行测量程序。

参考坐标系探测

首先,需要两个模型:一个是工具模型,一个是代表参考坐标系的模型。一个模型是一个物体,定义为相对于模型参考(工具或基准参考坐标系)与目标相对应的点(X、Y、Z 坐标)列表。

您必须按照这些步骤操作两次,才能定义工具和基础模型:

1.选择连接➔ 连接 Creaform 的 C-Track 光学坐标测量机,与 VXElements 连接。

2.选择连接,等待连接就绪。    
如果 VXElements 要求校准,请务必校准追踪仪和 HandyProbe。此外,请确保有 Creaform 提供的 VXTrack 和 VXModel 软件选件。

3.在 RoboDK 中选择基准参照。VXelements 将打开并显示可见的定位目标。您应选择静态点。确保选择代表静态参考点的所有点。不应包括可移动的点。

Robot Calibration Creaform - 图片 19Robot Calibration Creaform - 图片 20

提示:按住 CTRL 键可选择一组目标。

Robot Calibration Creaform - 图片 21

4.在 RoboDK 中选择工具参考,然后选择代表工具模型的点,重复此操作。

Robot Calibration Creaform - 图片 22

注:您可以选择将模型导入或导出为文本文件。您应该在文本文件中看到目标为 XYZ 坐标列表。您也可以在 RoboDK 中直观地看到这些点,方法是右键单击 "基本参考 " "工具参考 "按钮,然后选择 "显示点"。

提示: 参照物或 TCP 的参考坐标系可以相对于物体的某些特征放置在特定位置。此步骤为可选步骤,但如果需要相对于机器人法兰精确放置 TCP 特征,则建议使用此步骤。例如,您可以将工具的 Z 轴沿着用作主轴轴的参考圆柱体精确放置。

要正确移动物体的参考坐标系,必须使用 HandyProbe 并将这些特征带入虚拟 VXelements 会话。所使用的模型必须定义为定位模型,以便根据该模型对特征进行探测。可以探测点、线、平面、圆柱、圆锥,并根据这些特征定义参考坐标系。

Robot Calibration Creaform - 图片 23

:如果要跟踪的物体非常复杂,可以使用 MaxShot 设备或摄影测量服务来正确定义物体模型。这一程序可能会带来更好的精度结果。

连接到追踪仪

要在 RoboDK 中正确设置通信,需要追踪仪的 IP。确保 VXelements 未运行,并按照以下步骤验证与追踪仪的通信:

a.选择菜单 "连接➔连接立体摄像机"。打开一个新窗口。

b.输入 "基本模型 "和 "工具模型 "文本文件(在上一节中生成)。它们分别是定义参考坐标系和工具坐标系的目标位置。

c.选择 "连接 "按钮。

d.连接成功后,必须以文本文件(.txt)的形式提供基础模型和工具模型。

重要: 模型的文本文件不会随 RoboDK 测量站一起保存。如果从外部修改了 TXT 文件,下次测量时将自动更新模型。

注:高级用户可选择使用 HandyProbe 将参考坐标系放置在所需位置。

几秒钟后,如果连接成功,就会看到一条显示 "就绪 "的绿色信息。可以关闭 VXelements 窗口,连接将保持激活状态。如果连接不成功,您必须确保 Windows 任务栏或任务管理器中没有 VXelements 进程在幕后运行(选择 CTRL+ALT+DEL 强制停止 "VXelementsApiImplementation "进程),然后在 RoboDK 中选择 "连接 "再试一次。

Robot Calibration Creaform - 图片 24

连接机器人

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

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

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

3.单击连接按钮。

4.如有任何问题,请参阅附录。

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

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

Robot Calibration Creaform - 图片 25

重要提示: 如果选择 "获取当前关节 "和 "移动到当前关节",虚拟机器人的位置应与真实机器人的位置完全一致。如果情况并非如此,则某些机器人设置可能不正确,可能需要调整某些机器人参数(如安川(Motoman)机器人的脉冲/度数比)。

机器人校准

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

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

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

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

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

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

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

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

1.取消选中自动同步。

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

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

Robot Calibration Creaform - 图片 26

测量底座

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

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

Robot Calibration Creaform - 图片 27

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

Robot Calibration Creaform - 图片 28

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

完成这一步后,您就可以在 RoboDK 中实时准确地显示追踪仪相对于机器人的工作空间。

测量工具

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

Robot Calibration Creaform - 图片 29

程序完成后,摘要将显示校准后的 TCP(位置和方向)。TCP 的定义(下图中为 "主轴")将自动更新。如果没有选择任何 TCP,可以添加一个新的 TCP(选择 "程序➔添加空工具"),然后选择 "重新计算"。

Robot Calibration Creaform - 图片 30

校准

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

Robot Calibration Creaform - 图片 31

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

Robot Calibration Creaform - 图片 32

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

Robot Calibration Creaform - 图片 33

验证

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

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

结果

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

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

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

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

Robot Calibration Creaform - 图片 34

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

Robot Calibration Creaform - 图片 35Robot Calibration Creaform - 图片 36

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

程序过滤

校准机器人后,您有两种选择,可使用校准后机器人的绝对精度生成程序:

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

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

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

Robot Calibration Creaform - 图片 37

Robot Calibration Creaform - 图片 38

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

Robot Calibration Creaform - 图片 39

Robot Calibration Creaform - 图片 40


使用 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 Creaform - 图片 41

Robot Calibration Creaform - 图片 42

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

Robot Calibration Creaform - 图片 43

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

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

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

Robot Calibration Creaform - 图片 44

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

参考坐标系和工具坐标系

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

Robot Calibration Creaform - 图片 45

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

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

工具校准

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

注:更多信息请参见小贴士部分

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

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

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

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

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

Robot Calibration Creaform - 图片 46

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

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

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

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

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

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

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

Robot Calibration Creaform - 图片 47

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

Robot Calibration Creaform - 图片 48

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

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

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

参考坐标系校准

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

Robot Calibration Creaform - 图片 49

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

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

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

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

Robot Calibration Creaform - 图片 50

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

轴 6 参考

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

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

Robot Calibration Creaform - 图片 51

轴 1 参考

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

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

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

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

Robot Calibration Creaform - 图片 52