Attach Meshes - modulabs/gazebo-tutorial GitHub Wiki

1. Overview

์ „์ œ์กฐ๊ฑด: Make a mobile robot

mesh๋“ค์€ ๋ชจ๋ธ์„ ์‹œ๊ฐ์ ์œผ๋กœ ๊ทธ๋ฆฌ๊ณ  ์„ผ์„œ์— ๋Œ€ํ•ด์„œ๋„ ํ˜„์‹ค์„ฑ์„ ๋ถ€๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฒˆ ํŠœํ† ๋ฆฌ์–ผ์€ ์ž์‹ ์˜ ๋ชจ๋ธ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์— ์–ด๋–ป๊ฒŒ ๋‚˜ํƒ€๋‚ผ์ง€ ์ •์˜ํ•œ ์ž์‹ ์˜ mesh๋“ค์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค.

2. Attach a Mesh as Visual

๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ mesh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ํ˜„์‹ค์ ์œผ๋กœ ๋ณด์ด๊ธฐ ์œ„ํ•ด ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.

  1. my_robot ํด๋”๋กœ ์ด๋™ํ•ด๋ผ.
    $ cd ~/.gazebo/models/my_robot
  1. model.sdf ํŒŒ์ผ์„ ์—ด์–ด๋ผ.
    $ gedit ~/.gazebo/models/my_robot/model.sdf
  1. ์šฐ๋ฆฌ๋Š” ์ƒค์‹œ์— mesh๋ฅผ ์ถ”๊ฐ€ ํ•  ๊ฒƒ์ด๋‹ค. name=visual์„ ๊ฐ€์ง„ visual์„ ์ฐพ์•„๋ผ. ์ด๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
    <visual name='visual'>
      <geometry>
        <box>
          <size>.4 .2 .1</size>
        </box>
      </geometry>
    </visual>
  1. mesh๋Š” ๋””์Šคํฌ์—์„œ ํŒŒ์ผ ํ˜น์€ ๋‹ค๋ฅธ ๋ชจ๋ธ๋กœ ๋ถ€ํ„ฐ ์˜จ๋‹ค. ์ด๋ฒˆ ์˜ˆ์ œ์—์„œ ์šฐ๋ฆฌ๋Š” pionner2dx ๋ชจ๋ธ๋กœ ๋ถ€ํ„ฐ mesh๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. visual ์š”์†Œ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ”๊ฟ”๋ผ.(ํ•˜์ง€๋งŒ ํŒŒ์ผ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์€ ๋ฐ”๊พธ์ง€ ๋ง๊ณ  ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜์—ฌ๋ผ.)
    <visual name='visual'>
      <geometry>
        <mesh>
          <uri>model://pioneer2dx/meshes/chassis.dae</uri>
        </mesh>
      </geometry>
    </visual>
  1. ์œ„์˜ ๋ธ”๋ก์— ์˜ํ•ด ๊ธฐ์ค€์ด ๋˜๋Š” pionner2dx ๋ชจ๋ธ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ๋ชจ๋ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ™•์ธํ•˜์—ฌ๋ผ.
    $ ls -l ~/.gazebo/models/pioneer2dx/meshes/chassis.dae

๋งŒ์•ฝ meshํŒŒ์ผ์ด ์กด์žฌ ํ•˜์ง€ ์•Š๋Š” ๋‹ค๋ฉด ๋ชจ๋ธ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ํ•œ๋‹ค.

    $ cd ~/.gazebo/models
    $ wget -q -R *index.html*,*.tar.gz --no-parent -r -x -nH http://models.gazebosim.org/pioneer2dx/
  1. ๊ฐ€์ œ๋ณด์—์„œ My Robot ๋ชจ๋ธ์„ world์— ๋“œ๋ž˜๊ทธํ•˜์—ฌ ๋†“๋Š”๋‹ค. ์ƒค์‹œ์˜ ์™ธ๊ด€์€ pioneer2dx์™€ ๊ฐ™์„ ๊ฒƒ์ด๋‹ค.

  2. ์ƒค์‹œ๋Š” ๋ถ„๋ช… ์šฐ๋ฆฌ ๋กœ๋ด‡์— ๋น„ํ•ด ๋„ˆ๋ฌด ํฌ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์™ธ๊ด€์„ ์ค„์ผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

  3. ์Šค์ผ€์ผ ํŒฉํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์™ธ๊ด€ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆ ํ•œ๋‹ค.

    <visual name='visual'>
      <geometry>
        <mesh>
          <uri>model://pioneer2dx/meshes/chassis.dae</uri>

          <scale>0.9 0.5 0.5</scale>

        </mesh>
      </geometry>
    </visual>
  1. ์ด๋ฒˆ ์™ธ๊ด€์€ ๋˜ ๋„ˆ๋ฌด ๋‚ฎ๋‹ค.(z ๋ฐฉํ–ฅ์œผ๋กœ) ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜์—ฌ ๊ทธ๊ฒƒ์„ ์œ„๋กœ ์•ฝ๊ฐ„ ์˜ฌ๋ฆฌ์ž.
    <visual name='visual'>
      <pose>0 0 0.05 0 0 0</pose>
      <geometry>
        <mesh>
          <uri>model://pioneer2dx/meshes/chassis.dae</uri>

          <scale>0.9 0.5 0.5</scale>

        </mesh>
      </geometry>
    </visual>

์ง€๊ธˆ๊นŒ์ง€ ๋ˆˆ์— ๋ณด์—ฌ์ง€๋Š” ๋ถ€๋ถ„(<visual>)๋งŒ ๊ฐ„๋‹จํžˆ ์ˆ˜์ •ํ•ด ๋ณด์•˜๋‹ค. ํ•˜์ง€๋งŒ ์ถฉ๋Œ์˜์—ญ(<collision>)์€ ์ˆ˜์ •ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ฌผ๋ฆฌ์—”์ง„์€ ์ด์ „์— ์„ค์ •ํ•œ ๋ฐ•์Šค ํ˜•ํƒœ์˜ ์ถฉ๋Œ์˜์—ญ์„ ์ถฉ๋Œ ์—ญํ•™ ๊ณ„์‚ฐ ์‹œ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค.

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