初めてのETロボコン (2) ―― 「よたよた走り」で試走会Iに挑む
2)の目的は,現状の灰色検知アルゴリズムの確度を把握することです.灰色検知アルゴリズムは,走行戦略の決定において大きなポイントとなります.モデル上では「灰色検知」や「分岐検知」などの一言で表されてしまうことが多いのですが,この機能が高い確度で実装できるかどうかが戦略上重要です.灰色検知の確度が低い=分岐点やゴールを誤検知する確率が高くなり,いくら難所の攻略方法を実装したとしても無駄になったり走行がめちゃくちゃになったりします.
もちろん,灰色検知の確度が高かろうと低かろうと,誤検知に対するリカバリ機能は必要です.ただ,リカバリ機能自体がそもそも灰色検知の「誤検知の仕方」に依存するので,まずはアルゴリズム的に信頼できる灰色検知を実現するのが必須です.
灰色検知のアルゴリズムは,ぱっと思いつくだけでも以下のものがあります.
- 灰色(0x888888)を光センサで読み取ったときの値を灰色と定義して,走行中にその値付近の値が取得されたら灰色ゾーン上だと認識する
- 一定時間以上,白色(0xffffff)付近の値でもなく,黒色(0x000000)付近の値でもない,中間的な値が取得されたら灰色ゾーン上だと認識する
- 光センサのログを一定期間保存し,現在の平均値が過去の平均値よりある程度高くなったら灰色ゾーン上だと認識する(白色-灰色間をトレースする場合と,白色-黒色間をトレースする場合とでは,前者の方が平均値が高い)
私たちは,こうしたアイデアを試行して簡単な実験をした後(写真1),そこそこの確度で認識できることを確認して(動画1),試走会Iに臨みました.
[写真1] どちらも値は「32」
光センサで灰色を読み取った値は32.一方,白と黒の境界も同じく32になる.だから「値が32,イコール灰色」と決め打ちで考えるのはNGなのである.
[動画1] 試走会I前の実験
とりあえず灰色を認識できることを確認した.