이타인클럽

Gazebo 3D World 생성

Gazebo를 이용하여 mobile 로봇이 돌아다닐 3D 환경 만들기
토픽 이타인클럽 > ROS > Mobile 로봇 Simulation

토픽 결과물: 이번 토픽을 따라하면 로봇이 돌아다닐 환경이 만들어 집니다.

이번 토픽은 Gazebo를 이용하여 Mobile Robot Simulation 환경을 꾸미는 부분입니다. Gazebo의 Building Editor를 이용하여 간단한 3D 환경 모델을 생성합니다.

설명 동영상

3D World 생성

먼저 아래와 같이 패키지 root 디렉터리 밑에 worlds라는 디렉터리를 만듭니다.

$ roscd mobile_robot_sim
$ mkdir worlds

그런 후 gazebo를 실행합니다. 만약 설치가 안되어 있다면 아래와 같이 설치 후 실행합니다. ROS Indigo에서 지원하는 공식 gazebo 버전은 2.x 입니다. ROS Jade에서는 5.x을 지원하지만 여기서는 Indigo를 사용하기로 합니다. 참고로 ROS Kinetic은 7.x이상을 지원합니다.

$ sudo apt-get install ros-indigo-gazebo-ros-pkgs
$ gazebo

gazebo가 처음 실행될 때 모델 정보를 다운로드 받는데 약간 시간이 걸립니다.

gazebo 실행화면 

gazebo가 실행되면, 메뉴중 Edit -> Building Editor를 클릭합니다. Building Editor에서 왼편의 Add Wall버튼을 클릭하여 윗쪽 평면에 그려주면 아래쪽에 3D 모델이 생성됩니다. 여기서는 대략 5m x 4m 크기로 1m 높이로 간략하게 만듭니다.

2D 모델과 3D 모델 

이때, 윗쪽 평면을 스크린 캡쳐해 두면, 나중에 mapping할 때 floorplan으로 사용할 수가 있습니다. 전체 화면을 캡쳐한 후 나중에 2D Model부분만 별도로 캡쳐할 수도 있고, 아니면 처음부터 2D model의 외곽선을 캡쳐하여 파일로 저장할 수도 있습니다. 이 이미지 파일을 사용하는 방법은 강좌 3에서 다루기로 합니다.

2D Floorplan

Model을 만들고 왼편의 Save As버튼을 눌러 만든 모델을 저장하고 (저장위치는 패키지 밑의 worlds, 이름은 sim_simple), 꼭 왼편 버튼 중 Done을 눌러서 Building Editor를 종료합니다. 그러면, 방금 생성한 모델이 gazebo 화면에 나타나게 됩니다.

3D 모델 World 

gazebo의 왼쪽편을 보면 'World' 패널이 보이고 그 아래 방금 생성한 모델과 'Lights', 'ground_plane'이 아래 그림과 같이 보입니다. 만약 보이지 않는다면, 왼쪽의 'Insert' 패널을 클릭하여 필요한 모델을 삽입하면 됩니다. 또한 http://gazebosim.org/models/ 부분을 클릭하면 보다 많은 모델들이 있고 삽입할 수 있습니다.

World 패널에 나타난 모델

끝으로, 생성한 gazebo world를 저정합니다. 메뉴의 File -> Save World As 를 클릭하고, 파일 이름을 지정하는데 여기서는 sim_simple.world라고 지정합니다. 일반적으로 gazebo world파일은 확장자를 .world로 하여 저장합니다.

저장을 마친 상태에서 일단 gazebo를 종료했다가 아래와 같이 world 파일과 같이 실행시키면 world가 나타납니다.

$ roscd mobile_robot_sim/worlds
$ gazebo sim_simple.world
 

댓글

댓글 본문