UMLロボットコンテスト UMLロボットコンテスト ロゴマーク

第3回 UMLロボットコンテスト

第2回 UMLロボットコンテスト参戦記



これは調子のって 「第2回 UMLロボットコンテスト」に挑戦し、 思わぬ好成績を残してしまった、とある社会人チームの記録です。

2月
  1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28  
3月
  1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31  
4月
  1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30  



2月24日

この日午後、部長からの内線電話がことの始まりです。

部長:「いきなりで悪いんだけど、明日ヒマある?」
:「はぁ?」
部長:「忙しいよね?」
:「だから、何ですって?」
部長 :「○○社から、LEGOのマインドストームっていうおもちゃを使ったUMLロボットコンテストっていうイベントの案内が来ていて、その説明会が明日あるんだけど行ける?」
:「また急ですね(^^;」
部長 :「コンテスト自体に出場できるかは別にして、○○社とのつき合いもあるから誰か聞いてみてきて欲しいんだよなぁ...」
:「分かりました、じゃあ私が行ってきます。」
部長:「じゃあ案内のメール転送しておくから!」

こんな感じのやりとりの後、実施説明会参加の申し込みをしたのでした。


2月25日


説明を一通り聞いたこの時の感想としては、「UMLってまだ実際の業務では使ったことないけど、 講習会もあることだから、これなら何とかできそ~ジャン♪」と軽~く 思ってしまいました。しかし「参加するとなると、その費用はどこが出してくれるんだろう!?」 と現実的な問題も、一応は頭の片隅には過ぎりました。

2月26日

部長、支社長と実施説明会の報告と参加についての相談をしました。

※社会人ですから報・連・相は基本です(^^;


相談の結果、以下の条件で参加が決定しました。

  • コンテスト参加により、UMLの技術を身につけ、理解を深めることを目的とする。
  • 参加は自主参加とし、支社内で公募して集める。
  • 活動は基本的に定時間後に実施する(クラブ活動のイメージ)
    →ただし、定時間内にあるイベント(技術説明会等)の参加は、業務に支障のない範囲で認める。
  • 参加費や必要な機材の購入費用は会社が負担する。

3月5日

チーム名「LEGOでレっつゴー」でショートトラック部門に参加申し込み。


3月8日

「レゴ マインドストーム」購入
※ただし、この日は電池を買い忘れて、すぐに動作確認をできませんでした。


3月10日

第1回チームミーティング

これまでメンバの業務都合があわず、やっとチームミーティングを開くことができました。
集まったメンバは、公募で集まった者と技術習得を目的に参加を呼びかけて同意した (実は強制との噂も…)若手、 それに私を加えて5名です。この日はコンテストに向けての活動方針と今後のスケジュールの 確認が主な内容です。またこの時に行った目標の設定は、以下の通りです。

モデル部門:入賞
タイムトライアル競技部門:完走

作業を進めるに当たり、メンバはこれまでモデリングという作業は 全くやったことがないので、 モデルの大枠(「ユースケース図」「クラス図」くらい!?)が決まるまでは ブレーンストーミング形式のミーティングをしていくことにしました。 とはいっても、一からミーティングで作るのは効率的ではないので、 次回のミーティングまでに自分なりのユースケースを考えて、 それをたたき台に次回のミーティングを進めることにして、 この日のミーティングは終了しました。
実際のところ、この時点でコンテスト当日まであと1ヶ月 くらいしかありません。こんな調子で本当に大丈夫なのか、不安だらけの実質的なスタートです。


3月14日

これまでUML(というよりオブジェクト指向!?) について、本を読んだことがある程度のレベルしか 持ち合わせていなかったメンバですが、今回の説明会に参加したことで、 なんとなくモデリングのことを理解した気 になれました。

また説明会では、今回のレベルであれば「アクティビティ図」を作れば、 設計までできてしまうかもしれない。しかしUMLのダイアグラム全てを使う 必要はないが、「ユースケース図」「クラス図」 くらいはどのチームも出して欲しいとの極秘情報を 入手できました。


3月17日

第2回チームミーティング

メンバなりのモデリングを期待していたのですが、なかなか作業が進まないようです。

なにせ、みんな初めての経験ですから…
そこで、個々で悩んでいても仕方が無いので、 競技規約と走行体について、再確認するための緊急ミーティングを行いました。 こんな状態で作業が進むわけもなく、結局この日はモデリングの成果物を確認しただけで散会です。

※みんな初心者なのに、こんなにのんびりしていて大丈夫なのかなぁ? 当日まで1ヶ月切ってるんだよなぁ…(大汗)


3月24日

今回の技術説明会では、実装を意識した設計まで説明していただき、大変勉強になりました。
なのに、我々のチームが作ったモデルといったら…

鉄腕アトムの絵が入った乾電池

またこの日はオフィシャル・バッテリーが配布されました。 ありがたく使わせていただきます(感謝)。
※この時点では、まだ市場に出ていなかった乾電池だそうです。


3月25日

第3回チームミーティング

この日は私が所用で外出していたため、残ったメンバには、
「最低限ユースケースくらいは、決定しておいてね(^^;」
と言い残して行ったのですが、ミーティングは順調に行われていたのでしょうか!?
その結果は…


3月26日

第4回チームミーティング

前日のメンバの成果は、 ボツ!!
ミーティング中のメンバ というより、何もできていませんでした(泣)。

そこで改めて、各自が持ち寄ったユースケース図クラス図を元に、 チームとしてのモデルを考えようと作業のやり直しです。
しかしミーティングが始まると、題材自体がすぐ目に見えて直接的であるため、 物事の全体を抽象的に捉えることに、 逆に苦労しました。これまでの業務経験(!?)から、 すぐに具象的な話になってしまいます。
ちなみに、すぐに具象化したがる一番の問題児が 私だったことは言うまでもありません。


3月27日

第5回チームミーティング

モデルも何とかそれっぽい形になりつつあります。 とりあえず、あともう一歩といった感じです!?

残念なことにこの日をもってメンバの一人が担当業務が変わり、ロボコンの活動を する時間が取れなくなりました。やむを得ずメンバから外れることになりましたが、 今後の業務にこれまでの経験を活かしてください。
って、それほどの成果はまだあげてませんけど…(^^;


3月28日

第6回チームミーティング

やっとの思いで、モデルの大枠が決定!!
これからの作業はこれまでしてきた業務と同様にできそうなので、引っかかることは 少ないと思われます。


3月31日

この日からの作業は手分けして行うことにしました。 モデル図を清書する人と、実装を行う人…
実はこの時点で、まだ使用するOSの動作確認を行っていませんでした。コーティングにいたっては、1行すら していません。
あっ!、モデル図は英語版も作らないと…。 まだまだやるべきことがたくさんあるなぁ(泣)。 こんな調子で、週末の「試走会」に間に合うのでしょうか?


4月1日

この日も手分けしてモデル図の清書と、OSの動作確認です。
それなりに、作業している感じですね(^^)


4月2日

モデル図(初版)完成!!
他部署にはモデリング経験者がいるので、その人にチェックしてもらおうと、 できあがったものをメールで送り付けました。

モデル図(初版)
できあがったモデル図(初版)
※クリックしても大きくなりません(^^;

チェックを頼んだ人からは、 あまりにもモデルが稚拙でコメントに値しなかったのか、 何の反応もありませんでした。
(後日話を聞いたところ、その人はその頃は忙しくて自分のことで手一杯だったそうです(ホッ)。)


4月3日

提出用のモデル図に若干手直しが発生しましたが完成し、一通りコーディングも終了したのですが、 リンクができません!! サンプルプログラムとかは問題なくリンクできているので、makefileの 記述に問題があるとは思うのですが、どうにも解決しません。
それなのに明日は朝一から試走会です。さて、どうしたものか…(泣)


4月4日

動かせるモノができていないのに、試走会に参加してしまいました(^^;
この日の目的はただ一つ。コースに関するデータ収集です。 OSに付属のサンプルプログラムを使って、 コース上の輝度の差や坂を上るときに必要なパワーを検討していました。 もちろんデータ収集のかたわら、試走会の会場でシコシコとリンク作業をしています。
(実はその姿が公式終了報告の中に収められています)

試走会の時間内にリンクは完了したのですが、 実際に走らせようとしたときにタイムアップとなりました。

試走コース
坂、昇らないなぁ
同じ組でまともに一周できたのは1チームだけでしたので、 逆の意味で安心したのは我々だけではなかったハズです。
余談:
会場が東京大学ということで、 ついついおのぼりさんになってしまい、 赤門前で記念写真を撮ったり(写真左)、売店で東大ブランドのお土産品(写真右)を 買ったりしていたのでした。
赤門前にて
売店で買った「東京大学」の銘が入ったボールペン

人数の関係で試走に来られなくて会社に残ったメンバには、 提出ドキュメントの発送手配をお願いしていました。

モデル図(提出版)

提出したモデル図
※これももちろんクリックしても大きくなりません(^^;

しかし今見ると「ホント、お粗末なモデルだなぁ」と、つくづく思います(爆)

さぁ、帰社したら今日からは本格的な動作の調整開始です!!

と言いつつ、私は所用でメンバとは別行動。みんなちゃんとやってね(^^)


4月7日

動かせるモノができれば、どうにか形にはなるものです(^^; マインドストームに 付属しているオーバルコースは、わりとすぐに一周できるときがあるようになりました。

付属のオーバルコース

ただこのときの一周の走破タイムが約30秒で、 これでは全く勝負になりません(泣)。

この頃から、モデル図も提出してしまったのでUMLのことは どこかにいってしまい、もう速く走らせることしか 頭になくなっていたと思います。


4月8日

なんとかオーバルコースを一周走れることに気をよくしたメンバは、 早速本番コースに似せたテストコースを走らせる準備に取り掛かったのでした。

テストコース作成中の様子

テストコース作成中

模造紙に黒色のビニルテープを貼り付けます。

テストコース上の走行体

テストコースを走らせたりもしてみる。


4月9日(本番一週間前)

テストコース(約5m/周)が一応完成しました。
まだ、ステアリング制御の問題は解決していなし、漆黒線の認識制御できていないのに....


4月10日

テストコースからコースアウト

がよければ、テストコースを一周約30秒で走ることはできるようになりましたが、 それでもこのままだと本番では時間制限に引っかかってしまうようなタイムだと思われます。

<参考>
  • 本番コース:約20m
  • テストコース:約5m
  • 明日は朝一から2回目の試走会ですが、問題山積み!!


    4月11日

    1回くらいはコースを完走するんではないかと臨んだ、2回目の試走会ですが、

    黒線の輝度を再計測中
    本番と同様の装飾

    結局この日もコースを完走することはできませんでした(大泣)
    しかしコースを走らせて分かった、速く走らせるためのヒントがいくつかありました。 帰社したら早速試さなければ(^^)。

    と言いつつ、この日も私は所用でメンバとは別行動。みんなうまく調整してくれるかな!?

    余談2:
    もちろん今回も試走会場が東京大学ということで、前回と同様に お土産品を買っているメンバがいたことは言うまでもありません(^^;


    4月14日(本番二日前!)

    メンバの一人が前日から発熱のためダウン...
    この日、ついに現状のレベルではほぼ納得できる動きをするようになりました。
    テストコースでの結果ですが、コースアウトすることもなくなり、走破タイムも 7~8秒になりました。 そこで本番コースでの走破タイムを計算すると、単純にテストコースの 約4倍の長さだから30秒くらいとなり、これなら 三位くらいなら狙えるかな?」 と欲が出てきました(^^;

    もちろん、この時は冗談のつもりだったんですけど…


    4月15日(本番前日!)

    本番を明日に控え、ソフトは昨日までの調整のままとし、もういじらないことにしました。


    4月16日(本番☆彡)

    この日の練習走行の1回目で、初めてコースを 完走できました。その時のタイムは ほぼ予想通りの30秒くらいだったと思います。しかしこの時点でまわりから 聞こえてくる声は20秒台ばかりだったので、これでは上位入賞は まず無理だと思われました。 スピード制御については既にストレートは限界の調整だったので、
    『カーブで転倒しないギリギリのスピードを見つけよう』

    走行体を補強中

    ということになり、それを見つけるために時間ギリギリまで試行錯誤でカーブスピードの調整を行いました。
    しかし、走行スピードが高速になるにつれ、ソフトウェアとはまったく次元の違う問題が発生しました。 車体の強度がスピードに耐えられなかったのです。 この対策には粘着テープで車体を作っているブロックのつなぎ目を補強しました (おかげで、同じ物なのに見た目が一番カッコ悪かったかもしれません)

    レース前の車検を済ませ、いよいよ本番です。

    一本目:
    接触しそうになりながらコーナーを回る
    坂の手前の最終コーナーを疾走中

    一本目はインコースからのスタートです。 途中アウトコースの相手と接触しかかったところもありましたが、 最終コーナーの手前でコースアウトしてしまった相手を置き去りにして、 無事ゴールすることができました。 タイムは、な、なんと、24秒18!!

    この時点で暫定の第一位を記録しました。

    暫定第一位

    一本目の全てのレース終了後の成績は第三位でした。 冗談のつもりで言った上位入賞が、予想以上の好記録が出て 現実のものになりかけています。この時ばかりはメンバ全員が驚き、 私いたっては慣れないポジションにいることで胃が痛くなっていたのでした。

    一本目終了後順位

    二本目:

    順調に走行中
    残りは最後の坂のみ

    今度はアウトコースです。それまでの二本目のレースを見ていたら、 アウトコースの方がタイムがよくなる傾向があるようで、 我々のチームの記録も自ずと期待が膨らみます。
    スタートも決まり、順調に走れば更に好記録を期待できそうです。
    結果は、23秒50!!

    またまた暫定第一位をGetです!!

    また暫定だけど第一位

    レースは後の組のチームに一位の座を明け渡し、最終的には第二位となりました。

    最終レース結果
    いただいた賞状

    我々のチームは、レースでは第二位という好成績を残せましたが、 肝心のモデルの方の成績はどうだったのでしょう? 上位3チームしか発表がありませんでしたから、我々のモデルがどの様に 評価されていたのかは不明です。 少なくともモデル審査員からの
    「よいモデルはよいレース結果であったか?」
    の問いに対して、
    「たいしたモデルでなくても速く走れる」
    という、あまり嬉しくない結果は提供できたと思います(^^;
    しかしソフトウェアは、やはり動いてナンボの世界であるのも事実で、 美しいモデルができてもプログラムにして動かした時に目的を達成しなければ 意味がないといった面もあると思います。 よって我々のチームは、実を得ることはできましたが質が伴っていなかったと言えます。

    今後は、

    目指せ 日本最強の組込みエンジニア

    を目標に、質・実ともにレベルアップに取り組んでいきます。