GrabBag/App/ScrewPosition/Doc/螺杆定位TCP协议文档.md

3.4 KiB
Raw Blame History

螺杆定位 / 工具盘定位 TCP 协议

1. 概述

  • 传输协议TCP/IP
  • 数据编码UTF-8 文本
  • 服务模式:视觉侧作为 TCP 服务端
  • 默认端口:7800
  • 报文结束符:\r\n
  • 当前模式:眼在手上

2. 请求报文

格式:

类型+相机索引_X_Y_Z_A_B_C\r\n

示例:

S1_-23.45_200.30_50.10_15.50_-2.30_45.00\r\n
T1_-23.45_200.30_50.10_15.50_-2.30_45.00\r\n

字段说明:

字段 说明
S1 / T1 S=螺杆检测,T=工具盘检测,后跟相机索引
X 机械臂当前 X单位 mm
Y 机械臂当前 Y单位 mm
Z 机械臂当前 Z单位 mm
A 机械臂当前姿态第 1 个角,单位 deg
B 机械臂当前姿态第 2 个角,单位 deg
C 机械臂当前姿态第 3 个角,单位 deg

3. 姿态输入顺序

A/B/C 的实际含义由网络配置中的 poseOutputOrder 统一控制。

支持顺序:

  • RX-RY-RZ
  • RX-RZ-RY
  • RY-RX-RZ
  • RY-RZ-RX
  • RZ-RX-RY
  • RZ-RY-RX

例如,当 poseOutputOrder = RZ-RY-RX 时:

T1_-500.92_1553.084_267.836_176.850_74.55_89.211\r\n

表示:

X  = -500.92
Y  = 1553.084
Z  = 267.836
RZ = 176.850
RY = 74.55
RX = 89.211

4. 返回报文

格式:

PointNum_AX1_AY1_AZ1_A1_B1_C1_X1_Y1_Z1_A1_B1_C1/AX2_AY2_AZ2_A2_B2_C2_X2_Y2_Z2_A2_B2_C2/\r\n

每个目标由 12 个浮点组成:先 接近点 (AX/AY/AZ + A/B/C),再 目标点 (X/Y/Z + A/B/C),两者姿态完全相同。

示例:

2_90.500_200.300_50.100_15.500_-2.300_45.000_100.500_200.300_50.100_15.500_-2.300_45.000/110.000_210.500_48.000_-5.000_1.200_30.000_120.000_210.500_48.000_-5.000_1.200_30.000/\r\n
0\r\n

字段说明:

字段 说明
PointNum 检测到的目标数量
AX/AY/AZ 接近点坐标,单位 mm保留 3 位小数
A/B/C (接近点) 接近点姿态,与目标姿态相同
X/Y/Z 目标中心坐标,单位 mm保留 3 位小数
A/B/C (目标点) 目标姿态,单位 deg

接近点语义

  • 接近点 = 目标点在 Eye 坐标系下、姿态调整前沿"X 轴方向"偏移 approachOffset 后,再经手眼矩阵变换到机器人坐标系得到。
    • 螺杆X 轴取 axialDir
    • 工具盘X 轴取 xDir
  • 机械臂应 先运动到接近点(姿态为目标姿态),再 保持姿态沿工具 Z 轴直线下压到目标点,避免姿态变化过程中碰撞工件。
  • approachOffset 每台相机独立配置(手眼标定页的"接近点偏移(mm)");为 0 时接近点与目标点重合。

5. 姿态输出顺序

返回报文中的 A/B/C 与请求报文一样,也由同一个 poseOutputOrder 控制。

这意味着:

  • TCP 输入顺序
  • TCP 输出顺序

使用同一个配置项统一控制,便于和机械臂侧对接。

6. 结果语义

  • 螺杆检测输出:机械臂坐标系下的 接近点(AX/AY/AZ) + 目标点(X/Y/Z) + A/B/C
  • 工具盘检测输出:机械臂坐标系下的定位盘中心 接近点(AX/AY/AZ) + 目标点(X/Y/Z) + A/B/C

说明:

  • 内部姿态计算顺序由 eulerOrder 控制
  • poseOutputOrder 只控制姿态字段在协议中的排列顺序
  • 位置字段(AX/AY/AZ/X/Y/Z)保留 3 位小数,单位 mm
  • 姿态字段 A/B/C 保留 3 位小数,单位 deg
  • 接近点与目标点姿态一致;机械臂到达接近点后沿工具 Z 轴直线下压到目标点