先ほど光センサーについての赤外線の影響を確認しました。 さらに、もうひとつの赤外線の影響について実験したいと思います。 こちらは世界大会に参加したときに、他の参加者からうわさで聞いていたころで、「他チームのRCXのプログラムや、ファームを書き換えてしまう」という妨害工作についてです。 本当にそのような妨害工作ができてしまうのでしょうか?
そこで、以下の実験をしてみました。
(1)パソコンに接続したIRタワーに2台の(待機状態の)RCXを近付けておき、プログラムのダウンロードをしてみました。 すると、途中で「RCXからの応答がありません。」というエラーが表示されることがありますが、2台のRCXにそのままプログラムがダウンロードされました。 (プログラムの実行も問題ありません。)
(2)パソコンに接続したIRタワーに1台の(待機状態の)RCXを近づけておき、長いプログラムのダウンロードをします。 プログラムのダウンロードが完了しないうちに、もう一台のRCXを置いてあるRCXの前に割り込ませます。 そうすると、プログラムのダウンロードは、割り込ませたRCXに継続されます。(最初からあったRCXはダウンロードされなくなり、待機状態に戻りました。) パソコン側は問題なくダウンロードが完了したようになりました。
この2つの実験からは、待機状態のRCXが複数台あると、故意でなくても意図しないRCXにプログラムをダウンロードしてしまう危険性があることが分かります。 特に、ロボットの競技会などでは、RCXが接近した状態で複数存在する可能性が高い場所では非常に危険ですね。 お互いに気を付けないと大変なことになりますね。
FLL(FIRST LEGO League)のルールには以下の記述があります。
あるチームのダウンロードによって、ほかのチームのダウンロードが消去されることがあります。せっかくのパフォーマンスが台無しにならない様、ピットエリア内のみでプログラムダウンロードが認められています。赤外線タワーでダウンロードの際は、ほかのチームと距離をおき、赤外線レベルは低に設定して利用し、ロボット使用外は電源を必ず切っておいてください。
これは、我々のチームだけでなく、参加者全員が遵守すべき事項だと思います。 特に、プログラムをダウンロードして、エラーもなく終了したにも関わらず、実際に実行してみるとプログラムが動かなかったり、前のプログラムのままだった場合は、他チームのRCXにダウンロードしてしまった可能性がありますよね。 今年の世界大会では、競技台の周りに陣取って、パソコン操作やダウンロードをやっていた海外のチームがありましたが、それらは(ルールに違反しているだけでなく)やってはいけない事として、もっとキチンとしてもらわなければならないと認識をしました。
もし、悪意のある参加者がパドックなどで、他チームのプログラムを書き換える意図でむやみにダウンロードを実施していると、RCXのプログラムが書き換えられる可能性が」あります。
これを避けるためには
①必要の無いときにはRCXの電源を切っておく。
②プログラムのダウンロードするとき以外は、RCXの赤外線ポートを何かでカバーしておく。
が有効と考えます。
そして、プログラムのダウンロードするときには、出力を小さくしてなるべく他チームに影響の無い様に配慮して作業をすることですね。(例えば、IRタワーを下に向けて、ロボットの上からダウンロードする等)
・・・お互いが被害者にも加害者にもならないために・・・
そういえば、世界大会常連組のロボットは、確かにRCXの赤外線ポートを銀紙などでカバーしていたなあ。