2017-09-15 6 views
1

私はChoregrapheでPepperアプリをプログラミングして会話をしています。 Pepper:一時的にイベントを無効にする

開始するには

  • が指定した情報
  • ための情報
  • さようなら(会話の終わりを)聞いて

    1. こんにちは(会話の開始):この会話は、いくつかの異なるソートされた状態を持っています会話、人々はロボットに近づく必要があり、ロボットは顔を検出しなければならない。

      私は会話の途中でロボットが別の顔を検出すると、最初は会話を開始するという問題があります。ロボットが会話中に一時的にイベントを無効にする必要があります。それを行う方法はありますか?

      これらはChoregrapheのイベント出力です:

      These are the events output of Choregraphe

  • 答えて

    0

    現在地シンプルなステートマシンをダウンロードすることができます。

    ALBasicAwarenessは、より広い範囲の行動を可能にするために、ロボットが従業員にどのように「集中しているか」を指定する3つの参加モードを提供します。

    「未接続」:(デフォルトモード)ロボットがユーザーと接しているときは、刺激によって気を散らすことができ、他の人とやり取りすることができます。

    「完全にエンゲージされた」:ロボットが人と婚約するとすぐに、それは刺激を聞き終えて、同じ人と接し続ける。従業員を失った場合、それは再び刺激を聞き、別の人と交際する可能性があります。

    「SemiEngaged」:ロボットが人と接しているときは、刺激を聞き続けますが、刺激を受けるとその方向に見えますが、常にその人に戻ります婚約している。それが人を失った場合、それは再び刺激を聞き、別の人と交際することができる。

    私はFullyEngagedを使用していると、ロボットはゾーン1ロボットを入力した最初の人に焦点を当てています。

    これは、次のように行われている:私はfromTabletResponse` `のようなイベントをサブスクライブが、` `PersonEnteredZone1`or PersonMovedAway`が本当のアクションを自動的に実行されているようなイベント、イベントをサブスクライブではないので、それができ

    basic_awareness = ALProxy("ALBasicAwareness", ip_robot, port_robot) 
    basic_awareness.setEngagementMode("FullyEngaged") 
    basic_awareness.startAwareness() 
    
    1

    あなたはその形式にそれらを無効にすることはできませんが、「サブスクライブイベントへの」ボックスを使用している場合、そのことができますスタート/ストップ入力がありますボックスを有効/無効にする、つまりイベントを購読/購読解除するために使用します。

    +0

    助けてもらえません – albert

    +0

    イベントはトリガーされますが、それらを聞く必要はありません。あなたはそれらをどこに購読していますか? – JLS

    +0

    ウェブコード(JS)の 'fromTabletResponse'に登録して、ボタンのクリックなどのhtml DOMイベントを使用してデータを送信しました。しかし、体操では、左上のイベント(質問の画像)を作成すると自動的にそのイベントを聞き取ります – albert

    2

    あなたの場所では、私は有限状態機械としてプログラムします:あなたは検出と、ある状態から別の状態への切り替え方法を簡単な方法で決定します。状態を変更すると、1つの状態の各処理が停止します。私はこのpart of documentationを訪問し、婚約モードを見終わりhttp://protolab.aldebaran.com/public/the_3_templates.zip

    +0

    これはループ内にあることができますが、イベントがトリガされると、イベントに関連付けられたコードが実行されます。 – albert

    関連する問題