Tune grip guard/frames per stability level, unify open speed 80%, rebuild aarch64 package
- Guard (release_min_hold_seconds): sensitive 0.4 s / stable 0.7 s / firm 1.0 s, label clarified - Y-displacement samples 3-4-6, release_confirm_samples aligned 3-4-6 so the bar shows consistent frames - release_open_speed 80% for all modes; level summary shows frames and open speed - Rebuild ubuntu24.04 aarch64 lite 20261008 with stable-level-50 config; drop old release packages Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -7,9 +7,9 @@
|
||||
|
||||
| 模式 | 夹持力 | 释放 |
|
||||
| --- | --- | --- |
|
||||
| `sensitive`(灵敏) | 起步 25%,按切向负载自适应 33~80% | 跟手;振荡/侧触在夹紧期间也生效,法向也可张开 |
|
||||
| `stable`(较稳定) | 闭合指令即 70%,接触后不锁位置(`grip_contact_hold_position=false`),继续以 70% 朝闭合方向顶住,不再加力 | 接触后 2 s 保护期内不触发任何张开(`release_min_hold_seconds=2.0`,不再额外等法向夹稳);张开只看 Y 切向拟合偏移:保护期结束时记下两侧带符号 Y 的拟合值作基准,之后任一侧拟合值偏离基准 ≥ 0.6 N 连续 6 帧即张开(`release_shear_displacement=0.6`,不取绝对值、回头不取消,基准只在接近时缓慢跟随漂移);法向、切向振荡和侧触/突变/触碰路径都不参与。夹持中夹爪走到闭合极限(物体已脱出)立即张开(`release_object_lost_open=true`,不受保护期限制) |
|
||||
| `firm`(十分稳定) | 同较稳定档的恒力方式,但闭合指令即 100% | 与较稳定档相同的张开方式,保护期 2.5 s(`release_min_hold_seconds=2.5`),Y 拟合偏移阈值 0.8 N(`release_shear_displacement=0.8`);同样支持物体脱出张开 |
|
||||
| `sensitive`(灵敏) | 起步 25%,按切向负载自适应 33~80% | 跟手;保护期 0.4 s(`release_min_hold_seconds=0.4`),振荡/侧触在保护期内也生效,法向也可张开;张开速度 80% |
|
||||
| `stable`(较稳定) | 闭合指令即 70%,接触后不锁位置(`grip_contact_hold_position=false`),继续以 70% 朝闭合方向顶住,不再加力 | 接触后 0.7 s 保护期内不触发任何张开(`release_min_hold_seconds=0.7`,不再额外等法向夹稳);张开只看 Y 切向拟合偏移:保护期结束时记下两侧带符号 Y 的拟合值作基准,之后任一侧拟合值偏离基准 ≥ 0.6 N 连续 4 帧即张开(`release_shear_displacement=0.6`,`release_shear_displacement_samples=4`,张开速度 80%,不取绝对值、回头不取消,基准只在接近时缓慢跟随漂移);法向、切向振荡和侧触/突变/触碰路径都不参与。夹持中夹爪走到闭合极限(物体已脱出)立即张开(`release_object_lost_open=true`,不受保护期限制) |
|
||||
| `firm`(十分稳定) | 同较稳定档的恒力方式,但闭合指令即 100% | 与较稳定档相同的张开方式,保护期 1.0 s(`release_min_hold_seconds=1.0`),Y 拟合偏移阈值 0.8 N 连续 6 帧(`release_shear_displacement=0.8`,`release_shear_displacement_samples=6`),张开速度 80%;同样支持物体脱出张开 |
|
||||
|
||||
满力需要 `force_max` ≥ 100。
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
设置 →「行为模式」页的稳定度条(`grip_behavior_level`,0~100)可整体拖动调整,三挡是固定刻度点:灵敏 = 0,较稳定 = 50,十分稳定 = 100,刻度点上的参数与上表完全一致。
|
||||
|
||||
- 0~49:灵敏算法(`grip_behavior_mode=sensitive`)。数值参数(速度、自适应夹持力、保护期、确认帧数、门槛等)按比例从灵敏值过渡到较稳定值;开关类参数和 Y 偏移张开阈值保持灵敏档设置。
|
||||
- 50~100:稳定算法(50~99 为 `stable`,100 为 `firm`)。恒力、保护期、Y 拟合偏移阈值按比例从较稳定过渡到十分稳定(例如 75 = 85% / 2.25 s / 0.7 N)。
|
||||
- 50~100:稳定算法(50~99 为 `stable`,100 为 `firm`)。恒力、保护期、Y 拟合偏移阈值按比例从较稳定过渡到十分稳定(例如 75 = 85% / 0.85 s / 0.7 N / 5 帧)。
|
||||
- 闭合触发参数在任何位置都固定为灵敏档。
|
||||
|
||||
拖到合适位置后点「保存为新挡位」并命名,挡位立即写入 `gripper.json` 的 `grip_behavior_presets`(`[{name, level}]`),出现在预设下拉框和刻度条上;选中自定义挡位后可删除,默认三挡不能删除。拖动或选择挡位后需点「保存到 gripper.json」才会应用到运行中的控制。
|
||||
|
||||
@@ -5,9 +5,10 @@ from __future__ import annotations
|
||||
import copy
|
||||
|
||||
|
||||
# sensitive = 灵敏:跟手释放,自适应夹持力
|
||||
# stable = 较稳定:接触即 70% 恒力夹持,2 s 保护期,Y 拟合偏移 0.6 N 张开
|
||||
# firm = 十分稳定:接触即 100% 恒力夹持,2.5 s 保护期,Y 拟合偏移 0.8 N 张开
|
||||
# sensitive = 灵敏:跟手释放,自适应夹持力,0.4 s 保护期
|
||||
# stable = 较稳定:接触即 70% 恒力夹持,0.7 s 保护期,Y 拟合偏移 0.6 N 连续 4 帧张开
|
||||
# firm = 十分稳定:接触即 100% 恒力夹持,1.0 s 保护期,Y 拟合偏移 0.8 N 连续 6 帧张开
|
||||
# 三挡张开速度统一 80%。
|
||||
# 稳定度 0..100:三挡分别位于 0 / 50 / 100,中间值按比例插值(见 grip_behavior_level_profile)。
|
||||
GRIP_BEHAVIOR_MODES = ("sensitive", "stable", "firm")
|
||||
|
||||
@@ -130,20 +131,20 @@ _SENSITIVE_PROFILE = {
|
||||
"release_guard_fast_paths": False,
|
||||
"release_shear_axes": "",
|
||||
"release_shear_displacement": 0.0,
|
||||
"release_shear_displacement_samples": 6,
|
||||
"release_shear_displacement_samples": 3,
|
||||
"release_object_lost_open": False,
|
||||
"release_open_speed": 55,
|
||||
"release_open_speed": 80,
|
||||
"release_open_accel": 70,
|
||||
"release_open_decel": 70,
|
||||
"release_arm_delay_seconds": 0.28,
|
||||
"release_min_hold_seconds": 0.65,
|
||||
"release_min_hold_seconds": 0.4,
|
||||
"release_settle_seconds": 0.12,
|
||||
"release_min_change": 0.08,
|
||||
"release_touch_window_seconds": 0.14,
|
||||
"release_side_touch_change": 0.12,
|
||||
"release_confirm_window_seconds": 0.14,
|
||||
"release_sample_timeout_seconds": 0.2,
|
||||
"release_confirm_samples": 4,
|
||||
"release_confirm_samples": 3,
|
||||
"release_slow_confirm_samples": 8,
|
||||
"release_normal_rate": 2.6,
|
||||
"release_shear_rate": 2.4,
|
||||
@@ -181,22 +182,24 @@ _STABLE_PROFILE = {
|
||||
# Full clamp swings Y by several N and flips sign, so onset confirmation
|
||||
# keeps cancelling; open on sustained fitted Y displacement instead.
|
||||
"release_shear_displacement": 0.6,
|
||||
"release_shear_displacement_samples": 6,
|
||||
"release_shear_displacement_samples": 4,
|
||||
# The close command keeps pushing: reaching close_pos means the object is gone.
|
||||
"release_object_lost_open": True,
|
||||
"release_open_speed": 55,
|
||||
"release_open_speed": 80,
|
||||
"release_open_accel": 70,
|
||||
"release_open_decel": 70,
|
||||
"release_arm_delay_seconds": 0.55,
|
||||
# Protection: no release of any kind within 2s of contact.
|
||||
"release_min_hold_seconds": 2.0,
|
||||
# Protection: no release of any kind within 0.7 s of contact.
|
||||
"release_min_hold_seconds": 0.7,
|
||||
"release_settle_seconds": 0.22,
|
||||
"release_min_change": 0.12,
|
||||
"release_touch_window_seconds": 0.22,
|
||||
"release_side_touch_change": 0.24,
|
||||
"release_confirm_window_seconds": 0.28,
|
||||
"release_sample_timeout_seconds": 0.3,
|
||||
"release_confirm_samples": 8,
|
||||
# Unused by the displacement release; kept equal to its frame count so the
|
||||
# stability bar scales the sensitive confirm 3 -> 4 instead of toward 8.
|
||||
"release_confirm_samples": 4,
|
||||
"release_slow_confirm_samples": 12,
|
||||
"release_normal_rate": 4.0,
|
||||
"release_shear_rate": 3.6,
|
||||
@@ -230,8 +233,10 @@ _STABLE_PROFILE = {
|
||||
_FIRM_PROFILE = {
|
||||
**_STABLE_PROFILE,
|
||||
**_constant_force(100),
|
||||
"release_min_hold_seconds": 2.5,
|
||||
"release_min_hold_seconds": 1.0,
|
||||
"release_shear_displacement": 0.8,
|
||||
"release_shear_displacement_samples": 6,
|
||||
"release_confirm_samples": 6,
|
||||
}
|
||||
|
||||
GRIP_BEHAVIOR_PROFILES = {
|
||||
|
||||
@@ -3018,7 +3018,7 @@ class VisualSettingsDialog(QDialog):
|
||||
"adaptive_force_step": "自适应加力步进",
|
||||
"adaptive_force_interval": "自适应加力间隔",
|
||||
"release_arm_delay_seconds": "自运动执行后保护时间 (s)",
|
||||
"release_min_hold_seconds": "接触法向保护 (s,侧触不等待)",
|
||||
"release_min_hold_seconds": "夹持保护期 (s,接触后多久才允许张开)",
|
||||
"release_settle_seconds": "脉冲/断流恢复保护上限 (s)",
|
||||
"release_min_change": "突变/轻触释放最小力变化",
|
||||
"release_touch_window_seconds": "新外力起始证据有效期 (s,非等待时间)",
|
||||
@@ -3516,7 +3516,11 @@ class VisualSettingsDialog(QDialog):
|
||||
if mode == "sensitive":
|
||||
parts.append(f"确认 {profile['release_confirm_samples']} 帧")
|
||||
else:
|
||||
parts.append(f"张开阈值 Y 偏移 {profile['release_shear_displacement']:.2f} N")
|
||||
parts.append(
|
||||
f"张开阈值 Y 偏移 {profile['release_shear_displacement']:.2f} N"
|
||||
f" × {profile['release_shear_displacement_samples']} 帧"
|
||||
)
|
||||
parts.append(f"张开速度 {profile['release_open_speed']}%")
|
||||
return " · ".join(parts)
|
||||
|
||||
def _on_level_changed(self, level):
|
||||
|
||||
Binary file not shown.
@@ -1 +0,0 @@
|
||||
5675c6f6400b3d9b3d27602c4639c307cb35d0357e658ec5c344aebdc7eba7c0 GripperDemo02-ubuntu22.04-x86_64-lite-20260922.tar.gz
|
||||
Binary file not shown.
@@ -1 +0,0 @@
|
||||
4cea5bb537733c23893471158412e7f224be75fad57f29c17efdc05d2ae53649 GripperDemo02-ubuntu24.04-aarch64-lite-20260928.tar.gz
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
31be215931dd689ab774c9817196ce5fe5e130dee3230831421871c702bb59ed GripperDemo02-ubuntu24.04-aarch64-lite-20261008.tar.gz
|
||||
afdec27bff2e0e4d5dc43f1678272eae8456336fd8cf4f0c6e0aee260abd8fa7 GripperDemo02-ubuntu24.04-aarch64-lite-20261008.tar.gz
|
||||
|
||||
Binary file not shown.
@@ -1 +0,0 @@
|
||||
8307c8fe39a850275c09b7a4092584216b8ee1bf7891ec0da12737604e7905d0 GripperDemo02-ubuntu26.04-x86_64-lite-20260922.tar.gz
|
||||
Binary file not shown.
@@ -1 +0,0 @@
|
||||
5f66fb92f4f3f17d129106fd436aeb56d5019f3d36f9dd81ae8a99ce847d6a69 GripperDemo02-windows-x64-lite-20260922.zip
|
||||
Reference in New Issue
Block a user