GEEKLAB.NAGANO 1周年イベント Pepperハッカソンに参加した

GEEKLAB.NAGANO 1周年イベント&&Pepperハッカソン 「Pepper長野初上陸!!」 – GEEKLAB.NAGANO | Doorkeeper」が2015-02-28にあり、参加しました。

GEEKLAB.NAGANO 1周年イベント&&Pepperハッカソン 「Pepper長野初上陸!!」 #glnagano – Togetterまとめ」で様子が少しわかります。

当日は、最初Aチームだったのですが、3名しかいなかったのでチーム数を減らすために移動となりました。それで、E2チームに入ることになり、GitHubアカウント tmtmさん、iwateさん、aonuma333さん、hiro345というメンバーになりました。成果物はGitHubの「glnagano-pepper-e2/pepper」にあります。以下に当日の様子を書いてみますが、若干、実際とニュアンスが変わるところがあるかもしれません…

普段、GitHubをよく使っているというわけでもないので、そのあたりの使い方で時間を使ってしまったところもありますが、こういうハッカソンではGitHubを使うのは普通のことだと思うので、今後のためにも今回使ったのは良かったと思います。ただ、結局のところ、pushする余裕がないところもあったりして、有効活用できたかというと微妙でした。

最初は、とにかくPepperへどんな感じでプログラム書き込みができるのかがわからなかったので、サンプルプログラムを流し込む作業を確認するために早目に使ってみました。環境が安定しなかったせいか、書き込みができるまで、結構な時間がかかってしまいましたが、大体の様子がわかりました。また、トラブルがあると、すぐに時間がなくなるということも認識したので、少しあせり気味に。

Pepperへのプログラム書き込みができた後に、アイデア出しをようやくするという段取りになりました。自分はPepper自体はそれほど難しい処理はできないはずなので、ネットワークでつなげて色々できるようにするプログラムを作ってみたいと考えていました。前日に軽く調べたところPythonでPepperにWebサーバを起動してAndroidなどから簡単に操作ができる記事があるのを知っていたので、そういう類のものをRaspberry Piと連携させるパターンで開発しようと思っていたのです。

開発環境は下記から入手。Choregraphe suiteというのを使いました。基本的な使い方はちらほら記事があるようで、下調べのときに、大体の様子は把握できました。

ここで、下調べの時にPythonの環境を使った記事がいくつかあるのに、Aldebaranのサイトからそれが入手できそうにないのがちょっと気になっていました… GitHubにはライブラリはあるのですけど…

ということで、当日のハッカソン開始の時点で、最新版の開発環境ではPythonをそのまま使うという方法がとれない感じだというのと、PepperとRaspberry Piを無線LANで直接通信させるのは今回は難しそうだということと、Raspberry Piが当日の無線LAN環境でLANへ接続するのに時間がかかりそうだということと、Pepperはインターネットとはつなげていいということと、そういったあたりの条件と環境を考慮する必要があって、結局Raspberry Piを使うのはあきらめることにしました…

それで、アイデア出しをしているところで、情報共有をするにはチャットが必要だという話が出ました。GitHub使うならGitterがいいだろうということになって、そちらも使い始めました。「https://gitter.im/tmtm/pepper」にやりとりが残っています。今知ったのですが、公開されているのですね…。URLの交換やプログラムの断片をやりとりするのに、チャットなどが必須なのですが、目の前にメンバがいるのにチャットとか、いかにもハッカソンという感じで、Gitterが使えるようになった時点で満足感がみんなに漂いました。この時点でアイデアがなくて、「環境よりも中身だろう」という声も出てきたり(笑)。

それで情報を探していたら、「株式会社アライト ーDeveloper Blogー | 株式会社アライト」に良い情報があり、まずはここからと自分はとりかかりつつ、iwateさんは「Pepperチュートリアル:画像認識 | Dances with Pepper」に興味を持って、「Pepperくんに自分の顔を認識(対応するIDは学習させるときに結びつけておく)させて、対応するFacebookアカウントから情報をとりだしてタグ解析させてPepperくんに人のような反応をさせてみたい」という話になりました。tmtmさんは、開発環境を使い始めて「これはすごいなぁ」とか「Pythonだからなぁ」とかいいながら、なにやら作り始めてました(Pepperくんを動かす方向ではなくて開発環境のハックをしていたのかもしれません)。aonuma333さんはPepperの動きをプログラミングできそう、ということでリアクションをいくつか作ってもらうという方向で話がまとまり、それぞれ自分ができることをはじめました。

