ぱわぷろ活動日誌

ゆったりまったり技術を学んでいます。備忘録代わりのブログです。書いてあることは私見が多いので参考程度にしてください。

ETロボコンの紹介

初めましての方は初めまして。

そうでない方は進捗どうですか?

私は亀の歩みではありますがちゃんと前に進んでいますよ。

褒めて(直球)。

 

この記事はWMMC Advent Calendar 2023の7日目の記事です。

adventar.org

前回の記事はPotewo君で「リポ充電器について」でした。

 

時代はUSB PD入力ですか…。
Lipo禁止で乾電池をヤスリ掛けしてバッテリーパックを作っていた学生時代とは雲泥の差ですね。(技術分野はそうでなくちゃ)

 

私は今年参加したロボコンETロボコン」の紹介をします。

学生時代から名前は知ってたけど、ちょっと遠い感じのしていたロボコンでしたが会社の研修で偶然参加できることとなって参加しちゃいました。
「こんなロボコンがあるのか…」と思いながら、見聞を広めていただければ良きです。

まぁETロボコン公式のスライドから引用するのが多いのでそちらを読んでみてもらっても早いかと。
資料:

http://chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://docs.etrobo.jp/information/2023/et20230214_presentation_tec.pdf

大会の様子:

www.youtube.com

 

本日の目次はコチラ。

 

自己紹介

WMMCの皆様には初めましての方もいると思うので、簡単に自己紹介を。

私は2016年で大学入学、WMMCへの入会をして「ものづくり」の世界に飛び込んだ元高校球児、ぱわぷろと申します。大学入学から縁あってマイクロマウス、つくばチャレンジ、RoboMasterとロボット競技を転々としながら2022年からはメーカーでエンジニアとして働いています。

激動ですね、大学入るまではNHKロボコンの存在すら知らない人間がロボコンに出て、ロボットの研究をして、エンジニアをやっているのですから。

 

成り行きで始めたマイクロマウスに関してはもう8年目らしいです。まだ中級者になれるか、なれないかのラインを彷徨っていますが、好きなのでずっと続けています。学生時代の思い出話はこの辺りの過去記事で書いたのでご参考までに。

ss-sholaw-wmmc.hatenablog.com

ss-sholaw-wmmc.hatenablog.com

 

まぁマイクロマウスで見せられる進捗は弱いので、今回はこの半年ほど業務で参加していた珍しいロボコンETロボコンの紹介でお茶を濁したいと思います。

ETロボコンのコンセプト

さて、本題のETロボコンは「ソフトウェア重視」を謳うロボコンです。参加チームは共通のレゴ機体を使い、ソフトウェアやシステムの作成に注力します。そして、そのシステム全体を説明するモデルをUMLで記述し、まとめた資料と実機動作の両方で結果が評価されます。

近年は初級者向けから上級者向けまで以下の3つのクラスに分類されています。

  • エントリークラス(初級者向け、シミュレーションのみ)
  • プライマリークラス(初中級者向け、実機)
  • アドバンストクラス(上級者向け、実機+Web)

機体の完成度はもちろん、それぞれのクラスに対応したモデルの完成度も求められます。モデルでは機体に実装されたシステムが以下に正確に、かつ明瞭簡潔に記述されているかが評価観点になります。


実力別に分類されていますが、参加した感想としては一般的にロボット製作の経験がある人はプライマリークラス以上から始めたほうが良いかと思います。
特に組込での実装経験が一定以上あるならば、アドバンストクラスに行くのが良いです。

私はプライマリークラスに参加していたのですが、本来のレベルとしては適正対象ではないように感じました。会社の研修だったので、私はチームのマネジメントやレビュワーの立ち位置で関わっていました。

 

したがって、以下は主に2023年のプライマリークラスの内容になります。

今年のETロボコン競技ルール

実機動作についてはライントレースによるタイムで決まる走行ポイント、また難所と呼ばれる部分のタスク達成によるボーナスポイントの合計を競います。走行チャンスは線対称のコース1回ずつの計2回です。

今年の難所は2つの円上コースをライントレースする「ダブルループ」と配置されたブロックから正しいブロックを運搬する「トレジャーdeブロック」でした。

また、本来は競技で用いる走行体の統一が前提のETロボコンでしたが、今年は従来機の生産終了に伴う移行期だったので2種類の走行体を選択する方式でした。
EV3を用いた従来機体のHackEVとラズパイ4を用いたHackSPIです。
私は会社都合でHackSPIを使用しました。

