Skip to content

Commit 88c1ecf

Browse files
yardenasbreadli428
andauthored
Add omni installations (#42)
* Add omni installations * Add initial implementation of isaac * gitignore * incorporate isaaclab --------- Co-authored-by: Chenhao <[email protected]>
1 parent f20b331 commit 88c1ecf

File tree

9 files changed

+65
-4
lines changed

9 files changed

+65
-4
lines changed

.gitignore

+4-1
Original file line numberDiff line numberDiff line change
@@ -161,4 +161,7 @@ cython_debug/
161161

162162

163163
# VSCode
164-
.vscode/
164+
.vscode/
165+
166+
# Outputs
167+
outputs/

README.md

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
3. `source venv/bin/activate`
1414
4. `pip install -e .`
1515

16-
1716
## Usage
1817

1918
`python train_actsafe.py --help`

actsafe/benchmark_suites/__init__.py

+4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ def make(cfg: DictConfig) -> EnvironmentFactory:
1919
elif domain_name == "humanoid_bench":
2020
from actsafe.benchmark_suites.humanoid_bench import make
2121

22+
make_env = make(cfg)
23+
elif domain_name == "isaaclab":
24+
from actsafe.benchmark_suites.isaaclab import make
25+
2226
make_env = make(cfg)
2327
else:
2428
raise NotImplementedError(f"Environment {domain_name} not implemented")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
from omegaconf import DictConfig
2+
3+
4+
from actsafe.benchmark_suites.utils import get_domain_and_task
5+
from actsafe.rl.types import EnvironmentFactory
6+
7+
8+
def make(cfg: DictConfig) -> EnvironmentFactory:
9+
import argparse
10+
from omni.isaac.lab.app import AppLauncher
11+
12+
# add argparse arguments
13+
parser = argparse.ArgumentParser()
14+
# append AppLauncher cli args
15+
AppLauncher.add_app_launcher_args(parser)
16+
args_cli, _ = parser.parse_known_args()
17+
18+
_, task_cfg = get_domain_and_task(cfg)
19+
20+
args_cli.task = task_cfg.task
21+
args_cli.headless = task_cfg.headless
22+
23+
# launch omniverse app
24+
app_launcher = AppLauncher(args_cli)
25+
simulation_app = app_launcher.app
26+
27+
import torch
28+
from omni.isaac.lab_tasks.manager_based.locomotion.velocity.config.anymal_d.flat_env_cfg import AnymalDFlatEnvCfg
29+
30+
torch.backends.cuda.matmul.allow_tf32 = True
31+
torch.backends.cudnn.allow_tf32 = True
32+
torch.backends.cudnn.deterministic = False
33+
torch.backends.cudnn.benchmark = False
34+
35+
def make_env():
36+
import gymnasium as gym
37+
38+
env_cfg = AnymalDFlatEnvCfg()
39+
env = gym.make(args_cli.task, cfg=env_cfg, render_mode=None)
40+
return env
41+
42+
return make_env

actsafe/configs/config.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ mixed_precision: params=float32,compute=float16,output=float32
3535

3636
training:
3737
trainer: rl
38+
async_parallel: true
3839
safe: true
3940
safety_budget: 25
4041
seed: 0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
isaaclab:
2+
task: Isaac-Velocity-Flat-Anymal-D-v0
3+
headless: true
4+
image_observation:
5+
enabled: false
6+
image_size: [64, 64]
7+
image_format: "channels_first"
+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# @package _global_
2+
defaults:
3+
- override /environment: isaaclab
4+
5+
training:
6+
async_parallel: false

actsafe/rl/trainer.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def __enter__(self):
8181
self.config.training.parallel_envs,
8282
self.config.training.time_limit,
8383
self.config.training.action_repeat,
84-
)
84+
) if self.config.training.async_parallel else self.make_env()
8585
if self.seeds is None:
8686
self.seeds = PRNGSequence(self.config.training.seed)
8787
if self.agent is None:

pyproject.toml

-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ safe-adaptation-gym = { git = "https://[email protected]/lasgroup/safe-adaptation-g
2828
jmp = { git = "https://github.com/deepmind/jmp" }
2929
tensorboard = "^2.16.2"
3030

31-
3231
[[tool.poetry.source]]
3332
name = "PyPI"
3433
priority = "primary"

0 commit comments

Comments
 (0)