diff --git a/docs/GAUGE_ASSEMBLY.md b/docs/GAUGE_ASSEMBLY.md index ef1c5b5..c8c9fbc 100644 --- a/docs/GAUGE_ASSEMBLY.md +++ b/docs/GAUGE_ASSEMBLY.md @@ -157,10 +157,49 @@ ros2 topic pub --once /gauge/reload_ok std_msgs/msg/Bool "{data: true}" |----|------| | S02 夹持确认 | 预留(`grip_check: false`)。现在没有"规确实在爪里"的**可信**判据,靠触觉猜会误判 | | S03 手外粗定位 | 需要 eye-to-hand 标定文件;没有就明确报缺哪个文件、怎么生成,并回 S04 | -| S07 接触判据 | 阈值**未在真机上标定**(仿真里做过通路验证) | +| S07 接触判据 | 阈值**未在真机上标定**(仿真里做过通路验证)。⚠️ 见下面「S07 为什么在仿真里过不去」 | | S08/S09 力矩到位判据 | 同上,属现场标定项 | | 真机全流程 | **未跑过**(本仓库当前无真机)。干跑 / 仿真 / 单测已过,见 §7 | +### S07 为什么在仿真里过不去(2026-09-24 查到根因,别再往阈值上调) + +**先说结论:不是阈值调高了,是「通止规靠夹持摩擦驱动」这件事本身决定了 +轴向力传不到指上。** 要动的是判据**用哪个传感器**,不是阈值大小。 + +排查过程(先走过一次弯路,记下来免得重走):S07 在 25mm 处 ABORT, +报「下探 25mm 都没触发接触判据」。**第一反应是阈值标高了**,于是: +25→35mm 下探预算、台面开 90mm 通槽让贯通孔真能穿过 —— 都做了,都该做 +(确实是独立的 bug),但**没解决 S07**。真实因果链是: + +| # | 实测到的 | 日志证据 | +|---|---------|---------| +| 1 | 悬停时规尖已在工件面下 **23mm** | `悬停时尖端离面 -23.0mm`(工具几何自检) | +| 2 | 台肩本应在"再下压 7mm"时落面,但切向读数**全程 0.0** | `下压 4.49~17.97mm 切向 (-0.0, -0.0)` | +| 3 | 读数恒 0 ⇒ 规**在爪里打滑**了:没跟着往下走,而是相对爪往上溜 | —— | +| 4 | 溜到 ~20mm 时规**顶到掌心**(变成刚性接触)→ 切向力突跳到 **225.9** | `下压 19.91mm 切向 (225.9, 56.8)` | +| 5 | 阈值 300 差一点没够 → 判据不触发 → 臂继续压到 25mm 顶死 | `连续 5 步实测零位移` | + +关键一环是**为什么读数恒 0**:规靠指垫摩擦夹持,轴向力要经摩擦传给指。 +摩擦上限 = µ·N,`gauge/model.sdf` 的夹持段 µ=0.25、实测握力 N≈46N → +单指 ~11.5N、两指 ~23N。而台肩一旦落面,接触刚度 5e4 N/m 意味着**过压 +0.5mm 就是 25N** —— 一步 0.5mm 的步进就让轴向力越过摩擦上限,规打滑。 +所以"台肩落面"那一下的力**根本传不到手指触觉上**,读数停在 0 是对的。 + +**真机同理会这样**(不是仿真特有):只要工具是靠夹持摩擦抱住的,轴向力 +就传不到指垫。**正确修法是换判据来源**,三选一(按可信度排序): + +1. **用法兰/腕部的力扭矩传感器**(本工作区的 Orisys 就在这一层)—— 轴向 + 力直接落在它上面,不经摩擦,物理上最干净。**推荐这条。** +2. 用**位置停滞**判"到底了":连续若干步实测零位移即视为到位。现成的 + `descend_progress` / `DESCEND_STALL_STEPS` 已经能测出来,只是现在把它 + 当**错误**报,改成"当作到达信号"即可。缺点是没有力的大小、区分不出 + "顶到台面"和"顶到异物"。 +3. 仍用指垫触觉,但阈值要按 **µ·N 反推**(≈23N 量级),且必须把夹持段 + 摩擦系数与握力一起标进 `site.yaml`。**最不推荐**:换了规/换了指垫就得重标。 + +**下一步(不要再对着触觉阈值试)**:实现第 1 条 —— S07 判据改读腕部 FT 的 +轴向分量,触觉只作兜底。 + --- ## 7. 验收命令(都是真跑过的)