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

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

乗り遅れ日記(Late in the New Paradigm)

2/19 木
花粉症スタート    
2/20 金
エントリーフィ請求書受領(ぎりぎりまで待ってね)
Eclipse/CDT 稼動確認、同UMLプラグインとっかえひっかえ。Javaコードしか吐かず、凍る。 ....あ、あたりまえ?....
ショックのあまり、品川PassJのセッション受講は遅刻。予想外のただ飯、ただ酒付き。 なんだかしあわせ。
Yukonの開発環境ともなる新VisualStudio"Whidbey"では、Visio相当のUML描画機能が標準搭載になる模様。コード生成まで、
一気に走れる....予定....らしい。逆方向はどうなんだろう? 酔っぱらって、質問を忘れた。
2/21 土
オフィシャルCDROM受領。この上MinGWベースにこだわるのは、時間の無駄か?
花粉症の薬が切れるが、医者の受付時間を過ぎてる.... 結局漢方薬に挑戦することにした。¥14,000~¥7,000/一ヶ月!
とりあえずVisio/UMLのおさらい.... 目がかゆい....
2/22 日
提供CDROMのMLCAD/LDRAWが壊れている。走行体モデルを、最新版のMLCAD/LDRAWで試してみる。問題なし。
週末に入り、活気付くかと思った参加者MLは、妙に静か。
2/23 月
花粉症、シフトアップ。頭が重い。
2/24 火
大手町東陽テクニカ殿にて、第1回説明会。"How"と"Whot"を切り分けよ。コーヒーこぼしてごめんなさい。
2/25 水
Lego Mindstorm Team Challenge 基本セット シリアル接続版 が到着。やっと黄色い小箱とご対面。
 とりあえず、WinXP上で
    Cygwin 現行最新版
    再コンパイルしたbrickOS 0.2.6.10
    提供のままのH8クロスコンパイラバイナリ
という構成にて、永遠の最初の一歩たるHello Worldを試行。
 ところが、Irタワーが反応しない=ダウンロードできない。あれ?これってドライバ要らないの?ダウンロードツールのソースを
ちら読み。ベタにドライブしている気配で、要らないようです。
 三種のシリアルアダプタを試すが、あまり芳しくない。調べてみると、相性問題がある模様。とりあえずエラー付きで転送に成功。黄色い小箱の緑のボタンをポチッとな!ちょっと感激....
 電源は、センターマイナスのDC9Vアダプタを使用。黄色い小箱君は、ダイオードブリッジ内蔵で交流対応という恐ろしい仕様。

←さて、ご開帳~




こんな感じ→


←やくざな面々。Irタワー(シリアル)、IBMシリアルパラレルUSBアダプタ、PalmVシリーズグレードル用USBアダプタ、ソケット社初代シリアルカード。それに、黄色い小箱と、留守番電話用センターマイナスDC9Vアダプタ。スポンサー殿から拝領のアトム電池は、まだ出番なし

RCX Hello!最初の一歩→

2/26 木
進展の少ない日。走行体の組上げに対する意欲が沸かない。レゴ怖い....
 参考書として、翔泳社刊 組み込みUML eUMLによるオブジェクト指向組み込みシステム開発 を購入。MindStormシュミレータ CSSと、Konesa_RT体験版が付属している。体験版のタイムボムは1ヶ月とのことで、何時キー申請を行うか、ちょっと考えちゃう。
 レジにて、花粉症爆発。なぜかティッシュ配りがどこにもいない。今なら、箱ごと引き受けるのに....
 Irタワーとシリアルコネクタの相性問題が、気になってしょうがない。大庭委員から、Irタワーが通常のシリアル手順とは違うらしいとの指摘が出る。
 WindowsXPのCOMポート割付が、COM10まで上がってしまっている。ちまちまと、1ポートづつ手動にて開放。購入してきた新品の9V006PをIrタワーにセット、再度各種シリアルアダプタを順に試す。IBMのアダプタのみ、フロー制御の変更で正常終了となることができた。他の二品は、状況変わらず。

ちゃんと読みましょう
2/27 金
 昨日までわけがわからず困っていたのが、昼食時に急にレゴブロックが見えるようになる。いそいそと組み立て。部品を探している時間が一番長い。
 登坂コース対策設計変更部分で、少々迷う。三パターン組上げたが、第二案で行く。なんにせよ、組みあがって一安心。
 
 ところで、オフィシャルスポンサーのソニー殿から供給されている単三アルカリの通称アトム電池。アトム君の線画が描かれているのは当然ですが、1/500の確率でウランちゃんの彩色画バージョンが混じっているそうです。 ウチの60本はどうかな?
