| --- |
| license: gpl-2.0 |
| --- |
| |
| # AugMPCModels |
|
|
| Demo bundles for [AugMPC](https://github.com/AndrePatri/AugMPC): |
|
|
| - Andrea Patrizi, Carlo Rizzardo, Arturo Laurenzi, Francesco Ruscelli, Luca Rossini, Nikos G. Tsagarakis |
| - *RL-Augmented MPC for Non-Gaited Legged and Hybrid Locomotion* |
| - IEEE Robotics and Automation Letters (RA-L) |
| - arXiv: [2603.10878](https://arxiv.org/abs/2603.10878) |
|
|
| ## Preferred usage |
|
|
| The preferred way to run these models is through the dedicated [ibrido-containers](https://github.com/AndrePatri/ibrido-containers) setup. The containers provide the expected runtime environments, MPC implementations, workspace layout, and `training_data` mounts used by the published bundles. |
|
|
| In practice, users should: |
|
|
| 1. set up the container following the instructions in `ibrido-containers`; |
| 2. pick the desired container : `ibrido-containers/ibrido_u22` ships with IsaacSim, `ibrido-containers/ibrido_u20` for cheap single environment transfer evaluations on MujoCo. |
| 3. pick a matching configuration file associated with the target robot under `ibrido-containers/ibrido_u*/singularity/files/training_cfgs/<robot_name>/`; configs for the same robot may change crucial MPC parameters, so it's important that this matches the one used during training. |
| 3. configure the config to load the chosen model bundle by modyfing these variables: |
|
|
| ```bash |
| export EVAL=1 # run framework in eval mode |
| export DET_EVAL=1 # run deterministic policy evaluation |
| export EVAL_ON_CPU=1 # eval on CPU |
| export OVERRIDE_ENV=0 # if 0, will load the exact same environment as used during training |
| export OVERRIDE_AGENT_REFS=1 # if 1 user can send refs to the agent using the keyboard or joystick utilities in AugMPC |
| export MPATH="/root/training_data/AugMPCModels/bundles/<robot_name>/<bundle_name>" # path to the bundle |
| export MNAME="<bundle_name>_model" # torch model name within the bundle path |
| #... |
| export N_ENVS=1 # you can add more if you want to run multiple environments (if chosen world interface supports vectorized simulation) |
| ``` |
|
|
| For instance: |
|
|
| ```bash |
| export MPATH="/root/training_data/AugMPCModels/bundles/centauro/d2026_03_07_h19_m22_s30-CentauroCloopPartialNoYawUb_FakePosTrackingEnv" |
| export MNAME="d2026_03_07_h19_m22_s30-CentauroCloopPartialNoYawUb_FakePosTrackingEnv_model" # or any other checkpoint available |
| ``` |
|
|
| Within the existing `ibrido-containers` logic, `EVAL=1` triggers evaluation mode using the policy pointed to by `MPATH` and `MNAME`. Users can verify that the evaluation configuration is aligned with the original training setup by inspecting the preserved training script stored in the bundle under `bundles/<robot_name>/<bundle_name>/ibrido_run_*/training_cfg_*.sh`. |
|
|
| ## Repository structure |
|
|
| Each model is distributed as a **bundle**, not just as a checkpoint file. A bundle may include: |
|
|
| - the policy checkpoint |
| - environment and deployment configuration files |
| - robot description files (`URDF`, `SRDF`) |
| - controller/world-interface helpers needed for reproduction |
| - a `bundle.yaml` manifest describing the contents |
|
|
| Layout: |
|
|
| ```text |
| bundles/ |
| <robot_name>/ |
| <bundle_name>/ |
| bundle.yaml |
| <checkpoint>_model |
| *.yaml |
| *.py |
| *.urdf |
| *.srdf |
| other/ |
| ``` |
| ## Training runs |
| The training runs associated to the public models are made available [here](https://wandb.ai/andrepatriteam/AugMPCModels?nw=nwuserandrepatri). |
|
|