トップ » バックナンバー » Vol.17 » MDDロボットチャレンジ参戦記

Accumu Vol.17

MDDロボットチャレンジ参戦記

京都情報大学院大学 1回生 後藤 洋信高瀬 えりか

自動航法競技で単独1位取得

飛行制御ソフトウェアを開発して参加した飛行船相撲の様子
飛行制御ソフトウェアを開発して参加した飛行船相撲の様子

2008年秋東京代々木の国立オリンピック記念青少年総合センターで「MDDロボットチャレンジ」(情報処理学会 組込みシステム研究会主催)が開催されました

MDDロボットチャレンジは小型飛行船ロボットを制御するシステムを開発し競うコンテストですただし単に飛行船を飛ばすだけではなく飛行船を制御するソフトウェアをMDD(Model Driven Developmentモデル駆動開発)に従って開発しますその過程で得られるモデル(ソフトウェアの設計図)や実際の飛行をコンテスト形式で競い組込みシステム開発の教育実践を目的としています参加者は組込み技術を学んでいる大学生や専門学校生組込み技術を専門とする企業の技術者などさまざまです

京都コンピュータ学院(KCG)京都情報大学院大学(KCGI)と株式会社ヒューマンエンジニアリングアンドロボティックス(HERO)の産学連携チーム「京魂英雄(きょうこんひーろー)」は2008年のMDDロボットチャレンジの大会に前年にひき続き参加し自動航法競技で単独1位を獲得しました「No.1 & the Only One!」の結果となりました

「飛行船が飛びます」の一言から始まった

2007年の夏休みのある日KCGIの江見准教授の「飛行船が飛びます」という謎の一言でKCGIの学生2人KCGの学生3人が百万遍キャンパスに集まりましたHERO社のエンジニアの姿もありましたこの時点では誰もMDDロボットチャレンジについて知らされていませんでしたしかしこの日プロジェクトが発足するという急展開を迎えることになります

実はこの日M102教室でMDDロボットチャレンジについて大会実行委員長である二上貴夫氏(東陽テクニカ)による熱いトークが繰り広げられたのですKCGKCGIの5人の学生はすぐに参加するという意思を示し組込み技術を得意とするHERO社のエンジニアもメンバーに加わることになりましたこれがMDDロボットチャレンジ参加のきっかけとなりました

厳しいスケジュールの中でも「笑ってお仕事」

しかし参加するという決意を示したもののスケジュールは大変厳しいものとなりました大会本番までは残り2ヵ月他の大学や企業のチームは5月頃から準備を始めているので3ヵ月近く遅れたスタートとなりました一般的に厳しいスケジュールの中で連日連夜開発に取り組むといわゆる「デスマーチ」になり病人が出ることも珍しくありません遅れを取り戻したいKCGKCGIの学生たちでしたが「笑ってお仕事」をコンセプトに決め楽しく活動を続けることを強く意識して全力で開発に取り組みましたその結果短い開発期間でしたが本番までに無事飛行船を飛ばすためのプログラムモデルとも完成に漕ぎ着けました苦しみながら取り組むのではなく楽しく取り組んだことが成功に繋がったのでしょう

笑ってお仕事している人につられて参加

そんな笑ってお仕事をしている2007年のチームの姿を見て2008年は多くのメンバーが集まりました筆者(後藤)もその1人で昨年の大会当時は他大学の学生でしたがたまたま()MDDロボットチャレンジの大会本番を見学しておりそこでKCGKCGIの技術の高さと楽しそうな姿を見て感銘を受けたのを覚えていますもしかするとこれがKCGI入学のきっかけだったのかもしれません

その後春には2008年の大会参加プロジェクトが発足しKCGIからの参加者が8人に増え合計15人のチームとなりました昨年の参加者が笑ってお仕事をしている姿を見て自分たちも「笑ってお仕事をしたい」という気持ちになったのかもしれません

チーム開発に挑戦

自動航法競技で見事1位に輝いた
自動航法競技で見事1位に輝いた

2008年は15人での開発となりました昨年に引き続きハードウェアとファームウェアに関してはHERO社の若手技術者に担当していただきましたその結果KCGKCGI側はモデリングとソフトウェア開発に全力投球できました

この機会にこれまで講義で学んできたことを実践するべく大規模ソフトウェアの開発手法を踏襲することにしました自動航法競技の担当と相撲競技の担当の2つのグループに分かれてそれぞれ開発プロセスを計画しリーダーモデリングコーディングなどの役割分担を決定しました筆者を含むKCGIの1回生は日本語プログラミング言語「ドリトル」を使って相撲競技のモデリングと実装を担当することになりました「ドリトル」は教育用のプログラミング言語でオブジェクト指向にも対応しています

