GrabBag/App/TireHolePose/Doc/轮胎定位TCP协议文档.md

100 lines
2.2 KiB
Markdown
Raw Normal View History

# 轮胎定位 TCP 协议
## 1. 概述
- 传输协议TCP/IP
- 数据编码UTF-8 文本
- 服务模式:视觉侧作为 TCP 服务端
- 默认端口:`7800`
- 报文结束符:`\r\n`
- 标定模式:**眼在手外Eye-to-Hand**,相机固定,无需机械臂位姿
## 2. 请求报文
格式:
```text
D1\r\n
```
示例:
```text
D1\r\n
D2\r\n
```
字段说明:
| 字段 | 说明 |
|---|---|
| `D` | 轮胎检测命令 |
| `1` | 相机索引1 或 2|
> 眼在手外模式下,相机固定在工作环境中,不需要机械臂当前位姿。
## 3. 返回报文
格式:
```text
PointNum_X1_Y1_Z1_A1_B1_C1_R1_X2_Y2_Z2_A2_B2_C2_R2_...\r\n
```
返回**全部检测结果**,每目标 7 个浮点XYZ + A/B/C + 孔半径 Rflat 排列,按相机坐标系 Z 升序排列Z 小的先输出)。
示例(检测到 2 个轮胎):
```text
2_100.500_200.300_50.100_15.500_-2.300_45.000_12.500_150.200_180.100_48.500_10.200_-1.500_42.000_12.800\r\n
```
无检测结果:
```text
0\r\n
```
字段说明:
| 字段 | 说明 |
|---|---|
| `PointNum` | 检测到的目标数量 |
| `X/Y/Z` | 目标中心坐标(机械臂基坐标系),单位 mm保留 3 位小数 |
| `A/B/C` | 目标姿态角,单位 deg保留 3 位小数 |
| `R` | 孔半径,单位 mm保留 3 位小数 |
## 4. 欧拉角顺序配置
### 4.1 输入顺序eulerOrder
机械臂法兰姿态分解为旋转矩阵时使用的欧拉角顺序(外旋约定):
- `RZ-RY-RX (外旋ZYX)` = 11
- `RX-RY-RZ (外旋XYZ)` = 10
- `RZ-RX-RY (外旋ZXY)` = 12
- `RY-RX-RZ (外旋YXZ)` = 13
- `RY-RZ-RX (外旋YZX)` = 14
- `RX-RZ-RY (外旋XZY)` = 15
默认值:`11`RZ-RY-RX 外旋ZYX
### 4.2 输出顺序outputEulerOrder
旋转矩阵合成为欧拉角时使用的顺序(外旋约定),选项同 eulerOrder。默认值`10`RX-RY-RZ 外旋XYZ
### 4.3 姿态输出顺序poseOutputOrder
返回报文中的 `A/B/C` 三元组排列顺序:
| 值 | 顺序 |
|---:|------|
| `0` | RX-RY-RZ默认 |
| `1` | RX-RZ-RY |
| `2` | RY-RX-RZ |
| `3` | RY-RZ-RX |
| `4` | RZ-RX-RY |
| `5` | RZ-RY-RX |
以上三项均在"检测设置 → 网络配置"页面中配置。