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

112 lines
2.2 KiB
Markdown
Raw Normal View History

2026-04-19 12:28:59 +08:00
# 螺杆定位 / 工具盘定位 TCP 协议
2026-04-19 12:28:59 +08:00
## 1. 概述
2026-04-19 12:28:59 +08:00
- 传输协议TCP/IP
- 数据编码UTF-8 文本
- 服务模式:视觉侧作为 TCP 服务端
- 默认端口:`7800`
- 报文结束符:`\r\n`
- 当前模式:眼在手上
2026-04-19 12:28:59 +08:00
## 2. 请求报文
2026-04-19 12:28:59 +08:00
格式:
```text
2026-04-19 12:28:59 +08:00
类型+相机索引_X_Y_Z_A_B_C\r\n
```
2026-04-19 12:28:59 +08:00
示例:
```text
2026-04-19 12:28:59 +08:00
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
```
2026-04-19 12:28:59 +08:00
字段说明:
| 字段 | 说明 |
|---|---|
| `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` 统一控制。
2026-04-19 12:28:59 +08:00
支持顺序:
- `RX-RY-RZ`
- `RX-RZ-RY`
- `RY-RX-RZ`
- `RY-RZ-RX`
- `RZ-RX-RY`
- `RZ-RY-RX`
例如,当 `poseOutputOrder = RZ-RY-RX` 时:
```text
T1_-500.92_1553.084_267.836_176.850_74.55_89.211\r\n
```
2026-04-19 12:28:59 +08:00
表示:
```text
2026-04-19 12:28:59 +08:00
X = -500.92
Y = 1553.084
Z = 267.836
RZ = 176.850
RY = 74.55
RX = 89.211
```
2026-04-19 12:28:59 +08:00
## 4. 返回报文
格式:
```text
2026-04-19 12:28:59 +08:00
PointNum_X1_Y1_Z1_A1_B1_C1/X2_Y2_Z2_A2_B2_C2/\r\n
```
2026-04-19 12:28:59 +08:00
示例:
```text
2026-04-19 12:28:59 +08:00
2_100.50_200.30_50.10_15.50_-2.30_45.00/120.00_210.50_48.00_-5.00_1.20_30.00/\r\n
0\r\n
```
2026-04-19 12:28:59 +08:00
字段说明:
| 字段 | 说明 |
2026-04-19 12:28:59 +08:00
|---|---|
| `PointNum` | 检测到的目标数量 |
| `X/Y/Z` | 目标中心坐标,单位 mm |
| `A/B/C` | 目标姿态三个角,单位 deg |
## 5. 姿态输出顺序
返回报文中的 `A/B/C` 与请求报文一样,也由同一个 `poseOutputOrder` 控制。
这意味着:
- TCP 输入顺序
- TCP 输出顺序
使用同一个配置项统一控制,便于和机械臂侧对接。
## 6. 结果语义
- 螺杆检测输出:机械臂坐标系下的 `XYZ + A/B/C`
- 工具盘检测输出:机械臂坐标系下的定位盘中心 `XYZ + A/B/C`
说明:
- 内部姿态计算顺序由 `eulerOrder` 控制
- `poseOutputOrder` 只控制姿态字段在协议中的排列顺序