80 lines
1.7 KiB
Markdown
80 lines
1.7 KiB
Markdown
# Tools
|
|
|
|
一次性诊断/校准工具. 不是 SDK 核心.
|
|
|
|
## 密钥提取
|
|
|
|
### extract_blowfish_key.sh
|
|
|
|
在狗上 (Pi) 运行, 从 Legged_sport 进程内存提取 Blowfish state.
|
|
|
|
```bash
|
|
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.
|
|
|
|
```bash
|
|
python tools/analyze_blowfish_dump.py blowfish_dump.tar.gz
|
|
```
|
|
|
|
## 校准
|
|
|
|
### calibrate_joints.py
|
|
|
|
手动转动法测每个关节真实活动范围.
|
|
|
|
```bash
|
|
# 狗悬空 + L2+B damping, 然后:
|
|
python tools/calibrate_joints.py --duration 90
|
|
# 慢慢把每条腿的每个关节转到极限
|
|
# 退出时输出 JOINT_LIMITS_MEASURED 字典, 可粘贴到 utils/constants.py
|
|
```
|
|
|
|
## 抢占源管理
|
|
|
|
### stop_sportmode.sh
|
|
|
|
```bash
|
|
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
|
|
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
|
|
bash tools/capture_lowcmd.sh 3
|
|
```
|
|
|
|
### diff_real_lowcmd.sh + _compare_lowcmd.py
|
|
|
|
抓真实包 + 跟本地 buildCmd 输出做字节级 diff. 用于发现协议细节差异.
|
|
|
|
```bash
|
|
bash tools/diff_real_lowcmd.sh 3
|
|
```
|