Import Meshes - modulabs/gazebo-tutorial GitHub Wiki

์ด๋ฒˆ ํŠœํ† ๋ฆฌ์–ผ์€ ๊ฐ€์ œ๋ณด์— 3D mesh๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ๋‹ค.

1. Prepare the Mesh

๊ฐ€์ œ๋ณด๋Š” ์˜ค๋ฅธ์† ์ขŒํ‘œ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•œ๋‹ค. +Z๋Š” ์œ„, +X๋Š” ์Šคํฌ๋ฆฐ ์•ˆ์ชฝ, +Y๋Š” ์™ผ์ชฝ์ด๋‹ค.

Reduce Complexity

๋งŽ์€ mesh๋“ค์€ ์ƒ๋‹นํžˆ ๋ณต์žกํ•  ์ˆ˜ ์žˆ๋‹ค. ์ˆ˜๋งŽ์€ ์‚ผ๊ฐํ˜•๋“ค์„ ๊ฐ€์ง„ mesh๋Š” ๊ฐ์†Œ ๋˜์–ด์•ผ ํ•˜๊ณ , ํšจ์œจ์ ์œผ๋กœ ๊ฐ๊ฐ์˜ mesh๋“ค๋กœ ๋ถ„๋ฆฌ ๋˜์–ด์•ผ ํ•œ๋‹ค. ์‚ผ๊ฐํ˜•๋“ค์„ ์ค„์ด๊ณ  mesh๋ฅผ ๋ถ„๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๊ด€๋ จ๋œ ์ •๋ณด๋“ค์€ ๋‹น์‹ ์˜ 3D mesh ์—๋””ํ„ฐ์˜ ๋ฌธ์„œ๋ฅผ ๋ณด์•„๋ผ.

Center the mesh

์ฒซ ์Šคํ…์—์„œ (0,0,0)์—์„œ mesh์˜ ์„ผํ„ฐ์ด๊ณ , x์ถ•์ด ์ •๋ฉด์˜ ๋ฐฉํ–ฅ์ด๋‹ค.

Scale the mesh

๊ฐ€์ œ๋ณด๋Š” metric system์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋งŽ์€ mesh๋“ค์€ English unit์„ ์‚ฌ์šฉํ•œ๋‹ค. mesh๋ฅผ metric size๋กœ ์Šค์ผ€์ผ ํ•  ์ˆ˜ ์žˆ๋Š” 3D ์—๋””ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด๋ผ.

2. Export the Mesh

์ผ๋‹จ mesh๊ฐ€ ์ ์ ˆํžˆ ์ค€๋น„๋œ๋‹ค๋ฉด, ๊ทธ๊ฒƒ์„ Collada ํŒŒ์ผ๋กœ ๋‚ด๋ณด๋‚ด๋ผ. ์ด ํฌ๋งท์€ ๋ชจ๋“  3D์ •๋ณด์™€ ๋ฌผ์งˆ ์ •๋ณด๋ฅผ ํฌํ•จ ํ•  ๊ฒƒ์ด๋‹ค.

3. Test the Mesh

mesh๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ๋‹จ์ˆœํ•œ world ํŒŒ์ผ my_mesh.world์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ์ด ํŒŒ์ผ์€ mesh๋ฅผ ๋กœ๋“œ ํ•œ๋‹ค. my_mesh.dae๋ฅผ ์‹ค์ œ mesh์˜ ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ ๋Œ€์ฒด ํ•ด๋ผ.

    <?xml version="1.0"?>
    <sdf version="1.4">
      <world name="default">
        <include>
          <uri>model://ground_plane</uri>
        </include>
        <include>
          <uri>model://sun</uri>
        </include>
        <model name="my_mesh">
          <pose>0 0 0  0 0 0</pose>
          <static>true</static>
          <link name="body">
            <visual name="visual">
              <geometry>
                <mesh><uri>file://my_mesh.dae</uri></mesh>
              </geometry>
            </visual>
          </link>
        </model>
      </world>
    </sdf>

๊ทธ๋ฆฌ๊ณ ๋‚˜์„œ ํŒŒ์ผ์ด ์žˆ๋Š” ํด๋”์—์„œ ๊ฐ€์ œ๋ณด๋ฅผ ์‹œ์ž‘ํ•ด๋ผ.

$ gazebo my_mesh.world

4. Test Mesh

๋‹น์‹ ์€ duck.dae, duck.png mesh ํŒŒ์ผ๋“ค์„ ์ด์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ๋“ค์„ worldํŒŒ์ผ๋กœ์„œ ๊ฐ™์€ ํด๋”์— ํ•จ๊ป˜ ๋‚˜๋‘์–ด๋ผ. duck mesh๋Š” ์œ„์ชฝ ๋ฐฉํ–ฅ์„ y์ถ•์œผ๋กœ ์ •์˜ํ•ด ๋†“์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ ์œ„์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ ๋ณด์ด๊ธฐ ์œ„ํ•ด์„œ๋Š” sdf์—์„œ ํšŒ์ „์„ ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

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