执行机构角度就近取角与相对运动; 增加归零等待与协议说明
This commit is contained in:
1 parent
14f2ff94d0
commit
4ce4a33603
4 files changed
+106
-19
No files matched your search
@@ -23,6 +23,10 @@ Cycle = { cycle_id: uint16, frag_count: uint8 (2~4), fragments: Fragment[]
|
||||
```
|
||||
|
||||
- **Point**: 单个坐标点, `angle_x10 = 角度 × 10` (如 `450` = 45.0°)
|
||||
- **角度语义**: `source.angle = 0` 表示保持当前朝向; `target.angle` 为搬运
|
||||
过程中的**相对转角**, 归一化到 `[0, 360.0)` 度 (如 -20° 编码为 3400)。
|
||||
MCU 执行 fragment 时在 ±270° 行程内为 target 选择与当前位置最近的等价角
|
||||
(mod 360°), 就近旋转, 避免把 -20° 当成 +340° 绕远路
|
||||
- **Fragment**: 一次运动片段, 从 `source` 移动到 `target`
|
||||
- **Cycle**: 一个执行周期, 包含 2~4 个 Fragment
|
||||
|
||||
@@ -98,10 +102,10 @@ XX XX ← CRC16
|
||||
|------|-----|------|
|
||||
| cycle_id | `0x0001` = 1 | 第 1 个 Cycle |
|
||||
| frag_count | `0x02` = 2 | 2 个 Fragment |
|
||||
| F0 src | (100, 200), 45.0° | |
|
||||
| F0 dst | (300, 400), 60.0° | |
|
||||
| F1 src | (150, 300), 90.0° | |
|
||||
| F1 dst | (500, 700), 120.0° | |
|
||||
| F0 src | (100, 200), 45.0° | 示例: 抓取点 (角度字段保持当前) |
|
||||
| F0 dst | (300, 400), 60.0° | 示例: 放置点 + 相对转角 60.0° |
|
||||
| F1 src | (150, 300), 90.0° | 示例: 抓取点 (角度字段保持当前) |
|
||||
| F1 dst | (500, 700), 120.0° | 示例: 放置点 + 相对转角 120.0° |
|
||||
|
||||
### 4.2 CYCLE_DONE (MCU → MPU)
|
||||
|
||||
|
||||
Reference in new issue
Block a user