Libero environment¶
Run Libero tasks in plugrl-env-client via an optional dependency group.
Install¶
Install env client with Libero extras.
Quickstart¶
Inspect the CLI config.
Run a few episodes.
As E11 ran it¶
E11 evaluated a pi05_libero checkpoint on LIBERO through a PlugRL server: one
client process per task, ten tasks at once, with each task's initial states
taken in order rather than sampled.
plugrl-run-env-client libero-v1 \
--server-host 127.0.0.1 --server-port 8000 \
--num-envs 1 --num-procs 10 --num-episodes 10 \
--env.task-suite-name libero_spatial \
--env.no-randomize-initial-state \
--runner.pass-proc-id \
--runner.replan-steps 5 \
--runner.seed 7 \
--recorder.no-thread0-only \
--exp-name my_eval
--runner.pass-proc-idgives process i task i, so ten processes cover a ten-task suite and--num-episodescounts per task rather than in total. To hold one task fixed instead - which is what the fine-tuning runs did - drop that flag and pass--env.task-id 8 --env.randomize-initial-state.--recorder.no-thread0-onlymakes every process write its ownsummary.json. Without it only process 0 reports, and per-task success rates cannot be recovered afterwards.- Rendering goes through EGL, so the client needs
MUJOCO_GL=eglandPYOPENGL_PLATFORM=eglin its environment. Which GPU it renders on follows EGL's own device order, which need not agree withCUDA_VISIBLE_DEVICES. - LIBERO writes its own config file, so point
LIBERO_CONFIG_PATHsomewhere writable before the first run.
Protocol, results and the recorded environment of both processes: E11.
Verify¶
- Env client can create the Libero env.
- Episodes run without init errors.
Troubleshooting¶
- Multi process init conflicts: try
--use-env-lock.