こんにちは。二人目のソフト担当のSYです。ラインセンサや戦略といった全体的なプログラミングをしています。
今回は、SKY Crewの世界大会機の最大の特徴の一つである、円形ラインセンサ(エンジェルリング)について話していきたいと思います。
エンジェルリングを用いることで、絶対にアウトオブバウンスせず(理論上)、さらにラインの外のボールもとれるようになるのです!
エンジェルリングって何?
そもそもエンジェルリングとは、下の写真のようにラインセンサを隙間なく円形に並べ、ライン上では常にどれかしらのラインセンサが反応するようにしたものです。
世界大会では20個のラインセンサ素子と20個のLEDを半径約5㎝の円周上に並べました。
何ができるの?
1. ラインの位置が正確に分かる!
まず、エンジェルリングを用いることで、ロボットの向きがどうであろうと、どのような状態でライン上に乗っているかを正確に知ることができます。
下の図1のように、十字状に並べたラインセンサでは(ジャイロなしでは)自分が角にいるかなどはわからず、ラインの位置も大雑把でしかわからないため、アウトオブバウンスしてしまうことがあります。
また、場合分けなども多くなってしまい、動きが複雑になってしまいます。
一方、エンジェルリングでは、下の図2のように線の形や位置を明確に区別することができ、どちらに進めばライン内に戻れるかを間違えることは(おそらく)絶対にありません。
さらに、円形であるのでジャイロセンサや距離センサを使わずとも、単純なアルゴリズムと動きでライン内に戻れます。
2. ラインの位置の変化が分かる!
エンジェルリングを使えば、ロボットのどの部分が線の外に出ているのかを連続的に知ることができます。
そして、どのようにラインの位置が変化しているかが分かれば、ラインセンサが反応する間はロボットが完全に外に出ていないと分かるので、その間は外のボールを取りに行くことができるのです。
最後に
後編では、実際にはどのようなプログラムを書いたのか、エンジェルリングの改善点や欠点といったことについて話そうと考えています。
何かわかりにくいところや質問があればTwitterの質問箱やブログのコメントにてよろしくお願いします。
それでは後編をご期待ください!(´∀`)ノシ