减小安全约束

This commit is contained in:
cyy_mac
2026-06-20 20:17:30 +08:00
parent 5ecd422a59
commit 0e6c90a868
3 changed files with 16 additions and 7 deletions

View File

@@ -46,8 +46,10 @@ def main():
p.add_argument('--state', default=None)
p.add_argument('--max-steps', type=int, default=5000)
p.add_argument('--freq-hz', type=float, default=1.0)
p.add_argument('--power-factor', type=int, default=1, choices=range(1, 11),
help='PowerProtect 1-10, 越大越宽松')
p.add_argument('--power-factor', type=int, default=5, choices=range(1, 11),
help='PowerProtect 1-10 (默认 5 = 50%% 力矩)')
p.add_argument('--pos-protect', type=float, default=None,
help='软位置保护阈值 rad (默认 None=关闭, 200步插值会误触发)')
args = p.parse_args()
signal.signal(signal.SIGINT, sigint)
@@ -126,7 +128,7 @@ def main():
try:
apply_safety(cmd, state, power_factor=args.power_factor,
position_limit_on=True,
position_protect_limit=0.5)
position_protect_limit=args.pos_protect)
except PowerProtectViolation as e:
print(f'\n⚠️ {e}')
break

View File

@@ -34,6 +34,10 @@ def main():
p.add_argument('--duration', type=float, default=60)
p.add_argument('--hip-range', type=float, default=0.4, help='hip 摆幅 (rad)')
p.add_argument('--thigh-range', type=float, default=0.5, help='thigh 摆幅 (rad)')
p.add_argument('--power-factor', type=int, default=3,
help='PowerProtect 1-10 (默认 3 = 30%% 力矩)')
p.add_argument('--pos-protect', type=float, default=None,
help='软位置保护阈值 rad (默认 None = 关闭, 摇杆遥控时建议关闭避免误触发)')
args = p.parse_args()
signal.signal(signal.SIGINT, sigint)
@@ -72,8 +76,8 @@ def main():
mode=MotorMode.Servo, q=q, dq=0, tau=0, Kp=3, Kd=0.5)
try:
apply_safety(cmd, state, power_factor=1,
position_protect_limit=0.5)
apply_safety(cmd, state, power_factor=args.power_factor,
position_protect_limit=args.pos_protect)
except PowerProtectViolation as e:
print(f'\n⚠️ {e}')
break

View File

@@ -34,7 +34,10 @@ def main():
p.add_argument('--amplitude', type=float, default=0.3, help='sin 振幅 (rad)')
p.add_argument('--freq', type=float, default=0.5, help='sin 频率 (Hz)')
p.add_argument('--duration', type=float, default=10)
p.add_argument('--power-factor', type=int, default=1)
p.add_argument('--power-factor', type=int, default=3,
help='PowerProtect 1-10 (默认 3 = 30%% 力矩, factor=1 太严容易拉不动)')
p.add_argument('--pos-protect', type=float, default=None,
help='软位置保护阈值 rad (默认 None=关闭. sin 振幅过大会误触发)')
args = p.parse_args()
signal.signal(signal.SIGINT, sigint)
@@ -86,7 +89,7 @@ def main():
try:
apply_safety(cmd, state, power_factor=args.power_factor,
position_protect_limit=0.5)
position_protect_limit=args.pos_protect)
except PowerProtectViolation as e:
print(f'⚠️ {e}')
break