# 机器拓扑 & 环境 & 协作模型 > 本文件记录各机器角色、连接方式、软件环境,以及**我和你的协作方式**。**每次改动后更新。** > `[待补]` = 需要你在对应机器上跑命令后回填。 ## ⭐ 协作模型(先读这个) | 角色 | 机器 | 谁操作 | |---|---|---| | **主家(开发+臂+推理)** | **② 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 ;**匿名可读** → 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/ @<3090-ip>:~/robot/data/ # ③ → ② 拉训练好的模型 rsync -avzP @<3090-ip>:~/robot/outputs/train// ~/robot/models// ``` ## ① 本 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 起在 ③,② 只做遥操/采数(同局域网,异步分块下延迟可接受)