CALVIN简介
CALVIN(Composing Actions from Language and Vision)是一个开创性的开源模拟基准,旨在学习长期语言条件任务。它的目标是使开发能够从机载传感器解决多种复杂机器人操作任务,并且仅通过人类语言指定的代理成为可能。CALVIN任务在序列长度、动作空间和语言方面比现有的视觉和语言任务数据集更为复杂,并支持灵活配置传感器套件。
CALVIN基准的核心目标是评估长期语言条件连续控制策略的学习。在这种设置下,单个代理必须通过理解一系列无约束的语言表达来解决复杂的操作任务,例如"打开抽屉...拿起蓝色块...现在把块推入抽屉...现在打开滑动门"。CALVIN提供了一个评估协议,通过选择不同的传感器套件组合和训练环境数量,提供了不同难度的评估模式。
CALVIN的主要特点
- 多样化的传感器观察
CALVIN支持一系列常用于视觉运动控制的传感器:
- 静态摄像机RGB图像(200x200x3)
- 静态摄像机深度图(200x200)
- 抓取器摄像机RGB图像(84x84x3)
- 抓取器摄像机深度图(84x84)
- 触觉图像(120x160x6)
- 本体感知状态(包括末端执行器位置、方向、抓取器宽度、关节位置等)
这种多样化的传感器套件使得研究人员能够探索不同感知模态对于语言条件策略学习的影响。
- 灵活的动作空间
为了给研究人员和从业者提供实验不同动作空间的自由,CALVIN支持以下动作空间:
- 绝对笛卡尔姿态
- 相对笛卡尔位移
- 关节动作
这种灵活性允许研究人员探索不同动作表示对于长期任务执行的影响。
- 长期多任务语言控制
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
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支持多GPU训练,可以通过指定GPU数量来自动使用分布式数据并行(DDP)训练:
python training.py trainer.gpus=-1
评估
CALVIN提供了两种评估模式:
- 长期多任务语言控制(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>
- 多任务语言控制(MTLC):
python evaluation/evaluate_policy_singlestep.py --dataset_path <PATH/TO/DATASET> --train_folder <PATH/TO/TRAINING/FOLDER>
CALVIN的影响和意义
CALVIN作为一个突破性的语言条件策略学习基准,在推动机器人学习和自然语言处理交叉领域的研究方面具有重要意义:
-
促进长期任务规划: CALVIN通过提供长期、多步骤的任务序列,推动了机器人长期任务规划和执行的研究。这对于开发能够执行复杂、连续任务的智能机器人系统至关重要。
-
语言理解与执行: CALVIN强调了将自然语言指令转化为具体机器人动作的重要性,推动了自然语言处理和机器人控制的深度融合。
-
多模态学习: 通过提供多种传感器观察和灵活的动作空间,CALVIN鼓励研究人员探索多模态学习策略,以提高机器人的感知和操作能力。
-
标准化评估: CALVIN提供了一个标准化的评估协议,使得不同的研究方法可以在相同的基准上进行比较,促进了领域内的公平竞争和快速进展。
-
开源生态: 作为一个开源项目,CALVIN促进了研究社区的合作和知识共享,加速了语言条件机器人控制领域的整体发展。
结论
CALVIN作为一个开创性的语言条件策略学习基准,为机器人学习和自然语言处理的交叉研究提供了宝贵的资源和工具。它通过提供复杂的长期任务、多样化的传感器观察和灵活的评估协议,推动了能够理解和执行自然语言指令的智能机器人系统的发展。随着越来越多的研究者和开发者加入CALVIN生态系统,我们有理由期待在语言条件机器人控制领域看到更多突破性的进展。
CALVIN不仅是一个技术工具,更是一个推动机器人与人类更好交互的重要步骤。通过使机器人能够理解和执行复杂的语言指令,CALVIN为未来人机协作的新范式铺平了道路。随着研究的不断深入,我们可以期待看到更多智能、灵活且易于与人类合作的机器人系统的出现,这将为制造业、医疗保健、家庭服务等多个领域带来革命性的变革。
CALVIN的发展离不开研究社区的共同努力。如果您发现CALVIN对您的研究有帮助,请考虑引用相关论文并为项目做出贡献。让我们共同推动语言条件机器人控制的前沿,创造一个机器人能够无缝理解和执行人类指令的未来。