コラム

ETロボコン参戦記(私たちコレで全国総合3位を取りました)

こんにちは、OKIソフトウェア新入社員で構成されたチーム「OSK2023-新人D」です!
静岡拠点の2名と横浜拠点の3名、合計5名のチームです。

私たちは2023年10月22日に開催された「ETロボコン2023 シミュレーター部門 エントリークラス大会」に参加しました。
そこでなんと…全国総合3位を獲得することができました!!

  • 表彰状画像
  • タテ画像

今回はタイトルのとおり、「私たちコレで全国総合3位を取りました」のコレ(取り組みや工夫、想い)について、皆さんにご紹介します!

ETロボコンとは?

ETロボコンとは、5年後、10年後に世界をリードするエンジニアの育成を目指し、初心者からベテランまで幅広い層が相互に刺激し合えるような技術教育の場を提供することを目的としたロボットコンテンストです。同一機体を使ったソフトウェア技術に主眼をおいた「エンジニアの学び場」として開催されています。
OKIソフトウェアもブロンズスポンサーとして、このコンテストを応援しています。

ETロボコン2023

今回私たちは、ソフトウェア開発や設計が未経験の方向けの「エントリークラス」というクラスに参加しました。
このクラスはHackEVと呼ばれる走行体をプログラムで制御してシミュレーター上で競い合います。シミュレーターを使った競技であるため、全国12地区の参加チームがオンラインで一斉に集って開催されます。

大口は叩いてみるもの!

大会に参加するにあたって、まず私たちは目標を設定しました。せっかく参加するのだから「目標は大きく、高く」ということになり、「東海地区総合1位」を掲げました。
今大会では、私たちのチームが参加している東海地区参加チーム数は12チーム、全国でみると45チーム(その内OKIソフトウェア新人チームは7チーム)が参加しました。そのため私たちは東海地区参加の12チームでトップを目指して取り組んでいくこととしました。

その結果、東海地区総合1位を獲得しました!目標達成です!!!
それにとどまることなく、全国でみても総合3位という想像以上の結果を得ることができました。

この成績を得るに至った要因の1つとして「高い目標を掲げた」ということが挙げられます。
言霊というほど神秘的なものではありませんが、実際に口に出して掲げることでポジティブな感情を持った状態で作業を進めることができました。大口を叩くというのは悪いイメージの言葉として使われがちですが、大口は叩いてみるものだな、と新しい学びを得ることができました。

今回の成績である全国総合3位というのは、モデル図評価・競技成績の2つの分野の総合成績で決まっています。
私たちはモデル図評価ではA判定、競技成績では全国2位を獲得することができました。

ここからはそれぞれの分野ごとにアピールポイント等を紹介します。

これが私たちのアピールポイント!~モデル図編~

まずモデル図について紹介します。

参加するチームは大会前にソフトウェアをどのように設計したのかを示す設計資料を提出する必要があり、その設計資料がモデル図と呼ばれています。「機能」や「構造」、「振る舞い」をそれぞれUML図(※)に落とし込んで表現します。私たちはこのモデル図を作成する際に以下の3点を重要視しました。

  • UML(Unified Modeling Language)図:システムの振る舞いや構造をオブジェクト指向で分析・設計・記述するための図法です。UMLを使うことで、システムの構造や振る舞いを視覚的に表現し、理解しやすくすることができます。

構造モデル

  1. 要項の事前確認を徹底

    審査基準・提出形式・前提条件等に対して間違ったものを作成しないよう、資料の確認を徹底しました。
    開発開始当初、確認不足によって作業のやり直しが発生したことがありました。これをきっかけに展開された資料を改めてよく確認した結果、指定された形式や評価されるポイントを満たしている資料ができました。

  2. 昨年度資料の研究

    昨年の参加チームが作成したモデル図、およびそれに対する実際の審査員のコメント等を基に、審査規約内の審査内容の記載事項を比較し、具体的な注意点を研究しました。たとえば昨年度は、「クラス名が、XX制御となっており役割、責務が理解しづらいように感じます。」というコメントがありました。そのため私たちは「名前のつけ方」を意識しながら第三者も理解しやすいモデル図を作成しました。

  3. チーム内での忌憚のない意見交換

    メンバー全員新人研修でUML図について学習していたものの、まだまだ経験が浅く、手探りでモデル図作成を進めていました。そのため気になった点が発生したときには、全員で納得できるまで話し合いを行うことで、疑問点を解決していきました。また全員がスケジュール調整しやすいように、毎週時間を決めた定期ミーティングを開くことで、コミュニケーションの活性化を図り、より意見交換のしやすい環境を作ることができました。

上記3点を実施したことによりA評価をいただくことができたと考えています。実際に今大会の結果をみると総合順位の1位~6位までの上位チームは全てA評価を獲得していて、上位に入るにはモデル評価Aは必須条件となっていました。競技の方に意識が向きがちではある中で、この分野に力を入れたことが功を奏しました。

