LoginSignup
21
10

【令和最新版】Gazebo(旧Ignition)の現在

Last updated at Posted at 2024-01-28

はじめに

2022年 4月からIgnitionの名前がGazeboに変更され、ROS界隈に破壊と混沌をもたらしました。
それに加えてバージョンGardenからパッケージ名,API,メッセージ型等全てがign 系の名前からgzに変更されたことにより、さらに混乱する事態になっています。
そこでこれからROS2を始める方や、Gazebo ClassicからGazebo Ignitionに移行しようと考えている方のために現状のGazebo事情を整理することにしました。

以下は名称変更についての公式のアナウンスのリンクとそれを要約したものです。
Ignitionという名前は商標上の理由で使えないためGazeboという名前に戻したようです。
GazeboじゃなくてGazebo2とかでよかったのでは??

  • Open Roboticsのシミュレーションチームによる大きな変更の発表: "Ignition"という名前を廃止し、元の"Gazebo"ブランドに戻すと発表されました。
  • 背景: 7年前にGazeboの主要なアーキテクチャ変更に取り組む際に"Ignition"という名前が導入されました。これは、以前のGazebo(現在「Gazebo Classic」と呼ばれる)と新しいアプローチを区別するためでした。
  • 新システムの成熟と実績: 新しいシステムは、世界中のユーザーやステークホルダーからの寄与とサポートのおかげで、成熟し、実用化されています(例:DARPA SubTプログラム)。定期的にLTSリリースが提供されています。
  • Gazebo Classicの取り組みの終了: Gazebo Classicに関する作業は終了し、最後のリリースはGazebo 11(2025年までサポート)でした。
  • 商標の障害と名前変更の理由: "Ignition"という名前の使用に関して商標上の問題が発生したため、この機会に名前を簡素化することにしました。
  • 変更内容:
    • ウェブサイト、GitHubの組織とリポジトリ、名前空間、コマンドラインツール、共有ライブラリ、ディレクトリ、API、ファイルでの"Ignition"または"ign"の名称を"Gazebo"または"gz"に変更。
    • IgnitionロゴをGazeboロゴに置き換え。
    • UIとドキュメントの変更。

過去のIgnitionの状況については以下の記事が参考になります。

Gazebo Classic とGazebo Ignitionの違い

Gazebo ClassicとGazebo Ignitionの大きな違いはROS/ROS2との連携にあると思っています。
Gazebo Classicは、gazebo_ros_pkgsパッケージを通じてROS/ROS 2と連携します。このパッケージは、シミュレーションされた環境からROS/ROS2の世界へセンサーデータを中継するための架け橋として機能します。具体的には、GazeboのプラグインはGazeboのC++ APIとROSのPub/Subを組み合わせて使用され、実質的にROSノードとして動作します。
一方、Gazebo IgnitionはROSとは独立しており、Ignition独自のトピック通信システムを使用します。ROS/ROS2との連携は、ros_gz_bridgeパッケージを介して行われます。このパッケージは、IgnitionのトピックとROS/ROS2のトピックをブリッジする役割を担います。これにより、Gazebo IgnitionでシミュレートされたデータをROS/ROS2ノードで利用できるようになり、ROS/ROS2のアプリケーションと統合することが可能になります。

Gazebo IgnitionはROSとは完全に独立したソフトウェアとなっているため、例えばROS2 Humble用に作成したシミュレーションファイルがROS Noeticでそのまま使用したりできます。

Gazebo Classic Gazebo Ignition
開始年 2002 2019
アーキテクチャ モノリシック モジュラー
ROS/ROS2統合 gazebo_ros_pkgs ros_gz_bridge
最新リリース Gazebo 11 Gazebo Harmonic
バージョンの命名規則 0 ~ 11の番号  ROSと同様にアルファベット順の名前
物理エンジン ODE, Bullet, Simbody, DART DART, TPE
ビジュアライゼーション OGRE OGRE2
対応OS Linux, (部分的にMacOSとWindows) Linux, MacOS, Windows

機能の比較

こちらに機能の比較があります。
Gazebo Classicになかった機能が新たに追加されていたり、Gazebo Classicにあった機能でまだ対応していない機能があったりします。

物理エンジン

物理エンジンの違いが気になる方は比較した記事があります。

Gazeboの歴史

