概念速览
硬件架构
flowchart TB
Base["移动底盘<br/>TracMe / AgileX Hunter"]
Base --> Arm1["ViperX 300 机械臂 ×2<br/>6 DoF"]
Base --> Gripper["夹爪 Pika Gripper ×2"]
Base --> WristCam["RealSense D405 腕部相机 ×2"]
Base --> TopCam["ZED 2i 立体相机 (顶部)"]
Base --> Mic["4 麦环形阵列 (顶部)"]
Arm1 --- Gripper
flowchart LR
Obs["当前观测"] --> Encoder["CVAE Encoder"]
Encoder --> Z["Latent z"]
Obs --> Decoder["Transformer Decoder"]
Z --> Decoder
Chunk["动作块<br/>k=100 步"] --> Decoder
Decoder --> Out["未来 1s 的动作序列"]
- 动作分块 (Action Chunking):一次输出 k=100 步动作,缓解抖动
- 时序集成 (Temporal Ensemble):对多块重叠动作加权平均
- CVAE:捕获演示的多样性
典型任务
- 煎蛋:9 分钟演示 → 90% 成功率
- 打开双门柜子:5 分钟演示 → 95% 成功率
- 叠毛巾:8 分钟演示 → 85% 成功率
- 自主浇花:1 小时演示 → 完全自主
软件栈
- ROS 2 Humble:底层控制
- PyTorch + ACT:模仿学习训练
- LeRobot 集成:HF 已发布 ACT 在 LeRobot 中的标准实现
- 仿真:MuJoCo (Aloha sim) / Isaac Lab
复刻路径
- 打印机械结构:BOM $5K,3D 打印 + 6061 铝合金
- 采购电气件:Dynamixel 伺服 + RealSense + Jetson Orin
- 遥操作采集:1 人类操作员 + 1 机器人跟随,采集 50 episodes
- 训练 ACT:单卡 RTX 4090 训练 6-12 小时
- 真机部署:Jetson Orin 实时推理,~10 Hz
📋 复现条件
| 类别 | 必备 | 可选 / 备注 |
|---|
| 硬件 | 2× SO-100 / ALOHA 双臂 · Tracer 移动底盘 (¥15,000) · 4× RealSense D435i · Jetson Orin NX | 深度相机 + LiDAR |
| 操作系统 | Ubuntu 22.04 (ROS 2 Humble) · Jetson JetPack 6 | macOS (只评估) |
| 软件版本 | Mobile ALOHA 官方代码 · ACT 训练脚本 · interbotix_sdk | LeRobot (替代方案) |
| 网络 | 多机 WiFi (主机 ↔ Jetson) | 千兆网线 (大模型上传) |
| 账号 | 无 | Hugging Face (数据上传) |
| 时间 | 装机 2 天 · 数据采集 1 天 · 训练 1 天 · 部署 1 天 | Sim-to-Real +1 周 |
| 难度 | ⭐⭐⭐⭐⭐ 专家 | 整机调试至少 1 个月 |
| 预算 | ¥80,000-150,000 | 二手能压到 ¥50,000 |
⛔ 别这么做 (Anti-patterns)
经验证的坑 —— 跳过 = 至少浪费半天,严重的烧板 / 锁机。
| ❌ 错误做法 | 💥 后果 | ⚠️ 风险 | 范围 |
|---|
| 不要在 Ubuntu 22.04 上 apt 装 ROS 2 Iron / Rolling | apt 源是滚动版 = 兼容性没保证。ROS 2 永远装 LTS 版 (Humble / Jazzy)。 | 🟡 | ROS 2 |
不要直接 pip install 全局包做机器人项目 | 系统 Python 升级 = 依赖破。永远用 venv / uv venv / pixi。 | 🟡 | LeRobot / ACT / OpenVLA 训练 |
| 不要把机械臂 / 移动机器人直接接到 12V 铅酸电池 | 反接 / 短路 = 烧控制板。永远先串 5A 保险丝再接。 | 🔴 | SO-100 / Mobile ALOHA / 自制机器人 |
不要在没看 dmesg / lsusb 前插 USB 设备并假设会被识别 | 插上没反应 = 没供电 / 没权限 / 没驱动。先 lsusb -t,再 sudo chmod 666 /dev/ttyUSB0。 | 🟢 | USB 相机 / 串口 / 飞控 |
| 不要让 micro-ROS 节点在没看门狗的情况下跑在真机上 | 死循环 = 整机失控,永远给嵌入式节点加 heartbeat 看门狗。 | 🔴 | micro-ROS / 飞控固件 |
| 不要直接拿 GitHub main 分支跑 Mobile ALOHA / LeRobot 训练 | main = 正在开发,可能 dataset format 改了 = 跑不通。锁 git checkout v0.4.0 标签。 | 🟡 | Mobile ALOHA / LeRobot |
| 不要在 LeRobot 训练时把 4K 视频存进 dataset | 4K 1 小时 ≈ 50GB,30 小时 = 1.5TB IO 瓶颈。先 ffmpeg -vf scale=640:480 降采样。 | 🟢 | LeRobot / ACT 数据采集 |
| 不要用 ROS_DOMAIN_ID=0 跑多机协同 | 0 = 默认域 = 任何人都能收到你的话题。多机实验 = 改 ID (0-232) + Foxy+。 | 🟢 | ROS 2 DDS |
🚨 风险总览 (Risk Matrix)
| 风险等级 | 含义 | 例子 |
|---|
| 🟢 低 | 改错可回滚 / 几分钟恢复 | pip 全局装包、DHCP IP 写死 |
| 🟡 中 | 需要重新刷机 / 重装 / 1-2 小时恢复 | 装错 ROS 2 版本、没 OTA 升级看版本 |
| 🔴 高 | 不可逆 / 烧板 / 安全风险 | 电池反接、micro-ROS 没看门狗、刷机中途断电 |
参考资料