工业机器人具有很高的可重复性,但不准确,因此可以通过机器人校准来提高工业机器人的精度。如果不进行校准,则机器人精度在很大程度上取决于机器人的品牌和型号。通过机器人校准,您可以准确计算工具中心点(TCP)并校准机器人运动学参数。机器人精度可以提高2到10倍。
RoboDK可用于校准机器人,工具中心点(TCP)并生成准确的机器人程序。RoboDK也可以用于测试机器人的准确性。
离线编程机器人(也称为离线编程或OLP)时,机器人校准可以显着提高机器人精度。
自动机器人校准解决方案可以为球形或圆锥形几何形状的工具准确地校准机器人和工具中心点(TCP)。
1.球形工具➔工具的中心已校准
2.锥形工具➔工具的尖端已校准
需要安装RoboDK自动校准应用程序,并具有兼容的传感器才能执行自动机器人校准。
确保具有以下内容:
1.一个或多个工业机器人手臂。
2.兼容的百分表(也称为LVDT或线性量规)。
3.必须安装RoboDK软件,并且必须具有用于自动机器人校准的适当许可证。
4.您需要兼容机器人驱动程序用于您的机器人控制器。
5.安装自动校准RoboDK应用程序:
a.下载RoboDK应用进行自动校准
b.双击该文件以打开RoboDK
c. 选择工具➔应用并双击“自动校准”以查看右侧的“自动校准”工具栏和菜单。
注意:RoboDK Apps需要启用App Loader插件。双击rdkp文件时,应自动加载此插件。如果不是这种情况,则可以在工具中加载App Loader插件➔加载插件。
注意: 自动校准菜单和工具栏可能会自动显示。您可以通过选择“工具”来显示或隐藏“自动校准应用程序”(或其他应用程序)➔应用程式清单并双击应用程序的“启用”标签。
要使用线性应变计传感器校准机器人,我们需要将机器人加载到RoboDK中,并确保传感器和机器人已连接。我们可以选择通过添加对象和工具的3D模型对单元进行建模。这将允许自动避免碰撞。
1.加载机器人:
a.选择文件➔打开在线图书馆。在线图书馆将显示在RoboDK中。
b.使用过滤器查找机器人。
c. 选择下载以自动将机器人加载到您的RoboDK工作站中。
d.或者,直接从在线库下载机器人文件(https://robodk.com/library),然后使用RoboDK打开该文件(.robot文件)。
2.连接传感器:
a.将传感器连接到计算机。
b.选择自动校准➔ 测量。
c. 确保传感器正在测量并且测量稳定。
重要: 通过确保附近的振动不会改变测量值,确保设置的强度足以进行校准。例如,将机器人放在传感器上并尝试产生小的振动(例如,在传感器区域附近行走)。测量应在小于0.005 mm的噪声范围内保持稳定。如果不是这种情况,强烈建议加强传感器和/或机器人基座的支撑。
3.连接机器人:
a.选择连接➔连接机器人。
b.输入机械手IP和端口。
c. 选择连接。
注意:某些机器人控制器需要遵循特定的设置或特定的软件选项。更多信息机器人驱动程序部分。
4.从机器人连接面板中选择“获取位置”。此步骤将更新机器人在RoboDK中的位置。
提示: 将此职位讲授为新目标。您可以在屏幕上指定要校准的校准目标和工具。校准面板。
重要:默认情况下,RoboDK中显示的机械手的位置将用作校准的参考点。或者,您可以使用校准面板选择目标和工具(自动校准➔校准面板)。
如果测量传感器附近没有物体,则可以开始校准过程。只需选择自动校准➔ 校准机器人 开始机器人校准序列。
重要:建议对单元载荷建模3D对可能导致与机器人或工具发生碰撞的任何对象进行建模。如果您使用的工具可能会引起与机器人的碰撞(或任何其他潜在的碰撞),则最好按照下一部分中的说明进行自定义设置。
您可以选择执行以下步骤来正确建模单元的3D环境。
1.加载工具的3D模型并在RoboDK中创建工具。更多信息创建工具部分。
2.加载任何3D文件以对单元建模。您可以加载3D STEP,IGES,STL文件。“入门”部分中的更多信息。
注意:强烈建议对单元进行正确建模以避免碰撞。
提示: 如果您对工具中心点有很好的估计,可以在RoboDK中进行设置,并更新估计的工具,以加快校准过程。
机器人校准序列完成后,我们将看到一个显示校准结果的图表。RoboDK在有或没有进行机器人校准的情况下都会计算刀具中心点(TCP)。
1.未进行机械手校准的TCP:TCP是使用标称机械手运动学计算的。
2.具有机器人校准功能的TCP:TCP是使用精确的机器人运动学计算出来的。这些测量值用于校准机械手和准确的机械手TCP。这种方法可以提供更好的精度结果,但是需要程序过滤以准确解决机器人错误。更多信息程序过滤部分。
注意: 选择自动校准➔开始校准以另一组不同的点再次开始机器人校准序列(不应移动传感器)。
注意:您还可以通过在菜单自动校准中选择校准摘要来显示这些结果。➔显示结果。
运行校准序列后,我们可以运行一些验证测试。这些验证测试可以在传感器的相同位置或不同位置。
重要:不可能组合在线性量规的不同位置完成的多个校准序列。您可以在同一位置多次校准机器人,并且在传感器相同位置收集的所有数据都将用于校准。
从 机器人面板仅用于校准工具。校准数据将用于计算TCP(不包括机器人校准)。
将显示计算出的TCP,并且一些统计信息将提供计算出的TCP的估计错误。
选择从工具栏进行验证以启动验证序列(您也可以从菜单或“校准”面板中选择验证序列)。
选择显示统计信息以显示摘要和有关结果的一些统计信息。这些统计数据对应于传感器检测到的平面误差。
注意:您还可以通过从菜单“自动校准”中选择“验证结果”来显示这些结果。➔显示结果。
从中选择更新机器人和TCP 机器人面板仅用于校准工具。校准数据将用于计算TCP(不包括机器人校准)。
将显示计算出的TCP。一些统计信息将为计算出的TCP提供估计的错误。
选择显示统计信息以显示摘要和有关结果的一些统计信息。这些统计数据对应于传感器检测到的平面误差。
注意:您还可以通过从菜单“自动校准”中选择“验证结果”来显示这些结果。➔显示结果。
提示:进行更多测量以进行校准可以显着改善校准结果。您可以更改传感器目标测量值(例如,在默认的4 mm目标之后使用8 mm目标进行第二次校准)。您还可以更改机械手配置,以在同一点但以不同的关节角度进行测量(例如,使用翻转和非翻转配置)。有关更多信息,请参见校准面板部分。
本节描述了可以修改以更好地自定义校准和测试机械手准确性的其他设置和选项。
选择自动校准➔ 校准面板打开机器人校准面板。该面板允许您指定要校准的工具。您也可以选择校准目标用作参考点。
您可以预览将用于校准和运行模拟的目标。
重要:模拟的序列可能与用于校准或验证的实际序列不匹配。机械手路径将自动调整。
您可以选择显示数据以显示当前测量值和/或以前的测量值。
提示: 如果要获得最佳的准确性,请务必使用不同的机器人配置来校准机器人。例如,如果首先在机器人处于翻转位置(关节5负)时运行校准序列,则可以教导一个具有非翻转位置(关节5正)的新目标,然后再次运行校准序列。
选择自动校准➔校正设定打开下图所示的设置窗口。
除其他外,您可以更改逼近速度,逼近距离和测量速度。
提示:如果您已经有很好的TCP估计,请将估计的工具误差设置为5 mm或更小。这将使校准过程更快。
提示: 更改Z和XY中的关节范围以更改机器人的运动范围。
提示: 如果以非垂直方向安装传感器,则可以激活“启动时猜测平面方向”以自动调整传感器的方向。
校准机器人后,我们需要确保生成过滤后的程序或说明已校准的机器人参数,以确保我们利用了机器人校准的优势。
校准后,我们应遵循以下方法之一,仅对机器人进行准确编程:
1.使用RoboDK进行离线编程生成准确的程序(生成的程序已被过滤)。这是推荐的离线编程选项,可实现最佳精度。
2.校准机器人控制器参数(例如链接长度,DH-DHM参数和/或主控参数)。
3.筛选程序:修改程序内的所有机器人目标以提高机器人的准确性。
4.过滤目标或程序使用RoboDK API。
使用RoboDK校准机器人后,我们可以通过右键单击机器人并选择“使用精确运动学”来激活精确运动学。
如果激活了准确性,我们将看到一个绿色的点,如果没有激活,我们将看到一个红色的点。
建议使用此选项以获得最佳精度结果。在RoboDK中激活机器人精度选项后,RoboDK生成的所有程序将被自动过滤。这意味着将略微修改所有笛卡尔坐标以补偿机器人错误。
如果您打算使用机器人进行机器人加工,从NC文件编程机器人或使用RoboDK支持的任何CAD / CAM插件,则这是最合适的选择。
重要: 出于准确性目的而生成程序时,请确保程序的第一动作是联合动作。
重要:生成程序后,应确保不要更改机械手配置。
注意: 您应确保工具中心点(TCP)和参考系已已校准并在RoboDK中定义(在过滤之前匹配实际设置中的值)。
一旦对机器人进行了校准,就可以在“参数”菜单中访问已校准的参数。一些机器人控制器允许修改某些机器人参数。
注意:RoboDK使用Denatit-Hartenberg Modified约定。确保使用所有选择/校准的参数。
重要:如果更新机器人控制器参数,我们应该确保不生成过滤程序。
您可以在RoboDK中拖放机器人程序以对其进行过滤(或选择“文件”➔打开)。选择仅过滤以在同一文件夹中自动创建准确的程序。该程序将被过滤并保存在同一文件夹中。
注意:此选项仅限于某些机器人控制器和机器人编程语言。编程风格也很重要。例如,RoboDK不会过滤联合目标或在程序内部计算的目标(例如for循环)。
过滤器摘要将提及使用过滤器算法是否存在任何问题。如果要在RoboDK中进行仿真,我们还可以选择导入程序。如果程序具有任何依赖项(工具框架或基本框架定义,子程序等),则它们必须位于导入第一个程序的相同目录中。
如果我们选择在RoboDK中导入程序,则可以以绝对精度或不以绝对精度重新生成程序。在RoboDK的主要精度设置(工具➔选件➔准确性),我们可以选择是否要始终使用精确的运动学来生成程序,是否要每次询问或是否要使用当前的机器人运动学。
如上一节所述,可以使用RoboDK API过滤笛卡尔目标或过滤程序。
以下代码是一个示例Python脚本,该脚本使用RoboDK API来过滤目标(姿势目标或联合目标),FilterTarget命令:
pose_filt,关节= robot.FilterTarget(nominal_pose,estimated_joints)
如果第三方应用程序(RoboDK除外)使用姿势目标(笛卡尔数据)生成机器人程序,则此示例很有用。
重要: 过滤后的姿势应与该函数返回的关节配置和关节值匹配。
注意:对于使用RoboDK API自动生成的程序而言,这不是必需的。
从 机器人链接 进口 * #与RoboDK通信的API
从 罗布德克 进口 * #基本矩阵运算
定义 XYZWPR_2_Pose(y):
返回 KUKA_2_Pose(y) #将X,Y,Z,A,B,C转换为姿势
定义 姿势_2_XYZWPR(姿势):
返回 姿势_2_KUKA(姿势) #将姿势转换为X,Y,Z,A,B,C
#启动RoboDK API并检索机械手:
RDK = 机器人链接()
机器人 = RDK。项目('', ITEM_TYPE_ROBOT)
如果 不 机器人。有效():
提高 例外(“机器人不可用”)
pose_tcp= XYZWPR_2_Pose([0, 0, 200, 0, 0, 0]) #定义TCP
pose_ref= XYZWPR_2_Pose([400, 0, 0, 0, 0, 0]) #定义参考框架
#更新机械手TCP和参考框架
机器人。setTool(pose_tcp)
机器人。setFrame(pose_ref)
#对于SolveFK和SolveIK(正向/反向运动学)非常重要
机器人。setAccuracyActive(假) #精度可以为开或关
#在关节空间中定义名义目标:
关节 = [0, 0, 90, 0, 90, 0]
#计算关节目标的机器人标称位置:
pose_rob= 机器人。SolveFK(关节) #机器人法兰与机器人底座
#计算pose_target:相对于参考帧的TCP
pose_target= v(pose_ref)*pose_rob*pose_tcp
打印(“目标未过滤:”)
打印(姿势_2_XYZWPR(pose_target))
joints_approx= 关节 #joints_approx必须在20度以内
pose_target_filt, real_joints = 机器人。FilterTarget(pose_target, 关节)
打印(“目标已过滤:”)
打印(real_joints。列出())
打印(姿势_2_XYZWPR(pose_target_filt))
可以使用以下命令触发已校准的机器人和机器人程序 筛选程序 呼叫:
机器人。筛选程序(file_program)
库的“宏”部分提供了一个名为FilterProgram的示例脚本。以下代码是使用RoboDK API过滤程序的Python脚本示例。
从 机器人链接 进口 * #与RoboDK通信的API
从 罗布德克 进口 * #基本矩阵运算
进口 操作系统 #路径操作
#获取当前工作目录
CWD = 操作系统。路径。目录名(操作系统。路径。真实路径(__文件__))
#启动RoboDK(如果未运行)并链接到API
RDK = Robolink()
#可选:提供以下参数以在后台运行
#RDK = 机器人链接(args ='/ NOSPLASH / NOSHOW / HIDDEN')
#获取已校准的测站(.rdk文件)或机械手文件(.robot):
#提示:校准后,右键单击机器人,然后选择“另存为.robot”
标定档案= CWD + '/KUKA-KR6.rdk'
#获取程序文件:
file_program= CWD + '/Prog1.src'
#加载RDK文件或机械手文件:
calib_item= RDK。添加文件(标定档案)
如果 不 calib_item。有效():
提高 例外(“加载时出错” + 标定档案)
#检索机械手(如果只有一个机械手,则不会弹出窗口):
机器人 = RDK。ItemUserPick(“选择要过滤的机器人”, ITEM_TYPE_ROBOT)
如果 不 机器人。有效():
提高 例外(“未选择机器人或不可用”)
#激活精度
机器人。setAccuracyActive(1个)
#过滤程序:这将自动保存程序副本
#根据机器人品牌使用重命名的文件
状态, 摘要 = 机器人。筛选程序(file_program)
如果 状态 == 0:
打印(“程序过滤成功”)
打印(摘要)
calib_item。删除()
RDK。关闭RoboDK()
其他:
打印(“程序筛选失败!错误代码:%i” % 状态)
打印(摘要)
RDK。ShowRoboDK()
RoboDK提供了一些实用程序来校准参考框架和工具框架。可以从实用程序中访问这些工具➔校准参考框架和公用事业➔校准工具架分别。
要校准参考框架或尚未自动校准的工具(分别也称为用户框架和TCP),我们需要一些触摸3个或更多点的机器人配置,这些机器人配置可以是关节值或直角坐标(带有方向数据)在某些情况下)。建议使用关节值而不是笛卡尔坐标,因为这样更容易检查RoboDK中的实际机器人配置(通过将机器人关节复制粘贴到RoboDK主屏幕中)。
重要:校准机器人后,强烈建议使用关节值代替直角坐标。如果我们使用关节值,则会考虑机器人的精度以更精确地教导TCP。
选择实用程序➔校准工具使用RoboDK校准TCP。我们可以使用不同的方向根据需要使用任意数量的点。更多的点和较大的方向变化会更好,因为我们将获得更好的TCP估计以及TCP错误的估计。
注意: 有关更多信息,请参见提示部分。
选择实用程序➔校准参考校准参考框架。可以使用不同的方法设置参考系。在该图的示例中,参考框架由三个点定义:点1和2定义X轴方向,点3定义正Y轴。
重要:建议在校准参考系之前使用关节目标并激活机器人精度,因为机器人手臂的精度将有助于更好地定义参考系。
注意:有关参考帧校准的更多信息,请参见提示部分。