Skip to content

用户坐标

概述

用户坐标系是机器人在工件或工装上定义的局部坐标系,用于简化编程和操作。通过在不同工件上定义用户坐标系,可以使同一程序在不同工位间复用,大幅提高编程效率。


坐标系层次

机器人系统中存在多层坐标系,从全局到局部的关系如下:

text
大地坐标系 (World)
  └── 基坐标系 (Base/Robot)
        └── 用户坐标系 (User)  ← 本章内容
              └── 工具坐标系 (Tool)
坐标系说明默认原点
大地坐标系车间地面的绝对参考系固定在地面
基坐标系机器人底座上的参考系机器人底座中心
用户坐标系工件/工装上的局部参考系用户通过标定定义
工具坐标系工具末端 (TCP) 的参考系工具法兰中心

用户坐标系的作用

  1. 编程简化:在工件上定义坐标系后,可以直接使用工件的长宽高方向编程
  2. 程序复用:同一程序应用于不同位置的工件时,只需切换用户坐标系
  3. 偏移补偿:通过修改用户坐标系偏移量实现工位微调
  4. 多工位管理:支持最多 999 个用户坐标系,满足多工位需求

用户坐标标定

标定方法

用户坐标系通过三点法进行标定:

  1. 原点 (O):定义用户坐标系的原点位置
  2. X 轴方向点 (X):定义用户坐标系 X 轴正方向
  3. Y 轴方向点 (Y):定义用户坐标系 Y 轴正方向(Z 轴由右手定则确定)

标定要求: 原点、X 点、Y 点不能共线,否则标定失败。

标定流程

  1. 通过 0x3562 发送标定点位置信息(原点/X/Y)
  2. 通过 0x3560 请求标定计算
  3. 控制器回复 0x3561 告知计算结果
  4. 通过 0x3570 查询标定后的位置信息验证

0x3560 上位机请求用户坐标标定计算

说明: 上位机请求用户坐标标定计算

请求参数:

参数类型说明
robotint当前机器人号,范围[1,4]
userint当前用户坐标号,范围[1,999]

请求示例:

json
{
  "robot": 1,
  "user": 1
}

0x3561 控制器回复用户坐标标定计算结果

说明: 控制器回复上位机用户坐标标定计算结果

响应参数:

参数类型说明
resultbool标定计算是否成功
robotint当前机器人号,范围[1,4]

响应示例:

json
{
  "result": true,
  "robot": 1
}

0x3562 上位机请求当前用户坐标标定原点/X 值/Y 值

说明: 上位机请求当前用户坐标标定原点/X 值/Y 值

请求参数:

参数类型说明
posXdouble[]标记的 X 值位置信息列表,当require"OXY"时该节点存在
posYdouble[]标记的 Y 值位置信息列表,当require"OXY"时该节点存在
posZerodouble[]标记的原点位置信息列表,当require"OXY"时该节点存在
requirestring标记点信息,取值为"0""X""Y"时分别表示标记原点,X 值,Y 值;取值为"OXY"时,标记所有点
robotint当前机器人号,范围[1,4]
userint当前用户坐标号,范围[1,999]

请求示例:

json
{
  "posX": [470.7460, 0.0, 817.3340, 3.1410, 0.0, 0.0],
  "posY": [470.7460, 0.0, 817.3340, 3.1410, 0.0, 0.0],
  "posZero": [470.7460, 0.0, 817.3340, 3.1410, 0.0, 0.0],
  "require": "OXY",
  "robot": 1,
  "user": 1
}

0x3563 控制器回复当前用户坐标标定原点/X 值/Y 值

说明: 控制器回复上位机当前用户坐标标定原点/X 值/Y 值

响应参数:

参数类型说明
positiondouble[]弧度制下的位置信息列表
positionDegdouble[]角度制下的位置信息列表
requirestring标记点信息,值为"0""X""Y"时分别表示标记原点,X 值,Y 值
robotint当前机器人号,范围[1,4]
statusbool标定状态,true表示已标定,false表示未标定
userint当前用户坐标号,范围[1,999]

响应示例:

json
{
  "position": [470.746, 0.0, 817.334, 3.141, 0.0, 0.0],
  "positionDeg": [470.746, 0.0, 817.334, 179.966043450592, 0.0, 0.0],
  "require": "O",
  "robot": 1,
  "status": true,
  "user": 1
}

