Booil Jung

Gazebo Fortress와 Gazebo Harmonic 비교

Gazebo 시뮬레이터는 로보틱스 연구 및 개발에 있어 필수적인 도구로 자리 잡았다. 그중에서도 장기 지원(Long-Term Support, LTS) 릴리즈는 안정성과 신뢰성이 중요한 프로젝트의 기반이 된다. Gazebo Fortress와 Gazebo Harmonic은 이러한 LTS 릴리즈 중에서도 중요한 분기점을 대표하는 두 버전이다. 이 보고서는 두 버전의 릴리즈 배경, 핵심 변화, 그리고 기술적 차이점을 심층적으로 분석하여 사용자가 자신의 프로젝트에 가장 적합한 버전을 선택할 수 있도록 돕는 것을 목표로 한다.

Gazebo Fortress는 2021년 9월 말에서 10월 초에 걸쳐 릴리즈된 6번째 메이저 릴리즈이자, Citadel에 이은 두 번째 LTS 버전이다.1 Fortress는 2026년 9월까지 공식 지원이 예정되어 있어, 출시 당시부터 장기 프로젝트를 위한 안정적인 선택지로 주목받았다.3

반면, Gazebo Harmonic은 그로부터 2년 뒤인 2023년 9월 말에서 10월 초에 릴리즈된 8번째 메이저 릴리즈다.6 Harmonic 역시 LTS 버전으로, 2028년 9월까지 지원된다.4

이 두 버전은 모두 안정적인 개발 환경을 제공하는 LTS 릴리즈라는 공통점을 가지지만, Harmonic은 2년 더 최신 기술 스택을 반영하고 있으며 지원 기간 또한 2년 더 길다. 이는 장기적인 프로젝트 관점에서 기술 부채(technical debt)를 줄이고 최신 기술 동향을 따라가는 데 있어 Harmonic이 갖는 명백한 이점이다.

두 버전을 구분하는 가장 표면적이면서도 중요한 변화는 바로 ‘이름’이다. 2022년 4월, 개발사인 Open Robotics는 기존에 사용하던 “Ignition”이라는 브랜드 이름에 상표권 문제가 발생함에 따라, 커뮤니티에 친숙한 “Gazebo”라는 이름으로 회귀한다고 발표했다.12

이 결정은 단순한 명칭 변경을 넘어, 라이브러리, 실행 파일, 환경 변수 등 소프트웨어 전반에 영향을 미쳤다.13

이러한 변화로 인해, Gazebo 11 버전까지를 “Gazebo Classic”으로, Ignition으로 시작된 새로운 아키텍처 기반의 버전을 “Modern Gazebo”로 구분하여 부르게 되었다. Fortress와 Harmonic 모두 Modern Gazebo에 속한다.12

아래 표는 Fortress와 Harmonic의 주요 차이점을 요약하여 보고서의 전체적인 내용을 한눈에 파악할 수 있도록 돕는다.

항목 Gazebo Fortress Gazebo Harmonic 주요 차이점 및 시사점
릴리즈 시점 2021년 9월 3 2023년 10월 7 Harmonic은 2년 더 최신 기술을 반영한다.
지원 종료(EOL) 2026년 9월 4 2028년 9월 4 장기 프로젝트의 경우 Harmonic이 더 유리하다.
브랜딩/명명법 Ignition, ign- 14 Gazebo, gz- 13 마이그레이션 시 코드 전반의 이름 변경이 필요하다.
핵심 아키텍처 모듈형 라이브러리, ECS, C++ 플러그인 중심 14 Fortress 아키텍처 계승 및 확장, Python 플러그인 지원 7 Harmonic은 개발 언어의 장벽을 낮춰 접근성을 크게 향상시켰다.
주요 신기능 PBR 렌더링 기반 마련, DART 물리 엔진 22 고급 렌더링(GI, Lens Flare), 고급 물리(자동 관성 계산, 유체 역학), 신규 센서(DVL, Airspeed), SDF-MJCF 변환기 7 시뮬레이션의 현실성과 활용 범위를 비약적으로 확장했다.
성능 안정적이나 기능 정체 25 성능 최적화를 위한 다양한 도구 제공 (Bullet-Featherstone, Levels 등) 26 초기 부하가 클 수 있으나, 최적화 잠재력은 Harmonic이 더 높다.
공식 ROS 2 페어링 ROS 2 Humble 28 ROS 2 Jazzy 28 ROS 2 버전에 따라 권장되는 Gazebo 버전이 명확히 구분된다.
마이그레이션 - Fortress에서 Harmonic으로의 마이그레이션은 주로 이름 변경 작업 13 API의 파괴적 변경이 적어 마이그레이션 난이도가 비교적 낮다.

이 보고서의 상세 분석을 통해 도출될 결론을 미리 요약하면 다음과 같다.

