工业机器人手臂具有高重复性,但精度不足,因此可通过机器人校准来提高其精度。机器人的标称精度取决于其品牌和型号。通过校准,可将机器人精度提升2至10倍。
使用RoboDK软件可对六轴工业机器人进行校准,校准后精度可达:小型机器人0.050毫米以内,中型机器人0.150毫米以内。实际校准效果取决于机器人型号和具体配置。需注意,RoboDK不支持五轴或七轴机器人的校准。

机器人校准需配备测量系统。RoboDK不仅可用于机器人校准,还能生成高精度机器人程序(包括程序滤波及离线编程引擎的应用)。此外,RoboDK还支持通过球杆仪测试或机器人铣削实验,对比校准前后的精度变化。
机器人校准能显著提升离线编程(OLP)的精度。经校准的机器人,其绝对定位精度与相对定位精度均优于未校准状态。
Video:我们使用Creaform C-Track 测量系统校准了发那科(Fanuc)机器人,这个视频展示了完整的校准过程:https://www.youtube.com/watch?v=Htpx-p7tmYs
Note:更多信息详见https://robodk.com.cn/cn/robot-calibration#tab-ct
要使用RoboDK进行机器人校准,需配备以下硬件和软件:
1.工业机器人:一个或多个工业机械臂(6 轴机械臂)。
2.光学三坐标测量仪(CMM):任何激光追踪仪(如 Leica、API 或 Faro)或光学 CMM(如 Creaform 的 C-Track 立体相机)均可使用。
需安装与测量系统通信的软件。例如,Leica跟踪仪无需额外软件,另一方面,C-Track系统需安装VxElements(含VxTrack和VxModel模块)。
3.RoboDK软件及校准许可:必须安装RoboDK并持有机器人校准测试的相应许可证。网络许可证需联网验证。安装/更新步骤如下:
a.下载 RoboDK:https://robodk.com.cn/cn/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的资源库中下载校准项目示例。
若已搭建离线工作站,可跳过本节。参考坐标系与工具坐标系可先进行近似估算。下图展示了一个示例工作站:
Note:入门指南章节提供了更多关于创建新RoboDK工作站的内容。

