部活でロボットを作る過程で先輩や先生から「カラーセンサーは信用しないほうがいい」とか「EV3のカラーセンサーはク○だ」という話を何度も聞いてきました。外部でも同様のことを考えている人が多いように感じます。
ですが、LEGO社ともあろう企業がそんな半端なものを販売するのでしょうか?
結論
結論から言うと「EV3のカラーセンサーはクソではない」と私は考えています。
下で根拠を説明していきます。
根拠
まず「EV3のカラーセンサーはクソである」という風潮がどこから生まれているのか、を考えると「色モードの色判定がガバガバ」であることが挙げられます。これに関しては紛うことなき事実であり、EV3純正の色モードはクソです。ロボカップやWROでこれに困らない人はいないはずです。
そして、その解決策としてあるのがRGBとHSVです。これらの機能は、WROやロボカップの全国大会でスタンダードになりつつある気がします。
RGB
RGBは赤(Red)・緑(Green)・青(Blue)で表される色空間です。詳しくはこちらを参照
HSV
HSVは色相(Hue)・彩度(saturation)・明度(value)で表される色空間です。詳しくはこちらを参照
また、HSVはRGBをもとに計算して得られます。参照
こいつらを使うメリットは色の範囲を自分で決められることにあります。つまるところ、純正の色モードがクソなのはハードウェアではなく、ソフトウェア的な要因があるのだとということです。
これらを使うことで測定可能なオブジェクトとの距離も広がります。またHSVはRGBに比べて直感的にしきい値を指定することができます。
私も実際にWROでHSVを使いましたが、かなりの精度で色を判別することができました。
HiTechnic社のカラーセンサー
では、EV3カラーセンサーの代案としてよく上がるHiTechnic社のカラーセンサーはどうなのか。私はHiTechnic社のカラーセンサーを扱ったことがないので何とも言えませんが、EV3のカラーセンサーよりも高性能なことは確かなので持っているなら使うべきでしょう。ただ「HiTechnic社のセンサーは壊れやすい」という噂を聞いたことがあるので予備は用意した方がいいかもしれません。※この噂が本当なのかに関して責任は持てません。また、1つ1つのセンサーが8,000円程度と高額なのもネックとなります。
ロボットの大会で上位になるのにHiTechnic社のセンサーが必須条件かと言えば、決してそんなことはないと思います。実際にロボカップの全国大会ではEV3を使うチームのほとんどが純正センサーを採用しています。ただし、RGBやHSVを扱うことは、HiTechnic社のセンサーを使うことに比べてやや難易度が高いです。それを考えればHiTechnic社のセンサーを買うのもありだとと思います。