Webots 使い方まとめ

2. Webotsシミュレーションの構成

この節では、Webotsで扱うプロジェクトのファイル構成について説明する。

2.1 Webotsでのシミュレーション

Webotsのシミュレーションは次のファイル構成によって成り立っている。

  • シミュレーション環境や、環境内のロボットを定義するWorld(.wbt)
  • ロボットの制御プログラムであるController (C/C++/Java/Python/Matlab/URBIで記述)
  • 通常のWebotsの物理シミュレーションを修正するためのPlugin(通常は不要)

2.2 Worldとは

Worldファイルには、3次元シミュレーション空間内でのロボットやその他環境のプロパティを定義する。 環境内のすべてのオブジェクトの位置、方向、位相、外装、物理係数等を設定できる。
例えば、ロボットの距離センサーのレンジやノイズ発生確率を設定したり、カメラを搭載させる、等。 ロボットを制御するControllerも、ここで指定する。 Worldファイルは .wbt形式で保存され、プロジェクトのサブディレクトリである"worlds"フォルダの中に生成される。

2.3 Controllerとは

ControllerはWorldファイル内のロボットを制御するプログラムファイルである。 ControllerはWebotsでサポートされているいくつかのプログラミング言語に対応している。(C/C++/Java/Python/Matlab/URBI) シミュレーションが開始されると、Webotsはシミュレーションプロセスとは別にこのControllerを起動して、並列に動作させる。
もしもWorld内に同じControllerを使用するロボットが2体以上存在する場合、同時に複数のControllerが実行されることになる。 Controllerはそれぞれの言語の形式にあわせて、コンパイルされた実行ファイルとして存在する必要がある。(C/C++ならexe,javaなら.class,.jar)
Controllerファイルはプロジェクトのサブディレクトリであるcontrollerフォルダ内に存在する。

2.4 Supervisorとは

Supervisorとは、現実において監督している人間が行うべき特殊な操作を実行できるロボット(supervisor)の制御プログラムである。 SupervisorプログラムもController同様に、対応するすべての言語でプログラミングすることができる。ただし、controllerとの違いは、Supervisorはworldの特別なパラメータにアクセスできる、ということだ。
具体的な操作には、ロボットをランダムな位置に移動させたり、シミュレーションのビデオキャプチャの撮影、位置情報の取得等ができる。

2.5 はじめ方

新しくシミュレーションを行う場合、まずWorldファイルを作成し、次にControllerをプログラムすればよい。 もしも、ゴールに到達したらスタート地点にロボットを移動させる、といった神の手的な操作を加えたいのならばSupervisorも用意したい。

HOME > Webots 使い方まとめ > 2. Webotsシミュレーションの構成