Deployment

A hands-on playbook for moving a UniLab policy across hardware, simulation backends, and source frameworks. Each tutorial follows the same shape:

  1. What you start with — the trained artefact and config.

  2. What changes — the minimal set of edits in code, YAML, and assets.

  3. How you validate — concrete commands and checkpoints.

Choose your journey

🤖 Sim → Real

Prepare a trained policy for G1 / Go2 / Allegro bring-up with ONNX exports and deploy-side contract checks.

Sim-to-Real
🔀 Sim → Sim

Switch the same task between MuJoCo and Motrix without retraining from scratch.

Sim-to-Sim
🔁 Framework Migration

Bring tasks over from Isaac Lab / Legged Gym / rsl_rl / skrl.

Framework Migration

🤖 Sim → Real

🗺 Overview & pre-flight

End-to-end pipeline + go/no-go checklist.

Sim-to-Real Overview
🦿 G1 whole-body

29-DoF humanoid; motion-tracking deploy.

G1 Whole-Body Motion Tracking on Hardware
🐕 Go2 locomotion

Joystick, rough terrain, Go2W wheels.

Go2 / Go2W Locomotion Deployment
🤚 Allegro in-hand

Cube rotation; friction + vision.

Allegro / Sharpa In-Hand Manipulation Deployment
📦 ONNX export & runtime

Training playback exports, ONNX Runtime checks, and deploy prototype inputs.

ONNX Runtime
🎲 Sim-to-real DR

Priority-ordered DR recipes.

Domain Randomization for Real-World Transfer
🛡 Safety layers

Soft limits, EMA, e-stop, watchdog.

Hardware Safety Layers
⏱ Latency & observation lag

Training-side latency knobs and deploy-side measurement checks.

Latency Budget
🔧 Troubleshooting

Symptom → cause → fix cookbook.

Sim-to-Real Troubleshooting

🔀 Sim → Sim (MuJoCo ↔ Motrix)

🤔 Backend swap
Backend Swap
🔬 Contact & friction alignment
Aligning Contact and Friction Between Backends
⚖ Reward parity checks
Reward Parity Across Backends
🎞 Playback differences
Playback and Snapshot Differences
🚫 Known capability gaps
Capability Gaps

🔁 Framework Migration

From Isaac Lab

GPU-resident → CPU + shared-mem.

Migrating from Isaac Lab
From Legged Gym

Class-based env → NpEnv.

Migrating from Legged Gym
From rsl_rl

Trainer split: collector + learner.

Migrating from RSL-RL
From skrl

Algo coverage and trade-offs.

Migrating from skrl
📋 Config translation cheatsheet

Side-by-side field map.

Task Config Translation Cheatsheet
📒 Reward porting cookbook

Common reward terms in UniLab style.

Reward Porting