前の記事はこちら New Rescue Simulation を動かしてみる・・・その7
さて、とりあえず、普通に迷路探索(単純な右手法ですが・・・)ができるようになりました。
そうすると、次はやっぱり被災者の発見ですよね。
被災者を発見するためには、温度の被災者を発見するための温度センサー、文字の被災者を発見するためのカメラの制御をしなければなりません。
で、それらの使い方が Tutorial にあるらしいのですが・・・・私には理解できませんでした。(英語だし・・・そもそも Python を知らないから・・・)
じゃあ、どうするか?
一番安易な方法をとりました。
それは・・・Tutorial 1 の Example code demo にあるサンプルコード(ExamplePlayerController_updated.py)を右手法に改造する、です。
ExamplePlayerController_updated.py は、熱の被災者も発見できるし、文字の被災者も発見できます。ただ、迷路探索がランダム走行です。(とりあえず直進できる間は直進する。壁にぶち当たったら、右回転する・・・という感じ) さらに、なぜか沼地のタイルに入らない様になっていました。
だから、改造するのは・・・
・右手法にする。
→右前の壁を調べて、壁との距離が近ければ左前に進む、壁との距離が遠ければ右前に進む。(ちょうど良い距離であれば直進する)
・沼地には入らない → 特に検知せずに、普通に沼地に入る
・被災者を発見した後に、バックする → 被災者を発見した後に、ちょっと左回転
単純にこのように変更すると・・・
右手法で進んで、被災者も発見できるサンプルプログラムになりました。
ただ・・・これは、元々のルールというか、ロボットの設定が悪いと思うのですけど・・・文字の被災者を発見するためのカメラがロボットの前方に設置されているので、経路の真ん前に(文字の)被災者が設置されていないと、発見できません。(熱の被災者は、発見率が高いです)
何で、カメラが3つも搭載されているのにの、前、右前、左前のように前側に寄せられているのでしょうか?
私の想像だと、
①リモート操作をするメジャーレスキューの流れで前側に設置してある
②参考にしたのが CoSpace Rescue で、そのロボットの距離センサーが前、右前、左前に設置してあったので、それを模した
のどちらかかなぁ・・・と想像しています。
Rescue Maze のロボットとしては、前はいらないから、右か左(つまり真横)にカメラがあるとありがたいのですが・・・
とりあえず、動いたので・・・また、時間のある時に自分なりに効率化(無駄なコードを削除するとか)をやってみたいと思いますが・・・なにしろ Python 知らないので、まずは、その勉強からでしょうか!?
続きの記事はこちら New Rescue Simulation を動かしてみる・・・その9