td-builder commited on
Commit
c7f9127
·
verified ·
1 Parent(s): 519edd2

Upload extract_trajectory.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. extract_trajectory.py +43 -0
extract_trajectory.py ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import sys
2
+ sys.argv = ['play', '--headless']
3
+ from isaaclab.app import AppLauncher
4
+ launcher = AppLauncher({"headless": True})
5
+ sim_app = launcher.app
6
+
7
+ import torch
8
+ import json
9
+ import gymnasium as gym
10
+ import isaaclab_tasks
11
+
12
+ env = gym.make("Isaac-Humanoid-Direct-v0", cfg=None)
13
+
14
+ from isaaclab_rl.rsl_rl import RslRlVecEnvWrapper
15
+ env = RslRlVecEnvWrapper(env)
16
+
17
+ from rsl_rl.runners import OnPolicyRunner
18
+ from isaaclab_tasks.direct.humanoid.agents.rsl_rl_ppo_cfg import HumanoidPPORunnerCfg
19
+
20
+ runner_cfg = HumanoidPPORunnerCfg()
21
+ runner = OnPolicyRunner(env, runner_cfg.to_dict(), log_dir=None, device="cuda")
22
+ runner.load("/workspace/IsaacLab/logs/rsl_rl/humanoid_direct/2026-04-13_00-52-00/model_2999.pt")
23
+
24
+ policy = runner.get_inference_policy(device="cuda")
25
+ obs, _ = env.get_observations()
26
+
27
+ trajectory = []
28
+ for step in range(500):
29
+ with torch.no_grad():
30
+ actions = policy(obs)
31
+ obs, _, dones, infos = env.step(actions)
32
+ qpos = env.unwrapped.scene["robot"].data.joint_pos[0].cpu().numpy().tolist()
33
+ qvel = env.unwrapped.scene["robot"].data.joint_vel[0].cpu().numpy().tolist()
34
+ root_pos = env.unwrapped.scene["robot"].data.root_pos_w[0].cpu().numpy().tolist()
35
+ root_quat = env.unwrapped.scene["robot"].data.root_quat_w[0].cpu().numpy().tolist()
36
+ trajectory.append({"step": step, "joint_pos": qpos, "joint_vel": qvel, "root_pos": root_pos, "root_quat": root_quat, "actions": actions[0].cpu().numpy().tolist()})
37
+ if step % 100 == 0:
38
+ print(f"Step {step}/500 - root_pos: {root_pos[:3]}")
39
+
40
+ with open("/workspace/isaac_trajectory.json", "w") as f:
41
+ json.dump(trajectory, f)
42
+ print(f"Saved {len(trajectory)} steps to /workspace/isaac_trajectory.json")
43
+ sim_app.close()