Building a world - modulabs/gazebo-tutorial GitHub Wiki

์ด ์ง€์นจ์„œ๋Š” static ๊ณผ dynamic object๋ฅผ ๊ฐ€์ง„ world๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Terminology

World : ๋กœ๋ด‡๊ณผ ๋นŒ๋”ฉ,ํ…Œ์ด๋ธ” ๋“ฑ๊ณผ ๊ฐ™์€ ์˜ค๋ธŒ์ ํŠธ ๊ทธ๋ฆฌ๊ณ  ํ•˜๋Š˜, ์€์€ํ•œ ๋ถˆ๋น› ๋“ฑ์˜ ๋ฌผ๋ฆฌ์ ์ธ ์„ฑ์งˆ์„ ๊ฐ€์ง„ ๊ธ€๋กœ๋ฒŒ ํŒŒ๋ผ๋ฉ”ํƒ€๋ฅผ ๋ฌ˜์‚ฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Static : SDF ํŒŒ์ผ๋‚ด์—์„œ <static>true</static>๊ฐ™์ด ๋งˆํ‚น์„ ํ•˜๋ฉด, ๊ทธ ๋ฌผ์ฒด๋Š” ๊ณ ์ •๋˜์–ด ์˜ค์ง ์ถฉ๋Œ ์˜ํ–ฅ๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Dynamic : SDF ํ™”์ผ๋‚ด์—์„œ <static>์„ ์—†์• ๊ฑฐ๋‚˜, false๋กœ ์…‹ํŒ…์„ ํ•˜๋ฉด, ์˜ค๋ธŒ์ ํŠธ๋Š” ๊ด€์„ฑ๊ณผ ์ถฉ๋Œ ์˜ํ–ฅ์ด ์ ์šฉ์ด ๋ฉ๋‹ˆ๋‹ค.

Setup

  1. ๊ฐ€์ œ๋ณด๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  2. ground plane์„ ๊ฐ€์ง„ world ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    $ gazebo

Adding Objects

๊ฐ€์ œ๋ณด๋Š” ๊ฐ€์ œ๋ณด์— ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” 2๊ฐ€์ง€์˜ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  1. ์ฒซ๋ฒˆ์จฐ๋Š” ๊ธฐ๋ณธ์ ์ธ ํ˜•ํƒœ๋ฅผ ๋งŒ๋“ค์–ด์ง„ ์œˆ๋„์šฐ์— ์œ„์น˜๋ฅผ ์‹œํ‚ค๋Š”๊ฒƒ์ž…๋‹ˆ๋‹ค.

  1. 2๋ฒˆ์งธ๋Š” ๋ชจ๋ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž…๋‹ˆ๋‹ค. ์™ผ์ชฝ ์ฝ”๋„ˆ์˜ Insert Tab์œผ๋กœ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.

Adding Simple Shapes

๋ฐ•์Šค,๊ตฌ,์‹ค๋ฆฐ๋”๋ฅผ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•ด์„œ ์œˆ๋„์šฐ์— ์ถ”๊ฐ€ํ• ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ๊ฐ์˜ ํ˜•ํƒœ๋“ค์€ ๋‹จ์œ„ํฌ๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Box: 1x1x1 meter
  • Sphere: 1 meter diameter
  • Cylinder: 1 meter diameter, 1 meter length

๋ฐ•์Šค ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜๊ณ  ๋งˆ์šฐ์Šค๋ฅผ ์›ํ•˜๋Š” ์œ„์น˜๊นŒ์ง€ ์ด๋™์‹œ์ผœ์„œ ๋†“์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ๊ณผ์ •์„ ๋‹ค๋ฅธ ํ˜•ํƒœ์— ๋Œ€ํ•ด์„œ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์ถ”๊ฐ€๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

Adding Model from the Model Database

๊ฐ€์ œ๋ณด์˜ ๋ชจ๋ธ ๋ฐ์ดํ„ฐ ๋ฒ ์ด๋А์Šจ ๋ชจ๋“  ํƒ€์ž…์˜ ๋ชจ๋ธ(๋กœ๋ด‡,ํ…Œ์ด๋ธ”,๋นŒ๋”ฉ๋“ฑ ํฌํ•จ)์˜ ์ €์žฅ์†Œ ์ž…๋‹ˆ๋‹ค.

  1. ๋ชจ๋ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด Insert tab์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค(์ขŒ์ธก์ƒ๋‹จ ์ฝ”๋„ˆ)
