レスキュー

情報共有(for Ver 1.x)

はじめに

レスキューのサーバがVersion 1.0になり、新たな情報が出てきていると思います。
そこで、Version 0.x と区別するためにも、このページを作成させていただきました。
レスキュー/情報共有にupされていたVer 1.0についての情報もこちらに同様のものを作成いたしました。-名古屋大学Suntori 2010.4.13

このページの趣旨

レスキューのエージェントを開発を通して、疑問に思うことや情報が不足していると感じることが多々ありました。
ここでは他のページで扱っていないこと(ルールに関するもの、ホストプログラムに関するもの、アルゴリズムに関するもの、その他ドキュメントに乗っていないような情報)を載せていきます。
質問やその解答、便利なツール情報等どんなことでも書き込んで情報共有していきましょう。

お役立ち情報

20100425 RCRSMapDocument?(マップ作成)について

たとえば以下のようなNodeを用意したとします。

 <gml:Node gml:id="0">
    <gml:pointProperty>
       <gml:Point>
          <gml:coordinates>83.160,43.160</gml:coordinates>
       </gml:Point>
    </gml:pointProperty>
 </gml:Node>
 <gml:Node gml:id="1">
    <gml:pointProperty>
       <gml:Point>
          <gml:coordinates>183.160,43.160</gml:coordinates>
       </gml:Point>
    </gml:pointProperty>
 </gml:Node>
 <gml:Node gml:id="2">
    <gml:pointProperty>
       <gml:Point>
          <gml:coordinates>163.160,63.160</gml:coordinates>
       </gml:Point>
    </gml:pointProperty>
 </gml:Node>
 <gml:Node gml:id="3">
    <gml:pointProperty>
       <gml:Point>
          <gml:coordinates>103.160,63.160</gml:coordinates>
       </gml:Point>
    </gml:pointProperty>
 </gml:Node>

このNodeを利用して,例としてRoadを一つ作ってみます。

 <gml:Edge gml:id="100">
    <gml:directedNode orientation="-" xlink:href="#0"/>
    <gml:directedNode orientation="+" xlink:href="#1"/>
 </gml:Edge>
 <gml:Edge gml:id="101">
    <gml:directedNode orientation="-" xlink:href="#2"/>
    <gml:directedNode orientation="+" xlink:href="#1"/>
 </gml:Edge>
 <gml:Edge gml:id="102">
    <gml:directedNode orientation="-" xlink:href="#2"/>
    <gml:directedNode orientation="+" xlink:href="#3"/>
 </gml:Edge>
 <gml:Edge gml:id="103">
    <gml:directedNode orientation="-" xlink:href="#3"/>
    <gml:directedNode orientation="+" xlink:href="#0"/>
 </gml:Edge>
 
 <rcr:road gml:id="300">
    <gml:Face>
       <gml:directedEdge orientation="+" xlink:href="#100"/>
       <gml:directedEdge orientation="+" xlink:href="#101"/>
       <gml:directedEdge orientation="+" xlink:href="#102"/>
       <gml:directedEdge orientation="+" xlink:href="#103"/>
    </gml:Face>
 </rcr:road>

よしできた。さあ表示しよう!

result.png

おや?!なにやら変なRoadができてる部分があるぞ・・・。 今回はこれについて述べていきたいと思います。
上のコードで作成したものは図示すると以下のようになります。

ng.png

(矢印は作成したNodeの始点から終点へのベクトルを表します。)
この図を見てみると,矢印をたどっていってもスタート地点に戻ってこれないことがわかります。つまり,Roadを描くための経路が閉じていないということです。
これが失敗の原因です。
このような失敗を避けるための方法は二つあります。

解決法1(うまくAreaが表示できないことに対する)

この方法は少々めんどくさいです。
エッジを作成する際に,すべてのAreaが閉じた経路で作成されるようにベクトルの向きを調節してください。
今回の場合は,

 <gml:Edge gml:id="101">
    <gml:directedNode orientation="-" xlink:href="#2"/>
    <gml:directedNode orientation="+" xlink:href="#1"/>
 </gml:Edge>

という部分を

 <gml:Edge gml:id="101">
    <gml:directedNode orientation="-" xlink:href="#1"/>
    <gml:directedNode orientation="+" xlink:href="#2"/>
 </gml:Edge>

に修正します。
Areaの数が少ない場合は良いですが,少し大きめのマップを作成しようとするとこの方法ではイライラすると思います。

解決法2(うまくAreaが表示できないことに対する)

こちらの方法ではEdgeを作成する際には,まだベクトルの向きは特に考慮する必要はありません。
Areaを作成するときに「gml:directEdge」で「orientation」を用いて閉じた経路にするのです。
orientationは,これが"+"のときはEdgeを定義したときの向きをベクトルの向きとし, orientationが"-"のときはEdgeを定義したときと逆の向きをベクトルの向きとしてくれます。
今回の例では、

 <gml:directedEdge orientation="+" xlink:href="#101"/>

