Robot Calibration (Laser Tracker)

机器人校准

工业机械臂的重复定位精度高,但绝对精度不足,因此需要通过校准技术提升其精度。机器人的校准精度取决于品牌和型号。借助RoboDK及其校准功能,你可将机器人精度提升2至10倍。

RoboDK支持校准六轴机械臂,校准后小型机器人精度可在0.050毫米以内,中型机器人精度可在0.150毫米以内。实际精度取决于机器人型号和校准配置。注意RoboDK不支持五轴或七轴机械臂的校准。

Robot Calibration LaserTracker - 图片 1

机器人校准需要配备测量系统。RoboDK不仅可用于机器人校准,还能生成高精度机器人程序(包括程序滤波和离线编程引擎)。此外,RoboDK还支持通过球杆测试(BallbarTesting)或机器人铣削来验证校准前后的机器人精度。

机器人校准能显著提升离线编程(OLP)机器人的精度。经过校准的机器人,绝对精度​(AbsoluteAccuracy)和相对精度​(RelativeAccuracy)都优于未校准的机器人。

Video:该视频展示了如何通过激光跟踪仪测量系统校准库卡(KUKA)机器人:https://www.youtube.com/watch?v=DWSqZAFaJ2I

Note:更多信息查看该文章https://robodk.com/robot-calibration#tab-lt。

安装要求

要使用RoboDK进行机器人校准,需满足以下硬件和软件条件。

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

2.测量系统:激光跟踪仪​:如Leica、API或Faro的激光跟踪仪。​光学CMM​:如Creaform的C-Track立体相机。配套软件​:需安装与测量系统通信的软件(例如Leica跟踪仪无需额外软件,而C-Track需安装VxElements并启用VxTrack和VxModel模块)。

3.安装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.校准靶球安装:使用激光跟踪仪时,需在机器人工具上安装一个或多个靶球(如SMR,即球形反射器)。

Note:靶球应避开第6轴附近,否则无法准确识别机器人法兰位置。专用校准工具板可选,但建议直接使用实际生产中的工具(相同负载和重心)进行校准。校准过程中可仅安装一个SMR,并通过机器人关节(而非位姿)自动校准工具中心点(TCP)。

搭建离线环境

在开始实际测量前,建议先在RoboDK中创建机器人工作站的虚拟环境(离线搭建)。本节介绍如何离线准备RoboDK工作站——仅需一台安装RoboDK的电脑即可完成,无需提前准备真实机器人和跟踪仪。

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

​若已有离线工作站,可跳过本节。可先粗略估算参考坐标系和工具坐标系,下图展示了一个示例的工作站:

Note:入门指南会指导如何创建工作站。

Robot Calibration LaserTracker - 图片 2

搭建工作站

