まいまい式は死んだ? 〜 EV3カラーセンサー動作解析

この投稿は ETロボコン Advent Calendar 2017 の 4日目 の記事です。

背景

初代 Mindstorms RCX、二代目 Mindstorms NXT の光センサーは「周辺光 (Ambient Light)」の影響を強く受けました。具体的には、ETロボコンの競技コースに天窓から日差しが差し込んだり、舞台照明用のスポットライトを競技コースに当てると、光センサーの測定値が想定外の値に触れてしまい、コースアウトする走行体が続出しました。

この周辺光の影響を打ち消す手段として私が2009年の関東地区大会で開発した方法が『まいまい式』です。

Mindstorms NXTが走行体に採用されていた2014年大会頃までは、さまざまな参加チームの皆さんが「まいまい式」に改良を加えて提案してくださったのですが、走行体がMindstorms EV3に置き換わってからは「まいまい式」が、ETロボコンで言及される回数も減りました。

Mindstorms EV3の標準カラーセンサー(光センサー)を使ってみると、周辺光の影響を受けにくくなっていることが経験的にわかります。では「まいまい式」は死んでしまったのか? オワコンなのか? ナシ寄りのナシなのか? EV3カラーセンサーの動作を検証して確かめてみます。 😀

 

光センサー測定原理

Mindstormsシリーズで使われている光センサー(カラーセンサー)の測定方法は単純です。ライントレースロボットのばあい、投光照明 (Floodlight)と呼ばれるLEDからコース(床)に向けて光を当てて、コースが反射した光(=反射光)の強弱を光センサーの受光素子で測定することで床に描かれたラインの明度(黒白)を測定します。

この測定方法は初代RCXから3代目EV3の標準カラーセンサーに至るまで変わっていません。

「周辺光(たとえば天井灯の明るさ)」が「反射光」よりも十分に暗ければ(弱ければ)影響はないのですが、「周辺光」が「反射光」に対して無視できない程度に「明るい(強い)」環境では、光センサーの受光素子で測定する値は「反射光」+「周辺光」となります。そして「周辺光」が競技コースの場所によりムラ(明暗)があると、「反射光の明度の差」と「周辺光の明度の差」がミックスしてしまい、ライントレースロボットがコースラインを見失ってコースアウトする原因になっていました。

 

ハイスピードカメラ撮影

ハイスピードカメラ(Casio EXILIM EX-F1)で、カラーセンサーのLED(Flood Light)を撮影してみます。モードは反射モードです。毎秒1200コマで撮影した動画をスロー再生させています。

カラーセンサーの赤色LEDが明滅していることがわかります。しかしながら、1秒間に1200コマの高速で撮影してもエリアシング(Aliasing)を起こしているようで、明滅の瞬間がハッキリとは撮影できていません。

 

光測定 ブレッドボード回路

動画撮影ではカラーセンサーのLEDの明滅をハッキリと捉えることができなかったため、照度センサー(phototransistor)を使って、以下の写真のような簡単な電子回路を組み、オシロスコープで電圧の時間変化を測定しました。

フォトトランジスタ ブレッドボード回路

 

光測定 回路図

フォトトランジスタ回路図

フォトトランジスターは明るさ(光の強さ)に比例して電流が流れるため、直列に接続した抵抗のドロップ電圧をオシロスコープで測定します。

 

反射モード測定結果


反射モード オシロスコープ画面

約1000マイクロ秒(=1ミリ秒)の周期でLEDが明滅していることがわかります。
LEDが点灯している期間は意外に短く約150マイクロ秒でした。

 

RGBモード測定結果


RGBモード オシロスコープ画面

明滅の周期は反射モードと同じ約1000マイクロ秒でした。
LEDの点灯のピークが3段階になっていますが、これは赤、青、緑の3色のLEDが交互に点灯している結果だと思われます。

 

まとめ

EV3カラーセンサーは標準動作で「まいまい式」をつかい周辺光をキャンセルしています。まいまい式は死んでいなかった… 😀

今回の動作解析には「反射(reflection)モード」と「RGBモード」で測定方法の違いはあるか?という裏テーマがあったのですが、この結果だけをみると、いずれの方法でも周辺光のキャンセル処理が働いているし、測定周期も同じということで、大きな違いはないと思われます。