
検証日時
02/14/2015 (Sat)
概要
Gazeboのチュートリアル第六弾「Connect to ROS」。
ROSはロボットの制御フレームワークです。このチュートリアルでは、GazeboとROSのインターフェースについて説明します。
今回はその「ROS Overview」編です。
公式サイトを適当に翻訳しただけですので、あしからず。
レベル
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の統合概要
Gazebo1.9とROS Hydroでは、GazeboはROSの直接的な依存関係はなく、Ubuntuのスタンドアローンなパッケージとしてインストールされていました。歴史的に、GazeboをROSと共に使うには、Legacyのsimulator_gazeboスタックと共にビルドされた、特別なバージョンのGazeboが必要でした。
ROSとスタンドアローンなGazeboを統合するときに、スタンドアローンなGazeboに関するラッパーである、新しいgazebo_ros_pkdsという名前のROSパッケージが作られました。このパッケージでは、ROSのメッセージやサービス、そして動的参照を使ってGazeboの中でロボットをシミュレートするために、必要なインターフェースを供給しています。simulatiorgazeboとgazeboros_pkgsの間の主な違いは現在以下のようになっている。:
新しいインターフェースの概要は下図のようになっているそうです。尚、下図は公式サイトのものです。:

simulator_gazeboからアップグレードする
以下のガイドラインは、あなたのGazeboの依存パッケージを、ROSパッケージの中で使用するために、simulator_gazeboからアップグレードするのに役立つでしょう。:
Catkin
Gazeboと古いsimulatorgazeboスタックによるインターフェースのための現在のパッケージはrosbuildのビルドシステムで使われているものに似ています。ROS Hydroの中のgazeboros_pkgsとともに移行するためには、まず最初にパッケージを“catkinize”する必要があります。Catkin Tutorialsをご覧ください。
Launch Files
Gazeboを起動するためには、以前作成したroslaunchファイルにいくつかの変更を行う必要があります。それらのパッケージをアップデートする最も良い方法は、GazeboのチュートリアルにあるGazeboでroslaunchファイルを使ってモデルをスポーンさせるを読むことです。nutshellでは:
roslaunchファイルの中では、pkg="gazebo"はpkg="gazebo_ros"とリネームする必要があります。gazebo_worldsパッケージは消去されました。ほとんどのworldファイルはめったに使われず、SDFやXMLフォーマットの中の変更と共に定義されることもありません。つまり、empty.worldを含むすべてのworldファイルはGazeboのプロジェクト自身の中で、センタライズ(初期化)されます。- Gazeboの
launchファイルを使う最も良い方法は、gazebo_rosパッケージにある、empty worldのlaunchファイルをただ単にinherentもしくはincludeすることです。
CMakeLists.txt
GazeboはもはやROSパッケージではないが、システム依存はあるので、Cmakeファイルを再構成する必要があります。以下に示すのは、CMakeLists.txtの一例です。:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
package.xml
これはrosbuildにおけるmanifest.xmlを置き換えたものです : 新規のgazebo_rosパッケージに依存関係を追加します。
Gazeboを起動する
GazeboをlaunchするためのROSノードの名前はGazeboで実行可能な名前に少しだけ変更されます :
- rosrun gazebo_ros Gazebo GazeboサーバーとGUIを両方起動します。
- rosrun gazebo_ros gui
rosrun gazebo_ros gzclientに置き換えられています- rosrun gazebo_ros gzserver 以下のノードを起動することができるようになります
1 2 3 4 5 6 | |
これらのノードについては、Gazeboでroslaunchファイルを使ってモデルをスポーンさせるというチュートリアルに詳しく述べてあります。
More
ここにissueをアップグレードしてください。
チュートリアル
Gazeboの履歴に起因する多くの変更を反映するために、ros.orgのチュートリアルは完全に消去され、このウェブサイトのscratchに再投稿されています。Gazeboの中で、URDFベースのロボットをスムーズに動かすためのやり方について、私達は、徹底的なドキュメントを作ることにより、最善を尽くしています。もし、疑問があるなら、answers.ros.orgをご覧ください。
gazebo_rosパッケージをインストールするに続きます。