From b0fc5d71945cd892501a861a296000e4e2676d65 Mon Sep 17 00:00:00 2001 From: arm_dev Date: Thu, 24 Sep 2026 14:53:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=EF=BC=9A=E6=8A=8A=20S07=20?= =?UTF-8?q?=E8=BF=87=E4=B8=8D=E5=8E=BB=E7=9A=84=E6=A0=B9=E5=9B=A0=E5=86=99?= =?UTF-8?q?=E8=BF=9B=20GAUGE=5FASSEMBLY=EF=BC=88=E9=98=B2=E5=86=8D?= =?UTF-8?q?=E6=AC=A1=E8=AF=AF=E5=88=A4=E6=88=90=E9=98=88=E5=80=BC=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 这一轮走过一次弯路:S07 ABORT 报"没触发接触判据",第一反应是阈值标高了, 于是调预算、开台面通槽 —— 那些确实是独立的 bug(该修,已修),但**没有 解决 S07**。真实根因是「工具靠夹持摩擦抱住 → 轴向力传不到指垫触觉」, µ·N ≈ 23N 而台肩落面一步就产生 25N,必然打滑。 把完整因果链(5 步,每步附日志证据)和三个可选修法写进 §6,并标明推荐 第 1 条(改读腕部 FT)—— 避免下一个人又对着触觉阈值试半天。 Co-authored-by: Cursor --- docs/GAUGE_ASSEMBLY.md | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) 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. 验收命令(都是真跑过的)