3. UR机器人坐标系与手眼标定
在UR协作机器人焊缝跟踪系统中,所有轨迹计算、激光视觉测量和纠偏指令最终都要落到同一个空间参照下。如果坐标系定义混乱,即使算法正确,机器人也会把焊缝“找错地方”。本节围绕UR机器人常用的三个坐标系——基坐标系、工具坐标系、工件坐标系——说明它们的定义与相互关系,并给出眼在手(Eye-in-Hand)与眼在手上(Eye-to-Hand)两种标定方式的原理、操作流程与结果判断方法。
一、三个坐标系的定义与作用
基坐标系(Base Frame)是UR控制器内部定义的机器人本体坐标系,原点位于机器人底座安装面中心,Z轴垂直向上,X、Y轴按右手定则分布。所有关节角度解算出的TCP位姿,默认都是相对基坐标系表达的。它相当于整个工作单元的“绝对参照”,一旦机器人底座固定,基坐标系就不再变化。
工具坐标系(Tool Frame / TCP)定义在焊枪或激光传感器末端,原点通常取焊丝干伸端点或激光条纹中心,Z轴沿焊枪轴线指向工件。UR通过四点法或六点法标定TCP:让工具尖端以不同姿态触碰同一固定参考点,控制器根据多组位姿反算出TCP相对法兰盘的位置与姿态。TCP标定误差直接影响焊缝跟踪精度,一般要求位置偏差小于0.5 mm、姿态偏差小于0.5°。
工件坐标系(Work Object / User Frame)是定义在焊缝工件上的坐标系,原点可取工件定位销、角点或焊缝起点,Z轴垂直于工件表面。它的价值在于:当工件在变位机上发生装夹偏移或旋转时,只需重新标定工件坐标系,而不必修改已示教的焊缝轨迹。UR中通常用三点法建立工件坐标系:依次示教原点、X轴方向点和Y轴方向点。
二、眼在手标定方法与实操
眼在手配置下,激光传感器与焊枪一起装在UR末端法兰上,传感器坐标系与工具坐标系之间存在固定但未知的变换关系。标定的目标是求出传感器相对TCP的位姿矩阵 T_tool_cam。
实操中常用“九点标定法”:在机器人工作空间内放置一块带9个圆点的标定板,保持标定板不动,让机器人带动传感器从至少3个不同姿态拍摄标定板,每个姿态下记录机器人法兰位姿 T_base_flange 和图像中圆点像素坐标。通过求解 AX=XB 形式的手眼方程,即可得到 T_tool_cam。UR中可直接使用Polyscope的“手眼标定”向导,或通过URScript读取 get_actual_tcp_pose() 获取位姿数据。
# URScript 读取当前TCP位姿(用于标定数据采集)
def get_pose():
p = get_actual_tcp_pose()
return p # [x, y, z, rx, ry, rz],单位mm和rad
# 采集3组以上不同姿态下的位姿与图像
# 姿态1: p1 = [320.5, -150.2, 210.8, 0.12, -0.85, 0.03]
# 姿态2: p2 = [315.8, -148.6, 215.3, 0.35, -0.72, 0.18]
# 姿态3: p3 = [322.1, -152.0, 208.5, -0.08, -0.91, -0.05]
标定完成后,用验证点检查:让传感器测量一个已知位置的标记点,比较计算坐标与实际坐标的偏差。若偏差大于1 mm,应检查标定板是否移动、机器人重复定位精度是否正常、镜头畸变是否已校正。
三、眼在手上标定方法与实操
眼在手上配置下,相机固定在工位支架上,需要求出相机坐标系相对机器人基坐标系的变换 T_base_cam。标定步骤为:
- 将棋盘格标定板固定在机器人末端,随机器人运动到多个位姿;
- 每个位姿下,相机拍摄棋盘格,计算棋盘格相对相机的位姿
T_cam_board; - 同时记录机器人法兰位姿
T_base_flange,并已知棋盘格相对法兰的固定变换T_flange_board; - 由
T_base_cam = T_base_flange · T_flange_board · T_cam_board⁻¹求解。
实际操作中,建议采集10~15个位姿,覆盖相机视野的四个角和中心区域,用最小二乘法优化。UR机器人可通过 get_forward_kin() 获取法兰位姿,配合OpenCV的 calibrateHandEye() 函数完成计算。
四、标定结果验证与工程判断
标定是否可用,不能只看算法输出的残差,还要做实际验证。推荐用“三点验证法”:在工件上选三个不在同一直线上的特征点,分别用机器人TCP触碰和视觉测量两种方式获取坐标,比较两者偏差。若三个点的平均偏差小于0.8 mm,且最大偏差小于1.2 mm,可认为标定满足焊缝跟踪要求。
| 验证项 | 合格标准 | 常见异常原因 |
|---|---|---|
| TCP位置重复性 | ≤0.3 mm | 法兰松动、标定针弯曲 |
| 手眼标定残差 | ≤0.5 mm | 标定板移动、姿态数量不足 |
| 三点验证平均偏差 | ≤0.8 mm | 工件坐标系未更新、镜头畸变 |
| 焊缝跟踪纠偏量 | ≤1.0 mm | 传感器安装角偏差、滤波参数不当 |
当标定结果超差时,优先排查机械安装和标定板状态,再检查算法参数。焊缝跟踪对坐标系精度非常敏感,0.5 mm的标定误差在1 m工作距离上可能放大为2~3 mm的跟踪偏差。因此,建议每班次开机后做一次快速验证,每周做一次完整标定复核。