Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thenewtoncapstone/twip-isaac-sim
Originally from: https://github.com/kevinh42/gym2real_isaacgym
https://github.com/thenewtoncapstone/twip-isaac-sim
isaac-sim ml rl
Last synced: about 2 months ago
JSON representation
Originally from: https://github.com/kevinh42/gym2real_isaacgym
- Host: GitHub
- URL: https://github.com/thenewtoncapstone/twip-isaac-sim
- Owner: TheNewtonCapstone
- Created: 2024-06-02T23:58:35.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2024-11-01T19:16:10.000Z (about 2 months ago)
- Last Synced: 2024-11-01T20:20:07.714Z (about 2 months ago)
- Topics: isaac-sim, ml, rl
- Language: Python
- Homepage:
- Size: 8.96 MB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TWIP - Isaac Sim
This repo contains the code and configuration used during our journey of developing TWIP using NVIDIA's Isaac Sim and rl games.## Requirements
- Ubuntu 22.04 LTS (Works with Pop OS as well)
- Nvidia GPU with 510.73.05+ drivers (`nvidia-smi` to make sure these are set up)
- Isaac Sim (tested with version `4.0.0`)
- RL games
- Anaconda | Miniconda## Isaac Sim Setup
- Download Isaac Sim by following the steps found within Nvidia's installation (guide)[https://docs.omniverse.nvidia.com/isaacsim/latest/installation/install_workstation.html].
- Run Isaac sim from the Omniverse application to make sure it runs properly
- Clone this repository `git clone https://github.com/TheNewtonCapstone/twip-isaac-sim`
- Remove any folder named `_isaac_sim`
- Run `cd twip-isaac-sim && ln -s home/YOUR_NAME/.local/share/ov/pkg/isaac-sim-4.0.0`
- Create the conda environment `conda env create -f environment.yml`## Repo Structure
- `twip.py`: Main script used for training/testing/exporting models
- `export.py`: Script for exporting models as ONNX files
- `cfg/task/`: YAML configs for each task defining environment parameters and domain randomization
- `cfg/train/`: YAML configs for each task defining RL model and hyperparameters
- `tasks/`: Class definitions and assets for each task
- `runs/`: Model checkpoints and summaries will be saved here## Usage
### Running Isaac Sim
The entry point of our project is `twip.py`. To run our project you must configure the environment:
- `conda activate isaac-sim`
- `source _isaac_sim/setup_conda_env.sh`
- `python twip.py --sim-only --num-envs 4``--sim-only` is used to run the simluation alone without any reinforcement learning. `--num-envs` specifies the number of twip environments within the simulation. To see all the options, run `twip.py --help`.
### Training
- `python train.py task={task_name}` to begin training
- Models are saved as `runs/{TaskName}/nn/{checkpoint_name}.pth`### Exporting ONNX
- `python twip.py --checkpoint="runs/{checkpoint_name}/nn/{task_name}.pth --export-onnx"` to export
- Model is exported to `runs/{checkpoint_name}/nn/{task_name}.pth.onnx`### Adding a New Task (?)
Create a new folder called `tasks/{task_name}`. The following files will be needed:
- `tasks/{task_name}/{task_name}.py`: Class defining the task. Rewards, observations, actions are all defined here.
- `tasks/{task_name}/assets/`: URDF and meshes should be placed here.
- `cfg/task/{TaskName}.yaml`: Config file defining environment parameters and domain randomization
- `cfg/train/{TaskName}PPO.yaml`: Config file defining hyperparameters for training