LeRobot documentation

RoboCerebra

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.6.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

RoboCerebra

RoboCerebraは、VLAにおける高次の推論、計画、および記憶を評価する長期操作ベンチマークです。LIBEROのシミュレータースタック(MuJoCo + robosuite、Franka Panda 7-DOF)を基盤として構築されており、エピソードでは言語に根ざした中間指示を伴う複数のサブゴールが連鎖します。

利用可能なタスク

RoboCerebraはLIBEROのシミュレーターを再利用しているため、評価はLIBEROのlibero_10長期タスクスイートに対して実行されます:

スイートCLI名タスク説明
LIBERO-10libero_10103〜6のサブゴールを連鎖させる、長期にわたるキッチン/リビングルームのタスク

データセット内の各RoboCerebraエピソードは、自然言語による指示を持つ複数のサブタスクに分割されており、統合データセットはこれらを独立した教師信号として公開しています。

インストール

RoboCerebraはLIBEROに依存しているため、liberoのextraをインストールするだけで十分です:

pip install -e ".[libero]"
RoboCerebra requires Linux (MuJoCo / robosuite). Set the rendering backend before training or evaluation:
export MUJOCO_GL=egl  # for headless servers (HPC, cloud)

評価

RoboCerebraのevalは、LIBEROのlibero_10スイートに対して、RoboCerebraのカメラ命名規則(image + wrist_image)と、3視点で学習したポリシーが期待する入力レイアウトを受け取れるよう追加された空のカメラスロットを使用して実行されます:

lerobot-eval \
  --policy.path=lerobot/smolvla_robocerebra \
  --env.type=libero \
  --env.task=libero_10 \
  --env.fps=20 \
  --env.obs_type=pixels_agent_pos \
  --env.observation_height=256 \
  --env.observation_width=256 \
  '--env.camera_name_mapping={"agentview_image": "image", "robot0_eye_in_hand_image": "wrist_image"}' \
  --eval.batch_size=1 \
  --eval.n_episodes=10 \
  --eval.use_async_envs=false \
  --policy.device=cuda \
  '--rename_map={"observation.images.image": "observation.images.camera1", "observation.images.wrist_image": "observation.images.camera2"}' \
  --policy.empty_cameras=1

推奨される評価エピソード

libero_10スイート全体で、再現可能なベンチマークのために、タスクごとに10エピソード(合計100エピソード)を使用します。これはRoboCerebra論文で使用されたプロトコルと一致しています。

ポリシーの入力と出力

観察結果:

  • observation.state — 8次元の固有受容状態(7つの関節位置 + グリッパー)
  • observation.images.image — 三人称視点、256×256 HWC uint8
  • observation.images.wrist_image — 手首に装着されたカメラの映像、256×256 HWC uint8

アクション:

  • Box(-1, 1, shape=(7,)) における連続制御 — エンドエフェクターのデルタ(6次元)+ グリッパー(1次元)

トレーニング

lerobot/robocerebra_unified にある統合データセットは、2つのRGBストリームと、言語に基づいたサブタスクのアノテーションを公開しています:

機能形状説明
observation.images.image(256, 256, 3)三人称視点
observation.images.wrist_image(256, 256, 3)手首装着型カメラ
observation.state(8,)Joint pos + gripper
action(7,)EEFデルタ + グリッパー

それに基づいてSmolVLAベースをファインチューニングします:

lerobot-train \
  --policy.path=lerobot/smolvla_base \
  --policy.repo_id=${HF_USER}/smolvla_robocerebra \
  --policy.empty_cameras=1 \
  --dataset.repo_id=lerobot/robocerebra_unified \
  '--rename_map={"observation.images.image": "observation.images.camera1", "observation.images.wrist_image": "observation.images.camera2"}' \
  --env.type=libero \
  --env.task=libero_10 \
  '--env.camera_name_mapping={"agentview_image": "image", "robot0_eye_in_hand_image": "wrist_image"}' \
  --output_dir=outputs/smolvla_robocerebra

smolvla_base は、カメラ名が camera1〜camera3 であることを前提としています。そのため、カメラ関連のフラグは Evaluation コマンドと同じです。--rename_map はデータセットのカメラをこれらの名前にマッピングし、--env.camera_name_mapping は学習中の評価のために LIBERO のカメラにデータセット側の名前を付与します。

公開された結果の再現

公開されたチェックポイント lerobot/smolvla_robocerebra は lerobot/robocerebra_unified で学習され、評価 セクションのコマンドで評価されました。CI は、ベンチマークに関わるすべての PR に対して、スモークテストとして --eval.n_episodes=1 を付加した同じコマンドを実行します。

Update on GitHub