9.4 KiB
LeRobot 双臂移动操作项目方案
决策与阶段验收以本文件为准。更新:2026-09-08,设计评审修订。 当前 P0:已有规划与环境脚本,尚无 GPU 环境、训练效果或真机验收结果。
1. 目标与边界
基于 LeRobot,完成“人工遥操示范 → 数据采集 → 策略训练 → 真机执行”的闭环,逐步扩展至桌面双臂与移动操作。
首个交付是单臂固定场景抓放;整机首个交付是“移动到位 → 停稳 → 抓取 → 收臂 → 移动 → 放置”。边移动边双臂操作、一个 VLA 统一控制整机,列为后续探索目标。
“可自行训练”指使用自己的示范数据训练模型。自主探索、自动成功判定、自动恢复与持续学习尚无实现,不作为当前交付承诺。
2. 技术决策
| 项目 | 决策 | 约束 |
|---|---|---|
| 框架 | 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 是不同机制,先跑同步基线,再分别评估。
3. 架构与接口
P1/P2:leader/follower/相机 → USB → 3080(采集与执行);数据经 rsync 到 3090 训练,checkpoint 与处理器回传 3080。
P3/P4:RPi 负责本机硬件,3080 负责操作策略;状态机负责移动、到位确认、操作与失败退出。优先复用 LeKiwi 与官方异步接口,避免叠加不必要的图像转发链路。server/、client/ 目前仅是占位目录。
实施前固定以下契约并写入版本化配置:
- 状态/动作字段顺序、左右臂前缀、关节单位、夹爪范围、底盘坐标系与速度单位;训练与执行使用同一归一化及处理器。
- 相机名、序列号/稳定设备路径、分辨率、帧率、曝光与安装位置;相机变化视为数据分布变化。
- 图像和本体状态时间、观测编号、动作对应观测编号、动作序号与有效期;跨主机时钟对齐方式及误差。
- 关节限位、每步最大变化量、底盘限速、队列长度、过期丢弃、队列耗尽和重连规则。
网络预算:三路 640×480 RGB 10fps 原始图像约 221Mbps;三路 1080p 同配置约 1.49Gbps(不含协议开销)。明确压缩格式,测编码、传输、解码、推理与执行延迟,记录 P50/P95/P99、丢帧与队列耗尽次数。10Hz 观测、20–30Hz 执行、200–500ms 分块仅为候选参数,不是已满足指标。
故障处理
本机执行约束不能依赖模型服务在线。网络超时/动作过期时底盘停止,旧队列失效;手臂根据姿态与负载采用经验证的保持/受控停止,不默认回中位或直接失去支撑。重连需显式重新使能,不继续播放旧动作。
P1 起验证停止手段、限位、限速与人工接管。P3 前定义最大允许停车时间和距离。P4 注入断网、推理进程退出、相机卡死、乱序/过期动作和队列耗尽;记录触发到停止的时间及位移。Python watchdog 不等于完整硬件安全保证。
4. 阶段与验收
时间按实际进度滚动估计。每阶段达标后再扩大任务,P3/P4 先做试验再估工时。
P0:环境与采购确认
- 两台补齐 OS、驱动、GPU、Python、uv 信息(机器记录)。
- 3080 用
env/setup_lerobot.sh --resolve生成依赖锁并通过软件冒烟检查,保留报告。 - 将锁文件和输入指纹同步到 3090,以默认模式安装,核对两台锁的 SHA256。
- 完成短视频编码/解码、小样本训练和模型加载;解决 CUDA/FFmpeg/TorchCodec 兼容性后再认可该锁。
- 验证过的锁、指纹与精简环境记录入 git,不提交凭据或原始日志。
- 确认实际套件的 leader/follower 电机、供电规格,先买一对臂、相机和夹具。
验收:两台同锁、CUDA 运算与 CLI 加载通过,小样本管线可运行。脚本通过不等于真机验收通过。
P1:单臂抓放闭环
- 完成电机 ID/波特率设置、组装、校准、稳定设备路径和停止手段验证。
- 相机覆盖全过程,遥操无异常;备份校准与安装照片。
- 首轮约 50 条一致示范,例如 5 个位置各 10 条;逐条检查画面、动作和时间对齐。
- ACT 建立基线,记录数据版本、步数、batch、随机种子、显存、耗时与 checkpoint。
- 按 评测协议 独立测试 20 次,成功至少 16 次、碰撞为 0;干预计失败并完整记录。
- 同数据和测试协议比较 SmolVLA,不用训练 loss 代替真机成功率。
验收:上述指标达标,能补采示范并复现实验。调参试验与最终验收分开。
P2:桌面双臂
- 新增 1 leader + 1 follower,总数 2L+2F;按遮挡需求扩展至前置+两腕相机。
- 复用官方双臂驱动,验证校准、镜像方向、动作顺序与碰撞区域。
- 选择需要两手协作的短任务,先验证遥操和数据质量,再训练。
- 固定初始条件范围,独立测试 20 次,至少成功 16 次、无碰撞。
验收:一个桌面协作任务可复现;不默认单臂 checkpoint 能直接用于双臂。
P3:底盘、机械与网络
- 采购前验证安装空间、臂展与桌高,检查伸臂负载时重心、顶板刚度和线束。
- 按实际电机电压设计供电,测峰值电流、压降、发热与续航;确认 RPi/Hub 的移动供电。
- 底盘独立遥操,测限速、停车距离与故障停止;仅采用 ROS 桥后才要求
cmd_vel/odom。 - 固定位置测试 RPi↔3080,再有限范围有线移动;有线测试不算无线自主移动验收。
- 实现“移动 → 停稳确认 → 单臂操作”,暂不要求边走边操作。
验收:先根据 P1 抓取容差和制动试验定义到位误差、停稳条件、停车上限,填入评测记录。重复 20 次到位测试,报告误差分布并符合阈值后再连接操作任务。
P4:分阶段整机任务
- 组合双臂与底盘,复用上游链路,为缺口补适配与本机故障处理。
- 状态机:移动到位 → 停稳 → 双臂抓取 → 收臂 → 移动 → 放置;每步有成功条件、超时、失败退出和人工接管。
- 采集实际整机安装状态下的示范,不默认桌面策略直接迁移。
- 第 3 节故障注入全部符合预定义停止上限,且不自动恢复动作。
- 固定任务范围内独立测试 20 次,至少成功 16 次、无碰撞;报告全程及子阶段成功率与干预次数。
验收:分阶段任务可复现,故障停止通过;不描述成开放环境通用自主能力。
P5:探索与扩展
按失败数据选择:物体/光照变化、语言对照任务、失败检测与恢复、无线链路、Async/RTC、导航扩展。最后探索边移动边操作、统一整机 VLA、大模型、LoRA/量化与仿真迁移,分别立项并测量。
5. 预算与风险
历史基础 BOM 粗估 ¥6500–8000,未核实现价;另预留 20%–30% 结构、电源和备件费,规划约 ¥7800–10400。若上限 ¥10000,应先拿报价并缩减非必要项。P1 暂缓 RPi/底盘,详见 BOM。
主要风险依次为机械可达性/稳定性、示范质量、长任务失败累积、时序与故障处理、依赖兼容性。显存和训练时长作为测量项,不承诺“24GB 全量舒适”“几分钟训好”或“量化必定可用”。
6. 参考与下一步
下一步:3080 完成 P0 首次解析和报告,再同步 3090;同时确认 P1 型号。未经测试的项保持未勾选。
- v0.6.1 依赖
- v0.6.1 双臂源码
- v0.6.1 SmolVLA
- v0.6.1 Async
- LeKiwi(接口以安装版本为准)