Bez_IsaacGym

July 4, 2022 ยท View on GitHub

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:

  • task (string): environment name to use.
  • num_envs (int): number of environment instances to run. Default to 4096.
  • headless (bool): whether to run the simulator with/without GUI.
  • checkpoint (string): To load from a checkpoint.
  • test (bool): whether to train.

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