AVE -1・ソフトウェアの秘密




センサによる補正


マイクロマウスでもっとも基本的で最も重要なこと。

そして、最もむずかしいことは、
「センサから得られたデータをもとに、走行を修正する」ことです。
センサが多数・多種になるほど扱いは難しくなりますが、より完璧な走行の修正を行うことができます。

AVE−1は、もっとも古典的なフォトインタラプタを用いたセンサを使っています。
詳しい仕様はハードウェアの該当欄を見ていただくとしてして、まずこのセンサの特性について述べておきます。

一言で表すと、このセンサは「ある・なし」の二つの状態しか取れません。
センサの直下に壁があれば、「ある」と返し、なければ「ない」と返します。


これを合計14個つけてあります。



二つは前壁用です。この前壁用センサは、マウスの停止位置の補正に重要な役割を果たしています。
例えば、1区画=18cmですが、もしも18.5cm進んでしまった場合。

困りますね、これが10回続くと、5cmもずれてしまいます。
そこで、前に壁があることを見つけると、その壁を利用して、進みすぎ、あるいは進まなさ過ぎを
修正しています。

この修正は、あまり厳密ではありませんが(AVE-1は10メートルも進んだら、1区画以上は確実にずれてしまう精度です)
それでも16区画分=228cmすすんでもずれを1区画未満にする程度の精度はあります。
(今回のフレッシュマンクラスではそのような区画は存在しなかったのですが、大会前日の試走会で、問題ないことを確認しています。)



残り12個は左右の壁を検出しています。
これらを利用して、マウスが迷路の中央を走るようにしています。

AVE-1は、左のセンサに関しては左から3つ目、右のセンサに関しては右から3つ目の位置に壁があると、
丁度迷路の真中を走っていることになるように、あらかじめ位置を決めてあります。

つまり、これより内側のセンサが反応していたり、逆に外側のセンサが反応していたら、真中を走っていないことになります。

これを利用して、車体の位置を修正しています。



具体的には・・・


探索時は、まず左側のセンサを見に行きます。
左側のセンサの外側(左から1番目か、2番目)に反応があったら、中央より右寄りを走っていることになります。
このときは、左側のモータを1パルス分遅らせて動かします。
逆に内側なら、右側のモータを1パルス分遅らせます。

もし、左のセンサに反応がなければ、右のセンサを見ます。
そして、同様に行います。

ここで重要なのは、「左に反応がなかったときだけ、右を見る」ということです。
これは逆でもいいんですが。

これをしないと、マウスがふらつく恐れがあります。
具体的には、進行方向が全体的に左右に傾いていたときに起こります。

そのような場合では、左から2番目と、右から2番目が同時に反応することがあり得ます。
これはまずいです。
この処理をちゃんとやっておかないと、うまくいきません。
(この辺は、ベテランK先生にご指導頂きました。K先生ありがとうございました。)


さて、これで十分・・・と思ったあなたはちょっと甘いです。
じつは、左側のセンサが同時に3つ、右側のセンサが同時に3つ反応する場合があり得るからです。
T字路なんかでは、そういうことが十分考えられます。
(この手のセンサならではの問題です。)

このような特殊な状況を考えると、
「最も信頼できるのは、内側のセンサ」
ということになります。(なぜかは、先ほどのT字路の場合を考えてみると分かると思います。)

結局、センサによる補正を行う場合は、一番内側のセンサを最優先とし、外側を一番優先順位を低いと考えると
うまくいきます。



次に、高速走行の場合ですが、実は基本的には探索時と同じです。
ただし
「1パルス遅らせる」
などという修正方法をとると、マウスが右へ左へと泳ぎ出します。(汗)


これは、方向修正しすぎによるものがほとんどです。
つまり、「右へより過ぎだから、真中へ戻そうとしたんだけど、戻してみたら今度は左へより過ぎだった」
というようなことが発生しているわけです。

そこで、
「左右のモータへ、パルスを伝達するのを少しだけ遅らせる」
という方法をとります。当然1パルス分未満、です。

また遅らせる量は、反応したセンサによって違うようにします。
一番内側と、ちょっとだけ内側と同じようにしていたのでは、先ほどのような状況になるか、
あるいは「ぜんぜん真中に戻ってない」という状況が発生してしまいます。



大体、このような方法でセンサによる補正を行っています。
結構いい加減ですが、これでも何とかなるもんです。
ただ・・・フレッシュマンの場合のみ・・・かもしれませんが。(苦笑)



この方法だと、高速走行時に「ふらふらとマウスが泳ぎ出す」のを避けられないことがあります。
片側しか壁がないとき、車体の傾きを戻しきれないときがあり得る、などの要因によるものです。



これを解決するには、車軸の延長上あたりにフォトインタラプタを置き、
それを利用して走行を修正するのが一番です。

実はAVE-1もそのような理由から、センサを22個装備する予定でした。
しかし、レギュレータに負担がかかりすぎ、シャットダウン機能が働いて、マイコンにリセットがかかってしまうという事態が頻発したため、
取りやめになりました。(当時は原因が、あまり分かっていなかった。)

次に作るAVE-2はひょっとするとセンサを22個搭載するかもしれません。
(レギュレータを複数個乗せれば、電源関係のトラブルは避けられるはずなので、電源系のトラブルは回避できそうです。)

AVE-2については、現在製作中、ということで・・・。



戻る