Reinforcement Learning
stable-baselines3
English
Korean
ppo
continuous-control
mujoco
humanoid-v5
robotics
robot
bipedal-robot
neuromotion
Instructions to use hwihwalab/neuromotion-humanoid-v5-ppo with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- stable-baselines3
How to use hwihwalab/neuromotion-humanoid-v5-ppo with stable-baselines3:
from huggingface_sb3 import load_from_hub checkpoint = load_from_hub( repo_id="hwihwalab/neuromotion-humanoid-v5-ppo", filename="{MODEL FILENAME}.zip", ) - Notebooks
- Google Colab
- Kaggle
| # ๐ค NEUROMOTION 3.0 // Humanoid-v5 Telemetry & RL | |
| [](README.md) | |
| [](README_KR.md) | |
| [](https://huggingface.co/hwihwalab/neuromotion-humanoid-v5-ppo) | |
| [](https://github.com/Hwihwa-Lab/neuromotion-humanoid-v5-ppo) | |
| [](https://gymnasium.farama.org/environments/mujoco/humanoid/) | |
| [](https://pytorch.org) | |
| [](https://stable-baselines3.readthedocs.io) | |
| > **MuJoCo Humanoid-v5 PPO Continuous Control & Real-time Engineering Telemetry Dashboard** | |
| > *[ ๐ English Documentation ](README.md) | [ ๐ฐ๐ท ํ๊ตญ์ด ๋งค๋ด์ผ ](README_KR.md)* | |
| ์ฒ์ฌ๋์์ธ์์ด์ ํธ ๋์์ธ ์์คํ ๊ณผ **์ธํฐ๋ํฐ๋ธ ๋๋กญ๋ค์ด ๋ฉ๋ด(Dropdown Menu)**๊ฐ ์ฅ์ฐฉ๋ **`NEUROMOTION 3.0`** ๊ณต์ ํ ๋ ๋ฉํธ๋ฆฌ ๋งค๋ด์ผ์ ๋๋ค. | |
| --- | |
| ## ๐ Quick Start & Launch Modes (์คํ ๋ฐฉ๋ฒ) | |
| ### 1. ๐ฅ๏ธ ๋ฉ์ธ GUI ๋์๋ณด๋ ์คํ (์ถ์ฒ) | |
| Pygame ๊ธฐ๋ฐ ์ค์๊ฐ ๋คํฌ ์ฌ์ด๋ฒํํฌ ํ ๋ ๋ฉํธ๋ฆฌ ๋์๋ณด๋๋ฅผ ์คํํฉ๋๋ค: | |
| ```powershell | |
| python run_gui.py | |
| ``` | |
| ### 2. ๐ค Hugging Face ๋ชจ๋ธ ํ๋ธ ๋ฐฐํฌ (`deploy_to_hf.py`) | |
| ํ์ต๋ ๋ชจ๋ธ ๊ฐ์ค์น(`humanoid_ppo_model.zip`)์ ์คํ ์ฝ๋๋ฅผ Hugging Face์ ์ํด๋ฆญ์ผ๋ก ์ ๋ก๋ํฉ๋๋ค: | |
| ```powershell | |
| # ์ ์ฒด ๋ชจ๋ธ ๋ฐ ์ฝ๋ ์ ๋ก๋ | |
| python deploy_to_hf.py | |
| # ํ์ผ ์ ๋ก๋ ์์ด ๋ฆฌํฌ์งํ ๋ฆฌ(hwihwalab/neuromotion-humanoid-v5-ppo)๋ง ์์ฑํ ๋ | |
| python deploy_to_hf.py --create-only | |
| ``` | |
| > ๐ก **ํฅํ ๋ชจ๋ธ ์ ๋ฐ์ดํธ ๋ฐฉ๋ฒ** | |
| > ์์ผ๋ก ์ถ๊ฐ ํ์ต์ ์งํํ ํ ๊ฐ์ค์น๋ ์ฝ๋๋ฅผ ๋ค์ ๋ฐฐํฌํ๊ณ ์ถ์ผ์ค ๋๋ ์ธ์ ๋ ์๋ ๋ช ๋ น์ด ํ ์ค๋ง ์คํํ์๋ฉด ๋ฉ๋๋ค: | |
| > ```powershell | |
| > python deploy_to_hf.py | |
| > ``` | |
| ### 3. ๐ป ํฐ๋ฏธ๋ ๋ค์ค ๋ชจ๋ ์คํ๊ธฐ (`mujoko_humanoid.py`) | |
| ํฐ๋ฏธ๋ ๋ํํ ๋ฉ๋ด ๋๋ ๋ช ๋ น์ค ์ต์ ์ ํตํด ๋ค์ํ ๋ชฉ์ ๋ณ ํ์ต/์์ฐ์ ์คํํฉ๋๋ค: | |
| ```powershell | |
| # ๋ํํ ๋ฒํธ ์ ํ ๋ฉ๋ด ์คํ | |
| python mujoko_humanoid.py | |
| # ๋๋ ์ํ๋ ๋ชจ๋๋ฅผ ์ง์ ์ง์ ํ์ฌ ์คํ | |
| python mujoko_humanoid.py --mode train_live # [๋ชจ๋ 1] ์ค์๊ฐ 3D ์๊ฐํ + ๊ฐํํ์ต | |
| python mujoko_humanoid.py --mode train_fast # [๋ชจ๋ 2] ๊ณ ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ์ต + ์ฃผ๊ธฐ์ 3D ํ๊ฐ | |
| python mujoko_humanoid.py --mode play # [๋ชจ๋ 3] ํ์ต๋ ๋ชจ๋ธ(humanoid_ppo_model.zip) 3D ๋ณดํ ์์ฐ | |
| python mujoko_humanoid.py --mode random # [๋ชจ๋ 4] ์ด๊ธฐ ๋ฌด์์(Random) ํ๋ ๊ด์ฐฐ | |
| ``` | |
| --- | |
| ## ๐ฑ๏ธ Top Control Header (์๋จ ์ธํฐ๋ํฐ๋ธ ๋ฒํผ & ๋๋กญ๋ค์ด ๋ฉ๋ด) | |
| ์๋จ ๋ฒํผ๋ค์ ๋ง์ฐ์ค ํธ๋ฒ ์ **์๊ฐ๋ฝ ๋ชจ์ ์ปค์(๐)**์ ์ฐ๋น์ธํธ ํ์ด๋ผ์ดํธ๊ฐ ์ ์ฉ๋๋ฉฐ, ๋๋กญ๋ค์ด ๋ฉ๋ด๋ฅผ ํตํด ์ํ๋ ์ต์ ์ ์ฆ์ ์ฝ ์ฐ์ด ์ ํํ ์ ์์ต๋๋ค. | |
| | Button Name | Type | Options & Function Description | | |
| | :--- | :---: | :--- | | |
| | **`[ โ PPO TRAINING ]` / `[ โธ PAUSED ]`** | **Action** | **Telemetry Pause / Resume**: AI ํ์ต ๋ฐ ์๋ฎฌ๋ ์ด์ ์ผ์์ ์ง / ์ฌ๊ฐ (๋จ์ถํค: `Space`) | | |
| | **`[ SPEED: 1X โผ ]`** | **Dropdown** | **ํด๋ฆญ ์ ๋ฐฐ์ ์ ํ ๋ฉ๋ด ํ์ **:<br>โข `1X Normal (1x)` : ๊ธฐ๋ณธ ์ธ๋ฐ ๊ด์ฐฐ ์๋<br>โข `2X Fast (2x)` : 2๋ฐฐ์ ํ์ต<br>โข `4X Hyper (4x)` : 4๋ฐฐ์ ๊ณ ์ ํ์ต<br>โข `8X Ultra (8x)` : 8๋ฐฐ์ ์ด๊ณ ์ ์ง์ค ํ์ต (๋จ์ถํค: `F` ๋ก ๋น ๋ฅธ ์ํ ๊ฐ๋ฅ) | | |
| | **`[ PUSH FORCE โผ ]`** | **Dropdown** | **ํด๋ฆญ ์ ์ธ๋ ์ถฉ๊ฒฉ ์ธ๊ธฐ ์ ํ ํ์ **:<br>โข `Light Push (15 N)` : ๊ฐ๋ฒผ์ด ํญ ๋ฐ๊ธฐ<br>โข `Medium Push (30 N)` : ์ค๊ฐ ๊ท ํ ํ๋ค๋ฆผ (๊ธฐ๋ณธ ์ธ๋)<br>โข `Heavy Force (50 N)` : ๊ฐํ ์ถฉ๊ฒฉํ ํ ์คํธ (๋จ์ถํค: `P` ๋ก ๊ธฐ๋ณธ 30N ์ธ๊ฐ) | | |
| | **`[ SAVE MODEL ]`** | **Action** | **Save Checkpoint Weights**: ํ์ฌ ํ์ต๋ ์ ๊ฒฝ๋ง ๊ฐ์ค์น๋ฅผ `humanoid_ppo_model.zip`์ผ๋ก ์ ์ฅ (๋จ์ถํค: `S`) | | |
| | **`[ LOAD MODEL ]`** | **Action** | **Load Checkpoint Weights**: ์ ์ฅ๋ ๋ชจ๋ธ ๊ฐ์ค์น ์ฆ์ ๋ถ๋ฌ์ค๊ธฐ (๋จ์ถํค: `L`) | | |
| --- | |
| ## ๐ฅ๏ธ Telemetry Layout & Panels (7๋ ํต์ฌ ํ ๋ ๋ฉํธ๋ฆฌ ํจ๋) | |
| 1. **MAIN 3D SIMULATION VIEW**: | |
| * MuJoCo Humanoid-v5 ์ค์๊ฐ 3D ๋ฌผ๋ฆฌ ๋ ๋๋ง ํ๋ฉด | |
| * ์๋จ ์ธํฌ๋ฐ: `EPISODE` // `ALIVE STEPS` // `NOISE SCALE (ฯ)` | |
| 2. **TOP BENTO STATS CARDS**: | |
| * `EPISODE REWARD`: ์ด๋ฒ ์ํผ์๋ ์ค์๊ฐ ๋์ ๋ณด์ | |
| * `PEAK REWARD`: ์ญ๋ ์ต๊ณ ๊ธฐ๋ก ๋ณด์ ์ ์ | |
| * `20-EP MOVING AVG`: ์ต๊ทผ 20 ์ํผ์๋ ์ด๋ ํ๊ท ์ | |
| * `TOTAL TIMESTEPS`: ํ๊ฒฝ ์ํธ์์ฉ ๋์ ์คํ ์ | |
| 3. **LEARNING DIAGNOSTICS**: | |
| * `Policy Gradient Loss`: ์ ์ฑ ์ ๊ฒฝ๋ง ์์ค ์งํ | |
| * `Value Function Loss`: ๊ฐ์น ํ๊ฐ ์ ๊ฒฝ๋ง ์์ค ์งํ | |
| * `Entropy`: ํ์ ๋ฌด์์์ฑ ์ฒ๋ ๋ฐ ํ์ต ์ ๋ฐ์ดํธ ํ์ | |
| 4. **ACTUATOR TORQUES (17 DOF)**: | |
| * 17๊ฐ ๊ด์ ๋ชจํฐ(๋ณต๋ถ, ๊ณ ๊ด์ , ๋ฌด๋ฆ, ์ด๊นจ, ํ๊ฟ์น ๋ฑ)์ ์ค์๊ฐ ํ ๋ฐฉํฅ ๋ฐ ์ธ๊ธฐ ๋์ผํค ๊ฒ์ด์ง | |
| 5. **REWARD TELEMETRY CURVE**: | |
| * ์ต๊ทผ 100๊ฐ ์ํผ์๋ ๋ณด์ ๊บพ์์ ์ฐจํธ (ํ๋จ ์์ด๋ฆฌ์ด ํ & ๋์ ์ค์ผ์ผ๋ง) | |
| 6. **SYSTEM CONSOLE LOG**: | |
| * ์ํผ์๋ ์๋ฃ ๋ฐ ํ ๋ ๋ฉํธ๋ฆฌ ์ด๋ฒคํธ ์ค์๊ฐ ๋ชจ๋ ธ์คํ์ด์ค ๋ก๊ทธ (100% ๋ฐ์ค ๋ด๋ถ ํด๋ฆฌํ) | |
| 7. **FOOTER SHORTCUTS**: | |
| * ํค๋ณด๋ ๋จ์ถํค ๊ฐ์ด๋ ๋ฐ (`[Space]` `[T]` `[F]` `[P]` `[S]` `[L]` `[R/E]`) | |
| --- | |
| ## โจ๏ธ Keyboard Shortcuts Reference | |
| | Key | Action | Description | | |
| | :---: | :--- | :--- | | |
| | **`Space`** | **Pause / Resume** | ํ์ต ๋ฐ 3D ๋ฌผ๋ฆฌ ์๋ฎฌ๋ ์ด์ ์ ์ง/์ฌ๊ฐ | | |
| | **`F`** | **Cycle Speed** | 1X โก๏ธ 2X โก๏ธ 4X โก๏ธ 8X ๋ฐฐ์ ์ํ | | |
| | **`P`** | **Push Robot** | ๋ก๋ด์๊ฒ ์ธ๋ ์ถฉ๊ฒฉ(30.0 N) ์ธ๊ฐ | | |
| | **`S`** | **Save Model** | ์ต์ ๊ฐ์ค์น๋ฅผ `humanoid_ppo_model.zip`์ผ๋ก ์ ์ฅ | | |
| | **`L`** | **Load Model** | ์ ์ฅ๋ ๊ฐ์ค์น ๋ถ๋ฌ์ค๊ธฐ | | |
| | **`T`** | **Toggle 3D View** | 3D ๋ ๋๋ง ON / OFF | | |
| | **`R` / `E`** | **Reset Episode** | ํ๊ฒฝ ์ฆ์ ์ด๊ธฐํ | | |
| --- | |
| ## ๐ Model Evaluation & Benchmarks | |
| 100,000 ์คํ ์ถ๊ฐ ํ๋ จ ํ 10๊ฐ ์ํผ์๋ ์ ๋ฐ ํ๊ฐ ๊ฒฐ๊ณผ: | |
| * **ํ๊ท ์์กด ์คํ **: `88.5 steps` (์ต๊ณ : `109 steps`) | |
| * **ํ๊ท ๋์ ๋ณด์**: `455.52` (์ต๊ณ : `549.18`) | |