RoboDK工作站是存储虚拟环境及校准信息的载体,保存为.rdk文件。以下为从头创建机器人校准工作站的步骤(视频演示:https://youtu.be/Nkb9uDamFb4):

1.导入机器人模型:

a.在菜单栏点击:文件➔打开机器人库。浏览器中会新打开一个在线模型库。

b.通过品牌、负载等筛选条件找到目标机器人...

c.点击Open,机器人就会出现在现有的工作站中。

d.或从http://robodk.com/library下载机器人文件(.robot文件),然后双击文件,会自动在RoboDK中打开。

Robot Calibration LaserTracker - 图片 3

2.准备校准项目:

a.点击:程序➔添加参考坐标系,依次创建:

i.测量基准系(Measurementsreference)​​:相对于机器人基坐标系。

ii.跟踪仪基准系(Trackerreference)​​:相对于上一步的测量基准系。

iii.工具基准系(Toolreference,可选)​​:用于可视化跟踪仪视角下的工具位置。

Tip1:在树形结构中拖拽调整依赖关系(如跟踪仪基准系需依附于测量基准系)

Tip2:按住Alt(平移)或Shift+Alt(旋转)粗略移动坐标系,或双击输入精确坐标。

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

a.导入工具CAD文件(支持STL、IGES、STEP格式),拖拽至机器人下方,这样会自动转换为工具。更多信息点击这里

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

可选:选择程序➔添加工具(TCP),创建TCP,用于碰撞检测:

iv.双击工具。

v.设置初始TCP值(可批量粘贴6轴参数)。

vi.校准工具建议命名为CalibToolid(id为靶球编号,如CalibTool1)。

Robot Calibration LaserTracker - 图片 6

b.通过文件➔打开…​或拖拽添加环境模型(如工作台、跟踪仪视野模型)。

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

Tip2:按Ctrl+Alt+Shift+P,锁定敏感模型防止导出。

3.添加校准程序:

a.选择菜单:实用程序➔校准机器人

b.选择按钮:点(3DOF)

c.如果你的激光跟踪仪(如徕卡T-Mac激光跟踪仪)支持位姿测量且与RoboDK兼容,你可以选择性地启用位姿(6DOF)功能。

Robot Calibration LaserTracker - 图片 7

然后出现以下窗口。

Robot Calibration LaserTracker - 图片 8

目前可以关闭此窗口。你只需双击工作站的机器人校准,即可随时重新打开。

Tip:若仅需校准机器人的原点位置(也称为Mastering或Home),请在校准设置窗口中选择:校准参数,然后选择零点复归。否则,请保持默认校准类型:完整,该类型可进一步提高精度。

Robot Calibration LaserTracker - 图片 9

4.保存工作站

a.选择文件➔保存工作站

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

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

后面可以随时打开RDK文件(双击文件)修改该工作站内容。

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

1.校准工具(SMR标靶)应命名为“CalibTool1”。强烈建议初始校准时仅使用1个工具/标靶。若需使用更多校准标靶,请按相应顺序递增编号。例如,若有3个校准工具/SMR标靶,则应分别命名为:CalibTool1、CalibTool2和CalibTool3。

2.测量参考系直接依赖于机器人基座。

Important:若要恢复1轴的初始位置,测量参考系必须与机器人保持相似的朝向。你必须能够通过3个点以高度可重复的方式测量该参考系。更多信息请参阅附录I。

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

3.跟踪器参考系必须直接连接到测量参考系,且其位置应为激光跟踪器相对于测量参考系的近似值。基座设置将自动修正跟踪器位置。

4.工作站中已加载机器人校准项目,所有待测点需确保无碰撞且能被激光跟踪器可见(对每组测量点启用"显示"功能)

5.如需自动碰撞检测,所有待检物体需标注"collision"标签。建议使用比校准工具尺寸大25%的虚拟工具进行检测以确保安全。

生成校准目标

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

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

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

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

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

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

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

最后两组测量(校准和验证)可使用名为Robot Calibration LaserTracker - 图片 10Create measurements的宏脚本生成。该脚本会在启动校准项目时自动添加到工作站中,双击即可执行。这个Python程序将引导用户配置以下参数:

测量点数:默认生成80个测量点,因校准至少需要60个数据点。

参考位置:必须选择工具正对跟踪仪且靶标可见的机器人位姿。

关节限位:需提供各关节运动的下限和上限。

笛卡尔限位:可设置相对于机器人基坐标系的X/Y/Z轴向运动范围。

脚本将自动生成满足以下条件的测量路径:工具始终朝向跟踪仪,且符合关节/笛卡尔空间约束。在参考位置方向上允许工具绕轴±180°旋转。所有关节运动均确保无碰撞且位于测量工作空间内(若工作空间可见)。下图显示自动序列开始前呈现给用户的参数摘要,整个过程可能耗时5分钟。

Robot Calibration LaserTracker - 图片 11

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

算法精加工完成后,会弹出一条新消息。你可以选择"校准",将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.选择菜单栏选择:连接➔连接Faro激光跟踪器。就会打开一个新窗口。

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

c.然后点击按钮:连接。

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

Robot Calibration LaserTracker - 图片 17

连接机器人

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

1.在菜单栏选择:连接➔连接机器人。软件左边界面出现一个连接机器人窗口。

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

3.单击按钮:连接

4.若出现连接问题,请参阅附录。

Note:更多信息请参见程序章节。

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

Robot Calibration LaserTracker - 图片 18

Important:若在窗口处选择获取位置和关节运动,虚拟机器人的位置应与真实机器人的位置完全一致。否则,某些机器人设置可能不正确。

测量参考目标

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

Important:强烈建议首次校准时不移动激光跟踪仪。

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

Important:如果要恢复轴1的原点,更多信息请参阅附录III。

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

1.在菜单栏选择:连接➔连接Faro激光追踪仪。或其他追踪仪也可以。

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

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

4.选择"设置测量参考系"。

Robot Calibration LaserTracker - 图片 19

在RoboDK中进行激光跟踪仪校准时,软件会通过直观的界面引导用户完成整个流程。程序完成后,激光跟踪仪的位置将相对于校准基准自动更新。

Robot Calibration LaserTracker - 图片 20

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

机器人校准过程

机器人校准分为四个步骤,每个步骤都需要进行一组测量。必须按以下顺序执行:

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次测量均针对同一目标点。启动测量流程:在​​基座设置​​区域点击​​测量,弹出窗口后选择​​开始测量​​,机器人将按预设序列自动同步。

Tip:双击某次测量点可从此位置继续测量。

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的定义(下图中为"CalibTool1")将自动更新。如果没有选择任何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生成的程序已内置校准参数(含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)的宏示例。以下代码是使用RoboDKAPI过滤程序的Python脚本示例。

fromrobolinkimport*#APItocommunicatewithRoboDK

fromrobodkimport*#basicmatrixoperations

importos#Pathoperations

 

#Getthecurrentworkingdirectory

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

 

#StartRoboDKifitisnotrunningandlinktotheAPI

RDK=Robolink()

#optional:providethefollowingargumentstorunbehindthescenes

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

 

#Getthecalibratedstation(.rdkfile)orrobotfile(.robot):

#Tip:aftercalibration,rightclickarobotandselect"Saveas.robot"

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

 

#Gettheprogramfile:

file_program=CWD+'/Prog1.src'

 

#LoadtheRDKfileortherobotfile:

calib_item=RDK.AddFile(calibration_file)

ifnotcalib_item.Valid():

raiseException("Somethingwentwrongloading"+calibration_file)

 

#Retrievetherobot(nopopupifthereisonlyonerobot):

robot=RDK.ItemUserPick('Selectarobottofilter',ITEM_TYPE_ROBOT)

ifnotrobot.Valid():

raiseException("Robotnotselectedornotavailable")

 

#Activateaccuracy

robot.setAccuracyActive(1)

#Filterprogram:thiswillautomaticallysaveaprogramcopy

#witharenamedfiledependingontherobotbrand

status,summary=robot.FilterProgram(file_program)

 

ifstatus==0:

print("Programfilteringsucceeded")

print(summary)

calib_item.Delete()

RDK.CloseRoboDK()

else:

print("Programfilteringfailed!Errorcode:%i"%status)

print(summary)

RDK.ShowRoboDK()

 

通过API过滤目标

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

pose_filt,joints=robot.FilterTarget(nominal_pose,estimated_joints)

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

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

fromrobolinkimport*#APItocommunicatewithRoboDK

fromrobodkimport*#basicmatrixoperations

 

defXYZWPR_2_Pose(xyzwpr):

returnKUKA_2_Pose(xyzwpr)#ConvertX,Y,Z,A,B,Ctoapose

 

defPose_2_XYZWPR(pose):

returnPose_2_KUKA(pose)#ConvertaposetoX,Y,Z,A,B,C

 

#StarttheRoboDKAPIandretrievetherobot:

RDK=Robolink()

robot=RDK.Item('',ITEM_TYPE_ROBOT)

ifnotrobot.Valid():

raiseException("Robotnotavailable")

 

pose_tcp=XYZWPR_2_Pose([0,0,200,0,0,0])#DefinetheTCP

 

pose_ref=XYZWPR_2_Pose([400,0,0,0,0,0])#DefinetheRefFrame

 

#UpdatetherobotTCPandreferenceframe

robot.setTool(pose_tcp)

robot.setFrame(pose_ref)

 

#VeryimportantforSolveFKandSolveIK(Forward/Inversekinematics)

robot.setAccuracyActive(False)#AccuracycanbeONorOFF

 

#Defineanominaltargetinthejointspace:

joints=[0,0,90,0,90,0]

 

#Calculatethenominalrobotpositionforthejointtarget:

pose_rob=robot.SolveFK(joints)#robotflangewrttherobotbase

 

#Calculatepose_target:theTCPwithrespecttothereferenceframe

pose_target=invH(pose_ref)*pose_rob*pose_tcp

 

print('Targetnotfiltered:')

print(Pose_2_XYZWPR(pose_target))

 

joints_approx=joints#joints_approxmustbewithin20deg

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

print('Targetfiltered:')

print(real_joints.tolist())

print(Pose_2_XYZWPR(pose_target_filt))

 

机器人零点复位

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

替代方案是仅校准关节偏移量及基座/工具坐标系(4个关节偏移参数+6个基座参数+6个工具参数)。这种校准精度虽不及完整校准方案,但允许将特定参数直接输入机器人控制器,无需依赖RoboDK生成运动程序。

若只需获取关节偏移量校准,请点击校准参数按钮,再选择零点复位按钮(位于校准参数菜单内)。

Robot Calibration LaserTracker - 图片 39

Robot Calibration LaserTracker - 图片 40

选择建立零点复位程序后,将弹出新窗口:初始化位置,在此可选择需要重新设定零位姿态的关节轴。

Robot Calibration LaserTracker - 图片 41

校准窗口中显示建立零点复位程序按钮。点击该按钮创建引导机器人到达新零位的程序,传输至机器人并执行后,需记录新的零位坐标。

Important:第一轴与第六轴的零点复归需特别注意,附录提供详细说明。

若机器人与PC保持连接,可右键程序选择发送程序到机器人实现自动传输;否则选择生成机器人程序查看新的零位关节值。

Robot Calibration LaserTracker - 图片 42

Important:若修改了机器人主参数(零位坐标)但仍需使用完整校准方案(程序优化),必须重新进行校准测量(含验证步骤)并再次校准。此时可选择使用RoboDK进行程序优化,或通过CAM文件(APT/G代码等)重新生成完整程序。

以安川机器人为例,更新零位坐标需遵循以下步骤:

Important:本流程严禁重复执行,否则将导致零位坐标异常。

首先运行"MASTERING"程序引导机器人到达新零位。

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

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

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

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

零位设定完成后,必须删除用于引导机器人至新零位的程序。

Important:绝对禁止重复执行本流程。

参考坐标系和工具坐标系

RoboDK提供校准参考坐标系和工具坐标系的工具。你可以在菜单栏中找到:实用程序➔定义工具坐标系(TCP)实用程序➔定义参考系(用户框架)

Robot Calibration LaserTracker - 图片 49

要校准参考系(又称用户坐标系)或工具坐标系(又称TCP),你需要让机器人以3个或更多不同姿态接触目标点,这些机器人姿态既可以是关节值也可以是笛卡尔坐标(某些情况下需包含方向数据)。建议使用关节值而非笛卡尔坐标,因为在RoboDK中通过复制粘贴关节值到主界面,更容易验证真实机器人姿态。

Important:当机器人完成校准时,强烈建议使用关节值而非笛卡尔坐标。使用关节值时,系统会综合考虑机器人精度因素,从而实现更精确的TCP示教。

校准工具坐标系

选择实用程序➔校准工具可通过RoboDK进行TCP校准。你可以使用任意数量的接触点,并采用不同姿态。接触点越多且姿态变化越大,TCP的估算结果就越精确,同时也能获得更好的误差评估。

Note:更多信息请参见校准TCP章节。

TCP校准提供以下两种方式:

o以不同姿态使TCP接触同一固定点。

o使TCP接触平面(类似测头)。

如果要校准测头或主轴,建议采用平面参考物接触法。这种方法能有效降低人为操作误差。

若TCP为球形,系统将自动计算球心作为新TCP坐标(无需提供球体直径)。

Robot Calibration LaserTracker - 图片 50

采用平面校准法时(如图所示),请按以下步骤操作:

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

2.选择校准方法➔通过平面校准XYZ。

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

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

5.设定TCP校准使用的姿态数量(建议不少于8组)。

6.估算参考平面方位。若参考平面与机器人XY基准面不平行,需在±20°范围内输入平面方位估值(只需关注平面朝向,位置无关紧要)。

Robot Calibration LaserTracker - 图片 51

7.现在可以开始填写关节值表格。你可以手动输入数据,或通过界面按钮进行复制/粘贴(如图所示)。也可在工具定义窗口点击按钮:获取Px,这样就能从模拟器中读取当前机器人关节值。若要从实际连接的机器人获取关节值,需先在连接机器人窗口点击按钮:获取位置(具体连接方法详见附图或附录说明)。强烈建议单独保存用于校准的关节值副本(例如存为文本文件)。

Robot Calibration LaserTracker - 图片 52

8.当表格填写完成后,窗口底部将显示"已校准TCP"的新坐标值(X,Y,Z)。然后点击"更新"按钮,RoboDK工作站中的TCP数据将同步更新。注意:此方法无法确定测头的方向参数。

9.点击"显示误差"可查看每个姿态相对于计算TCP(所有姿态的平均值)的偏差值。若某组姿态误差明显偏大,可单独删除该组数据。

10.必须手动将新TCP坐标(X,Y,Z)更新至真实机器人控制器中。但若该TCP将用于RoboDK生成的程序,则无需在机器人控制器中更新这些数值。

校准参考坐标系

选择实用程序➔校准参考系(用户框架)可进行坐标系的校准。系统支持多种坐标系设定方式,如图所示案例采用三点定位法:第1、2点确定X轴方向,第3点确定Y轴正向。

Robot Calibration LaserTracker - 图片 53

Important:建议在校准前切换至关节目标模式并启用机器人精度补偿功能,借助机械臂自身定位精度可提升坐标系定义准确度。

Note:更多有关参考坐标系校准的信息,请参阅定义参考坐标系章节。

附件I-零点复位轴1和轴6

在恢复轴1与轴6的零点/原点参数时需特别注意。轴参数直接关联机器人基坐标系,轴6参数则关联工具中心点(TCP)参考系,必须通过外部测量手段精确设定。该设置窗口将在校准菜单选择"生成零点校准程序"后弹出。请按以下两个步骤完成双轴参数校准:

Robot Calibration LaserTracker - 图片 54

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

零点复位轴6

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

理想情况下,参考TCP应通过三坐标测量机(CMM)相对于工具法兰盘进行测量(使用机器人工具法兰盘的复制件最佳)。替代方案是使用新机器人首次执行TCP测量(校准第二步),并将其中一组测量值作为参考基准。必须使用定位销和/或专用工具法兰定位装置,确保末端执行器始终处于同一位置。

Robot Calibration LaserTracker - 图片 55

零点复位轴1

若需使轴1与实际机器人基坐标系对齐,必须在开始校准前精确测量三个基准靶球。这些靶球应按照能建立机器人相对参考系的原则布置。

轴1"原点"位置取决于上述三个基准靶球及机器人基座设置。基座设置是校准第一步,通过移动并测量第1、2轴,将测量系统基坐标系与机器人基坐标系对齐。

点击"设置基准靶球"可配置测量系统基准点(见下图)。这三个测量点将定义目标机器人参考系(前两点确定X轴,第三点确定Y轴正向)。应选用与机器人基座相关的可重复参考点。

第1关节的修正角度,即通过三点测量获得的基坐标系X轴与通过机器人第1、2轴运动测量的基坐标系X轴之间的夹角(两者均投影至三点建立的基坐标系XY平面)。

Robot Calibration LaserTracker - 图片 56

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

机器人校准需通过测量系统采集数据。本操作要求Faro激光跟踪仪与计算机建立通信,通过控制台模式运行的驱动程序(exe文件)实现。

例如Faro提供的免费应用程序"TrackerUtilities"可初始化激光跟踪仪并执行系统诊断。操作流程如下:

1.启动程序后连接跟踪仪IP地址

2.选择"StartupChecks"功能

3.初始化前需将1.5英寸SMR靶球置于"原点"位置(否则初始化后绿灯闪烁且测量无效)

4.完成初始化将显示"启动完成"提示(见下图)

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

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

若出现故障,可点击"HealthChecks..."运行检测程序(下两图分别展示成功与失败状态)。通常重新连接线缆并重启设备可解决问题。

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

Note:建议定期执行跟踪仪​​自补偿校准​​(Self compensation)。该功能通过跟踪仪头部内置的基准点自动修正测量系统误差。

Robot Calibration LaserTracker - 图片 61

通过"Measurepad"功能可进行数据采集。激光跟踪仪能以1000Hz频率追踪靶球并记录XYZ坐标。若设置单点采样+连续触发模式,每秒将生成包含1000组数据的CSV文件。

此功能可用于检测机器人路径精度,结合RoboDK路径分析工具可评估轨迹各点的定位精度、速度及加速度参数。

Robot Calibration LaserTracker - 图片 62