ETロボコン2006に挑戦してみた

59t9です。この名前はキーボード上で本名のローマ字をずらして打ったら出てくるという他愛ないものです。ETロボコン参加者でした。2006年から参加して、実行委員にスライドしてしつこく関わってます。ははは。

# 2016年はチームCrossSectionの創立10年だったのです。
不意に思い出したので2016年のAdvent Calendarに書いてみます。いまチームは休眠してますが、初年度はぶっこみましたね。言い出しっぺの自分は4年経った2009年をもって後輩に託しその後2013年まで参加してました。

ETロボコンの詳細については[公式サイト](http://www.etrobo.jp/2016/)を見ていただいて、[2006年当時の公式サイト](http://www.etrobo.jp/ETROBO2006/)も残してもらえてるんでご覧ください。

# 挑戦のきっかけ
畑違いの業種からコッチへ入社した早々に「かんたんUML」を渡され教育してもらえへんかと言われたように思います。なんでもできると人は言うけれど、魔法使いかおれは「言われてもやらへん」を決め込んでました。自分で言うのもなんですが不良社員ですわね。実は当の御本が「かんたん」言いながらベテラン顔負けの天才チェン君についていけんと、ちょっと積んでもうたんです。でもいつかはUMLを実践してみたい思てました。

UMLで検索かけますでしょ。「UMLロボコン」て出てたんですわ当時は。ETロボコンになっとるいうんですね。LEGOでなんかやるらしい。「東京まで行くのん遠いやん」思たんです。2005年のことです。加賀百万石が優勝したんでしたね。で2006年になって、社長がお金出すで仰ったんで、行ったろかと。えらい前向きな社長さんさすが創業者。結果が露見するまでは好きなようにやったろうかね、初年度はそういうもんやんって言って。会社を背負うって考えたことがない(笑)。

# チーム名の由来
社内を小グループ分けしてましたんで、社内横断的なチームであるということと「散乱断面積」っていう原子物理学用語が頭にあって、ドッキングしてCrossSectionにしました。申し込む時に「チーム名決めえや」と表示され当惑して数分で決めたんで、メンバーは後から呼んで「チーム名はこうした」と。見かけによらずぐいぐいチームを引っ張る馬力だけはあって、今書いてるとチームとして色々問題あったわと思い起こされて恐いですが当時はね。

# 「リアル」な日程
スケジュールは当初からだいたい決まってて、別に納期短縮ってわけでもないでしょうが、きちきちに詰まってて、公式から引用するに

| 日付       | イベント開催内容       |
|:-----------------|:------------------|
|３／２７（月）|参加申込み締切|
|５／１４（日）１５（月）|集合教育１（開発環境・要素技術・ＵＭＬ入門）（東陽テクニカＴＩセンター）|
|５／１８（木）２０（土）|集合教育２（モデリング）（東陽テクニカＴＩセンター）|
|６／４（日）|大阪・試走会１（富士通ラーニングメディア関西ラーニングセンター）|
|６／１８（日）|大阪・試走会２（富士通ラーニングメディア関西ラーニングセンター）|
|６／２１（水）|モデル提出締切|
|７／１（土）|競技会（東京都立産業技術高等専門学校　東京都品川区）|
|７／２（日）|モデル審査ワークショップ（東京都立産業技術高等専門学校　東京都品川区）|
|７月内|チャンピオンシップ大会参加チーム決定|
|１０月（予定）|チャンピオンシップ大会出場チームの試走会|
|１１/１５～１７（うち１日）|チャンピオンシップ大会（組込み総合技術展ET2006内）会場：パシフィコ横浜|

競技会まで実質三ヶ月です。地区大会はまだありませんでした。参加チーム数108。水滸伝です。しかもいきなり技術教育で東京行きです。ぼくとあと一人。うおお予習が要る(苦笑)。予習がタランティーノすり減ってばたんきゅ。次にどの時期でお尻に火が付くかというと、試走会の週ですね。だめじゃん。しかも走行体を組むところから(笑)。本業そっちのけになりました。

# 七転び八転び
MINDSTORMSってなんや？状態やって、ソフトは載せれるし書けるけどハード制御が全くダメと、少ない実力を痛感させられましたな。かつての実力者は勝ち抜けにこだわらなかった。それだけに色々な技術を持ち込んでまさに砂場だった。DSL相当の言語を実装したり形式手法に挑戦したり、アジャイル開発と言える取り組みまであって、幅広かったのです。

当然試走１は走りません。「部屋ではライントレースするのに・・・？？？」何が必要かは経験者ならお分かりでしょう。今では技術教育会で親切に教えてくれます。むしろ教えすぎです(鬼)。

試走１の後、難所攻略に取り組むのですが、この当時レプリカコース販売はなく、自分でコースを作って敷きつめていました。秋には全コースを紙で再現したのですが、滑って滑って(笑)

「ライントレースは必須だ」という強力な思い込みというか、守るべき第9条みたいになってぼくの頭を固着していたことに気付かされたのは、翌年2007年のことです。色々思い出されます。

![模擬コース.JPG](https://qiita-image-store.s3.amazonaws.com/0/61540/a6837413-5bf6-c708-61c4-c2c03822ac48.jpeg)

![模擬コース３.JPG](https://qiita-image-store.s3.amazonaws.com/0/61540/79204132-806d-ba9a-734f-5028d6ddff53.jpeg)

# 初出場のモデル
ここでCrossSection2006の提出モデルを紹介しますね。厳密にはETロボコンの著作物ということになっておるはずですがもう10年経って今と内容が大きく変わったし許してたもれ。万難を排して、殊にぼくの*羞恥心*を乗り越えて、画像として載せます。

![20161203_crosssection_page1_usecase_diagram.png](https://qiita-image-store.s3.amazonaws.com/0/61540/0194ae2a-41e4-44c5-915b-10e04b2f4231.png)

![20161203_crosssection_page2.png](https://qiita-image-store.s3.amazonaws.com/0/61540/c2962acf-f1ca-2b85-47d8-22d1c8c77b6c.png)

![20161203_crosssection_page3.png](https://qiita-image-store.s3.amazonaws.com/0/61540/0a844315-c3fa-ad9b-dca6-d0c688ea4ccd.png)

![20161203_crosssection_page4.png](https://qiita-image-store.s3.amazonaws.com/0/61540/6663065e-5902-777b-50ad-fa36450f1869.png)

![20161203_crosssection_page5.png](https://qiita-image-store.s3.amazonaws.com/0/61540/87602c0a-7298-8929-cc78-bc08ef07cac7.png)

評価は、今で言うたらディベロッパー部門プライマリクラス程度の、それも中の下くらいの、ぶっちゃけCですわorz
何があかんのか。まずは名前がバラバラに付けられて連係がとれてない。UMLの書法ばかり気にして本質をすくい取れなかった。。。。いかん泣けてきた。。。
ユースケースはやっぱりユースケース記述が要りますね。どこまで深く対象を理解しようとしているか見えないでしょ。そしてここで分析した内容が以降の図に活かされないといけない。
シーケンス図は一括で書くと焦点がぼやけます。ソースコードを見た方が早いってきっと言われます。
でっかいステートマシン図を書いたのに、走行体戦略としてかどこかのオブジェクトの内部状態か判然としないｗにしてはちくちく指示が細かいので、「さてはmain()に全部一枚岩で書いたんやな！」と。はいそのとおりです。おろろーんorz。きっとこのままではオブジェクトの内部状態としても責務が大きいと言われるでしょう。
要素技術は入っていません。当時は説明する義務がありませんでした。しかし後にモデルを評価する補強材料として規約に取り入れられました。実は義務どころか必須だったのですが拙なるかな気付かずでした。
難所通過技の披露に重点を置いてるのに、十分にモデル化できなかったのですね。技の名前くらい付けたらいいのに。でも今でも技の説明はアクティビティ図として成功時のケースに絞って一本線のシナリオで書かれることが多いです。あんなケースこんなケースと書くと誰得な辛い図になるのでしょう。なんとかなりませんかねぇ。
タスク分割しているところはわずかに褒められた覚えがあります。当時は表記法が十分ではなかったと思いますが、これはクラスなのかオブジェクトなのか(汗)

後に実行委員に回ってから他チームのモデルをまじまじ見て、どこらへんがダメダメだったかを思い知ることになりました。復帰したいと願ってももう遅い。なんちゃら委員長までやってしまった以上、復帰のハードルは下をくぐれるくらい高くなってしまった。

# 競技会での走り
本日のために動画も引っぱり出してきました。2000年くらいのコンデジで撮ったものなので何の画像処理もせずにボカシがかかっています(苦笑)
CrossSection2006インコーススタート
[![CrossSection2006インコーススタート](http://img.youtube.com/vi/eFxuIhNFOd8/0.jpg)](http://www.youtube.com/watch?v=eFxuIhNFOd8)

CrossSection2006アウトコーススタート
[![CrossSection2006アウトコーススタート](http://img.youtube.com/vi/_PfIIHaSyGQ/0.jpg)](http://www.youtube.com/watch?v=_PfIIHaSyGQ)

高度な難所を設定し始めの年にあたり、Zクランク難所一番槍を頂きました。インコースの動画の奥の方でゴニョゴニョやってるのがお分かり頂けるでしょうか。せっかく難所通過したのに、坂の入り口でコースアウトしてしまいました。アウトコースは点線ショートカットで本線に復帰できなかったという、お粗末。
無印のMINDSTORMSで作った走行体は倒立振子がなくギア比も高くてゴキブリみたいに走りました。

# その後
秋の組込み総合技術展(Embedded Technology 2006)で開かれるチャンピオンシップ大会に「実行委員会推薦」枠で出さしてもらったんです。Zクランクの成功によってでしょう。特別技術枠ですね。残念ながら本番うまく走りませんでした。展示ホールの真ん真ん中が会場だったので光が強烈だったのでしょう。競技にかけてモデルの更新はたぶんしなかったと思います。横浜に行くのは東京に行くよりテンション高かったんですけど、たぶんETや中華街のためでしょうね。記録も残ってない(笑)

懇親会で「首振らんでも走るよ」と聞いてなんと怪しげな！と衝撃を受けたのはいつの年だったのでしょう。これも今ではJKな話。制御やってるくせに制御理論がスッカラカンな連中ばかりだったのです。ぼくだけ？そんなぁorz