月別アーカイブ: 2014年12月

Pepper Java QiMessaging SDK


Pepper の開発環境として、Choregraphe の他に、C++ や Python や Java が用意されています。
Java は Java QiMessaging SDK となっています。
Java QiMessaging という名称から察するに、全ての操作が出来るわけではなく、 Pepper のメッセージ通信である QiMessage を使った間接的な操作のようです。
ドキュメント も、「Java API は開発中だよ」という但し書きがある1ページだけです。

SDKのインストール
(1) アルデバラン社のサイト にログインして、Java QiMessaging SDK をダウンロードします。
解凍して、任意の場所に置きます。

アプリの作成
最初のアプリとして、Pepperに「Hello」としゃべらせます。
これは Java NAOqi SDK の例題として掲載されているものです。
下記の Java ソースコードを作成します。

アプリの実行
MAC でコンパイルします

コンパイルした class を実行します

下記のようなメッセージが出ますが、動作には支障ないようです。
libgnustl-shared は android のライブラリのようです。

Pepper に転送されて、Pepper が動作します。

参考
Java NAOqi SDK

201401212sdk

Pepper Python SDK


201401212sdk

Pepper の開発環境として、Choregraphe の他に、C++ や Python や Java が用意されています。
Python SDK を使ってアプリを作成してみました。

SDKのインストール
(1) Python のインストール先と、バージョンが 2.7 であることを確認します。

(2) アルデバラン社のサイト にログインして、Python SDK をダウンロードします。
解凍して、任意の場所に置きます。

(3) .bash_profile に下記を追加して、パスが通るようにします。

アプリ こんにちは
最初のアプリとして、Pepperに「こんにちは」としゃべらせます。
これは Python SDK の最初の例題として掲載されているものです。
下記のPythonスクリプトを作成します。
MAC で実行すると、Pepper に転送されて、実施されます。
Python の場合は、IPアドレスの指定が必要です。
IPアドレスの確認方法は、Pepper に ssh で接続する をご覧ください。

ALProxy は Pepper と通信するためのプロキシーです。
ALTextToSpeech は、テキスト文を音声に変換する NAOqi API です。say メソッドで、話す言葉を設定します。

アプリ PoseZero
次のアプリとして、Pepper に PoseZero (両手を前に突き出す) の姿勢をとらせます。
これは Python examples に掲載されているものです。

ALMotion は、ロボットの動きをつける NAOqi API です。
ALRobotPosture は、ロボットが事前に定義された姿勢にとる NAOqi API です。
StandZero は Predefined postures として定義されてます。

参考
Python SDKによるsay hello – Atelier Akihabara
Python SDK
Python SDK Install Guide
ALTextToSpeech – NAOqi
ALMotion – NAOqi
ALRobotPosture – NAOqi

20141215_workshop

Team Lab Pepper ワークショップ


20141215_workshop

2014年12月16日に、アルデバラン・アトリエ秋葉原 で行われた Team Lab Pepper ワークショップ に参加した。
講師はチームラボの田口優希さんで、テーマはモーション制作方法です。
なお、資料は Github で公開されています

待機中の Pepper たち
20141215_peppers 20141215_sdK_network

最初に20分ほど、SDKを使ったモーションの作り方の説明がありました。
参考 Pepper チュートリアル:ポーズを作る

次に30分ほど、9月の Pepper Tech Festival で行われた The light orchestra の裏話が紹介されました。
動きがロボットっぽいので、どうやって人間らしい動きにしたのか。
モーション制作に時間がかかるので、どうやって短期間でクオリティを高めたのか。
一番大事なのは「Pepper への愛情」とのこと。

1時間半ほど、上記のイベントで作った動きを元に、ハンズオンがありました。
直線的でカクカクしたいかにもロボットという動作から、曲線的でなめらかで人間ぽい動作を、作りだす方法を教わりました。
具体的には、Timeline Editor を使って、ポーズとポーズの間に変化をつけていきます。
ポーズは、全ての関節に対して、同じタイミングで位置が固定されます。
Timeline Editor では、ひとつひとつの関節に対して、任意のタイミングで位置を設定することができます。
20141215_sdK_sdk_flow 20141215_sdK_timeline
20141215_sdK_worksheet 20141215_sdK_curve

下記の写真は、作成したモーションを後日撮ったもの。
20141216_pepper_pose_1 20141216_pepper_pose_2 20141216_pepper_pose_3 20141216_pepper_pose_4

Pepper 購入 本申し込み手続き


Pepper の購入の本申し込みをしました。

全体の流れは
(1) 予約
(2) 本人確認手続き
(3) 本申し込み手続き <= いまここ
(4) 請求
(5) 支払い

