こんにちは。パーソナルサービスカンパニー エンジニアの須山温人(@atsutoms)です。
先月9/20(土)にPepper Tech Festival 2014が開催され、ヤフーも企業ブースを出展させていただきました。
この記事では、出展したPepperロボアプリと、それにまつわるPepperプログラミングについて簡単に紹介いたします。
このイベントは、Pepper関連で初めての技術者向けのイベントで、ロボアプリの開発方法などが公開され、Pepperの先行販売予約もできることから、参加希望者多数のため、抽選形式での参加となりました。
http://www.softbank.jp/robot/special/techfes/
出展したロボアプリの紹介
「ヤフーが考えるPepperとの未来」というコンセプトで、4つのロボアプリのデモをブース展示しました。
・ショッピング
欲しい商品を見せるとYahoo!ショッピングで注文してくれるアプリです。
商品のバーコードを読み取り、Yahoo!ショッピングAPIでJANコード検索しています。
開発者:須山温人
・クラウドストレージ
周りにいる人を認識し、写真を撮ってYahoo!ボックスのストレージにアップロードしてくれるアプリです。
イベント当日は公開フォルダーに写真がアップされ、Pepperくんに撮ってもらった写真を持って帰ることができるようにしました。
開発者:岩瀬張太士
・検索
Yahoo!検索で最近よく探されている注目ワードを紹介してくれるアプリです。
開発者:菅原健夫
・知恵袋
PepperがYahoo!知恵袋の情報を使って、相談にのってくれるアプリです。
声のトーンを変えることで、臨場感たっぷりに質問者と回答者の2人を演じ分けています。
開発者:伊藤陽
Pepperロボアプリの開発基礎
Pepperで動くロボアプリは、GUIベースのChoregraphe(コレグラフ)というIDEで開発します。これはAldebaran社が以前から提供している、NAOのプログラミングに使うものと同じです。
簡単に基本操作をご紹介します。
シンプルな挙動は、ボックスと呼ばれるモジュールを並べて、線でつなぐ操作のみで作ることができます。
自分でカスタマイズしたい場合は、ボックスを開き、中にPythonでコーディングします。
ヤフーのAPIに簡単に接続できるボックスライブラリ
上記で説明した、個別のモジュールをボックス、それらを集めてパッケージ化したものをボックスライブラリといいます。
今回のデモアプリを開発するにあたって、必要な機能を持つボックスをいくつか作りました。
例えば、ショッピングのデモ用のYahoo!ショッピング商品検索ボックスは、図のように入力がキーワードまたはJANコード、出力が商品名という仕様になっています。
APIリクエスト部分は、一般的なPythonの通信モジュールであるurllib2を使っています。 br>
response = urllib2.urlopen(req)
ボックス内のコードでは、入力をこのように受け取ります。 br>
def onInput_onStart(self, p);
janCode = str(p);
ボックスの外で使いたい値は、ボックスの編集で設定した出力先(ここではconnected)にアウトプットします。 br>
self.connected(productName)
このように機能ごとに使いやすくボックス化、そしてボックスライブラリ化することで、再利用しやすくなり、開発スピードアップにつながります。
ボックスライブラリは、cbl形式のファイルで配布し、他の人がChoregrapheにインポートして使うことが可能です。
将来的にこういったヤフー用のボックスライブラリを公開して、開発者のみなさんに使っていただきたいと考えています。
最後に
今回のイベントでヤフーは、既存のウェブサービスの強みを活かした領域にフォーカスし、ロボットが家庭にいるのが当たり前の未来をイメージして、デモアプリを開発しました。
ロボットとウェブが融合された世界はどのようなものになるでしょうか。
ロボットがウェブブラウジングをするようになり、Yahoo! JAPANの利用者はロボットの方が多くなるという時代がくるかもしれません。
ヤフーはオープンなウェブの世界をベースに、ロボットアプリ開発者をサポートするとともに、ロボットとウェブ領域のフロンティアを開拓していきたいと考えています。
Yahoo! JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。