1717
1818def make_simulation_app () -> tuple [SimulationApp , argparse .Namespace ]:
1919 # Create argument parser for headless mode
20- parser = argparse .ArgumentParser (description = "Export IsaacLab environment to ONNX" )
20+ parser = argparse .ArgumentParser (description = "Export Isaac Lab environment to ONNX" )
2121
2222 # Add custom arguments
2323 parser .add_argument (
2424 "--task" ,
2525 type = str ,
26- default = "IsaacLab -Velocity-Rough-G1-Play-v0" ,
27- help = "Name of the IsaacLab task to export (default: IsaacLab -Velocity-Rough-G1-Play-v0)" ,
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)" ,
2828 )
2929 parser .add_argument (
3030 "--pause-on-failure" ,
@@ -61,14 +61,20 @@ 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 environments # noqa: F401
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
6571from 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
6872
6973
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."""
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."""
7278 test_dir = pathlib .Path (__file__ ).parent / "exporter_tests"
7379
7480 task_device = "cpu"
@@ -87,42 +93,50 @@ def export(task_name: str = "Isaac-Velocity-Rough-G1-Play-v0", pause_on_failure:
8793 onnx_export_dir = test_dir
8894 onnx_export_file = "test_export.onnx"
8995
90- unwrapped_env = env .unwrapped
91- exportable_env = IsaacLabExportableEnvironment (unwrapped_env )
96+ exportable_env = IsaacLabExportableEnvironment (env .unwrapped )
9297
9398 # Get the policy and its normalizer.
9499 alg : PPO = runner .alg
95100 assert isinstance (alg , PPO ), f"Expected PPO algorithm, got: { type (alg ).__name__ } "
96101 actor = make_exportable_actor (exportable_env , alg .policy , device = task_device )
97102
98- articulations = unwrapped_env .unwrapped .scene .articulations
103+ articulations = env .unwrapped .scene .articulations
99104 context_manager = exportable_env .context_manager ()
100105
101- inputs .add_base_vel (articulations , context_manager )
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+ )
102115
103- inputs .add_body_pos_and_quat (articulations , context_manager )
116+ inputs .add_commands (
117+ command_manager = env .unwrapped .command_manager ,
118+ context_manager = context_manager ,
119+ )
104120
105- inputs .add_command (
106- unwrapped_env ,
107- context_manager ,
108- command_name = "base_velocity" ,
109- command_type = "se2_velocity" ,
121+ inputs .add_joint_pos_and_vel (
122+ articulations = articulations ,
123+ context_manager = context_manager ,
110124 )
111125
112- inputs .add_joint_pos_and_vel (articulations , context_manager )
126+ inputs .add_sensor_inputs (
127+ sensors = env .unwrapped .scene .sensors ,
128+ context_manager = context_manager ,
129+ )
113130
114- for sensor_name , sensor in unwrapped_env .scene .sensors .items ():
115- inputs .add_sensor_input (sensor_name , sensor , context_manager )
131+ memory .add_memory (
132+ env = env .unwrapped ,
133+ context_manager = context_manager ,
134+ )
116135
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 )
136+ outputs .add_outputs (
137+ action_manager = env .unwrapped .action_manager ,
138+ context_manager = context_manager ,
139+ )
126140
127141 export_environment_as_onnx (
128142 env = exportable_env ,
@@ -167,7 +181,7 @@ def export(task_name: str = "Isaac-Velocity-Rough-G1-Play-v0", pause_on_failure:
167181 import sys
168182
169183 try :
170- export (task_name = args .task , pause_on_failure = args .pause_on_failure )
184+ export_isaaclab (task_name = args .task , pause_on_failure = args .pause_on_failure )
171185 except Exception as e :
172186 print (f"❌ Test ERROR: { e } " )
173187 import traceback
0 commit comments