以下に、OpenINVENT-3.0.0以降で追加された機能の、Mapデータの蓄積と再利用の例をサンプルを用いて説明します。シナリオとしては、実環境を走行する場合において、事前に何も情報が無い状態から、距離センサーにより実際の環境を計測し、その情報を蓄積して、次回以降再利用するという学習ロボットのようなイメージです。(OpenINVENT-3.0.0によるシミュレーションMovie[MPEG2(95MB)]/[MPEG1(17MB)])
GrxUIでは、「EnvSampleWithBumpAndObstacle.wrl」モデルを利用した、「GrxUI_EnvSampleMap-RH2_withObstacleAndBumpSensor.xml」プロジェクトをご利用ください。
MapBuilderでは、「EnvEmptyModel.wrl」モデルを使用します。これは、「EnvSampleWithBumpAndObstacle.wrl」と外形が同じで中身の壁や障害物が無い空のモデルです。
スクリプトとして、「RtcHandle/EnvEmptyMap-RH2_withObstacleAndBumpSensor.py」を使用しています。OpenRTM-python環境が無い場合は、RH2モデルを使用し、MapBuilderのコンフィグレーションパラメータ「MapModel」のデフォルト値を上記の環境モデルに指定して起動してください。

左側のGrxUIでは環境モデルがありますが、右側のInventGUIでは何も無い、つまり、MapBuilderでロードした環境モデルが空ということで、実際には、障害物となる壁や物がある環境の情報を知らないという想定です。単純にSTARTからゴールに向けて計画経路を生成しています。

(*)OpenINVENT-4.0.0以降はver3.0.0と操作方法が異なるので注意が必要。
シミュレーションをSTARTし、走行を開始すると、距離センサーにより、MapBuilderRTCが保持していない障害物の情報が得られ、結果がInventGUIに表示されていきます。ここで、シミュレーションを停止し、全RTCがACTIVE状態にある中で、InventGUI上の「Export」ボタンを押下します。この時点でMapDataファイルが「MapBuilder/MapData」ディレクトリ内に作成されます。その後、全RTCをDeactivateします。
MapDataが作成されない場合、FAQのQ27を参照ください。

MapBuilderRTCのコンフィグレーションパラメータをRtSystemEditorなどで表示させ、上図の3行目のように、「ProbabilityDataFile」に上述のファイル名を入力します。Applyし、その後、全RTCをActivateします。

InventGUIの「2DMapBuilderタブ」の入力値が前回と全て同じ時にのみ、上図のように、前回検知した障害物情報が残った情報をInventGUIに表示しています。今回も同じSTART/GOALを指定しますが、今度は障害物を回避する経路が生成されます。