ロゴ専用CADをみながら、ボチボチ、ズルズル。実は一箇所間違いあり。 スナフキンも迷う、部品の森 部品が違うような気もするが、気にしないで~。
2/28 土
疲れて、何もしない一日。LEGOの色パターンを換えて遊んだり.... 意味なし。
花粉症がひどく、再度アレルギー科にて受診、弱い抗アレルギー剤をもらう。医者と相談の上、洋漢併用を試す。
2/29 日
殆ど何もしない。秋葉原ツクモのロボット店が無くなっているのは、初回説明会の帰りに気がついていた。今日になって本店の一売り場として吸収されていたことを知る。HPを眺めて、単品部品売りの高価なことに驚く。

昨年/一昨年の参戦記を再読。Javaでの参戦を断念する。ベタなCではなく、C++で行きたい。夜になり、ようやく教科書を開く。
チーム名のニューパラダイムとは、私にとってはUMLのことではない。実を言うと、C++に代表される、初期のOOP全般のことです。
3/1 月~3/2 火
そろそろ、この作業を止めてでも確定申告をやらなければならない。気が重い。

Eclipse/CDTを使うが、Visio Pro 2003 + VisualStudio.net2003の方が楽なような気もしてきた。UMLからスケルトンを吐いてくれたほうが、勝ちでしょう。ううむ、結論出ず。

家賃を支払っていなかったことを口実に、銀行へ行く....フリをして某町田のレゴショップへ。よく来る場所なのだが、レゴショップには始めて入る。RIS2.0が一箱あるだけで、期待した小物バラ売りは無し。レゴ腕時計ことレゴタイムの特価品を見つけて、ひとつゲット。

Y字分岐付きトラック図が公開となる。ゼブラトラックねぇ。ううむ....
LegoTIME Mars Landing 懐中時計バージョン。\1,990也。付属の腕時計バージョン用ベルトが、専用レゴブロックで構成されています。
3/6 土
於お茶の水女子大 NT-Community Webサーバーのセキュリティ 前半最高後半最悪
3/7 日
F1開幕戦(?)
3/8 月
於横浜 MSKK セキュリティ関連 無意味なイベント 30分で退席
3/9 火
於日本橋 ロボコン技術説明会2 1人だけ遅刻

進捗ございませんっ!3月16日まで、進捗ゼロの予定です。
UMLツール、決定しておりません。コーディング環境、決定しておりません。
時間切れに向かって、経験のあるVisioPro+VisualStudio.net採用に傾きつつありますが.........
.net2002と,net2003があれほど変わっていたとは、知りませんでした。おじさんには、辛い状況となりつつあります。
イノセンスは、何時見に行けるのでしょうか?とりあえず、ケンタッキーでイノセンスパックを購入して帰宅。

おぉぉ.....線端ではなく、線央を走る考えのチームが、私以外にもいたとは.......

3/17 水
二日遅れにて、ようやく納税作業完了。午後は四谷にてセキュリティ関連講習受講。一般的なSE~プログラマも、証拠保全等法律的な知識が求められる時代になってきたようだ。
夜になり、ものすごい強風の中を映画館レイトショーへ。
待望の映画鑑賞を済まして、気分的にも一区切り。明日から作業再開とする。
それにしても、抗アレルギー剤入り目薬を使うと、やたらに目が乾く。職業病ではありますが、さらに目が乾くとなると、これはこれできついなぁ....
3/18 木
Rational Rose XDE の評価版キーを受領する。奇しくも評価期限がコンテスト当日とのこと。他のツール類も比較したが、意外と資料が少ない。一番資料が多いツールが使えるのなら、それに越したことは無い。
今回受領のXDEはVisualStudio.netのアドオン環境になるので、あまり違和感も無いだろう....とは、淡い期待。実は、大量の英文ドキュメントを前にして、茫然自失。
RoseXDE評価版 with 恐怖の大量英文ドキュメント
3/19 金
XDE.netが、正常に稼動しない。久々にMSDNを検索。.netフレームワーク複数バージョン衝突云々とのことで、VS環境の修復/再インストールを余儀なくされる。深夜になっても修復が終了せず、そのままふて寝。
しかし業務中でなくて、良かった。最新のWindows系開発環境は、.netフレームワークベースに移行していることを改めて思い知る。
3/20 土
一夜明けて、さすがに修復は完了している。該当マシンは昨年末新調の新型ノートPCメモリーも十分だが、着脱可能な内蔵光学ドライブが内部PCカード接続な様で、IDE直結なものよりだいぶ遅いようだ。

