๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋กœ๋ณดํ‹ฑ์Šค

Running Isaac Lab in the Cloud

728x90

 

๊ฐœ์š”

์šฐ์—ฐ์ฐฎ๊ฒŒ ๋™์•„๋ฆฌ ๋‚ด์—์„œ ํ‰์†Œ ๊ด€์‹ฌ์žˆ๋˜ ๋žฉ์‹ค ๊ต์ˆ˜๋‹˜๊ป˜์„œ ์ธํ„ด์„ ๋ชจ์ง‘ํ•œ๋‹ค๋Š” ๊ณต๊ณ ๋ฅผ ๋ณด์•˜๋‹ค. ์ด์— ๋‚˜๋Š” ์ง€์›ํ•˜์˜€๊ณ  'Isaac Sim ์„ ํ™œ์šฉํ•œ ๋ชจ๋ฐ”์ผ ์ž์œจ ์ฃผํ–‰ ๋กœ๋ด‡' ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค์–ด๋ณด๊ณ  ๋‹ค์‹œ ์—ฐ๋ฝ์„ ์ฃผ๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ๋‹ต์‹ ์„ ๋ฐ›์•˜๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ Isaac Sim ์€ ๊ต‰์žฅํžˆ ๋†’์€ ์‚ฌ์–‘์˜ GPU, RAM ์„ ํ•„์š”๋กœ ํ–ˆ๊ณ  ๊ทธ๋Ÿฌํ•œ ์ปดํ“จํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์‹ค์Šต ๊ณต๊ฐ„์„ ์ฐพ๊ธฐ๊ฐ€ ํž˜๋“ค์—ˆ๋‹ค.
์ด์— ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์‚ดํ”ผ์–ด Cloud ์—์„œ Isaac sim ์„ ๋ฐฐํฌํ•˜๊ณ (ํด๋ผ์šฐ๋“œ์—์„œ ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ) ์˜จ๋ผ์ธ์œผ๋กœ ํ™”๋ฉด์„ streaming ํ•ด์ฃผ๋Š” ๊ธฐ์ˆ ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜๋‹ค.

์ฒ˜์Œ์—๋Š” IssacLab Automator ๊ฐ€ ์ œ๊ณตํ•ด์ฃผ๋Š” ์„œ๋น„์Šค ๋ฒ”์œ„์— ๋Œ€ํ•ด ํ˜ผ๋™์ด ์žˆ์—ˆ๋Š”๋ฐ, ์•„์˜ˆ ํด๋ผ์šฐ๋“œ ์ธ์Šคํ„ด์Šค๋ฅผ ํ•œ๋Œ€ ๋นŒ๋ ค์„œ ์›๊ฒฉ ํด๋ผ์ด์–ธํŠธ์—์„œ Isaac Sim ์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ๋  ๊ฒƒ๊ฐ™๋‹ค.

์กฐ๊ธˆ ๋ฐ˜์‘์„ฑ์€ ๋–จ์–ด์ง€์ง€๋งŒ ๋‚ด ์ƒํ™ฉ์—์„œ๋Š” ์ตœ์„ ์ด์—ˆ๊ธฐ์— ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐ„์ ‘์ ์œผ๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ์‹์„ ํƒํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค.

Issac automator๋ž€?

Issac Automator to create an aws instance with Isaac Lab

Isaac Lab๋Š” Isaac Automator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. Isaac Automator๋Š” Isaac Sim๊ณผ Isaac Lab์„ ๊ณต๊ณต ํด๋ผ์šฐ๋“œ(AWS, GCP, Azure, Alibaba Cloud)์— ์‹ ์†ํ•˜๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ์ด๋‹ค.

