๐ฆ MicroDuck ๊ฑท๊ธฐ ์ ์ฑ โ ํ๊ตญ์ด ์คํ ๊ธฐ๋ก
MicroDuck(Pollen Robotics์ 25cm ์ด์กฑ๋ณดํ ์ค๋ฆฌ ๋ก๋ด)์๊ฒ ๊ฑท๋ ๋ฒ์ ๊ฐํํ์ต์ผ๋ก ๊ฐ๋ฅด์น ์ ์ฑ ์ ๋๋ค. ๊ฑท๋ ๋ฐฉ๋ฒ์ ์ฝ๋ ํ ์ค๋ ๊ฐ๋ฅด์น์ง ์์์ต๋๋ค โ ์๋ฎฌ๋ ์ด์ ์ ๊ฐ์ ์ค๋ฆฌ 4,096๋ง๋ฆฌ๊ฐ ๋์์ ๋์ด์ง๊ณ ์ผ์ด๋๋ฉฐ, PPO ์๊ณ ๋ฆฌ์ฆ์ด "์ ๊ฑธ์ ์์ง์"์ ๊ณจ๋ผ ๋(์ ๊ฒฝ๋ง) ํ๋๋ก ํฉ์ณ๊ฐ๋ ๋ฐฉ์์ ๋๋ค.
๋ง์ดํฌ๋ก๋ ํ์ต ํ์ดํ๋ผ์ธ์ ํ๊ตญ์ด ๊ณต๊ฐ ๊ธฐ๋ก์ ๋ชฉํ๋ก, ์คํจ๋ฅผ ํฌํจํ ์ ๊ณผ์ ์ ๊ธฐ๋กํ๋ฉฐ ๋ง๋ค์ด์ก์ต๋๋ค.
ํ์ผ
| ํ์ผ | ์ค๋ช |
|---|---|
bruno_walk_v2.onnx |
์ต์ข ์กธ์ ๋ชจ๋ธ โ 2์ฐจ ๋ฐ(์ฌ๊ฐ ํ์ต)์ 4,500 iteration ์ฒดํฌํฌ์ธํธ. ์กธ์ ์ํ 3์ข ๋ชฉ(0.3/0.5 m/s ์ง์ง + ํ์ ์ฃผํ) ์ข ํฉ 1์ |
bruno_walk_3250it.onnx |
1์ฐจ ๋ฐ ๊ฒฐ๊ณผ (3,250 iteration์์ ํฌ๋ ๋ง ์์ง์ผ๋ก ์ค๋จ) |
preview_walk.mp4 |
์กธ์ ๋ชจ๋ธ์ 0.5 m/s ๊ณ ์ ์ฃผํ โ 10์ด 2.11m, ๋์ด์ง ์์ |
์กธ์ ์ํ ๊ฒฐ๊ณผ (์์ฒด ๋ฒค์น๋งํฌ)
์ฒดํฌํฌ์ธํธ๋ฅผ 37,250 iteration๊น์ง ๋ฝ์ ๋น๊ตํ ๊ฒฐ๊ณผ, ์ค๋ ฅ์ ~4,500 iteration์์ ์์ฑ๋์๊ณ ๊ทธ ์ดํ 3๋ง+ iteration์ ์ํ ์ ์๊ฐ ์ ์ฒด/๋ฏธ์ธ ํ๋ฝํ์ต๋๋ค (37,000 ์ฒดํฌํฌ์ธํธ๋ ๊ณ ์ ์ฃผํ์์ ์คํ๋ ค ํด๋ณด). "๋ ์ค๋ ํ์ต โ ๋ ์ํจ"์ ์ค์ธก ์ฌ๋ก๋ก ๊ธฐ๋กํฉ๋๋ค.
| ์ฒดํฌํฌ์ธํธ | 0.3m/s ์ง์ง | 0.5m/s ๊ณ ์ | ํ์ | ์ข ํฉ |
|---|---|---|---|---|
| 4,500 (์กธ์ ) | 0.67m | 2.11m | 0.37m | 3.15m |
| 12,000 | 0.79m | 1.94m | 0.36m | 3.09m |
| 20,000 | 0.64m | 2.10m | 0.33m | 3.07m |
| 37,000 | 0.64m | 1.17m | 0.38m | 2.19m |
์ฌ์ฉ๋ฒ
mjlab ๊ธฐ๋ฐ MicroDuck ํ์ต ์คํ์์:
# ํค๋๋ฆฌ์ค ๊ฒ์ฆ ์์ ์์ฑ
uv run python scripts/rollout_video.py bruno_walk_3250it.onnx out.mp4 0.25 15
์ ์ง ์๋ ๋ช ๋ น์ 0.25 m/s ์ด์์ ๊ถ์ฅํฉ๋๋ค (0.15์์๋ ๊ฑฐ์ ๊ฑท์ง ์์ โ ์คํ์ผ๋ก ํ์ธ).
ํ์ต ์ ๋ณด
- ํ์คํฌ:
Mjlab-Velocity-Flat-MicroDuck(ํ์ง ์๋ ์ถ์ข ๋ณดํ) - ์๊ณ ๋ฆฌ์ฆ: PPO (rsl_rl) ยท ๋ณ๋ ฌ 4,096 ํ๊ฒฝ ยท MuJoCo Warp
- ํ๋์จ์ด: Hugging Face Jobs ํด๋ผ์ฐ๋ GPU (NVIDIA L4 / A10G)
- ์ฌ๊ฐ ํ์ต: ์ค๋จ๋ ๋ฐ์ ์ฒดํฌํฌ์ธํธ๋ฅผ ์ ์ก์ด ๋ด๋ ค๋ฐ์ ์ด์ด์ ํ์ตํ๋ ๋ฐฉ์ ์ฌ์ฉ
๊ธฐ๋ก
์ด ๋ชจ๋ธ์ "๋๋ฐ์ด์์ ๋ก๋ด ์ค๋ฆฌ๋ฅผ ๊ฐํํ์ต์ผ๋ก ํค์ฐ๋" ํ๋ก์ ํธ์ ์ผ๋ถ์ ๋๋ค. ๊ฐ์ ์ ์์์ ์ฒซ ๊ฐํํ์ต ๊ณต๊ฐ ๋ชจ๋ธ: Brunocho/ppo-Pusher-v5
Microduck ร Zellys ยท Dubai ยท 2026