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:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user