Model structure and requirements - modulabs/gazebo-tutorial GitHub Wiki
๊ฐ์ ๋ณด๋ ๋ชจ๋ธ๋ค์ ํ๋ก๊ทธ๋จ์ด๋ GUI๋ฅผ ํตํด ์๋ฎฌ๋ ์ด์ ์ ๋ก๋ ํ ์ ์๋ค. ๋ชจ๋ธ์ ๋ค์ด๋ก๋ ํ๊ฑฐ๋ ์ฌ์ฉ์๊ฐ ๋ง๋ค์ด์ ์ฌ์ฉ์ ์ปดํจํฐ์ ์ ์ฅ ์ํฌ ์ ์๋ค. ์ด๋ฒ ํํ ๋ฆฌ์ผ์ ๊ฐ์ ๋ณด ๋ชจ๋ธ์ ํด๋ ๊ตฌ์กฐ์ ๋ชจ๋ธ ํด๋ ๋ด์ ํ์ํ ํ์ผ์ ๋ํด ์ค๋ช ํ๋ค.
๊ฐ์ ๋ณด์ ๋ชจ๋ธ๋ค์ ๋์ญํ, ๊ธฐ๊ตฌํ, ์๊ฐ์ ์์๋ค์ ๋ฌผ๋ฆฌ์ ์ธ ์ ๋ณด๋ฅผ ์ ์ํ๋ค. ๊ฒ๋ค๊ฐ ๋ชจ๋ธ์ ํ๋ ํน์ ๊ทธ ์ด์์ ํ๋ฌ๊ทธ์ธ๋ค์ ํฌํจํ๋ค. ์ด๋ฐ ํ๋ฌ๊ทธ์ธ๋ค์ ๋ชจ๋ธ์ ํ๋์ ์ํฅ์ ์ค๋ค. ๋ชจ๋ธ์ ๋จ์ํ ํํ์์ ๋ณต์กํ ๋ก๋ด๊น์ง ์ด๋ค ๊ฒ๋ค์ด๋ ํํ ํ ์ ์๋ค. ์ฌ์ง์ด ์ง๋ฉด๊น์ง ๋ชจ๋ธ์ด๋ค.
๊ฐ์ ๋ณด๋ ์๋ฎฌ๋ ์ด์ ๋ด์ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ธ์ ์ ์ฅํ๊ฑฐ๋ ์ ์งํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์กดํ๋ค. ๋ชจ๋ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ณต๋์์์ด๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ์๊ฐ ๋ง๋ ๋ชจ๋ธ์ ์ ๋ก๋ํ๊ฑฐ๋ ์ ์งํด์ฃผ๊ธฐ๋ฅผ ๋ฐ๋๋ค.
๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ https://bitbucket.org/osrf/gazebo_models ์์ ์ฐพ์ ์ ์๋ค.
$ hg clone https://bitbucket.org/osrf/gazebo_models
๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํน์ ํด๋์ ํ์ผ ๊ตฌ์กฐ์ ๋ฐ๋ผ์ผ ํ๋ค. ๋ชจ๋ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ root๋ ๊ฐ ๋ชจ๋ธ์ ๋ํ ํ๋์ ํด๋์ ๋ชจ๋ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๊ฐ์ง database.configํ์ผ์ ํฌํจํ๋ค. ๊ฐ ๋ชจ๋ธ์ ํด๋๋ ๋ชจ๋ธ์ ๊ด๋ จ๋ meta data๋ฅผ ํฌํจํ๋ model.config ํ์ผ์ ๊ฐ์ง๊ณ ์๋ค. ๋ชจ๋ธ์ ํด๋๋ ๋ชจ๋ธ์ ๋ํ SDF์ ๋ฌผ์ง, ๋ฉ์, ํ๋ฌ๊ทธ์ธ๋ค์ ํฌํจํ๋ค.
๊ตฌ์กฐ๋ ์๋์ ๊ฐ๋ค.(์ด๋ฒ ์์ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ model_1์ด๋ผ ๋ถ๋ฆฌ๋ ๋จ ํ๋์ ๋ชจ๋ธ๋ง ๊ฐ์ง๋ค)
Database
database.config : Meta data about the database. This is now populated automatically from CMakeLists.txt
model_1 : A directory for model_1
model.config : Meta-data about model_1
model.sdf : SDF description of the model
model.sdf.erb : Ruby embedded SDF model description
meshes : A directory for all COLLADA and STL files
materials : A directory which should only contain the textures and scripts subdirectories
textures : A directory for image files (jpg, png, etc).
scripts : A directory for OGRE material scripts
plugins: A directory for plugin source and header files
์ด ํด๋๋ ์ ํ์ ์ธ ํด๋์ด๋ฉฐ ๋ชจ๋ธ์ ๋ํ ๋ชจ๋ ํ๋ฌ๊ทธ์ธ๋ค์ ํฌํจํ๋ค.
์ด ํด๋๋ ์ ํ์ ์ธ ํด๋์ด๋ฉฐ ๋ชจ๋ธ์ ๋ํ COLLADA, STL ํ์ผ๋ค์ ํฌํจํ๋ค.
์ด ํด๋๋ ์ ํ์ ์ธ ํด๋์ด๋ฉฐ ๋ชจ๋ธ์ ๋ํ texture, image, OGRE script๋ค์ ํฌํจํ๋ค. Texture image๋ค์ ๋ฐ๋์ textures์ ํ์ ํด๋์ ์์ด์ผํ๋ฉฐ, OGRE scripts ํ์ผ๋ค์ scripts ํด๋์ ์์นํด์ผ ํ๋ค.
๋ชจ๋ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค root์ ์๋ database.config ํ์ผ์ด๋ค. ์ด ํ์ผ์ ๋ชจ๋ธ์ ๋ํ ๋ผ์ด์ผ์ค ์ ๋ณด, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ, ์ ์ํ ๋ชจ๋ธ์ ๋ฆฌ์คํธ ์ ๋ณด๋ฅผ ํฌํจํ๋ค.
Note: database.config ํ์ผ์ ์ค์ง online repositories๋ฅผ ์ํด ํ์ํ๋ค. ์ฌ์ฉ์์ local ์ปดํจํฐ์ ์ ์ฒด ๋ชจ๋ธ์ ํด๋๋ database.config ํ์ผ์ ํ์๋ก ํ์ง ์๋๋ค.
database.config์ ํฌ๋งท์ ์๋์ ๊ฐ๋ค.
<?xml version='1.0'?>
<database>
<name>name_of_this_database</name>
<license>Creative Commons Attribution 3.0 Unported</license>
<models
<uri>file://model_directory</uri>
</models>
</database>| Tag | Description |
|---|---|
| <name> | ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ, ์ด๊ฒ์ GUI์ ๋ค๋ฅธ ํด์ ์ํด ์ฌ์ฉ๋๋ค. |
| <license> | ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ์๋ ๋ชจ๋ธ์ ๋ผ์ด์ผ์ค, ์ฐ๋ฆฌ๋ Creative Commons Atrribution 3.0 Unported ๋ผ์ด์ผ์ค๋ฅผ ๊ฐ๋ ฅํ ์ถ์ฒ |
| <model> | ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ๋ชจ๋ ๋ชจ๋ธ๋ค์ URI๋ค์ ๋ฆฌ์คํธ |
| <uri> | ๋ชจ๋ธ์ ๋ํ URI, file://model_directory_name |
๊ฐ ๋ชจ๋ธ์ ๋ฐ๋์ ๋ชจ๋ธ์ ๋ํ ๋ฉํ ์ ๋ณด๋ฅผ ํฌํจํ๋ root ํด๋๋ด์ model.config ํ์ผ์ ํฌํจํด์ผ ํ๋ค. model.config์ ํฌ๋งท์ ์๋์ ๊ฐ๋ค.
<?xml version="1.0"?>
<model>
<name>My Model Name</name>
<version>1.0</version>
<sdf version='1.5'>model.sdf</sdf>
<author>
<name>My name</name>
<email>[email protected]</email>
</author>
<description>
A description of the model
</description>
</model>| Tag | Description |
|---|---|
| <name> | ๋ชจ๋ธ์ ์ด๋ฆ |
| <version> | ๋ชจ๋ธ์ ๋ฒ์ ์ ํ์๋ก ํ๋ค. Note:์ด๊ฒ์ ๋ชจ๋ธ์ด ์ฌ์ฉํ๋ sdf์ ๋ฒ์ ์ด ์๋๋ผ model.sdfํ์ผ ๋ด์ ์ ์ง๋๋ ์ ๋ณด์ด๋ค. |
| <sdf> | ์ด ๋ชจ๋ธ์ ๋ํ๋ด๋ SDF, URDFํ์ผ์ ์ด๋ฆ์ ํ์๋ก ํ๋ค. version atrribute๋ ํ์ผ์ด ์ฌ์ฉํ๋ SDF ๋ฒ์ ์ด ๋ฌด์์ธ์ง๋ฅผ ๋ํ๋ด๋ฉฐ URDF์ ๋ฒ์ ์ ํ์๋ก ํ์ง ์๋๋ค. ๋ค์ํ sdf ๋ฒ์ ์ ์ฌ์ฉํ๊ธฐ ์ํด ๋ค์ํ sdf ์์ ๋ํ ์ฌ์ฉ๋์ด ์ง ์ ์๋ค. |
| <author> | ๋ชจ๋ธ์ ์๊ฐ ์ด๋ฆ์ ํ์๋ก ํ๋ <name>๊ณผ ์๊ฐ์ ์ด๋ฉ์ผ์ ํ์๋ก ํ๋ <email>์ ํ์๋ก ํ๋ค. |
| <description> | ๋ชจ๋ธ์ด ๋ฌด์์ธ์ง(robot, table, cup...), ํ๋ฌ๊ทธ์ธ์ด ๋ฌด์์ ํ๋์ง(๋ชจ๋ธ์ ๊ธฐ๋ฅ)๋ฅผ ํฌํจํด์ผ ํ๋ค. |
| <depend> | ์ต์ ์ด๋ฉฐ ์ด ๋ชจ๋ธ์ ๋ชจ๋ ์์กด์ฑ๋ค์ด๋ค. ์ด๊ฒ์ ๋ณดํต ๋ค๋ฅธ ๋ชจ๋ธ๋ค์ด๋ค. |
| <model> | ์ต์ ์ด๋ฉฐ <uri>๋ ์ข ์๋ชจ๋ธ์ URI๋ฅผ ํ์๋ก ํ๋ฉฐ <version>์ ๋ชจ๋ธ์ ๋ฒ์ ์ ํ์๋ก ํ๋ค. |
๊ฐ ๋ชจ๋ธ์ ๋ชจ๋ธ์ Simulator Description Format์ ํฌํจํ๋ model.sdfํ์ผ์ ํ์๋ก ํ๋ค. SDF ๊ด๋ จ ์ ๋ณด๋ http://sdformat.org ์์ ์ฐพ์ ์ ์๋ค.
Standard SDF ํ์ผ์ ruby code๋ฅผ ํฌํจ ํ ์ ์๋ค. ์ด ์ต์ ์ Embedded ruby code templese๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ์ ์ผ๋ก sdf ํ์ผ์ ์์ฑํ๋๋ฐ ์ฌ์ฉ๋ ์ ์๋ค. ruby conversion์ ์๋์ผ๋ก ํํด์ ธ์ผ ํ๋ค.(erb model.sdf.erb > model.sdf) ๊ทธ๋ฆฌ๊ณ ์ต์ข ์ ์ผ๋ก model.sdf ํ์ผ์ model.sdf.efr์ ํจ๊ป ์ ๋ก๋ ๋์ด์ผ ๋๋ค.
sdf.efr ํ์ผ์ ์๋ค์ gazebo_models repository์์ ์ด์ฉํ ์ ์๊ณ , ์ฌ์ด ERB file์ flocking.world.erb์ด๋ฉฐ ์ด๋ ๋จ์ํ ๋ฃจํ๋ฅผ ์ฌ์ฉํ๋ค.