#このチュートリアルの内容
このチュートリアルでは、Pepperの動きについて、特に移動に関するアプリケーションの作成方法を通じて、Pepperの足関係の仕様や、制御方法について説明します。
- 各種駆動系、センサー仕様
- 単純な移動
- 任意の軌道による移動
各種駆動系、センサー仕様
Pepperは車輪による移動をおこないますが、周辺への衝突などを防ぐため、多くのセンサーを足回りに備えています。
- 車輪 (WheelFR [A], WheelFL [B], WheelB [C])
- バンパー (BumperFR [D], BumperFL [E], BumperB [F])
- ソナー (SonarF [G], SonarB [H])
- レーザーセンサー ([I], [J], [K])
- レーザーアクチュエータ (Shovel [L], Vertical right [M], Vertical left [N], Front [O], Left [P], Right [Q])
これらの駆動系やセンサー1つ1つについて開発者が気にする必要はほとんどありません。これらのセンサーの値はロボットにより処理され、セーフティや、より抽象的なイベントの処理に使用され、駆動系は与えられた軌道の情報にあわせて適切に駆動されます。
単純な移動
もっとも簡単に移動を実現する方法として、Move Toボックスを利用する方法があります。
MoveToボックスのパラメータに、以下のような X, Y, Theta の値を指定することで、Pepperを移動させることができます。
ここでは、サンプルとして、Pepperに 「まえ」「うしろ」「ひだり」「みぎ」と言うとその方向に移動し、「とけい」「はんとけい」と言うと回転する ということをやってみます。このアプリケーションは、 「おしまい」と言われたら「じゃあ また」と言って停止する ことにします。
なお、チュートリアル(2) でも見ましたが、Pepperは障害物があると移動をおこなわないというセーフティ機構を持っています。この確認のため、移動に成功したかどうかをSayでしゃべることにします。
つくってみる
-
利用するボックスの準備
- Audio > Voice > Set Language ... 言語設定を変更する
- Audio > Voice > Speech Reco. ... 音声認識をおこない、パラメータで与えられた単語候補のいずれかを判別する
- Flow Control > Switch Case ... 入力された値に対して、条件に応じて異なる出力をおこなう
- Motions > Move To ... 指定座標だけ移動/回転する (6回ドラッグ&ドロップ)
- Audio > Voice > Say ... 入力した文字列をしゃべる (3回ドラッグ&ドロップ)
まずは接続せずに並べておきます。
-
パラメータを設定する
Set LanguageボックスにはJapaneseを、Speech Reco.ボックスには、今回Pepperが認識すべきキーワードを まえ;うしろ;ひだり;みぎ;とけい;はんとけい;おしまい と、セミコロンで区切って指定します。
また、各Move Toボックスには、それぞれ以下のように、X=0.2 (前方へ20cm), X=-0.2 (後方へ20cm), Y=0.2 (左へ20cm), Y=-0.2 (右へ20cm), Theta=1.57 (反時計回りに90°), Theta=-1.57 (時計回りに90°)と設定します。
-
条件分岐を設定する
Switch Caseボックスに条件を設定します。1番上のボックスから順番に、"まえ" "うしろ" "ひだり" "みぎ" "とけい" "はんとけい" "おしまい" と、それぞれセミコロンで囲んで指定します。
-
Sayボックスの内容を変更する
Sayボックスをダブルクリックし、それぞれの内容を 成功 失敗 じゃあまた に変更します。
これで、聞いた内容に応じてそれぞれの座標だけ移動/回転するアプリケーションを作成することができました。
動作確認
バーチャルロボットまたはPepperに接続した上で、再生してみてください。
バーチャルロボットの場合は、音声による対話のときと同様、ダイアログビューを開き、「まえ」「うしろ」など入力して [1] みてください。ロボットの移動する様子 [2] と、「成功」と言う [3] ことが確認できるはずです。
Pepperの場合は、Pepperに「まえ」「うしろ」などと話しかけてください。移動して、「成功」と言えば成功です。「失敗」と言う場合は、Tipsを参考に、原因を調べて取り除いてから再チャレンジしてみてください。
#### [Tips]動かないときは
Pepperに接続している場合、「失敗」と言うだけで、うなだれたまま何もしない場合があります。Pepperが以下のような状態になっているときは、おやすみ中です。
このような場合は、[Wake Up]をクリックして起こしてあげてください。
また、以下のように充電コネクタが開いている状態ですと、同様にセーフティが働き動きません。
他に、Pepperが「進行方向に障害物がある」と判断する状況ですと動きません。Pepperを少し移動させてみるなどして動作がどう変化するか、確認してみてください。
任意の軌道による移動
Choregrapheが提供する、平面動作 の作成機能を利用することで、自由な軌道を直感的に定義することができます。
作成方法
以下の手順で利用することができます。
-
平面動作エディタが開きます
画面中央の円をドラッグ [A] することで、軌道を作成することができます。 [新規パス]をクリック [B] することで、新たな曲線(パス)を追加し、続けて軌道を描く[C] ことができます。
-
一連の軌道をどの程度の時間で実行するのか、フレーム数で指定することができます
このフレーム数を大きくすれば、移動はゆっくりになり、小さくすると速く移動することになります。 -
軌道はトラジェクトリという単位で編集します。**[新規&トラジェクトリ]をクリック [A]**すると、新たなパスを編集 [B] することができます。
なお、トラジェクトリの[1]をクリックすると、これまで編集していたパスを再度編集することができます
利用方法
また、Move Alongボックスをドラッグ&ドロップし、パラメータから平面動作を設定することも可能です。
これでPepperに接続、再生すると、作成した軌道にしたがってPepperが移動することが確認できます。
このようにして、各ホイールをどう駆動するかなどを気にすることなく、平面移動に関する動作を定義、実行することが可能です。