1717
1818def make_simulation_app () -> tuple [SimulationApp , argparse .Namespace ]:
1919 # Create argument parser for headless mode
20- parser = argparse .ArgumentParser (description = "Export Isaac Lab environment to ONNX" )
20+ parser = argparse .ArgumentParser (description = "Export IsaacLab environment to ONNX" )
2121
2222 # Add custom arguments
2323 parser .add_argument (
2424 "--task" ,
2525 type = str ,
26- default = "Isaac -Velocity-Rough-G1-Play-v0" ,
27- help = "Name of the Isaac Lab task to export (default: Isaac -Velocity-Rough-G1-Play-v0)" ,
26+ default = "IsaacLab -Velocity-Rough-G1-Play-v0" ,
27+ help = "Name of the IsaacLab task to export (default: IsaacLab -Velocity-Rough-G1-Play-v0)" ,
2828 )
2929 parser .add_argument (
3030 "--pause-on-failure" ,
@@ -61,20 +61,14 @@ def make_simulation_app() -> tuple[SimulationApp, argparse.Namespace]:
6161from exploy .exporter .core .evaluator import evaluate
6262from exploy .exporter .core .exporter import export_environment_as_onnx
6363from exploy .exporter .core .session_wrapper import SessionWrapper
64- from exploy .exporter .frameworks .isaaclab import (
65- environments , # noqa: F401
66- inputs ,
67- memory ,
68- outputs ,
69- )
70- from exploy .exporter .frameworks .isaaclab .actor import make_exportable_actor
64+ from exploy .exporter .frameworks .isaaclab import environments # noqa: F401
7165from exploy .exporter .frameworks .isaaclab .env import IsaacLabExportableEnvironment
66+ from exploy .exporter .frameworks .manager_based import inputs , memory , outputs
67+ from exploy .exporter .frameworks .manager_based .actor import make_exportable_actor
7268
7369
74- def export_isaaclab (
75- task_name : str = "Isaac-Velocity-Rough-G1-Play-v0" , pause_on_failure : bool = False
76- ):
77- """Test Isaac Lab ONNX export and evaluation pipeline."""
70+ def export (task_name : str = "Isaac-Velocity-Rough-G1-Play-v0" , pause_on_failure : bool = False ):
71+ """Test IsaacLab ONNX export and evaluation pipeline."""
7872 test_dir = pathlib .Path (__file__ ).parent / "exporter_tests"
7973
8074 task_device = "cpu"
@@ -93,50 +87,42 @@ def export_isaaclab(
9387 onnx_export_dir = test_dir
9488 onnx_export_file = "test_export.onnx"
9589
96- exportable_env = IsaacLabExportableEnvironment (env .unwrapped )
90+ unwrapped_env = env .unwrapped
91+ exportable_env = IsaacLabExportableEnvironment (unwrapped_env )
9792
9893 # Get the policy and its normalizer.
9994 alg : PPO = runner .alg
10095 assert isinstance (alg , PPO ), f"Expected PPO algorithm, got: { type (alg ).__name__ } "
10196 actor = make_exportable_actor (exportable_env , alg .policy , device = task_device )
10297
103- articulations = env .unwrapped .scene .articulations
98+ articulations = unwrapped_env .unwrapped .scene .articulations
10499 context_manager = exportable_env .context_manager ()
105100
106- inputs .add_base_vel (
107- articulations = articulations ,
108- context_manager = context_manager ,
109- )
110-
111- inputs .add_body_pos_and_quat (
112- articulations = articulations ,
113- context_manager = context_manager ,
114- )
101+ inputs .add_base_vel (articulations , context_manager )
115102
116- inputs .add_commands (
117- command_manager = env .unwrapped .command_manager ,
118- context_manager = context_manager ,
119- )
103+ inputs .add_body_pos_and_quat (articulations , context_manager )
120104
121- inputs .add_joint_pos_and_vel (
122- articulations = articulations ,
123- context_manager = context_manager ,
105+ inputs .add_command (
106+ unwrapped_env ,
107+ context_manager ,
108+ command_name = "base_velocity" ,
109+ command_type = "se2_velocity" ,
124110 )
125111
126- inputs .add_sensor_inputs (
127- sensors = env .unwrapped .scene .sensors ,
128- context_manager = context_manager ,
129- )
112+ inputs .add_joint_pos_and_vel (articulations , context_manager )
130113
131- memory .add_memory (
132- env = env .unwrapped ,
133- context_manager = context_manager ,
134- )
114+ for sensor_name , sensor in unwrapped_env .scene .sensors .items ():
115+ inputs .add_sensor_input (sensor_name , sensor , context_manager )
135116
136- outputs .add_outputs (
137- action_manager = env .unwrapped .action_manager ,
138- context_manager = context_manager ,
139- )
117+ memory .add_memory (unwrapped_env , context_manager , attr_name = "action" )
118+ for action_term_name in unwrapped_env .action_manager .active_terms :
119+ memory .add_memory (
120+ unwrapped_env ,
121+ context_manager ,
122+ attr_name = "processed_actions" ,
123+ action_term_name = action_term_name ,
124+ )
125+ outputs .add_output (unwrapped_env , context_manager , action_term_name = action_term_name )
140126
141127 export_environment_as_onnx (
142128 env = exportable_env ,
@@ -181,7 +167,7 @@ def export_isaaclab(
181167 import sys
182168
183169 try :
184- export_isaaclab (task_name = args .task , pause_on_failure = args .pause_on_failure )
170+ export (task_name = args .task , pause_on_failure = args .pause_on_failure )
185171 except Exception as e :
186172 print (f"❌ Test ERROR: { e } " )
187173 import traceback
0 commit comments