Gazebo Fortress와 Harmonic의 차이를 이해하기 위해서는 먼저 두 버전이 공유하는 견고한 아키텍처 기반을 파악하는 것이 중요하다. 두 버전의 관계는 ‘단절’이 아닌 ‘진화’에 가깝다. Fortress가 마련한 혁신적인 아키텍처의 토대 위에서 Harmonic이 어떻게 더 성숙하고 강력하게 발전했는지를 살펴보는 것은 두 버전의 본질적인 차이를 이해하는 핵심이다.

Fortress와 Harmonic이 속한 ‘Modern Gazebo’는 이전의 ‘Gazebo Classic’과는 근본적으로 다른 아키텍처 철학을 공유한다. Gazebo Classic이 상대적으로 하나의 큰 덩어리로 구성된 모놀리식(monolithic) 구조에 가까웠다면 29, Modern Gazebo는 물리, 렌더링, 센서, GUI, 통신 등 핵심 기능들이 각각 독립적인 라이브러리로 분리된 모듈형 구조를 채택했다.21

이러한 모듈형 구조의 중심에는 다음과 같은 두 가지 핵심 설계가 자리 잡고 있다.

  1. 클라이언트-서버 구조: 시뮬레이션의 물리 계산과 로직을 처리하는 백엔드 서버(gzserver)와, 이를 시각화하고 사용자와 상호작용하는 프론트엔드 GUI 클라이언트(gzclient)가 명확히 분리되어 있다.21 이 구조 덕분에 GUI 없이 서버만 독립적으로 실행하는 헤드리스(headless) 시뮬레이션이 용이하며, 분산 시뮬레이션의 기반이 된다.
  2. Entity-Component-System (ECS): 백엔드 서버는 시뮬레이션 세계의 모든 요소를 ‘Entity’(개체), ‘Component’(데이터/속성), ‘System’(로직/행동)으로 나누어 관리하는 ECS 아키텍처를 기반으로 동작한다.21 예를 들어, ‘로봇 팔’이라는 Entity는 ‘관절 각도’라는 Component를 가지고 있고, ‘물리 엔진’이라는 System이 이 Component 값을 읽어 로봇 팔을 움직인다. 이 설계는 데이터와 로직을 분리하여 극도의 유연성과 확장성을 제공하며, 플러그인 기반 개발의 핵심 철학이다.

Fortress와 Harmonic 모두 이 동일한 아키텍처 패러다임을 공유한다. 따라서 Fortress 사용자는 이미 Harmonic의 핵심 구조에 익숙하며, 이는 Gazebo Classic에서 Modern Gazebo로 넘어올 때 겪었던 급진적인 변화와는 달리 마이그레이션의 기술적, 심리적 장벽을 크게 낮추는 요인으로 작용한다. Harmonic은 Fortress가 제시한 아키텍처의 완성형에 가깝다고 볼 수 있다.

앞서 언급한 리브랜딩으로 인해, Fortress에서 ign- 접두사를 사용하던 모든 라이브러리는 Harmonic에서 gz- 접두사로 변경되었다.13 이는 마이그레이션 시 개발자가 직접 수정해야 하는 CMakeLists.txt나 소스 코드의 find_package, include 구문과 직접적으로 관련되므로, 아래 표를 통해 주요 라이브러리의 명칭 변경을 숙지하는 것이 중요하다. Gazebo의 각 릴리즈는 특정 버전의 라이브러리 집합으로 구성되며, 각 라이브러리는 시맨틱 버저닝(semantic versioning)을 따른다.4

Fortress 라이브러리 (ign-) Harmonic 라이브러리 (gz-) 주 역할
ign-cmake gz-cmake CMake 빌드 시스템 지원 유틸리티
ign-common gz-common 파일 시스템, 로깅 등 공통 유틸리티
ign-fuel-tools gz-fuel-tools 모델 다운로드를 위한 Fuel 서버 통신
ign-gazebo gz-sim 시뮬레이션 서버 및 시스템 플러그인
ign-gui gz-gui GUI 위젯 및 플러그인 기반
ign-launch gz-launch 시뮬레이션 실행 및 설정 관리
ign-math gz-math 벡터, 행렬 등 수학 관련 자료구조 및 함수
ign-msgs gz-msgs Protobuf 기반 메시지 정의
ign-physics gz-physics 물리 엔진 추상화 계층
ign-rendering gz-rendering 렌더링 엔진 추상화 계층
ign-sensors gz-sensors 센서 모델 및 노이즈 모델
ign-transport gz-transport 비동기 메시지 통신 프레임워크
sdformat sdformat 시뮬레이션 기술 포맷 (이름 변경 없음)

