伸びたり伸びなかったり

ねるねるの雑記

#procon30に参加した話

先日の13、14日に行われた第30回全国高等専門学校プログラミングコンテスト課題部門に参加してきました。

今回作成したものは「uniHome」という、ロボットを通して遠く離れた家族と繋がりを感じようというシステムで、結果としてはなんと特別賞を頂くことができ、NAPROCK第11回国際プログラミングコンテストに日本代表の一人として、ベトナムに派遣されることとなりました(やべ〜〜〜〜〜〜〜〜)

上の写真の真ん中でピースしてるのが自分 たのしそう 

この興奮を忘れないうちにいろいろ書き連ねていきます。

目次

企画書

りんごのベーコン結成

一月頃に五年生のるいコ先輩とがちゃみん先輩、二年生の微積と三年生の自分でチーム「りんごのベーコン」が結成されました。

今年は課題部門で特別賞以上を取ればベトナムに行けると言われ、「ほえ〜〜〜そうなんだ〜〜〜」とか思いながら、現実味を感じずにベトナムを目標に頑張ることとなりました。自分自信去年のパソコン甲子園で賞を取れなかった悔しさがあったため、賞を取りたいという気持ちはとても強かったですね。

イデア出しのターン

二月頃からアイデア出しが始まり、毎日三つはアイデアを出すことを目標に頑張っていました。初めはまあ出ないですね。毎日深夜までああでもないこうでもないと頑張ってアイデアをひねり出す日々が続き、4月の下旬頃に、遠く離れた家族と繋がれるシステムがあったら面白いんじゃないか?という話が上がり、そこからロボットを作ろうという話が上がり、そこから「近づくと遠くの家族のロボットが光る」「撫でると遠くの家族のロボットがダンスする」「挨拶すると遠くの家族のロボットがポーズする」と3つの機能が固まっていきました。

企画書のターン

イデアが固まった後は企画書作成が始まり、自分はシステム構成図を担当することとなりました。しかしこれがなかなか苦戦し、自分的にはこれでいいだろうという構成図を教授に投げるたびにことごとくダメ出しされ、心が折れそうになっていました。(実際当時書いたものを今見ると見辛いとかいうレベルではなかったので仕方ない)結局システム構成図のレイアウトはほとんどがちゃみん先輩に書き直してもらいました。とてもありがたかったと同時に申し訳なかったです。

この頃に一年生枠として、りん君がチームに加入してくれました。彼は後に、アプリ開発に大きく貢献することとなります。

五月の下旬には企画書を提出し、一ヶ月結果発表に震える日々を過ごしました。結果発表の時、予選通過テーマの中にuniHomeの文字を見た時は嬉しさが爆発してガッツポーズをしました。勢いが良すぎて棚に思い切り腕をぶつけたことを覚えています。

開発

企画書提出直後から夏休み前

企画書を提出した後は、すぐに開発が始まりました。自分自身は初めはサーバー担当だったのですが、当時は手が空いていたのでゆにぼ(uniHomeのロボットの名前)の顔の部分である、ドットマトリクスLEDの制御も担当することになりました。

今回の開発ではこれまでの反省を活かし、詰まったら早いうちに周りに聞くことを心がけました。ハード分野は主にまいたけ、サーバーサイドは主にゆりなからアドバイスを聞いたおかげで、夏休みに入る前にはドットマトリクスLEDの制御もサーバーの通信部分も完成させることができました。みんなに感謝ですね。ありがとうございます。

夏休み

夏休みに入ると、本格的な開発が始まりました。前半は割とのんびりしながらタスクをこなしていたのですが、夏休み後半に入ると諸事情でがちゃみん先輩が開発から抜けたり、教授から「デスクトップアプリ作ってみない?」と言われたりと色々なことがあり、もともとやっていたサーバーサイド、ゆにぼの通信部分の作成、センサー部分の統合の仕事もあったのでいつの間にかタスクがかなり増えていて割と忙しかったですね。

