docs: 更新V2版机器人手臂零件设计说明与渲染截图

This commit is contained in:
cbb
2026-09-27 00:28:49 +08:00
parent 1dfd48278b
commit b3d0890809
67 changed files with 9122 additions and 264 deletions
+68
View File
@@ -0,0 +1,68 @@
# 行程与干涉修复报告(h2_v2 几何 · 2026-09-26)
## 用户实测问题
在网页查看器中随意调 4 个关节到极限角度,出现**严重干涉**(4 张截图:P08 切入 P07、
P07/P06 切入 P05、P05 切入 P04)。此前的"动态碰撞测试通过"结论是错误的。
## 根因(三层叠加)
1. **几何缺陷(主因)**:`make_pitch_to_roll_bracket`(P05 大臂旋转座 / P08 腕偏转座共用)
的 `top_fill` 顶部填充块与 `rear_spine` 后脊在 y≤155.5 带内一路填到关节轴平面
(z = z_pitch),与上游件(P04 肩叉 / P07 小臂)的底面**齐平贴合**。零位时测量体积为 0
(贴合面),但关节**一转立即切入**——这是截图 1/4 中 P08×P07、P05×P04 深度切入的直接原因。
2. **旧测试脚本失效**:`real_arm_collision_test.py` v1 的 J2~J5 关节轴定义是错的
(J3/J4 用错轴、J2/J5 方向反),且跳过"相邻关节零件对"和电机——而被跳过的
恰恰是全部出问题的对。
3. **travel.json 过期**:滑块范围是旧几何(9-25)扫描的(J2 -123..109 等),
V2 圆角几何(9-26)从未重扫,网页滑块让用户推到了实际不存在的行程。
## 几何修复(FIX-1)
`make_pitch_to_roll_bracket`(同时作用于 P05/P08):
- **删除** `rear_spine` 后脊(其连接功能由 Loft + 顶部填充的 y≥158.5 部分承担);
- **顶部填充块** 只保留 y≥158.5(与从动法兰盘对齐),切除与上游件贴面的部分;
- **旋转清让切除**:`y ≤ 157.5` 带内、轴平面以上及颈部以外的材料全部切除,
只保留半径 36mm 的**旋转颈部**(相对上游件最近材料半径 35mm 留径向余量,
侧向 2mm 间隙);
- **J1 从动定位凸台加长**(local z 54.942..59.5),跨过 y=156.5..158.5 间隙插入
法兰盘——否则切除填充后凸台悬空成第二实体。
修复后 9 个打印件全部单实体、零位干涉 0 对。
## 验证工具:sweep_v2.py(全新,权威)
针对旧工具的三个缺陷重写(`src/sweep_v2.py`,多进程并行):
- 进程内直接构建当前模型(杜绝 STEP/网格过期),轴取自 `human_layout`(与网页逐位一致);
- 检查**全部零件对**(含相邻对与 6 台电机);
- 单关节双向粗扫+二分 → 真实硬限位;干涉记录**质心定位**;
- 组合姿态扫描(某关节保持极限、扫其余关节)→ 折叠约束数据;
- 轴向/径向区间预剪枝 + 20 进程并行(用户要求提速;单关节阶段 8 分钟,旧版 22 分钟)。
## 最终行程(docs/travel.json,滑块即此范围)
| 关节 | 旧 travel.json(过期) | **新(验证)** | 限位机制(干涉质心) |
|------|----------------------|--------------|--------------------|
| J1 肩抬举 | -1.9..180 | **-2..179** | 反向:P09 工具法兰擦胸板侧面 (3.2, 61, 110)——手臂下垂时的结构硬极限 |
| J2 肩俯仰 | -123..108.8 | **-115..111** | P04 叉尖 (56.3, 143, 510) / P03 斜撑 (-59, 111, 556) |
| J3 大臂自转 | 360°连续 | **360°连续** | P06 扫掠半径 50 < 胸板最近 67,整周自由 |
| J4 肘部俯仰 | ±120 | **±54** | P07 肩部擦 P06 前脸边缘,3mm³ 擦碰(±55 处);为保 M4 定位环接受 |
| J5 腕俯仰 | ±108.9 | **±102** | P08 颈部擦 P07 侧缘 (60.2, 146, 232) |
| J6 腕自转 | 360°连续 | **360°连续** | P09 全部回转对称,整周自由 |
## 组合姿态(重要说明)
任意**单关节**推满滑块已验证零干涉。多关节同时打到极限的折叠姿态
(如 J1 翻顶 179° + J2 前摆 + J4 弯肘)物理上必然自碰——真实机器人同样如此,
由控制器避碰解决,不应把组合约束压进静态滑块(否则 J4 会被压成 0..5°,手臂锁死)。
组合卡死的具体角度与零件对保留在 `docs/travel_detail.json` 的 `combos` 字段。
## 文件清单
- `src/sweep_v2.py` — 权威行程/碰撞扫描(并行、全对全、干涉定位)
- `src/finalize_travel.py` — 用单关节硬限位重置 docs/travel.json
- `src/real_arm_collision_test.py` — 重写为 sweep_v2 封装(姿态网格抽查,修复错误轴)
- `docs/travel.json` — 网页滑块范围(已重建进查看器)
- `docs/travel_detail.json` — 单关节卡死明细 + 组合约束 + 干涉质心