競技部門1位のチームメンバーが解説する、ETロボコンの攻略ポイント(後編)
3. CS大会
CS大会は2012年11月14日に開催されました。大会成績はモデル部門で入賞できず、総合部門の入賞を逃しました。しかし、競技部門では見事優勝しました。
3.1. CS大会に向けた活動
地区大会が終わった後、CS大会までの期間は下記の方針で活動を進めました。
- ベーシックステージの走行タイムを短縮する。
- モデルの内容を見直し、不足している箇所を加筆する。
難所攻略に関しては、関西地区大会時点で完全攻略できていたため、ほとんど見直しの予定はありませんでした。
「ベーシックステージの走行タイムを短縮する」はいくつか案があったものの、CS大会までの期間を考えて最もリスクが小さい方法を採りました。その方法とは「尻尾走行時の尻尾の角度を調整し、走行体の傾きを路面に対して垂直に近づける」という方法です。
走行体の傾きが路面に垂直となると、走行体の重さによる路面との摩擦力が大きくなるため、高速化が見込めます。但し、それだけコースアウトしやすくなることと、前方向への転倒リスクが高まる点に注意が必要です。これにはかなり悩まされましたが、最終的にはベストな角度を見つけ出し、調整しました。
モデルの内容は大幅に見直しました。特に大きく変更したのは1ページ目の「要求分析」と4ページ目の「難所攻略」です。これらのページは地区大会で記述が不足していると感じていたため加筆しました。
3.2. CS大会当日
運命の2012年11月14日、我々はCS大会の会場であるパシフィコ横浜へ乗り込みました。地区大会と同様に、すぐに走行調整が始まりました。
CS大会では全出場チームが4つのグループに分かれて走行調整を行います。我々のチームは最後のグループでした。
1グループ目の調整が始まった時、すぐに異変に気づきました。第1コーナーを曲がりきるチームがほとんどいなかったためです。会場にて輝度の計測を行った結果、「黒と白の値が普段より近い」ことがわかりました。しかし、我々のチームは外乱光の影響を軽減する「ハイブリッドライントレース」を実装しており、「この環境でも走行できる」と判断し試走に臨みました。
結果、1回目の走行時点でベーシックステージをほぼ完走できました。アウトコースの第3カーブのみコースアウトの危険があったのですが、2回目の試走で速度を落とし、リスクを回避しました。想定していた通り、ボーナスステージの調整は数回しか実施できず、これまでの実績を信じて本番に臨むこととなりました。
本番は地区大会と同様に1走目がアウトコース、2走目がインコースでした。競技部門本番も外乱光の影響のためか、コースアウトするチームが続出しており波乱の展開でした。
1走目の順番が来た時点で、シーソーダブルをクリアしたチームはありませんでした。そしていよいよスタート。ベーシックステージでは併走するチームに引き離されたものの、コースアウトすることはなく、立体難所も全て攻略しガレージインしました。地区大会に続き、安定した難所攻略でした。
2走目も同様に、ベーシックステージでは併走するチームに引き離されました。しかし、難所は全て攻略し、無事にガレージインしました。結果、全難所を攻略したのが我々のチームのみであったため、見事競技部門で優勝することができました。
4. 反省点
CS大会後にチームで実施した振り返りでは、「良かった点」、「悪かった点」のそれぞれが挙がりました。代表的な意見を紹介します。
4.1. 良かった点
4.1.1. 全員が開発に携わった
ETロボコン2012の「猪名寺駅前徒歩1分」は、チームとしての総合力が非常に高いチームであったと筆者は自負しています。例えば、大会当日にチームメンバー4名が欠席したとします。もし、普段から走行体に触れているメンバーが1、2名に限定されていると、当日の走行調整は非常に厳しくなります。
しかし我々のチームの場合は、残り1名がどのメンバーであっても走行調整し完走させることができます。これは普段から全員が開発・調整に参加し、「何を意図して、どう調整しているか理解している」からです。このチーム体制は非常に安心感がありました。
全員で開発するにあたり、開発初期は「1人1パッケージ担当」としていました。担当しているパッケージはもちろん、関連するパッケージについても理解する必要があるためS/W構造を知る良いきっかけとなったといえます(もちろん、パッケージが明確な役割のもとに分割されていることが前提となります)。
各パッケージの実装が終わると、次は「1人1難所担当」としました。この時期に各メンバーは、走行体の調整方法を修得することができました。そして、大会直前は完走率を上げるための最終調整となり、全メンバーが調整に参加しました。
このように作業を分担することで、結果として全員参加の開発を実現することができたのです。「勝ち」を目指すためだけでなく、メンバーの技術力向上・モチベーションの維持という観点でも、この取り組みが良い効果をもたらしたといえるでしょう。
4.1.2. 外乱光の影響を除去するノウハウを確立
ETロボコン2012 競技部門で優勝できた一番の要因はやはり「外乱光の影響を軽減できたこと」にあります。外乱光の影響を軽減するために「まいまい式」を導入し、またコースの曲率を指定した走行である「仮想ライントレース」を実装しました。そして、これらを組み合わせたハイブリッドライントレースを完成させたことで、ベーシックコースでコースアウトすることなく無事に完走できたのです。
外乱光の影響を軽減できたことで、コースを完走できたこと以外にもメリットがありました。それは、光に関する調整が容易となったため、「余った時間を難所の調整に充てられたこと」と、それにより「余計なプレッシャーを感じずに本番に臨めたこと」です。このような効果があったことからも、外乱光対策は今後も伝承していきたい技術の一つです。
4.1.3. 難所を全て攻略
難所攻略でミスがなかったことも、勝因の一つです。我々のチームは、地区大会・CS大会の全ての走行において、全難所をクリアしました。このことからも、立体難所への対策が万全であったといえます(攻略方法は前編を参照)。
前述の通り、現在の競技規約では「時間をかけてでも難所を確実に攻略する」ことが好成績につながります。この要件を満たすために、我々が出した最適解が「尻尾を使う」であり、それが良い結果に結びついたのです。
4.2. 悪かった点
4.2.1. 総合部門で入賞できなかった
競技部門では優勝することができましたが、総合部門では6位でした。この原因は言うまでもなく、「モデル部門で入賞できなかったため」です。関西地区大会では「競技部門:1位、モデル部門:シルバーモデル」であったため、総合部門でも優勝することができました。ところが、CS大会ではモデル部門が15位前後と振るいませんでした。
モデル部門には改善すべき点がいくつかあるのですが、大きくは下記の2点であると筆者は考えています。
- 新しい要素や取り組みが少なく、オリジナリティが足りない。
- 各クラスの振る舞いの記述が足りない。
オリジナリティについては前述の通りです。最終的に提出したモデルは、書くべきことを書き、見せ方も工夫し、結果「無難で読みやすいモデル」にはなりました。しかし、「新しいことに挑戦する」ということを念頭に活動していなかったため、モデルに目新しいことを書けなかったのです。
振る舞いについては、エクセレントモデルを受賞したチームと比較して、その差は歴然でした。我々のチームは難所攻略をアクティビティ図(といいつつ、一本道のフローチャート)で記載したのみでした。一方エクセレントモデルを受賞したチームは、クラス毎の振る舞いをステートマシン図で表現しており、「見ただけでコーディングできる」モデルとなっていました。どちらが良いモデルであるか、言うまでもないでしょう。
これらの点を改善できていれば、総合部門での入賞も夢ではなかったはずです。
4.2.2. 競技規約を誤って認識していた
前編にて述べた通り、競技規約はチーム全員でしっかりと確認したつもりでした。しかし、競技規約の理解に誤りがあり、大会当日に実行委員の方に注意を受ける場面がありました。
具体的には「スタート時に走行調整をする人」と「Bluetooth通信する機器の操作をする人」は同一の1名でなければならなかった点です(我々のチームは別々のメンバーが担当していました)。即失格にならなかったため成績には影響しなかったものの、「超音波センサを抜くこと」を忘れていたETロボコン2011と同じ失敗をしたという意味では見過ごせません。
振り返ると、競技規約を読む段階では走行体も出来上がっておらず、具体的にルールをイメージできていないように思います。よって、大会直前にもう一度規約を確認することで認識誤りを防ぐべきでした。また、今後は一文一文チェックを付けながら確認することも検討したいところです。
即失格(またはリタイア)を回避するためにも、競技規約は誤りなく理解するよう、改善が必要です。
4.2.3. H/Wの不具合・個体差に悩まされた
ETロボコン2012ではH/Wの不具合・個体差に非常に悩まされました。特に悩まされたのは「Bluetooth通信不良」と「超音波センサの個体差」です。
H/Wに不具合・個体差があるのは仕方がありません。しかし、それを疑わずに多くの時間を費やしてしまったことが問題でした。H/Wの構成要素は事前に検証し、「正常に動作するか?」「どのような特性があるか?」を確認しておくべきでしょう。