2012年度CarRace環境の公開

(2012,08/22)2012年度の北海道情報大学のプログラミングコンテストで使用する,CarRace環境を公開します.

本年度のCarRace環境

大変遅くなり申し分けないです.昨年に引き続きプログラミングコンテストでCarRace部門のプログラムを募集します.基本的に昨年度と同様,車の制御プログラムを書いてもらってコースを一周するタイムを競います.コースも同じで,開発環境の使用方法も変更ありませんが,利用できるAPIが追加され,より簡単に制御プログラムを作成することができるようになりました.是非,たくさんの人に参加してもらいたいと思います.

変更の趣旨

昨年度実施されたCarRace部門の環境では,APIを使って得ることができる情報は,自分の車とシミュレーション時間だけでした.そのため,コースのどこを走らなければならないかは,公開されたデータから座標を読み取ったり,プログラムを解析する必要がありました.そのため,車の制御プログラムの本質以外の部分で苦労した人も多いと思います.

今年のAPIでは,コースのセンターラインに関する情報が取得できるようになりました.自分の車から一番近いセンターライン上の 1点を座標ベクトルとして受けとることができます.また,その点におけるコースの進行方向も,方向ベクトルとして受けとれます.さらに,自分の車から一番近いセンターライン上の点だけでなく,その点より前方のコース上の点の情報も引き出せます.例えばコース上の10メートル前方の点を目標として走行させたり, 10メートル前方のコースの方向をチェックすることで,カーブにさしかかる前にカーブを検知できます.

その他,getDistメソッドでスタート位置からのおおよその走行距離が得られるので,今自分がコースのどの部分を走っているのかの判定が簡単に行えます.さらに自分の車の速度ベクトルを得るためのAPIも追加されているので,エンジン出力の調整で速度を制御するのが楽に行えます.

また,新しく追加したAPI以外の部分は昨年度と変更ありません.コースも車の性能も昨年度とまったく同じです.

追加されたAPIについて

APIの追加はRaceCarBaseクラスのメソッドとして追加されています.

上記ページの「メソッド詳細」の項目でgetVelメソッド以下が,本年度新しく追加されたAPIです.詳細はこのAPIのページを読んで欲しいのですが,以下に簡単に紹介します.

サンプルプログラムについて

新しいAPIを使用するCarRaceプログラムのサンプルを公開します.

昨年度のサンプルプログラムよりも短いですが,昨年度の優勝プログラムよりも速いタイムを叩き出します.なかなかの走りをするので,是非実行してみて下さい.パラメータを少し変更して実行してみると面白いでしょう.

それからちょっとお願いですが,上記サンプルプログラムの走行タイムは 44.97秒となるはずですが,異なる走行タイムが測定されることがあれば連絡下さい.

どのように工夫するかのヒント

サンプルプログラムのパラメータを変更するだけでも,まだ多少改善することは可能ですが,是非,独自のアプローチで制御プログラムを再構成してくれると良いと思います.

その他情報源

新しいAPIが追加されていますが,基本的に昨年度と同じシミュレーション・開発環境ですので,使用方法・開発方法は昨年度の資料も参考にして下さい.

その他,連絡先など

昨年度は,一部の環境でJava Web Startによるインストールが上手く動作しないということで急遽ダウンロード版も公開したりしていました.心当たりのある部分を修正したりしていますが,あらゆる環境でテストているわけではないので,みなさんに実行してもらい改善してゆきたいと思っています.今年度の環境のダウンロード版は作成していませんが,必要であれば作成するので連絡をして下さい.

その他カーレース部門における質問などあれば,プログラミングコンテスト実行委員procon@do-johodai.ac.jp に連絡下さい.