ソフトウェアにも設計図が必要

開発のプロセス
開発のプロセス

われわれのチームではマインドマップとUML(Unified Modeling Language)とを用いてソフトウェアのモデル化を行いましたマインドマップとは本来は絵と言葉によって思考プロセスを書きとめていく発想法ですが今回はMDDロボットチャレンジの全体像を掴むための分析方法としてUMLモデリングの前段階に使用しましたこれによってプロジェクトの方向性が定まりどのようなソフトウェアを作っていけばよいのかメンバー全員が把握することができましたその後UMLでのモデリング作業に入りましたUMLとはオブジェクト指向モデリング言語ですKCGIでの「オブジェクト指向システム設計」の授業を通じて理解しているメンバーが多かったことからこのモデリング言語を選びましたモデル化の作業はモデリング担当がモデルを作りそのあと他のメンバーとディスカッションをし修正が必要であれば反映させるという方法を繰り返し行いましたコーディング後に修正をするよりもモデル化の段階で可能な限り不具合の可能性を見つけて修正し矛盾のないものにしていくよう努めました

筆者(高瀬)は主に相撲競技のモデリングを担当しましたモデリングは授業で経験しましたが昨年のMDDロボットチャレンジには参加しておらず何から始めてよいのか分からない状態でしたですからまずはマインドマップを描いたりメンバーに質問したりして飛行船の仕組みを理解することからはじめました飛行船の仕組みを理解できたら次はUMLでのモデリングをコーディングや機体作成担当のメンバーから意見を聞きながら行いました

MDDロボットチャレンジではこのモデルが審査対象として大きなウェイトを占めますモデルやチーム活動の成果を1つのドキュメントとして提出しましたこのドキュメントの作成は主に筆者(後藤)が担当しました

設計さえ固まってしまえば実装は難しくない

昨年の大会は「ドリトル」を使用して参加しましたが2008年は日本語プログラミング言語と一般的なプログラミング言語との作業工程の比較を行うため自動航法競技にはプログラミング言語「C#」を使用し相撲競技部門では「ドリトル」を使用しました

飛行船のコントローラ
飛行船のコントローラ

日本語プログラミング言語は日本人にとって扱いやすいプログラミング言語となっています日本語のネイティブスピーカーがプログラミングを初めて学ぶ場合日本語で記述されたプログラムのほうが馴染みやすく学習しやすいと考えられますまた日本語の設計図をもとに日本語でコードを記述することができるので作業効率もアップします前回今回と「ドリトル」でのモデリングコーディングを担当した村上智史さん(KCGI1回生)は設計図をもとにコードを書いた際日本語プログラミングは「設計さえ固まってしまえば実装は難しくない」と言っていました彼のプログラミング能力の高さ(2007日本語プログラミングコンテスト「ドリトル」部門金賞を受賞)とドリトルの使いやすさを物語った言葉だといえます

飛行船操作は難しい

分析設計コーディングとソフトウェア開発を進めましたがハードウェア制御のソフトウェアの場合は実際にモノを動かさなくてはなりません大会本番では飛行船を正確に飛ばさなくてはなりません筆者らが担当した相撲競技では飛行制御のソフトウェアを開発し大会本番はコントローラーを通してパイロットが飛行船を操作します飛行船はデリケートで人間が感じないような空気の流れや気温の影響を受けますこのような外的要因を考慮して操作することが相撲競技の難しさでもあり面白さでもあります

わがチームでは「ドリトル」の実行画面上からPCのキーボードで操作できるコントローラーを開発しましたまた昨年の反省を活かし機体重量を10%以上軽量化駆動モーターの選択も工夫して機動力抜群の仕上がりとなりました

大会当日

まずは競技会場で機体の微調整が念入りに行われました1グラム程度の重さでも飛行に大きく影響します担当者によって重心の確認基本動作の確認ジャイロ等のセンサーの動作確認などチェックリストの順に行われました