3年間で約56万円です。
本体の他に、36ヶ月分のサービスパックが必要です。
本体もサービスパックも、一括払いと分割払いが可能です。
本体は、分割払いだと、年4%の利息がかかります。
サービスパックは、一括払いと分割払いの価格は一緒です。
そこで、本体は一括払い、サービスパックは分割払いにしました。

20141215pepper_2

参考
Pepperデベロッパー先行モデル 本申し込みの流れ
Pepper デベロッパー先行モデル 本申し込み

Pepper に ssh で接続する


Pepper の OS は Linux です。
噂では Gentoo ベースらしい。
当然 ssh で接続することが出来ます。

1. IPアドレスの確認
IPアドレスの確認方法は、3つほどあります。
(1) マイロボット画面
上段のネットワークアイコンをクリックして、詳細画面を開きます。
20141211_ip_tablet

(2) Pepper に話させる
胸のボタンを押すと、IPアドレスをしゃべります。

(3) Choregaraphe (SDK) から
20141211_sdk_connect

2. ssh ログイン

パスワードは初期設定時に設定したもの
ユーザ名は nao で固定です。
初期設定時に設定したロボット名ではありません。

3. root

root になることもできます。

4. 基本諸元
20141211_ssh_terminal

CPU は、Intel Atom Z530 ですね。
メモリは1GB、ディスクは SDカード 16GB みたいです。

5. 動作プロセス

naoqi (Pepper OS ) が動いているのが分かります。

ssh の他に、http、ftp 開いています。
9559 は SDK 用のポートです。
他の3つは、何だろう。

6. ホームディレクトリ

.local 以下が Pepper 用の設定みたいです。

参考
ペッパーとmacをつないでみる方法

Pepper MeetUp


20141210_meetup

2014年12月10日に、アーツ千代田3331 で行われた Pepper MeetUp に参加しました。
今回は、先行レンタルの100名が対象で、会場には50名ほど集まりました。
遠くは島根県から来た人もいました。

お出迎えの Pepper くんと、
WiFiの調子が悪く、頭の裏蓋を開いて、有線LANで接続されている Pepper くん。
20141210_pepper 20141210_pepper_ether

MeetUp は、Pepperが届いてからの体験談と、開発しているアプリのプレゼントと、団体戦のクイズ大会と、参加者同士の懇親という内容でした。
体験談は、Pepper を会社に連れていった 太田智美 さんの話が、ぶっ飛んでました。w

発表を聞いたり、参加者と雑談した感触では、会社で Pepper を購入して、仕事として Pepper をやっている人が、全体の半分くらいという感じでした。
Pepper が来てから1ヶ月くらいなので、多くの人はデフォルトの設定でどんな使い方が出来るのか試している感じです。
まだ、本格的に使っている人や、情報公開をしている人は少ないようですが。
なかには、自社のサービスと連携するアプリを作るほど、使い込んでいる人もいました。
20141210_silde_ros 20141210_slide_embed

クイズ大会は、割と難問が多かったです。アルデバランが星の名前であることを知りました。
20141210_quiz_open 20141210_quiz_8

参考
FaceBook PepperRobot
アルデバラン Aldebaran – wikipedia

Pepper チュートリアル:移動


アトリエ秋葉原から公開されている チュートリアル を試してみます。
今回は 移動 です。

1. 各種駆動系とセンサー
Pepper は下記の駆動系とセンサーを持っています。
車輪 : WheelFR, WheelFL, WheelB
バンパー : BumperFR, BumperFL, BumperB
ソナー : SonarF, SonarB
レーザーセンサー : 3カ所
レーザーアクチュエータ : Shovel, Vertical right, Vertical left, Front, Left, Right

2. 単純な移動
「まえ」「うしろ」「ひだり」「みぎ」と言うとその方向に移動し、「とけい」「はんとけい」と言うと回転するようにします。
移動には、Move To ボックスを使用します。
音声認識がうまくいかないことがありますが、個々の移動は動作しました。
20141209_tutorial_8_sdK_move_to

3. 任意の軌道による移動
任意の軌道による移動には、Move Along ボックスを使用します。
プロジェクトの内容パネルから、平面動作エディタを開きます。
平面動作エディタにて、円をドラッグすることで、任意の軌道を描くことができます。
前とか横などの単純な移動は、うまくいったのですが。
曲線的に移動するのは、うまくいきませんでした。
20141209_tutorial_8_sdK_move_along 20141209_tutorial_8_sdK_plane

20141208_tutorial_7_pepper_face_tracker

Pepperチュートリアル:画像認識


アトリエ秋葉原から公開されている チュートリアル を試してみます。
今回は 画像認識 です。

1. カメラの仕様
2Dカメラ (額, 口) 出力1920×1080, 15fps
3Dカメラ (右目:赤外線照射, 左目:赤外線検出) ASUS Xtion 3Dセンサー, 出力320×240, 20fps
20141208_tutorial_7_pepper_camera

