peract_bimanual
双臂机器人的语言条件模仿学习框架,基于 3D Voxel Transformer 在 RLBench 仿真环境中实现 6-DoF 协同控制
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
双臂机器人的语言条件模仿学习框架,基于 3D Voxel Transformer 在 RLBench 仿真环境中实现 6-DoF 协同控制
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个场景:你走进厨房,告诉机器人「把碗从抽屉拿出来放到洗碗机里」。这对我们来说再简单不过,但如果是单臂机器人,它需要协调抓取、移动、释放三个动作,其中任何一步出错任务就失败了。而双臂机器人需要同时控制两只手臂,让它们配合完成一只手拿碗、另一只手开抽屉门这样的协同动作——这比单臂操作复杂得多。
这就是 markusgrotz/peract_bimanual 试图解决的问题:让双臂机器人通过语言指令,学会执行真实世界的家务操作。
本项目由华盛顿大学的研究人员 James Shridhar 等人开发,基于此前广受关注的 PerAct(Perceiver-Actor)框架。PerAct 曾在 2022 年 CoRL 会议上发表,研究的核心问题是:如何让机器人仅凭几个演示就能学会新任务?
传统机器人需要大量数据训练,而 PerAct 的答案是「少样本模仿学习」(Few-shot Imitation Learning)。通过语言指令 + 视觉输入 + 少量专家演示,机器人就能学会复杂操作。
PerAct² 则将这一思路扩展到双臂场景,并使用 RLBench 仿真环境来生成大量任务数据。RLBench 是专门为机器人学习设计的仿真平台,由 CoppeliaSim 驱动,支持多样化的任务场景模拟。
PerAct² 的技术架构可以用「看 → 理解 → 行动」三步来类比:
第一步:看(3D Voxel Perception)
传统方法让机器人「看」2D 图像,但 2D 图像丢失了空间深度信息。PerAct² 将相机捕获的 2D 图像重投影回 3D 空间,用 Voxel Grid(体素网格)表示整个操作场景。这相当于机器人脑子里有一个微型 3D 积木世界,每个积木代表一个空间位置。
第二步:理解(Perceiver-IO Transformer)
3D Voxel 数据量巨大,直接输入 Transformer 成本极高。PerAct 使用 Perceiver-IO 架构——一种能高效处理任意长度输入的通用 Transformer。它将 3D Voxel 压缩为固定长度的潜在向量,再与语言指令(通过 CLIP 编码)融合,生成任务理解。
第三步:行动(Action Head)
融合后的表示被送入动作预测头,输出 6-DoF(自由度)的手臂控制指令,同时控制两只机械臂的位姿。代码支持多种 BC(Behavior Cloning)算法:原始 PerAct、C2FARM-LingUNet、以及最新的 RVT 等。
项目采用 Poetry 管理 Python 依赖,核心目录结构:
| 目录/文件 | 作用 |
|---|---|
agents/ | 多种模仿学习算法实现,含 PerAct/BC/baselines 等子目录 |
voxel/ | 3D Voxel 网格处理(数据增强、体素化) |
conf/ | Hydra 配置管理,支持 YAML 声明式配置 |
scripts/ | conda + 依赖一键安装脚本 |
train.py | 主训练入口,支持单卡/多卡/多节点分布式训练 |
eval.py | 评测入口 |
多 GPU 训练支持:项目原生支持 PyTorch DDP,只需配置 ddp.num_devices 参数即可利用多卡并行,batch_size 按每卡配置。
| 维度 | 要求 |
|---|---|
| GPU | NVIDIA(推荐 16GB+ VRAM,最低 12GB) |
| 操作系统 | Linux(Dockerfile 基于 Ubuntu 20.04 + CUDA 12.3.2) |
| 仿真环境 | CoppeliaSim + RLBench(非 Docker 内置,需独立安装) |
| Python | 3.8 |
| 依赖管理 | Conda/Miniconda + Poetry |
项目提供了 NVIDIA CUDA Dockerfile,包含完整的 conda 环境搭建和依赖安装流程,开箱即可在 GPU 服务器上构建镜像。但 CoppeliaSim 仿真器需要手动安装(Dockerfile 中有注释说明),因此严格来说属于「部分支持一键部署」。
上手路径:
scripts/install_dependencies.sh)conf/config.yaml 配置任务和参数python train.py 开始训练model-card.md 坦诚列出了当前局限:
这些局限也是当前具身智能(Embodied AI)领域的核心挑战。PerAct² 在这些方向上提供了良好的研究起点。
PerAct² 代表了具身智能领域的一个重要分支——语言条件下的双臂模仿学习。随着大语言模型(LLM)和视觉-语言模型(VLM)的进步,如何让机器人理解和执行自然语言指令成为热点。PerAct² 在 RLBench 仿真环境中验证了 Transformer 在 3D 操作任务上的可行性,为后续研究提供了可复现的基线。
该方向的应用前景包括:家庭服务机器人协作(如厨房、清洁场景)、工业装配线自动化、医疗辅助手术等。
peract_bimanual 是一个专注于双臂机器人语言条件模仿学习的研究级开源项目,适合具身智能研究者使用。它提供了完整的训练/评测框架、多种算法实现和丰富的文档,但部署需要 GPU 硬件和 CoppeliaSim 仿真环境,上手门槛较高。对于希望在双臂操作方向做研究的开发者,这是一个值得关注的基线项目。
适合人群:机器人研究、具身智能、模仿学习方向的硕博生和研究人员 不适合:非研究用途、生产环境部署、缺乏 GPU 资源的个人开发者