前の記事はこちら 再度・・・New Rescue Simulation を動かしてみる・・・
前回のタイトル「・・・動かしてみる」なのに、動かしてないじゃないか・・・と自分で突っ込みを入れています。
今回は、ちゃんと動かしてみます。(といっても、サンプルプログラムです)
まず、基本はここ
このページの中ほどの
Tutorial 1: Introduction, installation and getting started with basic movement
をクリックしてリンク先に飛びます。
Tutorial 1: Introduction to the platform and first steps
この中に、また「Download and installation」が掲載されているのですが、すでに別項目でインストール済なので、ここにはいらないですよね。
さて、サンプルのコードは・・・
Example code demo の中の
The complete sample code can be found either here
のリンク先にあります。
リンク先に飛ぶと・・・Pythonのソ-スが表示されるので、このソースが格納されたファイルをダウンロードすれば良いと思うのですが・・・やりかたが分かりません。(たんに GitHubの使い方を知らない)
最初に、よくわからずに、コピペでテキストファイルに貼り付けたけど、それでは動作しませんでした。
GitHubを多少知っているMに助けてもらって、ファイルを落としました。
Mが実施した操作は以下のとおり
① RescueMaze のディレクトリに戻る
② code ボタンの Download ZIP で、すべてのファイルを含んだZIPファイルをダウンロ-ド
③ ダウンロードしたZIPファイルを展開して、player_controllers の中にある ExamplePlayerController_updated.py を取り出す
これが正解かわかりませんが・・・今回は、こんな面倒臭いことをして入手しました。
では、このサンプルプログラムを動かしてみます。
SampleWorld.wbt
をダブルクリックしてフィールドを表示します。
画面左の LOAD CONTROLLER をクリックして、(先ほど取り出した)ExamplePlayerController_updated.py を指定します。
そうしたら、画面左の 「▷」ボタンをクリックします。
フィールドの手前のほうに、ロボット(と緑色のスタートタイル)が表示されて、ロボットが動き出します。
ロボットが動き出すと、緑色のスタートタイルの表示は消えます。(これは、緑色のタイルを残すと、簡単にスタートタイルに戻ったことの判断ができてしまうからだそうです。)
で、真っすぐ進んで、正面にある暖かい被災者を発見して得点を得ます。そうすると、被災者が消えます。救助したのだから被災者が消えるのはある意味正しいのですが・・・実機のMazeに慣れた身には、なんか違和感が・・・(笑)
なんとなく、ロボットの動きを見てると・・・
①壁にぶつかるまで直進
②前に壁があるときは右回転
というアルゴリズムのように思います。
(これ、Rescue-B のどこぞのチームがやっていたアルゴリズムに似てます・・・笑)
私のPCの環境だと、同じところをグルグル回るだけになってしまいます。
灰色のタイルはチェックポイントなので、到達すれば得点になるのですが、そこまで行きません。
黒色のタイル(落とし穴)に落ちると、LOPになるのですが・・・やっぱり、そこまで行きません。(笑)
とりあえず、サンプルプログラムが動いたということで、今回は終わりなのですが・・・
画面に「RELOCATE」ボタンがあります。これは、Lack of Progress(競技信仰停止)になったときに押すボタンだと思うのですが、何で名称が「LOP」ではないのでしょうか?
おそらく、このプラットフォームが CoSpace Rescue の流れでできているので、CsBot にあった ReLocate をそのまま使ったのかな!? と考えています。ルールにも「RELOCATE」 という単語は出てこないので、違和感です。
続きの記事はこちら New Rescue Simulation を動かしてみる・・・その3