前の記事はこちら RoboCupJunior Rescue New Simulation 被災者の発見・・・
自分のPythonの勉強も兼ねて、ちまちまと RoboCupJunior Rescue New Simulation のプログラム作りを楽しんでいます。
先日、やっと被災者の発見ができるようになったのですが・・・
改めてルールを見て、「これ」ダメなんじゃない!?」と思いました。
ルールには、ご丁寧に図まで掲載されていますよね。
(自分で書いておいてナニですが・・・笑)
少なくとも、Rescue Maze では、ロボットが経路の真ん中を通るようにします。
ですから、私の New SIM のプログラムもロボットが経路の真ん中を通るようにしています。
でも、それだと、New SIM では、(少なくともルール上は)被災者の発見が確実ではありません。
なぜなら、ロボットの中心が被災者から半タイルの距離に入っていなければ被災者発見にならないからです。(逆に、ロボットの中心が被災者から半タイルの距離に入っていないと、誤発見で減点されてしまいます。)
つまり、経路の真ん中を通るということは、被災者からの距離がギリギリ半タイルの距離を通ることになり、被災者発見と誤発見の微妙な境界上にあるということです。
今思うと、何でこんなルールになっているのでしょうか?
(Rescue Maze では、被災者から半タイルの距離の半円に「ロボットが掛かっていれば発見」になる)
ルール通りであれば、経路の真ん中を進む私のロボットは、運が良いと被災者発見の得点になるのですが・・・運が悪いと誤発見になってしまいます。
でも、実際には・・・経路の真ん中を進むロボットでも、ちゃんと被災者発見の得点になっています。
どうも、(ルール上は半タイルの距離となっていますが)実際には、半タイルより長い距離で被災者発見を判断しているようです。
試しに、どのくらいの距離で発見になるか、手動で確認してみると・・・
( x , z ) = ( -36 , -12 ) が、半タイルの座標なのですが、x方向に2cm、z方向に1cm ズレたところで被災者発見になりました。
と言うことで、半タイル分の距離よりかなり外れても被災者発見になるようです・・・(ルールの図と合ってない! 笑)
まあ、すこし判定を緩くして競技者に有利になるようにしてくれているのでしょうね。