GAZEBO ROS 시뮬레이터
저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo
Gazebo가 무엇인가요?
실제 하드웨어에 대한 테스트는 종종 비용과 시간이 많이 소요될 수 있으므로 좋은 시뮬레이션 환경을 갖추는 것은 로봇 공학에서 중요한 도구입니다. 일부 로봇의 동작은 위험할 수 있으며 코드 배포(특히 초기 개발 단계)에는 위험이 수반됩니다. 실제 하드웨어로 작업하면 핵심 알고리즘 개발을 방해하는 문제가 발생할 수도 있습니다. 이러한 이유로 정확한 시뮬레이션 환경을 구축하는 데 소요되는 시간은 일반적으로 그만한 가치가 있습니다.
Gazebo는 무료 오픈 소스 로봇 시뮬레이션 환경입니다. 이 프로젝트는 ROS를 관리하는 동일한 그룹인 Open Robotics에서 운영하지만 프로젝트는 별도로 관리되며 Gazebo는 ROS의 "일부"가 아닙니다. 이러한 구분은 때때로 약간 혼란스러울 수 있으며 Gazebo와 ROS가 매우 잘 통합되지만 접근 방식이 조금 다릅니다.
Gazebo는 최근(작성 당시) 재작성되어 Ignition Gazebo(때때로 Ignition 이라고도 함 )라는 새로운 시뮬레이터로 대체되었습니다. 이는 ROS 1에서 ROS 2로의 변경과 유사하지만 ROS 2는 여전히 이전 Gazebo(버전 11)와 호환됩니다. 불행히도 주요 플러그인은 아직 Ignition에 대한 준비가 되어 있지 않으므로 이 튜토리얼은 당분간 Gazebo를 계속 사용할 것입니다.
Gazebo를 사용하면 가상 "세계"를 만들고 로봇의 시뮬레이션 버전을 로드할 수 있습니다. 시뮬레이션된 센서는 환경을 감지하고 실제 센서와 동일한 ROS 주제에 데이터를 게시하여 알고리즘을 쉽게 테스트할 수 있습니다. 그런 다음 마찰과 같은 것을 고려하여 로봇의 시뮬레이션된 액추에이터에 힘을 가할 수 있습니다.

Gazebo 설치 및 개요
ROS가 이미 설치된 상태에서 ROS와 함께 작동하도록 올바른 종속성 및 플러그인으로 Gazebo를 설치하는 가장 쉬운 방법은 다음 명령을 사용하는 것입니다.
sudo apt install ros-humble-gazebo-ros-pkgs
이제 Gazebo를 설치했으므로 ROS 없이 Gazebo의 몇 가지 측면을 탐색하는 것으로 시작하겠습니다. 명령줄에서 gazebo
실행하여 시작할 수 있으며 세계 파일 의 경로를 첫 번째 인수로 제공할 수도 있습니다. 아래 명령을 실행하여 "seesaw" 세계(Gazebo를 설치할 때 번들로 제공됨)와 함께 Gazebo를 시작합니다.
gazebo /usr/share/gazebo-11/worlds/seesaw.world
Gazebo는 백그라운드에서 일부 항목을 다운로드하려는 경우 시작하는 데 시간이 걸릴 수 있습니다(특히 처음).
Gazebo가 시작되면 다음 화면이 표시됩니다. 잠시 시간을 내어 인터페이스에 익숙해지십시오(3D 보기의 경우 이동하려면 왼쪽 클릭, 회전하려면 가운데 클릭, 확대/축소하려면 오른쪽 클릭 또는 스크롤).

Gazebo 내부의 시뮬레이션 환경을 세계 라고 하며 이 세계는 여러 모델 로 구성됩니다 . 왼쪽 상단에 있는 "모델" 드롭다운을 열면 시소 세계에 지면, 받침점, 판자 및 두 개의 입방체("태양"이라는 하나의 빛도 있음)의 5가지 모델이 포함되어 있음을 볼 수 있습니다 . ). 이러한 모델이 물리 엔진에서 어떻게 상호 작용하는지 살펴보겠습니다.
"Translation Mode"(교차 화살표 쌍, 위쪽 도구 모음)를 선택하면 모델을 왼쪽 클릭하여 축 마커를 표시한 다음 축을 클릭하고 드래그하여 슬라이드할 수 있습니다.

놀면서 시소가 무엇을 할 수 있는지 알아보세요. "Reset World"(Ctrl-R 또는 Edit→Reset World)는 수행한 작업을 지우는 데 유용합니다(그러나 특정 변경 사항은 재설정 후에도 지속되므로 Gazebo를 다시 시작해야 합니다).
시도해 볼 사항:
시소의 균형을 유지하면서 블록을 이동
시뮬레이션 일시 중지(하단 도구 모음), 블록을 공중으로 이동한 다음 재생
블록 회전(회전 모드, 상단 도구 모음)
힘 적용(선택 모드에서 블록을 마우스 오른쪽 버튼으로 클릭, "힘/토크 적용")
블록 중 하나에 Z에 -2,000,000N을 적용하면 다소 만족스러운 투석기가 생성됩니다!

Last updated