0x3570 上位机查询用户坐标标定点位置信息

说明: 上位机查询用户坐标标定点位置信息

请求参数:

参数类型说明
requirestring需要查询的位置信息,值为"0""X""Y"时分别表示标记原点,X 值,Y 值;值为"Calibration"时表示计算后的位置信息
robotint当前机器人号,范围[1,4]
userint当前用户坐标号,范围[1,999]

请求示例:

json
{
  "require": "X",
  "robot": 1,
  "user": 1
}

0x3571 控制器回复用户坐标标定点位置信息

说明: 控制器回复上位机用户坐标标定点位置信息

响应参数:

参数类型说明
positiondouble[]弧度制下的位置信息列表;require"Calibration"时为弧度制下偏移量
positionDegdouble[]角度制下的位置信息列表;require"Calibration"时为角度制下偏移量
requirestring查询的位置信息,值为"0""X""Y"时分别表示标记原点,X 值,Y 值;值为"Calibration"时表示计算后的位置信息
robotint当前机器人号,范围[1,4]
statusbool标定状态,true表示已标定,false表示未标定;require"Calibration"时该节点不存在
userint当前用户坐标号,范围[1,999]

响应示例:

json
{
  "position": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
  "positionDeg": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
  "require": "X",
  "robot": 1,
  "status": false,
  "user": 1
}

用户坐标号

0x3580 上位机请求切换用户坐标

说明: 上位机请求切换用户坐标

请求参数:

参数类型说明
robotint当前机器人号,范围[1,4]
userint需要切换到的用户坐标号,范围[1,999]

请求示例:

json
{
  "robot": 1,
  "user": 3
}

注意: 切换用户坐标系后,所有后续运动指令将基于新的用户坐标系执行。确保目标用户坐标系已正确标定。


0x3581 上位机查询当前已选中的用户坐标号

说明: 上位机查询当前已选中用户坐标号

请求参数:

参数类型说明
robotint当前机器人号,范围[1,4]

请求示例:

json
{
  "robot": 1
}

0x3582 控制器回复已选中的用户坐标号

说明: 控制器回复上位机已选中的用户坐标号

响应参数:

参数类型说明
robotint当前机器人号,范围[1,4]
userint当前用户坐标号,范围[1,999]

响应示例:

json
{
  "robot": 1,
  "user": 3
}

用户坐标注释

0x3590 上位机请求设置用户坐标注释

说明: 上位机请求设置用户坐标注释

请求参数:

参数类型说明
notestring需要设置的注释
robotint当前机器人号,范围[1,4]
userint当前用户坐标号,范围[1,999]

请求示例:

json
{
  "note": "AAA",
  "robot": 1,
  "user": 1
}

0x3591 上位机查询用户坐标号注释

说明: 上位机查询用户坐标号注释

请求参数:

参数类型说明
robotint当前机器人号,范围[1,4]
userint当前用户坐标号,范围[1,999]

请求示例:

json
{
  "robot": 1,
  "user": 1
}

0x3592 控制器回复用户坐标号注释

说明: 控制器回复上位机用户坐标号注释

响应参数:

参数类型说明
notestring当前用户坐标注释
robotint当前机器人号,范围[1,4]
userint当前用户坐标号,范围[1,999]

响应示例:

json
{
  "note": "AAA",
  "robot": 1,
  "user": 1
}

0x3593 上位机设置用户坐标偏移量

说明: 上位机设置用户坐标偏移量

请求参数:

参数类型说明
positiondouble[]设置的偏移量列表,按顺序分别为 X 值,Y 值,Z 值,A 值,B 值,C 值
userint当前用户坐标号,范围[1,999]

请求示例:

json
{
  "position": [5.0, 0.0, 0.0, 0.0, 0.0, 0.0],
  "user": 1
}

偏移量用途

偏移量用于在不重新标定的情况下微调用户坐标系的位置:

  • X/Y/Z 偏移:平移用户坐标系原点
  • A/B/C 偏移:旋转用户坐标系方向(欧拉角)

典型场景: 工装更换后工件位置发生微小偏移,通过调整偏移量即可恢复精度,无需重新标定。