๐IsaacLab VS. MjLab
IsaacLab
Isaac Lab ์ํ๊ณ
Isaac Lab์ ์ต์ ์๋ฎฌ๋ ์ด์ ๊ธฐ์ ์ ํ์ฉํ๋ ํตํฉ์ ์ด๊ณ ์ ์ฐํ ๋ก๋ด ํ์ต ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด Isaac Sim ์์ ๊ตฌ์ถ๋์์ต๋๋ค. ๋ชจ๋ํ ๋ฐ ํ์ฅ์ฑ์ ์ผ๋์ ๋๊ณ ์ค๊ณ๋์์ผ๋ฉฐ, ๊ฐํํ์ต(RL), ์๋ฒํ์ต(learning from demonstrations), ๋ชจ์ ํ๋๋๊ณผ ๊ฐ์ ๋ก๋ณดํฑ์ค ์ฐ๊ตฌ์ ์ผ๋ฐ์ ์ธ ์ํฌํ๋ก์ฐ๋ฅผ ๋จ์ํํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ์ผ๋ถ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ํ๊ฒฝ, ์ผ์, ํ์คํฌ๋ฅผ ํฌํจํ๊ณ ์์ง๋ง, ์ฃผ๋ ๋ชฉํ๋ ์ปค์คํ ํ๊ฒฝ๊ณผ ๋ก๋ด ํ์ต ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋ฐยท๊ฒ์ฆํ๊ธฐ ์ํ ์คํ์์คํ๋ ํต์ผ๋ ์ฌ์ฉํ๊ธฐ ์ฌ์ด ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค.
Isaac Lab์ ์ฌ์ฉํ๋ ค๋ฉด Isaac Sim ์ค์น๊ฐ ํ์ํฉ๋๋ค. Isaac Sim์ Isaac Lab์ด ์์กดํ๋ ํต์ฌ ๋ก๋ณดํฑ์ค ๋๊ตฌ๋ค(URDF ๋ฐ MJCF ์ํฌํฐ, ์๋ฎฌ๋ ์ด์ ๋งค๋์ , ROS ๊ธฐ๋ฅ ๋ฑ)์ ํฌํจํ ํจํค์ง๋ก ์ ๊ณต๋ฉ๋๋ค. ๋ํ Isaac Sim์ NVIDIA Omniverse ํ๋ซํผ ์์์ ๋์ํ๋ฉฐ, PhysX ๊ธฐ๋ฐ์ ๊ณ ๊ธ ๋ฌผ๋ฆฌ ์๋ฎฌ๋ ์ด์ , ํฌํ ๋ฆฌ์ผ๋ฆฌ์คํฑ ๋ ๋๋ง ๊ธฐ์ , ๊ทธ๋ฆฌ๊ณ ์ฅ๋ฉด ์์ฑ์ ์ํ Universal Scene Description(USD)์ ํ์ฉํฉ๋๋ค.
Isaac Lab์ Isaac Sim์ ๊ธฐ๋ฅ์ ๊ณ์นํ ๋ฟ๋ง ์๋๋ผ ๋ก๋ด ํ์ต ์ฐ๊ตฌ์ ๊ด๋ จ๋ ์ฌ๋ฌ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์๋๊ธฐ(actuator) ๋์ญํ ์๋ฎฌ๋ ์ด์ , ์ ์ฐจ์ (ํ๋ก์์ ๋ด) ์งํ ์์ฑ, ์ธ๊ฐ ์์ฐ์ผ๋ก๋ถํฐ ๋ฐ์ดํฐ ์์ง ์ง์ ๋ฑ์ด ํฌํจ๋ฉ๋๋ค.
Isaac Lab, Isaac Sim, NVIDIA Omniverse ์ํ๊ณ์์์ ์์น
Isaac Lab์ ์ํ๊ณ์์ ์ด๋์ ์์นํ๋๊ฐ?
์๋ ๊ฐ NVIDIA๋ ๋ก๋ณดํฑ์ค์ AI๋ฅผ ์ํ ์ฌ๋ฌ ๋๊ตฌ๋ฅผ ๊ฐ๋ฐํด์์ต๋๋ค. ์ด ๋๊ตฌ๋ค์ GPU์ ์ฐ์ฐ ๋ฅ๋ ฅ์ ํ์ฉํ์ฌ ์๋ฎฌ๋ ์ด์ ์ ์๋์ ์ฌ์ค๊ฐ์ ๊ฐ์ํํฉ๋๋ค. ์๋ฎฌ๋ ์ด์ ๊ธฐ์ ๋ถ์ผ์์ ํฐ ๊ฐ๋ฅ์ฑ์ ๋ณด์ฌ์ฃผ๋ฉฐ ์ ์ธ๊ณ์ ๋ง์ ์ฐ๊ตฌ์์ ๊ธฐ์ ์์ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
Isaac Gym [MWG+21]์ ๋ก๋ด ํ์ต์ ์ํ ๊ณ ์ฑ๋ฅ GPU ๊ธฐ๋ฐ ๋ฌผ๋ฆฌ ์๋ฎฌ๋ ์ด์ ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ PhysX ์์ ๊ตฌ์ถ๋์ด ์์ผ๋ฉฐ ๊ฐ์ฒด์ GPU ๊ฐ์ ์๋ฎฌ๋ ์ด์ ์ ์ง์ํ๊ณ ๋ฌผ๋ฆฌ ์๋ฎฌ๋ ์ด์ ๋ฐ์ดํฐ์ ์ง์ ์ ๊ทผํ ์ ์๋ Python API๋ฅผ ์ ๊ณตํฉ๋๋ค. ์๋ํฌ์๋ GPU ํ์ดํ๋ผ์ธ์ ํตํด CPU ๊ธฐ๋ฐ ๋ฌผ๋ฆฌ ์์ง์ ๋นํด ๋์ ํ๋ ์ ๋ ์ดํธ๋ฅผ ๋ฌ์ฑํ ์ ์์ต๋๋ค. ์ด ๋๊ตฌ๋ ๋ค์ง๊ฐ ๋ณดํ(legged locomotion) [RHRH22][RHBH22], ํธ๋ ์ธํธ๋ ์กฐ์(in-hand manipulation) [HAM+22][AML+22], ์ฐ์ ์กฐ๋ฆฝ(industrial assembly) [NSA+22] ๋ฑ ์ฌ๋ฌ ์ฐ๊ตฌ ํ๋ก์ ํธ์์ ์ฑ๊ณต์ ์ผ๋ก ์ฌ์ฉ๋์์ต๋๋ค.
ํ์ง๋ง Isaac Gym์ ๋ฒ์ฉ ๋ก๋ณดํฑ์ค ์๋ฎฌ๋ ์ดํฐ๋ก ์ค๊ณ๋ ๊ฒ์ ์๋๋๋ค. ์๋ฅผ ๋ค์ด ๋ณํ์ฒด(deformable)์ ๊ฐ์ฒด(rigid) ๊ฐ์ ์ํธ์์ฉ, ๊ณ ์ถฉ์ค๋ ๋ ๋๋ง, ROS ์ง์ ๋ฑ์ ํฌํจ๋์ด ์์ง ์์ต๋๋ค. ์ด ๋๊ตฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ธฐ๋ณธ ๋ฌผ๋ฆฌ ์์ง์ ๊ธฐ๋ฅ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ํ๋ฆฌ๋ทฐ ๋ฆด๋ฆฌ์ค๋ก ์ค๊ณ๋์์ต๋๋ค. Isaac Sim์ ์ถ์์ ํจ๊ป NVIDIA๋ ๋ก๋ด ๊ณตํ์ฉ ๋ฒ์ฉ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ๊ตฌ์ถํ๊ณ Isaac Gym์ ๊ธฐ๋ฅ์ Isaac Sim์ ํตํฉํ๊ณ ์์ต๋๋ค.
Isaac Sim์ Omniverse ์์ ๊ตฌ์ถ๋ ๋ก๋ด ์๋ฎฌ๋ ์ด์ ํดํท์ผ๋ก, ๋ณต์กํ 3D ์ํฌํ๋ก์ฐ๋ฅผ ํตํฉํ๋ ค๋ ๋ฒ์ฉ ํ๋ซํผ์ ๋๋ค. Isaac Sim์ ๊ทธ๋ํฝ์ค์ ๋ฌผ๋ฆฌ ์๋ฎฌ๋ ์ด์ ์ ์ต์ ๋ฐ์ ์ ํ์ฉํด ๋ก๋ณดํฑ์ค๋ฅผ ์ํ ๊ณ ์ถฉ์ค๋ ์๋ฎฌ๋ ์ด์ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. ROS/ROS2 ์ง์, ๋ค์ํ ์ผ์ ์๋ฎฌ๋ ์ด์ , ๋๋ฉ์ธ ๋๋คํ ๋ฐ ํฉ์ฑ ๋ฐ์ดํฐ ์์ฑ ๋๊ตฌ๋ฅผ ์ง์ํฉ๋๋ค. Isaac Sim์ ํ์ผ๋ ๋ ๋๋ง(tiled rendering) ๊ธฐ๋ฅ์ ํ๊ฒฝ ์ ๋ฐ์ ๊ฑธ์น ๋ฒกํฐํ๋ ๋ ๋๋ง์ ํ์ฉํ๋ฉฐ, Isaac Automator๋ฅผ ํตํด ํด๋ผ์ฐ๋์์ ์คํํ๋ ๊ฒ๋ ์ง์ํฉ๋๋ค. ์ ๋ฐ์ ์ผ๋ก ๋ก๋ณดํฑ์ค ์ฐ๊ตฌ์์๊ฒ ๊ฐ๋ ฅํ ๋๊ตฌ์ด๋ฉฐ ์๋ฎฌ๋ ์ด์ ๋ถ์ผ์์ ํฐ ์ง์ ์ ๋๋ค.
์์ ๋ ๋๊ตฌ๊ฐ ์ถ์๋๋ฉด์ NVIDIA๋ Isaac Gym ๋ฐ Isaac Sim ์์ ๋น๋๋ ์คํ์์ค ํ๊ฒฝ ๋ชจ์์ธ IsaacGymEnvs์ OmniIsaacGymEnvs๋ฅผ ๊ณต๊ฐํ์ต๋๋ค. ์ด ํ๊ฒฝ๋ค์ ๊ธฐ์ ์๋ฎฌ๋ ์ดํฐ์ ๊ฐ๋ฅ์ฑ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ์ค๊ณ๋์๊ณ , ์๋ฎฌ๋ ์ดํฐ๋ก ๋ฌด์์ด ๊ฐ๋ฅํ์ง ์ดํดํ๊ธฐ ์ํ ์ถ๋ฐ์ ์ ์ ๊ณตํฉ๋๋ค. ๋ฒค์น๋งํฌ ์ฉ๋๋ก ์ฌ์ฉ๋ ์ ์์ง๋ง, ์ปค์คํ ํ๊ฒฝ๊ณผ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋ฐยท๊ฒ์ฆํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์ค๊ณ๋ ๊ฒ์ ์๋๋๋ค. ์ฌ๊ธฐ์ Isaac Lab์ด ์ญํ ์ ํฉ๋๋ค.
Isaac Lab์ ์ญํ ๊ณผ ๋ชฉํ
Isaac Lab์ ์ต์ ์๋ฎฌ๋ ์ด์ ๊ธฐ์ ์ ํ์ฉํ๋ ํตํฉ์ ์ด๊ณ ์ ์ฐํ ๋ก๋ด ํ์ต ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด Isaac Sim ์์ ๊ตฌ์ถ๋์์ต๋๋ค. ๋ชจ๋ํ ๋ฐ ํ์ฅ์ฑ์ ์ผ๋์ ๋๊ณ ์ค๊ณ๋์์ผ๋ฉฐ, ๊ฐํํ์ต, ์๋ฒํ์ต, ๋ชจ์ ํ๋๋ ๋ฑ ๋ก๋ณดํฑ์ค ์ฐ๊ตฌ์ ์ผ๋ฐ์ ์ํฌํ๋ก์ฐ๋ฅผ ๋จ์ํํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ์ผ๋ถ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ํ๊ฒฝ, ์ผ์, ํ์คํฌ๋ฅผ ํฌํจํ์ง๋ง, ์ฃผ์ ๋ชฉํ๋ ์ปค์คํ ํ๊ฒฝ๊ณผ ๋ก๋ด ํ์ต ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋ฐยท๊ฒ์ฆํ๊ธฐ ์ํ ์คํ์์คํ๋ ํตํฉ ์ธํฐํ์ด์ค ์ ๊ณต์ ๋๋ค. Isaac Sim์ ๊ธฐ๋ฅ์ ๊ณ์นํจ๊ณผ ๋์์ ์๋๊ธฐ ๋์ญํ, ์ ์ฐจ์ ์งํ ์์ฑ, ์ธ๊ฐ ์์ฐ ๋ฐ์ดํฐ ์์ง ์ง์ ๋ฑ ๋ก๋ด ํ์ต ์ฐ๊ตฌ์ ํนํ๋ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค.
Isaac Lab์ ์ด์ ์ IsaacGymEnvs, OmniIsaacGymEnvs ๋ฐ Orbit ํ๋ ์์ํฌ๋ฅผ ๋์ฒดํ๋ฉฐ, Isaac Sim์ฉ ๋จ์ผ ๋ก๋ด ํ์ต ํ๋ ์์ํฌ๊ฐ ๋ ์์ ์ ๋๋ค. ์ด์ ์ ๋ฐฐํฌ๋ ํ๋ ์์ํฌ๋ค์ ๋ ์ด์ ๊ถ์ฅ๋์ง ์์ผ๋ฉฐ, ์ฌ์ฉ์๋ค์ ๋ง์ด๊ทธ๋ ์ด์ ๊ฐ์ด๋๋ฅผ ๋ฐ๋ผ Isaac Lab์ผ๋ก ์ ํํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
Isaac Lab์ ์๋ฎฌ๋ ์ดํฐ์ธ๊ฐ?
์ฌ๋๋ค์ด ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์๊ฐํ ๋ ํํ ๋ ์ฌ๋ฆฌ๋ ์์ง๋ค(์: MuJoCo, Bullet, Flex)์ฒ๋ผ ๊ฐ๋ ฅํ ๋ฌผ๋ฆฌ ์์ง๋ค์ด ์์ต๋๋ค. ์ด๋ค ์์ง์ ์ฌ๋ฌ ์ฐ๊ตฌ์์ ์ฌ์ฉ๋์ด ์์ง๋ง, ์ด๋ค์ ๋ก๋ด ๊ณตํ์ ์ํ ๋ฒ์ฉ ์๋ฎฌ๋ ์ดํฐ๋ก ์ค๊ณ๋ ๊ฒ์ ์๋๋๋ค. ์ฃผ๋ก ๊ฐ์ฒด ๋ฐ ๋ณํ์ฒด์ ๋์ญํ์ ์๋ฎฌ๋ ์ด์ ํ๋ ๋ฌผ๋ฆฌ ์์ง์ด๋ฉฐ, ์๋ฎฌ๋ ์ด์ ์ ์๊ฐํํ๊ธฐ ์ํ ๊ธฐ๋ณธ ๋ ๋๋ง ๊ธฐ๋ฅ๊ณผ ๋ค์ํ ์ฅ๋ฉด ๊ธฐ์ ํฌ๋งท์ ํ์ฑํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ต๊ทผ ์์ ๋ค ์ค ์ผ๋ถ๋ ์ด๋ฌํ ๋ฌผ๋ฆฌ ์์ง๋ค์ ๋ค์ํ ๋ ๋๋ง ์์ง๊ณผ ๊ฒฐํฉํ์ฌ ๋ณด๋ค ์์ ํ ์๋ฎฌ๋ ์ด์ ํ๊ฒฝ์ ๋ง๋ญ๋๋ค. ์ด๋ค์ ๋ฌผ๋ฆฌ ๋ฐ ๋ ๋๋ง ์์ง์ ๋ํ ์ ์ถ๋ ฅ API๋ฅผ ํฌํจํ๊ณ , ๊ฒฝ์ฐ์ ๋ฐ๋ผ ROS ๋ฐ ํ๋์จ์ด-์ธ-๋-๋ฃจํ(hardware-in-the-loop) ์๋ฎฌ๋ ์ด์ ์ ์ง์ํฉ๋๋ค. ์๋ก๋ AirSim, DoorGym, ManiSkill, ThreeDWorld, ๊ทธ๋ฆฌ๊ณ Isaac Sim์ด ์์ต๋๋ค.
๋ณธ์ง์ ์ผ๋ก Isaac Lab์ ๋ก๋ด ํ์ต ์ ํ๋ฆฌ์ผ์ด์ ์ Isaac Sim ์์ ๊ตฌ์ถํ๊ธฐ ์ํ ํ๋ ์์ํฌ์ด์ง, ์์ฒด๋ง์ผ๋ก ๋ฒ์ฉ ์๋ฎฌ๋ ์ดํฐ๋ ์๋๋๋ค. ์ด์ ๋๋ฑํ ์๋ก๋ MuJoCo ์์ ๊ตฌ์ถ๋ RoboSuite(๊ณ ์ ๊ธฐ๋ฐ ๋ก๋ด์ ํนํ) ๋ฑ์ด ์์ต๋๋ค. ๋ค๋ฅธ ์๋ก MuJoCo Playground์ Isaac Gym์ด ์๋๋ฐ, ๊ฐ๊ฐ MJX์ PhysX๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ค์ ์ฌ๋ฌ ์ฌ์ ๊ตฌ์ถ ํ์คํฌ๋ฅผ ํฌํจํ์ง๋ง, ํ์คํฌ๋ณ๋ก ๋ ๋ฆฝ์ ์ธ ๊ตฌํ์ด ๋ถ๋ฆฌ๋์ด ์์ด ์ฝ๋ ์ค๋ณต์ด ๋ฐ์ํ๊ธฐ ์ฌ์ฐ๋ฉฐ, ๋ํ ํ๋ก์ ํธ๋ ํ ๋จ์์์ ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ์ ๋จ์ด๋จ๋ฆด ์ ์์ต๋๋ค.
Isaac Lab์ ์ฃผ์ ๋ชฉํ๋ ๋ก๋ด ํ์ต์ ํ์ํ ๋ค์ํ ๋๊ตฌ์ ๊ธฐ๋ฅ์ ํฌํจํ๋ ํต์ผ๋ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํ๋ฉด์๋ ์ฌ์ฉ ๋ฐ ํ์ฅ์ด ์ฉ์ดํ๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ๋ก๋ณดํฑ์ค ์ฐ๊ตฌ์ ๊ณตํต๋ ์๊ตฌ์ฌํญ์ ๋จ์ํํ๋ ๋์์ธ ํจํด์ ํฌํจํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์๋ก ๋ค๋ฅธ ์ฃผํ์์ ์ผ์ ์๋ฎฌ๋ ์ด์ , ๋ฐ์ดํฐ ์์ง์ ์ํ ๋ค์ํ ์๊ฒฉ์กฐ์(teleoperation) ์ธํฐํ์ด์ค ์ฐ๊ฒฐ, ์ ์ฑ ํ์ต์ ์ํ ์ก์ ์คํ์ด์ค ์ ํ, ๊ตฌ์ฑ ๊ด๋ฆฌ๋ฅผ ์ํ Hydra ์ฌ์ฉ, ๋ค์ํ ํ์ต ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ง์ ๋ฑ์ด ์์ต๋๋ค. Isaac Lab์ ๋งค๋์ ๊ธฐ๋ฐ(๋ชจ๋ํ) ํจํด๊ณผ ์ง์ ์คํ(single-script, Isaac Gym ์ ์ฌ) ํจํด์ ๋ชจ๋ ์ง์ํ์ฌ ์ฌ์ฉ์๊ฐ ์ฌ๋ก์ ๋ง๋ ๋ฐฉ์์ ์ ํํ ์ ์๊ฒ ํฉ๋๋ค. ๊ฐ ํจํด์ ๋ํด ๋ฒค์น๋งํน๊ณผ ์ฐ๊ตฌ์ ์ฌ์ฉํ ์ ์๋ ์ฌ๋ฌ ์ฌ์ ๊ตฌ์ถ ํ์คํฌ๋ ํฌํจ๋์ด ์์ต๋๋ค.
์ Isaac Lab์ ์ฌ์ฉํด์ผ ํ๋?
Isaac Lab์ ์ปค๋ฎค๋ํฐ๊ฐ ๋ฒค์น๋งํฌ์ ๋ก๋ด ํ์ต ์์คํ ์ค๊ณ๋ฅผ ์ํ ํตํฉ๋ ๋ ธ๋ ฅ์ ํตํด ์ง๋ณด๋ฅผ ์ด๋ ์ ์๋๋ก ์คํ์์ค ํ๋ซํผ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ ๊ธฐ์กด ๊ตฌ์ฑ์์์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฌ์ฉํ๊ณ ์๋ก์ ์์ ์์ ๊ตฌ์ถํ ์ ์๊ฒ ํด์ค๋๋ค. ์ด๋ ๊ฒ ํจ์ผ๋ก์จ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ์ ์ฝํ ์ ์๊ณ , ์ฐ๊ตฌ์ ๋ ์ค์ํ ๋ถ๋ถ์ ์ง์คํ ์ ์์ต๋๋ค. Isaac Lab์ ๋ชฉํ๋ ๋ก๋ด ํ์ต ์ฐ๊ตฌ์ ์ฌ์ค์ ํ์ค ํ๋ซํผ(๋ฐ ํํ ํ๋ซํผ)๊ณผ Isaac Sim์ ํ์ฉํ๋ ํ๊ฒฝ ๋๋ฌผ์(environment zoo)์ด ๋๋ ๊ฒ์ ๋๋ค. ํ๋ ์์ํฌ๊ฐ ์ฑ์ํด์ง์ ๋ฐ๋ผ(๋ด๋ถ NVIDIA ๊ฐ๋ฐ ๋ฐ ํ์ ํํธ๋์ ์ต์ ์๋ฎฌ๋ ์ด์ ๋ฐ์ ๊ณผ ํจ๊ป) ํฐ ์ด๋์ ๋ณผ ๊ฒ์ผ๋ก ๊ธฐ๋ํฉ๋๋ค.
์ด๋ฏธ ๋ํ ๋ฐ ์ฐ๊ตฌ์์ ์ฌ๋ฌ ์คํ์ค๊ณผ ํ๋ ฅํ์ฌ ๊ทธ๋ค์ ์์ ์ Isaac Lab์ ํตํฉํ๋ ์์ ์ ์งํ ์ค์ด๋ฉฐ, ์ปค๋ฎค๋ํฐ์ ๋ค๋ฅธ ์ด๋ค๋ ์ด ๋ ธ๋ ฅ์ ๋์ฐธํ๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค. Isaac Lab์ ๊ธฐ์ฌํ๊ณ ์ถ๋ค๋ฉด ์ ํฌ์๊ฒ ์ฐ๋ฝํด ์ฃผ์ธ์.
mjlab
์ mjlab์ธ๊ฐ?
๋ฌธ์ ์
GPU ๊ฐ์ ๋ก๋ณดํฑ์ค ์๋ฎฌ๋ ์ด์ ์๋ ํ๋ฅญํ ๋๊ตฌ๋ค์ด ๋ง์ง๋ง, ๊ฐ๊ฐ ํธ๋ ์ด๋์คํ๊ฐ ์กด์ฌํฉ๋๋ค:
Isaac Lab: ๋ฐ์ด๋ API์ RL ์ถ์ํ๋ฅผ ์ ๊ณตํ์ง๋ง, ๋ฌด๊ฑฐ์ด ์ค์น ๊ณผ์ , ๋๋ฆฐ ์์ ์๊ฐ, Omniverse ๊ด๋ จ ์ค๋ฒํค๋ ๋๋ฌธ์ ๋น ๋ฅธ ๋ฐ๋ณต ์คํ์ด ์ด๋ ต์ต๋๋ค.
MJX: ๋น ๋ฅด๊ณ ๊ฐ๋ณ์ง๋ง, JAX์ ํ์ต ๊ณก์ ๊ณผ ์ถฉ๋(collision) ์ฒ๋ฆฌ์ ํ์ฅ์ฑ ๋ฌธ์ ๋ก ์ฑํ์ด ์ ํ๋ฉ๋๋ค.
Newton: MuJoCo, VBD ๋ฑ ์ฌ๋ฌ ์๋ฒ๋ฅผ ์ง์ํ๋ ์๋ก์ด ๋ฒ์ฉ ์๋ฎฌ๋ ์ดํฐ์ด๋ฉฐ MJCF/XML ๋์ USD ๊ธฐ๋ฐ ํฌ๋งท์ ์ฌ์ฉํฉ๋๋ค. ํ์ง๋ง MuJoCo๊ฐ ์๋ ๊ฐ ์์์จ ์ํ๊ณ์ ์ปค๋ฎค๋ํฐ ์์์ ์์ง ๊ฐ์ถ์ง ๋ชปํ์ต๋๋ค.
ํด๊ฒฐ์ฑ
mjlab = Isaac Lab์ API + MuJoCo์ ๋จ์์ฑ + GPU ๊ฐ์
์ฐ๋ฆฌ๋ Isaac Lab์ ๊ฒ์ฆ๋ ๋งค๋์ ๊ธฐ๋ฐ ์ํคํ ์ฒ์ RL ์ถ์ํ๋ฅผ ๊ฐ์ ธ์ ์ด๋ฅผ MuJoCo Warp ์์ ์ง์ ์ฌ๋ ธ์ต๋๋ค. ๋ณํ ๋ ์ด์ด๋, Omniverse ์ค๋ฒํค๋๋ ์์ต๋๋ค. ๋น ๋ฅด๊ณ ํฌ๋ช ํ ๋ฌผ๋ฆฌ์ ๋๋ค.
์ Isaac Lab + Newton์ ์ฐ์ง ์์๋?
Isaac Lab์ ์ต๊ทผ ์คํ์ Newton ์ง์์ ์ถ๊ฐํ๋๋ฐ, ์ด๋ ๊ธฐ์กด Isaac ์ฌ์ฉ์๋ค์ด Newton์ ๋ฐฑ์๋๋ฅผ ํตํด MuJoCo๋ฅผ ์๋ํด๋ณผ ์ ์๊ฒ ํด์ฃผ์ด ์ข์ ์ ํ์ ๋๋ค.
ํฌ๊ด์ ์ธ ํ๋ซํผ(RL, ๋ชจ๋ฐฉํ์ต, ํฌํ ๋ฆฌ์ผ๋ฆฌ์คํฑ ๋ ๋๋ง ๋ฑ)์ด ํ์ํ๋ฉด Isaac Lab์ ์ฌ์ฉํ์ธ์. MuJoCo ๊ธฐ๋ฐ์ RL ๋ฐ sim2real์ ์ง์ค๋ ๋๊ตฌ๊ฐ ํ์ํ๋ฉด mjlab์ ์ฌ์ฉํ์ธ์.
์ Isaac Lab์ MuJoCo Warp๋ฅผ ์ถ๊ฐํ์ง ์์๋?
์์ฝ์์คํ ์ฐจ์์์๋ ๋ฉ์ง ์์ด๋์ด์ ๋๋ค! NVIDIA ํ๋ ์ต๊ทผ์ ์คํ์ Newton ํตํฉ์ผ๋ก ์ด ๊ฐ๋ฅ์ฑ์ ํ์ํ๊ณ ์์ด ํฅ๋ฏธ๋กญ์ต๋๋ค.
ํ์ง๋ง ์ฐ๋ฆฌ๋ ํ์ค์ ์ผ๋ก ์ ์ง๋ณด์ํ ์ ์๋, ๋ ์ง์ค๋ ์ถ๋ฐ์ ์ ์ํ์ต๋๋ค. Isaac Lab์ Omniverse/Isaac Sim์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ค์ฌ์ผ๋ก ์ค๊ณ๋์ด ์๊ณ , ๊ทธ๋งํผ ๊ด๋ฒ์ํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ง์ํฉ๋๋ค. MuJoCo Warp๋ฅผ ๊ทธ ์์ ํตํฉํ๋ ค๋ฉด ๋ ํฐ ํ๋ ์์ํฌ ๋ด์์ ์์ ํ๊ณ , ์ฐ๋ฆฌ๊ฐ ๋ชฉํ๋ก ํ์ง ์๋ ์ฌ๋ฌ ์ฌ์ฉ ์ฌ๋ก๊น์ง ์ง์ํด์ผ ํฉ๋๋ค.
๋ฉํฐ-๋ฐฑ์๋ ํธํ์ฑ์ ์ ์งํ๋ ค๋ฉด ์์ฐ์ค๋ฝ๊ฒ ๋ณต์ก์ฑ๊ณผ ์์กด์ฑ ๊ด๋ฆฌ์์์ ํํ์ด ํ์ํฉ๋๋ค. ์ฒ์๋ถํฐ ์๋ก ์์ํจ์ผ๋ก์จ ์ฐ๋ฆฌ๋ ๋ค์์ ํ ์ ์์์ต๋๋ค:
- MuJoCo Warp์ ์ต์ ํ๋ ๊ฐ๋ฒผ์ด ์ฝ๋๋ฒ ์ด์ค ์์ฑ
- ์์กด์ฑ์ ์ต์ํํ๊ณ ์ค์น๋ฅผ ๋น ๋ฅด๊ฒ ์ ์ง
- ์ฌ์ฉ์๋ค์ด ์ต์ํ ๋ค์ดํฐ๋ธ mjModel/mjData ๊ตฌ์กฐ์ ๋ํ ์ง์ ์ ๊ทผ ์ ์ง
- ๋ ํฐ ํ๋ซํผ์ ์ ์ฝ ์์ด ๋น ๋ฅด๊ฒ ๋ฐ๋ณต ๊ฐ์
mjlab์ Isaac Lab์ ํ๋ฅญํ API ์ค๊ณ์ ๋ฐ์น๋ ํ์ฌ๋ก ์๊ฐํ์ธ์. ๋งค๋์ ๊ธฐ๋ฐ์ ์ถ์ํ๋ฅผ MuJoCo ์ค์ฌ์ ์๊ณ ์ง์ค๋ ๋๊ตฌ๋ฅผ ์ํ๋ ์ฐ๊ตฌ์๋ค์๊ฒ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. ๊ฒฝ์์ด ์๋๋ผ ๋ณด์์ ๋๋ค.
์ฒ ํ
ํ๋์จ์ด ์์ค์ ์ฑ๋ฅ
- MuJoCo Warp์์ ์ง์ ํตํฉ โ ์ค๊ฐ ๋ณํ ๋ ์ด์ด ์์
- ์ฌ์ฉ์๋ค์ด ์ต์ํ ๋ค์ดํฐ๋ธ mjModel/mjData ๊ตฌ์กฐ ์ ์ง
- ์ต์ํ์ ์ค๋ฒํค๋๋ก GPU ๊ฐ์
๊ฐ๋ฐ์ ๊ฒฝํ ์ฐ์
- ํ ์ค ์ค์น:
uvx --from mjlab demo
- ๋งค์ฐ ๋น ๋ฅธ ์์ ์๊ฐ
- ํ์ค Python ๋๋ฒ๊น ๊ฐ๋ฅ (์ํ๋ ๊ณณ์์ pdb ์ฌ์ฉ)
- ๋น ๋ฅธ ๋ฐ๋ณต ์ฃผ๊ธฐ
๋ช ํํ ์ง์ค๋ ๋ฒ์
- ๊ฐ์ฒด(rigid-body) ๋ก๋ณดํฑ์ค์ RL์ ์ง์ค โ ๋ชจ๋ ๊ฒ์ ํ๋ ค ํ์ง ์์
- ๊ธฐ๋ฅ ๋จ๋ฐ๋ณด๋ค ๊น๋ํ๊ณ ์ ์ง๋ณด์ ๊ฐ๋ฅํ ์ฝ๋๋ฒ ์ด์ค
- ๋ฒ์ฉ ๋ํผ๊ฐ ์๋ MuJoCo ๋ค์ดํฐ๋ธ ๊ตฌํ
์ธ์ mjlab์ ์จ์ผ ํ๋
mjlab์ ์ฌ์ฉํ์ธ์ โ ๋ง์ฝ ๋น์ ์ด:
- ๋น ๋ฅธ ๋ฐ๋ณต๊ณผ ๋๋ฒ๊น ์ ์ํ๊ณ ,
- MuJoCo ๋ฌผ๋ฆฌ๋ฅผ ์ง์ ์ ์ดํ๊ณ ์ถ๊ณ ,
- Isaac Lab ์คํ์ผ์ ๊ฒ์ฆ๋ RL ์ถ์ํ๋ฅผ ์ํ๋ฉฐ,
- ๋ฌด๊ฒ์ง ์์ ์์กด์ฑ์ผ๋ก GPU ๊ฐ์์ ์ํ๊ณ ,
- ์ค์น ๋ฐ ๋ฐฐํฌ๋ฅผ ๋จ์ํ๊ฒ ์ ์งํ๊ณ ์ถ๋ค๋ฉด
Isaac Lab์ ์ฌ์ฉํ์ธ์ โ ๋ง์ฝ ๋น์ ์ด:
- ํฌํ ๋ฆฌ์ผ๋ฆฌ์คํฑ ๋ ๋๋ง์ด ํ์ํ๊ณ ,
- USD ํ์ดํ๋ผ์ธ ํตํฉ์ด ํ์ํ๋ฉฐ,
- Omniverse ์ํ๊ณ ๊ธฐ๋ฅ์ ํ์ฉํด์ผ ํ๋ค๋ฉด
Newton์ ์ฌ์ฉํ์ธ์ โ ๋ง์ฝ ๋น์ ์ด:
- ๋ค์ค ๋ฌผ๋ฆฌ ์๋ฒ ์ง์(์: ๋ณํ์ฒด ๋ฑ)์ด ํ์ํ๊ฑฐ๋,
- ๋ฏธ๋ถ ๊ฐ๋ฅํ ์๋ฎฌ๋ ์ด์ ์ด ํ์ํ๋ค๋ฉด
๊ฒฐ๋ก
mjlab์ ๋ชจ๋ ๊ฒ์ ๋์ฒดํ๋ ค๋ ๋ชฉ์ ์ด ์๋๋๋ค. MuJoCo์ ๋จ์ํจ์ ์ฌ๋ํ๊ณ Isaac Lab์ RL ์ถ์ํ๋ฅผ GPU ๊ฐ์๊ณผ ํจ๊ป, ๋ถํ์ํ ์ค๋ฒํค๋ ์์ด ์ํ๋ค๋ฉด mjlab์ ๊ทธ๋ค์ ์ํ ๋๊ตฌ์ ๋๋ค.