先に自動航法競技が始まりあっという間にわがチームの出番となりました審査員がチーム紹介をしている後ろでは最後まで機体の微調整が行われていました合図とともに「京魂英雄」が離陸しましたあとはセンサーを頼りに飛行船が動く自動制御です第1通過点を無事に通過し第2通過点もかろうじてうまく通過したのですが…その後は予定コースを大きく外れてしまいましたゴール地点ではない場所でしたが着陸には成功し得点を重ねました結果参加全チーム中最高の9ポイントを獲得し2位(4ポイント)以下に大差をつけて見事優勝を果たしました

 相撲競技はトーナメント方式で行われ筆者らはパイロットとその補助を務めまし た抽選の結果1回戦の第1試合で昨年度総合優勝のチームと対戦することになり機体の特長である機動力を活かす会場の気温や空気の流れを考慮するなどといった作戦を練って試合に臨みましたパワー重視で迫りくる相手を優雅にかわすという見せ場もありましたが残念ながら初戦敗退(相手チームは優勝)

今年の結果は残念なものとなりましたが得るものも大きく大会の様子や他チームの飛行船と対戦した体験は来年への糧になりました来年は総合優勝を目指し開発や戦略に取り組んでいきたいと思います


MDDロボットチャレンジ2008はソフトウェア審査と飛行競技2種目からなる

【モデル審査】 飛行競技2種目についてその仕様に基づき作成したモデルを事前に提出し審査を受けるモデルに基づくソフトウェア開発を推進してソフトウェアの品質を高める手法を身につけることが大会の主眼の1つであり配点の半分以上を占めるプロジェクトの大規模化や多人数のエンジニアでの開発が増えている現在文書化やモデル化など言葉や図を用いてプロジェクトの方向性や目標を明確にするためのコミュニケーションは欠かせないという側面もある

【自動航法競技】 飛行船を出発地から離陸し決まったポイントを通過しながら目的地に着陸する様に航行させることを競う飛行船は地上に配置された超音波センサーによって自分の位置を検知し基地局であるノートパソコンに送信する基地局は位置情報をもとにプロペラを制御する命令を飛行船に送るこれにより飛行船は予め決められたルートを自律的に飛行する

【相撲競技】 1対1で争うそれぞれの飛行船が後部に長いリボンを付けており先に相手のリボンに触れるまたは相手を場外に押し出した飛行船が勝ちとなる試合時間は5分制御コントローラは各チームに委ねられておりマウスやキーボードで操作するチームゲームのコントローラやジョイスティックを使うチーム自作コントローラで挑んだチームなどさまざまであった


インタビュー 飛行船プロジェクトでリーダーを務めた高橋 修司さん(京都情報大学院大学2回生)

楽しくもあり辛くもあった実践の場

高橋修司さん

小型飛行船ロボットの制御を競う「MDDロボットチャレンジ」自動航法部門で 見事1位に輝いた「京魂英雄(きょうこんひーろー)」この産学連携チームをまとめたのはKCGI2回生の高橋修司さんだチームリーダーとして前大会の失敗を教訓にマインドマップを導入した分析やシミュレーションソフトを使っての試行錯誤が功を奏し並み居る〝強敵〟を抑えて快挙を達成した「机上での勉強だけでなくKCGIが目指している〝実践に即した研究〟を経験できたのが私としてもメンバーにとって意義深いと思います」と語り「自動航法でトップになれたのはHERO(ヒューマンエンジニアリ ングアンドロボティックス)社の技術力に支えられた面も大きいKCGIKCG側は今回の反省点を洗い出して来年こそは総合優勝を掴み取ってほしいなかなか難しいことですけどね」と微笑みながら後輩に夢を託す「思い出として楽しくもありあるときは辛かった」という高橋さんに話を伺った

―MDDロボットチャレンジは昨年も出場しましたね

高橋 江見圭司准教授が「KCGIで飛行船が飛びます」と突然言ったのが2007 年8月のことでした技術者らしき人(※1)がおもむろにキャリーカートを引きずってきたのですが何かおかしいカートの中からユニットが出てきただけでした「飛行船だろ」って正直頭が混乱したのを覚えています空をゆったりと舞うあの巨大な飛行船をイメージしていましたからねでも解説を聞きながらユニットが動く様子を見てこれが飛行船を飛ばす源になるのかと非常に興味がわきました10月に大会があると聞かされ迷うことなく「参加したい」と声を上げました

※1 二上 貴夫氏 (株)東陽テクニカ MDDロボットチャレンジ2007実行委員長

でも開発期間は2ヵ月足らずまともにやったのでは間に合うはずがありません するとKCGIの別の学生から「ドリトルでプログラムを作るのはどうだ」との意見がました礎ともいえるハード面はHERO社の方が担当してくださり大会に向けて設計と分析を大急ぎで繰り返したことが今でも鮮明に思い出されますでも大会では残念ながら飛行船はうまく飛びませんでした「参加することに意義がある」レベルでした

