์ธ๊ณต ์ง๋ฅ ๋ถ์ผ์ ๊ฐ๋ฐ๊ณผ ์ธ๊ฐ ์์ค์์ ์ปดํจํฐ ๊ฒ์์ ํ ์ ์๋ ์ ๊ฒฝ๋ง ๊ตฌ์ถ์ผ๋ก ์ ๋ช ํ Google ์์ ํ์ฌ DeepMind๋ ๋ฌผ๋ฆฌ์ ํ๋ก์ธ์ค๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๋ ์์ง MuJoCo(Multi-Joint Dynamics with Contact)๋ฅผ ๋ฐ๊ฒฌํ๋ค๊ณ ๋ฐํํ์ต๋๋ค. ). ์์ง์ ํ๊ฒฝ๊ณผ ์ํธ์์ฉํ๋ ๊ด์ ํ ๊ตฌ์กฐ๋ฅผ ๋ชจ๋ธ๋งํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ฉฐ, ๊ฐ๋ฐ๋ ๊ธฐ์ ์ ์์ฑ๋ ์ฅ์น ํํ๋ก ๊ตฌํํ๊ธฐ ์ ๋จ๊ณ์์ ๋ก๋ด ๋ฐ ์ธ๊ณต ์ง๋ฅ ์์คํ ๊ฐ๋ฐ์ ์๋ฎฌ๋ ์ด์ ์ ์ฌ์ฉ๋ฉ๋๋ค.
์ฝ๋๋ C/C++๋ก ์์ฑ๋์์ผ๋ฉฐ Apache 2.0 ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๊ฒ์๋ฉ๋๋ค. Linux, Windows ๋ฐ macOS ํ๋ซํผ์ด ์ง์๋ฉ๋๋ค. ํ๋ก์ ํธ์ ๋ชจ๋ ์ฝํ ์ธ ์ ๋ํ ์คํ ์์ค ์์ ์ 2022๋ ์ ์๋ฃ๋ ์์ ์ด๋ฉฐ, ์ดํ MuJoCo๋ ์ปค๋ฎค๋ํฐ ๊ตฌ์ฑ์์ด ๊ฐ๋ฐ์ ์ฐธ์ฌํ ์ ์๋ ๊ฐ๋ฐฉํ ๊ฐ๋ฐ ๋ชจ๋ธ๋ก ์ ํํ ๊ฒ์ ๋๋ค.
MuJoCo๋ ๋ก๋ด, ์์ฒด ์ญํ ์ฅ์น ๋ฐ ๊ธฐ๊ณ ํ์ต ์์คํ ์ ์ฐ๊ตฌ ๊ฐ๋ฐ์ ๋ฌผ๋ก ๊ทธ๋ํฝ, ์ ๋๋ฉ์ด์ ๋ฐ ์ปดํจํฐ ๊ฒ์ ์ ์์ ์ฌ์ฉํ ์ ์๋ ๋ฒ์ฉ ๋ฌผ๋ฆฌ์ ํ๋ก์ธ์ค ์๋ฎฌ๋ ์ด์ ์์ง์ ๊ตฌํํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์๋ฎฌ๋ ์ด์ ์์ง์ ์ต๋ ์ฑ๋ฅ์ ์ํด ์ต์ ํ๋์์ผ๋ฉฐ ๋์ ์ ํ๋์ ํ๋ถํ ์๋ฎฌ๋ ์ด์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉด์ ๋ฎ์ ์์ค์ ๊ฐ์ฒด ์กฐ์์ ํ์ฉํฉ๋๋ค.
๋ชจ๋ธ์ XML์ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ํน์ ์ต์ ํ ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํ์ผ๋๋ MJCF ์ฅ๋ฉด ์ค๋ช ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ ์๋ฉ๋๋ค. MJCF ์ธ์๋ ์์ง์ ๋ฒ์ฉ URDF(Unified Robot Description Format)์ ํ์ผ ๋ก๋๋ฅผ ์ง์ํฉ๋๋ค. MuJoCo๋ ๋ํ OpenGL์ ์ฌ์ฉํ์ฌ ์๋ฎฌ๋ ์ด์ ํ๋ก์ธ์ค์ ๊ฒฐ๊ณผ ๋ ๋๋ง์ ๋ํํ 3D ์๊ฐํ๋ฅผ ์ํ GUI๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ :
- ๊ด์ ์๋ฐ์ ์ ์ธํ ์ผ๋ฐํ๋ ์ขํ์์์ ์๋ฎฌ๋ ์ด์ .
- ์ญ๋์ฑ, ์ ์ด์ด ์๋ ๊ฒฝ์ฐ์๋ ๊ฐ์ง ๊ฐ๋ฅ.
- ๋ณผ๋ก ํ๋ก๊ทธ๋๋ฐ์ ์ฌ์ฉํ์ฌ ์ฐ์ ์๊ฐ์ ํต์ผ๋ ์ ์ฝ ์กฐ๊ฑด์ ๊ณต์ํํฉ๋๋ค.
- ๋ถ๋๋ฌ์ด ํฐ์น์ ๊ฑด์กฐํ ๋ง์ฐฐ์ ํฌํจํ ๋ค์ํ ์ ํ์ ์ค์ ํ๋ ๊ธฐ๋ฅ.
- ์ ์ ์์คํ , ์ง๋ฌผ, ๋กํ ๋ฐ ๋ถ๋๋ฌ์ด ๋ฌผ์ฒด์ ์๋ฎฌ๋ ์ด์ .
- ๋ชจํฐ, ์ค๋ฆฐ๋, ๊ทผ์ก, ํ์ค ๋ฐ ํฌ๋ญํฌ ๋ฉ์ปค๋์ฆ์ ํฌํจํ ์ก์ถ์์ดํฐ(์ก์ถ์์ดํฐ).
- ๋ดํด, ๊ณต์ก ๊ธฐ์ธ๊ธฐ ๋ฐ Gauss-Seidel ๋ฐฉ๋ฒ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์๋ฒ์ ๋๋ค.
- ํผ๋ผ๋ฏธ๋ํ ๋๋ ํ์ํ ๋ง์ฐฐ ์๋ฟ์ ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ.
- Euler ๋๋ Runge-Kutta ์์น ํตํฉ ๋ฐฉ๋ฒ์ ์ ํํ์ฌ ์ฌ์ฉํ์ธ์.
- ๋ฉํฐ์ค๋ ๋ ์ด์ฐํ ๋ฐ ์ ํ ์ฐจ๋ถ ๊ทผ์ฌ.
์ถ์ฒ : opennet.ru