Refine robot milestones and make GPU setup reproducible
This commit is contained in:
@@ -1,222 +1,128 @@
|
||||
# 方案:LeRobot 双臂移动 VLA 机器人(可自行训练)
|
||||
# LeRobot 双臂移动操作项目方案
|
||||
|
||||
> 本文件是项目的「单一事实来源」(single source of truth)。所有决策、预算、阶段、命令、待办都以此为准,随进展更新。
|
||||
> 最后更新:_P0 定稿(双 GPU 机版:3080 主家 + 3090 训练)_
|
||||
> 决策与阶段验收以本文件为准。更新:2026-09-08,设计评审修订。
|
||||
> 当前 P0:已有规划与环境脚本,尚无 GPU 环境、训练效果或真机验收结果。
|
||||
|
||||
---
|
||||
## 1. 目标与边界
|
||||
|
||||
## 0. 目标(一句话)
|
||||
基于 LeRobot,完成“人工遥操示范 → 数据采集 → 策略训练 → 真机执行”的闭环,逐步扩展至桌面双臂与移动操作。
|
||||
|
||||
复刻 LeRobot 工作流,造一台**会走(LeKiwi 底盘)+ 双手协作(2×SO-101)+ 语言/视觉驱动(VLA)+ 能自己采集数据并训练**的移动操作机器人。
|
||||
首个交付是单臂固定场景抓放;整机首个交付是“移动到位 → 停稳 → 抓取 → 收臂 → 移动 → 放置”。边移动边双臂操作、一个 VLA 统一控制整机,列为后续探索目标。
|
||||
|
||||
**核心思路**:不重写 LeRobot,而是**站在 LeRobot 框架上组装这台特定机器人**;架构上采用「**瘦边 + 厚芯**」——机器人只带一块便宜的驱动板(RPi 5)做实时控制,**推理放 3080 主家(挨着机器人)、训练放 3090(24GB)**,走局域网。
|
||||
“可自行训练”指使用自己的示范数据训练模型。自主探索、自动成功判定、自动恢复与持续学习尚无实现,不作为当前交付承诺。
|
||||
|
||||
**协作模型**(详见 [env/machines.md](env/machines.md)):
|
||||
- **3080 机(10GB · 本地 Ubuntu · 机器人旁)= 主家**:开发 + 臂(USB) + 遥操/采数 + **推理部署** + P4 policy server。
|
||||
- **3090 机(24GB · 远程 SSH · 同局域网)= 训练专用**:只跑训练;数据集/模型经 HF Hub(或 rsync)流转。
|
||||
- **本 Windows 机 = 写字台**:我(agent)写代码/配置/文档 → **你 push 到 git 库** → 两台 GPU 机 clone/pull。
|
||||
- 我无外网 → **我产出,你在两台机器上跑并粘回输出,我迭代**。
|
||||
## 2. 技术决策
|
||||
|
||||
---
|
||||
|
||||
## 1. 决策总表(已拍板)
|
||||
|
||||
| 项 | 决策 | 备注 |
|
||||
| 项目 | 决策 | 约束 |
|
||||
|---|---|---|
|
||||
| 框架 | **LeRobot**(HF 官方,Py3.12, Transformers v5;最新 0.6.0) | 官方旗舰生态;装时取最新 stable |
|
||||
| 机械臂 | **4× SO-101**(2 leader + 2 follower) | 双臂遥操 = 2 主 + 2 从;6DOF + 夹爪;自印有 3D 打印机 |
|
||||
| 底盘 | **LeKiwi**(三轮全向,Feetech STS3215,Seeed 12V 版) | SO-101 专用移动底盘,LeRobot 原生 `.[lekiwi]` |
|
||||
| 上机驱动板 | **RPi 5 (8GB)** + 有源 USB Hub | 只管实时控制/采图/执行/fail-safe,不做 ML |
|
||||
| 主家(开发+推理) | **3080 机(本地 Ubuntu · 10GB · 机器人旁)** | 臂 USB 直插;遥操/采数/推理部署;P4 policy server 在它上面 |
|
||||
| 训练专用 | **3090 机(远程 SSH · 24GB)** | 只跑 lerobot-train;与 3080 同局域网(rsync 直传 / π0 代推) |
|
||||
| 富余算力 | **AWU408 双 DRIVE Orin**(空闲,非关键路径) | 3090 忙训练时可顶推理 / 或做固定台 |
|
||||
| 相机 | **3× USB 相机**(1 前置全局 + 2 腕部) | USB 最通用,适配 RPi5/3080 |
|
||||
| VLA 主力 | **SmolVLA (4.5亿)** | 单卡可全量训、10GB 卡可推理、异步分块天生适合分布式 |
|
||||
| VLA 验证/起步 | **ACT**(小、快) | P1 先证明"能学会" |
|
||||
| VLA 上限 | **π0-FAST**(自回归,~3B,LoRA 微调) | 算力宽裕后的 SOTA |
|
||||
| 架构演进 | P1/P2 **单机**(3080 直连臂) → P4 **拆分**(RPi5↔局域网↔3080) | 先最快出结果,再长成分布式 |
|
||||
| 预算 | **~¥6500-8000**(自印可更低) | 落在 ¥5000–10000 内(详见 [hw/bom.md](hw/bom.md)) |
|
||||
| 框架 | LeRobot **0.6.1 / Python 3.12** | 锁定依赖,不自动跟随 main;升级必须复验 |
|
||||
| 单臂基线 | ACT | 模仿学习策略,不作为语言理解证明 |
|
||||
| VLA | SmolVLA 450M 预训练基座微调 | 记录冻结模块;默认微调不等于全参数解冻 |
|
||||
| 大模型 | π0-FAST 等仅作后续候选 | LoRA、量化支持、显存及任务收益均需实测 |
|
||||
| 机械臂 | P1:1 leader + 1 follower;P2 再加各 1 条 | SO-101 为 5 个臂关节 + 夹爪,共 6 个电机 |
|
||||
| 底盘 | LeKiwi | 双臂安装、重心、供电与桌面可达性先验证 |
|
||||
| 采集/推理 | 3080 10GB,机器人旁 Ubuntu 主机 | P1/P2 USB 直连;测实际显存和延迟 |
|
||||
| 训练 | 3090 24GB,同局域网 Ubuntu 主机 | 小 batch 起步,按峰值显存调参 |
|
||||
| 上机计算 | RPi 5,P3 前采购 | 采图、驱动、执行和超时处理;不宣称硬实时 |
|
||||
| 调度与导航 | 先状态机;有定位/建图/避障需求再考虑 ROS 2/Nav2 | 导航与学习策略分层验收 |
|
||||
| 网络推理 | 优先官方 PolicyServer/RobotClient | 验证锁定版本支持范围,仅补组合适配与故障处理 |
|
||||
| 数据流 | 同局域网优先 rsync,HF Hub 可选 | 数据、模型、处理器、配置与校准成套留存 |
|
||||
| Orin | 不在关键路径 | 另行验证系统和运行时兼容性 |
|
||||
|
||||
---
|
||||
v0.6.1 已有 `BiSOFollower`,P2 优先复用;双臂加底盘的组合 robot、遥操与动作定义仍需适配。LeKiwi 已有远程链路,不从零实现整个网络层。Async 与 RTC 是不同机制,先跑同步基线,再分别评估。
|
||||
|
||||
## 2. 硬件 BOM(采购清单)
|
||||
## 3. 架构与接口
|
||||
|
||||
> 完整链接/店铺/状态见 **[hw/bom.md](hw/bom.md)**。这里给概览。
|
||||
P1/P2:leader/follower/相机 → USB → 3080(采集与执行);数据经 rsync 到 3090 训练,checkpoint 与处理器回传 3080。
|
||||
|
||||
| # | 部件 | 数量 | 参考价 (¥) | 小计 | 说明 |
|
||||
|---|---|---|---|---|---|
|
||||
| 1 | SO-ARM101(含 3D 打印件+舵机+驱动板+电源) | 4 | ~879 | **~3500** | 2L+2F;淘宝现货树脂版最省;自印可降 |
|
||||
| 2 | LeKiwi 底盘(12V,Seeed 含打印件+电池) | 1 | ~1800 | **~1800** | 或 base-only 12V ~¥1501 自印结构件 |
|
||||
| 3 | RPi 5 (8GB) + 27W 电源 + 有源 USB Hub + 存储 | 1 套 | ~800 | **~800** | 上机驱动板 |
|
||||
| 4 | USB 相机(1 前置 + 2 腕部) | 3 | ~130 | **~400** | 1080P 免驱;或 ¥138 双相机套件 |
|
||||
| 5 | 线束/夹具/耗材/电源/网线 等杂项 | — | — | **~600** | |
|
||||
| | **合计** | | | **~¥7100-8000** | P1 起步(2臂)~¥3300 |
|
||||
P3/P4:RPi 负责本机硬件,3080 负责操作策略;状态机负责移动、到位确认、操作与失败退出。优先复用 LeKiwi 与官方异步接口,避免叠加不必要的图像转发链路。`server/`、`client/` 目前仅是占位目录。
|
||||
|
||||
**已拥有(0 成本)**:3080 机(10GB·主家)、3090 机(24GB·训练)、AWU408 双 Orin、3D 打印机、本 Windows 开发机。
|
||||
实施前固定以下契约并写入版本化配置:
|
||||
|
||||
**关键提醒**:
|
||||
- SO-101 **打印件**:官方 STL 可 FDM(PLA) 或光固化;Leader 臂用**轻负载齿轮**才捏得动;**电机 ID 按顺序烧录**。
|
||||
- 4 条臂 = **2 leader(遥操主手)+ 2 follower(执行从手)**。P1 先买/用 2 条(1L+1F),P2 再补 2 条。
|
||||
- LeKiwi 顶板 **M3 螺孔**直接固定 SO-101 底座;12V 底盘自带 12V→5V 降压给 5V 臂。
|
||||
- 状态/动作字段顺序、左右臂前缀、关节单位、夹爪范围、底盘坐标系与速度单位;训练与执行使用同一归一化及处理器。
|
||||
- 相机名、序列号/稳定设备路径、分辨率、帧率、曝光与安装位置;相机变化视为数据分布变化。
|
||||
- 图像和本体状态时间、观测编号、动作对应观测编号、动作序号与有效期;跨主机时钟对齐方式及误差。
|
||||
- 关节限位、每步最大变化量、底盘限速、队列长度、过期丢弃、队列耗尽和重连规则。
|
||||
|
||||
---
|
||||
网络预算:三路 640×480 RGB 10fps 原始图像约 221Mbps;三路 1080p 同配置约 1.49Gbps(不含协议开销)。明确压缩格式,测编码、传输、解码、推理与执行延迟,记录 P50/P95/P99、丢帧与队列耗尽次数。10Hz 观测、20–30Hz 执行、200–500ms 分块仅为候选参数,不是已满足指标。
|
||||
|
||||
## 3. 系统架构
|
||||
### 故障处理
|
||||
|
||||
### 3.1 目标态(P4 整机自主)——瘦边 + 厚芯
|
||||
本机执行约束不能依赖模型服务在线。网络超时/动作过期时底盘停止,旧队列失效;手臂根据姿态与负载采用经验证的保持/受控停止,不默认回中位或直接失去支撑。重连需显式重新使能,不继续播放旧动作。
|
||||
|
||||
```
|
||||
算力层(拆两台,同一局域网)
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ 3080(10GB)=推理芯 · 挨着机器人: │
|
||||
│ · 遥操(P1/P2:接 leader 臂)/ 采数 │
|
||||
│ · policy server(obs→action chunk) │
|
||||
│ · 数据集管理 / HF Hub 上传下载 │
|
||||
│ 3090(24GB)=训练芯: │
|
||||
│ · SmolVLA 全量 / π0-FAST LoRA │
|
||||
│ (数据集·模型经 HF Hub / rsync 两机流转) │
|
||||
└────────────────────────┬────────────────────┘
|
||||
│ 局域网 (1Gbps 有线最稳)
|
||||
上行: 3相机 + 本体状态(低频~10Hz)
|
||||
下行: 动作chunk(每 200~500ms 一批 K 步)
|
||||
│
|
||||
┌────────────────────────┴────────────────────┐
|
||||
│ 移动机器人 = LeKiwi 底盘 + 2×SO-101(follower) │
|
||||
│ RPi 5 驱动板: │
|
||||
│ · USB: 左/右臂舵机 + 3 底盘轮 (实时 20~30Hz) │
|
||||
│ · USB: 3 相机 (采集 → 推给算力层) │
|
||||
│ · 执行: 收 chunk → 实时插值下发 │
|
||||
│ · 安全: 断链 watchdog → 底盘停 / 臂缓回中位 │
|
||||
└─────────────────────────────────────────────┘
|
||||
```
|
||||
P1 起验证停止手段、限位、限速与人工接管。P3 前定义最大允许停车时间和距离。P4 注入断网、推理进程退出、相机卡死、乱序/过期动作和队列耗尽;记录触发到停止的时间及位移。Python watchdog 不等于完整硬件安全保证。
|
||||
|
||||
**为什么这样**:VLA 每 200~500ms 只算"一小批"未来动作(异步分块),网络只传"几张图 + 一小批动作",带宽占用极小;实时伺服与安全 100% 留在机器人本地(RPi 5),断网即停。训练/推理拆两台:训练吃显存只有 3090 干得动,推理不吃显存 3080 足够,还挨着机器人。
|
||||
## 4. 阶段与验收
|
||||
|
||||
### 3.2 起步态(P1/P2)——单机,最快闭环
|
||||
时间按实际进度滚动估计。每阶段达标后再扩大任务,P3/P4 先做试验再估工时。
|
||||
|
||||
P1/P2 底盘还没上、臂在固定夹/桌上时,**3080 主家直接用 USB 接臂**(1L+1F / 4 条),单机跑 遥操→采集→推理;**训练丢给同局域网的 3090**(数据集经 HF Hub / rsync 过去,模型拉回来),最快打通闭环。等 P3/P4 上 LeKiwi 移动,才切到 3.1 的分布式。
|
||||
### P0:环境与采购确认
|
||||
|
||||
---
|
||||
- [ ] 两台补齐 OS、驱动、GPU、Python、uv 信息([机器记录](env/machines.md))。
|
||||
- [ ] 3080 用 `env/setup_lerobot.sh --resolve` 生成依赖锁并通过软件冒烟检查,保留报告。
|
||||
- [ ] 将锁文件和输入指纹同步到 3090,以默认模式安装,核对两台锁的 SHA256。
|
||||
- [ ] 完成短视频编码/解码、小样本训练和模型加载;解决 CUDA/FFmpeg/TorchCodec 兼容性后再认可该锁。
|
||||
- [ ] 验证过的锁、指纹与精简环境记录入 git,不提交凭据或原始日志。
|
||||
- [ ] 确认实际套件的 leader/follower 电机、供电规格,先买一对臂、相机和夹具。
|
||||
|
||||
## 4. VLA 模型路线(训练:3090 24GB · 推理:3080 10GB)
|
||||
验收:两台同锁、CUDA 运算与 CLI 加载通过,小样本管线可运行。脚本通过不等于真机验收通过。
|
||||
|
||||
| 阶段 | 模型 | 训练(3090 · 24GB) | 推理显存(3080 · 10GB) | 作用 |
|
||||
|---|---|---|---|---|
|
||||
| P1 起步 | **ACT** | 全量,几分钟~数十分钟 | **<1GB ✅** | 最快证明"采集→训练→会动"闭环 |
|
||||
| P1→P4 主力 | **SmolVLA** | 全量微调(24GB 舒适) | **fp16 ~2GB ✅** | 语言+视觉驱动,异步推理,部署主力 |
|
||||
| 上限/进阶 | **π0-FAST** | LoRA 微调(24GB 为此而生) | **~7GB ⚠️ 紧张** | SOTA 泛化,算力富余后上 |
|
||||
### P1:单臂抓放闭环
|
||||
|
||||
- 数据统一走 **HF Hub**(`lerobot-record` 直接 push);两台 GPU 机同局域网,大数据集/模型也可 rsync 直传。
|
||||
- SmolVLA 的 **Real-Time Chunking / 异步推理** 正是为"算力层算、机器人执行"这种拆分设计的,天然契合 3.1。
|
||||
- π0-FAST 推理在 10GB 上紧张的 3 条后路:**4-bit 量化** / batch=1+bf16 硬试 / **3090 同局域网代推**。
|
||||
- [ ] 完成电机 ID/波特率设置、组装、校准、稳定设备路径和停止手段验证。
|
||||
- [ ] 相机覆盖全过程,遥操无异常;备份校准与安装照片。
|
||||
- [ ] 首轮约 50 条一致示范,例如 5 个位置各 10 条;逐条检查画面、动作和时间对齐。
|
||||
- [ ] ACT 建立基线,记录数据版本、步数、batch、随机种子、显存、耗时与 checkpoint。
|
||||
- [ ] 按 [评测协议](docs/evaluation.md) 独立测试 20 次,成功至少 16 次、碰撞为 0;干预计失败并完整记录。
|
||||
- [ ] 同数据和测试协议比较 SmolVLA,不用训练 loss 代替真机成功率。
|
||||
|
||||
---
|
||||
验收:上述指标达标,能补采示范并复现实验。调参试验与最终验收分开。
|
||||
|
||||
## 5. 分阶段实施计划
|
||||
### P2:桌面双臂
|
||||
|
||||
> 假设业余时间(每周若干小时)。**采购前置**:3D 打印件/套件到货周期可能 1~6 周,P0 期间就下单。
|
||||
> 每阶段有明确「验收标准」,达到再进下一阶段。
|
||||
- [ ] 新增 **1 leader + 1 follower**,总数 2L+2F;按遮挡需求扩展至前置+两腕相机。
|
||||
- [ ] 复用官方双臂驱动,验证校准、镜像方向、动作顺序与碰撞区域。
|
||||
- [ ] 选择需要两手协作的短任务,先验证遥操和数据质量,再训练。
|
||||
- [ ] 固定初始条件范围,独立测试 20 次,至少成功 16 次、无碰撞。
|
||||
|
||||
### P0 · 环境 & 工具链(~1~2 周,含下单等货)
|
||||
**目标**:软件环境全通 + git 库建好 + 硬件下单。
|
||||
- [x] **建 git 库** ✅ `git.hyonglin.top/ylhan/lerobot_learn`(已 init+commit 待 push;匿名可读=GPU 机 clone 免密)
|
||||
- [ ] **两台 GPU 机装环境**(同一脚本 [env/setup_lerobot.sh](env/setup_lerobot.sh):自动探测→国内镜像自适应→Py3.12 venv→clone LeRobot→装 `feetech,lekiwi,dataset,smolvla,pi0`→验证 GPU/CLI):**先 3080 主家**(P1 在它上面跑),**再 3090**(训练用);各把 [1]~[7] 输出粘回
|
||||
- [ ] **HF 登录**:两台机器都 `huggingface-cli login`(HF_ENDPOINT=hf-mirror)
|
||||
- [ ] **固定官方 CLI 命令**(find-port / find-cameras / calibrate / teleoperate / record / train / eval|rollout 的确切 flag,以装好后的 `--help` 实测为准)
|
||||
- [ ] **下单硬件**([hw/bom.md](hw/bom.md),**先 2 条 SO-ARM101 起步**)
|
||||
- [ ] (可选)验证 AWU408 能否跑 Ubuntu+CUDA+PyTorch(只影响"富余算力",不阻塞主线)
|
||||
**验收**:两台 GPU 机 `torch.cuda.is_available()==True`;LeRobot CLI 全 OK;git 库建好且两机已 clone;硬件已下单。
|
||||
验收:一个桌面协作任务可复现;不默认单臂 checkpoint 能直接用于双臂。
|
||||
|
||||
### P1 · 单臂 SO-101 闭环(~2~4 周)⭐核心
|
||||
**目标**:1 leader + 1 follower,把 **采集→训练→部署** 整条闭环跑通。
|
||||
- [ ] 组装+校准 1 follower + 1 leader(`lerobot-calibrate`),USB 直连 3080 主家
|
||||
- [ ] 接 1 相机;遥操作(`lerobot-teleoperate`)验证跟手
|
||||
- [ ] 采集第一个数据集(简单任务:抓方块 / 放杯子 / 按按钮),`lerobot-record` → push HF Hub
|
||||
- [ ] 3090 上先训 **ACT** 快速验证能学 → 再训 **SmolVLA**
|
||||
- [ ] 推理部署(3080 单机直连 follower),手臂独立完成任务
|
||||
**验收**:**follower 独立完成一个抓取/放置任务**(无人工逐帧干预);能稳定记录新 episode 并增量再训。
|
||||
### P3:底盘、机械与网络
|
||||
|
||||
### P2 · 双臂 BiSO-101(~2~4 周)
|
||||
**目标**:双手协作。
|
||||
- [ ] 加装 2 条 leader + 1 条 follower(凑 2L+2F),接 3 相机(1 前 + 2 腕)
|
||||
- [ ] 上 **bimanual 驱动**(`left_*`/`right_*` 前缀;参考 Maker-Mods / Xbotics 的 BiSO-101,移植进 LeRobot)
|
||||
- [ ] 采集双臂数据(双手递物 / 协同开盒 / 双手抓取)
|
||||
- [ ] 3090 训双臂 SmolVLA,3080 测双手协作任务
|
||||
**验收**:双臂协同完成一个需要两手配合的任务。
|
||||
- [ ] 采购前验证安装空间、臂展与桌高,检查伸臂负载时重心、顶板刚度和线束。
|
||||
- [ ] 按实际电机电压设计供电,测峰值电流、压降、发热与续航;确认 RPi/Hub 的移动供电。
|
||||
- [ ] 底盘独立遥操,测限速、停车距离与故障停止;仅采用 ROS 桥后才要求 `cmd_vel`/`odom`。
|
||||
- [ ] 固定位置测试 RPi↔3080,再有限范围有线移动;有线测试不算无线自主移动验收。
|
||||
- [ ] 实现“移动 → 停稳确认 → 单臂操作”,暂不要求边走边操作。
|
||||
|
||||
### P3 · 底盘 LeKiwi(~2~3 周)
|
||||
**目标**:会走 + 底盘与臂联动。
|
||||
- [ ] 组装 LeKiwi + 校准(3 轮 STS3215)
|
||||
- [ ] 上 **LeKiwi 底盘驱动**(LeRobot 原生 `.[lekiwi]` / 或 lerobot-ros 桥),`cmd_vel`/`odom` 跑通
|
||||
- [ ] 底盘 + **单臂** 联动:边走边摆臂(先不拆网,3080 直连)
|
||||
- [ ] (可选)雷达 + SLAM / nav2
|
||||
**验收**:机器人能"边走边完成一个臂任务"。
|
||||
验收:先根据 P1 抓取容差和制动试验定义到位误差、停稳条件、停车上限,填入评测记录。重复 20 次到位测试,报告误差分布并符合阈值后再连接操作任务。
|
||||
|
||||
### P4 · 整机整合(分布式落地)(~3~6 周)
|
||||
**目标**:把 3.1 的「瘦边+厚芯」跑通,整机自主。
|
||||
- [ ] 双臂固定到 LeKiwi 顶板,统一 **state/action 空间**(左/右臂关节 + 夹爪 + 底盘速度)
|
||||
- [ ] 写 **policy server**(**3080 主家**上,FastAPI/GRPC:obs→action chunk;训练仍归 3090)+ **thin client**(RPi 5:推图+收 chunk+实时执行+**fail-safe watchdog**)
|
||||
- [ ] RPi 5 上机(USB 接 2 臂+3 轮+3 相机),以太网接 3080
|
||||
- [ ] 采集"整机"遥操数据(人在 leader 处,臂+底盘在 RPi5 处,走网),训一个**同时控制双臂+底盘**的 VLA
|
||||
- [ ] 端到端任务:**走到桌边 → 双手抓取 → 移动到目标点放下**
|
||||
**验收**:**无人干预**下,移动机器人完成"走+双手抓取+移动放置"的端到端任务;断网能安全停机。
|
||||
### P4:分阶段整机任务
|
||||
|
||||
### P5 · 打磨 / 规模化(持续)
|
||||
- [ ] 多任务、多数据集、课程式学习
|
||||
- [ ] 异步推理提速、动作 chunk 调参、fail-safe 加固
|
||||
- [ ] (可选)sim2real(IsaacLab-Arena / EnvHub)、力控/触觉扩展、π0-FAST 上限冲刺
|
||||
- [ ] 组合双臂与底盘,复用上游链路,为缺口补适配与本机故障处理。
|
||||
- [ ] 状态机:移动到位 → 停稳 → 双臂抓取 → 收臂 → 移动 → 放置;每步有成功条件、超时、失败退出和人工接管。
|
||||
- [ ] 采集实际整机安装状态下的示范,不默认桌面策略直接迁移。
|
||||
- [ ] 第 3 节故障注入全部符合预定义停止上限,且不自动恢复动作。
|
||||
- [ ] 固定任务范围内独立测试 20 次,至少成功 16 次、无碰撞;报告全程及子阶段成功率与干预次数。
|
||||
|
||||
---
|
||||
验收:分阶段任务可复现,故障停止通过;不描述成开放环境通用自主能力。
|
||||
|
||||
## 6. 目录结构约定
|
||||
### P5:探索与扩展
|
||||
|
||||
```
|
||||
(本 Windows 写字台 & 两台 GPU 机共用同一仓库,GPU 机上放 ~/robot/)
|
||||
robot/
|
||||
├─ PLAN.md # 本方案(单一事实来源)
|
||||
├─ README.md # 仓库导览
|
||||
├─ hw/
|
||||
│ └─ bom.md # 采购清单/链接/到货状态
|
||||
├─ env/
|
||||
│ ├─ machines.md # 机器拓扑 + 协作模型
|
||||
│ └─ setup_lerobot.sh # GPU 机一键装环境(3080/3090 都跑)
|
||||
├─ lerobot/ # LeRobot 仓库 clone(各 GPU 机自己 clone,不入库)
|
||||
├─ robots/
|
||||
│ └─ bi_so101_lekiwi/ # 本机器人的 LeRobot robot 定义(双臂+底盘驱动,P2/P3)
|
||||
├─ configs/
|
||||
│ ├─ teleop/ record/ train/ eval/ # 各场景的 .toml/.yaml 配置
|
||||
├─ server/ # policy server(3080 主家上,P4)
|
||||
├─ client/ # thin client + 执行 + fail-safe(RPi 5 上,P4)
|
||||
└─ docs/ # 组装/校准/CLI参考/踩坑笔记
|
||||
```
|
||||
按失败数据选择:物体/光照变化、语言对照任务、失败检测与恢复、无线链路、Async/RTC、导航扩展。最后探索边移动边操作、统一整机 VLA、大模型、LoRA/量化与仿真迁移,分别立项并测量。
|
||||
|
||||
> 说明:**3080 主家与 3090 训练机都 clone 本仓库 + LeRobot**(目录统一 `~/robot/`);本 Windows `D:\robot\lerobot` 是源头,你 push 到 git 库后两机 pull。**数据集/模型不入 git**(走 HF Hub / rsync)。
|
||||
## 5. 预算与风险
|
||||
|
||||
---
|
||||
历史基础 BOM 粗估 ¥6500–8000,未核实现价;另预留 20%–30% 结构、电源和备件费,规划约 ¥7800–10400。若上限 ¥10000,应先拿报价并缩减非必要项。P1 暂缓 RPi/底盘,详见 [BOM](hw/bom.md)。
|
||||
|
||||
## 7. 风险 & 待验证项
|
||||
主要风险依次为机械可达性/稳定性、示范质量、长任务失败累积、时序与故障处理、依赖兼容性。显存和训练时长作为测量项,不承诺“24GB 全量舒适”“几分钟训好”或“量化必定可用”。
|
||||
|
||||
| # | 风险/未知 | 影响 | 对策 |
|
||||
|---|---|---|---|
|
||||
| 1 | **两台 GPU 机都不在我沙箱里(无外网)** | 我无法直接跑命令 | **协作**:我写 → 你 push git → 3080/3090 跑 → 粘回输出(见 machines.md) |
|
||||
| 2 | **CLI flag 随版本变**(0.5→0.6 有差异) | 照旧文档会报错 | 装好后以 `--help` 实测为准(记到 docs/cli_reference.md) |
|
||||
| 3 | **双臂驱动非官方内置**(靠社区 BiSO-101 移植) | P2 要多写/改驱动 | 参考 Maker-Mods/Xbotics,必要时自写 `bi_so101_follower` |
|
||||
| 4 | **LeKiwi 驱动**:LeRobot 原生 `.[lekiwi]` vs lerobot-ros 桥 | P3 集成方式 | 优先 LeRobot 原生 lekiwi;不行再上 ROS2 桥 |
|
||||
| 5 | **局域网可靠性**(WiFi 抖动 → 臂卡顿) | P4 体验/安全 | 优先**有线 1G**;client 带 watchdog 断链即停 |
|
||||
| 6 | **AWU408 能否跑 Ubuntu+PyTorch**(常出厂 QNX/DRIVE OS) | 只影响"富余算力" | 非阻塞;跑不了就不管它 |
|
||||
| 7 | **硬件到货周期**(3D 打印件 1~6 周) | 拖慢 P1 起步 | P0 立即下单,等货期间把软件全搭好 |
|
||||
| 8 | **RPi 5 USB 口不够**(2臂+3轮+3相机≈6-8 设备) | 上机接线 | 用**有源 USB 3.0 Hub**;相机降到 2 个 USB3 口 |
|
||||
| 9 | **GPU 机网络可达性**(能否直连 pip/HF/github) | 装环境速度/成败 | `setup_lerobot.sh` 自动探测并切国内镜像 |
|
||||
| 10 | **π0-FAST 推理 ~7GB,3080 10GB 紧张** | P5 上限模型部署 | 4-bit 量化 / batch=1+bf16 / 3090 同局域网代推 |
|
||||
## 6. 参考与下一步
|
||||
|
||||
---
|
||||
下一步:3080 完成 P0 首次解析和报告,再同步 3090;同时确认 P1 型号。未经测试的项保持未勾选。
|
||||
|
||||
## 8. 下一步(P0 第一步 · 现在就能做)
|
||||
|
||||
1. **push 完成建库**:仓库已建好并 commit(`git.hyonglin.top/ylhan/lerobot_learn`),你在本机终端跑一次 `git push -u origin master`(输入 Gitea 账号密码,之后自动记住)。
|
||||
2. **两台 GPU 机装环境**:clone 后在 **3080 主家** 与 **3090** 各跑一遍 `env/setup_lerobot.sh`,各把 **[1]~[7] 完整输出粘回**。
|
||||
3. **下单**:[hw/bom.md](hw/bom.md) 先买 **2 条 SO-ARM101(1L+1F)** 起步。
|
||||
4. **HF 登录**:两台机器都 `huggingface-cli login`(脚本已配 hf-mirror)。
|
||||
|
||||
> **协作**:我(本机)写 → 你 push git → 3080/3090 跑 → 粘回输出 → 我迭代。
|
||||
> 装环境输出回来后,我就铺 **P1 的具体命令/配置**(第一条臂的 find-port / 校准 / 遥操 / 采集)。
|
||||
- [v0.6.1 依赖](https://github.com/huggingface/lerobot/blob/v0.6.1/pyproject.toml)
|
||||
- [v0.6.1 双臂源码](https://github.com/huggingface/lerobot/blob/v0.6.1/src/lerobot/robots/bi_so_follower/bi_so_follower.py)
|
||||
- [v0.6.1 SmolVLA](https://github.com/huggingface/lerobot/blob/v0.6.1/docs/source/smolvla.mdx)
|
||||
- [v0.6.1 Async](https://github.com/huggingface/lerobot/blob/v0.6.1/docs/source/async.mdx)
|
||||
- [LeKiwi](https://huggingface.co/docs/lerobot/lekiwi)(接口以安装版本为准)
|
||||
|
||||
Reference in New Issue
Block a user