Skip to content
david20120720 edited this page Feb 4, 2018 · 10 revisions

1. Overview

Open the Building Editor

  1. 가제보를 설치합니다.
  2. 가제포를 시작합니다.
$ gazebo
  1. edit 메뉴=>B uilding Editor, or hit Ctrl+B 를 클릭합니다.

Graphical user interface

이 에디터는 아래의 3가지 지역으로 구성이 되어있습니다.

  1. Palette : 당신은 당신의 빌딩에서 특성 및 재질을 선택할수있습니다.
  2. 2d view : 당신은 바닥,벽,윈도우,문,층계를 선택할수 있습니다.
  3. 3d view : 당신은 당신빌딩의 미리보기 모습을 볼수있습니다. 이것은 또한 당신은 색상과 표면을 지정할수 있습니다.

Import a floor plan

당신은 장면을 생성할수 있습니다. 스크레치 또는 존재하는 다른 이미지로 부터. 이 이미지는 예를 들면 빌딩의 2d laser scan 이 될수도 있습니다.

예제바닥을 얻시고 , 아래 같이 진행하세요~

  1. import버튼 클릭, import image 화면이 나납니다.
  2. step 1 : 당신이 저장해놓은 이미지를 선택하세요
  3. step 2 : 담장을 확실히 하기위해, 당은 올바른 스케일로되어진 이미지를 추적을 해야한다 당신은 이미지의 해상도를 셋팅 해야합니다. 우리가 만일 해상도를 안다면, 우리는 직접 타이핑 할수가 있습니다다. 이번 예시에서 우리는 결과를 모릅니다.그러나 우리는 실제세계거리(이미지상의 2지점간의 거리)압니다 그리서 우리는 해상도를 계산하는데 이용할수 있습니다. a. 벽의 한쪽끝을 클릭합니다. 당신은 마우스를 움직일때, 오렌지 라인은 아래에 보이는것처럼 나타납니다. b. 라인은 완료하기 위해 다른쪽 벽 끝을 클릭합니다. c. 이제 다이알로상의 7.5m를 타이핑 합니다. 해상도는 자동으로 계산됩니다 d. 다신은 그때 클릭합니다 ok

4. 이미지는 2d-view에 정상적이 스케일로 나타납니다.

우리가 좀더 많은 레벨을 만들면, 당신은 같은 프로세스 반복적으로 import 할수 있습니다.

Add features

Add walls

아래처럼 바닥위이 모든 벽을 추적하라 마음속으로 생각하라, 이후에 윈도우,문들을 설치해야 한다는것을 항상 생각하라 벽이 완벽치 않아도 걱정치 마라,이후 수정이 가능하다.

  1. 팔렛에서 wall을 클릭합니다.
  2. 2d-view에서, 벽이 시작되는곳을 클릭한다. 당신이 마우스를 움직이고, 벽의 길이는 디스플레이 된다.
  3. 현재 벽의 끝점을 클리하고, 벽을 시작한다.
  4. 더블클릭하라, 담을 끝내기 위해서, 새로운것을 시작함이 없이한다 tip : 당신은 오른쪽 클릭을 하거나 esc를 누르세요 ( 현재 벽 세그먼트를 그리는것을 취소하기 위해) tip : 담은 15도 0.25m씩 증가합니다

Add windows and doors

현재, 윈도우와 도어는 간단한 홀들 입니다. 윈도우를 시작합니다에서 윈도우,도어,등등

  1. 파렛에서 클릭 온 window door를 인서트 합니다.
  2. 당신이2d-view에서 마우스를 움직일때 , 인서트된 특성은 그것와 함께 움직입니다, 3d-view의 그것의 카운터 파트와 같이 연동되어 움직입니다. tip : 윈도우와 문은 당신이 그들위로 맴돌때 자동적으로 벽에 스냅이 됩니다. 벽의 끝점의 거리는 당신이 움직일때 디스플레이 됩니다.

가제보는 모델들을 프로그램이나 GUI를 통해 시뮬레이션에 로드 할 수 있다. 모델은 다운로드 하거나 사용자가 만들어서 사용자 컴퓨터에 저장 시킬 수 있다. 이번 튜토리얼은 가제보 모델의 폴더 구조와 모델 폴더 내에 필요한 파일에 대해 설명한다.

가제보의 모델들은 동역학, 기구학, 시각적 요소들의 물리적인 정보를 정의한다. 게다가 모델은 하나 혹은 그 이상의 플러그인들을 포함한다. 이런 플러그인들은 모델의 행동에 영향을 준다. 모델은 단순한 형태에서 복잡한 로봇까지 어떤 것들이나 표현 할 수 있다. 심지어 지면까지 모델이다.

가제보는 시뮬레이션 내에 사용할 수 있는 모델을 저장하거나 유지하기 위해 데이터베이스에 의존한다. 모델 데이터베이스는 공동자원이다. 따라서 사용자가 만든 모델을 업로드하거나 유지해주기를 바란다.

2. The Model Database Repository

모델의 데이터베이스는 https://bitbucket.org/osrf/gazebo_models 에서 찾을 수 있다.

$ hg clone https://bitbucket.org/osrf/gazebo_models

3. Model Database Structure

모델의 데이터베이스는 특정 폴더와 파일 구조에 따라야 한다. 모델 데이터베이스의 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

4. Plugins Directory

이 폴더는 선택적인 폴더이며 모델에 대한 모든 플러그인들을 포함한다.

5. Meshes Directory

이 폴더는 선택적인 폴더이며 모델에 대한 COLLADA, STL 파일들을 포함한다.

6. Material Directory

이 폴더는 선택적인 폴더이며 모델에 대한 texture, image, OGRE script들을 포함한다. Texture image들은 반드시 textures의 하위 폴더에 있어야하며, OGRE scripts 파일들은 scripts 폴더에 위치해야 한다.

7. Database Config

모델 데이터베이스 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

8. Model Config

각 모델은 반드시 모델의 대한 메타 정보를 포함하는 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>name@email.address</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>은 모델의 버전을 필요로 한다.

9. Model SDF

각 모델은 모델의 Simulator Description Format을 포함하는 model.sdf파일을 필요로 한다. SDF 관련 정보는 http://sdformat.org 에서 찾을 수 있다.

10. Model SDF.ERB

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이며 이는 단순한 루프를 사용한다.

Table of Contents




Clone this wiki locally