AMP-HumanoidDirection-V0 / humanoid_direction_record.py
Alopezcordero's picture
Upload 11 files
5cd3814 verified
Raw
History Blame Contribute Delete
1.22 kB
import os
os.environ["MUJOCO_GL"] = "glfw"
import imageio
import gymnasium as gym
import register_env
from stable_baselines3 import PPO
model = PPO.load("models/ppo_humanoid_direction_20m.zip", device="cpu")
env = gym.make("HumanoidDirection-v0", render_mode="rgb_array")
obs, info = env.reset()
frames = []
num_episodes = 5
episode_count = 0
while episode_count < num_episodes:
action, _ = model.predict(obs, deterministic=True)
obs, reward, terminated, truncated, info = env.step(action)
frame = env.render()
frames.append(frame)
if terminated or truncated:
episode_count += 1
print(f"Episode: {episode_count}")
last_frame = frames[-1]
#pause using last frame
for _ in range(15):
frames.append(last_frame)
if episode_count < num_episodes:
obs, info = env.reset()
env.close()
print(f"number of frames: {len(frames)}")
print(f"frames shape: {frames[0].shape}")
writer = imageio.get_writer("humanoid_direction_20m.mp4", fps=30)
for frame in frames:
writer.append_data(frame)
writer.close()
print(f"saved humanoid_direction.mp4 with episodes: {num_episodes}")