RoboDK工作站(.RDK文件)用于存储虚拟环境配置和校准数据。以下是新建机器人校准工作站的完整流程(视频教程:https://youtu.be/Nkb9uDamFb4)
1.导入机器人模型:
a.选择文件➔ 打开机器人库。在线资源库将在浏览器中打开。
b.使用筛选器,按名称、品牌、负载、...
c.点击Open,机器人就会自动出现在已打开的 RoboDK 项目中。
d.或者,你也可以在https://robodk.com.cn/cn/library下载机器人文件(.robot 文件),然后用 RoboDK 打开。

2.准备校准项目:
a.在菜单栏中选择:程序➔ 添加参考坐标系,然后依次创建。
i.测量基准系(Measurements reference):需绑定至机器人基坐标系(Base Frame)。
ii.跟踪仪基准系(Tracker reference):需绑定至刚创建的测量基准系。
iii.工具基准系(Tool reference,可选):绑定至测量基准系,用于可视化跟踪仪视角的工具位置。
Tip 1:在树形结构中拖拽调整依赖关系(如跟踪仪基准系需依附于测量基准系)
Tip 2:按住Alt(平移)或Shift+Alt(旋转)粗略移动坐标系,或双击输入精确坐标。
Tip 3:在树中选中任何物体,按 F2 键为其重新命名。
b.导入工具CAD文件(支持STL、IGES、STEP格式),拖拽至机器人项下自动转换为工具。更多信息点击这里。


可选:选择程序➔ 添加工具 (TCP),创建TCP,用于碰撞检测:
i.双击工具。
ii.设置初始TCP值(可批量粘贴6轴参数)。
iii.校准工具建议命名为CalibTool id(id为靶球编号,如CalibTool 1)。

c.通过 文件➔打开… 或拖拽添加环境模型(如工作台、跟踪仪视野模型)。
Tip 1:导入测量工作区的三维文件并将其命名为工作区,以便在追踪仪工作区内生成机器人测量结果。如果不想将测量限制在追踪仪工作区内,也可以将工作区设置为不可见。更多信息详见下一节。
Tip 2:按Ctrl+Alt+Shift+P,锁定敏感模型防止导出。
3.添加校准模块:
a.在菜单中选择:实用程序 ➔ 校准机器人。
b.在窗口中选择:点(3 DOF)。
c.如果你的激光跟踪仪(如徕卡T-Mac激光跟踪仪)支持位姿测量且与RoboDK兼容,你可以选择性地启用位姿(6DOF)功能。

然后会出现以下窗口。

目前可以关闭此窗口。你只需双击工作站的机器人校准,即可随时重新打开。
Tip:若仅需校准机器人的原点位置(也称为Mastering/Home),请在校准设置窗口中选择:校准参数,然后选择零点复归。否则,请保持默认校准类型:完整,该类型可进一步提高精度。

4.保存工作站
a.选择文件➔ 保存工作站。
b.选择文件夹,并选择文件名。
c.选择保存。将生成一个新的 RDK 文件(RoboDK 工作站文件)。
你可以随时打开 RDK 文件(双击文件)来修改该工作站内容。
需重点核查以下内容以确保校准准备无误:
1.测量基准系(Measurements reference):必须直接关联至机器人基坐标系(Base Frame)。
Important: 若需校准轴1的零点位置(Home Position),测量基准系的方向必须与机器人基坐标系近似一致。
该坐标系需能通过三点法高重复性标定(详见附录I)。当前阶段可使用估算值。
2.跟踪仪基准系(Tracker reference)必须绑定至测量基准系,其初始位置为跟踪仪相对于测量基准系的估算值。后续基座标定(Base Setup)将自动计算跟踪仪精确位置。
3.校准项目验证:确保工作站中存在“Robot calibration”项目,且所有待测点位:无碰撞风险、在跟踪仪可视范围内。操作:双击校准设置项,逐一点击4组测量项的“显示”按钮进行确认。
4.碰撞检测配置:需参与碰撞检测的3D模型名称必须包含“collision”标签。安全建议:使用比实际工具尺寸大25%的模型进行碰撞校验,预留安全余量。
要成功完成机器人校准,需要进行四组测量:
1.基本设置:需要进行六次(或更多次)移动轴1和轴2的测量,以便相对于机器人放置校准基准。在校准设置窗口中选择"显示",机器人将沿序列移动。
2.工具设置:需要进行七次或更多次测量,以校准工具法兰和工具目标(移动轴5和6)。选择"显示",机器人将按顺序移动。
3.校准测量:校准机器人需要60次或更多的测量。这些测量可随机放置在机器人工作区内,且不会与周围物体发生碰撞。
4.验证测量(可选):可根据需要使用任意数量的测量来验证机器人的精度。这些测量值仅用于验证机器人的精度,而不是校准机器人。
前两组测量由RoboDK自动生成。选择"显示",机器人将按照顺序进行测量(如下图所示)。如果需要更改顺序,请选择"测量",然后通过选择"导出数据"将校准测量结果导出为CSV文件。可使用Excel表编辑该文件,然后单击"导入数据"重新导入。
Important:CSV文件的第一行必须保持不变。
最后两组测量(校准和验证)可使用名为
●测量点数:默认生成80个测量点,因校准至少需要60个数据点。
●参考位置:必须选择工具正对跟踪仪且靶标可见的机器人位姿。
●关节限位:需提供各关节运动的下限和上限。
●笛卡尔限位:可设置相对于机器人基坐标系的X/Y/Z轴向运动范围。
脚本将自动生成满足以下条件的测量路径:工具始终朝向跟踪仪,且符合关节/笛卡尔空间约束。在参考位置方向上允许工具绕轴±180°旋转。所有关节运动均确保无碰撞且位于测量工作空间内(若工作空间可见)。下图显示自动序列开始前呈现给用户的参数摘要,整个过程可能耗时5分钟。

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

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

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

机器人校准需要两个对象:工具对象(由机器人持握)和基座参考对象(固定在工位内)。每次测量时跟踪仪必须能同时看到工具对象和基座参考对象。这些对象在VXelements软件中被称为"模型",它们通过安装在工具和参考框架对象上的一组靶标来定义。跟踪仪通过追踪这些靶标的位置,提供这些对象相对于跟踪仪的参考坐标系测量值。RoboDK将每次测量记录为工具相对于基座参考坐标系的位置,因此即使移动跟踪仪也不会影响测量结果。
必须在工具和参考框架上分别安装一组靶标才能正确跟踪这些对象。下图展示了一些典型配置示例:




必须按顺序完成以下小节才能开始测量。最后,还需要将追踪仪和机器人连接到电脑上,以便自动执行测量程序。
首先需要建立两个模型:工具模型和参考坐标系模型。每个模型都是由一组靶标点(X,Y,Z坐标)构成的集合,这些坐标值是相对于模型自身坐标系(工具坐标系或基座坐标系)定义的。
定义工具模型和基座模型需重复以下步骤:
1.通过选择"连接➔连接Creaform C-Track光学坐标测量机"与VXElements建立连接。
2.点击"连接"并等待状态显示为"Ready"。确保根据VXElements要求完成跟踪仪和HandyProbe测头的校准,同时确认已启用Creaform提供的VXTrack和VXModel软件模块。
3.在RoboDK中选择"基座参考系"。VXelements将自动打开并显示可见的定位靶标。此时应选择所有静态参考点,务必排除可能移动的点。


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

4.在RoboDK中选择"工具参考系",重复上述操作选择构成工具模型的靶标点。

Note:你可以选择将模型导入或导出为文本文件。你应该在文本文件中看到目标为 XYZ 坐标列表。你也可以在 RoboDK 中直观地看到这些点,方法是右键单击 "基本参考 "或 "工具参考 "按钮,然后选择 "显示点"。
Tip:参考坐标系或工具中心点(TCP)可基于物体特征进行精确定位。如需确保工具特征相对于机器人法兰的精确位置(例如使工具Z轴与主轴基准圆柱轴线对齐),建议执行此可选步骤:使用HandyProbe测头在VXelements虚拟会话中采集特征数据。当前模型需设为定位模型,才能基于特征(点、线、面、圆柱、圆锥等)建立参考坐标系。

Note:对于复杂被测物体,可采用MaxShot设备或摄影测量服务建立模型,此方法可获得更高精度。
要在 RoboDK 中正确设置通信,需要追踪仪的 IP。确保 VXelements 未运行,并按照以下步骤验证与追踪仪的通信:
a.菜单栏选择"连接➔连接立体相机"。打开一个新窗口。
b.输入基座模型和工具模型的文本文件(由前文所述步骤生成),这些文件分别定义了参考坐标系和工具坐标系的靶标位置数据
c.点击"连接 "按钮。
d.连接成功后,需再次提供基座和工具模型的文本文件(.txt格式)
Important: 模型的文本文件不会随 RoboDK 测量站一起保存。如果从外部修改了 TXT 文件,下次测量时将自动更新模型。
Note:高级用户可选择使用 HandyProbe 将参考坐标系放置在所需位置。
几秒钟后,如果连接成功,就会看到一条显示"Ready"的绿色信息。可以关闭VXelements 窗口,连接将保持激活状态。如果连接不成功,你必须确保Windows 任务栏或任务管理器中没有 VXelements 进程在幕后运行(选择 CTRL+ALT+DEL 强制停止 "VXelementsApiImplementation "进程),然后在 RoboDK 中选择"连接 "再试一次。

要正确设置与RoboDK的通信,需要机器人的IP(或RS232连接的COM端口号)。按照以下步骤验证与机器人的通信:
1.在菜单栏选择:连接➔连接机器人。软件左边界面出现一个连接机器人窗口。
2.输入机器人的IP和端口(如果通过RS232连接,则设置COM端口)。
3.单击按钮:连接。
4.若出现连接问题,请参阅附录。
Note:更多信息请参见程序章节。
如果连接成功,你将看到一条绿色信息,显示"Ready"。若选择获取位置,虚拟机器人的位置应与真实机器人的位置保持一致。或选择关节运动,那么机器人会移动到模拟器中的当前位置。你可以暂时关闭此侧窗口,连接将保持激活状态。

Important: 若在窗口处选择获取位置和关节运动,虚拟机器人的位置应与真实机器人的位置完全一致。否则,某些机器人设置可能不正确。可能需要调整某些机器人参数(如安川(Motoman)机器人的脉冲/度数比)。
机器人校准分为四个步骤,每个步骤都需要进行一组测量。必须按以下顺序执行:
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.使用合适的后处理器生成程序(需通过示教器手动同步)

测量时可在工具法兰盘任意位置进行,但需确保6次测量均针对同一目标点。启动测量流程:在基座设置区域点击测量,弹出窗口后选择开始测量,机器人将按预设序列自动同步。
Tip:双击某次测量点可从此位置继续测量。

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

摘要将显示机器人参考坐标系相对于校准参考坐标系的位置和方向([x,y,z,w,p,r]格式,单位为毫米和弧度)。
完成这一步后,你就可以在 RoboDK 中实时准确地显示追踪仪相对于机器人的工作空间。
和上一节一样:在工具设置部分选择测量。将打开以下窗口。选择 "开始测量",机器人将按顺序完成计划的测量。双击某个测量点,可从该位置继续测量。

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

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

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

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

禁止使用校准时的测量数据验证机器人精度,必须采集独立验证数据集以获得客观精度评估。
必须按照相同的校准程序进行验证测量。摘要将显示验证统计数据。更多信息,请参阅校准结果章节。
校准完成后,你可以通过阅读 RoboDK 提供的统计数据来分析精度的提高情况。要显示这些统计数据,请打开机器人校准窗口(双击图标 "机器人校准")。校准部分的汇总窗口将显示校准前的误差(标称运动学)和校准后的误差(校准运动学)。提供两个台面,一个显示位置误差统计,另一个显示距离误差:
●位置误差:位置误差是指机器人相对于参考坐标系所能达到的一点精度。
●距离误差距离误差通过测量两点间的距离误差获得。将机器人看到的两点之间的距离(通过校准运动学获得)与测量系统看到的距离(物理测量)进行比较。所有组合都会考虑在内。如果进行了315 次测量,则距离误差值为 315x315/2= 49455。
提供的统计数据包括平均误差、标准偏差 (std) 和最大误差。此外,还提供了平均值加上标准偏差的三倍,这相当于 99.98% 测量的预期误差(如果考虑到误差服从正态分布)。

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


最后,选择 "制作报告",然后将生成一份包含本节信息的 PDF 报告。
校准机器人后,可通过以下两种方式应用校准参数::
●过滤现有程序:自动修正程序中所有目标点坐标以提升运动精度,支持手动操作或API调用
●离线编程生成优化程序:通过RoboDK生成的程序已内置校准参数(含API生成程序)。
要手动过滤现有程序:将机器人程序文件拖放到RoboDK的主屏幕上(或选择文件➔打开),然后选择仅过滤。程序将被过滤并保存在同一文件夹中。过滤摘要将提及过滤算法是否存在问题。如果你想在RoboDK中模拟程序,也可以选择导入程序。如果程序有任何依赖关系(工具坐标系或基本坐标系定义、子程序......),它们必须位于导入第一个程序的同一目录中。


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


在给机器人和机器人程序校准过的情况下,使用RoboDK可以通过调用FilterProgram过滤整个程序:
robot.FilterProgram(file_program)
在资源库的"宏"部分,有一个名为"过滤程序"(FilterProgram)的宏示例。以下代码是使用RoboDKAPI过滤程序的Python脚本示例。
from robolink import * # API to communicate with RoboDK
from robodk import * # basic matrix operations
import os # Path operations
# Get the current working directory
CWD = os.path.dirname(os.path.realpath(__file__))
# Start RoboDK if it is not running and link to the API
RDK = Robolink()
# optional: provide the following arguments to run behind the scenes
#RDK = Robolink(args='/NOSPLASH /NOSHOW /HIDDEN')
# Get the calibrated station (.rdk file) or robot file (.robot):
# Tip: after calibration, right click a robot and select "Save as .robot"
calibration_file = CWD + '/KUKA-KR6.rdk'
# Get the program file:
file_program = CWD + '/Prog1.src'
# Load the RDK file or the robot file:
calib_item = RDK.AddFile(calibration_file)
if not calib_item.Valid():
raise Exception("Something went wrong loading " + calibration_file)
# Retrieve the robot (no popup if there is only one robot):
robot = RDK.ItemUserPick('Select a robot to filter', ITEM_TYPE_ROBOT)
if not robot.Valid():
raise Exception("Robot not selected or not available")
# Activate accuracy
robot.setAccuracyActive(1)
# Filter program: this will automatically save a program copy
# with a renamed file depending on the robot brand
status, summary = robot.FilterProgram(file_program)
if status == 0:
print("Program filtering succeeded")
print(summary)
calib_item.Delete()
RDK.CloseRoboDK()
else:
print("Program filtering failed! Error code: %i" % status)
print(summary)
RDK.ShowRoboDK()
以下代码是一个 Python 脚本示例,使用 FilterTarget 命令,利用 RoboDK API 过滤目标(位姿目标或关节目标):
pose_filt, joints = robot.FilterTarget(nominal_pose, estimated_joints)
如果第三方应用程序(RoboDK 除外)使用位姿目标生成机器人程序,本示例将非常有用。
Note:如果程序是使用 API 自动生成的,则不需要这样做。
from robolink import * # API to communicate with RoboDK
from robodk import * # basic matrix operations
def XYZWPR_2_Pose(xyzwpr):
return KUKA_2_Pose(xyzwpr) # Convert X,Y,Z,A,B,C to a pose
def Pose_2_XYZWPR(pose):
return Pose_2_KUKA(pose) # Convert a pose to X,Y,Z,A,B,C
# Start the RoboDK API and retrieve the robot:
RDK = Robolink()
robot = RDK.Item('', ITEM_TYPE_ROBOT)
if not robot.Valid():
raise Exception("Robot not available")
pose_tcp = XYZWPR_2_Pose([0, 0, 200, 0, 0, 0]) # Define the TCP
pose_ref = XYZWPR_2_Pose([400, 0, 0, 0, 0, 0]) # Define the Ref Frame
# Update the robot TCP and reference frame
robot.setTool(pose_tcp)
robot.setFrame(pose_ref)
# Very important for SolveFK and SolveIK (Forward/Inverse kinematics)
robot.setAccuracyActive(False) # Accuracy can be ON or OFF
# Define a nominal target in the joint space:
joints = [0, 0, 90, 0, 90, 0]
# Calculate the nominal robot position for the joint target:
pose_rob = robot.SolveFK(joints) # robot flange wrt the robot base
# Calculate pose_target: the TCP with respect to the reference frame
pose_target = invH(pose_ref)*pose_rob*pose_tcp
print('Target not filtered:')
print(Pose_2_XYZWPR(pose_target))
joints_approx = joints # joints_approx must be within 20 deg
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生成运动程序。
若只需获取关节偏移量校准,请点击校准参数按钮,再选择校准参数菜单的零点复位按钮。


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

校准窗口中显示建立零点复位程序按钮。点击该按钮创建引导机器人到达新零位的程序,传输至机器人并执行后,需记录新的零位坐标。
Important:第一轴与第六轴的零点复归需特别注意,附录提供详细说明。
若机器人与PC保持连接,可右键程序选择发送程序到机器人实现自动传输;否则选择生成机器人程序查看新的零位关节值。

Important:若修改了机器人主参数(零位坐标)但仍需使用完整标定方案(程序优化),必须重新进行标定测量(含验证步骤)并再次校准。此时可选择使用RoboDK进行程序优化,或通过CAM文件(APT/G代码等)重新生成完整程序。
RoboDK提供校准参考坐标系和工具坐标系的工具。你可以在菜单栏中找到:实用程序➔定义工具坐标系(TCP)、实用程序➔定义参考系(用户框架)。

要校准参考系(又称用户坐标系)或工具坐标系(又称TCP),你需要让机器人以3个或更多不同姿态接触目标点,这些机器人姿态既可以是关节值也可以是笛卡尔坐标(某些情况下需包含方向数据)。建议使用关节值而非笛卡尔坐标,因为在RoboDK中通过复制粘贴关节值到主界面,更容易验证真实机器人姿态。
Important:当机器人完成校准时,强烈建议使用关节值而非笛卡尔坐标。使用关节值时,系统会综合考虑机器人精度因素,从而实现更精确的TCP示教。
选择实用程序➔校准工具可通过RoboDK进行TCP校准。你可以使用任意数量的接触点,并采用不同姿态。接触点越多且姿态变化越大,TCP的估算结果就越精确,同时也能获得更好的误差评估。
Note:更多信息请参见校准TCP章节。
TCP校准提供以下两种方式:
o以不同姿态使TCP接触同一固定点。
o使TCP接触平面(类似测头)。
如果要校准测头或主轴,建议采用平面参考物接触法。这种方法能有效降低人为操作误差。
若TCP为球形,系统将自动计算球心作为新TCP坐标(无需提供球体直径)。

采用平面校准法时(如图所示),请按以下步骤操作:
1.选择需要校准的工具。
2.选择校准方法➔通过平面校准XYZ。
3.使用"关节"选择校准。
4.选择正在使用的机器人。
5.设定TCP校准使用的姿态数量(建议不少于8组)。
6.估算参考平面方位。若参考平面与机器人XY基准面不平行,需在±20°范围内输入平面方位估值(只需关注平面朝向,位置无关紧要)。

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

8.当表格填写完成后,窗口底部将显示"已校准TCP"的新坐标值(X,Y,Z)。然后点击"更新"按钮,RoboDK工作站中的TCP数据将同步更新。注意:此方法无法确定测头的方向参数。
9.点击"显示误差"可查看每个姿态相对于计算TCP(所有姿态的平均值)的偏差值。若某组姿态误差明显偏大,可删除该组数据。
10.必须手动将新TCP坐标(X,Y,Z)更新至真实机器人控制器中。但若该TCP将用于RoboDK生成的程序,则无需在机器人控制器中更新这些数值。
在主菜单选择实用程序➔校准参考系(用户框架),既可校准坐标系。系统支持多种坐标系设定方式,如图所示案例采用三点定位法:第1、2点确定X轴方向,第3点确定Y轴正向。

Important:建议在校准前切换至关节目标模式并启用机器人精度补偿功能,借助机械臂自身定位精度可提升坐标系定义准确度。
Note:更多有关参考坐标系校准的信息,请参阅定义参考坐标系章节。
在恢复轴1与轴6的零点/原点参数时需特别注意。轴参数直接关联机器人基坐标系,轴6参数则关联工具中心点(TCP)参考系,必须通过外部测量手段精确设定。该设置窗口将在校准菜单选择"建立零点复位程序"后弹出。请按以下两个步骤完成双轴的参数校准:

要正确设置这两个轴的母带参数,必须遵循接下来的两个程序。
你必须使用参考目标来正确设置轴6的"原点"位置。角度偏置将是为使测量的 TCP(X、Y、Z)与已知 TCP 参考值达到最佳匹配所需的绕工具法兰 Z 轴的旋转。测量的 TCP(见下图)是校准程序第二步中测量的 TCP 之一。参考 TCP 是与所使用校准工具的其中一个 TCP 相对应的已知参考。
理想情况下,基准 TCP 必须由坐标测量机相对于工具法兰进行测量(最好是机器人工具法兰的复制品)。或者,也可以使用新的机器人首次测量(校准程序的第二步)TCP,并将一个测得的 TCP 作为基准。使用镙丝钉和/或适当的工具法兰作为基准非常重要,可确保末端效应器始终放置在相同的位置。

若需使轴1与实际机器人基坐标系对齐,必须在开始校准前精确测量三个基准靶球。这些靶球应按照能建立机器人相对参考系的原则布置。
轴1原点位置取决于上述三个基准靶球及机器人基座设置。基座设置是校准第一步,通过移动并测量第1、2轴,将测量系统基坐标系与机器人基坐标系对齐。
在激光跟踪仪系统窗口点击"设置测量参考系",可配置测量系统基准点(见下图)。这三个测量点将定义目标机器人参考系(前两点确定X轴,第三点确定Y轴正向)。应选用与机器人基座相关的可重复参考点。
第1关节的修正角度,即通过三点测量获得的基坐标系X轴与通过机器人第1、2轴运动测量的基坐标系X轴之间的夹角(两者均投影至三点建立的基坐标系XY平面)。
