콘텐츠로 이동

SimplerEnv 평가

SimplerEnv는 WidowX 로봇 팔을 사용하는 ManiSkill 기반 시뮬레이션 환경으로, 테이블탑 조작 태스크(잡기, 놓기, 서랍 조작 등)를 수행합니다. Open X-Embodiment(OXE) 데이터셋으로 학습된 VLA 모델의 평가에 널리 사용됩니다.

이 문서는 SimplerEnv에서의 실험 결과 재현 방법을 안내합니다.

평가 과정은 크게 두 부분으로 구성됩니다:

  1. simpler_env 환경 및 의존성 설정.
  2. starVLAsimpler_env 환경 모두에서 서비스를 시작하여 평가 실행.

이 워크플로우는 NVIDIA A100RTX 4090 GPU에서 정상 작동이 확인되었습니다.


MethodStepsPut Spoon on TowelPut Carrot on PlateStack Green Block on Yellow BlockPut Eggplant in Yellow BasketAverage
RT-1-X-0.04.20.00.01.1
Octo-Base-15.812.50.041.717.5
Octo-Small-41.78.20.056.726.7
OpenVLA-4.20.00.012.54.2
CogACT-71.750.815.067.551.3
SpatialVLA-16.725.029.2100.042.7
π₀-29.10.016.662.527.1
π₀-FAST-29.121.910.866.648.3
GR00T N1.5-75.354.357.061.361.9
Magma-37.531.012.760.535.8
StarVLA-FAST (Qwen3-VL)15K18.831.34.271.931.6
StarVLA-OFT (Qwen3-VL)65K90.338.529.7100.064.6
StarVLA-π (Qwen3-VL)40K78.146.930.288.560.9
StarVLA-GR00T (Qwen3-VL)20K83.059.418.8100.065.3
StarVLA-OFT (Cosmos-Predict2-2B)30K66.862.625.390.261.2
StarVLA-π (Cosmos-Predict2-2B)30K81.455.225.173.058.7
StarVLA-GR00T (Cosmos-Predict2-2B)30K80.465.420.080.661.6
MethodPick Coke CanMove NearOpen/Close DrawerOpen Top Drawer and Place AppleAverage
RT-185.744.273.06.552.4
RT-1-X56.731.759.721.342.4
RT-2-X78.777.925.03.746.3
OpenVLA18.056.363.00.034.3
CogACT91.385.071.850.974.8
SpatialVLA86.077.957.4-75.1
π₀72.765.338.3-58.8
π₀-FAST75.367.542.9-61.9
GR00T N1.5*51.754.027.87.435.2
Magma83.765.456.06.452.9
StarVLA-OFT95.375.068.866.176.0
MethodPick Coke CanMove NearOpen/Close DrawerOpen Top Drawer and Place AppleAverage
RT-189.850.032.32.643.7
RT-1-X49.032.329.410.130.2
RT-2-X82.379.235.320.654.4
OpenVLA60.867.728.80.039.3
CogACT89.680.828.346.661.3
SpatialVLA88.082.541.8-70.7
π₀75.263.725.6-54.8
π₀-FAST77.668.231.3-59.0
GR00T N1.569.368.735.84.044.5
Magma68.865.753.418.551.6
StarVLA-OFT91.375.155.059.470.2

Note: All StarVLA Google Robot results use Qwen3-VL-4B as backbone. Numbers marked with * denote our reimplementation.


환경 설정을 위해 먼저 공식 SimplerEnv 저장소를 참고하여 기본 simpler_env 환경을 설치하세요.

이후 simpler_env 환경 내에서 다음 의존성을 설치합니다:

Terminal window
conda activate simpler_env
pip install tyro matplotlib mediapy websockets msgpack
pip install numpy==1.24.4 # 시뮬레이션 환경 호환을 위해 numpy 다운그레이드

일반적인 문제: NVIDIA A100에서 SimplerEnv를 테스트할 때 다음 오류가 발생할 수 있습니다: libvulkan.so.1: cannot open shared object file: No such file or directory 다음 링크를 참고하여 해결할 수 있습니다: 설치 가이드 - Vulkan 섹션

