2022年3月7日
SPIKE WRO2022 RoboMissionエレメンタリーの技術要素
今回はWRO2022 RoboMissionカテゴリーのエレメンタリークラスでの競技において必要な技術を検証していきます。 エレメンタリーではガーデンロボットをテーマにロボットが草刈りをしたり、雑草を集めたり、進路上にいるてんとう虫を動かしたりするタスクがあります。本記事では簡単なルールの理解と、ルールから一部抜粋してロボットの動きを確認していきます。
※本記事内に記載している競技内容やルールについては、あくまで個人での理解ですので誤っている場合があります。WRO2022の競技に関係・挑戦する方は必ず公式のルールを参照してください。
今回の機能を紹介する上で簡易的な車体を用意します。 (ここではSPIKEプライム ラージハブを地面と水平になるように組み立ててください。)
車体に使用しているハードウェア
- SPIIKEプライム ラージハブ
- Mモーター×2(A,Eポート)
- Lモーター(Cポート)
- カラーセンサー(Fポート)
- 超音波センサー(Dポート)
カラーセンサーは正面に向けて、超音波センサーは側面に向けて取り付けられています。
本記事内で作成したプログラムの動作に関しては以下の動画を参照してください。
(https://youtu.be/7d_BcR3qs04)
◆エレメンタリー オブジェクト及びタスクについて
エレメンタリーでのオブジェクトは大きく分けて5種類あります。
- 草
土台部分と、上に乗せられる部品で構成されています。コースに全部で3つ配置され、競技中に上部分を土台から落とす必要があります。
- 雑草
草とは違い、土台と上部分がくっついています。コースに全部で3つ配置され、所定の場所まで運ぶ必要があります。
- てんとう虫
コースの指定経路近くに全部で3つ配置され、競技中に倒さないように指定経路から動かす必要があります。
- サービスポイント
コースに1つ配置され、草刈りなどを終了したことを知らせる役割をもつオブジェクトです。 シーソーのような形をしており、緑部分が下部にくるように配置されています。競技中に緑部分を上げる必要があります。
- フェンス
コースに全部で11個配置されます。 フェンスを動かしたり、壊してしまうとボーナスポイントが得られなくなります。
以下がコース全体像です。詳細な配置のされ方などは公式のルールを確認してください。
詳細なルールについては以下のURLより公式のドキュメントを参照することができます。
https://wro-association.org/competition/2022-season/#rules
◆タスクについて
今回は、オブジェクトの「草」について取り組んでみます。 草オブジェクトは土台部分と上に乗せられる部品で構成されています。 WRO2022の競技内で使われるオブジェクトはすべてLEGOブロックで構成されていますが、この草ブロックでは土台の中央に黒い平らなブロックを取り付けています。 その上に上部分の部品を乗せていいるため、上部分の部品はレゴブロックとしてくっついているわけではなく、ただ乗っているだけの状態です。
ルールでは土台は動かさずに上部分のみを取り除く必要があります。 今回はこの上部分をどう土台から取り除くか考えていきます。
◆ロボットの構成
今回は前述した車型ロボットの前方にアームが取り付けられたロボットを使用しています。 今回の草の上部分を取り除くことを考え、アームが土台部分より上に取り付けています。
草オブジェクト自体の検知の仕方は様々な方法があると思います。 今回はカラーセンサーを前向きに取り付けることで、土台部分の緑色を検知するようにしています。 また、側面部に超音波センサーを取り付けることで、草オブジェクトの横を通過した際に検知できるようにしています。
◆プログラム作成
まずは、アームを使って草オブジェクトの上部分を取り除く機能を実現していきます。 SPIKEアプリで以下のようにプログラムを作成します。
実際に動かしている様子は動画を参照してください。
(https://youtu.be/7d_BcR3qs04)
草オブジェクトの上部分を取り除くことはできました。次に競技中を想定して、超音波センサーで草オブジェクトを検知してから上部分を取り除きに行く動作を合わせて作成してみます。
直進している最中に、超音波センサーがオブジェクトを検知したら、旋回し草オブジェクトの上部分を取り除きにいくプログラムです。 本番ではこの”直進している最中”が”ライントレースしている最中”に変わったり、草オブジェクトが全部で3つ配置されているので取り除いた数を変数を用いて記憶したりする必要がありそうです。
◆追加で考えるべきこと
今回は草オブジェクトに着目して動作を実現してみましたが、エレメンタリーでは他にもこなさなければいけないタスクがあります。 それらを加味して以下のことが必要であると考えられそうです。
ロボット面では
- 雑草を持ち運ぶ機構
- サービスポイントの緑を上げる機構
- てんとう虫を倒さずに動かす機構
- どのセンサーでオブジェクトを検知するのが良いか
プログラム面では
- ライントレースをしながらタスクをこなす方法
- 草オブジェクト、雑草オブジェクト、てんとう虫オブジェクト、サービスポイントオブジェクトを検知する方法
- どのタスクを何回こなしたか記憶して判断する方法
などを考えてタスクをロボットに行わせる必要があります。
※2022/3/2 最新バージョン(2.0.4)のSPIKEアプリに基づく情報です。
※これらの仕様はアプリのアップデートによって変更される場合があります。
(2022/3/2 現在)