KCGI 長谷川利治学長の指導で飛行制御の開発を進めた
KCGI 長谷川利治学長の指導で飛行制御の開発を進めた

―初チャレンジの教訓はありますか

高橋 製作期間は非常に短かったし大会では操作でケアレスミスを犯してしまったなど言い訳はいくらでもできます一方でドリトルで参加できたという自信も同時に得ることができましたでもやはりこの“惨敗”を経験し何とか次回はと思いを強くしたのは確かです大会で学んだことは数多かったですしねたとえば飛行船そのものの重量1グラム2グラム軽くすることで飛行ががらりと変わることが分かりました

―そしていよいよ「リベンジ」に向けてスタートを切ったわけですね

高橋 スカウトするなど人材をこちらで集める方法もあったのですが前年の私たちの活動を見てKCGIから8人KCGから1人集まってくれましたそれに前回に続きHERO社のスタッフの方々を加えチームを結成次に大事なのは役割分担でしたこのプロジェクトに参加すれば単位がもらえるというわけではありませんしやはり個々の意欲と自主性を優先させようと思いましたKCGIの講義「リーダーシップセオリー」で学んだことを思い出し実践に移したわけです適材適所よりもむしろ自主性を重視しました

役割を決め自主性を尊重する方針を固めたからには「絶対こうしなさい」という類のことは言わないでおこうと決めましたでも今になって考えるとこの方針が良かった点でもあり失敗した点でもあると思いますそれぞれが任せられた部門に専念しできない場合は自ら必死で勉強して克服したというような例が多くみられた半面目が行き届かなかったため対策が手遅れになってしまったということも…チームによるプロジェクト進行の難しさを痛感しました


シミュレーションソフトで分析を行ったのが好結果に繋がった

―製作でもいろいろ工夫を凝らしたようですね

高橋 昨年はプログラミングの言語としてドリトルを使いましたがある講演(※2)でC#を組込みに使うことも可能という話を聞きこの技術を使って臨もうと決めましたさらにメンバー全員が意見を持ち寄って「マインドマップ」を作り製作の全体像を把握するとともに日々の成果を報告しあいフォローするといった形式で進めましたこれは製作が佳境を迎えるとなかなか機能しませんでしたけどねまた実機だけでなくソフトウェアのみのシミュレーションによる分析ができたのも大きかったですね実機による試運転なら1000円もする電池が3時間ほどしか持たないヘリウムガスも非常に高価でコストはかかるセットアップにも時間がかかりますシミュレーションを用いると温度風といったいろいろな環境の変化への対応も分析できますしねパイロットの腕も上がりました大会の審査でも高く評価されました

※2 太田寛氏 マイクロソフト エンベデッドエバンジェリスト

―そして大会当日「京魂英雄」は華麗に舞いました

高橋 自動航法競技では無事に飛んでくれて1位を獲得することができたでも大会で最も重視されているモデル審査は出場11チーム中5位今年新設された相撲競技は1回戦負けですからまだまだもろ手を挙げて喜ぶというところまでには至っていません

ただ私たちのチームは産学連携チームでしたので学ぶことが非常に多かったのは事実ですわれわれ学生にとっては講義では補えない実践的な開発を体験できる実際の業務ではもっとシビアかもしれませんが企業の方々とともにプロジェクトに取り組めたことは開発手法の評価を受けるといった点においても大きな経験になりましたね一方私が言うのはおこがましいかもしれませんけど企業側にとっても本業の開発案件ではリスクが大きく手が出せないような開発手法を試みることができる小規模プロジェクトに全員で参画でき全体を見る目が養えるといったメリットがあったと聞いています

私自身はリーダーとしての力不足を猛省しています開発を急ぐ余り大会が近づくにつれてチームとしてのまとまりが保てたのだろうかサポート体制は果たして十分だったのだろうか…オブジェクト指向設計やプロジェクト管理についてKCGIで勉強はしましたがやはり実践は大変だと痛感していますこれらの教訓を土産に次のリーダーにバトンを渡したいと思います


この著者の他の記事を読む
高瀬 えりか
Erika Takase
  • 京都情報大学院大学 1回生

上記の肩書経歴等はアキューム17号発刊当時のものです

この著者の他の記事を読む
後藤 洋信
Hironobu Goto
  • 京都情報大学院大学 1回生

上記の肩書経歴等はアキューム17号発刊当時のものです