ETロボコン2011のチャンピオンシップも昨日無事終わり、競技に参加された皆さんが開発されたロボットの走行性能にただ驚くばかりでした。参加された皆さん、お疲れ様!!
ETロボコン競技中に図のような絵が、スクリーンに表示されて、競技の状況表示や、走行時間の計測を行っているのを、会場に来た方でしたら見ていることと思います。
このシステムは、このブログの筆者である太田がシステム全般、表示部分は、クラスメソッドの杉浦さん、チーム紹介のアニメーションは東海大学の学生さん(昨年作成)、タイム計測用のスイッチボックスはシステムクリエイトの高橋さんが担当して、開発し、各大会で使っていただいているシステムです。2011年の大会では、北海道、東北、北関東、東京AB、北陸、東海、関西、中四国、九州、沖縄、チャンピオンシップの全12大会、全てで使ってもらうことが出来ました。
折角なので、このシステムの中身を本ブログで紹介します。このシステムは、ETロボコン競技会に関わる様々な作業を自動化しています。機能は以下の通りです。
オリンピックのタイム計測と同様、万が一計測アプリが、何らかの原因でハングし、計測データがぶっ飛んでしまったら大変なので、競技結果はRDBに蓄積、競技状況表示と平行して、裏で色々と操作をする為に、コアのサービスはIIS上で動作するWebサービス、表示ソフトその他は、WebサービスをHTTP/SOAPでアクセスするという祖結合にし、それ+幾つかの工夫で拡張性・保守性を挙げています。また多彩でカッコいい表示を短期間で開発する為に、WPFでUIを作っています。使っている技術を列記します。
動作推奨環境は
システム構成は図のようになっています。
スイッチボックスハードウェアは、USBでPCに接続され、仮想COMポートでアプリと通信しています。ETロボコンの時間計測精度は0.1秒で、PCでは実時間保障が出来ないので、スイッチボックス内のカウンターで時間を計測し、PC側でその値を元に各種処理を行っています。
計測システム一式、使い方は、http://etrcrts.codeplex.com/ で公開しています。また、このサイトは、オープンソース開発用サイトで、このサイトを使って並行開発、障害管理、構成管理などのプロジェクト管理を行っている状況です。システム開発のボランティア募集中なので、やりたい方、ご連絡ください。IISで動いているWebサービスとRDBの部分のクラウド化なども進めているので、単にWin7アプリの開発だけでなく、Windows Phoneをはじめとするスマートフォン向けのビューワー、計測方法、競技状況記録方法改善などもあるので、是非。
より細かい部分の解説は以降のポストで。チャンピオンシップで行ったクラウド化(Azure)実験もね。