MapViewerコンポーネント機能仕様

はじめに

本コンポーネントは,自律移動ロボットの大経路計画モジュール群の一部であり, 経路計画に使用される地図データや経路の表示を行う。

大経路のモジュール郡は以下から構成されている。RGISOperator以外はubuntu linux 8.04上で動作する。

概要

本コンポーネントの提供する機能は以下の通りである。

入出力

ポート構成

本コンポーネントのポート構成は以下の通り

ポートの構成
名称 ポートの種類 データの型 説明
inn (nは数字) 入力ポート TimedString XMLにシリアライズされたオブジェクトを受信するポート。 設定ファイルにて個数を変更可能。デフォルトのポート数は1
out 出力ポート TimedString このコンポーネントの処理結果を出力するポート。 出力データはXMLにシリアライズされて送信されるため,テキスト型である。

入出力データ仕様

入力ポート(in) および出力ポート(out)では,データはXMLにシリアライ ズされて送信される。シリアライズ/デシリアライズにはBoostライブラリ1.34.1を使用している。 送受信のデータフォーマットについては以下のファイル内のデータ定義を参照 のこと。

参照:
baseRTC.h

xml_serdes.h

navigation_data.h

Localization.h

GridMap.h

本コンポーネントが入出力するデータ形式は以下の通りである。ただし,構造 体名の部分はそれぞれXMLにシリアライズされた文字列とする。

data = header, object-data;

header = baseRTC::Header;

object-data = NavData::PotentialGrid 

            | NavData::CommandString 

            | NavData::TaggedPoint 

            | Path 

            | GridMap 

            | Localization 

            ;

ディレクトリ構成

本モジュールのファイル/ディレクトリ構成は以下の通りである。

RTCモジュール群の中での位置

[mod_path_planトップディレクトリ]
├── common
│   ├── include
│   └── lib
├── MapViewerRtc
│   ├── bin
│   │   ├── images
│   │   └── init
│   ├── doc
│   │   └── html
│   └── src
│        ├── doxydoc
│        │   └── images
│        ├── images
│        └── init
(以下略)

MapViewerRtcモジュール内の構成

MapViewerRtc
├── bin                         バイナリ
│   ├── MapViewerComp            コンポーネントバイナリ
│   ├── MapViewer.xml            コンポーネント設定ファイル
│   └── rtc.conf                 コンポーネント設定ファイル
├── doc                         ドキュメント
│   └── html                      HTMLファイル群
└── src                         コンポーネントのソースディレクトリ
    ├── mapviewer.pro           Qtのqmake用プロジェクトファイル
    ├── Doxyfile
    ├── common_defs.h
    ├── config_data.cpp
    ├── config_data.h
    ├── debug_utils.cpp
    ├── debug_utils.h
    ├── gui_main.cpp
    ├── gui_main.h
    ├── gui_settings.cpp
    ├── gui_settings.h
    ├── images
    │   ├── 24-em-check.png
    │   ├── 24-em-cross.png
    │   ├── camera.png
    │   ├── camera_win.png
    │   ├── down_arrow.png
    │   ├── floppy.png
    │   ├── map.png
    │   ├── pos_set.png
    │   ├── trashcan_full.png
    │   ├── up_arrow.png
    │   ├── zoomin.png
    │   └── zoomout.png
    ├── images.qrc
    ├── layer_archive.cpp
    ├── layer_archive.h
    ├── layer_view.cpp
    ├── layer_view.h
    ├── main.cpp
    ├── map_grid.cpp
    ├── map_grid.h
    ├── map_layer.cpp
    ├── map_layer.h
    ├── map_layer_delegate.cpp
    ├── map_layer_delegate.h
    ├── map_layer_list_model.cpp
    ├── map_layer_list_model.h
    ├── map_layer_table_view.h
    ├── map_manager.cpp
    ├── map_manager.h
    ├── map_view.cpp
    ├── map_view.h
    ├── mapview_rtc.cpp
    ├── mapview_rtc.h
    ├── rtc.conf
    ├── shared_queue.h
    ├── widget_observer.cpp
    ├── widget_observer.h
    └── mainpage.txt

 

