Monthly Archives: 6月 2018

PepperとPython3の連携

PepperをPythonのみで開発ができるPythonSDKが提供されています。こちらを用いることで、Pepperとtensorflowを連携させて物体認識ができたりと、高度なアプリを開発することができます。しかし、PythonSDKはPython2系のみ対応しています。よって、現在Python3系ユーザにとっては不便な環境です。そこで、本記事ではPepperのAPIを用いる部分のみPython2系で書き、その他の処理をPython3で記述できる方法をご紹介します。

subprocess

Pythonのライブラリであるsubprocessを用いることで、コマンドラインに命令を下せます。また、 標準出力を取得することも可能です。

応用例

以下のプログラムはPepperにQRコードを読み取らせて、Doorkeeperから出席者の名前を取得するプログラムになります。Python3は Python2と違い、Unicodeを指定せずとも日本語を扱うことが可能です。

# coding=utf-8
import sys
import time
from naoqi import ALProxy
from naoqi import ALBroker
from naoqi import ALModule
from optparse import OptionParser
import subprocess
import multiprocessing
class QRCodeReaderModule(ALModule):
    def __init__(self, name):
        ALModule.__init__(self, name)
        self.tts = ALProxy('ALTextToSpeech')
        global memory
        memory = ALProxy('ALMemory')
        memory.subscribeToEvent('BarcodeReader/BarcodeDetected', 'QRCodeReader', 'onQRCodeDetected')
        time.sleep(5)
        print('QRCodeReaderModule is ready.')
    def crawl_doorkeeper(self, url):
        output = subprocess.check_output(['python3', 'crawl.py', url])
        return output
    def guide_guest(self, data):
        output = subprocess.check_output(['python3', 'guide.py', data])
        print(output.decode('utf-8'))
        self.tts.say(output)
        return output
    def onQRCodeDetected(self, *args):
        print('A QR code is detected.')
        memory.unsubscribeToEvent('BarcodeReader/BarcodeDetected', 'QRCodeReader')
        data = memory.getData('BarcodeReader/BarcodeDetected')
        url = data[0][0] # get the url from the data.
        data = self.crawl_doorkeeper(url)
        self.guide_guest(data)
        time.sleep(5)
        memory.subscribeToEvent('BarcodeReader/BarcodeDetected', 'QRCodeReader', 'onQRCodeDetected')
def main():
    parser = OptionParser()
    #pepperのIPアドレスとポート番号の設定.
    parser.add_option('--ip', help='IP address of pepper.', dest='ip')
    parser.add_option('--port', help='port.', dest='port', type='int')
    parser.set_defaults(port=9559)
    opts, args = parser.parse_args()
    pepper_ip = opts.ip
    pepper_port = opts.port
    #ALBrokerとは,
    myBroker = ALBroker('myBroker', '0.0.0.0', 0, pepper_ip, pepper_port)
    global QRCodeReader
    QRCodeReader = QRCodeReaderModule('QRCodeReader')
    #takeAndShowPics = TakeAndShowPics(ip, port)
    #takeAndShowPics.start()
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        print()
        print('Interrupted.')
        myBroker.shutdown()
        sys.exit()
    if __name__ == '__main__':
        main()

Python3をメインに扱うエンジニアのみなさん、PepperアプリをPython3で開発してみませんか。

Pepper Owners Challenge 2018(POC2018) に応募するための簡単3ステップ

6月より募集が始まったPepper Owners Challenge 2018は業務利用におけるPepperのアイデアコンテストです。

今回は全部で3工程で応募までできるのでその様子をスクリーンショットで説明していきます。

 

1.まず最初に以下の URL からページ中腹にあるエントリーの項目の「活用アイデアを今すぐエントリー」をクリックします。

https://www.softbank.jp/robot/special/owner-challenge-2018/

2.応募規約のリンクがあるので応募規約を読んだら「お申し込みはこちら」のボタンをクリックします。

3.エントリーフォーム移動しますが大きく分けて二つに分かれています。上段はユーザー情報についてです会社名や住所、連絡先などを記入します。

下段がポイントです。Pepper for Bizの導入状況は「 導入済み」か「検討中」の二択です。

その下に現在のペッパーの活用状況と課題という項目がありますここにペッパーを通じて解決したい課題を記入します。

活用アイデアはもう少し課題を解決するためにどうPepperが機能させたいかを明示して書いてください。

 

この3STEPだけで応募が完了です。

応募するだけでペッパーの限定グッズが応募特典としてもらえます。

この後は Pepper パートナープログラムの認定企業が具体的なシステムや解決策の案を出すことになります。

出てきた案から優先順位をつけて頂き、マッチングしたらさらに案を具体化に向けてすり合わせていくことになります。

 

いかがでしょうか。Pepper Owners Challengeと聞くと最初から考え込まなくては、作りこまなくてはと思う方もいるかもしれませんが今回はアイデアを競うコンテストです。

現場でどのような課題が発生しているのか、現場でどのような使い方を求められているのか、まずはその点のみを洗い出して専門家に相談する気持ちで参加していただけると幸いです。

Pepperのレーザーセンサーを見る

Pepperの足元にはたくさんのセンサーが搭載されています。

足元には6基のレーザー線ジェネレーターがあり、レーザー線の反射を検知して周囲の状況を認識しています。

レーザーセンサー以外にもジャイロセンサーや目の部分に3Dセンサーがあり、全身にセンサーがあることがわかります。

