Minho Lee

Master's Student

Robotics Engineer

AI Researcher

Blogger

Blog Post

Isaac Lab Tutorial #2 - Interacting with Objects

Feb 23, 2025 Simulation
Isaac Lab Tutorial #2 - Interacting with Objects
Previous Tutorial Description
๐Ÿ”— Isaac Lab Tutorial #1 Overview of Isaac Lab & Setting up the Docker Environment

๐Ÿ“Œ ๋‘ ๋ฒˆ์งธ ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” Standalone Python ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Isaac Sim ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , Isaac Lab์˜ ์žฅ๋ฉด์— ๋‹ค์–‘ํ•œ ๊ฐ์ฒด ๋˜๋Š” ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณธ๋‹ค.

1. Creating an empty scene

1.1. Launching the simulator

1.2. Importing python modules

1.3. Configuring the simulation context

1.4. Running the simulation

1.5. Exiting the simulation

2. Spawning prims into the scene

2.1. Key concepts of USD

Omniverse์˜ ์žฅ๋ฉด ๋””์ž์ธ์€ USD(Universal Scene Description)๋ผ๋Š” ํŒŒ์ผ ํ˜•์‹์„ ์ค‘์‹ฌ์œผ๋กœ ๊ตฌ์ถ•๋œ๋‹ค. USD ํŒŒ์ผ์„ ํ†ตํ•ด ๊ณ„์ธต์  ๋ฐฉ์‹์œผ๋กœ 3D ์žฅ๋ฉด์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, USD์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ์•„๋ž˜ ํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด ํ™•์ธํ•ด๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค.

๋ณธ ํŠœํ† ๋ฆฌ์–ผ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๊ผญ ์•Œ์•„์•ผ ํ•  USD์˜ ๊ฐœ๋…์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. Primitive (Prim): USD ์žฅ๋ฉด์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์žฅ๋ฉด ๊ทธ๋ž˜ํ”„์˜ ๋…ธ๋“œ(node)๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ ๋…ธ๋“œ๋Š” ๋ฉ”์‹œ(mesh), ๊ด‘์›(light), ์นด๋ฉ”๋ผ(camera) ๋˜๋Š” ๋ณ€ํ™˜(transform)์ผ ์ˆ˜ ์žˆ๋‹ค.
  2. Attribute: Prim์ด ๊ฐ€์ง€๋Š” ์†์„ฑ(attribute)์œผ๋กœ ํ‚ค-๊ฐ’(key-value) ์Œ์˜ ํ˜•ํƒœ๋ฅผ ๋ค๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • prim์ด color๋ผ๋Š” ์†์„ฑ์„ ๊ฐ€์ง€๋ฉฐ, ๊ทธ ๊ฐ’์ด red์ผ ์ˆ˜๋„ ์žˆ๋‹ค.
  3. Relationship: Prim ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ด๋Š” ๋‹ค๋ฅธ prim์„ ์ฐธ์กฐํ•˜๋Š” ํฌ์ธํ„ฐ์™€ ๊ฐ™์€ ๊ฐœ๋…์œผ๋กœ, ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฉ”์‹œ(mesh) prim์ด shading์„ ์œ„ํ•œ material prim๊ณผ ๊ด€๊ณ„๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.
  4. Stage: ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ(prim)์™€ ์†์„ฑ(attribute) ๋ฐ ๊ด€๊ณ„(relationship)์˜ ๋ชจ์Œ์„ USD ์Šคํ…Œ์ด์ง€(stage)๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋Š” ์žฅ๋ฉด์˜ ๋ชจ๋“  prim์„ ์œ„ํ•œ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, USD ์Šคํ…Œ์ด์ง€๋Š” ์žฅ๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  prim์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ณต๊ฐ„์ด๋ฉฐ, ์žฅ๋ฉด์„ ๋””์ž์ธํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๊ณง USD stage๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

Isaac Lab์—์„œ๋Š” USD API๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ configuration-driven ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์žฅ๋ฉด์— prim์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” sim.spawners ๋ชจ๋“ˆ์— ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.

์žฅ๋ฉด์— prim์„ ์ƒ์„ฑํ•  ๋•Œ ๊ฐ prim์—๋Š” ์†์„ฑ๊ณผ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๋Š” ๊ตฌ์„ฑ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์ด ๊ตฌ์„ฑ ํด๋ž˜์Šค๊ฐ€ ํ•ด๋‹น ํ•จ์ˆ˜์— ์ „๋‹ฌ๋˜์–ด prim ์ด๋ฆ„๊ณผ ๋ณ€ํ™˜์ด ์ง€์ •๋œ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ•จ์ˆ˜๊ฐ€ ์žฅ๋ฉด์— prim์„ ์ƒ์„ฑํ•œ๋‹ค.

โš ๏ธ [Attention]
๋ชจ๋“  ์žฅ๋ฉด ๊ตฌ์„ฑ์€ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ด๋ฃจ์–ด์ ธ์•ผ ํ•œ๋‹ค. ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ด ์‹œ์ž‘๋˜๋ฉด ์žฅ๋ฉด์„ ๊ณ ์ •ํ•˜๊ณ  prim์˜ ์†์„ฑ๋งŒ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ค‘ ์ƒˆ๋กœ์šด prim์„ ์ถ”๊ฐ€ํ•˜๋ฉด GPU ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฒ„ํผ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋™์ž‘์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

2.2. Reference Script Guide

์ด ํŠœํ† ๋ฆฌ์–ผ๊ณผ ๊ด€๋ จ๋œ ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


Comments