Pepperチュートリアル ~QRコードの読み込み~
PepperのAPIを使ってQRコードの読み込みをおこなうことができます。ここでは、APIが提供するQRコードの読み込みを試してみることにします。
なお、 QRコードの読み込みはカメラの機能を使用するためバーチャルロボットでは動作確認手段はなく、Pepper実機が必要になります。 実機をお持ちでない方はアルデバラン・アトリエ秋葉原などで実験してみて頂ければと思います。
メモリイベント BarcodeReader/BarcodeDetected の利用
QRコードの読み込みをもっとも簡単におこなう方法として、 BarcodeReader/BarcodeDetected イベントを利用する方法があります。ChoregrapheでBarcodeReader/BarcodeDetectedを受け取れるようにしてみましょう。
まずは、フローダイアグラムにある監視するイベントを追加するボタンを押して、「メモリイベントの選択」ウィンドウを表示します。
「メモリイベントの選択」ウィンドウでBarcodeReader/BarcodeDetectedが見つからない場合は、左下の新しいキーの追加ボタンを押して、BarcodeReader/BarcodeDetectedと入力してOKを押すことで追加できます。 これでPepperがQRコードを認識した時に発行されるイベントを受け取れるようになりました。
サンプル実装
では、QRコードを読み込んで、読んだ内容をしゃべるアプリを実装してみたいと思います。
まずは、フローダイアグラムの右クリックから新規のPythonボックスを作成します。 PythonBoxの名前をBarCodeReader、onStartのTypeをダイナミック、onStoppedのTypeを文字列に編集してOKボタンを押します。
フローダイアグラム上にできたPythonボックスをダブルクリックで開いて__init__とonInput_onStartを以下のようにに編集します。 isLoadingのフラグを立てているのは、PepperにQRコードをかざした時に、連続でイベントが降ってくることがあるのでその対策です。 また、QRコードに日本語を埋め込む場合は、別途、エンコード処理が必要です。
def __init__(self):
self.isLoading = False
GeneratedClass.__init__(self)
def onInput_onStart(self, p): if self.isLoading == False : self.isLoading = True #[[“123”, [[75.0, 64.0], [111.0, 84.0], [131.0, 48.0], [95.0, 28.0]]]] self.onStopped(p[0][0])
作成したPythonボックスのonStoppedとSay TextボックスのonStartを繋いで完了です。 再生ボタンを押して、Pepperのおでこ辺りにQRコードをかざすとQRコードの内容をしゃべります。 動作確認用のQRコードには、これを使用しました。
Pepperアプリを積極開発中です!!
イサナドットネットではPepperアプリの開発を積極的に行っております。 2月に開催されるPepper App Challenge 2015にもアプリを応募する予定です。Pepperアプリの開発にご興味のある企業様はもちろんのこと、 Pepperを触ってみたいエンジニア様やインターン希望の学生さんはお気軽にご連絡ください!!ちなみに、公式のPepperチュートリアルとタイトルを被せて、アクセス数を稼ごうとしていることに対する苦情は受け付けておりません。。