From 0e6c90a86806ef43bc9e5ed806a77c83af63b7e5 Mon Sep 17 00:00:00 2001 From: cyy_mac Date: Sat, 20 Jun 2026 20:17:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=8F=E5=B0=8F=E5=AE=89=E5=85=A8=E7=BA=A6?= =?UTF-8?q?=E6=9D=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/example_position.py | 8 +++++--- examples/example_remote_control.py | 8 ++++++-- examples/example_sin_leg.py | 7 +++++-- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/examples/example_position.py b/examples/example_position.py index 58735a1..76b4ef8 100644 --- a/examples/example_position.py +++ b/examples/example_position.py @@ -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 diff --git a/examples/example_remote_control.py b/examples/example_remote_control.py index ec2cad2..230c777 100644 --- a/examples/example_remote_control.py +++ b/examples/example_remote_control.py @@ -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 diff --git a/examples/example_sin_leg.py b/examples/example_sin_leg.py index 91e1cb1..d2a3469 100644 --- a/examples/example_sin_leg.py +++ b/examples/example_sin_leg.py @@ -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