🤖 AI Summary
Existing approaches to online robot learning and batch physical simulation lack efficient, stateful parallel environment execution. This work proposes BatchEnvPool, which—without modifying MuJoCo’s core—introduces, for the first time, persistent, state-preserving batched runtime primitives that remain compatible with MuJoCo’s original CPU semantics while extending its rollout capabilities. Implemented in C++ with pybind11, the method employs an internal thread pool to manage multiple copies of mjModel and associated mjData workers, enabling short-step rollouts, sparse resets, domain randomization, and batched sensor and Jacobian queries. The open-source package mujoco-uni, installable via pip, demonstrably achieves substantial gains in parallel simulation throughput while fully preserving MuJoCo’s solver behavior and physical fidelity.
📝 Abstract
We present MuJoCoUni, a downstream MuJoCo distribution for online robot learning and batched physics evaluation. Alongside the open-loop batched trajectory generation already provided by upstream mujoco.rollout, MuJoCoUni supplies runtime primitives for stateful environment execution. The target workloads need high-throughput parallel execution while retaining upstream CPU MuJoCo semantics for models, sensors, contact, and constraints. Its core object, BatchEnvPool, is a C++/pybind11 executor that owns per-environment mjModel copies, per-thread mjData workers, and an internal thread pool. It provides final-state-only short stepping, sparse reset, reset-lifecycle domain randomization, batched sensor forward evaluation without advancing dynamics, and batched Jacobian and height-field queries. The implementation is confined to the Python binding layer; MuJoCo's solver, contact model, integrator, and core source tree retain upstream semantics. This report describes the BatchEnvPool API, implementation boundary, relationship to rollout, and the validation and benchmark scripts shipped with the open-source mujoco-uni package, which is installed with \texttt{pip install mujoco-uni}.