开合控制调整:切向触发只看 Y 轴,三挡位只控制释放、触发固定灵敏参数;自适应负载改看切向 X;恢复原灵敏档张开逻辑与排查前夹持力参数。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,15 +1,17 @@
|
||||
# 释放控制与回放验证
|
||||
|
||||
## 行为模式(迅速开合 / 夹持稳定)
|
||||
## 行为模式(灵敏 / 较稳定 / 十分稳定)
|
||||
|
||||
设置页「行为模式」与主界面「迅速开合 / 夹持稳定」按钮共用 `grip_behavior_mode`:
|
||||
设置里可切换三套开合预设(`grip_behavior_mode`),切换后只改写**释放/开合**相关参数;
|
||||
闭合触发(`trigger_*`、等待再武装稳定门槛)一律固定为灵敏档。
|
||||
|
||||
| 模式 | 目标 | 典型倾向 |
|
||||
| --- | --- | --- |
|
||||
| `rapid`(迅速开合) | 跟手开合 | `release_min_hold=0`、更低侧触/确认门槛、更快再武装、关闭自适应加力 |
|
||||
| `stable`(夹持稳定) | 夹得住、少误开 | 更长接触保护、更高确认帧数与速率门槛、开启自适应;**长历史斜率趋零后再允许侧触/监视** |
|
||||
| 模式 | 含义 |
|
||||
| --- | --- |
|
||||
| `sensitive`(灵敏) | 当前默认调参,跟手、更容易开合 |
|
||||
| `stable`(较稳定) | 明显提高释放门槛与确认,少误开 |
|
||||
| `firm`(十分稳定) | 约高一个数量级释放门槛,需故意大力开合 |
|
||||
|
||||
预设定义见 `gripper/config/behavior_profiles.py`。切换模式会改写释放/滤波/爬力相关字段;可在设置里再微调后保存。运行中切换会即时写入 live `config` 并重置 `ReleaseWatch`。
|
||||
预设见 `gripper/config/behavior_profiles.py`。旧配置里的 `rapid` /「迅速开合」映射为 `sensitive`。
|
||||
|
||||
## 会话录制(优化张开用)
|
||||
|
||||
@@ -38,7 +40,7 @@
|
||||
具体处理:
|
||||
|
||||
1. 闭合阶段保留最近几帧,接触时继承各通道的趋势,不把接触帧当作静止起点。
|
||||
2. 每个通道保留可配置长度的历史(`release_curve_history`;rapid 约 6 点,stable 约 30 点)。
|
||||
2. 每个通道保留可配置长度的历史(`release_curve_history`,stable 约 30 点)。
|
||||
**起始检测**仍只用最近约 6 点做局部二次拟合;**夹稳斜率**用更长窗口(`release_slope_window_seconds`)
|
||||
做一次拟合,得到 `fit_slope`(N/s)。夹住加力过程表现为该斜率逐渐变小并趋近于 0。
|
||||
3. 自然减速、变平、相近速度的斜率变号是曲线延续;它们不因累计位移达到门槛而启动释放候选。
|
||||
@@ -52,12 +54,15 @@
|
||||
后续自然变化。已达幅度的候选若明显回落则取消,记录 `settling-turn`;回落判定容许
|
||||
当前噪声范围内的波动,避免真实触碰后的轻微抖动被误拒绝。
|
||||
同一套起始判断覆盖 `side_touch`、`touch`、`sudden` 和弱路径,避免其他分支绕过。
|
||||
7. **`release_require_slope_settle`(stable 默认开)**:仅看法向通道长窗 `|fit_slope|`
|
||||
7. **`release_require_slope_settle`(默认开)**:仅看法向通道长窗 `|fit_slope|`
|
||||
(`release_settle_normal_only`)低于 `release_slope_settle_rate`,并连续保持
|
||||
`release_slope_hold_seconds`,**首次**达到后闩锁为已夹稳。之后自适应加力或主动
|
||||
张开使斜率再升高,**不会**撤销释放武装。
|
||||
8. **stable 干净分工**:夹稳只看法向;张开只走切向(`release_normal_onset_enabled=false`、
|
||||
`release_side_normal_enabled=false`,切向 onset/侧触开启)。rapid 仍法向+切向都能开。
|
||||
8. **通道开关**:默认法向与切向均允许 onset 与侧触;可用
|
||||
`release_*_onset_enabled` / `release_side_*_enabled` 单独关闭。夹稳判定仍可只看法向
|
||||
(`release_settle_normal_only`)。
|
||||
9. **切向振荡旁路(默认开)**:短窗内切向反复换向且峰峰值够大时,走
|
||||
`shear_oscillation`,**不要求**已夹稳闩锁,可在 `force-settling` 期间直接确认开合。
|
||||
|
||||
没有增加固定夹稳等待,也没有恢复“四通道同时安静”的全局条件。以下是幅度与确认路径:
|
||||
|
||||
@@ -66,6 +71,7 @@
|
||||
| 即时侧触 `side_touch` | 继承接触前左右力差曲线,检测偏离该曲线的新侧触 | 默认两次左右均更新的传感器帧;不等 0.28s 夹稳计时 |
|
||||
| 普通轻触 `touch` | 出现新起始变化后,实际位移和相对原曲线的偏移均达到 0.04N | 默认两帧;不要求瞬时速率达到 1.6N/s |
|
||||
| 突变 `sudden` / 弱路径 `slow_external` | 新起始变化叠加大速率 / 大幅偏移 | 默认两帧 / 五帧 |
|
||||
| 切向振荡 `shear_oscillation` | 切向短窗内多次换向 + 峰峰值 | 默认两帧;绕过斜率夹稳门控 |
|
||||
|
||||
即时侧触使用左减右的法向/切向力差的变化,抵消两侧共同压紧或负载变化。命令排队、
|
||||
执行及短响应尾部内,法向差分仍受保护,切向差分继续检测。普通共同法向卸载仍经过
|
||||
@@ -113,17 +119,22 @@
|
||||
| `release_slow_confirm_samples` | 5 | 弱路径确认帧数,不少于突变路径 |
|
||||
| `release_confirm_window_seconds` | 0.2s | 候选最长确认时间;超时丢弃 |
|
||||
| `release_sample_timeout_seconds` | 0.2s | 任一侧断流或时间戳间隔过大时,丢弃已有证据 |
|
||||
| `release_curve_history` | 6 / stable 30 | 力曲线保留点数;onset 仍用最近约 6 点,斜率门控用更长窗 |
|
||||
| `release_curve_history` | 30 | 力曲线保留点数;onset 仍用最近约 6 点,斜率门控用更长窗 |
|
||||
| `release_slope_window_seconds` | 0.8s | 夹稳斜率估计时间窗 |
|
||||
| `release_slope_settle_rate` | 0.2 N/s | `|fit_slope|` 低于此值才视为加力趋稳 |
|
||||
| `release_slope_min_points` | 8 | 斜率门控生效前最少历史点数 |
|
||||
| `release_require_slope_settle` | false / stable true | 是否在侧触与退出 settle 前要求斜率趋零 |
|
||||
| `release_slope_hold_seconds` | 0 / stable 0.45s | 斜率达标后还需保持多久(滤掉短刺) |
|
||||
| `release_require_slope_settle` | true | 是否在侧触与退出 settle 前要求斜率趋零 |
|
||||
| `release_slope_hold_seconds` | 0.45s | 斜率达标后还需保持多久(滤掉短刺) |
|
||||
| `release_settle_normal_only` | true | 夹稳只看法向,不看切向 |
|
||||
| `release_shear_oscillation_open` | true | 切向振荡时不待夹稳也开合 |
|
||||
| `release_shear_oscillation_window_seconds` | 0.4 | 切向振荡统计窗口 |
|
||||
| `release_shear_oscillation_min_flips` | 3 | 窗口内最少换向次数 |
|
||||
| `release_shear_oscillation_amplitude` | 0.15 N | 切向峰峰值门槛 |
|
||||
| `release_shear_oscillation_confirm_samples` | 2 | 振荡确认帧数 |
|
||||
| `release_side_shear_enabled` | true | 是否允许切向左右差侧触 |
|
||||
| `release_side_normal_enabled` | true / stable false | 是否允许法向左右差侧触 |
|
||||
| `release_side_normal_enabled` | true | 是否允许法向左右差侧触 |
|
||||
| `release_shear_onset_enabled` | true | 是否允许切向触发普通释放路径 |
|
||||
| `release_normal_onset_enabled` | true / stable false | 是否允许法向触发普通释放路径 |
|
||||
| `release_normal_onset_enabled` | true | 是否允许法向触发普通释放路径 |
|
||||
|
||||
N/N/s 适用于当前标定配置。缓存帧不重复滤波或投票,提高控制频率不能代替真实传感器帧。
|
||||
`grip_settle_seconds` 只控制外围状态进入 `hold_check` 的最早时间。
|
||||
|
||||
Reference in New Issue
Block a user