Tnote

[Udacity Robotics program] Gazebo World 본문

유다시티 스터디

[Udacity Robotics program] Gazebo World

jfl 2022. 4. 2. 15:07

# Introduction

로봇 시뮬레이터

가상 로봇에 센서를 추가, 로봇과 상호 작용, 관절 활성화 ... 훨씬 더 많은 작업 수행 가능

 

Gazebo 기능

-역학 시뮬레이션 : 물리 엔진으로, 로봇 역학 모델링 가능

-고급 3D 그래픽 : 조명, 그림자, 질감 높은 그래픽 환경 렌더링

-센서 : 로봇에 센서 추가, 데이터 생성, noise 시뮬레이션

-플러그인 : world, 로봇, 센서와 상호 작용하는 플러그인 작성

-모델 데이터베이스 : Gazebo 라이브러리에서 로봇 or 환경 다운로드, 엔진은 통해 로봇 구축

-원격 서버에서 실행 중인 Gazebo 상호 작용 가능 // Socket-based 통신

-브라우저를 통해 Gazebo 사용 가능

-명령어 도구로 시뮬레이션 환경 제어가능

 

-gazebo 다운

sudo apt-get update && sudo apt-get upgrade -y 
gazebo

 

#Components, 구성요소

@Server

$ gzserver : 서버만 독립적으로 시작

 

@gzclient

$ gzclient : gzclient 단독 실행

 

@Server + gzclient

$ gazebo : 위 2개 실행, server -> gzclient 순

 

@World 파일

실습했던 world를 .world 파일로 저장할 수 있고, world 파일 불러올 때

$ gazebo <저장했던 월드명>.world

 

-SDF 형식

<?xml version="1.0" ?>
<sdf version="1.5">
  <world name="default">
    <physics type="ode">
      ...
    </physics>

    <scene>
      ...
    </scene>

    <model name="box">
      ...
    </model>

    <model name="sphere">
      ...
    </model>

    <light name="spotlight">
      ...
    </light>

  </world>
</sdf>

 

@model 파일

world 파일에 사용할 model 파일 넣어 로드하는 법

<include>
  <uri>model://model_file_name</uri>
</include>

 위 문장 추가.

 

model들은 따로 보관해서 다양한 world에서 사용할 수 있게 정리

 

@환경 변수

Gazebo가 world, model 과 같은 파일을 찾고, gzerver, gzclient 간의 통신을 설정하기 위한 환경변수들

  ex) GAZEBO_MODEL_PATH : 모델 파일을 채우기 위해 찾는 디렉토리 목록

 

#GUI 사용법

@기본 이동

왼쪽 마우스 클릭 : 좌우 이동

Shift + 왼쪽 마우스 클릭 : 회전

마우스 스크롤 : 확대/축소

 

@toolbar (메인화면 상단)

선택 모드 : 기본

변환 모드 : 개체 위치 변경

커서 모드 : 축으로 개체 이동

회전 모드 : 개체 방향 변경

스케일 모드 : 개체 스케일 변경

 

도형 : 3D 도형 추가

조명, 스포트라이트, 다른 방향 광원 추가

평면도, 측면도, 정면도 ...  // 홈버튼은 원래 시점으로 돌아감.

 

@Side Panel (좌측)

world 탭

-모델을 클릭하면, 기본 속성 or 편집 가능

-물리 옵션 변경 가능

 

insert 탭

-모델 목록에서 새로운 개체 추가가능

 

@하단

재생 버튼, 시간 설정 ... 시뮬레이션과 관련된 것들이 있다.

 

@실습 - 6

 

 

 

'유다시티 스터디' 카테고리의 다른 글

Localization - 소개  (1) 2022.04.24
[Udacity Robotics program] ROS  (0) 2022.04.02