PPO Agent Trained on Gymnasium MuJoCo Pusher-v5

이 λͺ¨λΈμ€ Gymnasium MuJoCo Pusher-v5 ν™˜κ²½μ—μ„œ ν•™μŠ΅λœ Stable-Baselines3 PPO (Proximal Policy Optimization) κ°•ν™”ν•™μŠ΅ λ‘œλ΄‡ νŒ” μ œμ–΄ μ •μ±… λͺ¨λΈμž…λ‹ˆλ‹€.

πŸ€– ν™˜κ²½ 정보 (Environment Specs)

  • ν™˜κ²½: Pusher-v5 (MuJoCo 7-DoF Robotic Arm)
  • λͺ©ν‘œ: 7개 κ΄€μ ˆ λͺ¨ν„°λ₯Ό μ œμ–΄ν•˜μ—¬ ν…Œμ΄λΈ” μœ„μ˜ 원톡 물체λ₯Ό λͺ©ν‘œ 지점(Goal)으둜 λ°€μ–΄ λ„£κΈ°
  • μƒνƒœ 곡간 (23-dim): κ΄€μ ˆ 각도(7), κ΄€μ ˆ 속도(7), λ‘œλ΄‡ 손끝(3), 물체(3), λͺ©ν‘œ μœ„μΉ˜(3)
  • 행동 곡간 (7-dim): 각 κ΄€μ ˆ λͺ¨ν„°μ— μΈκ°€λ˜λŠ” 연속 토크 $[-1.0, 1.0]$
  • 졜고 달성 보상: -39.05 (총 100,000 νƒ€μž„μŠ€ν… ν•™μŠ΅)

πŸš€ λͺ¨λΈ λ‘œλ“œ 및 μΆ”λ‘  μ‚¬μš©λ²• (Usage)

import gymnasium as gym
from stable_baselines3 import PPO
from huggingface_hub import hf_hub_download

# 1. ν—ˆκΉ…νŽ˜μ΄μŠ€μ—μ„œ λͺ¨λΈ λ‹€μš΄λ‘œλ“œ
model_path = hf_hub_download(repo_id="leegoheun/ppo-pusher-v5", filename="ppo_pusher.zip")

# 2. ν™˜κ²½ 생성 및 λͺ¨λΈ λ‘œλ“œ
env = gym.make("Pusher-v5", render_mode="human")
model = PPO.load(model_path, env=env)

# 3. λ‘œλ΄‡ νŒ” μ œμ–΄ μ‹€ν–‰
obs, info = env.reset()
for _ in range(1000):
    action, _states = model.predict(obs, deterministic=True)
    obs, reward, terminated, truncated, info = env.step(action)
    if terminated or truncated:
        obs, info = env.reset()

env.close()

πŸ“Š ν•™μŠ΅ νŒŒλΌλ―Έν„° (Hyperparameters)

Algorithm: PPO
Policy: MlpPolicy (23 -> 64 -> 64 -> 7)
Learning Rate: 3e-4
Timesteps: 100000
Batch Size: 64
n_steps: 2048
Gamma: 0.99
GAE Lambda: 0.95
Clip Range: 0.2
Downloads last month
25
Video Preview
loading

Evaluation results