CoSpace Rescue は、オブジェクトを収集し、収集箱に入れる・・・こんな単純なゲームです。
もし、オブジェクトを収集しても、ロボットに搭載できるのは最大6個までです。
ロボットに搭載したオブジェクトをオレンジ色の収集箱に入れると、また6個のオブジェクトを収集できるようになります。
だから・・・オブジェクトの収集、収取箱に入れる を効率良く繰り返すことが高得点につながります。
で、普通に考えると、左右のカラーセンサーがオレンジ色になったら収集箱に入ったと判断して、「Deposit」の動作をさせます。
CoSpace Rescue のヒント集である CoSpace Rescue Flashcaed - 4 Feb 2015.pdf にも同様のやり方が書かれています。
勿論、私もそのようにしていました。
(していました・・・と、過去形で書いたのは、現在はしていないからです。)
このやり方でやると・・・
収取箱に入れる(Deposit)ことができないことがあります。
うまくいかない時には・・・せっかく、6個のオブジェクトを収集(搭載)して、ロボットが収集箱に入り、格納(Deposit) の動作をしても、持っているオブジェクトがクリアされません。(勿論、得点も増えません) しかも、Deposit に失敗したことが、プログラム側から判らないので、ロボットは、「搭載したオブジェクトは全て降ろして、身軽になった・・・さあ、新たなオブジェクトを探すぞ!」と意気揚々と収集を再開するのですが・・・せっかく見つけたオブジェクトを取集できなくて、全くの無駄な時間を過ごすことになります。 LoadObjects 変数は、実際に搭載しているオブジェクトの数とは関係なく 0 クリアされてしまいます。 実際に搭載しているオブジェクトの数や種類を示すシステム変数を公開してくれれば良いのに・・・
話が、長くなりましたが・・・
しつこく書きますが、収集箱に入ってオブジェクトを格納しようとしても格納できない(Depositに失敗する)場合があるということです。
これには、いくつかのパターンがあり
ロボットが収取箱に入って停止すると
①画面右上の動作ログに Depsiting・・・ と2行表示されて格納される(Deposit 成功)
②画面右上の動作ログに Depsiting・・・ と2行表示されたのに格納されない(Deposit 失敗)
③画面右上の動作ログに Depsiting・・・ と1行だけ表示されて格納されない(Deposit 失敗)
④画面右上の動作ログに Depsiting・・・ が表示されない(Deposit 失敗)
の4種類があります。
いずれも、収集箱を出ると、LoadObjects 変数は 0 にクリアされているので、プログラム側からは格納に成功したのか失敗したのかは判断できません。
で・・・この誤検知(②~④の状態)をどうやって回避するか・・・いろいろやってみたのですが、そう簡単ではありませんでした。要は、プログラム(ロボット)は、左右のカラーセンサーがオレンジだと判断したのに、CsBotは「収集箱に入っていない」と判断している訳です。もう、最初は「CsBotはバカだなぁ」とか、「シンガポールに連絡して文句を言おうか・・・」などと考えていました。
でも、文句を言わなくて良かったです。(笑)
結局、②~④はきちんと左右のカラーセンサーがオレンジ色の上で停止していない・・・ということのようです。
LoadObject の変数は、プログラムから FindObject を発行すれば値が増えて、 Deposit を発行すれば値が0になる・・・単純にそのような動きでした。だから、オブジェクトの無いところでも値が増えて、収集箱でないところでも0になります。
じゃあ、どうすればよいか・・・単純にロボットを完全にオレンジの領域に入れれば、文句なく CsBot が収集箱に格納したと判断してくれます。
さて、どうしますかねぇ・・・(笑)
要は、収集箱の(最低)30cm×30cmの領域にロボットが完全に入っていれば CsBot も文句を言わずに、格納してくれます。じゃあ、どうやって、ロボットを完全にオレンジ色の領域にいれるのか・・・
これも、発想の転換が必要かと・・・レスキューラインの考えよりもレスキューメイズの方が近いかも・・・(普通にCoSpace Rescue のプログラムの常識なのかもしれませんが)自分自身で思いついた時には「なんだ、こんな単純なことか・・・」と笑っちゃいました。
(Stage2限定ですが・・・)
アクセス拒否されるのはなぜでしょうか?
トラブルシューティング、アンスト、再起動
考えつく限りは試してみました。
パス'C:\Users\---\Microsoft Robotics Dev Studio 4\CS\CSR\Virtual Bule,dll'へのアクセスが拒否されました。
CoSpaceの記事のところのコメントなので、「CoSpace Rescue Simulator 2018」についての質問だと思うのですが・・・環境や、状況をもうちょっと書いていただけるとコメントが付きやすいと思います。
今年、我が家のすべてのPCをWindows10に変更したときに、CsBotを消してしまったので動作環境(確認環境)がありません。
CsBotでプロジェクトのセーブはできるけど、ロードができないということでしょうか?
一般的な話として、インストールするときに「管理者として実行」をしてみたらどうでしょうか?
正式な質問として、レスキューシュミレーション技術委員会か、CoSpaceRobot Technical Support Team に問い合わせるのが良いと思います。
また、プロジェクトをロードではなく最初から作り直すのも一つの手だと思います
一行目はDepositの成功について書かれたのだと思いますが・・・
Depositの成功は
・両方のカラーセンサーがcollection boxの色を検知している状態で、ロボットが停止して3秒間LEDを点滅する。
の後に「ロボットが自らcollection boxから出る。」が必要です。