出典:http://www.pepper-atelier-akihabara.jp/wp/wp-content/uploads/2018/01/WSentry2.-2.5.5-1.pdf

Pepper取扱説明書を見てみると、センサーの検知範囲がわかります。

レーザーセンサーは足元3cmの高さで水平と垂直方向に照射されているようですね。

出典:https://www.softbank.jp/mobile/set/common/pdf/static/robot/support/document/pepper_manual.pdf

 

では実際にはどのようにレーザーを出しているのでしょうか。

アトリエにあるビデオカメラにNIGHTSHOTモードという赤外線撮影モードがあり、撮影できましたので見てみましょう。

足元のレーザー線ジェネレーターの位置は具体的には上の方に位置しているようです。

足元のセンサーに関しては交互に地面に垂直方向に照射しているのがわかります。

(画像では向かって左のレーザーを手で隠しているので絨毯の右側に照射されていません)

脚の下にあるセンサー(前方2つオムニホイールの間にあるセンサー)は、前方と左右に水平に照射しています。

右目に搭載されている3Dセンサーは放射状に照射しています。

画像ではわかりにくいですが壁に映っているところをみると点々に広がっていることがわかります。

左右の斜め45°に向けている赤外線センサーは直線に広がりを持って照射されています。

また赤外線センサーは下2つの部分から照射しています。

レーザーセンサーはレストモードになった瞬間にOFFになるようです。

また、こちらの資料のようにROSでPepperを動かすことで、センサーデータの取得ができます。

上図のように同スライドの42ページをご覧いただくと、センサーの取得情報をマッピングできることもわかります。
センサーにより詳しくなってSLAMなどに役立てられるかもしれません。

「Pepper開発事例本徹底解説イベント & 交流会 」レポート

2018年6月1日3331 Arts Chiyodaにて開発事例文徹底解説イベント&交流会が開かれました。

このイベントは先日発売された「最新事例に学ぶロボアプリ開発 豊かなUser Experienseを生むロボットユースケースデザインとフィールドテストによる現場改革編」の著者である内田伸穂氏による本の解説と、参加した皆さんで交流会をするというものです。

最初にソフトバンクロボティクスの村林さんよりご挨拶をいただきました。

次にソフトバンクロボティクスの松田さんより、最新のPepperの動向をお話しいただきました。

この内容は今週、名古屋大阪福岡で開催されるPepperパートナー&デベロッパーMeetupでも紹介してもらえるようです。

著者のソフトバンクロボティクスの内田さんです。内田さんはソフトバンクロボティクスで一貫して法人向け事業開発及びプロジェクト推進を担当しています。本著はその経験からロボット導入に必要なプロセスを明らかにしています。

ロボットユースケースデザインとは「自社ビジネスや顧客の課題解決に貢献するロボットの利用シーンを探す活動」と定義されています。

まず、ロボット導入活動の全体像についての話がありました。課題解決をするためには、ロボアプリやロボット単体だけでなく各要素をバランスよく取り込まなくてはいけないという話です。

「市場の存在」と 「ROIの成立」と「ホールプロダクトの提供」が満たされた時にロボット導入がよい結果をもたらします。

 

ロボット導入において実証実験もうまくいかないことがあります。それらのケースではPepperのスペックや以前の問題でつまずいていることがたびたびあります。

これらの説明を来場者の皆さんも同意されているようでした。

Pepperを導入してすぐ課題解決がするよりは、実際には徐々にピボットしたりPDCA を回して改善して課題解決に近づいてる事の方が多いようです。

本のChapter5の「今後のユースケースデザイン」の章にも書かれていますが、今後のユースケース発展の方向性の一つとして「次世代店舗」と言うコンセプトがあります。最初からロボットがいる想定の店舗ごと設計してしまうという発想です。

動線や環境面での課題を最初から解決するとともに従来店とは異なるお客様体験を作ることを目指します。

また他のロボットとの共同といった世界観が作れれば、今まで体験したことないお客様の体験になりそうです。

最後にチャレンジングなユースケースの方向性として挙げていたのは「笑ってるうちにいつのまにか購買行動をしてしまっているというものです」これを実現するメソッドはまだ確立されていませんが実現されればすごい世の中になりそうです 。

最後に質疑応答の時間です。

質問:お仕事かんたん生成2.0で作ったアプリはどれも簡単に作れる反面、メニューから選ぶ画一的で同じ体験になってしまいがちだと思います。凝ったものを作ろうとした場合開発が必要で、お仕事かんたん生成で作ったソリューションはユースケースデザインの成功例としてはあまり出てきにくいのではないでしょうか?」

 

回答:「紹介したベーカリーの事例はお仕事かんたん生成2.0を利用して作りました。ただ、このお仕事に関しては広告制作をお仕事としてしていた方が頑張って作ってくれました。話すシナリオだったり訴求させる方法は非常に工夫がしてあって面白いものです 。」

本の紹介の後は交流会でした。今回の交流会では個人でPepperを購入している方も、法人で持っている人も同じくロボットユースケースデザインと言うテーマに対して色々な意見を交換していました。

アトリエ秋葉原としても好評の声が多ければまた事例本の解説イベントや、ロボットユースケースデザインを語る会を開催したいです。

最後に内田さんを囲んで集合写真を撮りました。ご参加いただいた皆さんありがとうございました。