LoginSignup
48
52

More than 5 years have passed since last update.

Pepperチュートリアル (8):移動

Last updated at Posted at 2014-09-30

このチュートリアルの内容

このチュートリアルでは、Pepperの動きについて、特に移動に関するアプリケーションの作成方法を通じて、Pepperの足関係の仕様や、制御方法について説明します。

  1. 各種駆動系、センサー仕様
  2. 単純な移動
  3. 任意の軌道による移動

各種駆動系、センサー仕様

Pepperは車輪による移動をおこないますが、周辺への衝突などを防ぐため、多くのセンサーを足回りに備えています。

wheels-sensors.png

  • 車輪 (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を移動させることができます。

move-to.png

ここでは、サンプルとして、Pepperに 「まえ」「うしろ」「ひだり」「みぎ」と言うとその方向に移動し、「とけい」「はんとけい」と言うと回転する ということをやってみます。このアプリケーションは、 「おしまい」と言われたら「じゃあ また」と言って停止する ことにします。

なお、チュートリアル(2) でも見ましたが、Pepperは障害物があると移動をおこなわないというセーフティ機構を持っています。この確認のため、移動に成功したかどうかをSayでしゃべることにします。

つくってみる

  1. 利用するボックスの準備

    • Audio > Voice > Set Language ... 言語設定を変更する
    • Audio > Voice > Speech Reco. ... 音声認識をおこない、パラメータで与えられた単語候補のいずれかを判別する
    • Flow Control > Switch Case ... 入力された値に対して、条件に応じて異なる出力をおこなう
    • Motions > Move To ... 指定座標だけ移動/回転する (6回ドラッグ&ドロップ)
    • Audio > Voice > Say ... 入力した文字列をしゃべる (3回ドラッグ&ドロップ) move-to-flow.png

    まずは接続せずに並べておきます。

  2. パラメータを設定する
    Set LanguageボックスにはJapaneseを、Speech Reco.ボックスには、今回Pepperが認識すべきキーワードを まえ;うしろ;ひだり;みぎ;とけい;はんとけい;おしまい と、セミコロンで区切って指定します。
    move-to-params-1.png
    また、各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°)と設定します。
    move-to-params-2.png

  3. 条件分岐を設定する
    Switch Caseボックスに条件を設定します。1番上のボックスから順番に、"まえ" "うしろ" "ひだり" "みぎ" "とけい" "はんとけい" "おしまい" と、それぞれセミコロンで囲んで指定します。
    move-to-switch-case.png

  4. ボックスをつなげる(成功パターン)
    まずは、Move Toボックスが失敗する場合を考えず、ボックス同士をつなげます。
    move-to-connect-1.png

  5. ボックスをつなげる(失敗パターン)
    次に、Move Toボックスが失敗した場合の接続をおこないます。
    move-to-connect-2.png

  6. Sayボックスの内容を変更する
    Sayボックスをダブルクリックし、それぞれの内容を 成功 失敗 じゃあまた に変更します。
    move-to-say.png

これで、聞いた内容に応じてそれぞれの座標だけ移動/回転するアプリケーションを作成することができました。

動作確認

バーチャルロボットまたはPepperに接続した上で、再生してみてください。
バーチャルロボットの場合は、音声による対話のときと同様、ダイアログビューを開き、「まえ」「うしろ」など入力して [1] みてください。ロボットの移動する様子 [2] と、「成功」と言う [3] ことが確認できるはずです。

move-to-virtualrobot.png

Pepperの場合は、Pepperに「まえ」「うしろ」などと話しかけてください。移動して、「成功」と言えば成功です。「失敗」と言う場合は、Tipsを参考に、原因を調べて取り除いてから再チャレンジしてみてください。

info.png [Tips]動かないときは

Pepperに接続している場合、「失敗」と言うだけで、うなだれたまま何もしない場合があります。Pepperが以下のような状態になっているときは、おやすみ中です。
rest.jpg
このような場合は、[Wake Up]をクリックして起こしてあげてください。
wake-up.png
また、以下のように充電コネクタが開いている状態ですと、同様にセーフティが働き動きません。
20140922_154828.jpg
他に、Pepperが「進行方向に障害物がある」と判断する状況ですと動きません。Pepperを少し移動させてみるなどして動作がどう変化するか、確認してみてください。

任意の軌道による移動

Choregrapheが提供する、平面動作 の作成機能を利用することで、自由な軌道を直感的に定義することができます。

作成方法

以下の手順で利用することができます。

  1. プロジェクトの内容パネルの [+]ボタン をクリックし、[平面動作を作成中...] をクリックします
    new-planar-move.png

  2. 平面動作の名前を問い合わせるダイアログが開くので、適当な名前を設定し、[追加]ボタンをクリックします
    new-planar-move-props.png

  3. 平面動作エディタが開きます
    planar-move-dialog.png
    画面中央の円をドラッグ [A] することで、軌道を作成することができます。 [新規パス]をクリック [B] することで、新たな曲線(パス)を追加し、続けて軌道を描く[C] ことができます。
    new-planar-move-1.png
    new-planar-move-2.png

  4. 一連の軌道をどの程度の時間で実行するのか、フレーム数で指定することができます
    edit-frames.png
    このフレーム数を大きくすれば、移動はゆっくりになり、小さくすると速く移動することになります。

  5. 必要に応じて、移動後の向きを指定します
    direction-planar-move.png

  6. 軌道はトラジェクトリという単位で編集します。[新規&トラジェクトリ]をクリック [A]すると、新たなパスを編集 [B] することができます。
    new-trajectory.png

    なお、トラジェクトリの[1]をクリックすると、これまで編集していたパスを再度編集することができます

利用方法

  1. 編集した平面動作は、フローダイアグラムパネルにドラッグ&ドロップ することで利用することができます
    dnd-planar-move.png

  2. ボックスをつなぎます
    connect-planar-move.png

また、Move Alongボックスをドラッグ&ドロップし、パラメータから平面動作を設定することも可能です。

move-along-param.png

これでPepperに接続、再生すると、作成した軌道にしたがってPepperが移動することが確認できます。

planar-move-virtual-robot.png

このようにして、各ホイールをどう駆動するかなどを気にすることなく、平面移動に関する動作を定義、実行することが可能です。

48
52
9

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
48
52