HackSPI

HackEV

基本として、両機体ともエンコーダ、ジャイロセンサ、カラーセンサが搭載されギアードモータ駆動となっています。特にカラーセンサはRGB値がそれぞれ取得できるため、一般的なライントレーサーに装着するフォトリフレクタと訳が違います。相違点は機体質量とモータのトルク。またHackSPIにはカメラが装着可能という事でしょうか。
今年からカメラが使用されるようになったので、画像処理ライントレースの導入を期待していたようです。

攻略に向けて

技術的な観点の方が皆さん興味がありそうなので、我々が取った戦術と技術的な紹介です。まずカラーセンサがRGB値だと反射光強度として扱いにくいので、HSVに変換します。計算式はよく知られているのでRGB->HSV変換とかで調べてください。(色の世界もかなり面白いので、デジタルカラーとかいいぞ)

 

ただし、カラーセンサは1つしかないのにライン幅は20mmなので速度出そうとすると簡単にラインアウトして結構面倒くさいです。

一方、エンコーダやジャイロはモジュール化されており、フィルタ処理は内部でちゃんとやってくれているっぽく、走行距離や角度はそれなりに信用できます。

そんなわけで戦略として、軌道追従をメインにして、カラーセンサの値は軌道の補正程度に使う方針で実装しました。そのため、ラインアウトしても走行継続可能であり傍目から見たらよく分からん走行に仕上がりました。

この実装はマウスのジャイロ制御と壁制御を共存させるための方式にヒントを得て(といおうかほぼ同じ?)完全オレオレ手法で考えて、チームメイトに実装してもらいました。

 

またトレジャーは走行オドメトリとカラーマークの判定方法を組み合わせてゆっくり確実なON-OFF制御のライントレースで確実にさらう方針でチームメイトが実装してくれました。

ライントレースでON-OFF制御をローテクだと思って下に見ていませんか?

エンジニアリングは課題を解決するための最適手法を用いることです。
速度が強く要求されないかつ、位置精度がシビアな場合は速度落としてON-OFFが簡単かつ要件を満たす場合もあるのです。

 

他のチームだとカメラオンリーで走行してるチームもいたり、ブロック探しも全探索アルゴリズム組んでいるチームなど多種多様なチームがいて面白かったです。

 

まぁこの辺は競技やってみないと伝わりづらいので、競技の動画でも見てください。
何が言いたいかというと、要求仕様(やりたいこと)の実現のための方法にはローテクもハイテクも関係ねーって事です。

何が得られたか

まず技術的な側面として、UMLを扱えるようになったのは大きいです。モデリング言語を体系的かつ実践的に習得する機会はレアなので。ステートマシン図やユースケース図、クラス図、シーケンス図、アクティビティ図に対する理解が深まり、それと同時にオブジェクト指向の重要なメリット・デメリットを視覚的な側面からも体感できました。ドキュメンテーションを行う上では必要な知識です。

 

またラズパイ機体を操作したので、ラズパイで組込をいじれるのは個人的に新鮮な気持ちで見ていました。ログをCSVで吐いたり、無線接続後にコマンドで機体を起動させたりなど、マウスではできないものね。(やっている人はいそうですが…)
ただ、環境構築は沼。これだけはなんでも同じ。

全体として、「エンジニアリングとは何か?」を改めて考える良いきっかけになりました。特に時間がない中で、どうやって良い結果を出すかはずっと悩んでいたポイントです。
目的は優勝か、メンバーの成長か?
少ない時間で課題を解決するにはどうするべきか?

必要な技術レベルは何か?
いつまでがデッドラインなのか?巻き取りで取り戻せるのか?

チームメンバーのモチベーションの差をどう活かすか?

 

学生ではなく、業務の合間に活動、専門も異なるメンバー、ロボット競技をやりたいと思ったわけでもないロボコニストですらないメンバーとのロボコン。これはこれで貴重な経験だったと思います。

含みとか何もなく、純粋に楽しかったです。

 

最後に、皆さん1度は他のロボット競技に出てみてください。
そこから学べるものは非常に多いですし、逆にマウスで学んだ技術を活かせる場面があるはずです。この世で無駄な経験はありません。本人次第で、同じ経験が有意義にも無駄にもなるのだから。

明日は XFA-27君による「埋まらないならなんか書く」です。

なんだかんだ君も立派に先輩してるのを見て、嬉しく思っているぱわぷろです。

ただし、もう少し理論を大事にしてくれ(切望)。


それではまた。