検証日時
01/31/2015 (Sat)
概要
Gazeboのチュートリアル第一弾「Get Started」。その「Gazebo Components」編です。
公式サイトを適当に翻訳しただけですので、あしからず。
レベル
BEGINNER
環境
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シミュレーションを実行するときに一緒に実行されるそれぞれのアイテムについて説明します。
worldファイル
worldディスクリプションファイルにはロボット、ライト、センサ、静的物体などのシミュレーションのすべての要素が含まれています。このファイルはSDF (Simulation Description Format)フォーマットを使用しており、.world
という拡張子がついています。
Gazeboサーバー(gzserver
)はこのファイルを読み込み、シミュレーションの環境を構築します。
Gazeboでは沢山のworldデータの例が提供されています。それらのworldデータは<install_path>/share/gazebo-<version>/worlds
に配置してあります。
modelファイル
modelファイルもworldファイルと同じようにSDFフォーマットを使用していますが、唯一ひとつだけ<model> ... </model>
を含んでいなければなりません。これらのファイルの目的はモデルの再利用を容易にし、worldファイルを簡単化するというものです。一度modelファイルが生成されると、以下のようなSDF文法にしたがったコードを記入することでworldファイルにincludeすることが可能です。
1 2 3 |
|
多くのmodelは一行のmodelデータベース(バージョン情報、Gazeboによって提供されるいくつかのモデル例)によって提供されます。Gazeboをインターネット接続が有効な環境で使用しているとすると、たくさんのモデルをデータベースから挿入することが可能ですし、実行中に必要なコンテンツをダウンロードすることも可能です。
環境変数
ファイルを配置するために、また、クライアントとサーバーの間の通信をセットアップするために、Gazeboにはたくさんの環境変数があります。
Gazebo 1.9.0より、ほとんどの場合に使用するデフォルト変数は編纂されています。つまり、多くの変数は設定する必要がないということです。これらのデフォルト変数は以下のシェルスクリプトの中にも含まれています。
1
|
|
例えば、もし、モジュールを検索するためのパスを拡張するなどして、Gazeboの挙動を修正したいなら、まず最初にsource
コマンドで上記のシェルスクリプトを実行したあと、設定されている変数を修正するということです。
Gazeboサーバー
このサーバーはGazeboの実体です。コマンドラインから与えられるworldディスクリプションファイルを解読し、物理エンジンやセンサエンジンを使ってシミュレータを実行します。
このサーバーは以下のコマンドを使うことで実行できます。サーバーにはグラフィックが含まれていない、つまり、GUIが存在しないということに留意してください。
1
|
|
ここで、<world_filename>
は:
カレントディレクトリ(現在のディレクトリ)との相対パス
絶対パス
GAZEBO_RESOURCE_PATHに記されるパスとの相対パス
のいずれかである必要があります。
Gazeboによって提供されるworldデータは/share/gazebo-*/worlds
にあります。
例えば、Gazeboによって提供されるempty.world
を使用する場合、以下のコマンドを使います。
1
|
|
グラフィカルクライアント
グラフィカルクライアントは実行中のgzserver
と接続し、要素を表示します。実行中のシミュレーションを修正することができるツールでもあります。
グラフィカルクライアントは以下のコマンドで実行されます。
1
|
|
サーバー + グラフィカルクライアントを一度に
コマンドgazebo
はサーバーとクライアントを一度に利用可能にするコマンドです。gzserver worlds/empty.world
とgzclient
をそれぞれ実行する代わりに、以下のように実行することができます
1
|
|
プラグイン
プラグインではGazeboにシンプルでかつ便利なインターフェース接続メカニズムを提供しています。プラグインはコマンドラインでの記述とworld/modelファイル(SDFフォーマットを参照)での記述のどちらも読み込むことができます。コマンドラインに記述されたものが最初に読み込まれ、world/modelファイルに記述されたプラグインを次に読み込みます。ほとんどのプラグインがサーバーによって読み込まれますが、プラグインはグラフィカルクライアントでもまた、GUIのカスタムを用意にするために読み込まれます。
コマンドラインからプラグインを読み込む例:
1
|
|
グラフィカルクライアントでも同じように:
1
|
|
プラグインについてもっと情報が必要ならプラグインのオーバービューを参照してください。