九州工業大学 CIR-KIT Blog

九工大自律移動ロボット製作プロジェクトCIR-KITの技術系ブログ

No.6-2:GazeboをROSに繋ぐ (どのGazebo/ROSのバージョンの組み合わせを使うか 編)

gazebo_logo

検証日時

02/14/2015 (Sat)

概要

Gazeboのチュートリアル第六弾「Connect to ROS」。
ROSはロボットの制御フレームワークです。このチュートリアルでは、GazeboとROSのインターフェースについて説明します。
今回はその「Which combination of ROS/Gazebo Versions to use」編です。
公式サイトを適当に翻訳しただけですので、あしからず。

レベル

INTERMEDIATE

環境
PC : Lenovo ThinkPad X240
Prosessor : Intel Core i7-4600U (2.10GHz, 4MB, 1600MHz)
RAM : PC3-12800 DDR3L (8GB)
OS : Ubuntu 14.04 LTS 64bit
Kernel : 3.13.0-44-generic
Gazebo : Version 5.0.1
参考

GAZEBO Tutorial-Connect to ROS

はじめに

このドキュメントでは、ROSとGazeboをそれぞれ異なるバージョンの組み合わせで使うためのオプションについて説明します。Gazebo ROSラッパーをインストールする前に、読んでおくことをおすすめします。

簡単な判断のための短いバージョン

もし、ROSの特定のバージョンを使用しており、Gazeboの特定のバージョンを使用する理由がないなら、gazebo_ros_pkgsをインストールするというチュートリアルへ進むこともできます。

GazeboのバージョンとROSの統合

ROS Hydroまでは、GazeboはROSパッケージの代替とみなされていました。これは、Gazeboのメジャーバージョンの一つ(例えば、ROS Indigo用のgazebo2)はROSリリースサイクルの始まりであり、すべてのROSディストリビューションの間で保たれていたということを意味します。Gazeboの開発はROSから独立しています。なので、Gazeboの新しい各バージョンはROSディストリビューションで使用される前にリリースする必要があります。
Gazebo ABIの安定化ポリシーは、同じメジャーナンバーを持つすべてのバージョン(gazebo_2.0.0,gazebo_2.1.0,gazebo_2.0.1,…etc)はバイナリー互換であり、それ故に同じROSディストリビューションを使用するなら、相互に使用することができるといったような、sematic versioning pholosophyに準拠しているということを覚えておいてください。

Gazeboをインストールする

GazeboのUbuntuパッケージ

Gazeboをインストールする簡単な方法は、パッケージを使うことです。Gazeboパッケージがホストしているレポジトリは主に2つあります。:一つはpackage.ros.orgで、もうひとつは、osrfoundation.packages.orgです。この投稿を行った時点では、ホストの状況は以下のようになっています。

  • packages.ros.org
    • Hydro: hosts gazebo version 1.x package.
    • Indigo: host gazebo version 2.x package.
  • packages.osrfoundation.org
    • gazebo 1.x series (package name gazebo)
    • gazebo 2.x series (package name gazebo-current or gazebo2 in saucy/trusty)
    • gazebo 3.x series (package name gazebo3)
    • gazebo 4.x series (package name gazebo4)

このことは、osrfoundationレポジトリは必ずしもUbuntuのGazeboパッケージから取得する必要がないということを意味します。ROSのレポジトリからインストールすることができます。

Gazeboをソースからビルドする

ソースコードからGazeboのバージョンをコンパイルしたのなら、あなたのGazeboで使用しているレポジトリのブランチにおける依存関係(gazebo_3.0, gazebo_4.0,…etc)は、メジャー場^ジョンがローカルブランチのレポジトリとROSのディストリビューションで使用しているGazeboのバージョンが一致するときにかぎり、gazebo_ros_pkgs(それとGazeboでコンパイル済みのすべてのROSパッケージも)と共にバイナリコンパイルされます。例えば、もしあなたが、gazebo_2.0のGazeboブランチよりコンパイルをしているのなら、Indigo(Indigoはgazebo2シリーズを使用している)にあるgazebo_ros_pkgsを使用することができます。
もしあなたが、デフォルトのブランチを使用しているなら、大抵のリリースされたパッケージと共にバイナリコンパイルを行うことはできません。なので、gazebo_ros_pkgsを有効にするために、catkinワークスペースが必要となります。

ROSディストリビューションのためにGazeboのデフォルトバージョンを使う

特定のROSディストリビューションを使用する必要があり、out-of-the-boxのパッケージに関連するGazeboやROSを使用したい人にとって、このセクションは重要です。

Indigo

ROS IndigoはGazeboの2.xのバージョンをホストしています。完全に統合されたROSのシステムのためには、Gazeboの2.xバージョンを使用することをおすすめします。適用方法は、ROSレポジトリを使用するということだけで、(自動でgazebo2がインストールされます)osrfoundationレポジトリは必要ありません。

Hydro

