init pro_sdk

This commit is contained in:
cyy_mac
2026-06-20 20:02:36 +08:00
commit 5ecd422a59
49 changed files with 4226 additions and 0 deletions

View File

@@ -0,0 +1,78 @@
#!/usr/bin/env python3
"""实时监听遥控器状态 (按键 + 摇杆 + L2).
用法: python examples/monitor_remote.py --duration 60
"""
import argparse
import signal
import sys
import time
from go1_pro_sdk import MCUClient, LowCmd
running = True
def sigint(s, f):
global running
running = False
def main():
p = argparse.ArgumentParser()
p.add_argument('--state', default=None)
p.add_argument('--duration', type=float, default=60)
p.add_argument('--raw', action='store_true')
args = p.parse_args()
signal.signal(signal.SIGINT, sigint)
with MCUClient(state_path=args.state) as client:
recv = client.wake_mcu(50)
if recv == 0:
print('❌ 无回包')
return 1
damping = LowCmd().all_damping()
last_btn = 0
last_print = 0
start = time.time()
print(f'📡 监听遥控器 {args.duration}s, Ctrl+C 退出\n')
while running and time.time() - start < args.duration:
client.send(damping)
time.sleep(0.005)
state = client.recv_latest()
if state is None:
continue
r = state.remote
now = time.time()
# 按键事件
if r.btn != last_btn:
pressed_now = set(r.pressed)
pressed_before = set(n for m, n in __import__('go1_pro_sdk').BUTTON_NAMES if last_btn & m)
just_p = pressed_now - pressed_before
just_r = pressed_before - pressed_now
if just_p:
print(f"[{now-start:6.2f}s] ⬇ {'+'.join(sorted(just_p))}")
if just_r:
print(f"[{now-start:6.2f}s] ⬆ {'+'.join(sorted(just_r))}")
last_btn = r.btn
# 摇杆 (0.2s 一次)
if now - last_print > 0.2:
active = (abs(r.lx) > 0.02 or abs(r.ly) > 0.02 or
abs(r.rx) > 0.02 or abs(r.ry) > 0.02 or r.L2 > 0.02)
if active:
print(f'[{now-start:6.2f}s] L=({r.lx:+.2f},{r.ly:+.2f}) '
f'R=({r.rx:+.2f},{r.ry:+.2f}) L2={r.L2:+.2f}'
+ (f' raw={state.wirelessRemote.hex()}' if args.raw else ''))
last_print = now
print('\n✅ 退出')
if __name__ == '__main__':
sys.exit(main() or 0)