두 버전 모두 gz-physics(Fortress에서는 ign-physics)라는 추상화 계층을 통해 다양한 물리 엔진을 플러그인 형태로 지원한다.33 이 덕분에 사용자는 SDF 파일이나 커맨드 라인 인자를 통해 시뮬레이션에 사용할 물리 엔진을 유연하게 선택할 수 있다.36

Fortress는 DART(Dynamic Animation and Robotics Toolkit)를 기본 물리 엔진으로 채택했다.37 DART는 정확성이 높은 것으로 알려져 있지만, 특정 시나리오(예: 다수의 접촉점)에서는 성능 이슈가 보고되기도 한다. 물론 Bullet이나 TPE(Trivial Physics Engine) 같은 다른 엔진도 플러그인으로 사용 가능했다.38

Harmonic 역시 DART를 기본으로 유지하면서, bullet-featherstone 플러그인에 대한 지원을 공식적으로 추가하고 강화했다.26 Bullet은 게임 물리 엔진으로 널리 알려져 속도에 강점이 있으며, Featherstone 알고리즘은 다관절 로봇과 같은 연쇄적인 시스템의 동역학 계산에 매우 효율적이다. 이는 시뮬레이션의 특성에 따라 ‘정확성’ 중심의 DART와 ‘속도 및 다관절 효율성’ 중심의 Bullet-Featherstone 중에서 사용자가 최적의 도구를 선택할 수 있게 되었음을 의미한다. 이는 단순한 엔진 추가를 넘어, 시뮬레이션의 목적에 맞게 성능과 정확도를 트레이드오프할 수 있는 고급 옵션을 제공하는 중요한 구조적 진화다.

물리 엔진과 마찬가지로, 두 버전 모두 gz-rendering(Fortress에서는 ign-rendering) 라이브러리를 통해 렌더링 엔진을 추상화한다. Ogre 1.x와 Ogre 2.x(Ogre-Next)를 모두 플러그인 형태로 지원하지만, 실질적인 주력 엔진은 Ogre 2.x다.39 Ogre 1.x는 레거시 지원의 성격이 강하며, Ogre 2.x는 PBR(Physically Based Rendering)과 같은 현대적인 그래픽 기술을 지원하여 훨씬 사실적인 렌더링 결과를 제공한다.22 다수의 객체가 존재하는 복잡한 환경에서는 Ogre 2.x가 성능 면에서도 우위를 보인다.25

Fortress는 Ogre 2.x를 도입하여 현대적 렌더링의 ‘기반’을 마련했다. 하지만 이러한 고급 기능을 사용자가 직접 활용하기는 다소 복잡했다. Harmonic은 여기서 한 걸음 더 나아갔다. Global Illumination, Lens Flare, Projector 등 Ogre 2.x의 강력한 기능들을 사용하기 쉬운 시스템 플러그인 형태로 제공함으로써, 렌더링 파이프라인의 잠재력을 일반 사용자도 쉽게 활용할 수 있도록 ‘제품화’했다.7

결론적으로, Fortress가 Ogre 2.x라는 강력한 ‘엔진’을 탑재했다면, Harmonic은 그 엔진으로 달릴 수 있는 ‘슈퍼카’를 만들어냈다고 비유할 수 있다. 이는 시뮬레이션의 시각적 충실도를 한 차원 높은 수준으로 끌어올리는 중요한 발전이다.

Gazebo Harmonic은 Fortress에 비해 단순히 몇 가지 기능이 추가된 것을 넘어, 개발자의 생산성, 시뮬레이션의 현실성, 그리고 생태계 확장성 측면에서 결정적인 진화를 이루었다. 이 섹션에서는 Harmonic의 핵심 신기능들을 심층적으로 분석하고, 이러한 변화가 로보틱스 개발 워크플로우에 미치는 영향을 탐구한다.

Harmonic에서 가장 주목할 만한 변화는 단연 Python 플러그인 지원이다.7 Fortress에서는 모든 시스템 플러그인을 C++로 작성하고 컴파일해야만 했다.45 이는 C++에 익숙하지 않은 연구자나 개발자에게 높은 진입 장벽으로 작용했다.

Harmonic은 gz-msgs, gz-transport, gz-sim 시스템에 대한 Python 바인딩을 추가함으로써 이 문제를 해결했다.7 이제 개발자들은 C++의 복잡한 빌드 과정 없이 순수 Python 코드로 시뮬레이션의 로직을 제어하는 시스템 플러그인을 작성할 수 있다. 예를 들어,

gz-transport의 Python API를 사용하면 몇 줄의 코드로 간단하게 통신 노드를 생성하고 토픽을 발행(publish)하거나 구독(subscribe)하는 것이 가능하다.46

