Tools
一次性诊断/校准工具. 不是 SDK 核心.
密钥提取
extract_blowfish_key.sh
在狗上 (Pi) 运行, 从 Legged_sport 进程内存提取 Blowfish state.
scp tools/extract_blowfish_key.sh pi@192.168.123.161:/tmp/
ssh pi@192.168.123.161 "sudo bash /tmp/extract_blowfish_key.sh"
scp pi@192.168.123.161:/tmp/blowfish_dump.tar.gz ./
analyze_blowfish_dump.py
Mac 端解析 dump, 找出 4168 字节 state.
python tools/analyze_blowfish_dump.py blowfish_dump.tar.gz
校准
calibrate_joints.py
手动转动法测每个关节真实活动范围.
# 狗悬空 + L2+B damping, 然后:
python tools/calibrate_joints.py --duration 90
# 慢慢把每条腿的每个关节转到极限
# 退出时输出 JOINT_LIMITS_MEASURED 字典, 可粘贴到 utils/constants.py
抢占源管理
stop_sportmode.sh
bash tools/stop_sportmode.sh stop # 杀 keep_sport_alive + Legged_sport + appTransit
bash tools/stop_sportmode.sh start # 恢复
bash tools/stop_sportmode.sh status # 看当前状态
run_on_mac.sh
一键流程: 停抢占源 → 跑测试 → (手动恢复).
bash tools/run_on_mac.sh example
bash tools/run_on_mac.sh monitor
bash tools/run_on_mac.sh stop
bash tools/run_on_mac.sh start
run_on_pi.sh
把测试脚本部署到 Pi 上跑 (源 IP 跟 Legged_sport 一致, 现在不需要了, 但保留作为备选).
协议研究
capture_lowcmd.sh + _raw_capture.py
Pi 端 tcpdump 抓 Legged_sport 真实发送的 LowCmd 流量.
bash tools/capture_lowcmd.sh 3
diff_real_lowcmd.sh + _compare_lowcmd.py
抓真实包 + 跟本地 buildCmd 输出做字节级 diff. 用于发现协议细节差异.
bash tools/diff_real_lowcmd.sh 3