Asimov 1 is an open-source humanoid robot developed by Menlo Research. This repository provides the training and evaluation code for its locomotion policies, so you can train policies in simulation and deploy them to the real robot.
Get your own Asimov 1. Order now.
Standalone Isaac Lab extension for training Asimov-1 locomotion policies with PPO and adversarial motion priors (AMP).
For a brand-new machine with no existing Isaac Lab setup, run the install
script from the project root. It sets up a uv-managed environment, pulls the
pinned Isaac Lab and asimov-1 submodules, and installs everything needed
to train and play. Prerequisites: Ubuntu 22.04+ (x86_64), a compatible
NVIDIA driver, uv installed, and sudo access
(used to install cmake/build-essential).
git clone https://github.com/menloresearch/isaac_asimov.git
cd isaac_asimov
./quick_install.shIf you already have your own Isaac Lab checkout you want to reuse, want conda instead of uv, or just want to understand what each install step does: Advanced Install.
Before starting a training run, run a quick test to ensure the full pipeline is functional. The following code will fire off a short training run with a small number of environments which should take ~10 minutes on a 4090.
Quick Test
This is a small job to see if the full training code is working. These settings should work for most GPUs and finish relatively quickly.
./isaac_asimov.sh --train \
--task Asimov1-Velocity-AMP-v0 --num_envs 128 --headless --max_iterations 100Use this code to replicate the training run for our baseline policy using a single GPU.
AMP (recommended)
./isaac_asimov.sh --train \
--task Asimov1-Velocity-AMP-v0 --num_envs 4096 --headlessPlain PPO baseline
./isaac_asimov.sh --train \
--task Asimov1-Velocity-v0 --num_envs 4096 --headlessUseful flags: --max_iterations <n>, --seed <n>, --video (record rollout
clips during training).
Note: We use 4096 num_envs to train our baseline locomotion policy using A6000 or pro 6000. If you hit any out of memory errors, consider lowering the num_envs. However, this means that the policy may take longer to converge or may be less stable for the same number of iterations.
This code runs training via --distributed with two GPUs and 4096 environments per GPU. You should adjust the parameters according to the compute available to you.
python -m torch.distributed.run --standalone --nnodes=1 --nproc_per_node=2 \
scripts/rsl_rl/train.py \
--task Asimov1-Velocity-AMP-v0 --num_envs 4096 --headless --distributedLoad the latest checkpoint and visualize the trained policy:
./isaac_asimov.sh --play \
--task Asimov1-Velocity-AMP-Play-v0 --num_envs 32Use --checkpoint <path> to select a specific checkpoint (--target is an
alias), or --onnx-output <path> for an extra ONNX export.
Checkpoints and logs are written to logs/rsl_rl/<experiment_name>/<run>/.
The training code has been tested on the following GPUs:
- NVIDIA RTX A6000
- NVIDIA RTX PRO 6000
- NVIDIA RTX 4090
- NVIDIA RTX 3090
This repository is built upon the support and contributions of the following open-source projects. Special thanks to:
- IsaacLab: The foundation for training and running codes.
- MuJoCo: Providing powerful simulation functionalities.
- whole_body_tracking: Versatile humanoid control framework for motion tracking.
- beyondAMP: Referenced for AMP-based motion imitation.
- mjlab: MuJoCo-based training utilities and references.
We're planning community livestreams where we’ll test policies contributed by developers on the real Asimov 1. Join the community to share your work, discuss experiments, and hear about upcoming sessions.