Ravens 项目介绍
Ravens 项目是一个基于 PyBullet 的模拟任务合集,旨在帮助在视觉基础上学习机器人操作,特别是抓取和放置任务。它采用类似 Gym 的 API,提供了 10 种桌面重排任务,包括脚本化的专家演示(用于模仿学习)和奖励函数(用于强化学习)。
任务描述
- L形块插入:拾取红色 L 形积木并放入相应的 L 形槽中。
- 放置红色在绿色中:拾取红色积木,放入绿碗中,与其它物体隔开。
- 汉诺塔:依次移动圆盘,较小圆盘只能放在较大圆盘上。
- 对齐箱子角落:拾取不同大小的箱子,对齐台面上的 L 形标记。
- 堆叠砖块金字塔:按彩虹色序依次堆叠 6 块砖到金字塔形状。
- 货盘码箱:拾取相同规格的箱子,在托盘上层层交错堆叠。
- 组装工具包:拾取不同物体,按板上对应轮廓排列。
- 装箱:拾取不同大小的箱子,紧密放入容器中。
- 操控绳索:重新排列变形的绳子,使其连接 3 边方形的两个端点。
- 清扫小堆:将小物体推入台面上标记的目标区域。
部分任务需要对看不见的物体进行泛化 (如任务 d, g, h),或需要闭环反馈的多步骤序列操作 (如任务 c, e, f, h, i, j)。
开发团队
该项目由 Andy Zeng、Pete Florence、Daniel Seita、Jonathan Tompson 和 Ayzaan Wahid 所开发和维护,详细信息可在相关学术论文中查找。
Transporter 网络概述
Transporter 网络是一种简单的模型架构,通过视觉输入重排深度特征以推导空间位移,可用于参数化机器人动作。该方法不依赖于物体模型,利用空间对称性,并在学习基于视觉的操作任务中,比传统方法更高效。Transporter 网络能表示复杂的多模态策略分布,适用于多步骤序列任务以及 6DoF 抓取和放置操作。
安装指南
-
安装 Miniconda:
- 推荐使用 Miniconda 来管理 Python 环境。
-
创建并激活 Conda 环境:
- 安装 GCC 和所需的 Python 包。
-
安装 GPU 加速:
- 推荐使用 NVIDIA CUDA 和 cuDNN 加快 Tensorflow 的运行速度。
同时提供了直接使用 pip
的替代方案,具体操作请参考项目说明。
使用指南
-
生成训练和测试数据:
- 数据保存在本地,支持无头模式运行。
-
训练模型:
- 以 Transporter 网络模型为例,模型检查点保存在
checkpoints
目录。
- 以 Transporter 网络模型为例,模型检查点保存在
-
评估模型:
- 使用经过训练的模型对 Transporter 网络代理进行评估。
-
结果可视化:
- 通过生成图表展示评估结果。
此外,还可以使用 Tensorboard 跟踪训练和验证损失。
数据集和预训练模型
项目提供预生成的训练和测试数据集以及预训练模型以供下载。每个任务的 MDP 形式包含以下结构:
- 观测值:原始 RGB-D 图像和相机参数。
- 动作:机器人的原始动作函数及其参数。
- 奖励:成功执行单元任务的奖励总和等于 1。
- 信息:物体的 6D 姿态、大小和颜色。