ETロボコン2011のチャンピオンシップも昨日無事終わり、競技に参加された皆さんが開発されたロボットの走行性能にただ驚くばかりでした。参加された皆さん、お疲れ様!!

ETロボコン競技中に図のような絵が、スクリーンに表示されて、競技の状況表示や、走行時間の計測を行っているのを、会場に来た方でしたら見ていることと思います。

このシステムは、このブログの筆者である太田がシステム全般、表示部分は、クラスメソッドの杉浦さん、チーム紹介のアニメーションは東海大学の学生さん(昨年作成)、タイム計測用のスイッチボックスはシステムクリエイトの高橋さんが担当して、開発し、各大会で使っていただいているシステムです。2011年の大会では、北海道、東北、北関東、東京AB、北陸、東海、関西、中四国、九州、沖縄、チャンピオンシップの全12大会、全てで使ってもらうことが出来ました。

折角なので、このシステムの中身を本ブログで紹介します。
このシステムは、ETロボコン競技会に関わる様々な作業を自動化しています。機能は以下の通りです。

  • 大会参加チーム情報登録
  • 大会の走行順登録
  • 二つのラウンド、ターン進行の管理
  • スタートからの経過時間、ゴール時のタイム、走行状況、難所クリア状況の表示
  • 大会ルールに則ったリザルトタイムの計算
  • 走行結果、走行時間、難所クリア状況の蓄積
  • 走行順位計算
  • モデル審査結果登録
  • 総合順位結果計算
  • モデル評価・走行結果傾向分析
  • 中間順位表示(昨年版:酒田エス・エー・エスさん協力)
  • 記録間違いを修正する為の裏仕掛け

オリンピックのタイム計測と同様、万が一計測アプリが、何らかの原因でハングし、計測データがぶっ飛んでしまったら大変なので、競技結果はRDBに蓄積、競技状況表示と平行して、裏で色々と操作をする為に、コアのサービスはIIS上で動作するWebサービス、表示ソフトその他は、WebサービスをHTTP/SOAPでアクセスするという祖結合にし、それ+幾つかの工夫で拡張性・保守性を挙げています。また多彩でカッコいい表示を短期間で開発する為に、WPFでUIを作っています。使っている技術を列記します。

  • WPF(Windows Presentation Foundation)
  • WCF(Windows Communication Foundation)
  • SQL Server 2008 R2
  • EF(Entity Framework)
  • IIS(Internet Information Server)
  • MEF(Managed Extension Framework)
  • Office ToolkitによるExcel拡張
  • .NET Frameworkを使ってC#によるプログラミング

動作推奨環境は

  • Windows 7
  • Excel 2010
  • Visual Studio 2010 上位エディション(無償のExpress Editionでも可)

システム構成は図のようになっています。

スイッチボックスハードウェアは、USBでPCに接続され、仮想COMポートでアプリと通信しています。ETロボコンの時間計測精度は0.1秒で、PCでは実時間保障が出来ないので、スイッチボックス内のカウンターで時間を計測し、PC側でその値を元に各種処理を行っています。

計測システム一式、使い方は、http://etrcrts.codeplex.com/ で公開しています。また、このサイトは、オープンソース開発用サイトで、このサイトを使って並行開発、障害管理、構成管理などのプロジェクト管理を行っている状況です。
システム開発のボランティア募集中なので、やりたい方、ご連絡ください。IISで動いているWebサービスとRDBの部分のクラウド化なども進めているので、単にWin7アプリの開発だけでなく、Windows Phoneをはじめとするスマートフォン向けのビューワー、計測方法、競技状況記録方法改善などもあるので、是非。

より細かい部分の解説は以降のポストで。チャンピオンシップで行ったクラウド化(Azure)実験もね。