検証日時
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パッケージをインストールするに続きます。