Files
lerobot_learn/env/machines.md
T

132 lines
6.5 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.
# 机器拓扑 & 环境 & 协作模型
> 本文件记录各机器角色、连接方式、软件环境,以及**我和你的协作方式**。**每次改动后更新。**
> `[待补]` = 需要你在对应机器上跑命令后回填。
## ⭐ 协作模型(先读这个)
| 角色 | 机器 | 谁操作 |
|---|---|---|
| **主家(开发+臂+推理)** | **② 3080 机(10GB · 本地 Ubuntu · 机器人旁)** | **你**(本地终端) |
| **训练专用** | **③ 3090 机(24GB · 远程 SSH)** | **你**(SSH) |
| 写字台(写代码/规划/文档) | ① 本 Windows 机 `D:\robot\lerobot` | **我(agent)** |
| 富余算力(非关键路径) | ⑤ AWU408 双 Orin | 暂不用 |
| 上机驱动板(P3/P4 起) | ④ RPi 5 | P3/P4 前你配 |
**关键约束**:我的沙箱**无外网**,够不到你任何一台 GPU 机。工作流:
```
我(①写字台)写代码/配置 ──你 push──▶ git 库 ──clone/pull──▶ ② 3080 & ③ 3090
你在 ②/③ 执行(本地终端 / SSH)──粘回完整输出──▶ 我诊断/迭代
```
**git 仓库**:`https://git.hyonglin.top/ylhan/lerobot_learn.git`(身份 ylhan <ylhan@hyonglin.com>;**匿名可读** → GPU 机 clone 免密,push 才需认证)
**约定**:
1. 我给**自包含、复制即跑**的脚本/命令块(尽量一次给全)。
2. **代码/配置**走 git 库(你 push,两机 pull);**数据集/模型**走 HF Hub(hf-mirror)或局域网 rsync(两机互通,大文件直传更快)。
3. 两台 GPU 机目录统一 `~/robot/`:本仓库 + lerobot clone + `.venv`。
---
## 拓扑总览
```
┌──────────────────────┐ push ┌───────┐ clone/pull ┌─────────────────────────┐
│ ① Windows 写字台 │ ──────▶ │ git 库 │ ──────────▶ │ ② 3080 主家 (10GB) │
│ D:\robot\lerobot │ └───────┘ ⟨同一库⟩ │ 本地 Ubuntu · 机器人旁 │
│ 我写代码/文档/规划 │ ┌────────┴─────────────────────────┐
└──────────────────────┘ │ ③ 3090 训练 (24GB) · 远程 SSH │
└───────────────────────────────────┘
② ↔ ③ 同一局域网:rsync 直传数据集/模型;π0 推理紧张时 3090 可代推
② 3080 主家(推理芯,挨着机器人 = 低延迟):
开发 · 臂 USB 直连 · 遥操 · 采数 · 推理部署 · P4 policy server
③ 3090 训练(训练芯):
只跑 lerobot-train:ACT / SmolVLA 全量 / π0-FAST LoRA
数据流: 采数@② → HF Hub(或 rsync) → 训练@③ → 模型 → 推理@②
```
**为什么这样拆**:训练吃显存(参数+梯度+优化器+激活 ≈ 推理的 4~8 倍),推理不吃。
- 3090 24GB:SmolVLA 全量微调 / π0-FAST LoRA —— 只有它干得动。
- 3080 10GB:ACT(<1GB) / SmolVLA fp16(~2GB) 推理绰绰有余;遥操/采数几乎不占 GPU。
---
## ② 3080 机(主家 · 10GB · 本地 Ubuntu · 机器人旁)
| 项 | 值 |
|---|---|
| 位置 | **机器人/工作台旁**(SO-101 臂 USB 直插它) |
| 主机名 / IP | `[待补]` |
| Ubuntu 版本 | `[待补]`(建议 22.04) |
| GPU | **3080(10GB)** —— 开发 + 推理 |
| 驱动 / CUDA | `[待补]`(setup 脚本会打印) |
| Python | **3.12**(venv,脚本自建) |
| LeRobot | `[待补]`(预期 0.6.x) |
| HF 账号 | `huggingface-cli login`(HF_ENDPOINT=hf-mirror) |
| 目录 | `~/robot/`(本仓库 + lerobot + .venv) |
**跑什么**:日常开发、`lerobot-teleoperate` / `lerobot-record`(臂插这)、`lerobot-eval|rollout`(推理部署)、P4 的 policy server。
**显存预算**:ACT <1GB ✅ / SmolVLA fp16 ~2GB ✅ / π0-FAST ~7GB ⚠️(fallback 见文末)。
## ③ 3090 机(训练专用 · 24GB · 远程 SSH)
| 项 | 值 |
|---|---|
| 访问 | **SSH**(远程,与 ② 同局域网互通) |
| 主机名 / IP | `[待补]` |
| Ubuntu 版本 | `[待补]` |
| GPU | **3090(24GB)** —— 只管训练 |
| Python / LeRobot | 与 ② 同一 setup 脚本 |
| 目录 | `~/robot/`(同一 git 库) |
**跑什么**:只跑 `lerobot-train`(拉数据集 → 训 → 推模型回 Hub)。
**兜底角色**:π0-FAST 推理在 ② 放不下时**代推**(同局域网+异步分块,多一跳延迟可接受);② 忙时也可顶 ACT / SmolVLA-LoRA 训练。
### 两机传大文件(同局域网,比 HF Hub 快)
```bash
# ② → ③ 推数据集
rsync -avzP ~/robot/data/ <user>@<3090-ip>:~/robot/data/
# ③ → ② 拉训练好的模型
rsync -avzP <user>@<3090-ip>:~/robot/outputs/train/<exp>/ ~/robot/models/<exp>/
```
## ① 本 Windows 机(`D:\robot\lerobot` · 我的写字台)
| 项 | 值 |
|---|---|
| 角色 | 写代码 / 规划 / 文档;**不跑 LeRobot** |
| Python | 3.14(LR 要 3.12;本机只编辑) |
| git | 2.51.0 ✅ |
| 外网 | ❌ 沙箱无外网 |
| 同步 | **你从本机 push 到 git 库** → ② ③ pull |
## ④ RPi 5(上机驱动板 · P3/P4 起)
| 项 | 值 |
|---|---|
| OS | Raspberry Pi OS 64-bit |
| 连接 | USB(有源 Hub):2 臂 + 3 轮 + 3 相机;**以太网 → ② 3080**(policy server 在它上面) |
| 软件 | LeRobot `.[feetech,lekiwi,dataset]` + thin client(推图/收 chunk/执行/fail-safe) |
| 静态 IP | `[待补]` |
## ⑤ AWU408(富余算力,非关键路径)
- 双 DRIVE Orin(508 TOPS)+ Aurix TC397。默认不用。
- 用途:3090 忙训练时顶推理 / 固定台。
- **待验证**:能否刷 Ubuntu+CUDA+PyTorch(常出厂 QNX/DRIVE OS);跑不通就不管它。
---
## 国内网络 / 镜像(两台 GPU 机通用,setup 脚本自动处理)
| 用途 | 直连不可达时的镜像 |
|---|---|
| pip | `https://pypi.tuna.tsinghua.edu.cn/simple`(或 Aliyun) |
| HF dataset/weights | `HF_ENDPOINT=https://hf-mirror.com` |
| git clone lerobot | `https://ghproxy.com/https://github.com/huggingface/lerobot.git` |
## π0-FAST 推理在 3080(10GB) 放不下时的 fallback(P5 才需要)
1. **4-bit 量化**(权重 6.6GB → ~2GB,立刻宽裕)
2. **batch=1 + bf16 硬试**(~8-9GB,可能刚好)
3. **3090 代推**:policy server 起在 ③,② 只做遥操/采数(同局域网,异步分块下延迟可接受)