なんとかソース提出には間に合わせてほっとしていましたが、ゆにぼの実機を三台並べてテストをしなかったのが後に仇となるのでした。

プロコン直前

ここにきて様々な問題が起こります。なんとラズパイと買っていたBluetoothマイクスピーカーの相性が悪いことが本番二週間前に発覚、そして動かないことをチームに一週間報告しなかったという、ここに来て問題を抱えこむ悪い癖が出てきてしまいました。

一週間頑張って結局動かすことはできず、新しいマイクの発注が遅れてしまったせいで音声認識での通信のテストが本番前日になってしまいました。

その他にも、実際に並べて動かしてみるとうまくゆにぼ間のデータの受け渡しができていなかったり、長時間動かすと通信が突然落ちてしまうことが発覚したり、本番環境で今の音声認識のライブラリが使えないことが発覚して実装し直しになってしまったりと、早い段階でテストをしなかったツケがここに来て回ってくることとなりました。ヤバいですね。

一週間前から徹夜を開始するも結局すべてのバグを直すことはできず、不安定な動作のまま都城に飛ぶこととなってしまいました。

移動部門(本番前日)

移動中はだいたい寝るか開発をしていました。飛行機が飛ぶ直前にスマホアプリ側の通信が初めて成功し、ガッツポーズをしていました。バスの中ではデスクトップアプリのバグ修正をし、ホテルに着いてからはアプリ側の手伝いをしていました。

夜になったらチームのみんなで地鶏を食べに行きました。店に入った瞬間高そうな席に座らせられ、その高そうな雰囲気からぼったくられることを覚悟していましたが事なきを得ました。地鶏は普通に美味しかったです。

そしてついに一日目のデスマが始まりました。さっそく届けてもらったマイクを使い、音声認識に着手したあと、三台並べてのテストを始めますが、勝手にゆにぼが動き出す(一方のゆにぼを撫でるともう一方のゆにぼが動き出すはずが両方が動き出す)という謎のバグが発生します。魔剤を飲みながら深夜の3時頃まで格闘しますがバグは直りません。全ての手を尽くして絶望しているとるいこ先輩から「明日ダメでも明後日動けばいい」と言われ、その日は諦めて寝ることにしました。

プロコン一日目

いよいよ初めてのプロコンが始まりました。緊張しながら開会式を迎え、開会式が終わるとすぐに設営に取り掛かります。画鋲がなかったりなどのアクシデントもありましたが無事ポスターを貼ることができ、ゆにぼの起動設定を始めます。しかし、設定途中にお客さんが来てしまい、マイクスピーカーが使えないままデモンストレーションが始まることとなってしまいました。

それだけでなく、ゆにぼが勝手に動き出してしまうバグも直っていなかったので、色々な部分を誤魔化しながらデモを進めることになってしまいました。それでも来てくれた企業の方や高専生からの評判は良かったのでまだ心に余裕があったのが救いでした。名刺の交換も沢山行うことができたのが嬉しかったです。

午後になるとHack Uのインタビューに答えたりしました。自分はそのインタビューを見返していないですが多分すごい早口オタクをしていると思います。(というかデモのときずっと早口だろお前)るいこ先輩が帰ってきたあとはプレゼンの感触を聞き、メンタルを回復させて残りの時間のデモに臨みました。

そしてようやく一日目のデモが終わり、帰ったあとはすぐにデスマ二日目を始めました。センサー部分を微積に調整してもらい、通信部分の改善に取り掛かりました。片方をなでると両方動き出すバグは時間がなかったのでゆにぼを送信側と受信側に完全に分けることにし、アプリ側の手伝いを少ししつつ、三台並べて動くことを確認すると就寝しました。今思うとここで寝てしまったことは悪手だったんじゃないかと思います。

プロコン二日目