이 변화는 단순한 편의성 개선을 넘어선 전략적 의미를 갖는다. 전통적인 로보틱스 개발은 C++ 중심이었지만, 최근 인공지능(AI) 및 머신러닝(ML) 연구는 Python이 압도적인 표준 언어로 자리 잡았다. 강화학습, 컴퓨터 비전, 데이터 분석 등 다양한 분야의 연구자들이 시뮬레이션을 활용하고자 할 때, C++ 학습은 큰 부담이었다. Harmonic의 Python 지원은 이 장벽을 허물어, AI/ML 커뮤니티가 Gazebo 생태계로 유입되는 것을 가속화하고, Python 기반의 빠른 프로토타이핑과 실험을 가능하게 한다. 이는 Gazebo의 사용자 기반을 확장하고, 최첨단 AI 연구에서 Gazebo의 채택을 촉진하려는 중요한 전략적 결정으로 해석할 수 있다.

Harmonic은 시뮬레이션의 물리적 현실성을 높이기 위한 다양한 기능을 추가했다.

이러한 신규 물리 및 센서 기능들은 Gazebo가 범용 시뮬레이터를 넘어, 항공 및 해양과 같은 특정 전문 분야까지 포괄하려는 확장 의지를 명확히 보여준다. 이는 해당 분야의 개발자들에게 Fortress에서 Harmonic으로의 업그레이드를 필수적인 선택으로 만드는 요인이다.

Harmonic은 물리적 정확성을 넘어 시각적 현실감을 극대화하는 데에도 큰 발전을 이루었다. 이는 특히 시뮬레이션 환경에서 생성된 이미지 데이터를 학습에 사용하는 Sim-to-Real 연구 분야에서 매우 중요하다.

이러한 렌더링 기능의 강화는 ‘물리적으로 정확한 시뮬레이션’에서 ‘시각적으로 신뢰할 수 있는 시뮬레이션’으로의 패러다임 전환을 의미한다. Fortress도 물리적으로는 정확했지만, Harmonic은 비전 기반 자율주행, 객체 인식, 강화학습 등을 위한 고품질 합성 데이터(synthetic data) 생성 플랫폼으로서의 가치를 비약적으로 높였다.

Harmonic 시대의 또 다른 중요한 성과는 DeepMind와의 협력을 통해 개발된 sdformat-mjcf 라이브러리의 릴리즈다.23 이 라이브러리는 Gazebo의 표준 포맷인 SDF(Simulation Description Format)와, 강화학습 연구 커뮤니티에서 널리 사용되는 MuJoCo 시뮬레이터의 MJCF(MuJoCo XML Format) 간의 상호 변환을 지원한다.23

이 기능은 Fortress에는 없던 것으로, 두 개의 거대한 시뮬레이션 생태계 사이에 다리를 놓는 역할을 한다. Gazebo 사용자는 방대한 MuJoCo의 로봇 모델 자산을 손쉽게 가져와 Gazebo의 풍부한 센서와 렌더링 환경에서 테스트할 수 있게 된다. 반대로 MuJoCo 사용자는 자신의 모델을 Gazebo 환경으로 가져와 시뮬레이션할 수 있다.

이는 단순한 파일 변환 유틸리티를 넘어, Gazebo가 고립된 생태계에 머무르지 않고 더 넓은 로보틱스 및 AI 연구 커뮤니티의 표준 도구로 자리매김하려는 전략적 방향성을 보여준다. Harmonic 사용자는 이 상호운용성을 통해 더 큰 규모의 개방형 생태계가 제공하는 이점을 누릴 수 있다.

시뮬레이션의 성능, 특히 실제 시간 대비 시뮬레이션 시간의 비율을 나타내는 RTF(Real-Time Factor)는 사용자가 가장 민감하게 체감하는 부분이다. Fortress와 Harmonic 모두 복잡한 환경에서는 성능 저하 문제가 발생할 수 있지만 25, Harmonic은 성능을 관리하고 최적화할 수 있는 더 다양한 도구를 제공한다는 점에서 차이가 있다.

두 버전 모두에서 RTF에 영향을 미치는 주요 요인은 다음과 같다.

Harmonic은 Fortress에 비해 성능 문제를 해결하기 위한 구체적인 기능들을 추가했다.

이러한 개선점들은 Harmonic이 단순히 Fortress보다 ‘빠르다’ 또는 ‘느리다’로 평가될 수 없음을 시사한다. 오히려 Harmonic은 사용자에게 성능 문제를 진단하고, 시뮬레이션의 특성에 맞게 최적화할 수 있는 더 많은 도구와 선택지를 제공한다. 초기 설정이 더 복잡할 수 있지만, 최적화의 잠재력은 Fortress보다 크다고 할 수 있다.

커뮤니티에서는 특정 환경에서 발생하는 공통적인 성능 문제와 그 해결책이 공유되고 있다.

로보틱스 개발에서 Gazebo는 ROS(Robot Operating System)와 함께 사용되는 경우가 대부분이다. 따라서 ROS 2와의 호환성 및 연동 방식은 Gazebo 버전을 선택하는 데 있어 매우 중요한 기준이다.

