チャンピオンシップ大会に向け、走行アルゴリズムの改良に取り組んだ新人エンジニアたちの奮闘ぶりを紹介する
前回は、キャッツ株式会社の新卒社員4人組が研修期間の一環として参戦した2005年のETロボコン(注1)の予選会(競技会・ワークショップ)までを、UMLモデリングを中心に紹介しました。今回は、実装部分(実際の走行)を中心にチャンピオンシップ大会(本戦)までのドキュメントを紹介します。ハッスルCATSでの実装のポイントは、C言語などのコーディングではなく、ZIPC(注2)を使用した状態遷移表により実装を行ったところです。
2005年7月2日に内田洋行・潮見オフィスで開催された予選会には53チームが参加しました。参加チームはそれぞれ個性的な分析を行い、予選会に挑んでいました。中で注目されたのは、特殊コースや独特なショートカット(コースレイアウトについては後述の図3を参照)に挑んだチームでした。オフロードコースをバック走行で攻略をしようとしたチームや、自ら新たな近道を開拓しようとしたチームがいました。
ところが、予選会当日は直射日光の影響によりコース上のテープが乱反射し、光センサによる値の取得が困難でした。そのため、予選会の本番では独特な走行を披露できなかったチームも数多くいました。そんな環境の中、予選会を制したのはシンプルな分析を行ったチーム「加賀百万石」でした。私たちの記録したタイムと優勝チームとのタイム差は約30秒、およそ2倍のタイムという苦しい結果でした。
チャンピオンシップ大会に向けて修正を行うに当たり、敗因分析を行いました。予選会での走行映像や設計書を繰り返し見て、どうすれば速く走れるかを分析していきました(図1、図2)。
まず、着目したのがリカバリーの回数でした。予選会の走行では、リカバリー処理に頼り切った走行だったため、コースアウトして復帰する分の時間がタイムロスとなっていました。そのため、チャンピオンシップ大会ではコースアウトをしない走行を目指すことにしました。
また、本戦では予選会のルールに加えてボーナスタイムが適用されました。ボーナスタイムとは、難易度の高い特殊コースを通過できたり、特別な条件を満たすと与えられるもので、ボーナスタイムを獲得すると走行タイムからボーナスタイム分の時間が減算されるルールです(図3)。
予選会では全体的に走行戦略の分析が不足していたこともあり、チャンピオンシップ大会では黒の実線走行から特殊走行まで、すべてのコースに対して走行戦略を練り直すことにしました。ボーナスタイムの獲得は優勝への大きな鍵になるため、本戦に向けてのコンセプトは「すべてのコース条件にトライする」に決めました。
Copyright © ITmedia, Inc. All Rights Reserved.