NVIDIA Isaac Sim - Introduction
What is Isaac Sim?
Isaac Sim은 AI 로봇을 기반으로 한 더 빠르고 효율적인 시뮬레이션 설계, 테스트 및 학습이 가능한 로봇 시뮬레이터입니다. Isaac Sim에서는 로봇 팔, 모바일 로봇 등 다양한 로봇이 존재하며 2024년 01월 기준 2023.1 버전이 출시되어 있다. Isaac Sim은 ROS/ROS2, Domain Randomiation, Ground-truth labeling, segmentation, bounding boxes와 같이 Robot 조작 및 Computer vision 테크닉도 같이 사용이 가능하여 로봇을 학습 또는 사용하고자 한다면 좋은 플랫폼이 되지 않을까 생각된다.
System Architecture
Isaac Sim에서는 다양한 사용자 층을 고려하여 다양한 robot의 파일형식을 import할 수 있으며 아래와 같이 나열되어 있다.
- Onshape: 무료 웹 CAD 프로그램 중 하나인 Onshape는 클라우드 컴퓨팅을 통해 작업이 가능한 도구이다. 사용자들에 의하면 다른 CAD 프로그램들과 호환성이 좋다고 한다.
- URDF: URDF는 Unified Robot Description Format의 줄임말으로써, URDF를 이용하면 로봇의 Navigation, Manipulation, Remote Control이 가능하다. 기본적으로 URDF는 XML 형식으로 작성이 가능하다.
- MJCF: MJCF는 Multi-Joint dynamics with contact의 약자로 물리 시뮬레이션을 위한 XML 파일 형식이다. MJCF 파일은 고급 물리 시뮬레이션인 Mujoco에서 쓰이는 파일이다.
- USD: USD는 Universal Scene Description의 약자이며 콘텐츠 생성 및 다양한 도구 간 교환을 위해 Pixar에서 개발한 쉽게 확장 가능한 오픈 소스 3D 장면 설정 및 파일 형식이다.
Omniverse Kit
Omniverse Kit는 기본 Omniverse application 및 microservice를 구축하기 위한 SDK (Software Development Kit)이다. Omniverse Kit을 이용하여 Isaac Sim내에 SDK를 개발하고 싶은 사람은 사용하면 좋을 것 같다.
Omniverse Nucleus
Isaac Sim을 사용하고 있거나 사용할 예정인 사람들은 Omniverse Nucleus를 알아두는게 좋을 것이라고 생각이 된다. Nucleus에는 다양한 환경 및 로봇 예제가 존재하고 이를 접근하여 수정사항을 DB (Database)에 게시하거나 구독할 수 있다. 클라우드 시스템과 동일하다고 보면 될 것 같다.
Isaac Sim Requirements
Isaac Sim 구동을 위해서 본인이 가지고 있는 System의 사양을 Simulation에서 요구하는 사양으로 맞춰주어야 한다. Isaac Sim에서 요구하는 사양은 아래와 같다.
- System Requirements
| Element | Minimum Spec | Good | Ideal |
|---|---|---|---|
| OS | Ubuntu 20.04/22.04, Windows 10/11 | Ubuntu 20.04/22.04, Windows 10/11 | Ubuntu 20.04/22.04, Windows 10/11 |
| CPU | Intel Core i7 (7th Generation), AMD Ryzen 5 | Intel Core i7 (9th Generation), AMD Ryzen 7 | Intel Core i9 (X-series or higher), AMD Ryzen 9 (Threadripper or higher) |
| Cores | 4 | 8 | 16 |
| RAM | 32GB* | 64GB* | 64GB* |
| Storage | 50GB SSD | 500GB SSD | 1TB NVMe SSD |
| GPU | GeForce RTX 2070 | GeForce RTX 3080 | RTX A6000 |
| VRAM | 8GB* | 10GB* | 48GB* |
- Driver
| Driver Version Support | Windows | Linux |
|---|---|---|
| Recommended | 528.24, 528.33 (Grid/vGPU) | 525.85.05, 525.85.12 (Grid/vGPU) |
| Minimum | 473.47 | 510.73.05 |
| Unsupported | 495.0 up to 512.59, 525 up to 526.91 | 515.0 up to 515.17 |
Installation Environment
- CPU: Intel(R) Core(TM) i9-10900X
- GPU: NVIDIA GeForce RTX 3090 (2개)
- OS: Ubuntu 20.04 LTS
- NVIDIA Driver: 525.147.05
우선 사람들은 아래와 같이 여러가지 이유로 인해 Isaac Sim을 사용할 수 있다.
- 순수 Robotics (ex. ROS 사용, verification 용)
- AI agent 생성 및 verification 용 (Computer Vision, Reinforcement Learning)
필자는 강화학습 (Reinforcement Learning, RL)을 이용한 모바일 로봇 (Wheeled-Mobile Robot, WMR)을 학습시킬 예정이므로, WMR을 기준으로 포스팅을 작성하겠다.
Requirements
우선 WMR을 학습시키기 위해서는 아래와 같은 절차 (process)로 학습을 진행할 것인지가 중요하다.
- 학습할 환경 (ex. Indoor, Outdoor, …)
- 학습할 로봇 (ex. Robot Arm, WMR, …)
- 학습할 목표 (ex. navigation, collision avoidance, …)
- 학습할 알고리즘 (ex. DQN, DDPG, …)
위와 같이 어떠한 환경에서 학습을 진행할 것인지, 어떠한 로봇을 사용할 것인지, 어떠한 목표로 우리의 로봇을 학습시킬 것인지, 어떠한 알고리즘을 통해서 학습시킬 것인지가 중요하다. 목표가 제대로 정해지지 않은 상황에서 학습을 수행한다는 것은 꿈이 없이 공부만 계속하는 것과 같을 것이다.
이렇게 우리가 나눈 절차대로 학습을 진행하기 위해 순서대로 어떻게 이루어지는지 살펴볼 것이다.
Isaac Sim Content
Omniverse Isaac release에 따라 자체적으로 사용할 수 있는 asset들이 있다. 만약, 아래에 나열된 환경, 로봇, 센서, 소품, 주요 자산을 가져다 쓰고 싶다면 이전 포스팅에 언급된 Nucleus 서버에서 파일을 다운로드하거나 Nucleus 서버에 Isaac Mount를 생성해야한다. 자세한 설치 내용은 Isaac Sim First Run 또는 Sample Asset에서 확인가능하다.
만약 Nucleus 설치 및 세팅이 완료되었다면 아래와 같이 확인할 수 있다.
01. Environment Assets
우선 필자의 경우 Indoor 즉, 실내에서 움직이는 로봇을 만들 것이다. Isaac Sim내에서는 다양한 환경 asset들을 지원하며, 지원하는 대표적인 환경 asset은 아래와 같다.
Simple Grid
Simple Grid는 평평한 지면 (flat ground)와 그리드 텍스처가 있는 측면이 포함되어 있다. 단순하게, 평평한 바닥이 무한하게 있는게 아니라 벽이 있다. 아래의 첫번째, 두번째 환경은 정사각형 형태이고, 세번쨰 환경의 경우 모서리가 구부러진 (curved) 환경이다.
Asset 위치: /Isaac/Environments/Grid/
Simple Room
Simple Room은 방에 테이블이 하나 놓여있는 구조이다.
Asset 위치: /Isaac/Environments/Simple_Room/simple_room.usd
Warehouse
warehouse 환경에서는 선반 위에 objects들과 장애물들이 배치되어 있다.
Asset 위치: /Isaac/Environments/Simple_Warehouse/
Hospital
Hospital 환경에서는 병원과 같이 여러개의 방과 공간이 꾸려져 있다.
Asset 위치: /Isaac/Environments/Hospital/hospital.usd
Office
Office 환경에서는 사무실처럼 여러개의 방과 복도로 꾸며져 있다.
Asset 위치: /Isaac/Environments/Office/office.usd
Jetracer Track
Jetracer track에서는 바닥에 레이싱 트랙이 생성되어 있어, Computer vision으로 line tracking 또는 line following을 수행해보고 싶은 사람들에게는 좋은 환경이다.
Asset 위치: /Isaac/Environments/Jetracer/jetracer_track_solid.usd
02. Robots Assets
Isaac Sim을 사용하는 사람들에게 희소식은 로봇의 경우 major한 (jetbot, carter) 로봇들은 이미 asset으로 제공하고 있다는 점이다.