対策を打って改善すれば、その対策方法の延長線上にゴールはあるのか?
稀ではありますが、ゴールに少しずつ近づけても、結局ゴールできない案件に出会うことがあります。
本件も”正確なボールの方位(位置)を求める”がテーマならゴールできない案件です。
パルスボールセンサの数を4個、8個、16個と増やせば精度向上して行きますが、無数に増やしても正確なボールの方位は求められないと言う事です。
パルスボールセンサを円形に沢山並べるアイデアは、ボール補足に必要な概ねの方位は求められるので実用的で問題がある訳ではありません。
ある程度の数から投資に見合う効果が得られなくなる事を理解して頂ければと思っています。
正確度・精密度共に詰め切れない原因はパルスボールの等方向性(赤外線の放射が全方位に無指向であること)が悪い事に起因します。
パルスボールのIRLED配光問題
パルスボールは、IRLEDが4枚のプリント基板に4-6-6-4のフォーメーションで配置されています。
センサからは、この個々のIRLEDの配光の集まりとして見えます。
ボールとロボットの距離が一定でも、センサの光軸とIRLEDの光軸が合えばセンサ出力は高くなり光軸がズレればセンサ出力は低くなります。
つまりボールの姿勢によってロボットからの見え方が変わります。
この様にロボットのボールセンサの光軸中心の平面を青線とすると赤丸の2個のIRLEDの光が支配的になります。
さらに右のIRLEDの方が左のIRLEDより強く見えます。
この状態で下図の様にパルスボールを平行移動させながらセンサの値を記録します。
横軸は位置を示していて、ボールを左から右へ平行移動させた結果です。
先ず右側のIRLEDの光軸がセンサを照らして高い値が出ます。
センサの正面(グラフの真ん中)では、どちらのIRLEDからも照らされないので最小値となり、左に移動すると左側IRLEDの光軸がわずかにそれながらもセンサの値を押し上げます。
勘の良い方はセンサの数を増やしても正確な方位を得られない事にお気づきと思います。(数を増やしても、このグラフの解像度と線の平滑度を向上させるだけです)
左右対称で中央が暗い場合なら全周のセンサの値を総合判断して中央の暗く見えている方位が正しいと判断できますが、これはボールセンサの光軸中心の平面にパルスボールのIRLEDの配列平面が一致かつ左右対象の時や、偶然配光の対称性が良い時だけです。
確率的には配光が非対称の方が圧倒的に多いので、常に検出方位のブレが生じます。
またブレの方向や量は不定で、規則性が無いように振舞います。
これを解決するにはボールと同じかそれ以上の大きさの開口部を持つ光学素子で受光して光学的に積分する方法が考えられます。
具体的にはミラーで受けてセンサに集光する方法です。
ロボカップジュニアではラビリンスコード(現RCJ理事、年を取ったのを実感します)が最初にミラーで集光するアイデアを採用しています。
ミラーの集光具合(左)、センサの取付位置(右)
これは太陽光で集光具合を見たものです。
右の図の様にボールセンサをミラーに向けて(ボールを背にして)取り付けます。
焦点より内側にセンサを取り付けると広い視野が得られます。
焦点に置くと正面付近のみに感度があるピーキーなセンサになります。
この位置はセンサの性格を決めるので充分に検討する必要があります。
センサをダイレクトにボールの向きに取り付けた場合と、ミラーを用いた場合の比較です。
ミラーを用いると概ね中央に最大値があり、ボールの配光影響を軽減していることが分かります。
ボールが中央を離れていく過程も素直な特性ですので、4方向(4個)配置するだけで正確な方位を得ることができます。
先ほど”ボールと同じかそれ以上の大きさの開口部を持つ光学素子で受光”と記述しましたが、実用的には完全に配光影響を無くす必要はなく、最悪の配光状態でもボールを中央に捉える事ができるサイズを求めればOKです。
今回の実験に用いた”BIWAKO OPEN 2021 Summer 機”のミラーの開口部寸法は40mmです。
方位判定
方位を精度良く示したいと思うのは人情(もちろん1度分解能を極めるアプローチを否定するものではありません)ですが、ロボットの行動決定に必要な境界線は限られます。
例えば時計の文字盤の様に12等分した場合”6時”方向にボールがあるでは意味がありません。
ロボットは時計回り旋回と反時計回り旋回のどちらが良いかを判断したので5時よりなのか7時よりなのかが知りたいのです。
同じく”3時”、”9時”も不十分でロボットが知りたいのはボールが自分より前にあるのか後ろにあるのかです。
ロボットの制御を見据えた上で、方位判定アルゴリズムを考えます。
こんな感じの境界線で方位判定します。
時間は雰囲気ですので細かい事は目をつぶってください。
ザックリ説明すると、”11時”、”12時”、”1時”が比例制御の範囲で、”10時”、”2時”が比例制御へ繋げる為の減速区間、”7時”、”8時”は”フルスピード反時計回り超信地旋回、”5時”、”4時”はフルスピード時計回り超信地旋回と言う感じです。
実際に使用している方位判定関数で判定結果をシリアル出力しながら動画撮影(2回転してます)したものです。
ボールが棒に固定されているので各センサ毎にボールを観測する位置が異なり、配光が変化しながらなので、実際に起きる最悪の条件に近い評価とも言えます。
表示のバタつきはシリアルモニタの問題ですが、判定値そのものの迷いや誤判定が無く安定している事が分かると思いいます。
最後に
RCJにて先陣のアイデアをアーカイブ公開していれば、書かずに済んだ記事かもしれません。
子供たちのアイデアを技術に基づく解説を付けて公開・蓄積すればより洗練された新しいアイデアを生む土壌になると思うのですが、プレゼンシートも大会当日のみの展示では勿体ないと思っています。