Evaluación de Simulación DROID
Este repositorio contiene scripts para evaluar políticas DROID en un entorno simple de simulación ISAAC.
Aquí hay un ejemplo de despliegue de una política pi0-FAST-DROID:
Escena 1

Escena 2

Escena 3

La simulación está ajustada para funcionar zero-shot con políticas DROID entrenadas en el conjunto de datos DROID del mundo real, por lo que no se requiere un conjunto de datos de simulación separado.
Nota: El simulador actual funciona mejor para políticas entrenadas con espacio de acción de posición conjunta (y no control de velocidad conjunta). Proporcionamos ejemplos para evaluar políticas pi0-FAST-DROID entrenadas con control de posición conjunta a continuación.
Instalación
Clona el repositorio
git clone --recurse-submodules git@github.com:arhanjain/sim-evals.git
cd sim-evalsInstale uv (vea: https://github.com/astral-sh/uv#installation)
Por ejemplo (Linux/macOS):
curl -LsSf https://astral.sh/uv/install.sh | shCrear y activar un entorno virtual
uv sync
source .venv/bin/activateInicio Rápido
Primero, asegúrese de descargar los activos de la simulación en la raíz de este directorio
uvx hf download owhan/DROID-sim-environments --repo-type dataset --local-dir assetsLuego, en una terminal separada, inicie el servidor de políticas en localhost:8000.
Por ejemplo, para iniciar una política pi0-FAST-DROID (con control de posición conjunta),
consulte openpi y use las configuraciones de polaris
XLA_PYTHON_CLIENT_MEM_FRACTION=0.5 uv run scripts/serve_policy.py policy:checkpoint --policy.config=pi05_droid_jointpos_polaris --policy.dir=gs://openpi-assets/checkpoints/pi05_droid_jointposNota: Configuramos XLA_PYTHON_CLIENT_MEM_FRACTION=0.5 para evitar que JAX acapare toda la memoria de la GPU (en caso de que Isaac Sim esté usando la misma GPU).
Finalmente, ejecute el script de evaluación:
python run_eval.py --episodes [INT] --scene [INT] --headlessEjemplo Mínimo
env_cfg.set_scene(scene) # pass scene integer
env = gym.make("DROID", cfg=env_cfg)obs, _ = env.reset()
obs, _ = env.reset() # need second render cycle to get correctly loaded materials
client = # Your policy of choice
max_steps = env.env.max_episode_length
for _ in tqdm(range(max_steps), desc=f"Episode"):
action = client.infer(obs, INSTRUCTION) # calling inference on your policy
action = torch.tensor(ret["action"])[None]
obs, _, term, trunc, _ = env.step(action)
if term or trunc:
break
env.close()
--- Tranlated By Open Ai Tx | Last indexed: 2026-02-21 ---