100 lines
2.2 KiB
Markdown
100 lines
2.2 KiB
Markdown
# 轮胎定位 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 + 孔半径 R),flat 排列,按相机坐标系 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 |
|
||
|
||
以上三项均在"检测设置 → 网络配置"页面中配置。
|