修復VS環境にて、再トライ。正常稼動を確認、UMLからWindowsアプリケーションを生成できることを確認。
意外と調子良い。慣れるのが早いような気がする。歳を喰って抵抗力が衰えた分、新しい開発環境への拒絶反応が少なくなったような....
3/21 日
F1GPの有料放送観戦で、友人宅に押しかける。F1マシンの爆走を眺めつつ、我が黄色い小箱君の疾走を夢見る。フェラーリの独走にあやかって、ウチのも赤く塗るか(ウソ)。
それにしても、少し飲みすぎ.... ホンダドライバー佐藤琢磨君も、エンジンブローでリタイア....
友人の息子殿からは、リアルロボット誌の付属周回コースを借りてくる。この単純なトラックをトレースすることを、第一回試走会までの目標としたい。   
まだ1センチも走っていません。
3/22 月
提出プレゼンテーション類は、A3紙指定になっている。A3対応プリンターは、手近に無い。画面上でUMLを俯瞰するのもしんどいし、やはりA3プリントは欲しい。
オークションを覗く等々一週間迷った末、インターネット上の中古OA機器屋で、A3モノクロレーザープリンタを発注。両面印刷ユニット実装、専用10Base-Tボード実装、増設ホッパ一段の超豪華構成で、送料別\15,000程。使い物になればいいけど....
3/24 水
中古レーザープリンター到着。調子良い。良い買い物だった。音がうるさいのが参ってしまう。置き場所が....無い!
3/25 木
この期に及んで、Rational XDE.net を断念する。構文解釈部がVS.net依存の様で....というより、.netの中間コードを解釈しているような感じで、H8なGNU.cppコードは使えない模様。brickOSに多数存在するヘッダファイル中のべた書きインライン関数が、ことごとくアウト。身動き付かない。VS用偽ヘッダを用意する作戦も、数が多くて嫌になる。
UMLとコードを双方向に同期を取ってくれるのだから、そんなもの当然だろうという気はする。それを忘れていたわけではないが、目をそらさせるのに十分なぐらい、このVS/XDE環境はすばらしかった。仕事では、何とか使いたいものです。

タイムアウト!もうどうしようもなく、UMLはコードとは別物として扱うことにする。なし崩しで、UML描画は、Visio Pro 2003に決定。
そうなると、コードはEclipse/CDTでいくか?VS.netで書けば、クラス図のリバースぐらいはやってくれる。まだ迷う。

話が2月20日まで戻ったような気までしてくる。無駄な時間をすごしたという脱力感が強いが、そもそもUMLの環境をいろいろ触って実習してみたいというのが今回のコンテスト参戦理由なので、まあ良いか....良しとしよう....
3/27 土
花粉症だと思い込んでいたら、風邪。結局、二日間寝込む。
3/28 日
意気上がらないまま。
Eclipse/CDTのパーサがすんなりとはエラーを受け取れない。makefileに手を入れる。タグテーブルの更新で、一回置きに失敗する。理由がわからないが、二回連続してmakeすればエラーコードも取れるので、良しとする。
それにしても、UMLとコードの紐付けをどうしよう。スケルトンコードの自動生成しか考えてこなかったので、今になって悩み始める。既に明日の第一回試走会は捨てているが、第二回試走会の翌日がモデル提出期限というのが痛い。モデル提出後からレース当日までが長く、コードの成熟は望めるだろうが、提出モデルとの遊離が生じそうでちょっと怖い。
3/30 火
手ぶらで試走会最終組に出席。ショートカット成功チームが2チーム出て、ショックを受ける。
帰路、参加者の方と秋葉原に。おちゃらけLEGOグッズと、タッチセンサ用の適正サイズコードを購入。土砂降りとなる。
4/1 木
タッチセンサのみの安定首振りに、やっと成功。C++も止めて、ベタベタCで行く。もうどうしようもない。
改造も、二点申請。コードの記述は止めて、提出物の作成に取り掛かる。このまま行けば、第二回試走会も見学のみとなってしまう....

