๐ฉโ๐ปIsaacSim๊ณผ IsaacLab ์์๋ณด๊ธฐ
์ด๋ฒ ํฌ์คํ ์์๋ ๋ํ์ ์ธ ๋ก๋ด ์๋ฎฌ๋ ์ดํฐ ์ค ํ๋์ธ IsaacSim(IsaacLab)์ ๋ํด์ ์์๋ณด๊ณ , ์ด๋ฅผ Local์ ์ค์นํ๋ ๊ณผ์ ์ ์งํํด๋ณด๊ฒ ์ต๋๋ค.
1 ์ด๋ค ๋ก๋ด ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ ํํด์ผ ํ ๊น?
๋ก๋ด ์๋ฎฌ๋ ์ด์ ์ ์ํ ์ํํธ์จ์ด๋ ๋งค์ฐ ๋ค์ํ๋ฉฐ, ๊ฐ ์๋ฎฌ๋ ์ดํฐ๋ ํน์ ํ ๋ชฉ์ ๊ณผ ํ์ฉ ์ฌ๋ก์ ๋ง์ถฐ ๋ฐ์ ํด ์์ต๋๋ค. ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉ๋์ด ์จ Gazebo๋ฅผ ๋น๋กฏํด, ํน์ ๋ก๋ด task ๊ฐ๋ฐ์ ์ ํฉํ PyBullet, MuJoCo, ๊ทธ๋ฆฌ๊ณ Google์์ ๊ฐ๋ฐํ ์ด๊ณ ์ GPU ๊ธฐ๋ฐ ์๋ฎฌ๋ ์ดํฐ Brax ๋ฑ ๋ค์ํ ์๋ฎฌ๋ ์ดํฐ๋ค์ด ์์ต๋๋ค. ๋ ๋ง์ ๋ก๋ด ์๋ฎฌ๋ ์ดํฐ์ ๋ํ ์ ๋ณด๋ฅผ ์๊ณ ์ถ์ผ์๋ค๋ฉด Simulately Wiki๋ฅผ ํ๋ฒ ์ดํด๋ณด์๋ ๊ฒ๋ ์ข์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ค ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ ํํด์ผ ํ ๊น์? ์๋ ํ์์ ๋ณผ ์ ์๋ฏ์ด, ์ฌ์ฉํ๋ ๋ฌผ๋ฆฌ ์์ง, ROS2์์ ์ฐ๋ ๊ฐ๋ฅ ์ฌ๋ถ, AI/ML ํ๋ ์์ํฌ์์ ํตํฉ ์ฉ์ด์ฑ ๋ฑ์ ๋ฐ๋ผ ์ ํ ๊ธฐ์ค์ด ๋ฌ๋ผ์ง๋๋ค. ์๋ฅผ ๋ค์ด, Gazebo๋ ROS(๋ก๋ด ์ด์ ์ฒด์ )์์ ์ฐ๋์ด ๊ฐ๋ ฅํ ๋ฐ๋ฉด, MuJoCo๋ PyBullet์ ๊ฐํ ํ์ต ๋ฐ AI ๊ธฐ๋ฐ ๋ก๋ด ํ์ต์ ๋ ์ ํฉํ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. ๋ก๋ด ์ฐ๊ตฌ์ ๊ฐ๋ฐ์ ์ํด์๋ ๋ชฉํํ๋ ์์ (Task)์ ์ ํฉํ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ ํํ๋ ๊ฒ์ด ํต์ฌ์ ๋๋ค.
์์ ๋ค์ํ ๋ก๋ด ์๋ฎฌ๋ ์ดํฐ๊ฐ ์กด์ฌํ๋ค๋ ์ ์ ์ดํด๋ณด์๋๋ฐ, ์ค๋์ ๊ทธ์ค์์๋ NVIDIA์์ ๊ฐ๋ฐํ๊ณ ์๋ Isaac Sim์ด๋ผ๋ ์๋ฎฌ๋ ์ดํฐ์ ๋ํด ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค. ๋ํ, Isaac Sim์ ๊ธฐ๋ฐ์ผ๋ก ๋ก๋ด ํ๋ก๊ทธ๋๋ฐ์ ๋์ฑ ์ฝ๊ฒ ๋ง๋ค์ด์ฃผ๋ ํ๋ ์์ํฌ์ธ Isaac Lab๋ ํจ๊ป ์๊ฐํ๋ ค ํฉ๋๋ค.
์ฌ์ค NVIDIA๋ ์์ ๋ถํฐ ๋ก๋ด ์๋ฎฌ๋ ์ดํฐ ๊ฐ๋ฐ์ ๊พธ์คํ ํฌ์ํด ์์ผ๋ฉฐ, ๋ค์ํ ์ด๋ฆ์ผ๋ก ์ฌ๋ฌ ์คํ ์์ค ํ๋ก์ ํธ๋ฅผ ๊ณต๊ฐํด ์์ต๋๋ค. ๊ทธ๋์ โIsaacโ์ด๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง ํ๋ก์ ํธ๋ค์ด ์ฌ๋ฟ ์กด์ฌํ๋๋ฐ์. ๋ํ์ ์ธ ์๋ก, Isaac Gym, Isaac Sim, ๊ทธ๋ฆฌ๊ณ ๊ณผ๊ฑฐ Orbit ํ๋ก์ ํธ๊ฐ ์์ต๋๋ค. ํฅ๋ฏธ๋กญ๊ฒ๋, ์ค๋ ์๊ฐํ Isaac Lab๋ ์๋๋ 2023๋ ๊น์ง๋ง ํด๋ Orbit์ด๋ผ๋ ์ด๋ฆ์ ํ๋ก์ ํธ์์ต๋๋ค. ํ์ง๋ง ์ต๊ทผ NVIDIA์ GR00T ํ๋ก์ ํธ์ ํจ๊ป ํตํฉ๋๋ฉด์, ์๋ก์ด ์ด๋ฆ์ธ Isaac Lab์ผ๋ก ์ฌํ์ํ๊ฒ ๋์์ต๋๋ค.
(์ฌ์ค ์ ๋ ์ด์ ์ ์ ๋ฆฌํ๋ Orbit ์ค์น ๊ฐ์ด๋ ํฌ์คํ ์ด ํ์๊ฐ์ ๋ฌด์ฉ์ง๋ฌผ์ด ๋์ด๋ฒ๋ ธ๋ค๋ ์ํ๊น์ด ์ฌ์ฐ์ด ์์ต๋๋คโฆ๐ ํ์ง๋ง, ๋น์ Omniverse, Isaac Sim, Orbit์ ๊ด๊ณ๋ฅผ ์ ๋ฆฌํ๋ ๋ถ๋ถ์ ์ฌ์ ํ ์ ํจํ๊ธฐ ๋๋ฌธ์ ์ง๊ธ๋ ๋์์ด ๋๋ ์๋ฃ์ด๊ธด ํฉ๋๋ค.)
2 IsaacSim VS. IsaacGym
Isaac Gym/Sim ๋ฌด์์ด ๋ค๋ฅผ๊น?
Isaac Sim์ ์ฒ์ ์ ํ์๋ ๋ถ๋ค ์ค์๋ ์ฐ๊ตฌ ๋ ผ๋ฌธ์์ ๋ ์์ฃผ ๋ฑ์ฅํ๋ Isaac Gym๊ณผ ํผ๋ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ฌ์ค, ๋ ์๋ฎฌ๋ ์ดํฐ๋ ์๋ก ๋ฐ์ ํ ๊ด๋ จ์ด ์์ง๋ง, ๋ชฉ์ ๊ณผ ๊ธฐ๋ฅ์ด ๋ค๋ฆ ๋๋ค. ๋ฐ๋ผ์ ๋ณธ๊ฒฉ์ ์ผ๋ก Isaac Sim์ ์ดํด๋ณด๊ธฐ ์ ์, ๋จผ์ Isaac Gym๊ณผ Isaac Sim์ ์ฐจ์ด์ ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
1. Isaac Gym: ๊ฐํ ํ์ต์ ์ํ ๊ณ ์ฑ๋ฅ GPU ์๋ฎฌ๋ ์ดํฐ
๋จผ์ , Isaac Gym์ ๊ฐํ ํ์ต(RL)์ ์ํ GPU ๊ธฐ๋ฐ์ ๊ณ ์ฑ๋ฅ ๋ฌผ๋ฆฌ ์๋ฎฌ๋ ์ดํฐ์ ๋๋ค. NVIDIA์ PhysX ์์ง ์์ ๊ตฌ์ถ๋์ด ์์ผ๋ฉฐ, CPU ๊ธฐ๋ฐ์ ๊ธฐ์กด ๋ฌผ๋ฆฌ ์์ง๊ณผ ๋น๊ตํ์ ๋ ํจ์ฌ ๋น ๋ฅธ ์๋ฎฌ๋ ์ด์ ์๋๋ฅผ ์๋ํฉ๋๋ค. Isaac Gym์ ๊ฐ์ฅ ํฐ ํน์ง์ GPU๋ฅผ ํ์ฉํ ๋ณ๋ ฌ ์ฐ์ฐ์ ํตํด ์๋ง์ ํ๊ฒฝ์ ๋์์ ์คํํ ์ ์๋ค๋ ์ ์ ๋๋ค. ๋๋ถ์ ๋ก๋ด ํ์ต์ ์ํ ๋ฐ์ดํฐ ์์ง์ด ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ด๋ฃจ์ด์ง๋ฉฐ, CPU ๊ธฐ๋ฐ ์๋ฎฌ๋ ์ด์ ์์๋ ๋ถ๊ฐ๋ฅํ๋ ๋๊ท๋ชจ ๋ณ๋ ฌ ์๋ฎฌ๋ ์ด์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ด๋ฌํ ๊ฐ๋ ฅํ ์ฑ๋ฅ ๋๋ถ์, Isaac Gym์ ๋ก๋ด ๊ฐํ ํ์ต ์ฐ๊ตฌ์์ ๋๋ฆฌ ์ฌ์ฉ๋์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ค๋ฆฌ ๋ฌ๋ฆฐ ๋ก๋ด์ ๋ณดํ ํ์ต, In-hand Manipulation, Industrial Assembly ๋ฑ์ ์ฐ๊ตฌ์์ ์ฑ๊ณต์ ์ผ๋ก ํ์ฉ๋์์ต๋๋ค.
ํ์ง๋ง Isaac Gym์ ๋ฒ์ฉ ๋ก๋ด ์๋ฎฌ๋ ์ดํฐ๊ฐ ์๋๋๋ค. ๊ฐํ ํ์ต์ ์ํ ์ต์ ํ๊ฐ ์ด๋ฃจ์ด์ง ๋งํผ, ๋ช ๊ฐ์ง ๊ธฐ๋ฅ์ด ๋น ์ ธ ์์ต๋๋ค.
- ๋ณํ์ฒด(Soft Body) ์๋ฎฌ๋ ์ด์ X โ ๊ฐ์ฒด(Rigid Body) ๋ฌผ๋ฆฌ ์๋ฎฌ๋ ์ด์ ๋ง ์ง์
- ๊ณ ํ์ง ๋ ๋๋ง X โ ์ฌ์ค์ ์ธ ๊ทธ๋ํฝ ๊ตฌํ์ด ์ด๋ ค์
- ROS/ROS2 ์ง์ X โ ์ค์ ๋ก๋ด๊ณผ์ ์ฐ๋์ด ์ด๋ ค์
์ฆ, Isaac Gym์ โ๊ฐํ ํ์ต์ ์ํ ์ด๊ณ ์ ๋ฌผ๋ฆฌ ์๋ฎฌ๋ ์ดํฐโ์ด์ง๋ง, ๋ฒ์ฉ์ ์ธ ๋ก๋ด ์๋ฎฌ๋ ์ด์ ์๋ ํ๊ณ๊ฐ ์์ต๋๋ค.
2. Isaac Sim: ๋ฒ์ฉ ๋ก๋ด ์๋ฎฌ๋ ์ด์ ํ๋ซํผ
Isaac Sim์ NVIDIA Omniverse ํ๋ซํผ ์์ ๊ตฌ์ถ๋ ๋ฒ์ฉ ๋ก๋ด ์๋ฎฌ๋ ์ดํฐ์ ๋๋ค. Isaac Gym์ด ๋ฌผ๋ฆฌ ์๋ฎฌ๋ ์ด์ ์ ์ด์ ์ ๋ง์ท๋ค๋ฉด, Isaac Sim์ ๋ณด๋ค ํญ๋์ ๋ก๋ด ์ฐ๊ตฌ์ ๊ฐ๋ฐ์ ์ง์ํ๋ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ๊ณ ํ์ง ๋ ๋๋ง๊ณผ ๋ค์ํ ๋ก๋ด ๊ธฐ๋ฅ ์ง์์ ๋๋ค. Isaac Sim์ ์ต์ RTX ๊ทธ๋ํฝ ๊ธฐ์ ์ ํ์ฉํ์ฌ ์ฌ์ค์ ์ธ 3D ์๋ฎฌ๋ ์ด์ ์ ์ ๊ณตํ๋ฉฐ, ๋ค์ํ ์ผ์(LiDAR, RGB-D ์นด๋ฉ๋ผ ๋ฑ)๋ฅผ ์๋ฎฌ๋ ์ด์ ํ ์ ์์ด ์ค์ ๋ก๋ด ์์คํ ๊ณผ์ ์ฐ๋์ด ์ฉ์ดํฉ๋๋ค. ๋ฟ๋ง ์๋๋ผ, ROS/ROS2๋ฅผ ์๋ฒฝํ๊ฒ ์ง์ํ์ฌ, Isaac Sim์์ ๊ฐ๋ฐํ ๋ก๋ด ์๊ณ ๋ฆฌ์ฆ์ ์ค์ ํ๋์จ์ด์์๋ ๊ทธ๋๋ก ์คํํ ์ ์์ต๋๋ค.
๋ํ, ๋๋ฉ์ธ ๋๋คํ(Domain Randomization)์ ํฉ์ฑ ๋ฐ์ดํฐ ์์ฑ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ, Sim2Real ์ฐ๊ตฌ์๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ๋ค์ ์ค์ ๋ก๋ด์ด ์ง๋ฉดํ ๋ค์ํ ํ๊ฒฝ ๋ณํ์ ๋ํด ๊ฐ๊ฑดํ ํ์ต์ด ๊ฐ๋ฅํ๋๋ก ๋์์ค๋๋ค.
Isaac Sim์ ๋ ๋ค๋ฅธ ๊ฐ์ ์ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์คํ์ด ๊ฐ๋ฅํ๋ค๋ ์ ์ ๋๋ค. NVIDIA์ Isaac Automator๋ฅผ ์ฌ์ฉํ๋ฉด, ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋์ ์ฌ์์ GPU๋ฅผ ๊ฐ์ถ ์ฅ๋น๊ฐ ์๋๋ผ๋, ํด๋ผ์ฐ๋์์ Isaac Sim์ ์คํํ์ฌ ๋๊ท๋ชจ ์๋ฎฌ๋ ์ด์ ์ ์ํํ ์ ์์ต๋๋ค.
Isaac Gym๊ณผ Isaac Sim, ์ด๋ค ๊ฒ์ ์ ํํด์ผ ํ ๊น?
| ๋น๊ต ํญ๋ชฉ | Isaac Gym | Isaac Sim |
|---|---|---|
| ๋ชฉ์ | ๊ฐํ ํ์ต (RL) ์ค์ฌ | ๋ฒ์ฉ ๋ก๋ด ์๋ฎฌ๋ ์ด์ |
| ๋ฌผ๋ฆฌ ์์ง | GPU ๊ธฐ๋ฐ PhysX | PhysX + Omniverse RTX |
| ๊ฐํ ํ์ต ์ง์ | โ ๋งค์ฐ ๋น ๋ฆ | โ ์ง์ํ์ง๋ง ์๋์ ์ผ๋ก ๋ฌด๊ฑฐ์ |
| ROS/ROS2 ์ง์ | โ ์์ | โ ๊ฐ๋ฅ |
| ์ผ์ ์๋ฎฌ๋ ์ด์ | โ ์ ํ์ | โ ๋ค์ํ ์ผ์ ๋ชจ๋ธ ์ ๊ณต |
| ๋ ๋๋ง ํ์ง | โ ๊ธฐ๋ณธ ์์ค | โ ๊ณ ํ์ง (RTX ์ง์) |
| ํด๋ผ์ฐ๋ ์คํ | โ ์ง์ X | โ ๊ฐ๋ฅ (Isaac Automator) |
์ ํ ๊ฐ์ด๋
- ๊ฐํ ํ์ต ์ค์ฌ์ ๋น ๋ฅธ ๋ฌผ๋ฆฌ ์๋ฎฌ๋ ์ด์
์ด ํ์ํ๋ค๋ฉด? โ Isaac Gym
- ๋ฒ์ฉ ๋ก๋ด ์๋ฎฌ๋ ์ด์
๊ณผ ROS/์ผ์ ์๋ฎฌ๋ ์ด์
์ด ํ์ํ๋ค๋ฉด? โ Isaac Sim
2.1 IsaacGymEnvs ๋ฐ OmniIsaacGymEnvs
NVIDIA๊ฐ Isaac Gym๊ณผ Isaac Sim์ ๊ณต๊ฐํ๋ฉด์, ์ด ๋ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ๋ณด๋ค ์ฝ๊ฒ ํ์ฉํ ์ ์๋๋ก IsaacGymEnvs์ OmniIsaacGymEnvs๋ผ๋ ์คํ ์์ค ํ๊ฒฝ์ ํจ๊ป ์ ๊ณตํ์ต๋๋ค. ์ด ํ๊ฒฝ๋ค์ ๊ฐ๊ฐ์ ์๋ฎฌ๋ ์ดํฐ ์์์ ์คํ๋๋ฉฐ, ๊ธฐ๋ณธ์ ์ธ ์๋ฎฌ๋ ์ด์ ๊ธฐ๋ฅ์ ํ ์คํธํ๊ณ ๋ก๋ด ํ์ต์ด ๊ฐ๋ฅํ ๋ฒ์๋ฅผ ๋ณด์ฌ์ฃผ๋ ์์ค์ฝ๋๋ค์ ๋ณด์ฌ์ค๋๋ค. ์ฆ, IsaacGymEnvs๋ Isaac Gym ๊ธฐ๋ฐ, OmniIsaacGymEnvs๋ Isaac Sim ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ฉฐ, ๊ฐ ์๋ฎฌ๋ ์ดํฐ์ ์ฅ์ ์ ์ต๋ํ ํ์ฉํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค.
์ด ํ๊ฒฝ๋ค์ ์ฌ์ฉํ๋ฉด, ์ฌ์ ์ ์๋ ๋ก๋ด ํ์คํฌ๋ฅผ ๋น ๋ฅด๊ฒ ์คํํ๊ณ ํ์ต ์ฑ๋ฅ์ ๋ฒค์น๋งํนํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค. ํ์ง๋ง, ์ฐ๊ตฌ์๋ค์ด ์ง์ ์ปค์คํ ํ๊ฒฝ์ ๊ฐ๋ฐํ๊ฑฐ๋ ์๋ก์ด ์๊ณ ๋ฆฌ์ฆ์ ํ ์คํธํ๊ธฐ์๋ ๊ตฌ์กฐ์ ์ผ๋ก ํ๊ณ๊ฐ ๋ง์์ต๋๋ค.
โ ํน์ ํ์คํฌ์ ์ต์ ํ๋ ํ๊ฒฝ โ ์๋ก์ด ํ์คํฌ ์ถ๊ฐ๊ฐ ์ด๋ ค์
โ ํ๊ฒฝ์ ํ์ฅ์ฑ์ด ๋ถ์กฑ โ ๋ค์ํ ๋ก๋ด ์คํ์ ํ๊ธฐ์ ํ๊ณ
โ ์ฐ๊ตฌ์๊ฐ ์ง์ ์คํ์ ์ค๊ณํ๊ธฐ ์ด๋ ค์
๊ฒฐ๊ตญ, ๋ก๋ด ํ์ต ์ฐ๊ตฌ๊ฐ ์ ์ ๋ณต์กํด์ง๊ณ ๋ค์ํ ์คํ์ด ํ์ํด์ง๋ฉด์, IsaacGymEnvs์ OmniIsaacGymEnvs๋ง์ผ๋ก๋ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ด๋ ค์์ก๊ณ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฑ์ฅํ ๊ฒ์ด ๋ฐ๋ก Isaac Lab์ ๋๋ค.
3 Isaac Lab
NVIDIA๋ ์ต๊ทผ Isaac Sim์ ๊ธฐ๋ฐ์ผ๋ก ํ ํตํฉ์ ์ธ ๋ก๋ด ํ์ต ํ๋ ์์ํฌ, Isaac Lab์ ๋ฐํํ์ต๋๋ค. ์ด๋ ๋จ์ํ ๊ธฐ์กด ํ๊ฒฝ๋ค์ ๊ฐ์ ํ ๊ฒ์ด ์๋๋ผ, ๋ณด๋ค ์ ์ฐํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ๋ก๋ด ํ์ต์ ์ง์ํฉ๋๋ค. ๊ธฐ์กด์ IsaacGymEnvs, OmniIsaacGymEnvs, Orbit ๊ฐ์ ๊ฐ๋ณ์ ์ธ ํ๋ ์์ํฌ๋ค์ ํน์ ํ๊ฒฝ์ด๋ ํ์คํฌ์ ๋ง์ถฐ ์ค๊ณ๋ ๋ฐ๋ฉด, Isaac Lab์ ์ด๋ฌํ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ณ , ์ฐ๊ตฌ์๋ค์ด ์ง์ ์ํ๋ ํ๊ฒฝ๊ณผ ์๊ณ ๋ฆฌ์ฆ์ ์ฝ๊ฒ ๊ตฌ์ถํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค.
3.1 Isaac Lab์ ํต์ฌ ํน์ง
Isaac Lab์ ๊ฐํ ํ์ต(RL), ์์ฐ์ ํตํ ํ์ต(LfD), ๋ชจ์ ํ๋๋ ๋ฑ ๋ค์ํ ๋ก๋ด ์ฐ๊ตฌ ์ํฌํ๋ก์ฐ๋ฅผ ๋จ์ํํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ์ด๋ฅผ ์ํด ๋ชจ๋ํ(modular) ๊ตฌ์กฐ๋ฅผ ๊ฐ์ถ๊ณ ์์ผ๋ฉฐ, ์ฐ๊ตฌ์๊ฐ ์์ฝ๊ฒ ํ๊ฒฝ์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์๋ก์ด ํ์คํฌ๋ฅผ ์ถ๊ฐํ ์ ์๋๋ก ํ์ฅ์ฑ์ ๊ณ ๋ คํ์ฌ ์ค๊ณ๋์์ต๋๋ค.
โ๏ธ Isaac Lab์ด ๊ธฐ์กด ํ๋ ์์ํฌ์ ๋ค๋ฅธ ์
- ์ฌ์ ๊ตฌ์ถ๋ ํ๊ฒฝ & ํ์คํฌ ์ ๊ณต โ ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ ์ํ ํ๊ฒฝ ํฌํจ
- ๋ง์ถคํ ์ปค์คํ ํ๊ฒฝ ๊ฐ๋ฐ ์ง์ โ ์ฌ์ฉ์๊ฐ ์ง์ ํ๊ฒฝ์ ์ค๊ณํ๊ณ ์คํ ๊ฐ๋ฅ
- ๊ฐํ ํ์ต & ๋ชจ์ ํ๋๋ ์ต์ ํ โ ๋ค์ํ ํ์ต ๋ฐฉ๋ฒ ์ ์ฉ ๊ฐ๋ฅ
3.2 Isaac Lab์์ ์๋กญ๊ฒ ์ถ๊ฐ๋ ๊ธฐ๋ฅ
๋ฟ๋ง ์๋๋ผ, Isaac Sim์ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ณ์นํ๋ฉด์๋, ๋ก๋ด ํ์ต ์ฐ๊ตฌ๋ฅผ ์ํ ์๋ก์ด ๊ธฐ๋ฅ๋ค์ด ์ถ๊ฐ๋์์ต๋๋ค.
๐น ๊ตฌ๋๊ธฐ(Actuator) ๋์ญํ ์๋ฎฌ๋ ์ด์
๊ธฐ์กด IsaacGymEnvs์์๋ ๋จ์ํ ํ ๊ธฐ๋ฐ ์ ์ด๊ฐ ์ฃผ๋ก ์ฌ์ฉ๋์์ง๋ง, Isaac Lab์์๋ ๋ชจํฐ์ ์ก์ถ์์ดํฐ์ ๋์ญํ์ ๋ณด๋ค ์ ๊ตํ๊ฒ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ ์ค์ ๋ก๋ด์ ์ ์ด ๋ฐฉ์๊ณผ ๋์ฑ ์ ์ฌํ ์๋ฎฌ๋ ์ด์ ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
๐น ์ ์ฐจ์ ์งํ ์์ฑ(Procedural Terrain Generation)
ํ์ต์ ์ํ ๋ค์ํ ํ๊ฒฝ์ ์๋์ผ๋ก ์์ฑํ ์ ์๋๋ก ํ๋ก์์ ๋ด(Procedural) ๋ฐฉ์์ ์งํ ์์ฑ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค. ์ด๋ ๋ก๋ด์ด ๋ค์ํ ์งํ์ ํ์ตํ๋ ๋ฐ ์ ์ฉํ๋ฉฐ, ์ผ๋ฐํ ์ฑ๋ฅ ํฅ์์ ๊ธฐ์ฌํฉ๋๋ค.
๐น ์ฌ๋ ์์ฐ ๋ฐ์ดํฐ ์์ง ๊ธฐ๋ฅ
์์ฐ์ ํตํ ํ์ต(LfD: Learning from Demonstration)์ ์ํ ๋ฐ์ดํฐ ์์ง ๊ธฐ๋ฅ์ ํฌํจํ์ฌ, ์ฌ๋ ์์ฐ ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ ๊ฐํ ํ์ต ๋ฐ ํ๋ ๋ณต์ (Behavior Cloning)๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ ๋จ์ํ RL์ ๋์ด, ๋ณด๋ค ํจ์จ์ ์ธ ํ์ต ๋ฐฉ๋ฒ๋ก ์ ์ฐ๊ตฌํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
4 Installation
์ด์ Isaac Sim๊ณผ ๊ทธ ์์์ ๋์ํ๋ Isaac Lab์ ์ง์ ์ค์นํด ๋ณด๊ฒ ์ต๋๋ค.
๋ง์ ๋ก๋ด ๊ฐ๋ฐ์ด ๋ฆฌ๋
์ค ํ๊ฒฝ์์ ์งํ๋๊ธฐ ๋๋ฌธ์, ์ดํ ๊ณผ์ ์ ๋ฆฌ๋
์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ช
ํฉ๋๋ค.
4.1 Isaac Sim ์ค์น
Isaac Sim์ 4.5.0 ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธ๋๋ฉด์ ์ค์น ๊ณผ์ ์ด ๋์ฑ ๊ฐํธํด์ก์ต๋๋ค.
ํ์ง๋ง, ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์คํํ๊ธฐ ์ํด์๋ ๊ณ ์ฑ๋ฅ ๊ทธ๋ํฝ ์นด๋ ๋ฐ ํน์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํด์ผ ํฉ๋๋ค.
4.1.1 ์์คํ ์ฌ์ ํ์ธ: Isaac Sim Compatibility Checker
๐ป ์ต์ ์๊ตฌ ์ฌ์
- ์ด์์ฒด์ : Ubuntu 20.04 ์ด์
- GPU: NVIDIA RTX 3060 ์ด์ (RTX 3090 / 4090 ๊ถ์ฅ)
- CUDA ๋ฒ์ : 11.8 ์ด์
- VRAM: ์ต์ 8GB (12GB ์ด์ ๊ถ์ฅ)
- RAM: ์ต์ 16GB (32GB ์ด์ ๊ถ์ฅ)
- ๋์คํฌ ๊ณต๊ฐ: ์ต์ 100GB ์ด์์ ์ฌ์ ๊ณต๊ฐ
Isaac Sim์ ์คํํ ์ ์๋์ง ์๋์ผ๋ก ์ ๊ฒํ ์ ์๋๋ก Isaac Sim Compatibility Checker ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด ๋๊ตฌ๋ฅผ ๋จผ์ ์คํํ์ฌ ์์คํ ์ด ์ ํฉํ์ง ํ์ธํ ํ, ์ค์น๋ฅผ ์งํํ๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค.
โ ์ค์น ๋ฐ ์คํ ๋ฐฉ๋ฒ
- Isaac Sim Compatibility Checker ๋ค์ด๋ก๋
- ์์ถ์ ํ์ด ์ํ๋ ํด๋์ ์ ์ฅ ๋ฐ ์๋ ๋ช ๋ น์ด๋ก ์คํ
./omni.isaac.sim.compatibility_check.sh- ๊ฒ์ฌ ๊ฒฐ๊ณผ ํ์ธ (์์ ์ฝ๋ ์๋ด)
- ๐ข Green (์ต์ ): ๋ชจ๋ ์๊ตฌ ์ฌํญ ์ถฉ์กฑ
- ๐ข Light-green (์ํธ): ์คํ ๊ฐ๋ฅํ์ง๋ง ์ฑ๋ฅ ์ต์ ํ ๊ฐ๋ฅ
- ๐ Orange (์ถฉ๋ถํ์ง๋ง ๊ฐ์ ํ์): ์คํ์ ๊ฐ๋ฅํ์ง๋ง ๊ถ์ฅ ์ฌ์๋ณด๋ค ๋ฎ์
- ๐ด Red (๋ฏธ์ง์): ์คํ ๋ถ๊ฐ๋ฅ
- ๐ข Green (์ต์ ): ๋ชจ๋ ์๊ตฌ ์ฌํญ ์ถฉ์กฑ
4.1.2 Isaac Sim ์ค์น (Standalone ๋ฐฉ์)
Isaac Sim์ Omniverse Launcher ์์ด ๋ ๋ฆฝ ์คํํ(Standalone) ํจํค์ง๋ก ๋ค์ด๋ก๋ํ์ฌ ์ค์นํด์ผ ํฉ๋๋ค.
โ
์ค์น ๋ฐฉ๋ฒ
1. Isaac Sim ๋ค์ด๋ก๋ ํ์ด์ง์์ ์ต์ ๋ฆด๋ฆฌ์ค ๋ค์ด๋ก๋
2. ์๋ ๋ช
๋ น์ด๋ฅผ ์คํํ์ฌ ์ค์น
mkdir ~/isaacsim
cd ~/Downloads
unzip "isaac-sim-standalone@4.5.0-rc.36+release.19112.f59b3005.gl.linux-x86_64.release.zip" -d ~/isaacsim
cd ~/isaacsim
./post_install.sh
./isaac-sim.selector.sh- ์ค์น ํ, Isaac Sim App Selector๊ฐ ์คํ๋๋ฉฐ ์คํ ๋ชจ๋๋ฅผ ์ ํ ๊ฐ๋ฅ
4.1.3 Isaac Sim ์คํํ๊ธฐ
์ค์น ํ ์คํํ๋ ค๋ฉด, ์๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
./isaac-sim.sh๐ ์ต์ด ์คํ ์ ์ ฐ์ด๋ ์บ์ ๋ก๋ฉ(Warmup)์ด ํ์ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ, ์๋ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ์ ฐ์ด๋ ์บ์๋ฅผ ๋ฏธ๋ฆฌ ๋ก๋ํฉ๋๋ค.
./isaac-sim.sh --warmup4.2 Isaac Lab ์ค์น
Isaac Lab์ Isaac Sim์ด ์ค์น๋ ํ๊ฒฝ์์ ๋์ํ๋ฏ๋ก, ๋จผ์ Isaac Sim์ ์ค์นํ ํ ์งํํด์ผ ํฉ๋๋ค. Isaac Sim์ pip ํ๊ฒฝ์์ ์ฌ์ฉํ๊ธฐ ์ํด ์ถ๊ฐ์ ์ธ ์ค์น ๊ณผ์ ์ด ํ์ํฉ๋๋ค.
4.2.1 ์ค์น ์ ์๊ตฌ ์ฌํญ ํ์ธ
โ GLIBC ๋ฒ์ ํ์ธ (Ubuntu 20.04์์๋ ์ถ๊ฐ ์กฐ์น ํ์)
ldd --version๐ GLIBC 2.34 ์ด์์ด ํ์ํฉ๋๋ค. Ubuntu 20.04 ๊ธฐ๋ณธ ๋ฒ์ (2.31)๊ณผ ํธํ๋์ง ์์ ์ ์์ผ๋ฏ๋ก ํ์ธ์ด ํ์ํฉ๋๋ค.
4.2.2 Conda ๊ฐ์ํ๊ฒฝ ์ค์
Isaac Sim์ ํ์ฉํ๊ธฐ ์ํด Python 3.10 ํ๊ฒฝ์ ๊ฐ์ถ ๊ฐ์ ํ๊ฒฝ์ ์์ฑํฉ๋๋ค.
conda create -n env_isaaclab python=3.10
conda activate env_isaaclab4.2.3 PyTorch ์ค์น (CUDA ๋ฒ์ ์ ๋ง๊ฒ ์ ํ)
CUDA ๋ฒ์ ์ ๋ง๋ PyTorch๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค.
โ CUDA 11์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ:
pip install torch==2.5.1 --index-url https://download.pytorch.org/whl/cu118โ CUDA 12๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ:
pip install torch==2.5.1 --index-url https://download.pytorch.org/whl/cu1214.2.4 Isaac Sim pip ์ค์น
pip๋ฅผ ์ด์ฉํด Isaac Sim์ ๊ฐ์ ํ๊ฒฝ์์ ์ค์นํฉ๋๋ค.
pip install --upgrade pip
pip install 'isaacsim[all,extscache]==4.5.0' --extra-index-url https://pypi.nvidia.comโ ์ค์น ํ์ธ
isaacsimโ ๏ธ ์ฒซ ์คํ ์ NVIDIA EULA ๋์๊ฐ ํ์ํฉ๋๋ค.
Do you accept the EULA? (Yes/No): Yes๐ ์ฒซ ์คํ ์ ๋ชจ๋ ํ์ฅ(extension) ํ์ผ์ด ๋ค์ด๋ก๋๋๋ฏ๋ก 10๋ถ ์ด์ ์์๋ ์ ์์ต๋๋ค.
4.2.5 Isaac Lab ํด๋ก (์์ค ์ฝ๋ ๋ค์ด๋ก๋)
git clone https://github.com/isaac-sim/IsaacLab.git
cd IsaacLab4.2.6 ์์กด์ฑ ํจํค์ง ์ค์น
Isaac Lab ์คํ์ ์ํด ํ์ํ ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค.
sudo apt install cmake build-essential๊ทธ ํ, Isaac Lab์ ์์กด์ฑ์ ์ค์นํฉ๋๋ค.
./isaaclab.sh --install๐ ๋ชจ๋ ๊ฐํ ํ์ต ํ๋ ์์ํฌ๋ฅผ ํจ๊ป ์ค์นํฉ๋๋ค.
๐ ํน์ ํ๋ ์์ํฌ๋ง ์ค์นํ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ด ์คํํฉ๋๋ค.
./isaaclab.sh --install rl_games # ํน์ ํ๋ ์์ํฌ (์: rl_games)๋ง ์ค์นโ ์ค์น ๊ฐ๋ฅํ ํ๋ ์์ํฌ ๋ชฉ๋ก
rl_gamesrsl_rlsb3skrlrobomimicnone(ํ์ต ํ๋ ์์ํฌ ์ ์ธ)
4.2.7 Isaac Lab ์คํ ํ์ธ
# Option 1: isaaclab.sh ์คํ
./isaaclab.sh -p scripts/tutorials/00_sim/create_empty.py
# Option 2: Python์ผ๋ก ์ง์ ์คํ
python scripts/tutorials/00_sim/create_empty.pyโ ์ ์์ ์ผ๋ก ์คํ๋๋ฉด, Isaac Lab์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ค์น๋ ๊ฒ์ ๋๋ค! ๐
5 Conclusion
์ง๊ธ๊น์ง ๋ก๋ด ์๋ฎฌ๋ ์ดํฐ์ ๊ฐ์๋ถํฐ Isaac Sim๊ณผ Isaac Lab์ ์ฐจ์ด์ , ๊ทธ๋ฆฌ๊ณ ์ค์น ๊ณผ์ ๊น์ง ์์ธํ ์์๋ณด์์ต๋๋ค. ์ต๊ทผ Physical AI์ ๋ก๋ด ๊ฐ๋ฐ์ ๋ํ ๊ด์ฌ์ด ๊ธ์ฆํ๋ฉด์, ๋ก๋ด ์๋ฎฌ๋ ์ดํฐ ์ญ์ ์ค์ํ ๋๊ตฌ๋ก ์๋ฆฌ ์ก๊ณ ์์ต๋๋ค. ๊ทธ์ค์์๋ Isaac Sim์ GPU ๊ฐ์ ๊ธฐ๋ฐ์ ๊ฐ๋ ฅํ ๋ฌผ๋ฆฌ ์๋ฎฌ๋ ์ด์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ, ๋ก๋ด ํ์ต ๋ฐ ์๋ฎฌ๋ ์ด์ ์ ์๋ก์ด ํ์ค์ด ๋๊ณ ์์ต๋๋ค.
Isaac Sim์ ํ์ฉํ๋ฉด ๊ณ ํ์ง ๊ทธ๋ํฝ, ๋ฌผ๋ฆฌ ์์ง ์ต์ ํ, ROS/๊ฐํ ํ์ต ํตํฉ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ Isaac Lab์ ํตํด ๋์ฑ ์ฒด๊ณ์ ์ธ ๋ก๋ด ํ์ต ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ๋ฌผ๋ก , Isaac Sim์ ์คํํ๊ธฐ ์ํด์๋ ๊ณ ์ฌ์์ GPU๊ฐ ํ์ํ๋ค๋ ์ ์ด ๋ถ๋ด์ด ๋ ์ ์์ต๋๋ค. ํ์ง๋ง, ๋ก๋ด ์๋ฎฌ๋ ์ด์ ๊ณผ ๊ฐํ ํ์ต์ ๊ด์ฌ์ด ์๋ค๋ฉด ์ถฉ๋ถํ ํฌ์ํ ๊ฐ์น๊ฐ ์๋ ํ๊ฒฝ์ ๋๋ค.
๋ค์ ํฌ์คํ ์์๋ Isaac Lab์ ํ์ฉํ์ฌ ์ง์ ์๋ฎฌ๋ ์ด์ ์ ์คํํ๊ณ , ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ์ ์ตํ๋ ๊ณผ์ ์ ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค.