feat(pybot): 进程内实时预测闭环(--loop)与帧源/节拍修复
- 新增 run_loop 闭环:F 帧+H 步历史双滑窗,冷启动重复同帧+零动作, 每步 采样→推理→执行→回写,hz 节拍控制,可选同步录制 - --loop CKPT/--hz/--loop-steps 参数,按 .hef 后缀选 Hailo/PyTorch 后端, actpred 软依赖(仅 --loop 时 import),保持 pybot 零依赖 - P1-2 帧源修复:闭环改从 camera 守护线程队列取最近 F 帧(低延迟), 替代 capture() 同步曝光阻塞,framerate/capacity 配置真正生效 - P1-1 overrun 告警:超时步记录实际耗时,汇总 overrun 比例并给降频建议 - 剔除 Speaker.delay 发声阻塞,speaker 补 delay=0 非阻塞 - 新增 tests/test_loop.py 11 用例(冷启动/历史滑动/索引映射/帧源等)
This commit is contained in:
1 parent
5af863a2c5
commit
fe12dd7b33
4 files changed
+477
-2
No files matched your search
+19
-1
@@ -28,9 +28,27 @@ cat scripts/std.mt | ./_run.sh # 与 bot4cj 相同的管道用法
|
||||
./_run.sh --dry-run scripts/std.mt # Mock 总线,动作序列到 stdout
|
||||
./_run.sh --test roundtrip in.mt out.mt # 解析↔序列化往返自检
|
||||
./_run.sh --verbose scripts/std.mt # DEBUG 日志(stderr)
|
||||
./_run.sh --record data/ep scripts/std.mt # 录制 actpred 格式 episode
|
||||
```
|
||||
|
||||
`-i` / `-o` 参数位保留(reserved),未来对接 [actpred](../actpred/) 动作预测。
|
||||
`-i` / `-o` 参数位保留(reserved),未来对接跨进程 FIFO。
|
||||
|
||||
### 实时预测闭环(`--loop`)
|
||||
|
||||
`--loop CKPT` 进入进程内闭环:采样 → actpred 推理 → 执行 → 回写历史。
|
||||
脚本提供硬件配置与 `@Action` 表头(动作向量索引映射),不执行脚本动作行。
|
||||
|
||||
```bash
|
||||
./_run.sh --loop ../actpred/checkpoints/best_inference.pt --hz 10 scripts/std.mt
|
||||
./_run.sh --loop actpred_pretrain.hef --hz 20 --loop-steps 100 scripts/std.mt # NPU 后端
|
||||
```
|
||||
|
||||
- checkpoint 后缀 `.hef` → Hailo NPU 后端,否则 → PyTorch 后端
|
||||
- `hz` 须 ≥ 推理 + 执行耗时(ONNX ~11ms / Hailo ~12ms,hz ≤ 50 安全)
|
||||
- `@Action` 表头列数须 ≤ `action_dim`(默认 18),闭环中跳过 `spk.delay` 阻塞
|
||||
- **帧源**:闭环从 camera 守护线程队列取最近 F 帧(无阻塞),`@Camera` 的
|
||||
`framerate` 建议 ≥ 2×`hz` 以保证帧新鲜度;`capacity` 应 ≥ F(帧窗长度)。
|
||||
部署时若日志出现 `loop overrun` 告警,说明 `hz` 超过推理+执行能力,应降低 `hz`
|
||||
|
||||
## 目录
|
||||
|
||||
|
||||
Reference in new issue
Block a user