タッチセンサーのみ使用した首振りテストムービー
 *タッチセンサーのみの据え切り首振りテストに、やっと成功。この状態で5分間持ちます。
  これは、改造済みの状態。ライトは、デバッグ兼用おちゃらけ装備。このテストでは、タッチセンサOFFで点灯。
4/3 土
2/26に紹介した参考書の著者一名が、当方の知人。書いたUMLを見てもらう腹積もりだったが、あっさり逃げられる。
コードとUMLの完全シンクロが夢破れたので、あまり気分が乗らない。
4/4 日
豪雨。早々と第二回試走会欠席メールを投げる。見学すら断念。
VisioPro2003のUMLテンプレートは、モデルエクスプローラでがちがちに管理されている。お絵かきベースのお気軽な泥縄作業を予想していたが、甘かった。絵の中に文字を書く....ってな作業は、一切出来ない。ひたすら多階層のプロパティシートと格闘。
F1佐藤君の快走を横目で見ながら、なんとか書き上げる。UMLは提出規定5枚のところ、4枚でギブアップ。
4/5 月
提出間際になって、初期の段階で英文UMLを放置したままだったことに気が付く。最後は提出事務局隣の郵便局で切手を買って(!)座り込み、どたばたと英文版を作成。シーケンス図のメッセージ関連は、全部日本語のまま。とりあえず11時56分に郵便局内でCD-ROMを焼き、事務局へ文字どおり突撃。とりあえず、提出だけはしましたが....
4/6 火
欠席してしまった日曜日の試走会結果が公開され、大いにショックを受ける。

こうなったら、もはやおちゃらけモードで勝負だっ!
バトー(大塚昭夫の声で) ”悲しいね、しょせん人形ってやつにはゴーストってもんがねぇんだよ。”
黄色いタチコマ(玉川紗己子の声で) ”バトー君っ、それは違うね。ほらっ僕たちには、ちゃんとゴーストが搭載されてます!”
バトー ”....”  
4/8 木
ステートチャートって、クラスやオブジェクトに対して描くものか.... アクティビティ図がモデルに対して適用できるので、ごっちゃにしていた模様。そりゃ書けないはずだ。 提出物が一枚少ないのは、これが理由です。あれま。
4/9 金
光センサの扱いが、良くわからない。でももう、納入版(?)コードをまとめなきゃ。
全開で浮き足立つ。おや?分割コンパイルが通らない????なんだこりゃ?ロボコンMLとLEGMUG-MLに質問を投げて、第一回試走会終了後に秋葉原に同行したとりたてわさびさんから回答を頂戴する。
あれ?Eclipse/CDT向けにごちゃごちゃやっていたときの、単発向けMakefileでした!....大丈夫かね?このおじさん。
4/10 土
天気も良いし、ちょいとバイクでお買い物。5mm圧発泡スチロール定尺板と黒テープを購入し、DIYコーナーで4分割して持ち帰る。大渋滞で、助かる。バイクで板物を運ぶと、スピードが出せませんので。
とにかく光センサーの取得値を解明したい。いろいろやってみて、アクティブにした直後のワンショット値は、参照してはいけないことがわかる。センサーの常識?ウェイトをかますことで、まともそうな値を取ることに成功。ちょっと落ち着く。
4/11 日
いや!やっぱりおかしい。黒テープトラックの上を手押しで走らせるが、ノイズ成分を頻繁に拾う。このへんてこな値は、いったいなんだ????黒テープの上で、トラックロストの発泡スチロール白面と同じ値を頻繁に拾う。駆動系を廻してみるが、案の定トラックロストの判定で、簡単に立ち往生する。うぎゃぁ!!!!
スタート前静止時に拾うオントラック基準値も、なんだかバラける。とりあえずこっちを平滑化してみる。ノイズ成分が、高反射方向にしか出ない....らしいことを確認。
いろいろ試した結果、軽いウェイトを噛まして30回連続取得の後、取得結果の高位10回を捨て、残りの単純平均をとることにする。これでも完全に落ち着きはしないが、駄目ならやりなおせばよい。スタート前の手順を確認する。
4/12 月
本日も終日専念とする。眠い。そういえば、審査団からは何の連絡も無い。モデルは、落選だね。
オントラックの正常状態で、トラックロスト判定に入り込んじゃう現象が解決しない。光センサーも取り替えてみるが、状況は変わらない。
とりあえず走行中に、光センサー取得値にフィルターを掛けなければならない。先読みはできないから、下手をすればオーバーラン必至だ。連続的に取得値をリングバッファに放り込み、これの変移を見る方法を思いつく。これなら、ゼブラトラックへの対応も、スマートにまとまる。提出モデルとの乖離も、発生しない。
しかして、マルチスレッド必至である。うまくいかない。なにが?いや、眠いねぇ。沈没~
 
