Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,17 @@ Deploy Code: https://github.com/Hellod035/LeggedLabDeploy

LeggedLab is built against the latest version of Isaacsim/IsaacLab. It is recommended to follow the latest updates of legged lab.

### Version Compatibility

The following version combinations have been tested and verified to work:

- ✅ **Isaac Sim 4.5.0** + **Isaac Lab 2.1.0**
- ✅ **Isaac Sim 5.0.0** + **Isaac Lab 2.2.1**

> **Note**: While other version combinations may work, these are the officially tested configurations. Ensure that your Isaac Sim and Isaac Lab versions are compatible with each other.

### Setup Steps

- Install Isaac Lab by following the [installation guide](https://isaac-sim.github.io/IsaacLab/main/source/setup/installation/index.html). 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 `IsaacLab` directory):
Expand All @@ -56,6 +67,29 @@ pip install -e .
python legged_lab/scripts/train.py --task=g1_flat --headless --logger=tensorboard --num_envs=64
```

### Training

To train a model, use the following command:

```bash
python legged_lab/scripts/train.py --task=g1_flat --headless --logger=tensorboard --num_envs=8192
```

**Training Notes:**
- For a 12GB GPU, training with 8192 environments typically converges after approximately 2000 iterations.
- Adjust `--num_envs` based on your GPU memory capacity.
- Use `--logger=tensorboard` or `--logger=wandb` to track training progress.

### Supported Tasks

The following tasks are currently supported:

- `g1_flat` - Unitree G1 on flat terrain
- `g1_rough` - Unitree G1 on rough terrain
- `h1_flat` - Unitree H1 on flat terrain
- `h1_rough` - Unitree H1 on rough terrain
- `gr2_flat` - FFTai GR2 on flat terrain
- `gr2_rough` - FFTai GR2 on rough terrain

## Use Your Own Robot

Expand All @@ -66,6 +100,25 @@ Assets must be converted into USD format to be compatible with Legged Lab/IsaacL

Legged Lab supports multi-GPU and multi-node reinforcement learning using rsl_rl, the usage is exactly the same as IsaacLab. [Detailed information](https://isaac-sim.github.io/IsaacLab/main/source/features/multi_gpu.html)

## Testing and Evaluation

### Running Trained Models

To test a trained model, use the `play.py` script:

```bash
# Basic usage - test with default settings
<path-to-IsaacLab>/isaaclab.sh -p legged_lab/scripts/play.py --task=g1_flat --num_envs=64
```


The script will:
- Load the latest checkpoint from `logs/<task_name>/` directory
- Export the policy as JIT and ONNX formats to `logs/<task_name>/<run_id>/exported/`
- Run the policy in simulation



## Troubleshooting

### Pylance Missing Indexing of Extensions
Expand All @@ -86,6 +139,25 @@ In some VsCode versions, the indexing of part of the extensions is missing. In t
}
```

### RSL-RL Version Mismatch

In some cases, you may encounter a version mismatch with RSL-RL, resulting in the following error:

```
ValueError: The observation configuration dictionary 'obs_groups' must contain the 'policy' key. Found keys: []
```

**Solution:**

Reinstall RSL-RL using the Isaac Lab installation script:

```bash
<path-to-IsaacLab>/isaaclab.sh -i rsl-rl
```

This will ensure that RSL-RL is properly installed and compatible with your Isaac Lab version.


## References and Thanks
This project repository builds upon the shoulders of giants.
* [IsaacLab](https://github.com/isaac-sim/IsaacLab) The various reusable practical components in IsaacLab greatly simplify the complexity of LeggedLab.
Expand Down