๊ทธ ๊ฒฐ๊ณผ๋Š” Fully configured remote desktop cloud workstation(์™„์ „ํžˆ ๊ตฌ์„ฑ๋œ ์›๊ฒฉ ๋ฐ์Šคํฌํƒ‘ ํด๋ผ์šฐ๋“œ ์ž‘์—… ๊ณต๊ฐ„)์œผ๋กœ, ๋ช‡ ๋ถ„ ์•ˆ์— Isaac Lab์„ ๊ฐœ๋ฐœํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋ฉฐ, ์˜ˆ์‚ฐ์— ๋งž๋Š” ๋น„์šฉ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Isaac Automator๋Š” ๋‹ค์–‘ํ•œ GPU ์ธ์Šคํ„ด์Šค์™€ ํด๋ผ์šฐ๋“œ ๋น„์šฉ ์ ˆ๊ฐ์„ ์œ„ํ•œ ์ •์ง€-์‹œ์ž‘ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ ์—…๋กœ๋“œ ๋ฐ ๋‹ค์šด๋กœ๋“œ, ์ž๋™ ์‹คํ–‰, ๋ฐฐํฌ ๊ด€๋ฆฌ ๋“ฑ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์›Œํฌํ”Œ๋กœ์šฐ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

Isaac Automator ์„ค์น˜

Isaac Automator๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํด๋ก ํ•ด์•ผ ํ•œ๋‹ค.

git clone https://github.com/isaac-sim/IsaacAutomator.git

Isaac Automator๋Š” ์‹œ์Šคํ…œ์— Docker๊ฐ€ ๋ฏธ๋ฆฌ ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. Docker ์„ค์น˜ ๋ฐฉ๋ฒ•์€ ์šด์˜ ์ฒด์ œ์— ๋งž๋Š” Docker ์›น์‚ฌ์ดํŠธ์˜ ์ง€์นจ์„ ๋”ฐ๋ผ์•ผํ•˜๊ณ  ๋˜ํ•œ Docker๋ฅผ sudo ์—†์ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ›„์† ์„ค์น˜ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ผ์•ผ ํ•œ๋‹ค.

Isaac Automator๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” NGC API ํ‚ค๋ฅผ ํš๋“ํ•ด์•ผ ํ•œ๋‹ค. NVIDIA Developer Program์— ๊ฐ€์ž…ํ•˜์—ฌ Isaac Sim ์ปจํ…Œ์ด๋„ˆ์— ์ ‘๊ทผํ•˜๊ณ , NVIDIA GPU Cloud(NGC)์—์„œ ์ž ๊ธˆ๋œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ NGC API ํ‚ค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

๋‹ค์Œ์€ API ํ‚ค๋ฅผ ์ƒ์„ฑํ•œ ํ›„, ํ„ฐ๋ฏธ๋„์—์„œ NGC์— ๋กœ๊ทธ์ธํ•ด์•ผ ํ•œ๋‹ค. ์•„๋ž˜๋Š” NVIDIA GPU Cloud (NGC)์˜ Docker ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๋กœ๊ทธ์ธํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

docker login nvcr.io  

๋กœ๊ทธ์ธ ์‹œ ์‚ฌ์šฉ์ž ์ด๋ฆ„์€ $oauthtoken์œผ๋กœ ์ž…๋ ฅํ•˜๊ณ , ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ์ƒ์„ฑํ•œ NGC API ํ‚ค๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

Issac Sim ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ AWS ํ™˜๊ฒฝ ๊ตฌ์ถ•

๊ฐ€์žฅ ๋จผ์ € Getting AWS IAM USER Access Credentials ์„ ์œ„ํ•ด

  1. IAM USER ํƒญ์—์„œ Access ํ‚ค, Secret ํ‚ค๋ฅผ ํ™•์ธํ•œ๋‹ค.
  2. ํ•ด๋‹น IAM User ์— ๋Œ€ํ•ด Enabling Access Permissions. *AmazonEC2FullAccess ๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค.*

์ด๋Š” ๋‚˜๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ Isaac Sim ์„ ec2 ์ธ์Šคํ„ด์Šค์— ๋ฐฐํฌํ•ด์ค„ ๊ถŒํ•œ์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.

Isaac Automator ์‹คํ–‰

Isaac Automator๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋จผ์ € Isaac Automator ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋นŒ๋“œํ•ด์•ผ ํ•œ๋‹ค.

