HUGGSOOK / CONNECT-AI / HUMANOIDSTANDUP-PPO

A Proximal Policy Optimization (PPO) agent trained to stand up from a lying position on the Gymnasium HumanoidStandup-v5 continuous control environment using Stable-Baselines3 and MuJoCo.

πŸŽ₯ Agent Preview (Evaluation Motion)

Humanoid Standup Motion Preview


πŸ“Š Training & Performance Metrics

The agent learns to coordinate 17 joints (torque actuators) of a full 3D humanoid body to rise from the ground, balancing against gravity.

Metric Initial State (Step 1) Trained State (Step 10,000) Final Evaluation
Episode Reward ~9,184.45 17,379.97 45,931.06
Max Torso Height ($z$) 0.128 m 0.307 m 0.375 m
State Progression Lying Flat Rising Upper Body & Knees Active Standup Coordination
Episode Steps Survived 300 300 400+

πŸ“ˆ Learning Curves

Training Progression


πŸ› οΈ Hyperparameters & Configuration

Algorithm: PPO (Proximal Policy Optimization)
Policy: MlpPolicy (Multi-Layer Perceptron)
Environment: HumanoidStandup-v5 (MuJoCo Physics Engine)
Observation Space: Box(-inf, inf, (376,), float64)
Action Space: Box(-0.4, 0.4, (17,), float32)
Learning Rate: 3e-4
Batch Size: 64
Clip Range: 0.2
Gamma (Discount Factor): 0.99
GAE Lambda: 0.95
Device: Auto (Apple Silicon ARM64 / CUDA / CPU)
Total Timesteps: 10,000

πŸš€ How to Load and Run this Model

1. Install Dependencies

pip install gymnasium[mujoco] stable-baselines3 huggingface_hub

2. Download and Evaluate in Python

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

# Download model from Hugging Face Hub
model_path = hf_hub_download(
    repo_id="huggsook/connect-ai-HumanoidStandup-PPO",
    filename="ppo_humanoid_standup.zip"
)

# Load trained model
model = PPO.load(model_path)

# Initialize HumanoidStandup environment
env = gym.make("HumanoidStandup-v5", render_mode="human")
obs, _ = env.reset()

print("Running trained HumanoidStandup agent...")
for step in range(500):
    action, _ = model.predict(obs, deterministic=True)
    obs, reward, done, truncated, info = env.step(action)
    
    if done or truncated:
        obs, _ = env.reset()

env.close()

πŸ“¦ Files in this Repository

  • ppo_humanoid_standup.zip: The trained PyTorch/Stable-Baselines3 policy weights.
  • replay.gif / replay.mp4: High-definition preview animations and video recordings of the standing agent.
  • training_curves.png: Multi-panel visualization plots for rewards, torso height, and episode steps.
  • ppo_humanoid_standup_bundle.zip: Complete self-contained package including interactive HTML dashboard, all step videos, and plots.
  • train.py & visualize.py: Clean standalone scripts to reproduce training and rendering.

🏷️ Credits & Author

Downloads last month
19
Video Preview
loading