2017-09-15 11 views
1

Choregraphe가있는 Pepper 앱을 프로그래밍하여 대화하고 있습니다. Pepper : 일시적으로 이벤트 사용 안 함

시작하려면

  • 은 지정 정보
  • 에 대한 정보
  • 안녕 (대화의 끝을) 물어

    1. 안녕하세요 (대화의 시작) :이 대화는 몇 가지 다른 정렬 상태를 가질 대화, 사람들은 로봇에 가까이 가야하며 로봇은 얼굴을 탐지해야합니다.

      문제는 내가 대화 중간에 로봇이 다른 얼굴을 감지하면 처음에 대화를 시작한다는 것입니다. 따라서 로봇이 대화 중에 일시적으로 이벤트를 비활성화해야합니다. 그것을 할 수있는 방법이 있습니까?

      이 Choregraphe의 이벤트 출력됩니다 : 당신이 그 형식에 그들을 사용하지 않도록 설정할 수

      These are the events output of Choregraphe

  • 답변

    0

    :

    당신은 여기에 간단한 상태 머신을 다운로드 할 수 있습니다.

    ALBasicAwareness은 로봇이 결합 자에 "집중"방법을 지정하는 3 개 결합 모드를 제공하고, 동작의 더 넓은 범위를 허용한다.

    "연결 해제 됨" : (기본 모드) 로봇이 사용자와 교전 중일 때, 어떤 자극으로 산만 해지고 다른 사람과 교전 할 수 있습니다.

    "FullyEngaged" : 로봇이 사람과 접촉하자마자 자극을 듣지 않고 동일한 사람과 계속 함께합니다. 약혼 한 사람을 잃으면 다시 자극을 듣고 다른 사람과 교전 할 수 있습니다.

    "SemiEngaged" : 로봇이 사람과 교전하면 자극을 듣고 계속 자극을 받으면 방향으로 보일 것이지만 항상 사람에게 돌아갑니다 가 종사하고있다. 사람을 잃으면 자극을 다시 듣고 다른 사람과 교전 할 수 있습니다.

    것은 내가 FullyEngaged 사용하고 로봇은 로봇 구역 1를 입력 첫 번째 사람에 초점을 맞추고 있습니다.

    는 다음과 같이 이루어집니다 : 그것은 그래서

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

    ,하지만 당신은 "가입 이벤트"상자를 사용하는 경우, 시작이 있습니다/당신이 할 수있는 입력을 중지 상자를 활성화/비활성화하는 데 사용합니다. 즉, 이벤트 구독/등록 취소입니다.

    +0

    나는 fromTabletResponse' '같은 이벤트를 구독 할 수 있지만,'PersonEnteredZone1'or'PersonMovedAway' 같은 이벤트는 이벤트에 가입하지, 실제 행동으로 자동 트리거 도움이되지 않을 수 있습니다 – albert

    +0

    이벤트가 트리거되었지만이를들을 필요가 없습니다. 그것들을 어디에서 구독하고 있습니까? – JLS

    +0

    웹 코드 (JS)에서'fromTabletResponse'에 가입하여 버튼 클릭과 같은 html DOM 이벤트를 사용하여 데이터를 보냈습니다. 그러나 choregraphe에서 왼쪽 상단에 일정을 만들면 (질문 이미지) 자동으로 구독하여 해당 이벤트를 청취합니다. – albert

    2

    귀사의 위치에서, 저는 이것을 유한 상태 기계로 프로그램 할 것입니다 : 당신은 탐지와 한 상태에서 다른 상태로 전환하는 방법을 간단한 방식으로 결정합니다. 상태를 변경하면 한 상태의 각 처리가 중지됩니다. 나는이 part of documentation를 방문 참여 모드 바라 보았다 말 http://protolab.aldebaran.com/public/the_3_templates.zip

    +0

    루프 내부에있을 수 있지만 이벤트가 트리거되면 이벤트와 연관된 코드가 실행됩니다. – albert