2017-11-11 18 views
3

나는 3 가지 방법 중 하나를 시작할 수 있습니다 애플 리케이션의 다양한 있습니다 동작 시작
3. 트리거 문장 사용Choregraphe 응용 프로그램을 트리거 문장과 함께 시작하는 것과 다른 방식으로 시작하는 것의 차이점은 무엇입니까? 사용자가 나는 대화 상자에서 <code>runBehaviour</code> 또는 <code>startBehaviour</code><br> 2를 사용 아이콘을 클릭하면 - - 이벤트를 트리거하거나 로봇의 태블릿에서 <br> 1 :

응용 프로그램을 실행하면 끝날 때까지 로봇에 집중하고 싶습니다. 그래서 ALBasicAwarnessALSpeechRecognition과 같은 모듈을 중지합니다. 그러나 누군가가 머리에 로봇을 접촉하면 기본 채널의 dialog_touch이 트리거되고 Pepper는 아직 신청을하지 않은 채로도 듣고 질문에 답합니다. 응용 프로그램이 (1) 또는 (2) 방식으로 시작되면 (3) (트리거 문장으로) 시작된 경우 로봇은 항상 초점을 유지합니다.

트리거 문장으로 시작하는 것과 다른 방법으로 시작하는 것과 응용 프로그램을 실행하여 로봇이 집중하지 못하게하는 방법의 차이점을 알고 싶습니다.

답변

4

대신 runBehaviorstartBehavior 당신이 (doc 참조) 로봇의 라이프 사이클을 활용해야한다. 대신 ALAutonomousLife.switchFocus으로 전화하면 로봇이 앱에 100 % 집중됩니다 (다른 로봇은 모두 중지됨).

로봇이 시작되면 Autonomous Life는 "단독"상태로 작동합니다 (아무런 동작도하지 않습니다). 로봇에 설치된 모든 앱에 대해 launch trigger conditions에 등록하고 청취합니다. 행동을 시작하려고 할 때 (즉, 트리거 조건이 참일 때) "자발적 생명"은 자동으로 switchFocus을 호출합니다.

그런 다음 behavior type에 따라 : 동작이

  • 경우 "대화"다음 자율적 인 생활은 발사 트리거 조건 (즉, 상호 작용 행동이 다른 행동으로 중지 할 수 없습니다를) 등록을 취소합니다.
  • 동작이 "독방"인 경우 대화 형 동작의 트리거 조건 만 계속 활성화됩니다 (즉, 대화식 동작을 시작해야하는 경우 독방 동작을 중지 할 수 있음).

응용 프로그램이 끝나면 로봇은 "독방"상태로 돌아가서 트리거 조건을 다시 관찰합니다.

로봇에 "대화 상자"가 있다면 트리거 조건 "사용자가 영역 1에 있음"으로 자동으로 시작되고 모든 "공동 작업 대화 상자"를 실행하는 대화 형 동작이 있습니다. 대화 상자에서 ^switchFocus을 사용하여 autonomous 라이프에 응용 프로그램을 시작하고 수행중인 다른 작업을 중지하도록 요청할 수 있습니다.

+0

자세한 답변을 보내 주셔서 감사합니다. 나는 그것을 시도 할 것이다. switchBehavior 대신에'switchFocus'를 의미합니까? 나는 문서에서'switchBehavior'를 찾지 못했습니다. – dim

+0

예. 죄송합니다. 내 대답을 편집했습니다. – JLS

2

시스템이 어떻게 작동하는지는 알 수 없지만 대화 상자와 트리거 문장 모두 백그라운드에서 ALBehaviorManager.startBehavior을 사용한다고 생각합니다. 아무 것도 애플리케이션을 방해하지 않도록하려면 앱의 상태 (즉, 동작)를 '대화 형'으로 설정해야합니다. 대화 형으로 실행될 수있는 동작은 하나뿐입니다. 상태에 대한 enter image description here

세부 사항 : http://doc.aldebaran.com/2-5/ref/life/state_machine_management.html?#states