Home

Awesome

Bez_IsaacGym

License Python Ubuntu 20.04 Documentation Status

About this repository

This repository provides IsaacGym environment for the Humanoid Robot Bez.

The project currently uses RL-Games 1.13 for training agents.

This code is released under LICENSE.

Installation

Pre-requisites

The code has been tested on Ubuntu 20.04 with Python 3.8. The minimum recommended NVIDIA driver version for Linux is 460.32.

Install IsaacGym

Download the Isaac Gym Preview 3 release from the website, then follow the installation instructions in the documentation.

Once Isaac Gym is installed, to install all its dependencies, run:

cd PATH_TO/isaacgym/python
pip install -e .

To verify the details of the installed package, run:

pip show isaacgym

Install Bez_IsaacGym

To install Bez_IsaacGym package and all its dependencies, run:

git clone git@github.com:utra-robosoccer/Bez_IsaacGym.git
cd PATH_TO/Bez_IsaacGym
pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
pip install -e .

Running

To train or test you must be in the bez_isaacgym folder, run this line:

cd PATH_TO/Bez_IsaacGym/bez_isaacgym

Training

We use Hydra to keep configuration of runs simple. You can view the main arguments to the scripts by looking in the file bez_isaacgym/cfg/config.yaml.

You can also set the configuration parameters from terminal by doing {config_variable_name}={value}. The main ones to be aware of for are:

To train your first policy, run this line:

python train.py task=bez_kick 

Inference and Loading Checkpoints

Checkpoints are saved in the folder runs/EXPERIMENT_NAME/nn where EXPERIMENT_NAME defaults to the task name, but can also be overridden via the experiment argument.

To load a trained checkpoint and continue training, use the checkpoint argument:

python train.py task=bez_kick checkpoint=result/Bez_Kick/nn/Bez_Kick.pth

To load a trained checkpoint and only perform inference (no training), pass test=True as an argument, along with the checkpoint name. To avoid rendering overhead, you may also want to run with fewer environments using num_envs=64:

python train.py task=bez_kick checkpoint=runs/Bez_Kick/nn/Bez_Kick.pth test=True num_envs=64

Note that If there are special characters such as [ or = in the checkpoint names, you will need to escape them and put quotes around the string. For example, checkpoint="./runs/Bez_Kick/nn/last_Bez_Kickep\=501rew\[5981.31\].pth"

Test

There are testing programs for sample behaviors located in bez_isaacgym/test.

Clicking on the green button next to each function with launch the test