目が覚めると、りん君が完徹をしていました。なんとも言えない気持ちになってしました。今日こそゆにぼがうまく動くかという不安もあり、「なんで後輩は完徹しているのに俺は寝てしまったんだろう」、「少しでも手伝いをしつつもっとゆにぼの調整をしておくべきだったんじゃないか」と色々な思いが頭を過ぎりました。聞けば早朝の4時頃からmito先輩にも手伝ってもらったという話を聞き、mito先輩への感謝の気持ちと同時に、自分への罪の気持ちが溜まっていきました。

そして完成していないアプリの受信部分の手伝いを朝の出発ギリギリまで行い、会場へと向かいました。そして会場でもギリギリまで受信部分を完成させようとしましたが完成はせず、仕方なく完成していた送信部分と履歴表示部分だけ見せることとなりました。

しかしここでもアクシデントが発生します。アプリが起動しないのです。事前に動くコードを保存していればよかったのですが保存しておらず、デモの直前にしてスマホアプリを見せることができなくなってしまいました。自分の手伝いが完全に裏目に出てしまいました。ポスターの裏で必死にコードを元に戻そうとしているりん君を見て、罪悪感で胸がいっぱいになっていました。そして、アプリが回復したのは三回目のデモとなってしまいました。

スマホアプリがお披露目できないまま一回目のデモが始まり、るいこ先輩がなでる機能や音声認識を審査員に見せますがうまく動きません。自分もやってみせましたがうまく動くことはなく、結局誤魔化しながらるいこ先輩が話をすることとなりました。二回目、三回目のデモでは撫でる機能も音声認識もうまく動きましたがここでばーちゃるゆにぼの受信部分がうまく動かないという、新たなバグが発生していました。完全に自分の確認ミスです。

マニュアル審査ではうまく動いていたのですが、全ての機能を紹介する前に審査が終了してしまいました。このデモ審査とマニュアル審査で、履歴時間内に全ての機能を紹介しないといけないということを把握しておらず、自分の甘さを感じました。全てのデモ審査やマニュアル審査が終わった後も、企業の方に説明するときにゆにぼを撫でたり話しかけたりするたびにチーム全員が毎回動くかドキドキすることとなってしまいました。結局本番に安定するものを見せられなかったのが本当に悔しかったです。

それでも、企業や審査員の方からのウケは良かったので完全に絶望していたというわけではありませんでした。デモ審査やマニュアル審査のときも、るいこ先輩がうまく話をしていてくれたので、メンタルを比較的安定させることができていました。ちなみにこの日も名刺交換をしていたのですが、デモ開始一時間ほどで完全に切らしてしまい、せっかく会えた一部の企業の方や高専生とは名刺交換できませんでした。特に、久しぶりに会えた福野さんと名刺交換できなかったのは痛かったです。

全てのデモが終了したあとは片付けをし、閉会式と結果発表です。この時は「受賞していてくれ~~~」という気持ちと「やっぱ自分戦犯じゃないか?負けるんじゃないか?」という気持ちの二つに押し潰されていて、競技部門の結果発表の時点で既に放心状態になっていました。そして課題部門の結果発表、三番目の特別賞にuniHomeは選ばれました。自分達の番号である「12番」と声が聞こえた瞬間に身が震えました。

とりあえずほっとした気持ちで壇上に向かいますがまだ安心できません。当初の目的であったベトナム派遣がまだ決まっていないからです。ドキドキしながら壇上に立っていると、「壇上にいるチーム全てがベトナムに派遣されます」と聴こえ、笑顔のるいこ先輩を見た瞬間にようやく肩の荷が下り、嬉しさで胸がいっぱいになりました。本当によかったです。

その後は写真を撮ったり、企業賞スゲーとなったり、GooTravelの企業賞に喜んだり、閉会式後に集合写真を撮ったりと、色々なことをしていると今年の高専プロコンは終わっていました。