๋ชจ๋ธ๋ฆฌ์ŠคํŠธ๋Š” ๊ทธ๋“ค์˜ ํ˜„์žฌ ์œ„์น˜์— ๋”ฐ๋ผ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ ์„น์…˜์€ path ๋˜๋Š” url๋กœ ๋ผ๋ฒจ๋ง ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.
์›๊ฒฉ์„œ๋ฒ„์— ์œ„์น˜ํ•œ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์„ ํƒํ•จ์œผ๋กœ์จ ๋ชจ๋ธ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์ €์žฅ๋˜๋„๋ก ํ• ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. (~/.gazebo/models.)
  1. ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ชจ๋ธ์„ world์— ์ถ”๊ฐ€ํ•ด ๋ณด์„ธ์š”, ์šฉ๋Ÿ‰์ด ํฐ ๋ชจ๋ธ์„ ๋‹ค์šด๋กœ๋“œ ํ• ๋•Œ๋Š” ์ธ๋‚ด์‹ฌ์„ ๊ฐ€์ง€์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  2. ์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜์™€ ๊ฐ™์€ ๋ชจ์Šต์ด ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Position Models

๊ฐ ๋ชจ๋ธ์˜ ์œ„์น˜๋Š” ์ด๋™ ๋ฐ ํšŒ์ „์ด ๋ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Translation

์ด๋™ํˆด์€ ์˜ค๋ธŒ์ ํŠธ๋ฅผ x,y,z์ถ•์œผ๋กœ ์ด๋™์„ ์‹œํ‚ต๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ์œ„์น˜๋กœ ์ด๋™์„ ์‹œํ‚ฌ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์˜ค๋ธŒ์ ํŠธ ์ž์ฒด๋ฅผ ํด๋ฆญํ•˜๊ณ  ์ด๋™ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ด๋™์„ ์œ„ํ•œ ๋ฐฉํ–ฅ์ถ• x,y,z๊ฐ€ ์ƒ์„ฑ์ด ๋˜๋Š”๋ฐ, ์ด ๋ฐฉํ–ฅ์ถ•์„ ์ด์šฉํ•˜๋ฉด ์ •ํ™•ํžˆ ์›ํ•˜๋Š” ์ถ• ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค
  • ctrlํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด 1 ๋ฏธํ„ฐ๋‹จ์œ„๋กœ ์›€์ง์ž…๋‹ˆ๋‹ค.
  • shift๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ถ• ๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ ฌ์ด ๋˜์–ด ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

Rotation

. ํšŒ์ „ํˆด์€ ์ถ• ์„ ๊ธฐ์ค€์œผ๋กœ ํšŒ์ „์„ ์‹œํ‚ต๋‹ˆ๋‹ค . ์˜ค๋ธŒ์ ํŠธ ์ž์ฒด๋ฅผ ํด๋ฆญํ•ด์„œ ํด๋ฆญํ•ด์„œ ํšŒ์ „์‹œํ‚ต๋‹ˆ๋‹ค. . ctrl์„ ํด๋ฆญํ•˜๋ฉด 45๋„ ๋‹จ์œ„๋กœ ํšŒ์ „์„ ์‹œํ‚ต๋‹ˆ๋‹ค. . shift๋ฅผ ์ •๋ ฌ๋˜์–ด ํšŒ์ „์‹œํ‚ต๋‹ˆ๋‹ค.

Scale

. ์Šค์ผ€์ผํˆด์€ ์ถ• ์„ ๊ธฐ์ค€์œผ๋กœ ์Šค์ผ€์ผ์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. . ctrl์„ ํด๋ฆญํ•˜๋ฉด 1m ๋‹จ์œ„๋กœ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

##Delete Models ๋ชจ๋ธ์„ ์„ ํƒํ•˜๊ณ  , Delete ํ‚ค๋กœ ์‚ญ์ œ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

##Saving a World ์›ํ•˜๋Š” ๋ชจ์Šต์œผ๋กœ ๋˜์—ˆ์œผ๋ฉด, file ๋ฉ”๋‰ด์—์„œ Save World as๋ฅผ ์„ ํƒํ•œ๋‹ค ํŒ์—…์ด ๋‚˜ํƒ€๋‚˜๋ฉด ์ƒˆ๋กœ์šด ์ด๋ฆ„์„ "my_world.sdf"๋กœ ํ•˜๊ณ , ์—”ํ„ฐ๋ฅผ ์นœ๋‹ค.

Loading a World

์ €์žฅ๋œ world๋Š” ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ ์‹คํ–‰์„ ์‹œํ‚ต๋‹ˆ๋‹ค.

$ gazebo my_world.sdf

์ด ํ™”์ผ ์ด๋ฆ„์€ ํ˜„์žฌ ์ž‘์—…์ค‘์ธ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์–ด์•ผ ํ•˜๊ณ , ๊ทธ๋ ‡์น˜ ์•Š์œผ๋ฉด ์™„์ „ํ•œ path๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