方針が決まったところで、E2チームでは各メンバがそれぞれ別々にプログラミングを始めました。あとで結合ということで作業を開始したのですが、よく考えると「各自が作ったものをどうやってマージするのか」という点が解決できてませんでした。時間が足りなくなったところで結合できないとなるとつまらないので、アドバイザーに質問をしたところ、全員に解説をしてもらえて、独自のボックスを保存すればいけるということがわかりました。実際のところは、時間が足りなくて、うまく活用はできなかった気がしますが、このあたりは慣れでしょうね。GitHubでコンフリクトが発生すると嫌だったので、各自がChoregraphe suiteで自分のプロジェクトを作成して、それを共有することにしていたのですが、各自の開発が結構はまってGitHubへpushというのがなかなかできなかったのですね… 結局USBメモリでやりとりすることに。

実際に動作するかどうかは本体へプログラムを書き込まないと確認できないので、そのために何度かPepperくんの利用予約をしてたのですが、その予約時間までにプログラムを完成させてUSBメモリへ転送して、Pepperと接続している専用マシンへ持っていくという手順だったので、USBメモリが活躍したという話になります。

開発中はネットワークの問題が多く、GitHubへpushしたHTMLが最新版になかなかならないように見えたり、FacebookのJSONデータがなぜか取得できなかったりと、各自はまっているところで時間が足りなくなりました。タイムオーバーになるといけないので、自分は17:00ぐらいから簡単な資料を作り始めたところ、tmtmさんがプログラムのマージを始めてくれて、結構いい感じに作ってくれました。あの10分程度の短時間に3名分のコードを整理して、まとめてデモに使えるように仕上げてくれていたので、さすがです。ただ、この時点でPepperくん本体での動作確認はできず…。iwateさんはFacebookからJSONデータがとれない、と言ってたのでURLをもらって自分の環境で動かしてみたところ取得ができました。環境の問題だった可能性が高く、うまくコード共有なり協力ができていれば、もっと速く開発できたかもしれなかったのですが、時間がなくてFacebookは諦め…とはいえ、とりあえずtmtmさんのおかげで、発表とデモができるところまで持っていくことはできました。「短時間でやったわりにはいいところまで作れた」ということで、満足度は高かったです。

発表はG, E1, E2, K, L, A(チームなしになったので発表なし), B(GEEKLABだったらしい…)の順。各チームの発表は、それぞれ面白くて楽しかったです。デモもぶっつけ本番だったのですが、きちんと動作して良かったです。チーム4名全員の協力があって完成させることができたものだったので、個人的にはものすごく嬉しかったです。

投票結果は2位。1位は「びんずる」のBチーム。音楽にあわせて踊るPepperくんが可愛らしいのと、地元の人がみると踊りがそれらしく見えるようで、発表時は驚きの声があがっていました。大いに盛り上がってましたから、「やはりロボット本体がうまく動くと印象がいいな」と思いました

ちなみに、投票は自分のチームにはできないというルールでしたので、自分は技術的要素の数と、それぞれの実装完成度からLチームの「あっちむいて、ほい」に投票しました。結果を見ると、たしかに、「びんずる」の踊りは良かったですね。本物の踊りを知っていたら、Bチームへ投票していたかもしれません。E2チームはクラウドサービスとの連携を考えたのでPepperくんを動かすところはあまりできなかったのがデモとしては弱かったですかね。そういう意味では、プレゼンをもっと工夫して、ストーリーをうまく伝えることができた方が良かったかもしれません。バックエンドはやっぱり地味なので、「だめよ、だめだめ」のE1チームのようなプレゼン力が必要でした。

とはいえ、個人的にはPythonプログラミングでPepperを実際に動かすことができ、若い人のアイデア力、クリエイティブ力を感じることができたハッカソンで、とても刺激を受けて、楽しめました。良かったです。運営、アドバイザの皆様、ありがとうございました!

例のごとく、アフィリエイトをしておきます。Pepper関係の商品がすでに結構あるのは驚きです。

同じタグの記事: Geeklab
同じタグの記事: Pepper
同じタグの記事: Python
同じカテゴリの記事: General