Linux/MacOS

./build

 

์œ„ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ…Œ๋ผํผ(terafrom) ์— ๋ช…์‹œ๋œ ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ž๋™์œผ๋กœ ์‹คํ–‰๋œ๋‹ค.

๋งŒ์•ฝ configuration ๊ด€๋ จํ•˜์—ฌ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์€ ์‚ฌํ•ญ์ด ์žˆ๋‹ค๋ฉด .tf ํŒŒ์ผ์„ ํ™•์ธํ•ด๋ณธ๋‹ค.

 

๊ทธ ๋‹ค์Œ, ์ปจํ…Œ์ด๋„ˆ์— ๋“ค์–ด๊ฐ€๋ ค๋ฉด

# enter the automator container
./run
# inside container:
./somecommand

๊ทธ ๋‹ค์Œ์—๋Š” ์„ ํ˜ธํ•˜๋Š” ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์— ๋งž๋Š” ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
๋‚˜ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” AWS ๋กœ ๋ฐฐํฌํ•˜๋ฏ€๋กœ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

./deploy-aws

๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐฐํฌ์™€ ๊ด€๋ จํ•œ ์—ฌ๋Ÿฌ ์งˆ๋ฌธ ๋ชฉ๋ก(ํ™˜๊ฒฝ ์„ค์ • ๋ฐ ์ž๊ฒฉ ์ฆ๋ช… ์ž…๋ ฅ์— ๋Œ€ํ•œ ์•ˆ๋‚ด)์ด ํ„ฐ๋ฏธ๋„์— ํ‘œ์‹œ๋œ๋‹ค.[] ์•ˆ์— ์žˆ๋Š” ๊ฒƒ์„ ์œ„์ฃผ๋กœ ๋‹ต๋ณ€ํ•˜๋ฉด ๋œ๋‹ค.

 

[๊ฒฐ๊ณผ]