최소한의 환경 검증 스크립트를 제공합니다:

Terminal window
python examples/SimplerEnv/test_your_simplerEnv.py

”✅ Env built successfully” 메시지가 표시되면 SimplerEnv가 올바르게 설치되어 사용할 준비가 된 것입니다.


starVLA 저장소 루트에서 두 개의 별도 터미널을 사용하여 평가를 실행합니다.

  • starVLA 환경: 정책 추론 서버를 실행합니다.
  • simpler_env 환경: 시뮬레이션 평가 코드를 실행합니다.

체크포인트를 다운로드합니다: Qwen3VL-GR00T-Bridge-RT-1

첫 번째 터미널에서 starVLA conda 환경을 활성화하고 실행합니다:

Terminal window
bash examples/SimplerEnv/eval_files/run_policy_server.sh

참고: examples/SimplerEnv/eval_files/run_policy_server.sh를 열고, your_ckpt 변수를 실제 체크포인트 경로로 설정하세요. 예: results/Checkpoints/Qwen3VL-GR00T-Bridge-RT-1/checkpoints/steps_50000_pytorch_model.pt.


2단계. 시뮬레이션 시작 (simpler_env 환경)

섹션 제목: “2단계. 시뮬레이션 시작 (simpler_env 환경)”

두 번째 터미널에서 simpler_env conda 환경을 활성화하고 실행합니다:

Terminal window
export MODEL_PATH=.../checkpoints/steps_50000_pytorch_model.pt
bash examples/SimplerEnv/start_simpler_env.sh ${MODEL_PATH}

이 스크립트는 WidowX Robot 평가 태스크를 자동으로 시작하여 위에 보고된 벤치마크 결과를 재현합니다.

참고: examples/SimplerEnv/start_simpler_env.sh를 열고, SimplerEnv_PATH 변수를 SimplerEnv 저장소 클론 경로로 설정하세요(예: /path/to/SimplerEnv).

일반적인 문제: 정책 서버 실행 시 NotImplementedError: Framework QwenGR00T is not implemented가 발생하면, 이는 보통 Framework가 Python의 임포트 경로에 올바르게 등록되지 않았기 때문입니다. 먼저 스모크 테스트를 실행하여 올바른 등록을 트리거하세요:

Terminal window
python starVLA/model/framework/QwenGR00T.py

스모크 테스트가 통과하면 정책 서버를 재시작하세요.


단계:

  1. LeRobot 형식의 OXE 데이터셋을 다운로드합니다:

  2. *lerobot/meta/modality.jsonmodality.json을 포함합니다:

    • bridge modality - modality.json으로 이름을 변경하고 bridge_orig_lerobot/meta/modality.json에 배치
    • fractal modality - modality.json으로 이름을 변경하고 fractal20220817_data_lerobot/meta/modality.json에 배치
  3. 데이터셋 경로를 config.yaml에 추가합니다:

    datasets:
    vla_data:
    dataset_py: lerobot_datasets
    data_root_dir: playground/Datasets/OXE_LEROBOT_DATASET
    data_mix: bridge_rt_1

데이터로더를 확인하는 간단한 방법을 제공합니다. 배치 데이터를 로드할 수 있는지 확인하세요:

Terminal window
python starVLA/dataloader/lerobot_datasets.py --config_yaml examples/SimplerEnv/train_files/starvla_cotrain_oxe.yaml

실행 전에 프레임워크가 가짜 데이터 예시로 forwardpredict_action을 수행할 수 있는지 확인해야 합니다.

다음 명령을 시도하세요:

Terminal window
python starVLA/model/framework/QwenGR00T.py --config_yaml examples/SimplerEnv/train_files/starvla_cotrain_oxe.yaml

모든 준비가 완료되면 제공된 스크립트로 학습을 시작합니다:

Terminal window
bash ./examples/SimplerEnv/train_files/run_oxe_train.sh

참고: 스크립트가 검증된 설정 경로를 명시적으로 사용하는지 확인하세요. 아직 전달되지 않았다면 --config_yaml 인자를 추가하세요.