2002年: Gazebo Classicの開発が、カリフォルニア大学南部校で始まる。
2011年: Willow GarageがGazebo Classicの開発をサポート。
2012年: Gazeboの開発がOpen Source Robotics Foundation(現在のOpen Robotics)に移管される。
2019年: Gazebo Ignitionの最初のリリースとして、Ignition Acropolisが発表される。
2020年: Gazebo Classicの最後のリリースであるGazebo 11がリリースされる。
2022年: IgnitionはGazeboに改名される。
2025年: Gazebo Classicのサポートが終了する。

この図を見るとIgnition Gazeboの方が本流で以前のGazeboの機能をGazebo Classicという名前で分岐したように見えます。
Gazebo Classicは2025年にEOLとなり、今年リリースされるROS 2 Jazzy JaliscoではGazebo Classicのサポートはしないことが発表されており、ubuntu24.04LTS以降ではGazebo Classicは実質使えないと思ったほうがいいでしょう。

timeline.png

参考

ROSディストリビューションとの対応

以下はROS2ディストリビューションとGazeboバージョンの対応表です。
GazeboはROSとは独立したソフトウェアなのに、なぜROSディストリビューションとの対応が存在するかというと
GazeboとROSを連携するパッケージであるros_gzとの対応のことを示します。

ROS/Gazebo Version GZ Citadel (LTS) GZ Fortress (LTS) GZ Garden GZ Harmonic (LTS)
ROS 2 Jazzy (LTS) ⚡️
ROS 2 Rolling ⚡️ ⚡️
ROS 2 Iron ⚡️ ⚡️
ROS 2 Humble (LTS) ⚡️ ⚡️
ROS 2 Foxy (LTS)
ROS 1 Noetic (LTS)

✅ - 推奨される組み合わせ
❌ - 互換性がない/不可能
⚡️ - 可能だが注意が必要

以下で推奨バージョンのGazeboが自動的にインストールされます。Humbleの場合はGazebo Fortlessがインストールされます。

sudo apt-get install ros-${ROS_DISTRO}-ros-gz

またROS2インストール時にsudo apt install ros-humnble-desktop-fullでインストールした場合も推奨バージョンのGazeboがインストールされます。
HumbleでもGardenやHarmonicを使うことができますが、その場合は非公式のDebianパッケージかソースコードからビルドすることでインストールできます。
特に理由がない限りは推奨バージョンのGazeboを使用するのがよいでしょう。

Gazebo バージョンの確認方法

Gazebo画面左上にメニューをクリック、Aboutから現在使用しているGazeboのバージョンを確認することができます。

image.png

参考

Installing Gazebo with ROS

おわりに

最後に以下は今後Gazebo(旧Ignition)を使う上での自分の意見です。

  • 今からGazebo ClassicからGazebo Ignitionに移行しようと考えている方はROS 2 Jazzy + Gazebo Harmonicからにした方がいい

ROS2 Humble + Gazebo Fortlessではign系のパッケージとgz系の同じ機能のパッケージが混在していて両方使えてしまうので、混乱を避けるため移行のタイミングはROS 2 Jazzyが出てからの方がいいのではないかと思います。
メッセージ型もign → gzに変わっているのでFortlessでlaunchファイル等作ってもHarmonic移行時に書き直す必要があります。

  • ネットの記事などはあてにせず必ず公式のドキュメントを見る

この記事も半年後には情報が古くなるのでネットの記事やChatGPTの返答などはあてにせず、必ず最新のドキュメントを見に行くようにしましょう。

  • Gazeboの呼び方について組織内で呼び方を決めておく

公の場ではまだGazebo ClassicとGazebo Ignitionと呼び分けるのがいいと思いますが、コミュニケーションコストを下げるため呼び方については組織内で統一した方がいいでしょう。(例:社内でGazebo Ignitionしか使わない場合はGazeboと呼ぶなど)

Gazebo各サイトのリンク

  • 公式サイト

  • ドキュメント

右上のReleaseから各バージョンのドキュメントを選んで見る。

  • コミュニティ

Gazeboについて質問等あればここに投稿する。

  • Gazebo Fuelのリンク

このサイトにいろいろなモデルやワールドが公開されていて自由に使うことができます。

  • ros_gzのリポジトリ

  • Gazebo API Reference

ドキュメントのLibrary Referenceから各APIのリファレンスに飛ぶ。

参考記事

以下Qiita, ZennにあったGazebo Igniton関連のすべての記事のリンクを貼りました。

21
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
10