という部分を

 <gml:directedEdge orientation="-" xlink:href="#101"/>

とします。

修正後(うまくAreaが表示できないことに対する)

例で失敗した原因を修正し,正しく表示されるようにしたときのベクトルの向きは以下の図のようになります。

ok.png

これで正しく表示されるはずです。 間違ってたら修正お願いします。--Suntori 2010.04.28

Kernelとサブシミュレータを別々に起動する(ver 1.0)

レスキューサーバ1.0(nightly)を対象に,カーネルとサブシミュレータを別々に起動する方法.これにより,カーネルとサブシミュレータを別マシンで稼働させることができます.

対象:

   OS: Mac OS X(10.6.2)
       ※基本的にはrescue1.0とシェルスクリプト及びxtermが動作する環境なら問題はないと思います.
   サーバ: 2010年3月18日付のrescue-nightly-build

方法:

(1) 以下のシェルスクリプト2つ(添付ファイル参照)をboot/ディレクトリに保存する

(シェルスクリプトの中身について) 詳しくは各シェルスクリプトを読んでください.

両者ともに,boot/functions.shの一部を改造したものです.

  • startKernel.sh

クラスパスとオプションを指定して,kernel.StartKernel?を起動します.

クラスパスは,とりあえずjars/ディレクトリとlib/ディレクトリ以下全てのjarファイルを指定します.オプションはfunctions.sh内の関数startKernelにあるKERNEL_OPTIONSとほぼ同様です.

  • startSims.sh

SampleViewer?, TrafficSimulator?, FireSimulatorWrapper?, IgnitionSimulator?, CollapseSimulator?, ClearSimulator?, SampleCivilian?を,各々LaunchComponents?を介して起動します.

クラスパスにはlib/ディレクトリ以下のjarファイルを指定します.また,シェルスクリプト内のHOST変数にカーネルのIPアドレス,PORT変数にカーネルのポートを指定します.

(2) まずstartKernel.shを実行し,「Setup kernel options」の画面が立ち上がったら,"Simulators"に何もチェックが入っていないことを確認してOKを押す.するとKernelGUIの画面が立ち上がる.

(3) 次にstartSims.shを実行し,KernelGUIの画面右にある"Simulators"に,接続したシミュレータ群が表示されれば成功.Runを押してシミュレーションを開始できます.

シェルスクリプトの中でxtermを使っています.もし bashなどからのxtermの起動がコケる場合,xtermを起動してから,xterm内からこれらのシェルスクリプトを実行すればおそらく大丈夫です.--Ri-one

複数PCによる起動に関して(var.1.0)

ここではsample agentを複数のPCで起動する方法を記述します.

  1. サーバ側
    %ant start-kernel
    を行い、各エージェントの起動数をすべて0にしてから「OK」
  2. エージェント側(sample agentについてはこれで起動を確認) 以下のコマンドを実行
    %java -cp jars/sample.jar:jars/rescuecore2.jar:jars/standard.jar:lib/uncommons-maths-1.2.jar:
    ・・・:<lib内のすべてのjarファイル>・・・
    sample.LaunchSampleAgents -p 7000 -h <ホスト名 ex:127.0.0.1>
    以上で複数(2台)のPCによる起動を行うことができます.
    ※Windowsの場合はクラスパスを指定する際に:(コロン)ではなく;(セミコロン)を用いてください.

ツール情報

資料

20100318 勉強会資料

  • 2010_RCR.pdf Version1.0 での変更点について(フォルダ構成、Module、Mapなど)

20100425 RCRSMapDocument?

  • 4/17時点のMap作成ドキュメント.                          --NAITO

20100501 SampleMap?

  • JapanOpen?などでご活用ください.                          --NAITO

20101104 RCRSMapDocument_OSM変換編

  • レスキューマップ作成補足説明                          --NAITO

20101204 RCR講習会資料(Ri-one)

20101205 RCR講習会資料(SUNTORI)

20110314 RCRSMap作成Documentまとめ(11/03/14現在)

  • レスキューマップ作成資料 OSMの変換からGMLの編集,Scenarioの編集などまとめた資料となります. 頑張ってマップを増やしていきましょう.                          --NAITO

質問


添付ファイル: fileng.png 316件 [詳細] file秋キャンプ(修正版).ppt 767件 [詳細] filestartSims.sh 587件 [詳細] fileMapDocument110314.pdf 773件 [詳細] filemitake.tar.gz 469件 [詳細] fileresult.png 315件 [詳細] fileok.png 315件 [詳細] filestartKernel.sh 581件 [詳細] fileMapDocument補足.pdf 1081件 [詳細] file秋キャンプ講習第一部.ppt 818件 [詳細] file秋キャンプ講習第二部.ppt 721件 [詳細] fileRCRS_Map_Document.pdf 930件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-09-05 (月) 14:29:31 (438d)