- 아래는 작성자가 각종 출처를 바탕으로 임의로 작성한 정보임. 정확한 정의가 아닐 수 있으니 우선은 참고용도로만 활용 권장함
- 작성자의 개인 공부를 위한 러프한 정보이기도 하며, 정보를 넓게 검토하기 위한 대략적인 정보들이 작성됨.
- 필요에 따라 업데이트 예정
- 최초/최종 작성일: 2024-06-09 / 2024-06-09
Gazebo 란
- 용어 자체는 'Pavilion' (텐트, 휴게실 등 야외 가설 건축물) 의 종류 중 하나인 'Gazebo' (팔각형 혹은 타원형의 지붕 등을 갖고, 공공장소에서 휴식장소, 베란다 등으로 쓰이는 건축물. 한국어로는 '정자' 라는 건축물에 대응되는 단어) 와 동일함
- 2002년 개발이 시작된 오픈소스 2D/3D 로보틱스 시뮬레이터
- ROS 에서 사용 가능한 대표적인 시뮬레이터 패키지
- 직접 사용하진 않았으나, 여러 사용 예 들을 보았을 때, 거의 필수 패키지로 보임
Gazebo 의 이력
- USC (university of southern california)
- 2002년, Gazebo Classic 시작
- Willow Garage (로보틱스 연구 회사)
- 2011년, Gazebo Classic 개발 지원
- OSRF(Open Source Robotics Foundation)
- 2012년 개발 이전됨
- -> 이후 fork (복제 및 분리) 를 뜨면서 2개 갈래로 분리 됨
- Gazebo Classic
- 2020년, 마지막 버전 배포 (Gazebo classic 11)
- 2025년, 지원 종료 예정
- Ignition -> Gazebo
- 2019년, 최초 배포 ...
- 2022년 Gazebo 로 명칭 변경
Gazebo Classic 의 특징
- ODE(Open dynamics Engine), OpenGL rendering, 센서 시뮬레이션과 엑츄에이터 제어 코드 지원을 포함함
- 다양한 센서가 환경을 관측, 측정하는 방식을 모사할 수 있음 (ex. 카메라로 본 화면, 키넥트 스타일의 센서로 읽은 화면 정보 등을 모사할 수 있음)
- 3D rendering 에서는 OGRE (Object-Oriented Graphics Rendering Engine; open source) 이용함
- standalone 으로 사용 가능함
Ignition (최신 Gazebo) 의 특징
- 다양한 오픈소스 라이브러리를 활용할 수 있도록 설계됨
- 기존 (classic)의 monolithic architecture 에서 collection of loosely coupled libraries 로 변화한 것임
Gazebo 의 사용 사례
- DRC (DARPA Robotics Challenge) (2012~2015)
- 시뮬레이션 환경 제공부터 활용 됨: https://bitbucket.org/osrf/drcsim
- SRC(NASA Space Robotics Challenge) (2016~2017)
- 위와 비슷하게 사용 됨: https://bitbucket.org/osrf/srcsim
- Toyota Prius challenge (2016~2017)
- Link to simulation environment at https://bitbucket.org/osrf/priuscup/src/default/[_permanent dead link_]
- Link to Prius Challenge at https://www.openrobotics.org/customer-stories/prius-challenge Archived2021-07-21 at the Wayback Machine
- ARIAC (Agile Robotics for Industrial Automation Competition) (2016~2023)
- ...Wikipedia 를 참조하면 매우 많은데, 요약하면 다양한 로봇 관련 챌린지나, 가상 환경을 기반으로 하는 시뮬레이션 등에서 적극적으로 활용되고 있다.
장점
- 오픈소스. 다양한 사용자가 기여하며 발전되는 SW
- 시뮬레이션을 하기 위해서 실제로 가장 범용적으로 쓰이는 패키지 중 하나로 보이며, Standalone (classic)으로 사용 가능하지만, ROS 의 Package로서 자리를 잡은 것으로 보임 -> 로보틱스 시뮬레이터로서 전망이 좋아보임
- 표준에 맞는 파일 정보들이 있다면 이것들을 바로 적용해서 테스트 가능함
- 특정 모델에 대한 3D 정보
- 센서에 대한 동작 정보
- 로봇의 컨트롤러
- SIL (Software-In-the-Loop) 와 같은 소프트웨어 개발 테스트 방법에 사용 가능함
- 실제 제품을 물리적으로 만들고 테스트 하지 않고, SW 수준에서 만들고 테스트 가능함
단점
- 실제 제품을 물리적으로 만들고 테스트 하지 않고, SW 수준에서 만들고 테스트 가능함
- 러프하게 찾아봐서 아직은 잘 모르겠음
Gazebo 는 대체 가능한가? (비교 가능한 툴)
- ROS 에서 쓰이는 시뮬레이션 툴로서는 필수에 가까워 보여서, 대체는 어려워보임
- 'stage' 라는 패키지가 2D stage simulator로 동작하나 대체 가능 여부는 불확실 (Gazebo 도 2D 지원함)
- 관련 문서에 Player/Stage 개념이 있음. 이 부분이 simulator 이해에 중요한지 검토 후 필요에 따라 문서 작성 예정
- 해당 문서에서 Gazebo 를 'Player'로 언급한 예도 있어서, 완전히 독립된 관계의 경쟁 서비스는 아닌듯 함
- 'player' 라는 로봇이나 그 외 객체가 동작할 수 있는 환경(world 등) 를 stage 라는 명칭으로 제공하는 것 같음
Gazebo 에 대한 의견
- 러프하게 보았지만, Gazebo classic 은 지원 종료 예정이므로,
- legacy 프로젝트에서는 Classic 을 쓰더라도 유지
- 신규 프로젝트에서는 최신 Gazebo를 사용함이 적합해보임
Gazebo 를 활용하고 싶다면?
- 필요한 사람
- 센서 개발자
- 로봇 개발자
- 로봇 외에도 HW 와 SW 를 융합적으로 활용하는 시스템을 이용하는 개발자
- 시뮬레이션 개발자
- 사용 방법
- 가장 범용적인 사용 방식인만큼, ROS 에 Gazebo를 붙여 사용함
- ROS 외 특수한 목적의 Simulation 환경이 있다면 문서 참고하여 설치
번외 - 앞으로 조사해봐야 할 것
*개념이 명확하지 않거나, 분야를 이해하기 위해 알아두면 좋을 것 같은 것들을 임의로 작성함
- SDF 란?
- Player/Stage 개념이란?
참고 레퍼런스
- Wikipedia. Gazebo : https://en.wikipedia.org/wiki/Gazebo
- Wikipedia. Gazebo simulator : https://en.wikipedia.org/wiki/Gazebo_simulator
- ROS wiki 의 'gazebo' 패키지 문서: http://wiki.ros.org/gazebo_ros_pkgs
- Gazebo sim (Classic) 의 튜토리얼 페이지: https://classic.gazebosim.org/tutorials?cat=connect_ros
- Gazebo sim (Ignition) 의 튜토리얼 페이지: https://gazebosim.org/docs/latest/ros_installation
- ROS, Gazebo, SIL 에 대해 정리된 블로그: https://medium.com/newworld-kim/ros로-sil-and-simulation-4d4bece0431d
- ROS 와 gazebo 의 적용 예시를 보여주는 블로그: https://steemit.com/kr-dev/@jacobyu/ros-gazebo-1
'Theory, Tech > SLAM' 카테고리의 다른 글
ROS : simulation 수행 기록 페이지 링크 (0) | 2024.08.10 |
---|---|
SLAM 기술과 관련된 용어 (0) | 2024.03.31 |