評価テーブル

これが私たちのアピールポイント!~競技編~

次に競技について紹介します。

競技では「走行ポイント」と「ボーナスポイント」の合計である「リザルトポイント」の高さで競います。「走行ポイント」とは、競技の前半で走るコースをいかに早く走れるか、そのタイムで算出されます。一方「ボーナスポイント」とは決められたポイントを通過したか、また競技後半に設置されているブロックをいかに正確に運搬できるかで算出されるポイントです。
私たちは、より高いポイントを獲得するため、以下の3点を意識しながら作業を行いました。

  1. 最善を求め、継続したアイデア出し

    安定して走行が可能になった後もミーティングを重ね、さらなる改善ができないか検討・調整をし続けました。

    そのアイデアを紹介します。
    私たちは走行コースをショートカットする走法を採用いたしました。
    本来大回りで走行する必要のあるコースでしたが、障害物の合間を通る(ショートカットする)ことで走行タイムを短縮しました。ただ、私たちはそれだけにとどまらず、タイム計測の基準となる二点のポールで構成されたゲートのポール通過をポールを倒しながら斜めに通過することで、さらにゲートの通過判定を最速にする走法を取り入れました。
    しかしこの走法は、加速時の車体のぶれやカーブ時のタイヤの滑りなどで生じる誤差によって、障害物への衝突やポールが上手く倒れないことで、ゲートの通過判定がされない事象が発生するという課題がありました。

    そこで私たちは以下の方法でこれらの課題をクリアしました。

    • 加速度を緩やかに高めることで滑らかに加速を行い車体のぶれを低減
    • カーブの角度をカーブ開始時は0から増やしていき、カーブ終了時には0まで減らしていくことでカーブ時のタイヤの滑りを軽減

    これらの方法は、数値が動的に変化するようになったため調整が非常に困難でしたが、締め切り直前まで数値調整とシミュレーションを繰り返すことで、安定感と高い記録を両立できる走行が実現できました。

  2. 昨年度データの研究

    昨年度の上位チームの走行動画を視聴し、どのような工夫が施されているのか研究しました。
    技術総評と合わせて参考となる情報を得ることができました。
    先ほど触れたショートカット方法も、昨年のチームの走行動画から着想を得たものです。

  3. 展開された資料の確認の徹底

    資料を隅々まで確認することで開発当初は気づいていなかった設定項目などに気づくことができました。
    たとえば、私たちは今大会で用いられているシミュレーターの説明資料から、スタート位置の座標を設定できる項目を発見しました。そこでスタートラインに最大限近づけた位置からスタートすることで、コンマ数秒単位のタイム短縮を図りました。

これらを踏まえて改善を重ね続けた結果、12.20秒で全国2位という成績を獲得することができました!

なお大会の準備期間中には「試走会」と呼ばれる期間が2回設けられており、本番に近い環境で走行することができます。そのため私たちも積極的に参加しました。
実は私たちは、最終の試走会で参加者ランキング1位の12.16秒という好タイム記録を出していました。
そのため、本番での全国2位という結果は少し悔しいです…
本番で1位となったチームは、試走会時点からさらに改良を加えた走行方法を当日採用したようです。

しかし何が起きるか分からない本番の舞台で、無事走りきることができました。
また私たちのベストタイムに近いタイムも出すことができため、走行直後はチーム一同とても安心しました。


試行錯誤を重ねたショートカット方法

おわりに

この通り私たちはモデル図、競技共に好成績を収めることができました。しかしモデル図を基に開発を進める中で想定通りの走行がなかなかできないという時間を長く過ごしました。テストの回数を増やし、何度も何度も微調整を繰り返すことで最終的に良い結果が得られましたが、「モデル図の通りにプログラムを動作させることの難しさ」を実感しました。A評価をいただけるようなモデル図であってもプログラムへの実装が困難であったことから、より製造工程をイメージしながら設計を行うことが大切であると学ぶことができました。

加えて私たちは2拠点(静岡、横浜)に分かれてオンラインで作業を行いました。そのため対面での開発とは異なり、密に連携をとることがとても困難でした。
そんな時にどのように対策すればより円滑に、効率良く作業を進めることができるのかを、常に皆で考えながらチームで開発を行いました。
今後、それぞれの配属先の業務においても同じような状況下におかれることが多々あると思いますが、ETロボコンで得られた経験は絶対に役に立つはずです。

また来年もOKIソフトウェアに入社した新人が参加することになると思います。
今度は先輩社員としてその結果を楽しみにしたいと思います。

最後になりますがサポートをしてくださった先輩社員指導者の皆様、事務局の皆様、ありがとうございました!

  • YouTube

お問い合わせ

お問い合わせ