각 ROS 2 배포판은 특정 버전의 Gazebo와 가장 안정적으로 연동되도록 공식 지원 패키지를 제공한다.

아래 표는 ROS 2 버전별 권장 Gazebo 구성 및 연동 방식을 정리한 것이다.

ROS 2 배포판 권장 Gazebo 버전 연동 패키지 설치 방법 고려사항
Humble (LTS) Fortress (LTS) ros-humble-ros-gz 공식 apt 패키지 가장 안정적이고 검증된 조합. 별도의 설정 없이 바로 사용 가능.
  Harmonic (LTS) ros-humble-ros-gzharmonic 비공식 apt 패키지 또는 소스 빌드 Humble 환경에서 Harmonic의 최신 기능 사용 가능. 패키지 충돌 가능성 유의.
Iron Fortress (LTS) ros-iron-ros-gz 공식 apt 패키지 공식 지원되나, Iron과 Fortress 모두 최신 LTS가 아님.
Jazzy (LTS) Harmonic (LTS) ros-jazzy-ros-gz 공식 apt 패키지 신규 프로젝트에 가장 권장되는 표준 조합.
Rolling Ionic ros-rolling-ros-gz 공식 apt 패키지 최신 기능을 테스트하기 위한 개발자용 조합. 안정성은 보장되지 않음.

ros_gz_bridge는 ROS 2의 메시지와 Gazebo의 Transport 메시지 간의 통신을 중계하는 핵심 패키지다.15 사용자는 커맨드라인에서

parameter_bridge를 실행하거나, YAML 설정 파일을 통해 여러 토픽에 대한 브릿지를 한 번에 설정할 수 있다.15

Fortress와 Harmonic 간에는 브릿지 설정에 있어 명칭 변경으로 인한 차이가 존재한다.

Gazebo Fortress 기반의 프로젝트를 Harmonic으로 이전하는 작업은 ‘Ignition’에서 ‘Gazebo’로의 리브랜딩에 따른 이름 변경이 대부분을 차지한다. API의 구조적인 변경보다는 명칭 변경에 가깝기 때문에, 작업량은 많을 수 있으나 로직을 재설계해야 하는 부담은 거의 없다. 이는 Fortress 사용자가 Harmonic으로의 전환을 긍정적으로 고려하게 만드는 중요한 요인이다.

마이그레이션의 핵심 원칙은 프로젝트 내의 모든 Ignition 또는 ign 관련 문자열을 해당하는 Gazebo 또는 gz로 변경하는 것이다.13

이러한 변경 작업은 sed나 grep과 같은 커맨드라인 도구나, IDE의 전역 찾기/바꾸기 기능을 활용하면 효율적으로 수행할 수 있다.

앞서 강조했듯이, Fortress에서 Harmonic으로의 마이그레이션은 API의 ‘파괴적 변경’이 아닌 ‘이름 변경’에 가깝다. 함수의 시그니처나 클래스의 핵심 로직은 대부분 유지된 채, 리브랜딩으로 인한 이름만 바뀌었다. 따라서 마이그레이션 작업은 비교적 위험도가 낮고 예측 가능한 범위 내에서 이루어진다. 컴파일러가 출력하는 경고나 오류 메시지가 대부분의 경우 무엇을 어떻게 바꿔야 할지 알려주는 좋은 가이드가 될 것이다.13

지금까지 Gazebo Fortress와 Harmonic의 아키텍처, 기능, 성능, ROS 2 연동, 그리고 마이그레이션 측면을 다각도로 분석했다. 이를 바탕으로, 어떤 사용자가 어떤 버전을 선택해야 하는지에 대한 명확한 결론과 가이드라인을 제시한다.

Gazebo Classic의 지원이 2025년 1월에 종료되는 것을 시작으로 18, 로보틱스 시뮬레이션 생태계는 Modern Gazebo로의 전환이라는 거스를 수 없는 흐름 위에 있다. Fortress 역시 2026년 9월이면 지원이 종료되므로 4, 장기적인 관점에서 모든 신규 개발과 기술 투자는 Harmonic 또는 그 이후 버전(Ionic, Jetty 등)을 중심으로 이루어질 것이다.