[Isaac Automator v3.4.1]:/app$ ./deploy-aws
* Deployment Name (lower case letters, numbers and "-") [crunchy-grid]: isaac-sim
* AWS Region [US East 1]: us-east-1
* Deploy Isaac Sim? [Y/n]: Y
* Isaac Sim Instance Type (https://docs.aws.amazon.com/dlami/latest/devguide/gpu.html, G5, G4dn and G6 instances are supported) [g5.2xlarge]: g5.2xlarge
* Isaac Sim docker image [nvcr.io/nvidia/isaac-sim:4.2.0]: nvcr.io/nvidia/isaac-sim:4.2.0
* [DEPRECATED] Install Omni Isaac Gym Envs? Valid values: 'no', or <git ref in github.com/NVIDIA-Omniverse/OmniIsaacGymEnvs> [no]: no
* Install Isaac Sim Lab? Valid values: 'no', or <git ref in github.com/isaac-sim/IsaacLab> [v1.3.0]: v1.3.0
* NGC API Key (can be obtained at https://ngc.nvidia.com/setup/api-key) []: ~
* AWS Access Key ID []: ~
* AWS Secret Access Key []: ~
* Deploymemnt exists, what would you like to do? See --help for details. (repair, modify, replace, run_ansible) [replace]: replace
* Deleting existing deployment...
* Initializing terraform modules...
* Destroying AWS resources used by "isaac-sim"...

โš ๏ธ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ… โ€ผ๏ธ

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์ฒ˜์Œ์— vCPU ์ œํ•œ์ด ๊ฑธ๋ ค ์žˆ๋‹ค๋Š” Error๊ฐ€ ๋– ์„œ AWS ์ธก์— ์กฐ์ •์„ ์š”์ฒญํ•˜๊ณ  ํ—ˆ๊ฐ€ ๋‹ต์žฅ์„ ๋ฐ›์•˜๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜, vCPU ์ œํ•œ์„ ํ‘ผ ์ดํ›„์—๋„ us-east-1 ์˜์—ญ์—๋Š” ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์ธ์Šคํ„ด์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์•„์„œ
๊ฒฐ๊ตญ us-east ๋กœ region์„ ๋ฐ”๊พธ์–ด vCPU ์ œํ•œ์„ ํ•œ๋ฒˆ ๋” ํ’€๊ณ  ์‹œ๋„ํ–ˆ๋‹ค.

๋ฐฐํฌ ์„ฑ๊ณต

us-east๋กœ ์‹œ๋„ํ•œ ๊ฒฐ๊ณผ ๋“œ๋””์–ด ์„ฑ๊ณตํ•˜์˜€๊ณ , ๋ฐฐํฌ๋ฅผ ์„ฑ๊ณตํ•˜๋ฉด ํ•ด๋‹น ์ธ์Šคํ„ด์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๋“ค์ด ์•ˆ๋‚ด๋œ๋‹ค.

* Uploaded 12K to "/home/ubuntu/uploads" @ Isaac Sim instance (34.197.113.153)

*******************************************
* Isaac Sim is deployed at 34.197.113.153 *
*******************************************

* To connect to Isaac Sim via SSH:

ssh -i state/isaac-sim/key.pem -o StrictHostKeyChecking=no ubuntu@34.197.113.153

* To connect to Isaac Sim via noVNC:

1. Open http://34.197.113.153:6080/vnc.html?host=34.197.113.153&port=6080 in your browser.
2. Click "Connect" and use password "QBi0eWilR4"

* To connect to Isaac Sim via NoMachine:

0. Download NoMachine client at https://downloads.nomachine.com/, install and launch it.
1. Click "Add" button.
2. Enter Host: "34.197.113.153".
3. In "Configuration" > "Use key-based authentication with a key you provide",
   select file "state/isaac-sim/key.pem".
4. Click "Connect" button.
5. Enter "ubuntu" as a username when prompted.

 

๋ฐฐํฌ๊ฐ€ ์„ฑ๊ณตํ•˜๋ฉด, ํด๋ผ์šฐ๋“œ ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ์ด ์ œ๊ณต๋œ๋‹ค. SSH, noVCN ๋˜๋Š” NoMachine์„ ํ†ตํ•ด ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. 

๋‚˜๋Š” ์œ„์˜ ์ œ์‹œ๋œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ธ noMachine ์„ ์ด์šฉํ•˜๋ฉด์—ฌ ํด๋ผ์šฐ๋“œ ์ธ์Šคํ„ด์Šค์—์„œ ์‹คํ–‰์ค‘์ธ Isaac sim ์— ์›๊ฒฉ์œผ๋กœ ์ ‘๊ทผํ•˜์˜€๋‹ค.

\

ํด๋ผ์šฐ๋“œ ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•˜๋ฉด ๋ฐ์Šคํฌํƒ‘์— isaaclab.sh ์•„์ด์ฝ˜์ด ํ‘œ์‹œ๋œ๋‹ค. ์ด ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜์—ฌ ์‹คํ–‰ํ•˜๋ฉด ์ƒˆ๋กœ์šด ํ„ฐ๋ฏธ๋„์ด ์—ด๋ฆฌ๊ณ , ๊ทธ ์•ˆ์—์„œ ๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ Isaac Lab ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

./isaaclab.sh -p source/standalone/workflows/rl_games/train.py --task=Isaac-Cartpole-v0

 

๋น„์šฉ์„ ์ ˆ๊ฐํ•˜๋ ค๋ฉด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฐฐํฌ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” Automator ์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ปจํ…Œ์ด๋„ˆ์— ๋“ค์–ด๊ฐ€๋ ค๋ฉด ./run ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

./destroy <๋ฐฐํฌ ์ด๋ฆ„>

'๋กœ๋ณดํ‹ฑ์Šค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Isaac Sim์—์„œ Nav2๋กœ ์ž์œจ์ฃผํ–‰ ํ…Œ์ŠคํŠธ  (0) 2025.01.08
Installing ROS2 humble [Ubuntu 22.04]  (0) 2025.01.08