File size: 6,758 Bytes
d312116
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# ๐Ÿค– NEUROMOTION 3.0 // Humanoid-v5 Telemetry & RL

[![Language: English](https://img.shields.io/badge/Language-English-blue)](README.md)
[![Language: ํ•œ๊ตญ์–ด](https://img.shields.io/badge/Language-ํ•œ๊ตญ์–ด-green)](README_KR.md)
[![Hugging Face Model Hub](https://img.shields.io/badge/๐Ÿค—%20Hugging%20Face-Model%20Hub-orange)](https://huggingface.co/hwihwalab/neuromotion-humanoid-v5-ppo)
[![GitHub Repository](https://img.shields.io/badge/GitHub-Repository-181717?style=flat&logo=github)](https://github.com/Hwihwa-Lab/neuromotion-humanoid-v5-ppo)
[![Gymnasium](https://img.shields.io/badge/Gymnasium-MuJoCo%20Humanoid--v5-0080FF)](https://gymnasium.farama.org/environments/mujoco/humanoid/)
[![PyTorch](https://img.shields.io/badge/PyTorch-2.0+-EE4C2C?style=flat&logo=pytorch)](https://pytorch.org)
[![Stable-Baselines3](https://img.shields.io/badge/Stable--Baselines3-PPO-brightgreen)](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`)