プロコンが終わったあとはカラオケ部門に参加したり、夜にスマブラをしたりしました。カラオケ部門では自分が歌っている途中にJava先輩がカラオケの画面に何故かうみまもるのチームの写真や、キッズラインの自動生成字幕の画像を映したりしていたので、笑ってまともに歌えていなかったです。スマブラは全勝だったので嬉しかったです。(特に3対1で勝てたのが嬉しかった!)

そして24時頃からVシネマ 仮面ライダーグリス(https://kamenrider-grease.jp/)の上映会が始まりましたが、自分は開始10分で寝落ちしてしまいました。悲しかったです。(後日見たけどめっちゃ面白かったです みんな見よう)

帰宅部門(本番後日)

この日は霧島神宮に行ったり、霧島神話の里公園で遊んだりしました。公園のほうでずっとえびなとJava先輩がはしゃいでいたのが印象的です。

そして昼食は待ちに待った黒豚しゃぶしゃぶ定食でした。今まで食べた肉の中でもトップクラスに美味しくて感動しました。

その後はバスと飛行機で移動を続け、21時頃に家に着き、荒れ果てた部屋の中色々考え事をしながら飯を食べて就寝しました。

#procon30、完!!!

感想

・開発に大きく関われた

この事は、本当に力をたくさん付けるいい機会になったと思いました。去年よりも多くの部分で開発に貢献できたのが素直に嬉しかったです。それでも、本番で安定して動かなかったという点は今でも後悔しているので、来年は安定して動くシステムを作ることを目指していこうと思います。

・誰かを頼ることができた

自分には昔から問題を抱え込む癖がついていたので、今年はこの点は成長できていると思いました。しかし、マイクスピーカーの問題を抱えてしまったりもあったので、問題を抱えたら、早い段階で人に相談することを意識する必要があると思いました。

・賞が取れたこと

今回の特別賞は、自分にとって初めての賞だったのでとても思い出深い賞となりました。しかし、「もしも自分のミスで賞が取れなかったら」と思うと今でもゾッとします。そのような思いを次はしないようにしたいです。

・自分の苦手を自覚できたこと

去年のパソコン甲子園と今年のプロコンで、自分がいかに本番のデモが苦手か、ということを理解しました。緊張すると早口になることや安定したプログラムについては課題なので、来年はそこを意識していきたいです。

・チームワークがしっかりしていた

今回の開発の役割分担は、結構みんな自分の得意分野を活かすことができていてよかったと思います。ハードは微積、アプリはりん君、デザイン、プレゼンはるいコ先輩と、誰が欠けても危なかったと思います。

微積はこのプロコンを通してハード面での成長が目覚ましく、みててとてもワクワクしていました。りん君はまだ一年生なのに、ゴリゴリkotlin書いていて凄いと思いました。尊敬の念すら抱きます。るいコ先輩はデザインや本番でのプレゼン、アプリ開発、メンバーのタスク管理など、ここに書ききれないほどのタスクをこなしていて本当に頭が上がらないです。デスマのときも他のチームと比べると(特にさやえんどうや競技)平和な開発ができて良かったです。

・いろいろな人に助けられた

チームメンバーはもちろんなんですが、動画制作ではいさたく、開発面ではまいたけやゆりなやmito先輩、そして様々なまさかりやアドバイスをM教授、他にも沢山の人に助けられました。支えてくれた人達には本当に感謝の気持ちでいっぱいです。本当にありがとうございました。

これから

今年のプロコンを終えて、自分には三つの目標ができました。一つ目は来年のプロコンでシステムをしっかり完成させること、二つ目は特別賞よりも更に上の賞を目指すこと、そして三つ目は企業賞も取ることです。開発へのモチベが上がっている今、しっかりと力をつけて、来年のプロコンに臨みたいと思います。

そして、りんごのベーコンとuniHomeはこれからの国際プロコンやDCON、ビジコンなど様々な大会でも活躍する予定なので、応援してくれると嬉しいです。

ここまで長文を読んでくださりありがとうございました!