(1/3)知られざるETロボコンの裏舞台。ETロボコンの審査員を務める筆者が中心となり、開発・提供を行っている「ETロボコン計測システム」にフォーカスし、開発概要やこれまでの道のりなどを紹介する。ETロボコンとは、初級技術者や学生を対象にしたロボットコンテストのことです。Mindstorms)を使い、ライントレースを基本としたタイムレースと幾つかの難所をクリアしていく“競技の実技”と“ソフトウェア設計の内容”の双方を競うソフトウェア開発スキルアップを目的としたコンテストになっています(ご興味のある方は、ETロボコンの公式Webサイトを参照してみてください)。ETロボコンの前身である「UMLロボットコンテスト」が2002年にスタートし、2011年に10回目の節目を迎えました。筆者自身、記念すべき第1回大会に出場した経験があります。第2回大会以降(2006年大会を除く)は、設計内容の審査員としてETロボコンの運営に携わっています。前置きはここまでとし、本題に入りたいと思います。タイトルにある通り、本稿では、ETロボコンで用いられている計測システムにフォーカスし、その取り組み、開発の概要、道のりなどの“裏話”をご紹介します。ETロボコンの大会会場に行ったことのある方であればご存じかと思いますが、競技(ロボットのレース)中、走行タイムや難所と呼ばれる難易度の高いコースのクリア状況が会場のスクリーンに映し出されていると思います。その情報を計測しているシステムこそが、今回紹介する「ETロボコン計測システム」なのです。このシステムは、著者を中心とするボランティアで開発・提供しています。PC上のアプリケーションから構成されています。7(以下、WES7)」上であれば、基本的にPCと同じアプリケーションをそのまま動かすことができます。専用のWES7デバイスとスイッチボックスでシステムを構成しさえすれば、それはもう立派な組み込み専用機器になるのです。計測時間は、0.1秒単位での精度が要求される一種のリアルタイム制御機器(まぁ、“ソフトリアルタイム”ではありますが)です。ETロボコン計測システムは、図2のような構成になっています。大会会場では、図3のようにそれぞれの機器・装置を配置します。スイッチボックスの配置の自由度や、ネット上のWebサービスなどとの連携を意識して基本設計がなされているので、PC内部のソフトウェアは、疎結合なコンポーネントで構成されています。Edition”でも一部の機能を除いて開発が可能です。ETロボコンは、北は北海道、南は沖縄までの多くの地域で地区大会が行われ、そこで勝ち上がったチームがチャンピオンシップ大会に臨みます。先の第10回(ETロボコン2011)大会では、全12カ所の地区大会、そして、チャンピオンシップ大会でこのETロボコン計測システムが使用されました。計測作業のフローこれまでの歩み実は、計測システムが最初に登場したのは2007年大会のことでした。以来、毎年のルール変更の対応と、競技運営に必要なさまざまな機能の追加・改良を加えながら今に至っています(先の2011年大会で5回目の登場となりました)。図5は、2007年当時の計測システムの表示画面と開発風景です。今でこそ全大会(地区大会+チャンピオンシップ大会)で稼働しているこの計測システムですが、初期は不具合も多く(ボランティア開発なので)、一部の地区大会とチャンピオンシップ大会でのみ採用されるという限定的な使用状況でした。中には、独自に趣向を凝らした計測や表示を用意している地区もあり、「誰あんた?」的な視線を浴びながら会場入りしたことも......(笑)。今では“ごくまれに”おかしな動きが発生することもありますが、運用上問題のないレベルで稼働しています。“ボランティアによる開発”ということもあり、あまり開発に時間はかけられませんでした。Frameworkをベースとしたマイクロソフトのさまざまなテクノロジーを選択し、今に至っています(これにはいろいろ異論のある方もいらっしゃるでしょうね......)。ETロボコンの趣旨(参加者に課せられる使命?)からすると、“要求はきちんと明確化し、設計もきちんとやってモデル化して開発を進める”とよいのでしょうが、われわれのミッションは、限られた時間の中で、取りあえず使えるシステムを開発するということで、以下の6つのポリシーに従い、開発をスタートさせました。常に最新技術を取り入れる最後の「常に最新技術を取り入れる」というポリシーについては、必要なアプリケーションやOS、PCのバージョンアップが伴う場合もあり、賛否両論があります。最新技術を取り入れる際は、“以前より生産性や品質が上がるかどうか”を基準に採用の可否を判断することにしています。計測システムの開発の場は、いろいろな人に参加してもらい、日常の製品開発(業務)ではなかなか難しい新技術を取り入れて試す場にしてほしいという筆者自身の強い願いが込められています。この“常に最新技術を取り入れる”というポリシーは絶対に外せませんでした。2011年現在で、計測システムで採用している技術を表1に示します。表1を基に他のプラットフォームや技術の選択でどう変わるのか、対応する他の技術を具体的に想定して比較してみるのも面白いかもしれません。開発を始めた当初から私1人の楽しみでなく、いろんな技術者が自由に参加でき、やりたい範囲をできる範囲で開発できる“オープンソース開発”を目指してきました。2008〜2009年はテスト要員として何名か協力してもらったり、2010年には東海大学の学生さんが各ターン開始時のチーム表示のアニメーションを開発してくれたり、第10回大会(2011年)ではクラスメソッド社の杉浦さん(プロのWebデザイナー)が、会場向けの表示画面(さきほどの図1)を担当してくれたりと、徐々にボランティアメンバーも増えてきました。ちなみに、先の大会では図6のような担当で開発を進めました。Foundation(以下、WPF)」で作られており、見た目とロジックを分離開発できるというメリットがあります。2011年の開発はまさにその実践の場となり、特に問題なく開発を進めることができました。Azure」を使ったクラウド対応の実験(図7)も行っています。Azure上にほぼそのまま移行し、“計測、表示、コンソールプロセス”と“データ修正ツールプロセス”内のWebサービスへの参照先URLを書き換えるだけで動作することを確認しています。競技データをネットワーク上で参照できるようになれば、同日他会場で開催されている競技状況や競技結果を参照できるようなスマートフォン向けアプリケーションの開発も容易に行えます。Phone上で動く走行順位表示アプリケーションもひそかに開発し、その動作を確認しています。Live」のグループ機能と「SkyDrive」を使ったソフトウェア共有を、2011年の大会ではhttp://www.codeplex.comというオープンソース開発用サイトに移行し、担当者同士の緩い連携による同時並行開発が可能になりました。計測システムは、現在、http://etrcrts.codeplex.comというサイトで開発を行っています。次回(2012年大会)のETロボコンでも計測システムのエンハンスは継続的に必要なので、開発に参加してみたいという方は、是非著者までご連絡ください(筆者のブログ)。Technology「単純な話、動かない......」。SNSfacebooktwitterITmediaはアイティメディア株式会社の登録商標です。