2. ビデオモニターパネルによる確認
Pepper の画像にかかわる操作には、ビデオモニターパネルを利用します。
20141208_tutorial_7_sdk_video

3. Monitorによる確認
Monitor アプリケーションを使うこともできます。
3dsensormonitor を使って、3Dカメラの内容を確認できます。
20141208_tutorial_7_monitor_3d

4. 顔認識
Pepper が認識している顔の数をしゃべらせてみます。
顔の検出には、Face Detection ボックスを使います。
検出された顔の数が 1 ならば、「私の前に人が1人います」としゃべせます。
Say Text ボックスの Python スクリプトを変更します。

20141208_tutorial_7_sdk_face_detection_script

5. 顔の追跡
顔のある方向に向かって進むようにします。
顔の追跡は、Face Tracker ボックスを使います。
20141208_tutorial_7_sdk_face_tracker 20141208_tutorial_7_pepper_face_tracker

6. 顔の学習
Pepper が見た顔を「たろう」という名称で記憶させます。
顔の学習には、Learn Face ボックスを使います。
正常に顔が学習できた場合はPepperの目が緑色に、失敗した場合は赤色になります。
20141208_tutorial_7_sdk_learn_face 20141208_tutorial_7_pepper_learn_face

7. 顔の識別
Pepper が認識している顔が誰の顔なのかを判別し、その名前をしゃべらせます。
顔の識別には、Face Reco ボックスを使います。
20141208_tutorial_7_sdk_face_reco

8. 画像の学習
画像の学習には、ビデオモニターを使います。
(1) 画像を写します。
(2) 対象物の輪郭を指定すると、赤くなります。
20141208_tutorial_7_sdk_image_1 20141208_tutorial_7_sdk_image

9. 画像の識別
今見ている画像が何なのかをしゃべらせます。
画像の識別には、視覚認識データベースを照合する Vision Reco を使います。
画像を見ている間、ずっと同じ言葉をしゃべります。
それを抑止するために、Vision Reco ボックスの onPictureLabel 出力と onStop 入力を接続します。
しゃべり終わったあと、Vision Reco ボックスの動作を再開させるために、Say Text ボックスの onStopped 出力 を Vision Reco ボックスの onStart 入力に接続します。
20141208_tutorial_7_sdk_vision_reco

20141206_tutorial_6_pepper_tactile

Pepperチュートリアル:タッチセンサーと人の認識


アトリエ秋葉原から公開されている チュートリアル を試してみます。
今回は タッチセンサーと人の認識 です。

1. タッチ検出
Pepperは、頭部の前部、中央、後部と、左右の手の甲に、タッチセンサーを持っています。
頭部の前、中央、後部がさわられたら、「あたままえ」「あたまなか」「あたまうしろ」としゃべり、左手の甲がさわられたら「ひだりて」としゃべり、右手の甲がさわられたら「みぎて」としゃべらせてみます。
タッチを検出するには、Tactile Head ボックス、Tactile L.Hand ボックス、Tactile R.Hand ボックスを使用します。
なお、マイロボット画面では動作せず、起動後はOKでした。
20141206_tutorial_6_sdK_tactile 20141206_tutorial_6_pepper_tactile

2. 人の接近
Pepperは、3Dセンサーをはじめさまざまなセンサーを活用して、人の動きを検出することができます。
人が近づいてきたら「やあ」としゃべり、離れていったら「じゃあ また」としゃべらせます。
人が近づいたことと離れてことを検出するために、PersonApproached イベントと、PersonMovedAway イベントを使います。

イベントを追加するのは、フローダイアグラム左端の [+]ボタン をクリックします
メモリイベントの選択ダイアログが開きます。
PersonApproached イベントと、PersonMovedAway イベントを、選択します。
フローダイアグラム左端に、新たな入力があらわれます。
マウスオーバーで、イベントを確認することができます。
なお、マイロボット画面では動作せず、起動後はOKでした。
20141206_tutorial_6_sdK_person 20141206_tutorial_6_sdK_person_event

3. エンゲージメントゾーンへの侵入
Pepperは、3Dセンサーをはじめさまざまなセンサーを活用して、どのあたりに人がいるのかを検出することができます。
距離によって、3つのゾーンに分かれます。
ゾーン1 1.5m 以内
ゾーン2 1.5mから2.5m
ゾーン3 2.5m以上

ゾーン1に人が入ってきたら「ゾーン1」、ゾーン2ならば「ゾーン2」、ゾーン3ならば「ゾーン3」としゃべらせます。
ゾーンを検出するために、PersonEnteredZone1 イベント、PersonEnteredZone2 イベント、PersonEnteredZone3 イベントを使います。
なお、マイロボット画面では動作せず、起動後はOKでした。
20141206_tutorial_6_sdK_zone 20141206_tutorial_6_sdK_zone_event