先日の「ロボットの鉄人」で、鉄人の一人が良いことを言っていたので、書いておきたいと思います。
「プログラムを動かしたら、最初にセンサーがちゃんと機能しているか表示するようにしろって言っているでしょう・・・」
はい、これ、とっても重要だと思います。
当たり前の話ですが・・・
センサーが壊れていたり、センサーとの接続がうまくいっていないと、センサーの値が正しく読み込まれません。
で、センサーの値が正しく読み込まれていないければ、(たとえ、プログラムが完璧でも)正しくロボットが動きませんよね。
で、どうするかというと・・・
(ロボカップジュニアのレスキューの競技の場合ですが)
競技の8分の中で calibration を実施すれば良いのですが・・・これをしないチームが多いです。
さらに、上で鉄人が言ったように・・・プログラムを起動したら、最初に全部のセンサーの値を読んで、表示します。人間がそれを見て、センサーがちゃんと動作している(いわゆる「センサーが生きてる」)ことを確認してから競技を開始すれば、確実性が上がりますよね。
もし、センサーが壊れていたら交換や修理をするしかないのですが・・・センサーへの接続ケーブルが接続されていなかったり、接続が 甘い(中途半端)な場合は・・・
「よしロボットスタート」「はい、得点走行開始」
「あれ、おかしいな、ちゃんと動かない・・・え~と、競技進行停止」「はい、競技進行停止」
「もう一回、スタート」「はい、競技再開」
「やっぱりダメだ・・・あれ、センサーの線が抜けてた、これ直してもいいですか?」「修理になるので、できません」
「え~っ! じゃあ、競技終了します」「はい、競技終了」
という、感じで、悲しい結果になりますね。(笑)
特に最近は、時短のために「一発勝負!」の競技会が多いので、後悔がないようにして欲しいものです。
M&Yは、ロボットに2つのプログラムを入れていました。
1つは、競技を実施するプログラムで、もう一つはすべてのセンサーの値をリアルタイムでLCDに表示するプログラムです。競技の8分間が始まると、まずは calibration を宣言して、すべてのセンサーが「生きているか」を確認しました。それから、得点走行を開始しました。
今どきのロボットはセンサーが沢山あるので、チェックも大変です。
左右のタッチセンサーは、バンパーを押したらちゃんと反応するか? 床の色は見分けられるか、4つの距離センサーは機能しているか、左右の温度センサーはヒーターで反応するか、ロボットを傾けると加速度センサーが反応するか・・・この短い時間で「正しい値かどうか」は分からないと思いますが、少なくとも何かのアクションに対して「値が変化するか」は確認できますよね。
で・・・ここまでしても、2014年のジャパンオープンの3回目の競技で、得点走行後にジャイロがちゃんと機能しなくて、ロボットがグルグル回転してしまい、0点で競技終了になってしまいました。(1回目、2回目が満点だったので、競技には優勝できましたけど・・・)
ということで、直前の確認は大切だよ・・・でも「直前の確認をしたからといって、絶対に本番で大丈夫」な訳ではない、という話です。