跳转到内容

BEHAVIOR-1K 评测

BEHAVIOR-1K 是斯坦福大学开发的家庭任务仿真基准,包含 1000 种日常生活活动(如做饭、清洁、整理等)。我们按照 2025 BEHAVIOR Challenge 的结构,在 50 个完整家庭任务上进行训练和评测。使用 R1Pro 人形机器人(双臂 + 底座 + 躯干,23 维动作空间)。

评测流程主要包含两部分:

  1. 配置 behavior 环境与依赖。
  2. 分别在 starVLAbehavior 环境中启动服务并运行评测。

配置 behavior conda 环境:

Terminal window
git clone https://github.com/StanfordVL/BEHAVIOR-1K.git
conda create -n behavior python=3.10 -y
conda activate behavior
cd BEHAVIOR-1K
pip install "setuptools<=79"
# --omnigibson: 安装 OmniGibson 仿真器(BEHAVIOR 的底层物理引擎)
# --bddl: 安装 BDDL(Behavior Domain Definition Language,任务定义语言)
# --joylo: 安装 JoyLo(遥操作控制接口)
# --dataset: 下载 BEHAVIOR 数据集资源(场景、物体模型等)
./setup.sh --omnigibson --bddl --joylo --dataset
conda install -c conda-forge libglu
pip install rich omegaconf hydra-core msgpack websockets av pandas google-auth

同时在 starVLA 环境中:

Terminal window
pip install websockets

步骤:

  1. 下载检查点
  2. 根据需要选择以下脚本
Terminal window
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 bash examples/Behavior/start_parallel_eval.sh

运行 start_parallel_eval.sh 之前,设置以下路径:

  • star_vla_python:StarVLA 环境的 Python 解释器
  • sim_python:Behavior 环境的 Python 解释器
  • TASKS_JSONL_PATH:从训练数据集下载的任务描述文件(已包含在 examples/Behavior/tasks.jsonl
  • BEHAVIOR_ASSET_PATH:behavior 资源的本地路径(使用 ./setup.sh 安装后默认在 BEHAVIOR-1K/datasets

为便于调试,你也可以在两个独立终端中分别启动客户端(评测环境)和服务端(策略):

Terminal window
bash examples/Behavior/start_server.sh
bash examples/Behavior/start_client.sh

以上调试文件将在训练集上进行评测。

为防止内存溢出,我们实现了另一个文件 start_parallel_eval_per_task.sh

Terminal window
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 bash examples/Behavior/start_parallel_eval_per_task.sh
  • 脚本将迭代运行 INSTANCE_NAMES 中每个任务的评测
  • 对于每个任务,将 TEST_EVAL_INSTANCE_IDS 中的所有实例分配到各 GPU
  • 等待前一个任务完成后再继续下一个任务

  1. RGBLowResWrapper:仅使用 RGB 作为视觉观测,相机分辨率为 224×224。仅使用低分辨率 RGB 可以加速仿真器并减少评测时间。此 wrapper 可用于标准赛道。

  2. DefaultWrapper:使用数据收集时的默认观测配置(RGB + 深度 + 分割,头部相机 720p,手腕相机 480p)。此 wrapper 可用于标准赛道,但评测速度会比 RGBLowResWrapper 慢很多。

  3. RichObservationWrapper:加载额外的观测模态,如法线和光流,以及特权任务信息。此 wrapper 只能用于特权信息赛道。

BEHAVIOR 的动作维度 = 23:

"R1Pro": {
"base": np.s_[0:3], # 索引 0-2
"torso": np.s_[3:7], # 索引 3-6
"left_arm": np.s_[7:14], # 索引 7-13
"left_gripper": np.s_[14:15], # 索引 14
"right_arm": np.s_[15:22], # 索引 15-21
"right_gripper": np.s_[22:23] # 索引 22
}

视频将以 {task_name}_{idx}_{epi}.mp4 格式保存,其中 idx 是实例编号,epi 是 episode 编号。

Segmentation fault (core dumped): 可能的原因是 Vulkan 未成功安装。请查看此链接

ImportError: libGL.so.1: cannot open shared object file:

Terminal window
apt-get install ffmpeg libsm6 libxext6 -y