This repository provides a workflow for training a legged robot using IsaacLab. It provides high transparency and low refactoring difficulty of the environment, and uses isaaclab components to simplify the workflow. The codebase is built on IsaacLab, supports Sim2Sim transfer to MuJoCo, and features a modular architecture for seamless customization and extension.
Maintainer: Zhihao Liu Contact: ZhihaoLiu_hit@163.com
Key Features:
Easy to ReorganizeProvides a direct workflow, allowing for fine-grained definition of environment logic.IsolationWork outside the core Isaac Lab repository, ensuring that the development efforts remain self-contained.Long-term supportThis repository will be updated with the updates of isaac sim and isaac lab, and will be supported for a long time.
ATOM01-Train is built against the latest version of Isaacsim/IsaacLab. It is recommended to follow the latest updates of ATOM01-Train.
-
Install Isaac Lab by following the installation guide. We recommend using the conda installation as it simplifies calling Python scripts from the terminal.
-
Clone this repository separately from the Isaac Lab installation (i.e. outside the
IsaacLabdirectory):
git clone https://github.com/Roboparty/atom01_train.git- Using a python interpreter that has Isaac Lab installed, install the library
cd atom01_train
git submodule update --init --recursive
cd robolab
pip install -e .
cd ..
cd rsl_rl
pip install -e .
cd ..- Verify that the extension is correctly installed by running the following command to print all the available environments in the extension:
python robolab/scripts/tools/list_envs.pypython robolab/scripts/rsl_rl/train.py --task=<ENV_NAME> --headless --logger=tensorboard --num_envs=8192python robolab/scripts/rsl_rl/play.py --task=<ENV_NAME> --num_envs=1python robolab/scripts/mujoco/sim2sim_atom01.py --load_model "{exported/policy.pt model full path here}"To obtain dataset for AMP and BeyondMimic, please visit GMR.
The joint order in the dataset obtained via GMR corresponds to the order in Robot URDF and XML, which differs from the one used in Isaac Lab. Therefore, we need to prepare a .yaml file which contains joint mapping information like the one showed in scripts/tools/retarget/config/atom01.yaml, and then reorder the joint sequence using scripts/tools/retarget/dataset_retarget.py before training.
This project repository builds upon the shoulders of giants.