Files
lerobot_learn/docs/progress.md
T

85 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 项目进度追踪
更新于 2026-09-10 16:46:43(Asia/Shanghai)。本文件记录执行状态与证据;架构和验收标准见 [PLAN](../PLAN.md),操作步骤见 [ACT 抓放指南](act_block_white_box.md)。状态是更新时快照,不会随后台训练自动刷新。
## 当前状态
已进入 P1:一套 SO101 主从臂完成遥操、双摄像头采集;正在 RTX 3080 上用 5 条真实示范训练 ACT。训练尚未完成,尚未执行自主抓放或测量任务成功率。3090 未验收,桌面双从臂及移动底盘仍在后续阶段。
| 项目 | 状态 | 证据 / 说明 |
|---|---|---|
| 3080 软件基础环境 | 已验证 | LeRobot 0.6.1;早期合成数据检查见 P0 报告 |
| 主从臂装配、编号、校准 | 已完成基础调试 | zihao 主从 ID;当前采集链路可用 |
| wrist_roll 主从零点 | 已对齐 | 两边各 5 次回读均为 2047,约 −0.044° |
| 无 / 单 / 双摄像头遥操 | 启动脚本已提供 | 自动激活环境,固定 USB 路径 |
| 双摄像头采集 | 已验证 | 两路同时各读 80 帧无失败;真实数据全量解码通过 |
| 5 条积木放入白盒示范 | 已保存并检查结构 | 3379 帧,25 FPS,135.16 秒 |
| NVIDIA 驱动修复 | 已验证 | 580.173.02;重启后 CUDA 训练可用 |
| ACT 20 步短训练 | 已通过 | 检查点保存及重新加载通过 |
| ACT 20000 步训练 | 进行中 | 用户级 systemd 服务;见下方快照 |
| 真机自主执行 / 成功率 | 未开始 | 正式模型完成后验证 |
## 当前训练
- 数据:`local/block_white_box_v1`,本机 `data/block_white_box_v1`,未上传 Hub。
- 任务:`Pick up the block and place it in the white box.`
- 输入:`wrist`、`front` 两路 RGB + 6 维关节状态;输出 6 维动作。
- ACT:实际配置 51,597,190 参数;batch=8,steps=20000,lr=1e-5,seed=42,chunk_size=100,FP32。
- 每 2000 步保存检查点;没有保留验证集,这 5 条全部参与训练。
- 输出:`outputs/train/act_block_white_box_20260910_1642/`。
- 日志:`outputs/train/act_block_white_box_20260910_1642.log`。
- 服务:`act-block-white-box.service`,用户级临时服务;不会在重启后自动恢复。
- 最近指标:`step:2K smpl:18K ep:26 epch:5.21 loss:1.063 grdn:49.164 lr:1.0e-05 updt_s:0.156 data_s:0.002 smp/s:51 mem_gb:3.71 l1_loss:0.209 kld_loss:0.085`。
- 初始速度约 6~7 步/秒;PyTorch 报告训练显存约 3.73 GB,nvidia-smi 整卡占用约 4.9 GB。预计约 50 分钟,实际以日志为准。
- 短训练输出:`outputs/train/act_block_white_box_smoke_20260910_1640/`;20 步检查点已重载。
- `act_block_white_box_20260910_1641` 是未持续运行的启动尝试,不是当前有效训练目录。
```bash
systemctl --user status act-block-white-box --no-pager
tail -f outputs/train/act_block_white_box_20260910_1642.log
```
训练损失不代表真机成功率。完成后需要验证最终检查点和处理器加载,再单次真机执行、逐次记录结果。模型和数据在 git 忽略目录中,不随代码提交。
## 数据检查与已知限制
| 示范(从 1 开始) | 帧数 | 时长(秒) |
|---|---:|---:|
| 1 | 653 | 26.12 |
| 2 | 714 | 28.56 |
| 3 | 669 | 26.76 |
| 4 | 618 | 24.72 |
| 5 | 725 | 29.00 |
两路视频各解码 3379 帧,与动作表一致;所有状态、动作均为有限值,frame_index 连续,记录时间戳步长约 0.04 秒。时间戳规则不能单独证明真实采集无延迟或两路曝光严格同步。
已查看样帧:腕部夹爪和积木清楚;外部视角被机械臂遮挡较多,盒子部分出框。尚未逐帧确认每条任务成功。用户决定保留当前视角并直接使用这组数据训练,先取得基线。不要把这 5 条当作泛化能力证据。
## 硬件与校准记录
- 从臂 ID:`zihao_follower_arm`;固定串口末尾 `5B91044223-if00`。
- 主臂 ID:`zihao_leader_arm`;固定串口末尾 `5B8E115693-if00`。
- 校准文件:`~/.cache/huggingface/lerobot/calibration/robots/so_follower/zihao_follower_arm.json` 和 `~/.cache/huggingface/lerobot/calibration/teleoperators/so_leader/zihao_leader_arm.json`。
- 2026-09-09 wrist_roll 在相同物理姿态重新定零:从臂偏移 1687 → 737;主臂 1630 → 1749。旧文件备份后缀 `.bak_wrist_zero_20260909_183517_030072`。这些数值仅适用于本机,不应复制到其他机械臂。
- 腕部相机 Integrated Webcam:640×480 MJPG、30 FPS;外部 USB2.0 CAM1:640×480 MJPG、25 FPS。脚本固定 by-id 路径,数据按 25 FPS 记录。
- 历史故障:从臂 2 号电机启用扭矩曾收到 `Incorrect status packet!`;之后完成采集,但根因未最终确认,不标记为彻底修复。
## 驱动故障与恢复
2026-09-10 发现运行内核为 `7.0.0-31-generic`,原 NVIDIA 550 模块仅存在于旧内核 `6.14.0-27-generic`。Secure Boot 关闭。安装当前内核对应的 580 驱动后重启,nvidia-smi 显示 580.173.02,真实 ACT CUDA 训练通过。
后续内核升级后先检查 `nvidia-smi` 及环境中的 `torch.cuda.is_available()`。训练脚本已加入 CUDA 检查,避免无声回退到 CPU。
## 下一步
- [ ] 确认 20000 步训练正常结束、最终检查点可加载。
- [ ] 使用当前相机布局进行单次自主抓放,记录结果与异常。
- [ ] 统计多次成功率,区分抓取失败、放置失败和通信失败。
- [ ] 根据基线结果决定改善外部视角、补充示范及保留验证任务。
## 更新记录
- 2026-09-08:3080 基础环境、视频与合成 ACT 流程验收。
- 2026-09-09:主从臂调试、wrist_roll 对齐、双摄像头连通与三个遥操作脚本。
- 2026-09-10:中文录制阶段横幅、5 条示范检查、驱动恢复、真实数据 ACT 短训练及正式训练启动。