使用方法

起動

起動の順序は以下の通り。

以下の方法はEclipse上のRTSystemEditorで行うことを想定している。

  1. 事前準備
    • OmniORBネームサービスの設定が適切に行われていること
    • WindowsPC上でRGISOperatorコンポーネントを起動する
    • RGISOperatorの設定を行う(Eclipse上のRTSystemEditorから行っても,あらかじめデフォルトの設定ファイルを書き換えておいても良い)
  2. コンポーネントのバイナリを実行する
    • バイナリの置き場所に移動
    • $ ./MapViewerComp
  3. ポートを接続する。
    connection4.png

    • 入力ポートをXMLを生成するコンポーネントへ接続
    • 出力ポートをXMLを受信するコンポーネントへ接続
  4. コンポーネントをアクティベートする。

上記の接続図においては,入力ポートをGlobalNavigation(大経路計画)コンポーネント に接続し,出力ポートをstrinコンポーネントに接続している。(strinは,テストに使用したポート内容をダンプするコンポーネントである)

この接続では,大経路からの

を受信する。またMapViewerの出力はstrinに分配される。 MapViewerの送信出力は下記のように処理される。現在のところ出力は GUIで指定した目的地と現在地である。

ユーザインターフェース

ユーザインターフェースは下記二つのウィンドウからなる。

  1. MapViewウィンドウ
  2. LayerViewウィンドウ
それぞれについて以下で説明する。

MapViewウィンドウ

mapview_win_usage.png

このウィンドウは,地図の情報を実際に表示するウィンドウである。マウス/ ボタンの操作により,地図のスクロールやズームイン,ズームアウトが可能で ある。

各部の使用方法
名称 機能
ズームインボタン クリックすることにより地図が拡大する
ズームアウトボタン クリックすることにより地図が縮小する
ズーム調整スライダ スライドすることで地図が拡大/縮小する。カーソルがこの上にあるときにマウスホイールを操作することでも拡大,縮小ができる
座標グリッド表示/非表示切替えチェックボックス 座標線グリッドの表示/非表示を切り替える
autoscroll on/off切替えチェックボックス 地図のオートスクロールをon/offする
カーソル位置座標,縮尺の表示 マウス位置に対応する実際の位置,グリッド間隔を表示する
地図スナップショットの保存 表示中の地図を画像として保存することが出来る
その他 地図画面上で右クリックすることにより,目的地を設定することができる

LayerViewウィンドウ

layer_win_usage.png

このウィンドウは,地図レイヤーの情報の表示する。また描画順,不透明度等 の設定,レイヤーの保存,新規レイヤーの読み込みが可能である。

各部の使用方法
名称 機能
可視/不可視表示 レイヤがMapViewウィンドウに表示されるかどうかを設定する
不透明度表示 レイヤの不透明度をパーセント表示する
レイヤ名称表示 レイヤの名称を文字列で表示する
レイヤの表示順序設定ボタン クリックすることで選択したレイヤの表示順を変更する
その他 地図画面上で右クリックすることにより,以下が可能である。
  • 新規レイヤーの読み込み
  • レイヤーの削除

終了

終了順序は以下の通り

  1. 本コンポーネントをディアクティベートする
  2. コンポーネントを終了する

ビルド方法

doc/READMEを参照

設定用XMLファイルについて

本コンポーネントは,初期化時に設定ファイルを読み込む。 RTCのコンフィグで読み込むファイルを設定可能である。 デフォルトでは,バイナリが起動されたディレクトリにあるMapViewer.xmlであ る。現在設定可能な項目は下記の通りである。それ以外のタグを指定しても無 視される。


マップビューワコンポーネントに対してThu Jun 17 20:24:08 2010に生成されました。  doxygen 1.5.5