それにしても、某中年が言う所のコンサバモデルの首振り運動が、そのまま光センサ取得値のフィルターになっていることに思い至る。これって、メカニカルフィルターそのものじゃないか???
4/13 火
当日ですな。いや困ったねぇ。もうしょうがない、そろそろ出発....あれ?荷物をまとめてないや!試走会にブツを持ち込まなかったので、荷造りをしたことがない。どたばたどたばた。
電車が妙に空いている。やはり遅刻コースか?電車の中で、へなへなと座り込むと、突然簡単なフィルターアルゴリズムを思いつく。実装は間に合うかな?
青山一丁目で下車、一気に階段を駆け上ろうとするが....大江戸線って深いのね....!!! 途中でエスカレータに乗ろうとするが、階段とエスカレータが交差しない。うわぁ
外に出ると9時28分。 携帯に一報入れると、予想外に(失礼っ!)優しいお声。どたばたと会場に急ぐ。急に空腹感がこみ上げてくるが、どうしようもない。
 
会場は、足の踏み場も無い状態。エントリーを済ませると出走順位が最終回と決定。ありがたいっ!ところかまわず座り込み、さっき思いついたアルゴリズムの実装にかかる。ゴリゴリ。開会式もパスして、コーディング継続。レースは始まってるらしいな。会場は、沸きに沸いてます。
なんとかまとめて、レーストラックに向かう。コーナーを回るアルゴリズムは実装していないので、最初のコーナーでロストして、首振りコース探索開始すれば、それで大OK!
 
スタート!しばらく走って....あれ、ステアリングをまっすぐさせていなかったので、じわじわ斜めに走って、早めにコースアウト。すぐ止まって....バキッ!....ステアリングを振り切って光センサー吹っ飛ぶ。自慢のチャタリングフィルターが効いていない感じ。なんじゃ、こりゃ。
コンビニでおにぎりを購入して、すぐデバッグ開始。状況は直ぐにわかった。インコーススタートだったので、アウトコース走者に突っかけるのだけは避けたかった。このためロストコース直後のブレーキを、最強に設定していた。派手なブレーキングでステアリング周辺にウォブルが発生、擬似チャタリングを拾ってしまったもの。チャタリングフィルターは、ステアリング操作に対してのみ設定してあった。ブレーキング時点ではステアリング固定なので、フィルターが効いていない。
午後はアウトコーススタートなので、ブレーキを通常値に戻す。光センサーのフィルターパラメータも、少々変更。後者は、失敗だった。スタート直後に、妙なタイミングでロスト判定。その後のコース探索用首振りは、安定して開始。まあ良いか。
 
緩みきった脳みそで、とれたてわさびさんと談笑。他チームのモデルを拝見。審査員講評で当方のチャタリングフィルターに言及があったので、ちょっとしやわせ~
打ち上げは、食べて飲んで大放談。うるさくてごめんなさい。来年は、どうしよう。
4/14 水
パネルセッションにて、再び会場へ。セッション終了後、四階で再度他チームのモデルを確認。意地でもメモは取らない!!!こんな単純な構成で、なんでメタファーまで持ち出す必要があるんだ?そんなもの、どこに生きてるんだ?おじさんは、わかりません....
その後書籍即売コーナー物色。積ん読に終わらないよう、厚い本は意図して避ける。結局審査員平鍋さん監修のワークブックとJavaムック本を購入....と、妙な手書き張り紙に気が付く。“価格はお問い合わせください。現金のみで願います。”???聞いてみると、マインドストームの簡易版二種の開封品現金処分とのこと。R2D2に惹かれるが、コントローラに汎用性がなさそうなので、青い小箱ことスカウトが付属するRDSを購入。あれ?来年も出る気なの???
4/15 木
参加者MLにて推薦本を所望。ここで一大発見。以前紹介したeUML本が、頼ろうとしていた当方の後輩?と審査員長の共著でした。ちゃんちゃん。