최종적으로, Fortress는 안정적인 ‘현재’를 위한 선택일 수 있지만, Harmonic은 확장성과 미래를 위한 ‘투자’다. Fortress에서 Harmonic으로의 마이그레이션 비용은 API의 파괴적 변경이 적어 상대적으로 낮다. 따라서 특별한 제약 조건이 없다면, 모든 사용자는 가능한 한 빨리 Harmonic으로의 전환을 계획하고 실행하는 것이 장기적인 프로젝트의 성공과 기술 경쟁력 확보를 위해 현명한 결정이 될 것이다.

  1. Gazebo : Distributions - ignition-fortress, accessed July 25, 2025, https://classic.gazebosim.org/distributions/ignition-fortress/releases/
  2. gazebosim/gz-fortress: Fortress, Gazebo’s 6th named release - GitHub, accessed July 25, 2025, https://github.com/gazebosim/gz-fortress
  3. Ignition Fortress Released - Open Robotics, accessed July 25, 2025, https://www.openrobotics.org/blog/2021/10/01/ignition-fortress-released
  4. Gazebo Releases - Gazebo ionic documentation, accessed July 25, 2025, https://gazebosim.org/docs/latest/releases/
  5. Search - Gazebo fortress documentation - 创客智造, accessed July 25, 2025, https://www.ncnynl.com/en/gazebosim/docs/fortress/search/
  6. Gazebo : Distributions - gz-harmonic, accessed July 25, 2025, https://classic.gazebosim.org/distributions/gz-harmonic/releases/
  7. Gazebo Harmonic Released! - Open Robotics, accessed July 25, 2025, https://www.openrobotics.org/blog/2023/9/26/gazebo-harmonic-released
  8. SAVE THE DATE: Gazebo Harmonic Tutorial Party! - General - ROS Discourse, accessed July 25, 2025, https://discourse.ros.org/t/save-the-date-gazebo-harmonic-tutorial-party/33091
  9. Gazebo Harmonic Release - General, accessed July 25, 2025, https://community.gazebosim.org/t/gazebo-harmonic-release/2311
  10. Releases / gazebosim/gz-sim - GitHub, accessed July 25, 2025, https://github.com/ignitionrobotics/ign-gazebo/releases
  11. Gazebo Development - Gazebo harmonic documentation - 创客智造, accessed July 25, 2025, https://www.ncnynl.com/en/gazebosim/docs/harmonic/development/
  12. A new era for Gazebo (cross-post) - General - ROS Discourse, accessed July 25, 2025, https://discourse.ros.org/t/a-new-era-for-gazebo-cross-post/25012
  13. Migration Guide - Gazebo ionic documentation, accessed July 25, 2025, https://gazebosim.org/docs/latest/migration_from_ignition/
  14. Ignition Fortress - Gazebo fortress documentation, accessed July 25, 2025, https://gazebosim.org/docs/fortress/install/
  15. ROS 2 Integration - Gazebo fortress documentation, accessed July 25, 2025, https://gazebosim.org/docs/fortress/ros2_integration/
  16. Installing Gazebo Harmonic, accessed July 25, 2025, https://reifxsolutions.com/hjn-harmonic-setup/
  17. A new era for Gazebo - ROS Discourse - Open Robotics, accessed July 25, 2025, https://discourse.openrobotics.org/t/a-new-era-for-gazebo/48995
  18. Gazebo Classic and Citadel End of Life [x-post Gazebo Sim Community] - ROS Discourse, accessed July 25, 2025, https://discourse.ros.org/t/gazebo-classic-and-citadel-end-of-life-x-post-gazebo-sim-community/40931
  19. Gazebo Classic End-of-Life - General, accessed July 25, 2025, https://community.gazebosim.org/t/gazebo-classic-end-of-life/2563
  20. Gazebo Classic robotics simulator reaches end of life, accessed July 25, 2025, https://www.therobotreport.com/gazebo-classic-robotics-simulator-reaches-end-of-life/
  21. Gazebo Sim Architecture - Gazebo ionic documentation, accessed July 25, 2025, https://gazebosim.org/docs/latest/architecture/
  22. Features – Gazebo, accessed July 25, 2025, https://staging.gazebosim.org/features
  23. Gazebo - News - Open Robotics, accessed July 25, 2025, https://www.openrobotics.org/blog/tag/Gazebo
  24. Open Robotics releases Gazebo Harmonic simulator - The Robot Report, accessed July 25, 2025, https://www.therobotreport.com/open-robotics-gazebo-harmonic-simulator/
  25. Ignition Gazebo (Fortress) has a worse Real Time Factor (RTF) than Gazebo Classic (11), accessed July 25, 2025, https://robotics.stackexchange.com/questions/104985/ignition-gazebo-fortress-has-a-worse-real-time-factor-rtf-than-gazebo-classi
  26. State of Gazebo 2024 - ROSCon 2025, accessed July 25, 2025, https://roscon.ros.org/2024/talks/The_State_of_Gazebo.pdf
  27. Large model in gazebo slows RTF to 1% - Robotics Stack Exchange, accessed July 25, 2025, https://robotics.stackexchange.com/questions/113316/large-model-in-gazebo-slows-rtf-to-1
  28. Installing Gazebo with ROS - Gazebo ionic documentation, accessed July 25, 2025, https://gazebosim.org/docs/latest/ros_installation/
  29. Tutorial : Gazebo Architecture - Gazebo, accessed July 25, 2025, https://classic.gazebosim.org/tutorials?tut=architecture
  30. Gazebo Tutorials - Gazebo ionic documentation, accessed July 25, 2025, https://gazebosim.org/docs/latest/tutorials/
  31. Gazebo, accessed July 25, 2025, https://gazebosim.org/
  32. gz-harmonic/release_notes.md at main - GitHub, accessed July 25, 2025, https://github.com/gazebosim/gz-harmonic/blob/main/release_notes.md
  33. physics - Gazebo documentation, accessed July 25, 2025, https://gazebosim.org/libs/physics/
  34. docs/harmonic/comparison.md at master / gazebosim/docs - GitHub, accessed July 25, 2025, https://github.com/gazebosim/docs/blob/master/harmonic/comparison.md
  35. gazebosim/gz-physics: Abstract physics interface designed to support simulation and rapid development of robot applications. - GitHub, accessed July 25, 2025, https://github.com/gazebosim/gz-physics
  36. Physics engines - Gazebo Sim, accessed July 25, 2025, https://gazebosim.org/api/sim/9/physics.html
  37. Physics engines - Gazebo, accessed July 25, 2025, https://gazebosim.org/api/gazebo/6/physics.html
  38. Switching physics engines - Gazebo, accessed July 25, 2025, https://gazebosim.org/api/physics/6/switchphysicsengines.html
  39. rendering - Gazebo documentation, accessed July 25, 2025, https://gazebosim.org/libs/rendering/
  40. gazebosim/gz-rendering: C++ library designed to provide an abstraction for different rendering engines. It offers unified APIs for creating 3D graphics applications. - GitHub, accessed July 25, 2025, https://github.com/gazebosim/gz-rendering
  41. Feature comparison - Gazebo ionic documentation, accessed July 25, 2025, https://gazebosim.org/docs/latest/comparison/
  42. Ogre 2 and Ogre 1 merge strategy - Ogre Forums, accessed July 25, 2025, https://forums.ogre3d.org/viewtopic.php?t=94758
  43. Ogre v1 vs Ogre v2 - Ogre Forums, accessed July 25, 2025, https://forums.ogre3d.org/viewtopic.php?t=95495
  44. Gazebo Release Features - Gazebo ionic documentation, accessed July 25, 2025, https://gazebosim.org/docs/latest/release-features/
  45. Tutorial : Plugins 101 - Gazebo, accessed July 25, 2025, https://classic.gazebosim.org/tutorials?tut=plugins_hello_world
  46. srmainwaring/gz-python: Python bindings for gz-msgs and gz-transport - GitHub, accessed July 25, 2025, https://github.com/srmainwaring/gz-python
  47. Python Support - Gazebo Transport, accessed July 25, 2025, https://gazebosim.org/api/transport/13/python.html
  48. transport - Gazebo documentation, accessed July 25, 2025, https://gazebosim.org/libs/transport/
  49. sdf::SDF_VERSION_NAMESPACE::Sensor Class Reference - Gazebo, accessed July 25, 2025, https://gazebosim.org/api/sdformat/13/classsdf_1_1SDF__VERSION__NAMESPACE_1_1Sensor.html
  50. Gazebo VTOL and fixed wing plane support / Issue #20836 / PX4/PX4-Autopilot - GitHub, accessed July 25, 2025, https://github.com/PX4/PX4-Autopilot/issues/20836
  51. Trouble checking windspeeds set during gazebo simulation - PX4 Discussion Forum, accessed July 25, 2025, https://discuss.px4.io/t/trouble-checking-windspeeds-set-during-gazebo-simulation/25717
  52. sensors - Gazebo documentation, accessed July 25, 2025, https://gazebosim.org/libs/sensors/
  53. Gazebo Sensors: DopplerVelocityLog Class Reference, accessed July 25, 2025, https://gazebosim.org/api/sensors/9/classgz_1_1sensors_1_1DopplerVelocityLog.html
  54. Global Illumination - Gazebo Sim, accessed July 25, 2025, https://gazebosim.org/api/sim/8/global_illumination.html
  55. Gazebo Harmonic slow real time factor on baylands world - ArduPilot Discourse, accessed July 25, 2025, https://discuss.ardupilot.org/t/gazebo-harmonic-slow-real-time-factor-on-baylands-world/125284
  56. RANT: Gazebo (new) is a terrible piece of software and I don’t think we should recommend it to newbies : r/ROS - Reddit, accessed July 25, 2025, https://www.reddit.com/r/ROS/comments/1jqn8wb/rant_gazebo_new_is_a_terrible_piece_of_software/
  57. Gazebo Simulator : 5 Ways to Speedup Simulations - Black Coffee Robotics, accessed July 25, 2025, https://www.blackcoffeerobotics.com/blog/gazebo-simulator-5-ways-to-speedup-simulations
  58. how to speed up gazebo simulation? - ros - Robotics Stack Exchange, accessed July 25, 2025, https://robotics.stackexchange.com/questions/102469/how-to-speed-up-gazebo-simulation
  59. Regarding Gazebo RTF becoming low after increasing joints in the simulation, accessed July 25, 2025, https://answers.gazebosim.org/question/27170/
  60. Gazebo Harmonic slow real time factor on baylands world - Robotics Stack Exchange, accessed July 25, 2025, https://robotics.stackexchange.com/questions/113430/gazebo-harmonic-slow-real-time-factor-on-baylands-world
  61. Regarding Gazebo RTF becoming low after increasing joints in the simulation, accessed July 25, 2025, http://answers.gazebosim.org/question/27171/
  62. Recommendations to improve simulation performance in large building - Gazebo Help, accessed July 25, 2025, https://discourse.openrobotics.org/t/recommendations-to-improve-simulation-performance-in-large-building/48150
  63. Recommendations to improve simulation performance in large building - ROS Discourse, accessed July 25, 2025, https://community.gazebosim.org/t/recommendations-to-improve-simulation-performance-in-large-building/2558
  64. Alternatives to Gazebo Fortress (Building Editor) Feature? - Robotics Stack Exchange, accessed July 25, 2025, https://robotics.stackexchange.com/questions/104528/alternatives-to-gazebo-fortress-building-editor-feature
  65. Very high CPU usage when running Gazebo in a docker container, accessed July 25, 2025, https://robotics.stackexchange.com/questions/107875/very-high-cpu-usage-when-running-gazebo-in-a-docker-container
  66. Running Gazebo on a Virtual Machine : r/ROS - Reddit, accessed July 25, 2025, https://www.reddit.com/r/ROS/comments/1f1s3z9/running_gazebo_on_a_virtual_machine/
  67. Black screen with 3d acceleration enabled for Gazebo and Rviz (Robotic) Parallels Forums, accessed July 25, 2025, https://forum.parallels.com/threads/black-screen-with-3d-acceleration-enabled-for-gazebo-and-rviz-robotic.355825/
  68. WSLg with GPU support available on latest version of Gazebo Garden and Harmonic!, accessed July 25, 2025, https://community.gazebosim.org/t/wslg-with-gpu-support-available-on-latest-version-of-gazebo-garden-and-harmonic/2360
  69. What’s up with Global Illumination? : r/pathofexile - Reddit, accessed July 25, 2025, https://www.reddit.com/r/pathofexile/comments/k7xi59/whats_up_with_global_illumination/
  70. For ROS2 Beginners - Install ROS 2 and Gazebo on Ubuntu 22.04 Jammy (LTS) Step-by-Step Instruction by Claudia Yao Medium, accessed July 25, 2025, https://medium.com/@claudia.yao2012/for-ros2-beginners-install-ros-2-and-gazebo-on-ubuntu-22-04-jammy-lts-step-by-step-instruction-08327c3764a5
  71. Installing the default Gazebo/ROS pairing - Robotics Stack Exchange, accessed July 25, 2025, https://robotics.stackexchange.com/questions/114012/installing-the-default-gazebo-ros-pairing
  72. Will Gazebo harmonic ever be recommended for ROS2 Humble? - General, accessed July 25, 2025, https://community.gazebosim.org/t/will-gazebo-harmonic-ever-be-recommended-for-ros2-humble/2390
  73. Gazebo Classic End-Of-Life & ROS 2 Jazzy - General, accessed July 25, 2025, https://discourse.ros.org/t/gazebo-classic-end-of-life-ros-2-jazzy/36239
  74. ROS2 Humble, Gazebo Harmonic, PX4, QGroundControl, Micro XRCE-DDS Agent & Client Installation by Erdem Medium, accessed July 25, 2025, https://medium.com/@erdem.ku.3.14/ros2-humble-gazebo-harmonic-px4-ve-micro-xrce-dds-agent-client-installation-aad32d8f5669
  75. Use ROS 2 to interact with Gazebo, accessed July 25, 2025, https://gazebosim.org/docs/latest/ros2_integration/
  76. ros_gz_bridge: Rolling 3.0.3 documentation - the official ROS docs, accessed July 25, 2025, https://docs.ros.org/en/rolling/p/ros_gz_bridge/
  77. Getting Started with Gazebo? - Gazebo ionic documentation, accessed July 25, 2025, https://gazebosim.org/docs/latest/getstarted/
  78. Migrating Old Plugins from Gazebo Classic to Gazebo Harmonic, accessed July 25, 2025, https://community.gazebosim.org/t/migrating-old-plugins-from-gazebo-classic-to-gazebo-harmonic/3446
  79. Gazebo Classic Migration, accessed July 25, 2025, https://gazebosim.org/docs/latest/gazebo_classic_migration/