ROS HydroはGazeboの1.9.xのバージョンをホストしています。完全に統合されたROSシステムのためには、Gazeboの1.9.xバージョンを使用することをおすすめします。適用する方法は、ROSレポジトリを使用するということだけで、(自動でgazeboがインストールされます)osrfoundationレポジトリは必要ありません。

特定のバージョンのGazeboをROSと使用する

!警告! : このオプションを使うと、ROSのdebレポジトリによるGazeboに関連したいかなるROS Ubuntuパッケージも使用できなくなるかもしれません。gazebo_ros_pkgsと同等のものは、debianパッケージによりインストールすることは可能ですが、その他のすべてのソフトウェア(turtlebot_gazeboなど)はソースコードからビルドしなければなりませんが、catkinワークスペースのおかげで、これを行うのはとても簡単です。
本当に必要であれば、特定のバージョンのGazeboとROSを使用する方法はたくさんあります:

Gazebo 4.x シリーズ

OSRFレポジトリは、gazebo4パッケージの最新をビルドする、-gazebo4-バージョンのROS/IndigoとROS/HydroのGazeboラッパーを提供しています。(`gazebo4_ros_pkgs)これらを使用する手順は以下のとおりです。

  • osrfoundationレポジトリをソースリストに追加する
  • gazebo4パッケージをインストールするのに使う、ros-distro-gazebo4-ros-pkgsosrfoundationレポジトリより追加する。
  • ソースコードから、残りのソフトウェアをコンパイルするために、catkinワークスペースを使う

Gazebo 3.x シリーズ

OSRFレポジトリは、gazebo3パッケージの最新をビルドする、-gazebo3-バージョンのROS/HydroとROS/GroovyのGazeboラッパーを提供しています。(gazebo3_ros_pkgs)これらを使用する手順は以下のとおりです。

  • osrfoundationレポジトリをソースリストに追加する
  • gazebo3パッケージをインストールするのに使う、ros-distro-gazebo3-ros-pkgsosrfoundationレポジトリより追加する。
  • ソースコードから、残りのソフトウェアをコンパイルするために、catkinワークスペースを使う

Gazebo 2.x シリーズ

OSRFレポジトリは、gazebo-currentパッケージの最新をビルドする、-current-バージョンのROS/HydroとROS/GroovyのGazeboラッパーを提供しています。(gazebo_ros_pkgs-current)これらを使用する手順は以下のとおりです。

  • osrfoundationレポジトリをソースリストに追加する
  • gazebo-currentパッケージをインストールするのに使う、ros-distro-gazebo-ros-pkgs-currentosrfoundationレポジトリより追加する。
  • ソースコードから、残りのソフトウェアをコンパイルするために、catkinワークスペースを使う

FAQ

私はDARPAのロボティクスチャレンジ参加者です。どのバージョンを使うのが良いですか?

drcsim-3.2gazebo3でビルドされています。drcsim-4.0からスタートすると、gazebo4を使うことになります。

私はまだROSを使ったことがありません。どのバージョンを使うのが良いですか?

ROSのサポートが必要ないなら、osrfoundationのレポジトリを利用してインストールできる、最新リリースのバージョンをおすすめします。

bullet/simbody/dart物理エンジンを使いたいのですが、どのバージョンが良いですか?

gazebo4から始めるなら、bulletsimbodyがUbuntuパッケージでサポートされています。なので、ROSと一緒に、gazebo4を使用するには、上記の説明に従ってください。Dartはソースコードからのインストールも必要とします(gazebo3からはじめるなら)。なので、gazebo3かそれ以外のバージョンを使用することができます。ROSと共に使用するために、このページの上部の説明に従ってください。

ROS-JではどのバージョンのGazeboが動きますか?

まだ決まってません。しかし、予定ではおそらくgazebo5でしょう。

gazebo4とROS Indigoを使う必要があります。どうしたらよいですか?

!警告! : このオプションを使うと、ROSのdebレポジトリから供給されるGazebo関連のROS Indigoパッケージが使えなくなるかもしれません。ソースコードからビルドする必要がありますが、catkinワークスペースのおかげで、これを行うのはとても簡単です。
Gazebo4.xのバージョンにだけある機能を使用する必要があるなら、gazebo4とROS Indigoをインストールするという方法があります。このページ内にあるgazebo4パッケージを使ったROSの使い方についての説明に従ってください。

gazebo3とROS Indigoを使う必要があります。どうしたらよいですか?

!警告! : このオプションを使うと、ROSのdebレポジトリから供給されるGazebo関連のROS Indigoパッケージが使えなくなるかもしれません。ソースコードからビルドする必要がありますが、catkinワークスペースのおかげで、これを行うのはとても簡単です。
Gazebo3.xのバージョンにだけある機能を使用する必要があるなら、gazebo3とROS Indigoをインストールするという方法があります。このページ内にあるgazebo3パッケージを使ったROSの使い方についての説明に従ってください。