项目介绍:CALVIN
项目概述
CALVIN 是一个名为“从语言和视觉中组合动作”的开源模拟基准,它用于研究语言条件下的长程机器人操作任务学习。CALVIN 的目标是开发能够处理复杂的操作任务的代理,这些任务通过机载传感器获取信息,并仅使用人类语言指令进行描述。与现有的视觉和语言任务数据集相比,CALVIN 的任务在序列长度、动作空间和语言复杂度方面均更复杂,同时支持多种传感器套件的灵活配置。
快速入门
要开始使用 CALVIN,可以通过以下步骤进行设置:
-
克隆仓库:
git clone --recurse-submodules https://github.com/mees/calvin.git export CALVIN_ROOT=$(pwd)/calvin
-
安装所需环境:
cd $CALVIN_ROOT conda create -n calvin_venv python=3.8 # 或者使用 virtualenv conda activate calvin_venv sh install.sh
-
下载数据集(可以选择下载完整数据集或者调试数据集):
cd $CALVIN_ROOT/dataset sh download_data.sh D | ABC | ABCD | debug
训练基线代理
为了训练基准模型,用户可以执行以下命令:
cd $CALVIN_ROOT/calvin_models/calvin_agent
python training.py datamodule.root_data_dir=/path/to/dataset/ datamodule/datasets=vision_lang_shm
该命令将 CALVIN 数据集加载到共享内存中来加速数据装载过程。用户也可以选择其他数据加载方式。
传感器与动作空间
CALVIN 支持多种常用于视觉运动控制的传感器,包括:
- 静态相机的 RGB 图像和深度图。
- 爪子相机的 RGB 图像和深度图。
- 触觉图像和本体感应状态。
对于动作空间,CALVIN 支持多种动作空间配置,如:
- 绝对笛卡尔坐标姿态。
- 相对笛卡尔位移。
- 关节动作。
评估机制
CALVIN 提供了一种名为 Long-horizon Multi-task Language Control(LH-MTLC)的评估协议,用于测试代理在长程任务中的表现。通过不同的传感器套件和训练环境组合,研究者可以选择在不同难度下对代理进行评估。
用户可以使用以下命令来评估经过训练的代理:
cd $CALVIN_ROOT/calvin_models/calvin_agent
python evaluation/evaluate_policy.py --dataset_path <PATH/TO/DATASET> --train_folder <PATH/TO/TRAINING/FOLDER>
预训练模型
CALVIN 提供了一些预训练模型的下载选项。用户可以利用这些模型快速启动评估或进一步训练工作。
最新动态与常见问题
CALVIN 不断更新以修正可能存在的错误和改进数据集细节,例如语言注释的修正和场景信息的纠正。对于高效训练和多 GPU 设置的问题,官方也提供了详尽的指南来帮助用户解决相关的技术问题。
结尾
CALVIN 项目以 MIT 许可协议作为开源共享。如果您在研究中使用了 CALVIN 的数据集或代码,请参考相关学术文献进行引用。CALVIN 不仅提供了丰富的数据集与技术细节,也为机器人操作领域的研究提供了广阔的平台,助力机器学习和人工智能的进步与发展。