システム概要

Figure: MARS windowの表示例(左)と プログラムの構造(右)
\begin{figure}\begin{center}
\begin{tabular}{c c}
\epsfile{file=fig/mars.eps,wid...
...e=fig/simst.ps,width=0.6\columnwidth} \\
\end{tabular}
\end{center}\end{figure}

MARSを始めたとき、図 [*](左)に示されるような メインwindowを見ることができる。MARSは、図 [*](右) のようなモジュールアーキテクチャを採用している。 それは、物理シミュレーションモジュールとロボット制御モジュールと ユーザーインターフェースモジュールとユーザーが定義したグローバル 制御ループにより構成されている。

物理シミュレーション: 現在の物理シミュレーションモジュールは、4つのタイプのオブジェクトを 処理している。 wall (固定障害物), block (移動障害物), robot-body (活動オブジェクト)とmagic-block (経験学習するための 特別な報酬を与えるオブジェクト)である。

Figure: ロボットの内部構造(左)と ビヘービアベーストロボットの構成例(右)
\begin{figure}\begin{center}
\begin{tabular}{c c}
\end{tabular}\end{center}
\end{figure}

ロボットモデル: 物理的シミュレーションモジュールとロボット制御モジュールとの 間のインターフェースである。 いくつものrobotモデルを生成することができ、 擬似並列でシミュレートできる。 robotはそれぞれ、robot-bodyrobot-brainの のモジュールの組みで構成される。 robot-bodyは、ロボットの物理的な性質を定義し、 robot-brainはロボットの行動を定義する。

センサモデル: ユーザーは、robot-bodyのどこにでもいくつものセンサを 選択して取り付けることができる。 現在、実現されているセンサモデルは、以下のものである。 距離センサ (走行距離), 角度センサ (回転角), 接触センサ, 赤外線センサ, レーザセンサ (超音波), 視覚センサ (object-name-sensor)。 現在のバージョンでは、ノイズや不確定要素について考えていない。

ロボット知能: robot-brainは、シミュレートしたセンサデータを処理したり 行動命令を生成するためにユーザーで定義されたモジュールである。 センサデータを受け、行動命令を出力しなければならない。 付け加えて、リエントラントプログラムとして書かれていて、 グローバル制御ループによって送られる:stepメッセージ によって時間分割されなければならない。 これらの拘束に合う限り、ユーザーはどんな認識アーキテクチャも 採用することができる。 システムは、デフォルトとしてビヘービアベースト型のアーキテクチャ の例を備えている。

GUI: MARSのメインwindowは、システムを制御するためにいくつかのボタンを 持つメニューバーを持っている。 また、システムは物理環境を生成/変更するための内部グラフィックエディタ を持っている。 ファイルに対してエージェント定義と一緒に物理環境を読み書きできる。

ネットワーク拡張: robot-brainは、非同期ソケット通信を通して外部プロセス との接続を構築することができる。 この場合、ユーザーはremote-brainを記述するために任意の言語(C, Prolog, Scheme, Perl, etc...)を使用することができる。 非同期接続のおかげで、ユーザーは時間分割について少しも気にする必要が無い。

経験学習機能: MARSは、ロボットが経験学習するための幾つかの特殊機能を備えている。 報酬を与えるオブジェクトや報酬センサ(報酬値をロボットに送るもの) や報酬ログ(システム全体の報酬の統計を計算するもの)である。


k-okada 2013-05-21