Nothing Special   »   [go: up one dir, main page]

KR20180129886A - Persistent companion device configuration and deployment platform - Google Patents

Persistent companion device configuration and deployment platform Download PDF

Info

Publication number
KR20180129886A
KR20180129886A KR1020187031496A KR20187031496A KR20180129886A KR 20180129886 A KR20180129886 A KR 20180129886A KR 1020187031496 A KR1020187031496 A KR 1020187031496A KR 20187031496 A KR20187031496 A KR 20187031496A KR 20180129886 A KR20180129886 A KR 20180129886A
Authority
KR
South Korea
Prior art keywords
pcd
user
behavior
animation
skill
Prior art date
Application number
KR1020187031496A
Other languages
Korean (ko)
Other versions
KR102306624B1 (en
Inventor
킨티아 브리질
애비다 미샤우드
프랑소와 라베르지
조나단 루이스 로쓰
캐롤린 마로티 사운드
파르다드 파리디
Original Assignee
지보, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 지보, 인코포레이티드 filed Critical 지보, 인코포레이티드
Publication of KR20180129886A publication Critical patent/KR20180129886A/en
Application granted granted Critical
Publication of KR102306624B1 publication Critical patent/KR102306624B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/0005Manipulators having means for high-level communication with users, e.g. speech generator, face recognition means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0003Home robots, i.e. small robots for domestic use
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/18Packaging or power distribution
    • G06F1/181Enclosures
    • G06F1/182Enclosures with special features, e.g. for use in industrial environments; grounding or shielding against radio frequency interference [RFI] or electromagnetical interference [EMI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • G06K9/00671
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/225Feedback of the input speech

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Artificial Intelligence (AREA)
  • Electromagnetism (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Toys (AREA)
  • Manipulator (AREA)
  • Stored Programmes (AREA)

Abstract

지속적 컴패니언 디바이스(PCD: persistent companion device)에 대한 스킬(skill)을 개발하기 위한 개발 플랫폼은 애플리케이션 프로그래밍 인터페이스(API: application programming interface)를 가지며, 개발자가 스킬을 생성하는데 활용 가능한 하나 또는 그 초과의 콘텐츠 어셋들을 찾는 것, 생성하는 것, 편집하는 것 그리고 이들에 액세스하는 것 중 적어도 하나를 수행하는 것을 가능하게 하도록 구성된 어셋 개발 라이브러리, 하나 또는 그 초과의 API들을 가진 표현 툴 모음 ― 개발자에 의해 특정되는, 스킬과 연관된 하나 또는 그 초과의 표현들은 표현 툴 모음을 통해 수신되며, 스킬은 적어도 하나의 정의된 입력에 대한 응답으로 PCD에 의해 실행 가능함 ―, 스킬에 대한 PCD의 하나 또는 그 초과의 거동 시퀀스들을 특정하기 위한 거동 편집기(behavior editor), 및 PCD의 실행 엔진에 스킬을 전개하기 위하여 API를 가진 스킬 전개 설비를 포함한다.A development platform for developing a skill for a persistent companion device (PCD) has an application programming interface (API), which allows a developer to create one or more contents An asset development library configured to enable performing at least one of looking up, creating, editing, and accessing assets; a collection of presentation tools with one or more APIs; , One or more expressions associated with the skill are received via a collection of presentation tools and the skill is executable by the PCD in response to at least one defined input - one or more behavior sequences of the PCD for the skill A behavior editor for specifying the location of the PCD, Includes a skill deployment facility with an API to deploy skills to the row engine.

Description

지속적 컴패니언 디바이스 구성 및 전개 플랫폼Persistent companion device configuration and deployment platform

[0001] 본 출원은 2016년 3월 31일에 출원된 미국 가특허 출원 번호 제 62/316,247호 [JIBO-0004-P01]를 우선권으로 주장한다. 위의 출원들 모두는 그 전체가 인용에 의해 본원에 통합된다.[0001] This application claims priority from U.S. Provisional Patent Application No. 62 / 316,247, filed March 31, 2016 [JIBO-0004-P01]. All of the above applications are incorporated herein by reference in their entirety.

[0002] 발명 분야 [0002] invention the field

[0003] 본 출원은 일반적으로 지속적 컴패니언 디바이스(persistent companion device)에 관한 것이다. 특히, 본 출원은, 사람의 환경에 지속적으로 상주하고 그리고 컴패니언 디바이스의 사용자와 상호작용하여 감정적 관여를 그 디바이스에게 제공하도록 적응되고 그리고/또는 컴패니언 디바이스의 사용자와 그 컴패니언 디바이스의 상호작용들에 관한 애플리케이션들, 콘텐츠, 서비스들 또는 종단 데이터(ongitudinal data) 수집과 연관되는 컴패니언 디바이스를 제공하기 위한 장치 및 방법들에 관한 것이다.[0003] The present application relates generally to persistent companion devices. In particular, the present application relates to a method and apparatus for continuously competing with a user of a companion device, which is adapted to continuously reside in a person's environment and interact with a user of the companion device to provide the device with an emotional engagement and / To devices and methods for providing companion devices associated with applications, content, services, or collection of onginal data.

[0004] 관련 기술의 설명 Description of Related Art

[0005] 스마트폰들 및 태블릿 컴퓨터들과 같은 디바이스들이 증가적인 성능들, 이를테면 네트워킹 특징들, 고화질 비디오, 터치 인터페이스들, 및 애플리케이션들을 갖는 반면에, 그 디바이스들은 이를테면 디바이스와의 상호작용으로부터 컴패니언십 또는 향상된 감정적 경험의 이익들을 제공하기 위해 인간 사용자들을 관여시키기 위한 그것들의 능력에 있어 제한된다. 컴패니언십을 제공하기 위한 개선된 디바이스들과 관련된 방법들 및 시스템들의 요구가 존재한다.[0005] While devices such as smartphones and tablet computers have increasing capabilities, such as networking features, high definition video, touch interfaces, and applications, the devices are often referred to as companion Or their ability to engage human users to provide benefits of enhanced emotional experience. There is a need for methods and systems associated with improved devices for providing companionism.

[0006] 본 개시내용은 사람의 환경에 지속적으로 상주하고 그리고 컴패니언 디바이스의 사용자와 상호작용하여 감정적 관여를 그 디바이스에게 제공하도록 적응되고 그리고/또는 컴패니언 디바이스의 사용자와 그 컴패니언 디바이스의 상호작용들에 관한 애플리케이션들, 콘텐츠, 서비스들 또는 종단 데이터 수집과 연관되는 컴패니언 디바이스를 제공하기 위한 방법들 및 시스템들에 관한 것이다. 디바이스는, 추가로 본원에서 설명되는 바와 같이, 광범위한 애플리케이션들에 대한 풍부한 상호작용을 제공하기 위해서 관련된 하드웨어, 소프트웨어 및 다른 컴포넌트들과 상호작용하는 시스템의 일부일 수 있다.[0006] The present disclosure is based on the concept that the present invention is based on a method and apparatus that consistently resides in a human environment and is adapted to interact with a user of a companion device to provide the device with an emotional involvement and / To methods and systems for providing companion devices associated with applications, content, services, or terminate data collection. A device may be part of a system that interacts with related hardware, software, and other components to provide rich interaction for a wide range of applications, as further described herein.

[0007] 예시적이며 비제한적인 실시예에 따라, PCD(persistent companion device)를 위한 스킬(skill)을 개발하기 위한 개발 플랫폼은 개발자가 PCD에 의해 실행가능한 스킬을 생성하기 위해 활용가능한 하나 또는 그 초과의 콘텐츠 어셋들을 찾는 것, 생성하는 것, 편집하는 것 및 액세스하는 것 중 적어도 하나를 할 수 있게 하도록 구성된 API(application programming interface)를 갖는 어셋 개발 라이브러리, 개발자에 의해 특정된 스킬과 연관된 하나 또는 그 초과의 표현들을 수신하게 하는 하나 또는 그 초과의 API들을 갖는 표현 툴 모음(expression tool suite)― 스킬은 적어도 하나의 정의된 입력에 대한 응답으로 PCD에 의해서 실행가능함―, 스킬을 위한 PCD의 하나 또는 그 초과의 거동 시퀀스들을 특정하기 위한 거동 편집기, 및 스킬을 실행하기 위한 실행 엔진에 스킬을 전개하기 위한 API를 갖는 스킬 전개 설비를 포함한다.[0007] According to an exemplary, non-limiting embodiment, a development platform for developing a skill for a persistent companion device (PCD) is a development platform in which a developer can use one or more An asset development library with an application programming interface (API) configured to allow at least one of locating, creating, editing and accessing content assets in excess, An expression tool suite having one or more APIs to receive the expressions of the overrides - the skill is executable by the PCD in response to at least one defined input - a one of the PCDs for the skill A behavioral editor for specifying behavioral sequences in excess of that, and an execution engine for executing the skill And a skill deployment facility having an API for acquiring the skill.

[0008] 예시적이며 비제한적인 실시예에 따라, SDK(software development kit)를 사용하여 스킬의 개발을 인에이블링하기 위한 플랫폼은 수신된 입력들을 코딩된 응답들에 맵핑하도록 구성된 로직 레벨 모듈, 및 인지 레벨 모듈을 포함하고, 그 인지 레벨 모듈은 하나 또는 그 초과의 비전 기능 이벤트들을 검출하고 그리고 하나 또는 그 초과의 검출된 비전 기능 이벤트들을 로직 레벨 모듈에 알리도록 구성된 비전 기능 모듈, 정의된 사운드들을 검출하고 그리고 검출된 스피치/사운드를 로직 레벨 모듈에 알리도록 구성된 스피치/사운드 인식기, 및 정의된 감정적/페르소나 상태들을 표현하는 하나 또는 그 초과의 애니메이션들을 생성하고 그리고 하나 또는 그 초과의 애니메이션들을 로직 레벨 모듈에 송신하도록 구성된 표현 엔진을 포함한다.[0008] According to an exemplary, non-limiting embodiment, a platform for enabling the development of a skill using a software development kit (SDK) comprises a logic level module configured to map received inputs to coded responses, And a recognition level module, the recognition level module comprising a vision function module configured to detect one or more vision function events and to notify one or more detected vision function events to a logic level module, Speech / sound recognizers configured to detect detected speech / sounds and to notify the detected speech / sound to a logic level module, and to generate one or more animations representing the defined emotional / Level module of the display engine.

[0009] 스킬 개발 플랫폼 방법들 및 시스템들은 PCD(persistent companion device)에 대한 스킬을 개발하기 위한 시스템을 포함한다. 시스템은 개발자가 PCD에 의해서 실행가능한 스킬을 생성하기 위해 활용가능한 하나 또는 그 초과의 콘텐츠 어셋들을 찾는 것, 생성하는 것, 편집하는 것 및 액세스하는 것 중 적어도 하나를 할 수 있게 하도록 구성된, 프로세서 상에서 실행하는 API(application programming interface)를 통해 액세스가능한 어셋 개발 라이브러리를 포함할 수 있다. 시스템은 또한, 프로세서 상에서 실행하고, 그리고 전자 디스플레이, 복수의 움직일 수 있는 바디 세그먼트들, 스피치 출력 시스템 및 멀티-컬러 광원 중 적어도 2개를 포함하는 스킬을 위한 PCD의 하나 또는 그 초과의 물리적 엘리먼트들의 동작이 개발자에 의해 특정되게 하는 하나 또는 그 초과의 API들을 갖는 애니메이션 툴 모음을 포함할 수 있고, 스킬은 개발자에 의해 정의된 적어도 하나의 입력에 대한 응답으로 PCD에 의해서 실행가능하다. 시스템은 또한 스킬을 위한 PCD의 하나 또는 그 초과의 거동 시퀀스들을 특정하기 위한, 프로세서 상에서 실행하는 거동 편집기를 포함할 수 있다. 부가적으로, 시스템은, 프로세서 상에서 실행하고, 그리고 스킬을 실행하기 위한 실행 엔진에 스킬을 전개하도록 적응된 스킬 전개 설비를 포함할 수 있다. 이 시스템에서, 스킬 전개 설비는 API를 통해 스킬을 전개할 수 있다. 부가적으로, 거동 편집기는 PCD의 표현 출력 시스템 및 센서리 입력 시스템의 동작을 가능하게 할 수 있다. [0009] Skill development platform methods and systems include systems for developing skills for persistent companion devices (PCDs). The system is configured to allow the developer to do at least one of locating, creating, editing and accessing one or more content assets available for creating a skill executable by the PCD, And an asset development library accessible through an application programming interface (API). The system also includes a processor for executing one or more of the physical elements of the PCD for the skill that runs on the processor and includes at least two of an electronic display, a plurality of movable body segments, a speech output system, and a multi- An animation toolkit having one or more APIs to make the behavior specified by the developer, and the skill is executable by the PCD in response to at least one input defined by the developer. The system may also include a behavior editor running on the processor for specifying one or more behavior sequences of the PCD for the skill. Additionally, the system may include a skill deployment facility adapted to run on the processor and deploy the skill to an execution engine for executing the skill. In this system, the skill deployment facility can deploy the skill through the API. Additionally, the behavior editor may enable operation of the representation output system and the sensor input system of the PCD.

[0010] 스킬 개발 SDK 방법들 및 시스템들은 PCD(persistent companion device)에 대한 수신된 입력들을 코딩된 응답들에 맵핑하도록 구성된, 프로세서 상에서 동작하는 로직 레벨 맵핑 시스템을 포함할 수 있는 SDK(software development kit)를 사용하여 PCD 스킬의 개발을 인에이블링하기 위한 시스템을 포함할 수 있다. 시스템은 또한, PCD의 인지 엔진을 구성하도록 적응된, 프로세서 상에서 동작하는 PCD 거동 툴 모음(behavior tool suite)을 포함할 수 있고, 그 툴 모음은 하나 또는 그 초과의 비전 기능 이벤트들을 검출하고 그리고 하나 또는 그 초과의 검출된 비전 기능 이벤트를 로직 레벨 맵핑 시스템에 알리도록 거동 툴 모음을 통해 구성된 비전 기능 시스템, 및 정의된 사운드를 검출하고 그리고 검출된 스피치/사운드들을 로직 레벨 맵핑 시스템에 알리도록 거동 툴 모음에 의해서 구성가능한 스피치/사운드 인식 및 이해 시스템을 포함한다. 시스템은 또한, 적어도 하나의 입력에 대한 응답으로 적어도 하나의 정의된 상태를 표현하는 하나 또는 그 초과의 애니메이션들을 생성하고 그리고 하나 또는 그 초과의 애니메이션들을 입력들에 맵핑하기 위해 애니메이션들을 로직 레벨 맵핑 시스템에 송신하게 표현 엔진을 구성하도록 적응된, 프로세서 상에서 동작하는 PCD 애니메이션 툴 모음을 포함할 수 있다. 이 시스템에서, 정의된 상태는 감정 상태, 페르소나 상태, 인식 상태, 및 정의된 에너지 레벨을 표현하는 상태 중 적어도 하나일 수 있다.[0010] Skill development SDK methods and systems include an SDK (software development kit), which may include a logic level mapping system running on a processor, configured to map received inputs to a persistent companion device (PCD) ) To enable the development of the PCD skill. The system may also include a PCD behavior tool suite running on the processor, adapted to configure the perception engine of the PCD, which detects one or more vision function events, Or more of the detected vision function event to a logic level mapping system, and a behavioral tool for detecting the defined sound and notifying the detected speech / sounds to the logic level mapping system And a speech / sound recognition and understanding system configurable by vowels. The system may also be configured to generate one or more animations representing at least one defined state in response to at least one input and to animate the animations into one or more animations in a logic level mapping system Lt; RTI ID = 0.0 > a < / RTI > PCD animation toolkit running on the processor. In this system, the defined state may be at least one of an emotional state, a persona state, a recognized state, and a state representing a defined energy level.

[0011] PCD 소프트웨어 개발 키트는 스킬을 수행하도록 PCD(persistent companion device)를 구성하기 위한 시스템을 포함할 수 있는 사용자 인터페이스 방법들 및 시스템들을 포함할 수 있다. 시스템은 네트워킹 서버 상에서 실행하는 소프트웨어 개발 키트를 포함할 수 있다. SDK는 복수의 애니메이션 사용자 인터페이스 스크린들을 포함할 수 있고, 그 복수의 애니메이션 사용자 인터페이스 스크린들을 통해서 사용자는 스킬과 연관된 애니메이션을 구성하고, 그 복수의 사용자 인터페이스 스크린들은 전자 디스플레이, 복수의 움직일 수 있는 바디 세그먼트들, 스피치 출력 시스템, 및 멀티-컬러 광원 중 적어도 2개를 포함하는 PCD의 물리적 엘리먼트들의 동작의 사양을 가능하게 한다. SDK는 또한 복수의 거동 사용자 인터페이스 스크린들을 포함할 수 있고, 그 복수의 거동 사용자 인터페이스 스크린들을 통해서 사용자는 스킬과 연관된 로봇 액션들 및 판정들을 조정하기 위한 PCD의 거동을 구성하며, 그 복수의 거동 사용자 인터페이스 스크린들은 PCD의 센서리 입력 시스템에 대한 응답으로 PCD의 표현 출력 시스템의 동작을 가능하게 한다. 또한, 애니메이션 사용자 인터페이스 스크린들 및 거동 사용자 인터페이스 스크린들 중 적어도 하나에서 PCD의 그래픽 표현이 사용자에 의한 구성에 기반한 입력들에 대한 응답으로 PCD의 움직임을 나타낸다. 부가적으로, SDK는 응시 배향 사용자 인터페이스 스크린을 포함할 수 있고, 그 응시 배향 사용자 인터페이스 스크린을 통해서 사용자는 PCD에 대한 3차원 공간에서의 포인트로서 PCD에 근접하게 로케이팅된 타겟을 향해 PCD의 디스플레이 스크린을 표현방식으로 배향시키도록 PCD를 구성하고, PCD는 싱글-샷 모드 및 연속하는 타겟-추적하는 모드 중 적어도 하나에서 타겟에 응답한다.[0011] The PCD software development kit may include user interface methods and systems that may include a system for configuring a persistent companion device (PCD) to perform the skill. The system may include a software development kit running on a networking server. The SDK may include a plurality of animation user interface screens through which the user constructs an animation associated with the skill, the plurality of user interface screens including an electronic display, a plurality of movable body segments , A speech output system, and a multi-color light source. The SDK may also include a plurality of behavioral user interface screens through which the user configures the behavior of the PCD to coordinate robotic actions and decisions associated with the skill, The interface screens enable the operation of the PCD representation output system in response to the sensor input system of the PCD. In addition, the graphical representation of the PCD in at least one of the animation user interface screens and the behavioral user interface screens represents the movement of the PCD in response to the inputs based on the configuration by the user. Additionally, the SDK may include a contingent orientation user interface screen through which the user can move the display of the PCD towards the target positioned close to the PCD as a point in the three-dimensional space relative to the PCD The PCD is configured to orient the screen in an expressive manner, and the PCD responds to the target in at least one of a single-shot mode and a continuous target-tracking mode.

[0012] 방법들 및 시스템들은 소프트웨어 개발 키트를 통해 PCD(persistent companion device)의 PCD 애니메이션 구성 및 제어 기능들에 대한 액세스를 제공하는, 네트워크 서버 상에서 실행하는 애니메이션 편집기를 포함할 수 있는 PCD를 애니메이팅하기 위한 시스템을 포함할 수 있다. 시스템은 또한 PCD에 대한 전자 인터페이스를 포함할 수 있고, 그 PCD는 복수의 상호연결된 움직일 수 있는 바디 세그먼트들, 그것의 회전을 위한 모터들, 적어도 하나의 라이트 링, 전자 디스플레이 스크린, 및 오디오 시스템로 구성된다. 부가적으로, 시스템은 PCD 애니메이션 애플리케이션 프로그래밍 인터페이스를 포함할 수 있고, 그 PCD 애니메이션 애플리케이션 프로그래밍 인터페이스를 통해 애니메이션 편집기는 PCD의 특징들 중 적어도 일부를 제어한다. 또한, 시스템은 애니메이션 편집기의 사용자에 의해 구성가능한 복수의 애니메이션 빌더들을 포함할 수 있고, 애니메이션 빌더들은 액티브 애니메이션 세션들을 표시하는 애니메이션 인스턴스들을 유발한다. 시스템은 신호에 대한 응답으로 제1 애니메이션 인스턴스로부터 제2 애니메이션 인스턴스로 PCD의 트랜지션(transition)을 특정하기 위한 거동 트랜지션 시스템을 추가로 포함할 수 있다.[0012] Methods and systems may include animating a PCD that may include an animation editor running on a network server, providing access to PCD animation configuration and control functions of a persistent companion device (PCD) via a software development kit The system may include the following: The system may also include an electronic interface to the PCD, which includes a plurality of interconnected movable body segments, motors for its rotation, at least one light ring, an electronic display screen, and an audio system . Additionally, the system may include a PCD animation application programming interface through which the animation editor controls at least some of the features of the PCD. In addition, the system may include a plurality of animation builders configurable by a user of the animation editor, and animation builders cause animation instances to display active animation sessions. The system may further include a behavior transition system for specifying a transition of the PCD from the first animation instance to the second animation instance in response to the signal.

[0013] 본원에서 설명된 방법들 및 시스템들은 PCD(persistent companion device)의 거동들을 제어하기 위한 시스템을 포함할 수 있다. 시스템은 소프트웨어 개발 키트를 통해 PCD의 PCD 거동 구성 및 제어 기능들에 대한 액세스를 제공하는, 네트워킹 서버 상에서 실행하는 거동 편집기를 포함할 수 있다. 시스템은 또한 자율적인 로봇 동작 기능들의 거동 및 제어 흐름을 제어하는 것을 가능하게 하는 거동 편집기에 의해서 액세스가능한 복수의 거동 트리 데이터 구조들을 포함할 수 있고, 그 동작 기능들은 복수의 센서 입력 기능들 및 복수의 표현 출력 기능들을 포함하고, 복수의 거동 트리 데이터 구조들은 로봇 동작 기능들의 제어를 계층적으로 체계화하고, 적어도 하나의 거동 트리 데이터 구조는 PCD에 의해서 수행되는 적어도 하나의 스킬과 연관된다. 시스템은 각각의 거동 트리의 복수의 거동 노드들을 추가로 포함하고, 복수의 거동 노드들 각각은 무효 상태, 진행 중인 상태, 성공적인 상태 및 실패된 상태로 구성되는 4개의 거동 상태들 중 하나와 연관된다. 시스템은 또한 각각의 거동 트리의 적어도 하나의 페어런츠 거동 노드를 포함하고, 적어도 하나의 페어런츠 노드는 적어도 하나의 차일드 거동 노드를 참조하고 그리고 순차적 차일드 거동 노드 동작, 병렬 차일드 거동 노드 동작, 차일드 거동 노드들 간의 스위칭, 및 참조된 차일드 거동 노드의 랜덤한 활성화 중 적어도 하나를 개시하도록 적응된다. 이 시스템에서, 거동 노드들 중 적어도 일부는 각각 거동 노드가 시작하는 것을 방지하는 것, 실행하는 거동 노드가 성공하도록 강제하는 것, 실행하는 거동 노드가 실패하도록 강제하는 것, 거동 노드를 재실행하는 것 중 적어도 하나를 수행함으로써 자신의 거동 노드의 상태를 수정하도록 기능하는 거동 노드 데코레이터로 구성된다.[0013] The methods and systems described herein may include systems for controlling the behavior of persistent companion devices (PCDs). The system may include a behavior editor running on a networking server that provides access to PCD behavior configuration and control functions of the PCD via a software development kit. The system may also include a plurality of behavior tree data structures accessible by a behavior editor that enables control of the behavior and control flow of autonomous robot motion functions, the motion functions including a plurality of sensor input functions and a plurality Wherein the plurality of behavior tree data structures hierarchically control the control of robot action functions and at least one behavior tree data structure is associated with at least one skill performed by the PCD. The system further includes a plurality of behavior nodes of each behavior tree, and each of the plurality of behavior nodes is associated with one of four behavior states consisting of an invalid state, an ongoing state, a successful state, and a failed state . The system also includes at least one parental behavior node of each behavioral tree, wherein at least one parental node refers to at least one child behavioral node and comprises a sequential child behavior node action, a parallel child behavior node action, , And random activation of the referenced child behavior node. In this system, at least some of the behavioral nodes are each prevented from starting the behavioral node, enforcing the behavioral behavior node to succeed, enforcing the behavioral behavior node to fail, rerunning the behavioral node And a behavior node decorator functioning to modify the state of its behavior node by performing at least one of the behavior node decorators.

[0014] 본원에서 설명된 방법들 및 시스템들은 PCD(persistent companion device)에 의해 스피치를 인식하기 위한 시스템을 포함할 수 있다. 시스템은 PCD가 이해하는 자연 언어를 가능하게 하는 PCD 스피치 인식 구성 시스템을 포함할 수 있고, 이 시스템은 사용자가 임베딩된 규칙(embedded rule) 및 커스텀 규칙(custom rule) 중 적어도 하나를 포함하는 스피치 이해 규칙들을 구성하기 위하여 네트워킹된 컴퓨터상에서 실행하는 스피치 규칙 편집기를 동작하게 하는 복수의 사용자 인터페이스 스크린들을 포함한다. 시스템은 네트워킹된 서버를 통해 사용자에 의해 액세스되는 임베딩된 스피치 이해 규칙들의 라이브러리(library)를 포함하는 개발 키트를 더 포함할 수 있다. 부가적으로, 시스템은, 청취 성공 데코레이터에 의해 테스트된 조건의 성공적인 결과에 기반하여 사용자가 PCD로 하여금 동작을 수행하게 하도록 구성하는 청취 성공 데코레이터 및 청취-타입 PCD 거동 중 적어도 하나와 스피치 이해 규칙들을 사용자가 연관시키게 하는 소프트웨어 개발의 로봇 거동 연관성 기능을 더 포함할 수 있다. [0014] The methods and systems described herein may include a system for recognizing speech by a persistent companion device (PCD). The system may include a PCD speech recognition configuration system that enables the natural language that the PCD understands, which system may include a speech recognition system that includes at least one of an embedded rule and a custom rule. Lt; RTI ID = 0.0 > a < / RTI > speech rule editor running on a networked computer to construct rules. The system may further include a development kit that includes a library of embedded speech understanding rules that are accessed by a user via a networked server. Additionally, the system may include at least one of a listening success decorator and a listening-type PCD behavior that configures the user to cause the PCD to perform an action based on the successful result of the condition tested by the listening success decorator, And may further include a robotic behavior association function of software development that the user associates.

[0015] 본원에서 설명된 방법들 및 시스템들은 PCD(persistent companion device) 제어 구성 시스템을 포함할 수 있다. 시스템은, 스크립팅된(scripted) 애니메이션들의 플레이백(playback)을 통한 PCD의 표현 출력, 사용자에 의해 구성 가능한 이벤트 청취자들에 의해 검출된 이벤트들에 대한 PCD의 응답 동작 및 애니메이션 커맨드들을 특정하는 것을 가능하게 하는 복수의 애니메이션 계층들을 제어하는 것을 가능하게 하는 PCD 애니메이션 구성 시스템을 포함할 수 있다. 시스템은 PCD의 기계적 및 전자적 동작을 제어하는 것을 가능하게 하는 PCD 거동 구성 시스템을 더 포함할 수 있다. 시스템은 또한, 싱글-샷 및 타겟 추적 중 적어도 하나의 것의 응시 PCD 기능 모드 및 타겟을 특정함으로써 PCD의 응시의 지향성 활동을 결정하는 것을 가능하게 하는 PCD 응시 배향 구성 시스템을 포함할 수 있다. 부가적으로, 시스템은, 인간 스피치를 인식하기 위한 복수의 임베딩된 규칙들, 및 인간 스피치를 인식하기 위한 규칙들을 커스터마이징(customizing)하기 위한 사용자 인터페이스를 포함하는 PCD 스피치 인식 구성 시스템을 포함할 수 있고, 인간 스피치는 PCD의 오디오 센서 입력 시스템에 의해 캡처된다. 이러한 시스템에서, 로봇 거동을 통해 PCD의 기계적 및 전자적 동작을 제어하는 것은 애니메이팅된 거동들 간의 트랜지션들을 제어하는 것, 병렬 제어 및 순차적인 제어 중 적어도 하나의 제어로 복수의 애니메이팅된(animated) 거동들을 제어하는 것, 및 페어런츠 및 차일드 거동들의 거동 트리에 기반하여 복수의 차일드 거동들을 제어하는 것을 포함하며, 차일드 거동은 차일드 거동들 중에서 선택하고 차일드 거동들 중에서 랜덤하게 선택하기 위한 스위치 조건 중 하나에 기반하여 활성화된다.[0015] The methods and systems described herein may include a persistent companion device (PCD) control configuration system. The system is capable of outputting a representation of the PCD through playback of scripted animations, specifying the PCD's response behavior and animation commands to events detected by user-configurable event listeners And to control a plurality of animation layers that allow the user to control the animation. The system may further comprise a PCD behavior configuration system that allows to control the mechanical and electronic operation of the PCD. The system may also include a PCD contour orientation configuration system that enables determining the directional activity of the gaze of the PCD by specifying the target PCD function mode and target of at least one of the single-shot and target tracking. Additionally, the system may include a PCD speech recognition configuration system that includes a plurality of embedded rules for recognizing human speech, and a user interface for customizing rules for recognizing human speech , Human speech is captured by the PCD's audio sensor input system. In such a system, controlling the mechanical and electronic operation of the PCD through robot behavior may involve controlling transitions between animated behaviors, multiple animated by at least one control of parallel and sequential control, Controlling behaviors, and controlling a plurality of child behaviors based on a behavior tree of parentants and child behaviors, wherein the child behavior is selected from among the child behaviors and one of the switch conditions for randomly selecting among the child behaviors Lt; / RTI >

[0016] 반드시 축적대로 그려진 것은 아닌 도면들에서, 유사한 도면부호들은 몇몇의 뷰들 전반에 걸쳐 실질적으로 유사한 컴포넌트들을 설명할 수 있다. 상이한 문자 접미사들을 갖는 유사한 도면부호들은 실질적으로 유사한 컴포넌트들의 상이한 인스턴스들을 나타낼 수 있다. 도면들은 일반적으로, 본 문헌에서 논의되는 특정 실시예들의 상세한 설명을 제한이 아닌 예로서 예시한다.
[0017] 도 1은 PCD의 많은 뷰들을 예시한다.
[0018] 도 2는 PCD의 소프트웨어 아키텍처를 예시한다.
[0019] 도 3은 PSIM(psycho-social interaction module)의 아키텍처를 예시한다.
[0020] 도 4는 PCD에 의한 그리팅(greeting) 상호작용의 단순화된 버전을 도시하는 태스크 네트워크를 예시한다.
[0021] 도 5는 PCD의 하드웨어 아키텍처를 예시한다.
[0022] 도 6은 PCD의 기계적 아키텍처를 예시한다.
[0023] 도 7은 콜 답신 및 메시징 서비스를 제공하기 위한 방법에 대한 흐름도를 예시한다.
[0024] 도 8은 PCD에 의해 스토리를 중계하기 위한 방법에 대한 흐름도를 예시한다.
[0025] 도 9는 PCD의 사용에 의해 사용자의 감정 상태를 표시하고 그리고/또는 영향을 미치기 위한 방법에 대한 흐름도를 예시한다.
[0026] 도 10은 PCD에 의해 스토리 액팅 또는 애니메이션 특징을 인에이블링하기 위한 방법에 대한 흐름도를 예시한다.
[0027] 도 11은 백 스토리들을 생성 및 인코딩하기 위한 방법에 대한 흐름도를 예시한다.
[0028] 도 12는 상호작용 데이터에 액세스하여 이를 사용하여 사용자의 요구들을 해결(address)하기 위한 방법에 대한 흐름도를 예시한다.
[0029] 도 13은 사용자 입력들에 기반하여 PCD의 거동을 조정하기 위한 방법에 대한 흐름도를 예시한다.
[0030] 도 14는 반복적이거나, 지속적이거나, 또는 반-지속적인 시각적 엘리먼트를 디스플레이하는 예를 예시한다.
[0031] 도 15는 반복적이거나, 지속적이거나, 또는 반-지속적인 시각적 엘리먼트를 디스플레이하는 예를 예시한다.
[0032] 도 16은 반복적이거나, 지속적이거나, 또는 반-지속적인 시각적 엘리먼트를 디스플레이하는 예를 예시한다.
[0033] 도 17은 PCD에 대한 런타임 스킬의 예시적이며 비제한적인 실시예를 예시한다.
[0034] 도 18은 SDK를 사용하여 스킬의 개발을 인에이블링하는 플랫폼에 대한 흐름 및 다양한 아키텍처 컴포넌트들의 예시적이며 비제한적인 실시예의 예시이다.
[0035] 도 19는 어셋들의 생성을 위해 제공될 수 있는 사용자 인터페이스의 예시적이며 비제한적인 실시예의 예시이다.
[0036] 도 20은 개발자가 PCD의 로컬 인지 공간을 볼 수 있게 할 수 있는 LPS(local perception space) 가시화 툴의 예시적이며 비제한적인 스크린 샷들의 예시이다.
[0037] 도 21은 예시적이며 비제한적인 실시예에 따른 거동 편집기의 스크린샷의 예시이다.
[0038] 도 22는 예시적이며 비제한적인 실시예에 따라 분기 로직을 생성하는 공식적 방식의 예시이다.
[0039] 도 23은 선택 로직이 거동에 대한 인수로서 부가될 수 있게 하는, 예시적이며 비제한적인 실시예의 예시이다.
[0040] 도 24는 시뮬레이션 윈도우의 예시적이며 비제한적인 실시예의 예시이다.
[0041] 도 25는 소셜 로봇 표현 툴 모음의 소셜 로봇 애니메이션 편집기의 예시적이며 비제한적인 실시예의 예시이다.
[0042] 도 26은 PCD 애니메이션 움직임 툴의 예시적이며 비제한적인 실시예의 예시이다.
[0043] 도 27은 소셜 로봇-특정 소프트웨어 개발 키트의 아키텍처의 블록 다이어그램을 도시한다.
[0044] 도 28은, 2개의 거동들이 동시에 실행되고, 그런 다음 제2 거동, 그런 다음 제3 거동이 실행되는, 거동 트리 스피펫(behavior tree snippet)을 도시한다.
[0045] 도 29는 리프 거동(leaf behavior)을 도시한다.
[0046] 도 30은 순차적인 그리고 병렬 페어런츠 거동들의 사용자 인터페이스 디스플레이를 도시한다.
[0047] 도 31은 거동 데코레이터의 사용자 인터페이스 디스플레이를 도시한다.
[0048] 도 32는 스킬의 메인 거동 트리를 도시한다.
[0049] 도 33은 거동 트리 리프를 편집하기 위한 거동 편집기의 사용자 인터페이스를 도시한다.
[0050] 도 34는 측정가능한 조건에 기반하여 거동의 상태를 변경하도록 구성된 데코레이터를 도시한다.
[0051] 도 35는 거동의 인수들을 특정하기 위한 사용자 인터페이스를 도시한다.
[0052] 도 36은 구성, 활성화, 및 런/제어에 걸친, 빌더들 및 인스턴스들의 생활주기의 예시를 도시한다.
[0053] 도 37은 로봇의 개개의 DOF들, DOF 값 타입들, 및 공통 DOF 그룹핑들의 맵을 제공하는 다이어그램을 도시한다.
[0054] 도 38은 가장 최근에 트리거된 애니메이트(animate) 인스턴스에 의한 배타적 DOF 소유권의 정책을 따르는 애니메니트 모듈을 도시한다.
[0055] 도 39는 도 38의 실시예에 대한 교번적인 실시예를 도시한다.
[0056] 도 40은 애니메이션으로 트랜잭션을 구성하는 것을 도시한다.
[0057] 도 41은 예시적인 코어 애니메이션 이벤트들의 타이밍을 도시한다.
[0058] 도 42는 2개의 오버랩핑하는 애니메이션 인스턴스들에 의해 산출되는 이벤트들의 타임라인을 도시한다.
[0059] 도 43은 룩-앳(look-at) 배향 구성 인터페이스의 예를 도시한다.
[0060] 도 44는 2개의 상이한 룩-앳 타겟들 간에서 토글링하기 위한 거동 트리 노드에 커스텀 코드를 포함시키는 것을 도시한다.
[0061] 도 45는 소프트웨어 개발 키트에 의해 참조되는 소셜 로봇의 3개의 좌표계를 도시한다.
[0062] 도 46은 애니메이션들을 편집하기 위한 소프트웨어 개발 키트의 사용자 인터페이스를 도시한다.
[0063] 도 47은 소셜 로봇의 세그먼트들을 제어하기 위한 바디 계층을 구성하기 위한 사용자 인터페이스를 도시한다.
[0064] 도 48은 소셜 로봇의 대표적 아이 이미지(eye image)를 제어하기 위한 아이 계층을 구성하기 위한 사용자 인터페이스를 도시한다.
[0065] 도 49는 소셜 로봇의 대표적 아이 이미지의 텍스처 양상을 제어하기 위한 아이 텍스처 계층을 구성하기 위한 사용자 인터페이스를 도시한다.
[0066] 도 50은 소셜 로봇의 대표적 아이 이미지를 제어하기 위한 아이 오버레이 계층을 구성하기 위한 사용자 인터페이스를 도시한다.
[0067] 도 51은 소셜 로봇의 대표적 아이 이미지를 제어하기 위한 아이 오버레이 텍스처 계층을 구성하기 위한 사용자 인터페이스를 도시한다.
[0068] 도 52는 소셜 로봇의 대표적 아이 이미지의 백그라운드를 제어하기 위한 백그라운드 계층을 구성하기 위한 사용자 인터페이스를 도시한다.
[0069] 도 53은 소셜 로봇의 바디 세그먼트 주위에 배치된 LED를 구성하기 위한 사용자 인터페이스를 도시한다.
[0070] 도 54는 이벤트를 구성하기 위한 사용자 인터페이스를 도시한다.
[0071] 도 55는 오디오 이벤트 계층을 구성하기 위한 사용자 인터페이스를 도시한다.
[0072] 도 56은 스피치 규칙 편집기의 사용자 인터페이스를 도시한다.
[0073] 도 57은 교번적인 스피치 규칙 편집기 사용자 인터페이스 스크린을 도시한다.
[0074] 도 58은 청취 거동 편집기 사용자 인터페이스 스크린을 도시한다.
[0075] 도 59는 교번적인 청취 거동 편집기 사용자 인터페이스를 도시한다.
[0076] 도 60은 다른 교번적인 청취 거동 편집기 사용자 인터페이스 스크린을 도시한다.
[0077] 도 61은 MIM 구성 사용자 인터페이스를 도시한다.
[0078] 도 62는 MIM 규칙 편집기 사용자 인터페이스를 도시한다.
[0079] 도 63은 PCD SDK의 흐름 편집기를 도시한다.
[0016] In drawings that are not necessarily drawn to scale, like reference numerals can describe substantially similar components throughout several views. Similar reference numerals having different character suffixes may represent different instances of substantially similar components. The drawings generally illustrate, by way of example and not limitation, a detailed description of specific embodiments discussed in the literature.
[0017] FIG. 1 illustrates many views of a PCD.
[0018] Figure 2 illustrates the software architecture of the PCD.
[0019] FIG. 3 illustrates the architecture of a psycho-social interaction module (PSIM).
[0020] FIG. 4 illustrates a task network illustrating a simplified version of a greeting interaction by a PCD.
[0021] FIG. 5 illustrates a hardware architecture of a PCD.
[0022] FIG. 6 illustrates the mechanical architecture of a PCD.
[0023] FIG. 7 illustrates a flow diagram of a method for providing a call reply and messaging service.
[0024] FIG. 8 illustrates a flow diagram of a method for relaying a story by a PCD.
[0025] FIG. 9 illustrates a flow diagram of a method for displaying and / or affecting a user's emotional state by use of a PCD.
[0026] FIG. 10 illustrates a flow diagram of a method for enabling story-actuation or animation features by a PCD.
[0027] FIG. 11 illustrates a flow diagram of a method for generating and encoding back stories.
[0028] Figure 12 illustrates a flow diagram of a method for accessing and using interaction data to address a user's needs.
[0029] FIG. 13 illustrates a flow diagram of a method for adjusting the behavior of a PCD based on user inputs.
[0030] FIG. 14 illustrates an example of displaying repetitive, persistent, or semi-persistent visual elements.
[0031] FIG. 15 illustrates an example of displaying repetitive, persistent, or semi-persistent visual elements.
[0032] FIG. 16 illustrates an example of displaying repetitive, persistent, or semi-persistent visual elements.
[0033] FIG. 17 illustrates an exemplary, non-limiting example of a run-time skill for a PCD.
[0034] FIG. 18 is an illustration of an exemplary, non-limiting embodiment of a flow and various architectural components for a platform that enables the development of skills using the SDK.
[0035] Figure 19 is an illustration of an example, non-limiting embodiment of a user interface that may be provided for creation of assets.
[0036] FIG. 20 is an illustration of exemplary, non-limiting screenshots of a local perception space (LPS) visualization tool that allows a developer to view the local perception space of a PCD.
[0037] Figure 21 is an illustration of a screenshot of a behavior editor in accordance with an exemplary, non-limiting embodiment.
[0038] Figure 22 is an illustration of an exemplary method of generating branch logic in accordance with an exemplary, non-limiting embodiment.
[0039] Figure 23 is an illustration of an exemplary, non-limiting embodiment that allows selection logic to be added as an argument to behavior.
[0040] FIG. 24 is an illustration of an exemplary, non-limiting embodiment of a simulation window.
[0041] FIG. 25 is an illustration of an exemplary, non-limiting embodiment of a social robot animation editor in a social robot presentation tool suite.
[0042] Figure 26 is an illustration of an exemplary, non-limiting embodiment of a PCD animation motion tool.
[0043] FIG. 27 shows a block diagram of the architecture of a social robot-specific software development kit.
[0044] FIG. 28 shows a behavior tree snippet in which two behaviors are performed simultaneously, and then a second behavior, and then a third behavior is performed.
[0045] FIG. 29 shows leaf behavior.
[0046] Figure 30 illustrates a user interface display of sequential and parallel parental behaviors.
[0047] Figure 31 shows a user interface display of a behavior decorator.
[0048] Fig. 32 shows the main behavior tree of the skill.
[0049] FIG. 33 shows a user interface of a behavior editor for editing a behavior tree leaf.
[0050] Figure 34 illustrates a decorator configured to change the state of behavior based on measurable conditions.
[0051] FIG. 35 illustrates a user interface for specifying the arguments of the behavior.
[0052] FIG. 36 illustrates an example of the life cycle of builders and instances over configuration, activation, and run / control.
[0053] FIG. 37 shows a diagram that provides a map of the individual DOFs, DOF value types, and common DOF groupings of the robot.
[0054] FIG. 38 shows an animated module that follows the policy of exclusive DOF ownership by the most recently triggered animate instance.
[0055] FIG. 39 shows an alternate embodiment for the embodiment of FIG.
[0056] FIG. 40 shows the construction of a transaction by animation.
[0057] FIG. 41 shows the timing of exemplary core animation events.
[0058] Figure 42 shows a timeline of events that are generated by two overlapping animation instances.
[0059] FIG. 43 shows an example of a look-at alignment configuration interface.
[0060] FIG. 44 illustrates including a custom code in a behavior tree node for toggling between two different look-at targets.
[0061] Figure 45 shows three coordinate systems of a social robot that are referenced by a software development kit.
[0062] Figure 46 shows a user interface of a software development kit for editing animations.
[0063] Figure 47 illustrates a user interface for configuring a body layer for controlling segments of a social robot.
[0064] FIG. 48 shows a user interface for configuring an eye layer for controlling a representative eye image of a social robot.
FIG. 49 shows a user interface for constructing an eye texture layer for controlling the texture pattern of a representative eye image of a social robot.
FIG. 50 shows a user interface for configuring an eye overlay layer for controlling a representative eye image of a social robot.
[0067] FIG. 51 shows a user interface for configuring a child overlay texture layer for controlling representative eye images of a social robot.
FIG. 52 shows a user interface for configuring a background layer for controlling the background of a typical eye image of a social robot.
[0069] FIG. 53 shows a user interface for constructing an LED disposed around the body segment of the social robot.
[0070] FIG. 54 shows a user interface for configuring an event.
[0071] FIG. 55 shows a user interface for configuring an audio event layer.
[0072] FIG. 56 shows a user interface of a speech rule editor.
[0073] Figure 57 illustrates an alternate speech rule editor user interface screen.
[0074] FIG. 58 shows a listener behavior interface user interface screen.
[0075] FIG. 59 shows an alternate listening behavior editor user interface.
[0076] Figure 60 illustrates another alternate listening behavior editor user interface screen.
[0077] Figure 61 shows a MIM configuration user interface.
[0078] FIG. 62 shows a MIM rule editor user interface.
[0079] FIG. 63 shows a flow editor of the PCD SDK.

[0080] 예시적이며 비제한적인 실시예들에 따라, 사람/사용자의 환경에서 지속적으로 상주하며 그리고 컴패니언 디바이스의 사용자와 상호작용하는 PCD(Persistent Companion Device)가 제공되고 설명된다. 본원에서 사용되는 바와 같이, "PCD" 및 "소셜 로봇"은, 문맥이 달리 표시하는 경우를 제외하고, 상호교환가능하게 사용될 수 있다. 아래에 보다 충분히 설명되는 바와 같이, PCD는 움직임, 그래픽들, 사운드들, 라이트들(lights), 향(scent)을 통해 표현되는 별개의 페르소나를 갖는 지속적, 사회적 존재감(social presence)를 제공한다. PCD의 각각의 실시예에 수반되는 "디지털 소울(digital soul)"의 개념이 아래에 추가로 도입된다. 본원에서 사용되는 바와 같이, "디지털 소울"은 PCD에 의해 액션들을 결정하고 실행하기 위한 입력들로서의 역할을 하는, 디지털 포맷으로 저장될 수 있는 복수의 속성들을 지칭한다. 본원에서 사용되는 바와 같이, "환경"은 PCD의 센서들에 의한 사용자의 관찰을 허용하기에 충분한, 사용자에 대한 근접도 내에서의 사용자의 물리적 환경을 지칭한다.[0080] According to illustrative, non-limiting embodiments, a Persistent Companion Device (PCD) is provided and described that is persistent in the human / user environment and interacts with the user of the companion device. As used herein, "PCD" and "social robot" may be used interchangeably, except where the context otherwise indicates. As explained more fully below, PCD provides a continuous, social presence with distinct personas expressed through motion, graphics, sounds, lights, and scents. The concept of " digital soul " following each embodiment of the PCD is further introduced below. As used herein, " digital soul " refers to a plurality of attributes that can be stored in digital format, serving as inputs for determining and executing actions by the PCD. As used herein, " environment " refers to the physical environment of the user within proximity to the user, sufficient to allow the user to observe by the sensors of the PCD.

[0081] 이 디저털 소울은 PCD의 상호작용/인터페이스에 수반된 사회적-감정적/대인관계 느낌(interpersonal feel)을 통해 사회적 상호작용 및 라포-형성 활동들(rapport-building activities)에 사용자들이 관여(engage)하도록 동작한다. 아래에서 보다 충분히 설명되는 바와 같이, PCD(100)는 PCD(100)의 사용자에 대한 매우 다양한 기능들을 수행할 수 있다. 아래에 상세히 설명되는 예시적이며 비제한적인 실시예들에 따라, PCD는 (1) 사람들/사용자들 간의 보다 의미있고, 참여적이며, 물리적으로 구체화되고, 사회적으로 자리잡은 상호작용들을 가능하게 하고 지원할 수 있고, 그리고 (2) 실용적 태스크(utilitarian task)들의 수행에 관여할 수 있고 ―여기서, PCD는 보조자(assistant)로서 동작하거나 또는 이로 제한되는 것은 아니지만, 사용자에게 유용한 정보를 제공하는 것, 스케줄링을 보조하는 것, 리마인딩하는 것(reminding), 포토그래퍼로서 동작하는 것과 같은 특정 서비스들을 제공하는 것을 비롯한 개인 서비스를 제공하는 어떤 것으로서 동작하여, 가족 스토리들 및 정보(knowledge)(예컨대, 특정 레시피들) 등을 가족이 생성/보존/공유하게 돕는다― 그리고 (3) 사용자들에게 재미를 주고(예컨대, 스토리들, 게임들, 뮤직 및 다른 미디어 또는 콘텐츠) 그리고 회합(company) 및 컴패니언쉽(companionship)를 제공할 수 있다. [0081] This dithered soul can be used to engage users in social interaction and rapport-building activities through the social-emotional / interpersonal feel that accompanies PCD interaction / engage. As will be described more fully below, the PCD 100 may perform a wide variety of functions for the user of the PCD 100. In accordance with the illustrative, non-limiting embodiments detailed below, the PCD can (1) enable more meaningful, participatory, physically specific, socially positioned interactions between people / users And (2) engage in the performance of utilitarian tasks, where the PCD acts as an assistant, or may provide information useful to the user, such as, but not limited to, scheduling Such as providing personalized services, such as providing certain services, such as, for example, assisting in remodeling, acting as a photographer, supporting family stories and knowledge (e.g., Recipe) - and (3) helping the user to have fun (eg, stories, games, Music and other media or content), as well as company and companionships.

[0082] 예시적이며 비제한적인 실시예들에 따라, PCD의 다양한 기능들은, 이로 제한되는 것은 아니라, 하기의 것들을 포함하는 복수의 동작 모드들을 통해 달성될 수 있다:[0082] According to exemplary and non-limiting embodiments, various functions of the PCD may be achieved through a plurality of modes of operation including, but not limited to, the following:

ⅰ. 개선된 컴패니언쉽을 제공하도록 시간이 지날수록 적응될 수 있는 특성(trait)들을 포함하여, 다양한 상이한 성격 특성들을 선택적으로 표현하는 개인화된 인터페이스를 통해.I. Through a personalized interface that selectively expresses a variety of different personality traits, including traits that can be adapted over time to provide improved companionship.

ⅱ. 정보뿐만 아니라 정서(affect)를 전달할 수 있는 표현적이고, 따뜻한 인간중심적인 인터페이스를 통해. 아래에서 설명되는 바와 같이, 그런 인터페이스는 얼굴 표정(애니메이션 또는 움직임에 의해), 바디 움직임, 그래픽들, 사운드, 스피치, 컬러, 라이트, 향 등을 포함하는 다수의 큐(cue)들을 통해 감정, 정서 및 성격을 표현할 수 있다.Ii. Through an expressive, warm, human-centered interface that can convey not only information but also affect. As described below, such an interface may include emotions, emotions, and emotions through multiple cues, including facial expressions (by animation or motion), body movements, graphics, sound, speech, color, And personality.

ⅲ. PCD가 점차적으로 PCD의 사용자(들)에게 맞춤화되고, 적응되고, 튜닝되도록 다수의 소스들(센서들, 데이터, 다른 디바이스들로부터의 정보, 인터넷, GPS, 등)에 걸쳐 상황별 경도 정보(longitudinal information)를 획득하는 것을 통해.Iii. Longitudinally longitudinal information over a number of sources (sensors, data, information from other devices, the Internet, GPS, etc.) so that the PCD is gradually customized, adapted and tuned to the user (s) Through acquiring information.

ⅳ. 사용자의 요구들/원하는 것을 보다 잘 매칭시키기 위한 적응적 자체-구성/자체-힐링을 통해.Iv. Through adaptive self-configuration / self-healing to better match user needs / desires.

ⅴ. 특정 시츄에이션 및 그의 사용자의 사회적 및 감정적 특정상황들을 고려하는 것을 통해.V. Through taking into account the specific situation and the specific social and emotional situations of his user.

[0083] 도 1을 참조로, 예시적이며 비제한적인 실시예들에 따른 PCD(100)의 다수의 도면들이 도시된다. 예시된 바와 같이, PCD(100)는 예컨대 용량성 센서들(102, 102)을 포함하는 복수의 예시적인 입력/센서 디바이스들을 포함한다. 하나 또는 그 초과의 용량성 센서들(102)은, 이로 제한되는 것은 아니지만, 잠재적으로 사용자 인터페이스로서의 역할을 하는 것뿐만 아니라, 스트록킹(stroking), 허깅(hugging), 터칭(touching) 등을 포함하는 물리적 사회적 상호작용을 감지하도록 동작할 수 있다. PCD(100)는 사용자로부터 입력을 수신할 뿐만 아니라 사용자에게 PCD(100)에 의해 데이터의 출력을 위한 그래픽 디스플레이로서 기능하도록 구성된 디바이스로서의 터치 스크린(104)을 더 포함할 수 있다. PCD(100)는, 이로 제한되는 것은 아니지만, 스틸 이미지들 및 비디오를 포함하는 시각적 성질(visual nature)의 입력을 수신하기 위한 하나 또는 그 초과의 카메라들(106)을 더 포함할 수 있다. PCD(100)는 사용자로부터 입력을 수신하기 위하여 하나 또는 그 초과의 조이스틱들(108)을 더 포함할 수 있다. PCD(100)는 오디오 데이터를 방출하거나 아니면 출력하기 위한 하나 또는 그 초과의 스피커들(110)을 더 포함할 수 있다. PCD(100)는 하나 또는 그 초과의 마이크로폰들(112)을 더 포함할 수 있다.[0083] Referring to FIG. 1, a number of views of a PCD 100 in accordance with exemplary, non-limiting embodiments are shown. As illustrated, PCD 100 includes a plurality of exemplary input / sensor devices, including, for example, capacitive sensors 102, 102. One or more capacitive sensors 102 may include, but are not limited to, stroking, hugging, touching, etc., as well as potentially acting as a user interface. Lt; RTI ID = 0.0 > physical < / RTI > The PCD 100 may further include a touch screen 104 as a device configured to receive input from a user as well as configured to function as a graphical display for output of data by the PCD 100 to the user. The PCD 100 may further include one or more cameras 106 for receiving inputs of visual nature, including, but not limited to, still images and video. The PCD 100 may further include one or more joysticks 108 to receive input from a user. The PCD 100 may further include one or more speakers 110 for emitting or outputting audio data. The PCD 100 may further include one or more microphones 112.

[0084] PCD 소프트웨어 아키텍처 [0084] PCD software architecture

[0085] 도 2를 참조로, 예시적이며 비제한적인 실시예들에 따른 소프트웨어 아키텍처(200)를 도시하는 블록도가 예시된다. 소프트웨어 아키텍처(200)는, PCD(100)가, 로봇 실시예를 통해서뿐만 아니라 광범위한 애플리케이션들에 걸쳐 연결된 디바이스들을 통해 사람들이 관여할 수 있는 감정적으로 공명하는 페르소나와 같은 경험을 삶에 제공하게 할 수 있는 인공 지능, 머신 학습, 및 연관된 소프트웨어 및 하드웨어 시스템들과 같은 기술들에 적응될 수 있다.[0085] Referring now to FIG. 2, a block diagram illustrating a software architecture 200 in accordance with exemplary, non-limiting embodiments is illustrated. The software architecture 200 allows the PCD 100 to provide life in an emotionally resonant persona experience that people can engage with through robotic embodiments as well as through devices connected across a wide range of applications Artificial intelligence, machine learning, and associated software and hardware systems.

[0086] 예시적이며 비제한적인 실시예들에 따라, PCD(100)와 연관된 지능은 휴먼 소셜 코드(human social code)를 머신들에 인코딩할 수 있는 하나 또는 그 초과의 카테고리들로 분할될 수 있다. 일부 실시예들에서, 이들 하나 또는 그 초과의 카테고리들은 PCD의 인식-정서(cognitive-emotive) 아키텍처의 토대일 수 있다. 하나 또는 그 초과의 카테고리들은, 이로 제한되는 것은 아니지만, 심리사회적 인지, 심리사회적 학습, 심리사회적 상호작용, 심리사회적 표현 등)을 포함할 수 있다. 지능의 심리사회적 인지 카테고리는 PCD(100)의 자연적 사회적 인터페이스 및 파-필드(far-field) 상호작용을 지원하기 위하여 인간 소셜 큐들(예컨대, 시력, 청력, 터치)의 통합된 머신 인지를 포함할 수 있다. 심리사회적 학습 카테고리는, PCD(100)가 직접적인 상호작용을 통해 그리고 PCD(100) 및 디바이스 에코시스템에 의해 캡쳐된 멀티-모달 데이터로부터의 데이터 분석들을 통해 사람들의 아이덴티티, 활동 패턴들, 선호도들, 및 관심들에 관해 학습할 수 있는 알고리즘들을 포함할 수 있다. PCD는 자신의 니어 또는 파 필드 통신 범위에 진입하는 사람들의 보이스 샘플들을 레코딩할 수 있고, 검출된 사람들의 아이덴티티 및 개인 데이터를 획득하기 위하여 보이스 식별 시스템들을 이용할 수 있다. 추가로, PCD는 BLE 인에이블드 디바이스들의 발견 채널(Discovery Channel)에서 브로드케스팅된 UUID를 검출할 수 있고 디바이스 사용자와 연관된 개인 데이터를 디코딩할 수 있다. PCD는 페이스북, 트위터, 링크드인(LinkedIn) 등 같은 사회적 네트워킹 사이트들로부터 부가적인 개인 정보를 수집하기 위하여, 획득된 아이덴티티 및 개인 데이터를 사용할 수 있다. PCD는 사람들의 구성된 개인 프로파일의 디스플레이와 함께 자신의 니어 또는 파 필드 통신 범위에서 검출된 사람들의 존재 및 아이덴티티를 알릴 수 있다.[0086] According to exemplary and non-limiting embodiments, the intelligence associated with the PCD 100 can be divided into one or more categories that can encode human social code into machines have. In some embodiments, these one or more categories may be the basis of the cognitive-emotive architecture of the PCD. One or more categories may include, but are not limited to, psychosocial cognition, psychosocial learning, psychosocial interaction, psychosocial expression, etc.). The psychosocial cognitive category of intelligence includes whether the PCD 100 is an integrated machine of human social cues (e.g., sight, hearing, touch) to support the natural social interface and far-field interaction of the PCD 100 . The psychosocial learning category is defined by the PCD 100 via the direct interaction and through the data analyzes from the multi-modal data captured by the PCD 100 and the device ecosystem, the identity, activity patterns, preferences, And algorithms that can learn about interests. The PCD can record voice samples of people entering their near or far field coverage and can use voice identification systems to acquire the identity and personal data of the detected persons. In addition, the PCD may detect the broadcast UUID in the Discovery Channel of the BLE enabled devices and may decode the personal data associated with the device user. The PCD may use the acquired identity and personal data to collect additional personal information from social networking sites such as Facebook, Twitter, LinkedIn, and the like. The PCD can display the presence and identity of people detected in their near or far field coverage, along with a display of the personal profile of the people.

[0087] 심리사회적 상호작용 카테고리는, PCD(100)가 태스크들 및 활동들뿐만 아니라, (모든 언어 및 멀티-모달 거동을 통해) 사람들과 신뢰 및 감정적 유대(emotional bond)를 구축하는 라포 형성 스킬들을 지원하기 위하여 예방적 판정 수행 프로세스들을 수행하게 할 수 있다. 지능의 심리사회적 표현 카테고리는, PCD(100)가 스피치, 움직임, 그래픽들, 사운드들 및 조명의 오케스트라를 통해 감정적으로 조화된 페르소나로서 "활기를 띠고", 콘텐츠에 생기를 주고, 그리고 사람들이 관여하도록 자신의 멀티-모달 출력들을 조정하게 할 수 있다. 아키텍처(200)는 멀티-모달 머신 인지 기술들, 스피치 인식, 표현 스피치 합성에 대응하는 모듈들뿐만 아니라, 비용 효율성을 레버리징하는 하드웨어 모듈들(즉, 모바일 디바이스들에 공통인 컴포넌트들)을 포함할 수 있다. 도 1에 예시된 바와 같이, PCD(100) 내에 하나 또는 그 초과의 소프트웨어 서브시스템들이 제공되고 이들 하나 또는 그 초과의 서브시스템들은 아래에서 보다 상세히 설명될 것이다. [0087] The Psycho-Social Interaction category defines the PCD (100) as a skill that builds trust and emotional bonds with people (through all language and multi-modal behavior) as well as tasks and activities To perform proactive decision making processes to support the user. The psychosocial representation category of intelligence is that the PCD 100 is "animated" as an emotionally coordinated persona through speeches, movements, graphics, sound and lighting orchestras, animates content, Modal outputs to adjust their multi-modal outputs. The architecture 200 includes hardware modules (i. E., Components common to mobile devices) that leverage cost effectiveness, as well as modules corresponding to multi-modal machine cognition techniques, speech recognition, can do. As illustrated in FIG. 1, one or more software subsystems are provided in the PCD 100, and one or more of these subsystems will be described in more detail below.

[0088] 심리사회적 인지 [0088] Psychosocial Awareness

[0089] PCD(100)의 심리사회적 인지는 사용자들의 위치를 평가하고, 사용자들의 감정을 캡쳐하고, 사용자들의 아이덴티티와 제스처들을 인식하고, 그리고 사용자들과 상호작용을 유지하기 위하여 사용될 수 있는 보이스 입력, 및 시각적-공간적 인지를 다루기 위하여 사용될 수 있는 청각 인지를 포함할 수 있다. PCD(100)의 청각 인지는 마이크로폰들(202)의 어레이, 하나 또는 그 초과의 신호 프로세싱 기술들(이를테면, 204) 및 자동 스피치 인식 모듈(206)을 사용하여 실현될 수 있다. 추가로, 청각 인지는 상호작용식 소셜 로봇의 고유한 센서리 및 프로세싱 요건들로 모바일 컴퓨팅 에코시스템에 대해 생성된 컴포넌트들 및 기술들을 레버리징함으로써 실현될 수 있다. PCD(100)는 마이크로폰 어레이(202)를 사용하는 스피치를 통한 멀티-모달 파-필드 상호작용 및 신호 프로세싱 모듈(204a)을 사용하는 노이즈 제거 기술뿐만 아니라 자동 스피치 인식 모듈(206) 및 청각 장면 분석을 보조하기 위한 제3자 솔루션들을 지원하기 위한 하드웨어 및 소프트웨어를 포함할 수 있다.Psycho-social perception of the PCD 100 may include a voice input that can be used to assess the location of users, capture emotions of users, recognize their identities and gestures, and maintain interaction with users , And auditory perception that can be used to deal with visual-spatial perception. The auditory perception of the PCD 100 may be realized using an array of microphones 202, one or more signal processing techniques (e.g., 204), and an automatic speech recognition module 206. Additionally, auditory perception can be realized by leveraging the components and techniques created for the mobile computing ecosystem with the unique sensor and processing requirements of the interactive social robot. The PCD 100 includes an automatic speech recognition module 206 and an auditory scene analysis module 204 as well as a noise cancellation technique using a multi-modal wave-field interaction and speech signal processing module 204a using a microphone array 202, Lt; RTI ID = 0.0 > and third party < / RTI >

[0090] PCD(100)는, 사람들이 노이지 환경에서 말하는 바를 듣고 이해하도록 적응되도록 구성될 수 있다. 이것을 수행하기 위하여, 사운드 신호는, 이 사운드 신호가 자동 스피치 인식기(ASR:automatic speech recognizer) 모듈(206)에 전달되기 전에, 신호 프로세싱 모듈(204a)을 통해 전달될 수 있다. 사운드 신호는 ASR의 성공 레이트를 개선시키기 위해, 정적 및 동적 백그라운드 노이즈들, 에코들, 모터들, 및 심지어 다른 사람들이 이야기하는 것으로부터 스피치를 분리하도록 프로세싱된다.[0090] The PCD 100 may be configured to be adapted to listen and understand what people are saying in a noisy environment. To do this, the sound signal may be passed through the signal processing module 204a, before the sound signal is passed to the automatic speech recognizer (ASR) module 206. [ The sound signal is processed to separate the speech from the static and dynamic background noise, echoes, motors, and even others talking to improve the ASR's success rate.

[0091] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 공간 구성에 적어도 4개의 MEMS 마이크로폰들의 어레이를 사용하도록 구성될 수 있다. 추가로, 사운드 도달 시간 기반 알고리즘(본원에서 빔-형성 알고리즘으로 지칭됨)이 특정 방향으로 사운드를 분리하기 위하여 사용될 수 있다. 다수의(예컨대, 모두 6개의) 마이크로폰 신호들, 방향 벡터, 및 마이크로폰들의 배치를 사용하여, 빔-형성 알고리즘은 특정 공간 소스로부터 발생하는 사운드를 분리할 수 있다. 빔-형성 알고리즘은 다수의 빔들을 동시적으로 허용함으로써 사운드의 다수의 소스들에 관한 정보를 제공할 수 있다. 게다가, 스피치-논 스피치(speech-non speech) 검출 알고리즘은 스피치 소스를 식별할 수 있고, 스피커의 공간 로컬화를 제공할 수 있다. 일부 실시예들에서, 빔-형성 정보는, 튜닝 및 배향할 모터 성능뿐만 아니라, 방향을 선정하기 위해 PCD(100)의 비전 및 인식 시스템들과 통합될 수 있다. 예컨대, 3D 센서는 3D 공간에서 사람의 머리의 위치를 검출하는 데 사용될 수 있고, 이에 따라서, 방향은 감지된 위치로부터 발생하는 사운드들을 ASR 모듈(206)에 전달되기 전에 분리할 수 있는 빔-형성 알고리즘에 통신될 수 있다.[0091] According to exemplary, non-limiting embodiments, the PCD 100 may be configured to use an array of at least four MEMS microphones in a spatial configuration. In addition, a sound arrival time based algorithm (referred to herein as a beam-forming algorithm) may be used to separate the sound in a particular direction. Using multiple (e.g., all six) microphone signals, direction vectors, and placement of microphones, the beam-forming algorithm can separate the sound originating from a particular spatial source. A beam-forming algorithm may provide information about multiple sources of sound by simultaneously allowing multiple beams. In addition, a speech-non-speech detection algorithm can identify the speech source and provide spatial localization of the speaker. In some embodiments, the beam-forming information may be integrated with the vision and recognition systems of the PCD 100 to select the orientation as well as the motor performance to tune and orient. For example, the 3D sensor may be used to detect the position of a person's head in 3D space, and accordingly, the direction may be a beam-shaping that can isolate the sounds originating from the sensed position before being delivered to the ASR module 206 Lt; / RTI > algorithm.

[0092] 동작 동안, PCD(100)는 노이즈들을 만들거나 또는 말함으로써 사운드를 생성할 수 있다. 신호 프로세싱 모듈(204a)은 이들 사운드들이 마이크로폰 어레이(202)를 통해 ASR 모듈(206)로 피드백되는 것을 방지하도록 구성될 수 있다. 스피커 노이즈를 제거하기 위해, 신호 프로세싱 모듈(204a)은 마이크로폰에 의해 수신되고 있는 신호로부터 스피커로 피딩되고 있는 신호를 차감하는 알고리즘들을 사용할 수 있다. 고조파-풍부 모터 노이즈를 감소시키기 위해, PCD(100)는 신호 프로세싱 기술들 및 기계적 접근법을 구현하도록 구성될 수 있다. [0092] During operation, the PCD 100 may generate sound by making or speaking noises. The signal processing module 204a may be configured to prevent these sounds from being fed back to the ASR module 206 through the microphone array 202. [ To remove speaker noise, the signal processing module 204a may use algorithms that subtract the signal being fed to the speaker from the signal being received by the microphone. To reduce harmonic-rich motor noise, the PCD 100 may be configured to implement signal processing techniques and mechanical approaches.

[0093] 일부 실시예들에서, PCD(100)는 모터의 상이한 부분들로부터 생성되는 노이즈를 처리하기 위해 모터의 이러한 포트들을 모니터할 수 있다. 일 예에서, PCD(100)는 휠링(whirring) 사운드의 형태인 아마추어(armature) 베어링에 의해 산출될 수 있는 고주파수들을 흡수할 수 있는 탄성 중합체(elastomeric) 재료에 모터를 장착하도록 구성될 수 있다. 모터는, 모터가 고속으로 회전할 때에만 현저한 히싱(hissing) 사운드를 산출할 수 있는 브러쉬들을 포함할 수 있다. 이에 따라서, PCD(100)는 히싱 사운드를 방지하기 위해 비교적 저속으로 애니메이션 및 움직임을 나타낸다. 부가적으로, PCD(100)는 낮은 기어비(gear ratio)를 구현하도록 구성될 수 있고, 추가로 히싱 사운드를 방지하기 위해 모터의 스피드를 감소시킬 수 있다. 통상적으로, 호비스트 서보들(hobbyist servos)에서 발견되는 것들과 같은 저품질의 PWM 드라이브들은 고주파음(high-pitched whine)을 산출할 수 있다. PCD(100)는 모터 노이즈의 이러한 부분을 제거하기 위해, 양호한 품질의 PWM 드라이브들로 구성될 수 있다. 일반적으로, 모터의 기어들은 낮게 피칭된 그라인딩(grinding) 사운드―이는 모터 노이즈의 대부분을 차지함―를 유발할 수 있다. 최종 기어 드라이브는 드라이브 트레인(drive train)에서 가장 많은 토크를 지닐 수 있으며, 결국 대부분 노이즈의 소스이다. PCD(100)는 노이즈의 이러한 소스를 최소화하기 위해 최종 기어 드라이브를 마찰 구동(friction drive)으로 교체하도록 구성될 수 있다. 또한, PCD(100)는 모터에 의해 생성된 노이즈를 감소시키기 위해 신호 프로세싱 기법들을 사용하도록 구성될 수 있다. 일 실시예에서, 마이크로폰은, 메인 마이크로폰 어레이(202)에서 신호들로부터 노이즈 신호가 차감될 수 있도록 각각의 모터 옆에 배치될 수 있다. [0093] In some embodiments, the PCD 100 may monitor these ports of the motor to handle noise generated from different portions of the motor. In one example, the PCD 100 may be configured to mount the motor in an elastomeric material capable of absorbing high frequencies that can be calculated by an armature bearing in the form of a whirring sound. The motor may include brushes capable of producing a pronounced hissing sound only when the motor is rotating at high speed. Accordingly, the PCD 100 exhibits animation and motion at relatively low speeds to prevent hissing sound. Additionally, the PCD 100 may be configured to implement a low gear ratio and may further reduce the speed of the motor to prevent hissing sound. Typically, low-quality PWM drives, such as those found in hobbyist servos, can yield high-pitched whine. PCD 100 may be configured with good quality PWM drives to remove this portion of motor noise. Generally, the gears of the motor can cause a low-pitched grinding sound, which accounts for most of the motor noise. The final gear drive can have the most torque in the drive train, and is ultimately the source of most noise. The PCD 100 may be configured to replace the final gear drive with a friction drive to minimize this source of noise. The PCD 100 may also be configured to use signal processing techniques to reduce noise generated by the motor. In one embodiment, the microphone can be positioned next to each motor so that the noise signal from the signals in the main microphone array 202 can be subtracted.

[0094] PCD(100)의 오디오 파이프라인의 출력은 클린-업된(cleaned-up) 오디오 소스를 ASR 모듈(206)로 피딩할 수 있고, 이는 예컨대, ASR의 n개의 최상(n-best) 아웃풋 또는 단어-격자들(word-lattices)을 사용하여, 스피치를 텍스트로 그리고 가능하게는 의미있는 신뢰성 레벨들로 강화된 대안적인 경쟁 단어 가설들(competing word hypotheses)로 변환시킬 수 있다. 그런 다음, 스피치(단어들)의 텍스추얼 표현은 사용자의 의도 및 사용자가 제공한 정보를 "이해"하기 위해 파싱될 수 있고, 결국 기호적인 표현(의미)으로 변환된다. ASR 모듈(206)은 정상 볼륨으로 그리고 통상적인 대인관계 통신 거리에 대응하는 거리에서 사용자들로부터의 스피치를 인식할 수 있다. 일 예에서, 거리는 주위의 노이즈 및 스피치 품질을 포함하는 다수의 환경 속성들에 의존하여 거의 5-6 피트(feet) 또는 그 이상일 수 있다. 일 예에서, 스피치 인식 범위는 통상적인 12 피트 ×15 피트 룸(room)의 면적을 커버할 것이다. ASR 모듈(206)로 피딩되는 신호는 마이크로폰 어레이 빔-형성 알고리즘의 결과일 것이고, 스피커 주위의 약 +/- 30도의 음향 각도에서 발생할 수 있다. 비교적 좁은 음향 각도는, 열악한 스피치 인식 정확도의 주요 원인인 백그라운드 주변 노이즈 및 반향의 일부가 활발히 감소하게 허용할 수 있다. 예컨대, 스피커가 마이크로폰들로부터 너무 멀거나, 스피커가 너무 조용히 말하는 것으로 인해, 스피치 신호가 너무 낮은 시나리오에서, PCD(100)는 예방적으로 (예컨대, 3D 센서에 의해 결정된 스피커의 거리가 이용가능한 경우) 스피커가 더 근접하도록 요청하거나, 더 크게 말하도록 요청하거나 또는 이 둘 모두를 요청한다. 일부 실시예들에서, PCD(100)는 문법들 및 통계적 언어 모델(SLM:statistical language model)들로 많은 어휘 인식을 지원할 수 있는 실시간 임베딩된 ASR 솔루션을 사용하도록 구성될 수 있다. 추가로, 음향 ASR 모델들은 스피치 인식 레이트들을 개선시키기 위해 음향 리그(rig)로부터의 데이터를 사용하여 트레이닝 및/또는 튜닝될 수 있다. [0094] The output of the audio pipeline of the PCD 100 may feed the cleaned-up audio source to the ASR module 206, which may include, for example, an n-best output of ASR Or word-lattices, the speech can be transformed into text and possibly enhanced competing word hypotheses with meaningful confidence levels. The textual representation of the speech (words) can then be parsed to " understand " the user's intention and the information provided by the user, and eventually converted into a symbolic representation (meaning). ASR module 206 may recognize speech from users at normal volumes and at distances corresponding to typical interpersonal communication distances. In one example, the distance may be approximately 5-6 feet or more, depending on a number of environmental attributes including ambient noise and speech quality. In one example, the speech recognition range will cover an area of typically 12 feet by 15 feet of room. The signal fed to the ASR module 206 will be the result of a microphone array beam-forming algorithm and may occur at an acoustic angle of about +/- 30 degrees around the speaker. A relatively narrow acoustic angle may allow for active reduction of some of the background ambient noise and reverberations, which are the main causes of poor speech recognition accuracy. For example, in a scenario where the speaker is too far from the microphones or because the speaker is talking too quiet, the PCD 100 may proactively (e.g., when the distance of the speaker determined by the 3D sensor is available ) Ask the loudspeaker to come closer, or ask to speak louder, or both. In some embodiments, the PCD 100 may be configured to use a real-time embedded ASR solution capable of supporting a large number of lexical awareness with grammars and statistical language models (SLM). Additionally, acoustic ASR models can be trained and / or tuned using data from an acoustic rig to improve speech recognition rates.

[0095] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 PCD(100)의 상호작용 시스템과 ASR 모듈(206) 간에 삽입될 수 있는 자연 언어 프로세싱 계층을 포함하도록 구성될 수 있다. 자연 언어 프로세싱 계층은 ASR에 의해 생성된 텍스트를 취해서 그 텍스트에 의미를 할당할 수 있는 자연 언어 이해(NLU:natural language understanding) 모듈을 포함할 수 있다. 일부 실시예들에서, NLU 모듈은 포맷들, 이를테면 위에서 언급된 임베딩된 스피치 인식기들에 의해 지원될 수 있는 증강된 BNF(backus-naur form) 표시, JSGF(java speech grammar format) 또는 SRGF(speech recognition grammar format)에 적응되도록 구성될 수 있다. 점점 더 많은 사용자 발화들이 수집됨에 따라, PCD(100)는 전통적인 문법들을, 더 높은 스피치 인식 및 이해 성능을 제공할 수 있는 통계적 문법들로 점진적으로 변환할 수 있고, 자동 데이터-주도(data-driven) 적응을 허용할 수 있다.[0095] According to exemplary and non-limiting embodiments, the PCD 100 may be configured to include a natural language processing layer that may be inserted between the interaction system of the PCD 100 and the ASR module 206 . The natural language processing layer may include a natural language understanding (NLU) module that can take the text generated by the ASR and assign meaning to the text. In some embodiments, the NLU module includes an enhanced a backus-naur form (BNF) representation, a Java speech grammar format (JSGF), or a speech recognition (SRGF) that can be supported by the above- grammar format). As more and more user utterances are collected, the PCD 100 can gradually transform traditional grammars into statistical grammars that can provide higher speech recognition and comprehension performance, ) Adaptation.

[0096] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는, 각각의 상호작용 태스크에 대한 멀티모달 다이얼로그 시스템 사용자 인터페이스 설계 원리들을 사용하여 (PCD(100)의 브레인에 대해 채택된 태스크 네트워크 표현에 기반하여) 구조화된 상호작용 흐름을 설계하도록 구성될 수 있다. 상호작용 흐름은 멀티모달 입력들(예컨대, 보이스 및 터치)을 순차적으로(예컨대, 한 번에 하나의 입력) 또는 동시에(예컨대, 입력들이 이들이 수신된 순서로 독립적으로 프로세싱될 수 있음) 수신되도록 그리고 멀티모달 출력들(예컨대, 보이스 프롬프트들, PCD의 움직임들, 디스플레이 아이콘들 및 텍스트)을 생성하도록 설계될 수 있다. 제한이 아닌 예로서, PCD(100)는 예/아니오 질문을 요청할 수 있으며, PCD(100)의 아이(eye)는 하나 또는 그 초과의 터치 센서들에 의해 선택될 수 있는 예/아니오 아이콘들을 가진 물음표 형상으로 모핑될 수 있다. 일 실시예에서, PCD(100)는 의도(예컨대, Hey! Let's take a picture!)를 표현할 수 있는 자연 언어 상호작용들을 프로세싱하도록 적응될 수 있다. 일 실시예에서, 상호작용들은 "지시 다이얼로그(directed dialog)" 방식으로 후속될 수 있다. 예컨대, 사진을 찍을 의도가 식별된 후에, PCD(100)는 방금 무엇을 들었는지 또는 추가의 정보를 위해 무엇을 요청하는지를 확인하기 위해, 지시된 질문들을 요청할 수 있다(예컨대, Do you want me to take a picture of you?).   [0096] According to exemplary and non-limiting embodiments, the PCD 100 may use the multimodal dialog system user interface design principles for each interactive task (E.g., based on a task network representation). The interaction flow may be such that the multimodal inputs (e. G., Voice and touch) are received sequentially (e. G., One input at a time) or simultaneously (e. G., Inputs can be processed independently in the order in which they are received) Modal outputs (e.g., voice prompts, movements of the PCD, display icons and text). By way of example, and not limitation, the PCD 100 may request a Yes / No question, and the eye of the PCD 100 may have a Yes / No icon that can be selected by one or more touch sensors And may be morph into a question mark shape. In one embodiment, the PCD 100 may be adapted to process natural language interactions that may represent intent (e.g., Hey! Let's take a picture!). In one embodiment, the interactions may be followed in a " directed dialog " manner. For example, after the intention to take a picture is identified, the PCD 100 may ask for the indicated questions to confirm what it has just heard or what to ask for additional information (e.g., Do you want me to take a picture of you?).

[0097] 시각적-공간적 인지(Visual-Spatial Perception) [0097] Visual-Spatial Perception

[0098] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 2D 비전, 3D 비전 또는 감지 모션 또는 컬러를 수신하기 위해, 하나 또는 그 초과의 시각적-공간적 인지 센서들, 이를테면, RGB 카메라(212), 깊이 카메라(214) 및 다른 센서들을 사용하도록 구성될 수 있다. PCD(100)는 주위 환경에 있는 사용자의 감정 인지를 획득하도록 구성될 수 있다. 예컨대, PCD(100)는 각각의 사람의 표현된 감정 상태를 검출할 수 있다. PCD(100)는 사용자들 및 환경의 순간 순간의 물리적 상태를 추적하기 위해 시각적-공간적 인지 서브시스템을 포함할 수 있다. 이러한 서브시스템은 LPS(Local Perceptual Space)(208)로 불리는, 동적으로 업데이트되고 공유된 데이터 구조로서 다른 내부 소프트웨어 모듈에 사용자들의 현재 상태 추정을 제공할 수 있다. LPS는 PCD(100)의 현재 위치 상에 중심을 둔 단일의 3D 좌표계에서 다수의 센서리 입력 스트림들을 결합함으로써 구축될 수 있는 한편, 센서들은 자신의 움직임들을 설명할 수 있는 운동학적 변환들을 사용하여 3D에 등록될 수 있다. 일 실시예에서, LPS(208)는, 각각이 세부의 더 고레벨들로 진행하는 다수의 정보 '레벨들'을 유지하도록 설계될 수 있고, 프로세싱 및 핵심 센서 입력들을 요구할 수 있다. LPS(208) 레벨들은 하기의 것들을 포함할 수 있다:[0098] According to exemplary, non-limiting embodiments, the PCD 100 may include one or more visuospatial aware sensors, such as RGB (red, green, blue, Camera 212, depth camera 214, and other sensors. The PCD 100 may be configured to obtain the emotional perception of the user in the environment. For example, the PCD 100 may detect the emotional state represented by each person. The PCD 100 may include a visual-spatial awareness subsystem to track the physical state of the moment and moments of the users and environment. This subsystem can provide users' current state estimates to other internal software modules as a dynamically updated and shared data structure, called Local Perceptual Space (LPS) The LPS can be constructed by combining multiple sensor input streams in a single 3D coordinate system centered on the current position of the PCD 100 while the sensors use kinematic transformations that can describe their movements It can be registered in 3D. In one embodiment, the LPS 208 may be designed to maintain multiple information 'levels', each of which proceeds to higher levels of detail, and may require processing and key sensor inputs. The LPS 208 levels may include the following:

[0099] 사람 검출: 이 레벨은 인근 주변에 있는 사람들을 검출할 수 있다. 예컨대, PCD(100)는 센서들을 사용하여 인근의 사람들의 수를 계산할 수 있다. 일 실시예에서, 시스템에서 시각적 모션 큐가 PCD(100)를 배향하는 데 사용될 수 있다. 추가로, 시스템이 저전력 '슬립(sleep)' 상태에 있을 수 있지만 룸에 들어오는 누군가에게 대해 또한 응답할 수 있도록, 마이크로컨트롤러에 대한 웨이크 업을 구현하기 위해 PIR(pyroelectric infra red) 감지 및 간단한 마이크로폰 출력이 통합될 수 있다. 이는 사람들의 존재를 검출하기 위해 시각적 모션 큐들 및 컬러 세그멘테이션 모델들과 결합될 수 있다. 검출은 LPS(208)와 통합될 수 있다.[0099] Human Detection: This level can detect people in the vicinity. For example, the PCD 100 may use the sensors to calculate the number of people nearby. In one embodiment, a visual motion queue in the system may be used to orient the PCD 100. In addition, a pyroelectric infra red (PIR) detection and simple microphone output to implement a wake-up to the microcontroller, so that the system can also be in a low-power 'sleep' Can be integrated. This can be combined with visual motion cues and color segmentation models to detect the presence of people. Detection may be integrated with the LPS 208.

[00100] 사람 추적: PCD(100)는 사람을 3D로 로케이팅하고, 이에 따라서, 비전, 깊이, 모션, 사운드, 컬러, 특징들 및 액티브한 움직임과 같이, 센서들을 사용하여 사람의 궤적(trajectory)을 결정하도록 구성될 수 있다. 예컨대, 시각적 모션 검출 및 3D 사람 검출의 결합은 사용자(특히 사용자의 머리/얼굴)를 로케이팅하는 데 사용될 수 있다. 추가로, LPS(208)는 폐색(occlusion)들 및 동시에 더 많은 사람들을 다루기 위해 시간적 모델들 및 다른 입력들을 포함하도록 적응될 수 있다. 모션 및 3D 큐들 외에도, 시스템은 백그라운드로부터 사용자들의 얼굴 및 손들을 적응적으로 분리하기 위해 이미지들로부터 컬러 세그멘테이션 모델(Naive Bayes) 온라인을 (움직이는 영역들 및 3D로부터) 학습할 수 있으며, 다수의 입력들의 결과들을 LPS(208)의 공간적 및 시간적 필터링과 결합하여 시스템에 대한 견고한 사람 위치 검출을 제공할 수 있다.Human Tracking: The PCD 100 locates a person in 3D and uses the sensors to determine the trajectory of a person, such as vision, depth, motion, sound, color, . ≪ / RTI > For example, the combination of visual motion detection and 3D person detection can be used to locate a user (especially a user's head / face). Additionally, the LPS 208 may be adapted to include temporal models and other inputs to handle occlusions and more people at the same time. In addition to motion and 3D cues, the system can learn from the images Naive Bayes Online (from moving areas and 3D) to adaptively separate users' faces and hands from the background, May be combined with the spatial and temporal filtering of the LPS 208 to provide robust human location detection for the system.

[00101] 사람 식별: PCD(100)는 비전 센서들, 청각 센서들 또는 사람 ID를 위한 터치 입력들을 사용하여 알려진 그리고 알려지지 않은 사람을 식별할 수 있다. 일 예에서, 하나 또는 그 초과의 오픈 소스 OpenCV 라이브러리들이 얼굴 식별 모듈에 사용될 수 있다. 게다가, 사람 추적 정보 및 모션 검출이 결합되어 얼굴 검출을 위한 후보들인 이미지 영역들의 제한된 세트를 식별할 수 있다. [00101] Human Identification: The PCD 100 can identify known and unknown persons using vision sensors, auditory sensors, or touch inputs for human ID. In one example, one or more open source OpenCV libraries may be used in the face identification module. In addition, the human tracking information and motion detection may be combined to identify a limited set of image regions that are candidates for face detection.

[00102] 포즈/제스처 추적: PCD(100)는 시각적 분류(예컨대, 얼굴, 바디 포즈, 스켈레톤(skeleton) 추적 등) 또는 터치 맵핑(touch mapping)을 사용하여 각각의 사람의 포즈 또는 자세(posture)를 식별할 수 있다. 일 실시예에서, 3D 데이터 세트들을 사용하여, 이러한 특징를 PCD(100)의 센서 양식들(modalities)과 결합시킬(incorporate) 수 있다. 일 예에서, 오픈 소스 제스처 인식 툴키트(open source gesture recognition toolkit)가, 시각적 및 3D 시각적 특징 추적에 기반하여 커스텀(custom) 제스처 인식을 가속화하기 위해 채택될 수 있다. Pose / Gesture Tracking: The PCD 100 is capable of tracking each person's pose or posture using visual classification (eg, face, body pose, skeleton tracking, etc.) or touch mapping. Can be identified. In one embodiment, 3D data sets may be used to incorporate this feature with the sensor modalities of the PCD 100. In one example, an open source gesture recognition toolkit may be employed to accelerate custom gesture recognition based on visual and 3D visual feature tracking.

[00103] 관심 집중: PCD(100)는 집중 영역(focus area)을 결정하도록 구성될 수 있으며, 그에 따라, PCD(100)는 결정된 집중 영역을 지시하거나(pointing) 룩 앳할 수 있다. 관심 집중을 위해, 다양한 센서들이 위치들/방향들의 세트들에 결합될 수 있다. 예컨대, 사람의 추정된 위치는 LPS(208)에 관심 집중 위치들의 세트를 생성할 수 있다. 이들은, 주어진 위치에 대한 관심 추진의 신뢰성과 함께, 사람의 추정들을 위한 최대 가능성 위치들일 수 있다. 집중 포인트들 및 방향들의 세트는 신뢰성에 의해 레이팅되고(rated), 다른 모듈들에 의해 사용하기 위한 LPS(208) 데이터의 전체적인 서머리가 생성된다. PCD(100)는 이러한 집중 포인트들 및 방향들을 사용하여 응시 타겟들(gaze targets)을 선택하여, 사용자들을 직접적으로 어드레싱하고 그리고 다수의 사용자들 사이에서 끊김없이(seamlessly) "자신의 응시를 플립핑(flip its gaze)"할 수 있다. 부가적으로, 이는 PCD(100) 로봇으로 하여금 근처의 사용자들의 존재를 확인하도록 더 낮은-신뢰성 위치들을 룩 앳하도록 허용한다. [00103] Concentration of Interest: The PCD 100 may be configured to determine a focus area, whereby the PCD 100 may point to a determined focused area. For attention-grabbing, various sensors may be coupled to the sets of positions / directions. For example, a person's estimated location may generate a set of locations of interest in the LPS 208. [ These may be the maximum likelihood locations for human estimates, along with the reliability of the propulsion of interest to a given location. The set of concentration points and directions are rated by reliability and a global summary of the LPS 208 data for use by other modules is generated. PCD 100 may use these concentration points and orientations to select gaze targets to directly address users and to seamlessly " seamlessly " (flip its gaze). Additionally, this allows the PCD 100 robot to look up lower-trusted locations to confirm the presence of nearby users.

[00104] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는 시스템에 활성 추정을 포함하도록 구성될 수 있거나, 또는 보이스 프로소디(voice prosody)로부터의 감정 상태의 추정뿐만 아니라 음성 입력에 의한 추적 및 식별을 위한 더 많은 센서 양식들을 포함할 수 있다. LPS(208)는, 프로세싱되는 입력 특징들에 대해 그리드-기반 입자 필터 모델들을 사용하여 다수의 입력들로부터의 데이터를 결합할 수 있다. 입자 필터들은, PCD의 파트 상에서의 추가의 센싱 및 액션들에 의해 해결되어야 하는 상당한 불확실성이 있을 때 다수의 가설 케이스들에 대한 표현 뿐만 아니라, 사용자들의 물리적인 상태의 강력한 온-라인 추정에 대한 지원을 제공할 수 있다. 또한, 입자 필터링 기법들은, 당연히, 결합 분포(joint distribution)의 명시적인 폐쇄 형태 모델(closed form model)을 필요로 하지 않으면서, 센서리 입력들과 관련 속성들의 혼합이, 물리적으로 측정가능한 사용자 상태의 단일의 확률론적 모델(probabilistic model) 내로 결합될 수 있도록 허용한다. 또한, 그리드 기반 입자 필터들은, 단일 좌표(coordinate) 시스템에서 3D (스테레오) 및 2D(영상(vision)) 감지의 입력들을 융합시키고(fuse), 그리고 임의의 주어진 시간에 단지 하나의 오브젝트에 의해서만 공간이 점유될 수 있다는 제약을 실시하는 것을 도울 수 있다. [00104] According to exemplary, non-limiting embodiments, the PCD 100 may be configured to include an activity estimate in the system, or may be configured to estimate an emotional state from a voice prosody, And more sensor forms for tracking and identification by the user. The LPS 208 may combine data from multiple inputs using grid-based particle filter models for the input features to be processed. Particle filters provide support for robust on-line estimation of users' physical state as well as representation of multiple hypothesis cases when there is considerable uncertainty to be addressed by additional sensing and actions on the part of the PCD Can be provided. In addition, particle filtering techniques, of course, do not require an explicit closed form model of joint distribution, so that a mixture of sensor inputs and associated attributes can be used as a physically measurable user state Lt; RTI ID = 0.0 > probabilistic < / RTI > In addition, grid-based particle filters can be used to fuse the inputs of 3D (stereo) and 2D (vision) sensing in a single coordinate system, Can be enforced. ≪ / RTI >

[00105] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는 휴리스틱(heuristic) 제안 분포들 및 휴리스틱 트랜지션 모델들을 포함하도록 구성될 수 있으며, 이들은, PCD(100)가 이들을 직접적으로 보고있지 않을 때에도 시간에 걸쳐서 모델 사용자 상태를 캡쳐하는 것을 도울 수 있다. 이는, PCD(100)에 의한 언어적 및 비언어적 큐들(cues)을 사용하는 다자 대화들을 취하는 내츄럴 턴(natural turn)을 가능하게 하며, 입자 필터링 프레임워크 내에서 용이하게 맞춰질(fit) 수 있다. 결과적으로, 이는 원칙에 입각한(principled) 방식으로, 강건한 통계적 추정과 인간-중심 휴리스틱을 결합하는 것을 허용할 수 있다. 또한, LPS(208)는 반복된 상호작용으로부터 사전 확률 분포들(prior probability distributions)을 학습(learn)할 수 있고, 복도들, 문(door)들 및 카운터들 주위로부터 사람이 나올 수 있는, 공간에서의 '핫 스폿들(hot spots)'에 대해 적응시킬 것이며, 사용자들에 대한 가장 적절한 위치들을 자동적으로 타켓팅(target)하기 위해 이러한 공간적 정보를 이용할 수 있다. 저-레벨 이미지 및 신호 프로세싱 코드는 커스터마이징될 수 있으며, 퀄리티 오픈 소스 툴들, 이를 테면 OpenCV, IVT(integrating vision toolkit), 일반적 수치 프로세싱(general numerical processing)을 위한 아이겐(Eigen) 및 프로세서-특정의 최적화 라이브러리들에 기초할 수 있다. [00105] According to illustrative, non-limiting embodiments, the PCD 100 may be configured to include heuristic suggested distributions and heuristic transition models, which may be used by the PCD 100 to directly And can help capture model user state over time even when not in use. This enables a natural turn to take multilateral conversations using linguistic and non-linguistic cues by the PCD 100, and can easily fit within the particle filtering framework. As a result, this may allow combining a robust statistical estimate with a human-centered heuristic in a principled manner. In addition, the LPS 208 may learn prior probability distributions from repeated interactions, and may be able to learn from the space (s) in which people may come from around the corridors, Quot; hot spots " at < / RTI > the user, and may use this spatial information to automatically target the most appropriate locations for users. Low-level image and signal processing code can be customized and can be customized and optimized for quality open source tools such as OpenCV, the integrating vision toolkit (IVT), Eigen for general numerical processing and processor- May be based on libraries.

[00106] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는, 비디오 스트림으로부터, 이를 테면, 기쁨, 화남, 경멸, 혐오, 공포, 슬픔, 혼란, 좌절 및 놀람과 같은 다양한 레벨들의 감정들을 인식하도록 구성될 수 있다. 일 실시예에서, PCD(100)는 머리 포지션(head position), 성별, 나이, 및 어떤 사람(someone)이 안경을 쓰고 있는지의 여부, 얼굴의 털을 가지고 있는지의 여부 등을 결정하도록 구성될 수 있다. According to exemplary and non-limiting embodiments, the PCD 100 may be adapted to receive various levels of information from a video stream, such as joy, anger, disdain, disgust, fear, sadness, confusion, frustration, Can be configured to recognize emotions. In one embodiment, the PCD 100 may be configured to determine the head position, sex, age, and whether someone is wearing glasses, whether or not they have facial hair, and the like have.

[00107] 예시적이며 비제한적인 실시예들에 따르면, 오디오 입력 시스템은 사용자에 집중된다. 일부 실시예들에서, PCD(100)는, 예컨대, 관심 방향들의 추정되는 3D 포커스(focus), 운동학(kinematics), 및 로봇 이동에 따라 오디오 빔-형성 기능(audio beam-forming function)의 방향을 실시간으로 업데이트하도록 구성될 수 있다. 이는 PCD(100)로 하여금, 적절하고 액티브한 오디오 입력이 존재하는 경우 특정의 '섹터들'을 선택적으로 청취할 수 있게 할 수 있다. 이는, 풀(full) 3D 사람 감지 및 관심 집중과의 통합을 통해 ASR 및 NLU 기능들의 신뢰도를 증가시킬 수 있다. [00107] According to exemplary, non-limiting embodiments, the audio input system is user-centric. In some embodiments, the PCD 100 may determine the orientation of the audio beam-forming function according to, for example, the estimated 3D focus of the directions of interest, kinematics, and robot motion And can be configured to update in real time. This may allow the PCD 100 to selectively listen to certain " sectors " when appropriate and active audio input is present. This can increase the reliability of ASR and NLU functions through integration with full 3D person detection and focus.

[00108] 공간적 확률 학습 [00108] Spatial probability learning

[00109] 예시적이며 비제한적인 실시예들에 따르면, 공간적 확률 학습 기법들은, 사용자들이 자신의 존재를 입력할 때 PCD(100)가 보다 완만하게 관여하는 것을 돕는 데에 사용될 수 있다. 시간이 지남에 따라, PCD(100)는 도착의 시퀀스들 및 사용자들의 공동 존재를 기억하고, 주어진 룸(room)에 대해 이러한 통계들을 누적할 수 있다. 이는, 룸 엔트리(room entry) 상의 사용자들에 대한 관여 룰들을 예측할 수 있는 능력을 PCD(100)에게 제공할 수 있으며, 그에 의해, PCD(100)로 하여금, 주어진 시간 기간 동안 섹터를 터닝(turn)하고, 심지어 룸 점유자들(occupants)을 추측할 수 있게 할 수 있다. 예컨대, 이러한 특징은, 룸에 들어오는 어떤 사람을 PCD(100)가 완전히 식별하기 전에, "Hey, Billy is that you?"와 같은 상호작용들을 지원하도록 제한된 예측들을 사용할 수 있는 능력을 PCD(100)에게 제공할 수 있다. PCD(100)는 가장 가능성있는 공간적 방향으로 터닝하여(turning), 결과적으로, 동시에 그날 그 시간에 어떤 사람을 보게 된다. [00109] According to illustrative, non-limiting embodiments, spatio-temporal probability learning techniques can be used to help PCD 100 more smoothly engage users as they enter their presence. Over time, the PCD 100 may remember the sequences of arrivals and the co-existence of users and may accumulate these statistics for a given room. This can provide the PCD 100 with the ability to predict engagement rules for users on a room entry, thereby allowing the PCD 100 to rotate the sector for a given time period ), And can even make room estimates of occupants. For example, this feature allows the PCD 100 to have the ability to use limited predictions to support interactions such as " Hey, Billy is that you? &Quot; before the PCD 100 completely identifies a person entering the room. . The PCD 100 turns in the most likely spatial direction and consequently sees someone at that time on the same day.

[00110] 심리사회적 상호작용 [00110] Psycho-social interaction

[00111] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는 완전히 자율적이고 인공적 캐릭터일 수 있다. PCD(100)는 감정들을 가질 수 있고, (사용자 입력에 기반하여) 그 자신의 목표들을 선택할 수 있고, 사용자들을 행복하고 건강하게 유지하기 위해 그러한 목표들을 달성하도록 폐쇄 루프 실시간 제어 시스템을 실행시킬 수 있다. 심리사회적 상호작용 모듈(PSIM)은, 센서들의 출력들을 프로세싱할 수 있으며 그리고 출력들 및 표현들에 대한 액션들을 선택할 수 있는, 폐쇄 루프 이산 시간 제어 시스템의 최상위 계층(top layer)이다. 다양한 지원 프로세스들이 CPU 상에서 동시에 진행될 수 있고, 센서리 입력들이 결정-수행 모듈(decision-making module)에 비동기식으로 전달될 수 있다. "틱(tick)"은 결정 사이클이며, 이러한 결정 사이클에서는, 누적된 센서 정보, 현재의 단기간(short-term) 메모리/지식 및 PCD(100)의 태스크-구동된 의도적 상태(task-driven, intentional state)가 결합되어, 새로운 액션들 및 표현들을 선택할 수 있다. [00111] According to exemplary, non-limiting embodiments, the PCD 100 may be a fully autonomous and artificial character. The PCD 100 can have emotions, select its own goals (based on user input), and execute a closed-loop real-time control system to achieve those goals to keep the users happy and healthy have. The Psycho-Social Interaction Module (PSIM) is the top layer of a closed-loop discrete-time control system that can process outputs of sensors and select actions for outputs and representations. Various support processes can be run simultaneously on the CPU, and sensor inputs can be delivered asynchronously to a decision-making module. The "tick" is a decision cycle in which the accumulated sensor information, the current short-term memory / knowledge, and the task-driven intentional state of the PCD 100 state may be combined to select new actions and representations.

[00112] 도 3a는 예시적이며 비제한적인 실시예들에 따른 PSIM(300)의 아키텍쳐를 도시한다. PSIM(300)의 코어는, 다른 엘리먼트들의 동작을 조정하는(orchestrating) 실행부(302)이다. 실행부(302)는 PCD(100)의 브레인의 주기적인 업데이트를 담당한다. PSIM(300)의 각각의 "틱"은, 다음의 방식으로 심리사회적 표현 모듈에 새로운 커맨드들을 발행하는(issuing) 것을 지향하는(move toward) 프로세싱 단계들의 세트를 포함할 수 있다.[00112] FIG. 3A illustrates an architecture of PSIM 300 in accordance with exemplary, non-limiting embodiments. The core of the PSIM 300 is an execution unit 302 that orchestrates the operation of other elements. The execution unit 302 is responsible for the periodic update of the brain of the PCD 100. Each " tick " of the PSIM 300 may include a set of processing steps to move to issue new commands to the psychosocial presentation module in the following manner.

[00113] 내부 업데이트: [00113] Internal Update:

a. 감정 업데이트 a. Update your feelings

b. 목표 선택. b. Select goals.

[00114] 입력 처리:[00114] Input Processing:

a. 심리사회적 인지(304)로부터의 비동기적인 입력들은 샘플링되고, 결정 모듈의 블랙 보드(306) 내로 업데이트된다. a. Asynchronous inputs from psychosocial recognition 304 are sampled and updated into the decision board's blackboard 306.

b. 입력은, 사람 위치들, 얼굴 ID 샘플들과 같은 정보를 포함할 수 있고, 분석된(parsed) NLU 발언들은 다양한 사용자들을 형성한다. b. The input may include information such as human locations, face ID samples, and parsed NLU remarks form various users.

c. 블랙 보드(306)로서 업데이트될 필요가 있는 새로운 정보만이 캐시처럼 작동할 수 있다. c. Only new information that needs to be updated as blackboard 306 can act like a cache.

d. 또한, 현재의 태스크들과 관련된 정보가 캡쳐될 필요가 있다. d. In addition, information related to current tasks needs to be captured.

[00115] 질의 처리: [00115] Query Processing:

a. 임의의 지식 질의 동작들로부터의 결과들은 심리사회적 지식 베이스(308)로부터 블랙 보드(306) 내로 샘플링된다. a. The results from any knowledge query operations are sampled from the psychosocial knowledge base 308 into the blackboard 306.

b. 이는 현재의 결정들에서 사용하기 위한 질의 동작들의 연기된(deferred) 프로세싱의 결과들을 수집할 수 있다. b. This may collect the results of deferred processing of query operations for use in current decisions.

[00116] 작업 네트워크(310): 씽크/업데이트(Think/Update)[00116] Work network 310: Think / Update

a. 실행부(302)는 태스크 네트워크(310)의 "씽크" 동작을 실행할 수 있으며, 임의의 필요한 액션들 및 결정들이 각 레벨에서 행해진다. 태스크 네트워크(310) 내의 액티브 노드들의 세트가 이러한 프로세스 동안 업데이트될 수 있다. a. Execution unit 302 may perform a " sync " operation of task network 310, and any necessary actions and decisions are made at each level. A set of active nodes in the task network 310 may be updated during this process.

b. 태스크 네트워크(310)는, 로봇들 상호작용을 위한 계층 제어기(hierarchical controller)로서의 역할을 하는 상태 머신 기반 로직(state machine based logic)의 플렉시블 형태(flexible form)이다. b. The task network 310 is a flexible form of state machine based logic that acts as a hierarchical controller for robots interaction.

[00117] 출력 처리: [00117] Output Processing:

a. 특정 블랙 보드(306) 프레임들 내로 로딩된 출력들은 심리사회적 표현 모듈(312)로 전달된다. a. The outputs loaded into the particular blackboard 306 frames are passed to the psychosocial presentation module 312.

[00118] 예시적이며 비제한적인 실시예들에 따르면, 실행부(302)는 또한 태스크 네트워크(310)에서 태스크들의 비동기적인 디스패치의 중요한 서비스를 제공할 수 있다. 네트워크(310)에서의 임의의 태스크는 임의의 계산 집약적인 작업을 수행하도록 비동기적인 디스패치에 요청함으로써 동시적 백그라운드 쓰레드들에 대한 계산을 미루는 것이 가능할 수 있다. 이 특징은 태스크 네트워크(310)가 헤비급 계산 그리고 느리거나 심지어 네트워크 I/O를 차단하는 것과 같은 것들을, 결정 사이클을 "차단"하거나 PCD(100)의 결정 프로세스의 반응성을 변경하지 않고 동작들로서 조직화하게 할 수 있다. 일부 실시예들에서, 실행부(302)는 태스크 네트워크(310)의 새로운 섹션들을 생성하는 계획 동작들을 디스패치할 수 있고, 이들은 계획 능력들을 통해 동작을 제품 지능 성장으로서 확장하도록 실행 트리에 동적으로 부착될 것이다. 태스크 네트워크(310)는 병행 계층적 유한 상태 머신(CHFSM)의 형태로 구상될 수 있다. 그러나 거동 트리 설계들에 의해 사용되는 접근 방식은 인간 설계자들 및 소프트웨어 엔지니어들이 함께 작업하여 콘텐츠 파이프라인 내에서 상호작용식 경험들을 생성하는 데 있어 엄청난 성공을 했다. 태스크 네트워크 설계는 종래의 프로그래밍 언어에서 태스크들의 깨끗하고 효과적인 구현 및 구성을 가능하게 할 수 있다.[00118] According to exemplary, non-limiting embodiments, the execution unit 302 may also provide an important service of the asynchronous dispatch of tasks in the task network 310. Any task in network 310 may be able to defer computation for concurrent background threads by requesting asynchronous dispatch to perform any computationally intensive task. This feature allows tasks network 310 to do things such as heavyweight computations and slow or even block network I / O by "blocking" the decision cycle or organizing them as operations without changing the responsiveness of the decision process of the PCD 100 can do. In some embodiments, the execution unit 302 may dispatch scheduling operations that create new sections of the task network 310, which dynamically attach to the execution tree to extend the operations as product intelligence growth through scheduling capabilities Will be. The task network 310 may be implemented in the form of a concurrent hierarchical finite state machine (CHFSM). However, the approach used by behavioral tree designs has been a tremendous success for human designers and software engineers working together to create interactive experiences within the content pipeline. Task network design can enable clean and effective implementation and configuration of tasks in conventional programming languages.

[00119] 도 4는 PCD(100)에 의한 그리팅 상호작용의 단순화된 버전을 보여주는 태스크 네트워크를 나타낸다. 태스크 네트워크(310)의 아키텍처는 다양한 표현들, 이동들, 감지 동작들 및 스피치가 엔진 내에서 통합될 수 있게 하며, 그로써 설계자들에게 PCD(100)의 상호작용 동적 관계에 대한 완벽한 제어를 제공한다. 예시된 바와 같이, 네트워크의 아주 적은 부분은 동작 도중 언제라도 액티브하다. 콘텐츠 생성의 일부로서 기술적 그리고 설계 청중 모두에서 통신하기 위해 시각적 태스크 네트워크 표현이 사용될 수 있다. 이 예에서, PCD(100)의 PIR 센서는 영역에 입장하는 사람을 탐지했다. PCD(100)는 PCD(100)가 누군가를 그리팅할 필요가 있을 수 있다는 사실을 인지하고 "사용자 그리트" 시퀀스를 시작한다. 이 "사용자 그리트" 시퀀스는 모션 큐들에 대한 추적을 초기화한 다음, "Hello"라고 말할 수 있는데, 이와 동시에 사용자들이 접근함에 따라 사용자에 대한 추적을 업데이트한다. PCD(100)는 시각 입력의 업데이트를 계속하여 사용자의 얼굴 ID를 캡쳐할 수 있다. 이 시나리오에서, ID는 이것이 Jane이라고 말하여 PCD(100)가 시퀀스의 다음 파트로 넘어가는데, 여기서 PCD(100)는 Jane이 어떻게 하고 있는지에 관해 체크인할 발언을 형성할 수 있으며, 자신의 ASR/NLU 프로세싱 윈도우를 열어 응답들을 할 준비가 된다. Jane이 무언가를 말한다면, 지식 질의가 사용되어 발언을 "양호" 또는 "불량"으로 분류할 수 있고, PCD(100)는 Jane에 대한 적절한 물리적 그리고 스피치 반응을 형성하여 자신의 그리팅을 완료할 수 있다. 네트워크는 지능이 어떻게 작동하는지의 개념을 전달할 수 있다.[00119] FIG. 4 shows a task network illustrating a simplified version of a greeting interaction by the PCD 100. The architecture of the task network 310 allows various representations, mobiles, sensing operations and speech to be integrated within the engine, thereby providing designers with complete control over the interaction dynamics of the PCD 100 . As illustrated, a very small portion of the network is active at any time during operation. As part of content creation, visual task network representations can be used to communicate both technically and in the design audience. In this example, the PIR sensor of the PCD 100 has detected a person entering the area. The PCD 100 recognizes that the PCD 100 may need to be able to grasp someone and starts a " user grit " sequence. This "User Grit" sequence can initiate tracing for motion cues and then say "Hello" while at the same time updating traces for users as they are accessed. The PCD 100 may continue to update the visual input to capture the user's face ID. In this scenario, the ID says that this is Jane so that the PCD 100 passes to the next part of the sequence where the PCD 100 can form a statement to check on how Jane is doing, You are ready to open the NLU processing window and make responses. If Jane says something, a knowledge query can be used to classify the speech as "good" or "bad," and PCD 100 will form an appropriate physical and speech response to Jane to complete his greeting . A network can convey the notion of how intelligence works.

[00120] 심리사회적 표현 [00120] Psychosocial representation

[00121] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는 PCD(100)의 사회적 성질을 보완할 수 있는 엔진을 포함하도록 구성될 수 있다. 예컨대, 엔진은 스피치 출력을 수정하기 위한 태깅 시스템을 포함할 수 있다. 엔진은 PCD(100)의 음성 품질 제어를 가능하게 할 수 있다. 일례로, PCD(100)의 음성을 제어하도록 음성 아티스트에 의해 기록들이 이루어질 수 있다. 엔진은 간단한 가격결정 모델 및 임베딩된 디바이스들에 대한 고품질 압축 오디오 파일들과 같은 특징들을 포함할 수 있다. 또한, PCD(100)는 물리적 합동 회전들; 그래픽들, 형상, 텍스처 및 컬러; LED 조명 또는 무드 컬러링; 타이밍; 그리고 PCD(100)의 임의의 다른 표현 양상에 애니메이션들을 제공하기 위한 애니메이션 엔진을 포함할 수 있다. 이러한 애니메이션들은 오디오 큐들, 스피치, 향(scent) 등과 같은 다른 표현 출력들에 의해 동반될 수 있다. 이후, 애니메이션 엔진은, 해당 애니메이션의 전부 또는 부분들을 서로 다른 스피드들로, 트랜지션들로 그리고 곡선들 사이에서 플레이하면서, 이를 절차적 애니메이션들과 실시간으로 블렌딩할 수 있다. 이 엔진은 서로 다른 PCD 모델들, 기하학적 구조 및 자유도들을 탄력적으로 수용할 수 있다.[00121] According to exemplary and non-limiting embodiments, the PCD 100 may be configured to include an engine capable of supplementing the social nature of the PCD 100. For example, the engine may include a tagging system for modifying the speech output. The engine may enable voice quality control of the PCD 100. In one example, records may be made by a voice artist to control the voice of the PCD 100. The engine may include features such as a simple pricing model and high quality compressed audio files for the embedded devices. The PCD 100 also includes physical joint rotations; Graphics, geometry, texture and color; LED lighting or mood coloring; timing; And an animation engine for providing animations to any other representation of the PCD 100. These animations can be accompanied by other presentation outputs such as audio cues, speech, scent, and the like. The animation engine may then blend all or part of the animation with procedural animations in real time, while playing at different speeds, between transitions, and between curves. The engine can flexibly accommodate different PCD models, geometries and degrees of freedom.

[00122] 동적 타겟팅 [00122] Dynamic targeting

[00123] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는 PCD(100)를 3D 공간 내의 포인트들로 절차적으로 배향하게 할 수 있는 알고리즘을 사용하도록 구성될 수 있다. PCD(100)의 바디가 개별 애니메이션을 플레이하고 있을 수 있는 동안 PCD(100)의 안구들은 단일 포인트 상에 고정된 것으로 나타날 수 있고, 또는 바디가 특정 방향으로 포인트를 따라갈 수 있는 동안 안구가 리드할 수 있다. 일 실시예에서는, PCD의 룩-앳 타겟을 계산하기 위한 폐쇄형 기하학적 해결사가 사용될 수 있다. 다음에, 가속 제약들, 부가적 블렌딩/레이어링, 및 시뮬레이팅되는 VOR(vestibule-ocular reflex)에 대한 지원을 포함할 수 있는 멀티-타겟 블렌드 시스템으로 이러한 타겟 포즈가 제공된다.[00123] According to exemplary, non-limiting embodiments, the PCD 100 may be configured to use an algorithm that can cause the PCD 100 to be procedurally oriented to points within 3D space. While the bodies of the PCD 100 may be playing individual animations, the eyes of the PCD 100 may appear to be fixed on a single point, or the eyeballs may lead to an eyeball while the body can follow the point in a particular direction. . In one embodiment, a closed geometric solver for computing the look-at target of the PCD can be used. This target pose is then provided to a multi-target blend system that may include support for acceleration constraints, additional blending / layering, and simulated VEST (vestibule-ocular reflex).

[00124] 시뮬레이션 [00124] Simulation

[00125] 예시적이며 비제한적인 실시예들에 따르면, 애니메이션 엔진은 애니메이션들과 절차적 애니메이션들을 가상으로 플레이하고 블렌딩할 수 있는 시뮬레이터를 포함할 수 있다. 시뮬레이터는 얼굴 탐지와 같은 센서리 입력을 시뮬레이팅할 수 있다. 일부 실시예들에서, 로봇의 질량, 모터들의 전력, 및 로봇의 전류 인출 한계들을 고려하여 애니메이션들을 인증하고 테스트하도록, 가상 모델로의 물리적 시뮬레이션이 확립될 수 있다.[00125] According to exemplary, non-limiting embodiments, the animation engine may include a simulator capable of virtually playing and blending animations and procedural animations. The simulator can simulate sensor inputs such as face detection. In some embodiments, a physical simulation into a virtual model can be established to authenticate and test animations, taking into account the mass of the robot, the power of the motors, and the current draw limits of the robot.

[00126] 안구 [00126] The eyeball

[00127] 예시적이며 비제한적인 실시예들에 따르면, 개인들의 그래픽 표현, 예컨대 PCD(100)의 안구는 조인트들을 사용하여 이것이 그 자체를 다른 대상들로 모핑 및 형상화하게 하도록 구성될 수 있다. 안구 그래픽 엔진은 커스텀 애니메이션 파일들을 사용하여 홍채를 다른 형상들로 모핑하고, 깜빡거리고, 그 컬러를 변경하고, 텍스처를 변경하여 전체 범위의 표현을 가능하게 할 수 있다.[00127] According to exemplary and non-limiting embodiments, a graphical representation of individuals, such as the eye of the PCD 100, can be configured to use joints to morph and shape itself into other objects. The eye graphics engine can use custom animation files to morph the iris into other shapes, flicker, change its color, and change the texture to enable full range representation.

[00128] 그래픽들 S [00128] Graphics

[00129] PCD API는 2D 장면 그래프 스타일 인터페이스에서의 그래픽들, 포토들, 애니메이션들, 비디오들 및 텍스트의 디스플레이를 지원할 수 있다.[00129] The PCD API can support the display of graphics, photos, animations, videos and text in a 2D scene graph style interface.

[00130] 플랫폼 및 에코시스템 [00130] Platform and ecosystem

[00131] PCD(100)는 고도로 집적된 고성능 임베딩된 리눅스 시스템을 기반으로 하며, 모바일 디바이스 "컴패니언" 앱들의 에코시스템, 클라우드-기반 백-엔드, 및 구입가능한 콘텐츠 및 기능을 가진 온라인 상점과 연결된 플랫폼이다.[00131] PCD 100 is based on a highly integrated, high performance embedded Linux system and is connected to an e-store of mobile device "companion" apps, a cloud-based back-end, and an online store with content and functionality available for purchase Platform.

[00132] PCD SDK [00132] PCD SDK

[00133] PCD SDK는 제 3자 개발자들이 낮은 학습 곡선으로 성능들을 추가할 수 있는 개방적이고 플렉시블한 플랫폼을 제공하도록 최신 웹 개발 커뮤니티의 오픈 언어 및 JavaScript를 이용할 수 있다. PCD SDK에 의해 생성된 모든 PCD 앱들, 콘텐츠 및 서비스들은 PCD 앱 스토어로부터의 다운로드에 이용 가능하다. TTS, 센서리 인지, NLU, 애니메이션들 등을 포함하는 PCD의 기능들 전부가 PCD API를 통해 이용 가능할 것이다. 이 API는 NodeJS, V8의 최상위에 구성된 JavaScript 플랫폼, Chrome의 오픈 소스 JavaScript 엔진을 사용한다. NodeJS는 빠르고 효율적이며 로봇 프로그래밍으로 잘 옮겨지는 이벤트 구동 모델을 사용한다. NodeJS는 아웃 오브 더 박스 기능 과잉이 따르며 애드-온들(add-on)로서 쉽게 확장 가능하다. PCD의 API는 NodeJS 애드-온일 것이다. 애드-온들은 또한 쉽게 삭제 또는 수정되기 때문에, 개발자들이 PCD와 상호작용할 수 있는 방법들이 제어될 수 있다. 예컨대, 개발자들은 아웃바운드 소켓을 생성할 수 있지만, 또한 아웃바운드 접속들의 수를 제한할 수 있다.[00133] The PCD SDK can utilize the open language and JavaScript of the modern web development community to provide an open and flexible platform for third party developers to add performance with a low learning curve. All PCD apps, content and services created by the PCD SDK are available for download from the PCD App Store. All of the functions of the PCD, including TTS, sensor, NLU, animations, etc., will be available through the PCD API. This API uses a JavaScript platform configured at the top of NodeJS, V8, and Chrome's open source JavaScript engine. NodeJS uses an event-driven model that is fast, efficient, and well suited to robot programming. NodeJS comes with out-of-the-box overkill and is easily extensible as an add-on. The API of the PCD will be the NodeJS add-on. Because add-ons are also easily deleted or modified, the ways in which developers can interact with the PCD can be controlled. For example, developers can create outbound sockets, but can also limit the number of outbound connections.

[00134] 클라우드 아키텍처 [00134] Cloud architecture

[00135] 예시적이며 비제한적인 실시예들에 따르면, PCD의 지능을 지원하고, 프레시 콘텐츠를 리트리브하고, 사람들이 그들의 가족과 계속 연결될 수 있게 하기 위해 정교한 클라우드-기반 백 엔드 플랫폼이 사용될 수 있다. 홈 내 PCD 디바이스는 Wi-Fi를 통해 클라우드 내의 PCD 서버들에 접속할 수 있다. PCD 클라우드 서버들에 대한 액세스는 상당히 안전하고 암호화된 웹 통신 프로토콜들에 의존한다. PCD 사용자들, 부양자(caregiver)들 및 가족 멤버들을 계속해서 지원할 수 있는 다양한 애플리케이션들이 iOS, Android 및 HTML5를 위해 개발될 수 있다. 이러한 모바일 및 웹 앱들로, PCD(100)는 다수의 디바이스들 상에서 항상 당신과 함께 있을 수 있어, 도움을 제공하고 당신의 선호들, 요구들 및 관심들을 어떻게 더 잘 지원할지를 내내 학습할 수 있다. 도 2를 참조하면, PCD(100)는 PCD(100)를 그 가족에게 고유하게 만들 수 있는 데이터 전부를 클라우드에 미러링하도록 구성될 수 있어, 사용자들이 미래의 PCD 로봇 릴리스들로 쉽게 업그레이드하고 이들이 설정한 페르소나 및 관계들을 보존할 수 있다. 예컨대, PCD의 서버들은 클라우드 저장소(214)에 데이터를 수집하고 PCD 로봇 및 다른 접속된 디바이스들로부터의 메트릭들을 계산하여 머신 학습 알고리즘들이 사용자 모델들(216)을 개선하고 PCD 페르소나 모델(218)을 적응시킬 수 있게 하도록 구성될 수 있다. 또한, 클라우드 저장소(214)에 수집된 데이터는 제품 공급을 계속해서 개선하기 위해, 어떤 PCD 특징들이 사용자들에게 가장 잘 반향을 불러일으키고 있는지를 분석하고, PCD 에코시스템에 걸친 사용 패턴을 이해하는데 사용될 수 있다.[00135] According to illustrative, non-limiting embodiments, a sophisticated cloud-based back-end platform can be used to support the intelligence of the PCD, retrieve fresh content, and enable people to stay connected with their families . The in-home PCD device can connect to PCD servers in the cloud via Wi-Fi. Access to PCD cloud servers is highly secure and relies on encrypted web communication protocols. A variety of applications can be developed for iOS, Android and HTML5 that can continue to support PCD users, caregivers and family members. With these mobile and web apps, the PCD 100 can be with you on multiple devices at all times, providing help and learning how to better support your preferences, needs and interests. 2, the PCD 100 can be configured to mirror all of the data that can make the PCD 100 unique to its family in the cloud, allowing users to easily upgrade to future PCD robot releases, You can preserve a persona and relationships. For example, the servers of the PCD may collect data in the cloud store 214 and calculate metrics from the PCD robot and other connected devices so that the machine learning algorithms may improve the user models 216 and the PCD persona model 218 To be adapted to the user. In addition, the data collected in the cloud store 214 may be used to analyze which PCD features are most likely to resonate with users to continue to improve the product supply, and to understand the usage patterns across the PCD ecosystem .

[00136] 예시적이며 비제한적인 실시예들에 따르면, 클라우드-기반 백 엔드 플랫폼은 다수의 PCS들 사이에 공유되도록 의도된 데이터의 저장 및 배포를 위해 사용될 데이터베이스 시스템을 포함할 수 있다. 클라우드-기반 백 엔드 플랫폼은 또한 사람들의 식별(예컨대, 음성 ID 애플리케이션) 및 사회적 네트워크들과의 상호 연동을 통한 개인 멀티-모달 데이터의 수집에서 PCD들을 지원하도록 서비스 애플리케이션들을 호스팅할 수 있다.[00136] According to exemplary, non-limiting embodiments, a cloud-based back-end platform may include a database system to be used for storage and distribution of data intended to be shared among a plurality of PCSs. The cloud-based back-end platform may also host service applications to support PCDs in the collection of personal multi-modal data through identification of people (e.g. voice ID applications) and interworking with social networks.

[00137] 클라우드-기반 서버 [00137] Cloud-based servers

[00138] 예시적이며 비제한적인 실시예들에 따르면, 하나 또는 그 초과의 PCD(100)는 압축된 JSON을 사용하는 RESTful-기반 웹 서비스들을 사용하여, 클라우드-기반 서버 백-엔드(cloud-based server back-end)와 통신하도록 구성될 수 있다.[00138] According to exemplary, non-limiting embodiments, one or more PCDs 100 may use RESTful-based Web services that use compressed JSON to provide cloud-based server cloud- based server back-end.

[00139] 보안 [00139] Security

[00140] 예시적이며 비제한적인 실시예들에 따르면, 동일성(identity)을 확인하기(validate) 위해, OAUTH 인증 모델과 함께 제로-구성 네트워크 프로토콜이 사용될 수 있다. 또한, 다른 것 중에서도, Apache™에 의해 제시되는 Shiro™ 보안 프레임워크와 같은 역할들 및 허가들에 입각한 부가적인 보안 프로토콜들을 제공하기 위해 보안 프레임워크가 적용될 수 있다. 모든 민감한 데이터는 SSL을 통하여 전송될 것이다. 서버 측 상에서, 콘텐츠 토큰(content token)을 획득하기 위해 OAUTH를 사용하는 엄격한 방화벽 구성을 사용하여 데이터가 보안될 수 있다. 또한, 클라우드-기반 서버들에 대한 모든 콜들(calls)은 유효한 콘텐츠 토큰을 갖도록 요구될 수 있다.[00140] According to illustrative, non-limiting embodiments, a zero-configuration network protocol may be used with the OAUTH authentication model to validate identity. Also, among other things, a security framework can be applied to provide additional security protocols based on roles and permissions, such as the Shiro ™ security framework presented by Apache ™. All sensitive data will be transmitted over SSL. On the server side, data can be secured using a strict firewall configuration using OAUTH to obtain a content token. In addition, all calls to cloud-based servers may be required to have a valid content token.

[00141] 콘텐츠 전달 [00141] Content delivery

[00142] 예시적이며 비제한적인 실시예들에 따르면, 주어진 PCD 디바이스에 대한 최신의 콘텐츠를 얻기 위해, 웹 서비스 콜을 포함하도록 서버 API가 사용된다. 이러한 웹 서비스는, 모든 펜딩 메시지들(pending messages)의 리스트, 경보들, 업데이트된 리스트들(예를 들면, 쇼핑, 리마인더들, 체크인들 등) 및 간결하고 컴팩트한 작업 매니페스트(job manifest)를 리턴하는(return) 고레벨 콜을 제공할 수 있다. PCD 로봇은 그 후, 그러한 매니페스트에 표현된 펜딩 데이터를 그 현재의 안건(current agenda)에 기반하여 편의적으로(opportunistically) 검색할 수 있다. 일부 실시예들에서, PCD의 실체(truth)는 클라우드 내에 있으며, 이는 리스트들, 리마인더들, 체크인들, 및 다른 애플리케이션 상태의 마스터 레코드(master record)가 PCD 서버들 상에 저장되는 것을 의미한다. 로봇이 가장 최근의 콘텐츠에 접근할 수 있는 것을 보장하기 위해, API는 종종 그리고 수집된 콘텐츠 편의적으로(그러나 시기적절한 방식으로) 콜링될 수 있다.[00142] According to exemplary, non-limiting embodiments, a server API is used to include a web service call to obtain the latest content for a given PCD device. Such a web service may return a list of all pending messages, alerts, updated lists (e.g. shopping, reminders, check-ins etc.) and a compact and compact job manifest And return high-level calls. The PCD robot can then opportunistically search the pending data represented in such a manifest based on its current agenda. In some embodiments, the truth of the PCD is in the cloud, which means that master records of lists, reminders, check-ins, and other application states are stored on the PCD servers. To ensure that the robot has access to the most recent content, the API can be called often (and in a timely manner) and the content content collected (but in a timely manner).

[00143] 워크플로우 관리 [00143] Workflow management

[00144] 예시적이며 비제한적인 실시예들에 따르면, 클라우드에 오프로딩되고(offloaded) 실시간으로 결과들을 리턴하지 않을 기능성(functionality)이 사용될 수 있다. 이는 전술된 안건-기반 메시지 큐잉(agenda-based message queuing)의 개념과 밀접하게 연결될 수 있다. 또한, 이는 서버 아키텍쳐(server architecture)를 수반할(involve) 수 있는데, 서버 아키텍쳐는 RESTful 웹 서비스 API에 대해 이루어질 서비스들에 대한 요구들 및 애플리케이션 서버들에 대한 디스패치 작업들(dispatch jobs)을 허용할 수 있다. SWF(Amazon Simple Workflow) 또는 유사한 워크플로우가 사용되어, 그러한 시스템을 전통적인 메시지 큐잉 시스템들과 함께 실행시킬 수 있다.[00144] According to exemplary, non-limiting embodiments, functionality may be used that is offloaded to the cloud and will not return results in real time. This can be closely linked to the concept of agenda-based message queuing described above. It may also involve a server architecture in which the server architecture allows requests for services to be made to the RESTful web services API and dispatch jobs to application servers . Amazon Simple Workflow (SWF) or similar workflows can be used to run such systems with traditional message queuing systems.

[00145] 업데이트들 [00145] Updates

[00146] 예시적이며 비제한적인 실시예들에 따르면, 업데이트를 필요로 할 수 있는 콘텐츠는, 운영 시스템 커널, 펌웨어, 하드웨어 드라이버들, V8 엔진 또는 PCD(100)의 컴패니언 앱들(companion apps)을 포함할 수 있다. 이러한 콘텐츠에 대한 업데이트들은, 이용가능한 업데이트들의 유형들에 대한 정보를 리턴하고 특정 아이템들의 요구를 허용하는 웹 서비스를 통하여 이용가능할 수 있다. 사용자 활동을 중단시키는 것을 회피하기 위해, PCD가 종종 편의적일 필요가 있을 것이기 때문에, 로봇은, 업데이트들을 적용할 수 있을 때, 업데이트들을 요구할 수 있다. 업데이트들에 대해 정기적으로 폴링하기(poll) 위해 PCD 로봇에 의존하기보다, 특정 유형들의 업데이트들의 이용가능성이 로봇에 푸시될(pushed) 수 있다.[00146] According to illustrative, non-limiting embodiments, the content that may require updating may include operating system kernels, firmware, hardware drivers, companion apps of the V8 engine or PCD 100, . Updates to this content may be available through a web service that returns information about the types of updates available and allows the request of specific items. In order to avoid aborting user activity, the robot may request updates when it can apply updates, since the PCD will often need to be expedient. Rather than rely on the PCD robot to poll regularly for updates, the availability of certain types of updates may be pushed to the robot.

[00147] 로깅/메트릭스 [00147] Logging / metrics

[00148] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는 서버들에 로그 정보를 전송할 수 있다. 서버들은 이러한 데이터를 적절한 컨테이너(SQL 또는 NoSQL)에 저장할 수 있다. Hadoop(Amazon MapReduce) 및 Splunk와 같은 툴들이 데이터를 분석하기 위해 사용될 수 있다. 메트릭스는 또한, 질의가능할(queryable) 수 있어서, 사람이 PCD(100)와 상호작용하고 PCD(100)를 사용하는 방법에 대한 보고서(report)가 실행될(run on) 수 있다. 이러한 분석들의 결과들은, PCD가 학습하고, 상호작용하고, 행동하는 방법, 및 또한 어떤 특징들이 미래 업데이트들에서 요구될 수 있을 지에 대한 파라미터들을 조정하기 위해 사용될 수 있다.[00148] According to exemplary, non-limiting embodiments, PCD 100 may send log information to servers. Servers can store this data in the appropriate container (SQL or NoSQL). Tools like Hadoop (Amazon MapReduce) and Splunk can be used to analyze data. The metrics may also be queryable so that a report on how a person interacts with the PCD 100 and uses the PCD 100 may be run on. The results of these analyzes can be used to adjust the parameters of how the PCD learns, interacts, and behaves, and also which features may be required in future updates.

[00149] 기계 학습 [00149] Machine learning

[00150] 예시적이며 비제한적인 실시예들에 따르면, PCD 로봇 및 클라우드-기반 시스템들이 계속적으로 개선될 수 있게 하기 위해, 다양한 트레이닝 시스템들 및 피드백 루프가 개발될 수 있다. PCD 로봇들은, 기계 학습 알고리즘들을 트레이닝하기 위해 사용될 수 있는 정보를 수집할 수 있다. 약간의 기계 학습량은 로봇 자체에서 일어날 수 있지만, 클라우드에서는 분류기들(classifiers)을 트레이닝하기 위해 많은 소스들로부터 데이터가 어그리게이팅될(aggregated) 수 있다. 클라우드-기반 서버들은 지상 검증 자료(ground truth)가 결정될 수 있게 할 수 있는데, 이는 듣거나, 보거나, 정확히 이해할 가능성이 매우 낮은 콘텐츠를 명확히 하기 위해, 인간 코더들(human coders)에게 약간의 양의 데이터를 전송함으로써 이루어진다. 새로운 분류기들이 생성된다면, 이들은 전술된 업데이트 시스템을 통하여 전송될(send out) 수 있다. 분류기들/예측기들(predictors)의 기계 학습 및 트레이닝은, 감독된, 자율의(unsupervised), 또는 강화-학습 방법들 및 지상 검증 자료의 보다 복잡한 인간 코딩(human coding) 둘 모두에 확대될(span) 수 있다. 트레이닝 신호들은, PCD 로봇이 음성, 터치 프롬프트(touch prompt), 미소 띤 얼굴, 제스처 등과 같이, 사용자에 의해 발생된 분명한 피드백 또는 태스크를 달성했다는 인식(knowledge)을 포함할 수 있다. 얼굴 및 오디오 데이터를 포함할 수 있는, 카메라들로부터의 이미지들을 축적하는 것(accumulating)은, 클라우드에서 그러한 각각의 시스템들의 품질을 개선하는데 사용될 수 있다.[00150] According to illustrative, non-limiting embodiments, various training systems and feedback loops may be developed to allow PCD robots and cloud-based systems to be continuously improved. PCD robots can collect information that can be used to train machine learning algorithms. Although a small amount of machine learning can occur in the robot itself, data from many sources may be aggregated in the cloud to train classifiers. Cloud-based servers can allow ground truths to be determined, which can be used by human coders to determine the amount of content that is likely to be heard, Data is transmitted. If new classifiers are created, they may be sent out via the update system described above. Machine learning and training of classifiers / predictors should be extended to both more sophisticated human coding of supervised, unsupervised, or reinforcement-learning methods and ground truth data ). Training signals may include knowledge that the PCD robot has achieved a clear feedback or task generated by the user, such as voice, touch prompt, smiley face, gesture, and the like. Accumulating images from cameras, which may include face and audio data, can be used to improve the quality of each such system in the cloud.

[00151] 텔레프레전스 지원(Telepresence Support) [00151] Telepresence Support

[00152] 예시적이며 비제한적인 실시예들에 따르면, 비디오 챗 옵션(video chat option)을 포함하는 텔레프레전스 특징이 사용될 수 있다. 또한, 사용자들의 안전을 보장하기 위해 비디오 챗에 보안 모델이 가능해진다(enabled). 또한, 비디오 챗 성능들의 비인가 사용으로부터 최종 사용자들을 보호하기 위한 역할들, 허가들 및 보안 기반구조(security infrastructure)를 활용하는, 웹 앱(web app) 및 또한 모바일 디바이스 앱들이 사용될 수 있다.[00152] According to exemplary, non-limiting embodiments, a telepresence feature may be used that includes a video chat option. In addition, a security model is enabled for video chat to ensure the safety of users. Web apps and also mobile device apps that utilize roles, permissions, and security infrastructure to protect end users from unauthorized use of video chat capabilities can also be used.

[00153] 소프트웨어 기반구조 [00153] Software infrastructure

[00154] PCD의 소프트웨어 시스템의 고레벨 성능들은, 우리의 고레벨 소프트웨어 시스템들에 청결하고 강력하며 신뢰적인 개발 환경을 제공하는, 키 라이브러리들, 보드 지원, 드라이버들 및 다른 종속물들에 대해 커스터마이징된 강력하고 유능한 임베딩된 리눅스 플랫폼(Embedded Linux platform)을 기반으로 하고 있다(built on). 최고-레벨 기능성 모듈들은 우리의 임베딩된 리눅스 시스템의 프로세스들로서 실현된다. PCD의 모듈 기반구조는 특히, 언어 라이브러리들(language libraries)에 기초하는 C++ 및 C의 힘든 작업들을 컴퓨터를 사용하여(computationally) 지원하면서, JavaScript의 콘텐츠, 상호작용들 및 거동의 플렉시블한 스크립팅(scripting)을 지원하는 것을 목표로 한다. 이는, C++ 모듈들 및 라이브러리들로서 패키징된, 지원 및 키 확장들을 갖는 성공적인 Node.js 플랫폼 및 V8 JavaScript 엔진을 기반으로 한다.[00154] The high-level capabilities of the PCD's software system are powerful, customizable, and customizable for key libraries, board support, drivers, and other dependencies that provide a clean, powerful, and reliable development environment for our high- It is built on a competent embedded Linux platform. High-level functionality modules are realized as processes in our embedded Linux system. PCD's module-based architecture is particularly useful for flexible scripting of JavaScript content, interactions, and behavior, while computationally supporting the tough tasks of C ++ and C based on language libraries. It is aimed to support. It is based on the successful Node.js platform and V8 JavaScript engine, packaged as C ++ modules and libraries, with support and key extensions.

[00155] 하드웨어 시스템 아키텍쳐 [00155] Hardware system architecture

[00156] 도 5a는, 센서리, 모터, 연결성(connectivity), 전력 및 PCD(100)의 하나 또는 그 초과의 성능들의 컴퓨테이셔널 요구들(computational needs)을 지원하도록 엔지니어링될 수 있는 PCD(100)의 하드웨어 아키텍쳐를 도시한다. 일부 실시예들에서, PCD(100)의 하나 또는 그 초과의 하드웨어 엘리먼트들은, 고급 태블릿들 및 다른 모바일 디바이스들에서 사용될 수 있는 코어 하드웨어의 적응들 및 특수화들이다. 그러나, 형상, 모션 및 센서들의 물리적 실현 및 배열은 PCD(100)에 대해 고유하다. PCD(100)의 전체 물리적 구조는 또한, 본원에서 3-링 제타 타입(Zetatype)으로 지칭될 수 있다. PCD(100)의 그러한 타입의 물리적 구조는 PCD(100)에 청결하고, 제어가능하며 매력적인 작용선(line of action)을 제공할 수 있다. 실시예에서, 이러한 구조는 어텐션(attention) 및 감정을 전달하기 위해 캐릭터 애니메이터들(character animators)에 의해 사용될 수 있는 원리들로부터 ㅇ유도될 수 있다. PCD(100)의 물리적 구조는, 3개의 링 볼륨들, 모션의 범위들 및 필요한 센서 배치에 기반하여, 기계적이며 전기적인 아키텍쳐의 경계들을 정의할 수 있다.[00156] Figure 5a illustrates a PCD 100 (which may be engineered to support computational needs of one or more of the capabilities of the sensor, motor, connectivity, power, and PCD 100) ). ≪ / RTI > In some embodiments, one or more of the hardware elements of the PCD 100 are adaptations and specializations of core hardware that may be used in advanced tablets and other mobile devices. However, the physical realization and arrangement of the shapes, motions and sensors is unique to the PCD 100. The overall physical structure of the PCD 100 may also be referred to herein as a 3-ring zetatype. Such a type of physical structure of the PCD 100 may provide a clean, controllable and attractive line of action to the PCD 100. In an embodiment, such a structure may be derived from principles that may be used by character animators to convey attention and emotion. The physical structure of the PCD 100 may define mechanical and electrical architectural boundaries, based on three ring volumes, ranges of motion, and the required sensor placement.

[00157] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는, 이동을 위한 3-축들, 하나 또는 그 초과의 스테레오 비전 카메라(504), 마이크로폰 어레이(506), 터치 감지 성능부들(508) 및 LCD 디스플레이와 같은 디스플레이(510)를 포함하도록 구성될 수 있다. 이동을 위한 3개의 축들은, 자연스러운 방식으로 사용자들을 수행하고(attend) 센서들을 지향시킬 수 있는 능력 및 감정적인 표현을 지원할 수 있다. 스테레오 비전 카메라(504)는, 비디오 입력, 카메라 스냅들(camera snap), 등을 제공하기 위해, 사용자들의 추적 및 3D 위치를 지원하도록 구성될 수 있다. 마이크로폰 어레이(506)는 ASR 성능을 최대화하기 위해 빔-형성 오디오 입력을 지원할 수 있다. 터치 감지 성능부들(508)은, 대안적인 상호작용이 PCD(100)를 친구와 같이, 또는 사용자 인터페이스의 형태로서 만들 수 있게 할 수 있다. LCD 디스플레이(510)는 감정적 표현뿐만 아니라 동적 정보 디스플레이를 지원할 수 있다. 주위 LED 조명이 또한 포함될 수 있다.[00157] According to exemplary, non-limiting embodiments, the PCD 100 may include three-axes for movement, one or more stereo vision cameras 504, a microphone array 506, A display 508 and a display 510 such as an LCD display. The three axes for movement can support emotional expressions and the ability to attend and orient users in a natural way. Stereo vision camera 504 may be configured to support tracking and 3D positioning of users to provide video inputs, camera snaps, The microphone array 506 may support beam-forming audio inputs to maximize ASR performance. The touch-sensing capabilities 508 may allow alternative interactions to make the PCD 100 as a friend or in the form of a user interface. The LCD display 510 may support dynamic information display as well as emotional presentation. Ambient LED lighting may also be included.

[00158] 예시적이며 비제한적인 실시예들에 따르면, 하드웨어 아키텍쳐(500)는, 임베딩된 제어 및 로봇 공간(rototics space)으로부터의 COTS 프로세서에 기초하며 모바일 디바이스들 및 태블릿 공간으로부터의 고급 애플리케이션 프로세서와 결합될 수 있는 전기적 아키텍쳐를 포함하도록 구성될 수 있다. 임베딩된 제어기는 모션 제어 및 저-레벨 센서 집합에 책임이 있지만, 소프트웨어 스택의 대부분(majority)은 애플리케이션 프로세서에서 실행된다(run on). 물건(product) 내의 전기 기판들(electrical boards)은 V1 디자인에 대한 기능에 의해 분리되며, 이는 로봇의 물리적 구조와 매칭하도록 모듈방식(modularity)을 제공하면서, 하나의 보드 상의 디자인 변화들에 대한 필요성을 보다 큰 디자인 업데이트들로의 전파로부터 경감시킬(mitigating) 수 있다. 일부 실시예들에서, 전기적 아키텍쳐는 카메라 인터페이스 보드를 포함할 수 있고, 카메라 인터페이스 보드는 2개의 모바일-산업 기반 저-해상도 MIPI 카메라 모듈들을 통합시킬 수 있으며, 저-해상도 MIPI 카메라 모듈들은, 스테레오 시스템을 위해 캡쳐 이미지들이 시간에 맞춰 등록될 수 있도록, 하드웨어 동기화를 지원할 수 있다. 스테레오 카메라들은 연속적인 모드로 비디오를 스트리밍하도록 디자인된다. 또한, 카메라 인터페이스 보드는, 고 해상도 포토들을 촬영하기 위한 단일 RGB 애플리케이션 카메라 및 화상 회의 비디오 품질을 지원할 수 있다. RGB 애플리케이션 카메라는, 특정 포토 촬영, 이미지 스냅들 및 비디오 애플리케이션들을 위해 사용하도록 디자인될 수 있다.[00158] According to illustrative, non-limiting embodiments, the hardware architecture 500 is based on a COTS processor from embedded control and rototics space and includes an advanced application processor from mobile devices and tablet space Lt; RTI ID = 0.0 > and / or < / RTI > The embedded controller is responsible for the motion control and low-level sensor set, but the majority of the software stack is run on the application processor. The electrical boards in the product are separated by the function of the V1 design which provides the modularity to match the physical structure of the robot while the need for design changes on one board May be mitigating from propagation to larger design updates. In some embodiments, the electrical architecture may include a camera interface board, the camera interface board may incorporate two mobile-industry based low-resolution MIPI camera modules, and the low-resolution MIPI camera modules may include a stereo system , So that captured images can be registered on time. Stereo cameras are designed to stream video in continuous mode. In addition, the camera interface board can support a single RGB application camera and video conferencing video quality for capturing high resolution photos. RGB application cameras can be designed for use with specific photo shoots, image snapshots and video applications.

[00159] 예시적이며 비제한적인 실시예들에 따르면, 하드웨어 아키텍쳐는, 마이크로폰 어레이(506), 오디오 프로세싱 및 코덱 지원부(514)를 운반할 수 있는 마이크로폰 인터페이스 보드를 포함할 수 있고, 오디오의 디지털 스트림을 메인 애플리케이션 프로세서(516)에 전송한다. 우리의 코덱(514)으로부터 출력된 오디오는, 스피커들(518)이 사운드 분리를 위해 바디의 별개의 섹션에 있기 때문에 밖으로 라우팅될 수 있다.[00159] According to exemplary and non-limiting embodiments, the hardware architecture may include a microphone interface board capable of carrying a microphone array 506, audio processing and codec support 514, And transfers the stream to the main application processor 516. Audio output from our codec 514 can be routed out because the speakers 518 are in separate sections of the body for sound separation.

[00160] 예시적이며 비제한적인 실시예들에 따르면, 하드웨어 아키텍쳐는, 바디의 중간 섹션에 집적될 수 있는 바디 제어 보드(520)를 포함할 수 있고, 모터 제어, 저레벨 바디 감지, 전력 관리 및 PCD(100)에 대한 시스템 웨이크업 기능을 제공한다. 제한이 아닌 예로서, 바디 제어 보드(520)는 산업 표준 Cortex-M4F 마이크로제어기 플랫폼 주위에 구축될 수 있다. 또한, 아키텍쳐(500)는, 코어 SoC(System On Chip) 프로세서를 제공하고, 로봇 시스템의 나머지를 함께 연결할 수 있는 애플리케이션 프로세서 보드를 포함할 수 있다. 실시예에서, 보드는, SoM(System On Module)을 사용하여, 초기 프로토타입들의 개발 시간 및 비용을 최소화할 수 있다. 일부 실시예들에서, 애플리케이션 프로세서 보드는 비용 감소 및 단순화된 생산을 위해 SoC 프로세서를 포함할 수 있다. 애플리케이션 프로세서 보드의 주요 인터페이스들은, MIPI 카메라들, 디스플레이, 무선 통신들 및 고성능 오디오를 지원하기 위한 인터페이스를 포함할 수 있다.[00160] According to illustrative, non-limiting embodiments, the hardware architecture may include a body control board 520 that may be integrated in an intermediate section of the body, and may include motor control, low level body detection, And provides a system wakeup function for the PCD 100. By way of example, and not limitation, the body control board 520 may be constructed around an industry standard Cortex-M4F microcontroller platform. In addition, the architecture 500 may include an application processor board that provides a core System On Chip (SoC) processor and can connect the rest of the robotic system together. In an embodiment, the board can use a System On Module (SoM) to minimize development time and cost of initial prototypes. In some embodiments, the application processor board may include a SoC processor for cost reduction and simplified production. The main interfaces of the application processor board may include MIPI cameras, displays, wireless communications, and interfaces to support high performance audio.

[00161] 예시적이며 비제한적인 실시예들에 따르면, 하드웨어 아키텍쳐(500)는, PCD(100)의 전력 요건들을 처리할 수 있는 전력 관리 보드(522)를 포함하도록 구성될 수 있다. 전력 관리 보드(522)는 전력 레귤레이터들, 배터리 충전기 및 배터리를 포함할 수 있다. 전력 레귤레이터들은, 하드웨어 아키텍쳐(500)의 하나 또는 그 초과의 엘리먼트들 또는 보드들이 레귤레이팅된 전력 공급을 수신할 수 있도록 입력 전력을 레귤레이팅하도록 구성될 수 있다. 추가로, 배터리 충전기는, PCD(100)가 긴 시간 동안 동작하게 하기 위해 배터리를 충전하도록 구성될 수 있다. 실시예에서, PCD(100)는 충전 도크/베이스/크래들을 가질 수 있고, 이들은 벽 플러그와 블라인드 메이트 충전 커넥터를 통합할 것이어서, PCD(100)는 베이스 상에 배치되는 경우 내부 배터리를 충전할 수 있을 것이다.[00161] According to exemplary, non-limiting embodiments, the hardware architecture 500 may be configured to include a power management board 522 capable of handling power requirements of the PCD 100. The power management board 522 may include power regulators, a battery charger, and a battery. The power regulators may be configured to regulate the input power such that one or more of the elements or boards of the hardware architecture 500 may receive the regulated power supply. Additionally, the battery charger may be configured to charge the battery to allow the PCD 100 to operate for a long period of time. In an embodiment, the PCD 100 may have a charging dock / base / cradle, which will incorporate a wall plug and a blind mate charging connector so that the PCD 100 can charge the internal battery There will be.

[00162] 기계적 아키텍쳐 [00162] Mechanical architecture

[00163] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)의 다양한 특징들이 단일 디바이스의 형태로 사용자에게 제공된다. 도 6a는, 다양한 특징들을 친숙한 방식으로 사용자들에게 제공하기 위해, 요구되는 소프트웨어 및 하드웨어 아키텍쳐를 포함하도록 구성될 수 있는 PCD(100)의 예시적인 설계를 예시한다. PCD(100)의 기계적 아키텍쳐는, 재료들의 비용 효과적인 청구를 타겟팅하면서, 조용한 품위 및 표정을 위해 최적화되었다. 다수의 성숙한 마켓들로부터 최상의 엘리먼트들을 신중하게 선택하고, 이들을 PCD(100)에 대한 고유의 결합으로 함께 합침으로써, 고유의 디바이스가 생성된다. 도 6a에 예시된 바와 같이, 기계적 아키텍쳐는, 마이크로폰 보드, 메인 보드, 배터리 보드, 바디 제어 보드, 카메라 보드와 같은 다양한 보드들을 PCD(100) 내의 예시적인 포지션에 배치한 것을 도시한다. 또한, 냉각 효과를 제공하는 기류를 적절히 허용하기 위해, PCD(100)의 설계에 하나 또는 그 초과의 통풍구들이 제공된다.[00163] According to exemplary, non-limiting embodiments, various features of the PCD 100 are provided to a user in the form of a single device. 6A illustrates an exemplary design of a PCD 100 that may be configured to include the required software and hardware architecture to provide various features to users in a familiar manner. The mechanical architecture of PCD 100 has been optimized for quiet elegance and look, while targeting cost effective claims of materials. By carefully selecting the best elements from a number of mature markets and combining them together into a unique combination for the PCD 100, a unique device is created. As illustrated in FIG. 6A, the mechanical architecture illustrates placement of various boards in an exemplary position within the PCD 100, such as a microphone board, a main board, a battery board, a body control board, and a camera board. In addition, one or more vents are provided in the design of the PCD 100 to suitably allow airflow to provide a cooling effect.

[00164] 아래에서 설명되는 다양한 예시적이며 비제한적인 실시예들에 따르면, PCD는 데이터를 감지하기 위해 프로세서와 통신하는 복수의 센서들을 활용한다. 아래에서 설명되는 바와 같이, 이러한 센서들은 모든 방식의 센서리 입력을 포착하도록 동작하고, 프로세서는 태스크들을 수행하기 위한 일련의 프로그래밍가능한 알고리즘들을 통해 센서리 입력에 대해 동작한다. 이러한 태스크들의 달성 시에, PCD(100)는, PCD(100)의 일부를 형성하는 로컬 메모리에 저장된 데이터를 사용하고, 유선 또는 무선 통신 모드들을 통하는 것과 같이 클라우드에서 또는 서버에서와 같이 원격으로 저장된 데이터에 액세스한다. 유사하게, PCD(100)는 다양한 출력 디바이스들, 예컨대, 터치 스크린들, 스피커들, 촉각 엘리먼트들 등을 사용하여, 사회적 상호작용에 결합한 동안 사용자에게 정보를 출력한다. 컴패니언 디바이스에 관한 데이터, 센서들, 프로세서들 및 통신 모드들의 동작 및 상호운용성을 상세화한 추가적인 비제한적 개시는, 공개된 미국 출원 2009/0055019 A1에서 발견될 수 있고, 상기 미국 출원의 내용들은 인용에 의해 본원에 통합된다.[00164] According to various exemplary, non-limiting embodiments described below, a PCD utilizes a plurality of sensors in communication with a processor to sense data. As described below, these sensors operate to capture all manner of sensor input, and the processor operates on sensor input through a series of programmable algorithms for performing tasks. In accomplishing these tasks, the PCD 100 may use data stored in a local memory that forms part of the PCD 100, and may be stored remotely, such as in the cloud or through a server, such as via wired or wireless communication modes. Access the data. Similarly, the PCD 100 uses various output devices, such as touch screens, speakers, tactile elements, and the like, to output information to the user while coupled to social interaction. Additional non-limiting disclosures detailing the operation and interoperability of data, sensors, processors and communication modes for companion devices can be found in published US application 2009/0055019 A1, Lt; / RTI >

[00165] 본 명세서에서 설명되는 실시예들은, 특히 PCD(100)와 사용자 사이에서 사회적 상호작용을 달성하기 위해, 이러한 컴패니언 디바이스가 적용될 수 있는 특징들 및 기능에 대한 신규하고 자명하지 않은 실시예들을 제시한다. 당업자에게 공지된 바와 같이, 물리적 환경으로부터 소셜 큐를 평가 및 검출하기 위해 다양한 형태들의 센서 데이터 및 기술들이 사용될 수 있음이 이해된다. 이러한 기술들은, 음성 및 스피치 인식, 아이 움직임 추적, 인간 자세의 시각적 검출, 포지션, 모션 등을 포함하지만 이에 제한되는 것은 아니다. 이러한 기술들을 참조로 설명되지만, 본 개시는, 본 명세서에서 설명되는 특징들 및 실시예들을 달성하기 위해 PCD(100)에 의한 데이터의 포착, 프로세싱 및 출력을 위한 임의의 그리고 모든 방법들을 광범위하게 포함하게 된다.[00165] The embodiments described herein provide new and untouched embodiments of features and functions to which such companion devices can be applied, particularly to achieve social interaction between the PCD 100 and the user present. It is understood that various types of sensor data and techniques may be used to evaluate and detect a social queue from a physical environment, as is known to those skilled in the art. These techniques include, but are not limited to, voice and speech recognition, eye movement tracking, visual detection of human posture, position, motion, and the like. Although described with reference to these techniques, the present disclosure broadly includes any and all methods for capturing, processing, and outputting data by PCD 100 to achieve the features and embodiments described herein .

[00166] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는 순수하게 물리적 실시예에서, 예컨대, 모바일 폰, PDA, 워치 등과 같은 모바일 연산 디바이스 상에서 실행되는 경우 가상의 존재로 표현될 수 있거나, 또는 물리적/가상 로봇의 혼합 모드로 표현될 수 있다. 일부 실시예들에서, 혼합 모드, 물리적 또는 가상 PCD를 구동하기 위한 소스 정보는, 모두 동일한 실시예인 것처럼 유도될 수 있다. 예컨대, GUI 인터페이스를 통해 입력되고 데이터베이스에 저장될 수 있는 소스 정보는, 기계적 PCD 뿐만 아니라 가상 PCD의 일부를 형성하는 디스플레이의 애니메이션 컴포넌트를 구동할 수 있다. 일부 실시예들에서, 소스 정보는, AI 시스템들로부터의 출력들, 실시간 감지로부터의 출력들; 소스 애니메이션 소프트웨어 모델들, 운동학적 정보 모델들 등을 포함하는 다양한 소스들을 포함한다. 일부 실시예들에서, 데이터는, (소스에서) 순수하게 가상의 캐릭터의 거동에 관한 단일 소스로부터 푸시될 수 있고, 그 다음, 물리적 모드 뿐만 아니라 물리적 PCD에 대한 가상 모드들을 출력할 수 있다. 이러한 방식으로, PCD의 실시예들은, 순수하게 물리적인 것으로부터 전적으로 가상인 모드, 그리고 둘의 일부를 포함하는 혼합 모드까지의 범위에 걸쳐있을 수 있다. PCD(100)는, 클라우드에 저장될 수 있고, 사용자가 물리적 디바이스로 행한 것을 기억되게 허용할 수 있는 코어 페르소나를 포함하고 코어 페르소나로서 표현되어, 가상 페르소나가, 물리적 디바이스로 발생하고 있는 것을 기억하고 대응할 수 있고, 그 반대도 마찬가지이다. 예컨대, 적절한 경우 하나의 인스턴스로부터 다른 인스턴스로 전이하는 것, 듀얼 경험을 갖는 것 등을 위해, 클라우드를 통해 물리적 및 가상 인스턴스들을 관리할 수 있다.[00166] According to exemplary and non-limiting embodiments, the PCD 100 may be represented in a purely physical embodiment as a virtual entity when executed on a mobile computing device, such as a mobile phone, PDA, watch, Or may be represented in a mixed mode of physical / virtual robots. In some embodiments, source information for driving a mixed mode, physical, or virtual PCD may be derived as if they were all the same embodiment. For example, source information that is input via a GUI interface and can be stored in a database may drive a mechanical PCD as well as an animation component of the display that forms part of the virtual PCD. In some embodiments, the source information includes outputs from AI systems, outputs from real-time detection; Source animation software models, kinematic information models, and the like. In some embodiments, the data may be pushed from a single source (at the source) about the behavior of a purely virtual character, and then output virtual modes for the physical PCD as well as the physical mode. In this way, embodiments of the PCD can span ranges from purely physical to completely virtual, and to mixed modes that include some of the two. PCD 100 includes a core persona that can be stored in the cloud and can allow the user to remember what he or she has done with the physical device and is represented as a core persona that remembers that the virtual persona is occurring on the physical device And vice versa, and vice versa. For example, physical and virtual instances can be managed through the cloud, such as transitioning from one instance to another as appropriate, having dual experience, and the like.

[00167] 예시된 바와 같이, PCD(100)는, 일반적으로 원형 링으로 분리된 3개의 분리된 바디 세그먼트들을 포함하는 3부 설계를 통합한다. 내부 모터들(미도시)과 같은 링을 중심으로 각각의 바디 세그먼트를 회전시킴으로써, PCD(100)는, 다양한 폼 팩터들을 달성하도록 자신의 형상을 변경할 뿐만 아니라 센서들(102, 104, 106, 108, 112)로 사용자들 및 다른 오브젝트들을 트래킹하도록 구성된다. 다양한 실시예들에서, PCD(100)의 속성들은, 터치 스크린(104)의 형상, 표현적 바디 이동, 특정한 표현적 사운드들 및 기억법, 말할 때의 특정한 품질의 프로소디 및 음성 품질, 디지털 인터페이스의 세부사항들, PCD(100)의 "얼굴들", 풀 스펙트럼 LED 조명 엘리먼트 등을 포함하여(그러나 이에 제한되는 것은 아님) 정적으로 또는 동적으로 구성될 수 있다.[00167] As illustrated, the PCD 100 incorporates a three part design that includes three separate body segments, generally separated by a circular ring. By rotating each body segment about a ring, such as internal motors (not shown), the PCD 100 is able to change its shape to achieve various form factors, as well as change the shape of the sensors 102, 104, 106, 108 , 112 to track users and other objects. In various embodiments, the attributes of the PCD 100 include, but are not limited to, the shape of the touch screen 104, the expressive body movement, specific expressive sounds and memories, the prosody and voice quality of a particular quality of speech, May be configured statically or dynamically, including but not limited to, details of the PCD 100, "faces" of the PCD 100, full spectrum LED lighting elements, and the like.

[00168] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는, 많은 입력들 및 출력들이 동시에 액티브일 수 있는 멀티-모드 사용자 인터페이스를 사용하도록 구성될 수 있다. 이러한 타입의 동시적 인터페이스는 견고한 사용자 경험을 제공할 수 있다. 일부 실시예들에서, 사용자 인터페이스 입력들 또는 출력들 중 하나 이상은, PCD(100)의 비교적 덜 최적인 동작을 초래하는 환경에 따라 손상될 수 있다. 다양한 모드들을 동시에 동작시키는 것은, 사용자 경험 및 디바이스와의 상호작용의 페일-세이프(fail-safe)를 보조하여 통신의 무손실을 보장할 수 있다.[00168] According to exemplary, non-limiting embodiments, the PCD 100 may be configured to use a multi-mode user interface, where many inputs and outputs may be active at the same time. This type of concurrent interface can provide a robust user experience. In some embodiments, one or more of the user interface inputs or outputs may be compromised depending on the circumstances that result in relatively less optimal operation of the PCD 100. Simultaneously operating the various modes may assist the user experience and fail-safe interaction with the device to ensure loss of communication.

[00169] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는 PCD(100)의 사용자에게 풍부한 경험을 제공하기 위해 하나 또는 그 초과의 입력들을 프로세싱하도록 구성될 수 있다. PCD(100)는 사용자의 스피치를 인식하도록 구성될 수 있다. 예컨대, PCD(100)는 "긍정 오류" 관여들을 감소시키기 위해 스피치로부터 "웨이크 업 워드" 및/또는 다른 메커니즘을 식별한다. 일부 실시예들에서, PCD(100)는 N x M 피트의 니어-필드 범위에서 스피치를 인식하도록 구성될 수 있고, 여기서 N 및 M은 스피치의 사운드 품질 및 PCD의 검출 감도에 의해 결정될 수 있다. 다른 실시예들에서, PCD(100)는, 적어도 12 피트 x 15 피트 룸 크기를 커버하는 N 피트 초과의 파-필드 범위로 스피치를 인식하도록 구성될 수 있다. 일부 실시예들에서, PCD(100)는 발화된 언어와는 다른 사운드들을 식별하도록 구성될 수 있다. PCD는, PCD가 인식할 수 있고 그에 대해 동작할 수 있는 사운드들로 구성된 사운드 서명 데이터베이스를 이용할 수 있다. PCD는 이러한 데이터베이스의 콘텐츠를 직접 또는 클라우드 기반 통신들을 통해 다른 PCD 디바이스들과 공유할 수 있다. 제한이 아닌 예로서, 발화된 언어와는 다른 사운드들은, 유리가 깨지는 것, 도어 벨, 전화 벨, 사람이 넘어지는 것, 사이렌들, 총소리들, 가청 알람들 등에 대응하는 사운드들을 포함할 수 있다. 추가로, PCD(100)는, PCD(100)의 기존의 분류기들에 매칭하지 않는 사운드의 소스를 식별시키도록 사용자에게 요청함으로써, 새로운 사운드들을 "학습"하도록 구성될 수 있다. 디바이스는 다수의 언어들에 응답할 수 있다. 일부 실시예들에서, PCD(100)는 웨이크-업 단어를 갖는 니어-필드 범위의 외부에 있는 사용자에 대해 응답하도록 구성될 수 있다. 사용자는 디바이스의 시야로 들어오도록 요구받을 수 있다.[00169] According to exemplary, non-limiting embodiments, the PCD 100 may be configured to process one or more inputs to provide a rich experience for the user of the PCD 100. The PCD 100 may be configured to recognize a user's speech. For example, the PCD 100 identifies " wakeup words " and / or other mechanisms from speech to reduce " positive error " In some embodiments, the PCD 100 may be configured to recognize speech in a near-field range of N x M feet, where N and M may be determined by the sound quality of the speech and the detection sensitivity of the PCD. In other embodiments, the PCD 100 may be configured to recognize speech in a far-field range exceeding N feet, covering a room size of at least 12 feet by 15 feet. In some embodiments, the PCD 100 may be configured to identify sounds that differ from the spoken language. The PCD can use a sound signature database comprised of sounds that the PCD can recognize and operate on. The PCD may share the contents of such a database with other PCD devices either directly or through cloud-based communications. By way of example, and not by way of limitation, sounds other than a spoken language may include sounds corresponding to glass breaks, door bells, telephone bells, people falling over, sirens, gunshots, audible alarms, . Additionally, the PCD 100 may be configured to " learn " new sounds by asking the user to identify a source of sound that does not match the existing classifiers of the PCD 100. [ A device may respond to multiple languages. In some embodiments, the PCD 100 may be configured to respond to a user outside the near-field range with wake-up words. The user may be asked to enter the device's field of view.

[00170] 일부 실시예들에서, PCD(100)는, 스피치 입력이 임의의 이유로 절충될 때 사용될 수 있는 자신의 표면 상의 터치 감지 영역들을 가질 수 있다. 이러한 터치 입력들을 사용하여, PCD(100)는 예/아니오 질문들을 질문하거나 스크린 상에 옵션들을 디스플레이할 수 있고, 스크린 상의 사용자의 터치를 사용자로부터의 입력들로서 고려할 수 있다. 일부 실시예들에서, PCD(100)는, 특히 2 명 이상의 사용자들이 시야 내에 있을 때, 다른 것으로부터 하나의 사용자를 구별하기 위해 비전 및 이동을 사용할 수 있다. 추가로, PCD(100)는 니어-필드 범위 내의 총 스켈레톤의 자세 및 이동뿐만 아니라 일부 공통의 제스처들을 해석할 수 있다. 이러한 제스처들은 디바이스 제어보다 사회적 상호작용을 향해 더 많이 배향될 수 있다. 일부 실시예들에서, PCD(100)는 포토들 및 영화들을 촬영하기 위한 카메라들을 포함하도록 구성될 수 있다. 실시예에서, 카메라는, 사용자가 카메라의 미리 결정된 범위 내에 있을 때 포토들 및 영화들을 촬영하도록 구성될 수 있다. 게다가, PCD(100)는 비디오 회의(팝-인스)를 지원하도록 구성될 수 있다. 추가로, PCD(100)는, 카메라가 포토 모드에 있을 때, "레드 아이"를 제거하기 위한 모드를 포함하도록 구성될 수 있다.[00170] In some embodiments, the PCD 100 may have touch sensitive areas on its surface that can be used when the speech input is compromised for any reason. Using these touch inputs, the PCD 100 may ask yes / no questions, display options on the screen, and consider the user's touch on the screen as inputs from the user. In some embodiments, PCD 100 may use vision and movement to distinguish one user from another, particularly when two or more users are in view. In addition, the PCD 100 may interpret some common gestures as well as posture and movement of the total skeleton within the near-field range. These gestures can be oriented more towards social interaction than device control. In some embodiments, the PCD 100 may be configured to include cameras for capturing photos and movies. In an embodiment, the camera may be configured to photograph the photos and movies when the user is within a predetermined range of the camera. In addition, the PCD 100 may be configured to support video conferencing (pop-in). In addition, the PCD 100 may be configured to include a mode for removing the " redeye " when the camera is in the photo mode.

[00171] 일부 실시예들에서, PCD(100)는, 자신이 픽업, 운반, 강하하는지 등을 결정하도록 구성될 수 있다. 게다가, PCD(100)는 자력계를 구현하도록 구성될 수 있다. 일부 실시예들에서, PCD(100)는 주변 조명 레벨들을 결정할 수 있다. 게다가, PCD(100)는 주변 광 레벨에 기반하여 디스플레이 및 액센트 조명 밝기 레벨들을 적절한 레벨로 조절할 수 있다. 일부 실시예들에서, PCD(100)는 디바이스의 위치를 근사화하기 위해 GPS를 사용하는 능력을 가질 수 있다. PCD(100)는 거주지 내의 상대적인 위치를 결정할 수 있다. 일부 실시예들에서, PCD(100)는 총 또는 파 필드 모션 검출을 보조하기 위해 하나 또는 그 초과의 수동 IR 모션 검출 센서들(PIR)을 포함하도록 구성될 수 있다. 일부 실시예들에서, PCD(100)는 환경의 주변 온도를 표시하기 위한 적어도 하나의 서미스터를 포함할 수 있다.[00171] In some embodiments, the PCD 100 may be configured to determine whether it is picking up, carrying, dropping, or the like. In addition, the PCD 100 may be configured to implement a magnetometer. In some embodiments, the PCD 100 may determine ambient illumination levels. In addition, the PCD 100 can adjust the display and accent lighting brightness levels to an appropriate level based on the ambient light level. In some embodiments, the PCD 100 may have the ability to use GPS to approximate the location of the device. The PCD 100 may determine the relative location within the residence. In some embodiments, the PCD 100 may be configured to include one or more passive IR motion detection sensors (PIR) to assist in total or far field motion detection. In some embodiments, the PCD 100 may include at least one thermistor for indicating the ambient temperature of the environment.

[00172] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 "하나의 음성" 영어를 사용자에게 이해 가능한 자연스러운 음성으로 말하도록 구성될 수 있다. PCD(100)는 애니메이팅된 디바이스 감정 상태를 모방하기 위해(PCD(100)가 슬플 때 슬픈 소리를 냄 등) 구두의 음성의 톤을 변경하도록 구성될 수 있다. 일부 실시예들에서, PCD(100)는 스피치, 높은 충실도 음악 및 사운드 효과들을 재생할 수 있는 적어도 하나의 스피커를 포함하도록 구성될 수 있다. 실시예에서, PCD(100)는 다수의 스피커들, 즉, 스피치를 위한 하나, 음악을 위한 하나 및/또는 특수 가청 신호들 및 알람들을 위한 부가적인 스피커를 가질 수 있다. 스피치에 전용된 스피커는 사용자를 향해 포지셔닝되고, 음성 주파수 응답에 대해 튜닝될 수 있다. 음악에 전용된 스피커는 풀 주파수 응답에 대해 튜닝될 수 있다. PCD(100)는 실제 컬러, 풀 프레임 레이트 디스플레이를 갖도록 구성될 수 있다. 일부 실시예들에서, 디스플레이된 능동 이미지는 지름이 적어도 4-1/2"인 원형(마스킹됨)일 수 있다. 일부 실시예들에서, PCD(100)는 최소 이동의 3 자유도를 가질 수 있어서, 환경의 360도 센서 커버리지 및 인간형 자세들 및 이동들의 범위(액션의 표현 라인) 둘 모두를 허용한다. PCD(100)는 물리적 애니메이션을 사운드, 스피치, 액센트 조명 및 디스플레이 그래픽들에 동기화하도록 구성될 수 있다. 이러한 동기화는 인간의 인지에 대해 끊김이 없도록 충분히 밀접할 수 있다. 일부 실시예들에서, PCD(100)는, 주변 통지 및 사회적 상호작용 둘 모두에 대한 액센트 조명을 사용할 수 있는 특정된 영역들을 가질 수 있다. 디바이스 형태에 의존하여, 액센트 조명은, PCD(100)의 카메라가 포토 또는 영화 캡쳐 모드에 있을 때, 포토 내의 대상을 조명하는 것을 도울 수 있다. 일부 실시예들에서, PCD(100)는, 카메라가 포토 캡쳐 모드에 있을 때, 포토 내의 대상을 자동적으로 조명할 카메라 플래시를 가질 수 있다. 추가로, 액센트 조명이 대상의 조명을 달성하는 것이 더 양호할 수 있다. 게다가, PCD(100)는, 카메라가 포토 캡쳐 모드에 있을 때, "레드 아이"를 제거하기 위한 모드를 가질 수 있다. [00172] In accordance with illustrative, non-limiting embodiments, the PCD 100 may be configured to speak "one voice" English in a natural voice understandable to the user. The PCD 100 may be configured to change the tone of the verbal voice to mimic the animated device emotion state (such as sad when the PCD 100 is sad). In some embodiments, the PCD 100 may be configured to include at least one speaker capable of reproducing speech, high fidelity music, and sound effects. In an embodiment, the PCD 100 may have multiple speakers, one for speech, one for music and / or special audible signals, and additional speakers for alarms. Speakers dedicated to speech can be positioned towards the user and tuned for voice frequency response. Speakers dedicated to music can be tuned for full-frequency response. The PCD 100 may be configured to have a full color, full frame rate display. In some embodiments, the displayed active image may be circular (masked) with a diameter of at least 4-1 / 2 ". In some embodiments, the PCD 100 may have three degrees of freedom of minimal movement , A 360 degree sensor coverage of the environment, and a range of humanoid poses and movements (representation lines of actions). The PCD 100 is configured to synchronize physical animation to sound, speech, accent lighting, and display graphics In some embodiments, the PCD 100 may be capable of using accent lighting for both ambient notification and social interaction. In some embodiments, Depending on the device type, accent lighting may help illuminate an object in the photo when the camera of the PCD 100 is in the photo or movie capture mode In some embodiments, the PCD 100 may have a camera flash that automatically illuminates an object in the photo when the camera is in the photo capture mode. In addition, the PCD 100 may have a mode for removing the " redeye " when the camera is in the photo capture mode.

[00173] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 사용자를 식별 및 추적할 수 있다. 실시예에서, PCD(100)는, 사람이 니어-필드 범위에 진입할 때를 통지할 수 있다. 예를 들면, 니어-필드 범위는 10 피트일 수 있다. 다른 실시예에서, PCD(100)는 사람이 파-필드 범위에 진입할 때를 통지할 수 있다. 예를 들면, 파-필드 범위는 10 피트일 수 있다. 일부 실시예들에서, PCD(100)는 비디오(안면 인식), 깊이 카메라(스켈레톤 특징 매칭) 및 사운드(음성 ID)의 조합을 사용하여 최대 5 명의 상이한 사용자들을 식별할 수 있다. 실시예에서, PCD(100)가 인식할 수 있을 사용자들을 학습하기 위해 "학습" 루틴이 PCD(100)에 의해 사용된다. 일부 실시예들에서, PCD(100)는 비디오, 깊이 카메라 및 청각의 장면 분석의 조합을 사용하여 니어-필드 범위 내의 사용자들을 풀 360도로 로케이팅 및 추적할 수 있다. 일부 실시예들에서, PCD(100)는 10 피트의 원거리 범위 내의 사용자들을 풀 360도로 로케이팅 및 추적할 수 있다. 일부 실시예들에서, PCD(100)는, 사용자들이 니어-필드 범위 내에 있을 때마다 자신에 대해 상이한 사용자들의 위치들의 내부 맵을 유지할 수 있다. 일부 실시예들에서, PCD(100)는, 사용자가 PCD(100)로부터 더 멀어질 때 기능 레벨을 저하시킬 수 있다. 실시예에서, PCD(100)의 전체 기능은 PCD(100)의 니어-필드 범위 내의 사용자들에게 이용 가능할 수 있다. 일부 실시예들에서, PCD(100)는 사용자들의 무드 및 응답을 추적하도록 구성될 수 있다. 실시예에서, PCD(100)는 비디오 분석, 스켈레톤 추적, 스피치 프로소디, 사용자 어휘 및 구두의 심문(즉, 디바이스가 "how are you?"라고 묻고, 응답을 해석함)의 조합을 통해 사용자 또는 사용자들의 그룹의 무드를 결정할 수 있다. [00173] In accordance with illustrative, non-limiting embodiments, the PCD 100 may identify and track the user. In an embodiment, the PCD 100 may notify when a person enters a near-field range. For example, the near-field range may be 10 feet. In another embodiment, the PCD 100 may notify when a person enters the far-field range. For example, the par-field range may be 10 feet. In some embodiments, the PCD 100 may identify up to five different users using a combination of video (facial recognition), depth camera (skeleton feature matching) and sound (voice ID). In the embodiment, a " learn " routine is used by the PCD 100 to learn the users that the PCD 100 will be able to recognize. In some embodiments, the PCD 100 may use a combination of video, depth camera, and auditory scene analysis to locate and track users within a near-field range at full 360 degrees. In some embodiments, the PCD 100 may locate and track full 360 degrees of users within a 10 foot range. In some embodiments, the PCD 100 may maintain an internal map of the locations of different users for itself whenever users are within a near-field range. In some embodiments, the PCD 100 may degrade the functional level when the user is further away from the PCD 100. [ In an embodiment, the overall functionality of the PCD 100 may be available to users in the near-field range of the PCD 100. In some embodiments, the PCD 100 may be configured to track the mood and response of users. In an embodiment, the PCD 100 may provide a user or user with a combination of video analysis, skeleton tracking, speech prosody, user vocabulary, and verbal interrogation (i.e., the device asks "how are you? The mood of the group of users can be determined.

[00174] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 감정 콘텐츠를 그의 애니메이션들로 혼합하기 위해 휴먼 소셜 코드로 프로그래밍될 수 있다. 특히, 사용자 표현의 인지된 감정 콘텐츠에 기반하여, 출력들의 감정 콘텐츠를 적절히 완전히 자율적인 방식으로 조절하기 위해 프로그래매틱 지능이 PCD(100)에 적용되어야 한다. PCD(100)는 스피치, 조명, 이동 및 사운드 효과들의 조합을 통해 사용자의 감지된 무드를 개선하려고 시도하도록 프로그래밍될 수 있다. 추가로, PCD 소셜 코드는 사용자와의 관계를 구축하기 위한 능력, 즉, 거동 미러링, 헤드 포즈들 모방 등을 제공할 수 있다.[00174] According to illustrative, non-limiting embodiments, PCD 100 may be programmed with human social code to mix emotional content into its animations. In particular, based on the perceived emotional content of the user representation, the programmatic intelligence should be applied to the PCD 100 to adjust the emotional content of the outputs in a fully autonomous manner as appropriate. The PCD 100 may be programmed to attempt to improve the detected mood of the user through a combination of speech, lighting, movement, and sound effects. In addition, the PCD social code can provide the ability to build relationships with users, i.e., mirroring behavior, imitating head poses, and the like.

[00175] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 학습된 사용자 선호도들에 기반하여 스포츠 뉴스 및 게임들, 날씨 보고들, 뉴스 클립들, 현재 사건들에 관한 정보 등을 포함하는 예방적으로 커스터마이징된 인터넷 콘텐츠를 사회적, 개입 방법으로 사용자에게 전달하고 및/또는 사용자의 잠재적인 관심들을 넓히는 방식으로 그 정보 및 데이터를 공유하기 위해 그 자신의 선호도들을 발전시키도록 프로그래밍될 수 있다. [00175] According to illustrative, non-limiting embodiments, the PCD 100 may provide information on sports news and games, weather reports, news clips, current events, etc., based on learned user preferences Can be programmed to develop their own preferences to share the information and data in a manner that communicates proactively customized Internet content, including social and interventional methods, to the user and / or broadens the potential interests of the user have.

[00176] PCD 디바이스는, PCD 디바이스가 인식하는 각각의 별개의 사용자에게 콘텐츠가 통신되는 방식 및 콘텐츠의 타입 둘 모두를 맞춤화하는 능력으로 프로그래밍될 수 있다.[00176] A PCD device may be programmed with the ability to customize both the manner in which content is communicated to and the type of content to each distinct user that the PCD device recognizes.

[00177] PCD 디바이스는, 전달된 인터넷 콘텐츠의 사용자 선호도들, 그에 대한 사용자 반응 및 그의 프로세싱 습관들에 기반하여 시간에 걸쳐 별개의 사용자로의 전달/콘텐츠의 커스터마이징화(customization)를 개선하고 최적화하는 능력으로 프로그래밍될 수 있다.[00177] The PCD device may be adapted to improve and optimize the user preferences of the delivered Internet content, the user response thereto, and the customization of delivery / content to different users over time based on their processing habits Capability.

[00178] PCD는, 전달된 정보가 사용자에 의해 이해되었다는 것을 확인하기 위해 사용자와의 사회적 다이얼로그에 관여하도록 프로그래밍될 수 있다.[00178] The PCD can be programmed to engage in a social dialog with the user to confirm that the information conveyed is understood by the user.

[00179] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 사용자의 활동을 관리 및 모니터링하도록 구성될 수 있다. 일부 실시예들에서, 서비스와 관련하여 통신 디바이스들(122)은, 일단 사용자들이 쇼핑 트립을 위해 떠났다면, 사용자에게 통신될 수 있는 해야 할 일, 식료품 또는 다른 리스트들을, 사용자의 요청 시에, 생성 및 저장한다. 일부 실시예들에서, PCD(100)는 (서비스를 통해) 사용자 및 모바일 폰으로 텍스트(SMS) 메시지로서 리스트를 푸시하거나, 요청 시에, 사용자의 모바일 또는 웹 앱 중 어느 하나의 사용자에 의해 풀링될 수 있다. 일부 실시예들에서, 사용자는 PCD(100) 상에서 음성을 통해 또는 서비스를 통한 모바일 또는 웹 앱을 통해 그러한 요청을 할 수 있다. PCD(100)는 리스트들을 관리(즉, 구매된, 완료된, 더 이상 필요하지 않은 아이템들을 제거, 사용자 이력에 기반하여 부가적인 리스트 아이템들에 대한 제안들을 함 등)하기 위해 사용자와 상호작용할 수 있다. PCD(100)는 주변 대화에서 핵심 어구들을 듣고 이해함으로써 리스트에 부가할 필요성을 추론할 수 있다(즉, 디바이스는 "we are out of coffee"라는 것을 듣고, 사용자들이 식료품 리스트에 커피를 부가하는 것이 좋은지를 사용자에게 질문함)[00179] In accordance with illustrative, non-limiting embodiments, the PCD 100 may be configured to manage and monitor user activity. In some embodiments, the communication devices 122 in connection with the service may send a to-do item, a grocery item or other list that can be communicated to the user, once the user has left for a shopping trip, Create and store. In some embodiments, the PCD 100 may push the list as a text (SMS) message to the user and the mobile phone (via the service), or may, upon request, be pulled by a user of either the user's mobile or web app . In some embodiments, a user may make such a request over the PCD 100, either via voice or through a mobile or web app via a service. The PCD 100 may interact with the user to manage lists (i.e., purchase, complete, remove items that are no longer needed, make suggestions for additional list items based on user history, etc.) . PCD 100 can infer the need to add to the list by listening and understanding key phrases in the surrounding conversation (i. E., Hearing that the device is "we are out of coffee" and adding the coffee to the grocery list Ask the user if it is good)

[00180] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 사용자-생성 리마인더들 또는 메시지들을 정확한 시간들에 제공하도록 구성될 수 있다. PCD(100)는 정확한 시간들에 리마인더들을 전달하기 위한 조건들을 설정하는데 사용될 수 있다. 실시예에서, 리마인더들에 대한 조건들은 "the first time you see me tomorrow morning" 또는 "the next time my daughter is here", 또는 심지어 "the first time you see me after noon next Tuesday" 등과 같은 실시간 조건들을 포함할 수 있다. 일단 조건세트가 만족되면, PCD(100)는 ("룩-앳(look-at)" 뿐만 아니라 바디 언어/표현 관점으로부터) 사용자에 관여하고, 적절한 음성 및 문자로 리마인더를 전달할 수 있다. 일부 실시예들에서, PCD(100)는 리마인더의 무드 콘텐츠를 분석하고, 그 리마인더의 애니메이션/조명/전달에 영향을 주기 위해 이러한 정보를 사용할 수 있다. 다른 실시예들에서, 사용자들이 리마인드된 액션을 수행하였는지를 사용자에게 질문함으로써 PCD(100)가 리마인더를 전달한 후에, PCD(100)는 사용자를 따라 할 수 있다.[00180] In accordance with illustrative, non-limiting embodiments, the PCD 100 may be configured to provide user-generated reminders or messages at the correct times. The PCD 100 can be used to set conditions for delivering reminders at precise times. In an embodiment, the conditions for the reminders may be set to "real time conditions" such as "the first time you see me tomorrow morning" or "the next time my daughter is here" or even "the first time you see me after noon next Tuesday" . Once the condition set is satisfied, the PCD 100 can engage with the user (from a "body-language / expression point of view" as well as "look-at") and deliver the reminder with appropriate voice and text. In some embodiments, the PCD 100 may use this information to analyze the mood content of the reminder and to influence the animation / illumination / delivery of the reminder. In other embodiments, the PCD 100 may follow the user after the PCD 100 delivers the reminder by asking the user if they performed the remind action.

[00181] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는, 사용자에 의해 제공될 수 있는 요청 시에 사용자의 부재를 모니터링할 수 있다. 예를 들면, 사용자는, 그들이 밖으로 보행하는 때 및 이유(예를 들면, "I'm going for a walk now"), 및 활동의 예상된 듀레이션을 PCD(100)에 말할 수 있어서, PCD(100)는 사용자가 원하는/요청된 시간프레임 내에 리턴하는 것을 보장할 수 있다. 추가로, PCD(100)는, 사용자가 특정된 윈도우 내에 리턴되지 않은 경우에, 이러한 만일의 사태에 대해 사용자에 의해 특정된 긴급상황 연락처들을 통지할 수 있다. PCD(100)는 텍스트 메시지를 통해 및/또는 모바일 앱을 통해 긴급상황 연락처들을 통지할 수 있다. PCD(100)는, 사용자가 리턴할 때, 활동에 대한 존재 및 후속 조치를 인식할 수 있다(즉, 어떠한 활동이 있는지 또는 활동에 관련된 다른 질문들을 질문함). 그러한 타입의 상호작용은 PCD(100)와 사용자 사이의 사회적 상호작용을 가능하게 하고, 또한 학습 데이터베이스를 위한 사용자에 관한 정보의 수집을 가능하게 할 수 있다. PCD(100)는 이러한 목적으로 사용자에 의해 식별된 그러한 가족/친구들에게 체크-아웃/체크-인 시간들 및 현재 사용자 상태를 보여줄 수 있다. 이것은 모바일 앱을 통해 달성될 수 있다. PCD(100)는 더 깊이 있는 활동 모니터링/패터닝/보고를 할 수 있다.[00181] In accordance with illustrative, non-limiting embodiments, the PCD 100 may monitor the absence of a user upon a request that may be provided by the user. For example, the user may speak to the PCD 100 when they are walking out and for reasons (e.g., "I'm going for a walk now") and the expected duration of the activity so that the PCD 100 ) May ensure that the user returns within the desired / requested time frame. In addition, the PCD 100 may notify the emergency contacts specified by the user for this event if the user is not returned within the specified window. PCD 100 may notify emergency contacts via a text message and / or via a mobile app. When the user returns, the PCD 100 may be aware of the presence and subsequent actions of the activity (i. E., Asking any activity or other questions related to the activity). Such type of interaction enables social interaction between the PCD 100 and the user, and may also enable the collection of information about the user for the learning database. PCD 100 may show check-out / check-in times and current user status for such family / friends identified by the user for this purpose. This can be achieved through mobile apps. The PCD 100 can perform deeper activity monitoring / patterning / reporting.

[00182] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 하나 또는 그 초과의 데이터 연결을 통해 외부 네트워크에 연결하도록 구성될 수 있다. 일부 실시예들에서, PCD(100)는 와이파이 데이터 연결과 같은 강건하고 높은 대역폭 무선 데이터 연결에 대한 액세스를 가질 수 있다. 실시예에서, PCD(100)는 2.4GHz 및 5GHz 대역들 둘 다에서 2x2 2개의 스트림 MIMO 구성으로 802.11n 와이파이 규격을 구현할 수 있다. 일부 실시예들에서, PCD(100)는 다른 블루투스 디바이스들(메디컬 센서들, 오디오 스피커들 등)에 연결될 수 있다. 실시예에서, PCD(100)는 BLE(Bluetooth 4.0 LE) 규격을 구현할 수 있다. BLE 인에이블 PCD(100) 디바이스는 멀티-모달 사용자 데이터를 포함하고 이를 다른 BLE 인에이블 PCD(100) 디바이스와 공유하도록 그의 UUID를 커스터마이징되게 구성될 수 있다. 일부 실시예들에서, PCD(100)는 3G/4G/LTE 또는 다른 셀룰러 네트워크에 대한 연결성을 가질 수 있다. [00182] In accordance with illustrative, non-limiting embodiments, the PCD 100 may be configured to connect to an external network via one or more data connections. In some embodiments, the PCD 100 may have access to a robust, high bandwidth wireless data connection, such as a Wi-Fi data connection. In an embodiment, the PCD 100 may implement 802.11n WiFi specifications in a 2x2 2 stream MIMO configuration in both the 2.4 GHz and 5 GHz bands. In some embodiments, the PCD 100 may be coupled to other Bluetooth devices (such as medical sensors, audio speakers, etc.). In an embodiment, the PCD 100 may implement the BLE (Bluetooth 4.0 LE) specification. The BLE-enabled PCD 100 device may be configured to customize its UUID to include multi-modal user data and share it with other BLE-enabled PCD 100 devices. In some embodiments, the PCD 100 may have connectivity to 3G / 4G / LTE or other cellular networks.

[00183] 예시적이며 비제한적인 실시예들에 따라, 다수의 PCD(100) 디바이스들은 클라우드 기반 서비스에 대한 요구 없이 직접 데이터 공유 및 통신들을 허용하기 위해 애드-혹 네트워킹 기법들을 사용하여 메시 네트워크 구성으로 구성될 수 있다. 대안적으로, 다수의 PCD(100) 디바이스들 간에 공유되는 데이터는, 그것이 프로세싱되고 다수의 PCD(100) 디바이스들로의 브로드캐스팅을 위해 준비될 수 있는 클라우드 기반 데이터베이스/데이터 센터에 업로드되거나 저장될 수 있다. 클라우드 기반 데이터 서비스는 다수의 위치들에서 다수의 PCD(100) 디바이스들에 대한 로컬 및 중앙 데이터 저장소, 공유 및 분배를 제공하도록 메시 네트워크 어레인지먼트와 결합될 수 있다. [00183] In accordance with illustrative, non-limiting embodiments, a number of PCD 100 devices may use ad-hoc networking techniques to allow direct data sharing and communications without the need for cloud- . Alternatively, the data shared between the multiple PCD 100 devices may be uploaded or stored in a cloud-based database / data center where it can be processed and prepared for broadcasting to multiple PCD 100 devices . The cloud-based data service may be combined with mesh networking to provide local and central data storage, sharing, and distribution for multiple PCD (100) devices at multiple locations.

[00184] 예시적이며 비제한적인 실시예들에 따라, 컴패니언 애플리케이션이 PCD(100)에 연결하도록 구성될 수 있다. 일부 실시예들에서, 컴패니언 애플리케이션은, 다음의 플랫폼들: iOS, 안드로이드, 및 웹 상에서 이용 가능하다. 컴패니언 애플리케이션은 특징 또는 기능에 액세스하기 위해 3개 초과의 상호작용들을 요구하지 않을 수 있는 직관적이고 사용하기 쉬운 사용자 인터페이스(UI)를 포함할 수 있다. 컴패니언 애플리케이션은 PCD(100)의 가상 카운터파트에 대한 액세스를 사용자에게 제공할 수 있어서, 사용자는 실제 PCD(100)와 상호작용하기 위해 이 가상 카운터파트에 액세스할 수 있게 된다. [00184] In accordance with exemplary, non-limiting embodiments, a companion application may be configured to connect to the PCD 100. In some embodiments, companion applications are available on the following platforms: iOS, Android, and the Web. A companion application may include an intuitive and easy to use user interface (UI) that may not require more than three interactions to access a feature or function. The companion application can provide the user with access to the virtual counter part of the PCD 100 so that the user can access the virtual counter part to interact with the real PCD 100. [

[00185] 일부 실시예들에서, 사용자는 컴패니언 애플리케이션을 통해 PCD(100)의 활동 로그들, 쇼핑 리스트들과 같은 정보에 액세스할 수 있다. 또한, 컴패니언 애플리케이션은 PCD(100)에 국부적인 사용자 활동의 장기적인 리포트들을 사용자에게 제공할 수 있다. 일부 실시예들에서, 컴패니언 애플리케이션은 비디오 및 오디오를 통해 사용자를 PCD(100)에 연결할 수 있다. 또한, 컴패니언 애플리케이션은 특정한 조건들(예컨대, 로컬 사용자는 체크-인에 의해 예상된 것보다 늦고, 시끄러운 노이즈가 있었고, 로컬 사용자는 무반응이고 등등)에 대해 사용자에게 비동기식으로 경고할 수 있다.[00185] In some embodiments, a user may access information, such as activity logs, shopping lists, of the PCD 100 via a companion application. In addition, the companion application can provide the user with long term reports of local user activity on the PCD 100. In some embodiments, the companion application may connect the user to the PCD 100 via video and audio. In addition, the companion application may asynchronously alert the user to certain conditions (e.g., the local user is later than expected by check-in, there was noisy noise, the local user is unresponsive, etc.).

[00186] 일부 실시예들에서, 일군의 디바이스들에 걸친 제어 또는 연결성을 허용하기 위한 관리/전개 애플리케이션이 웹 플랫폼 상에서 이용 가능할 수 있다. 관리 애플리케이션의 UI는 상세한 리포트들, 셋-업, 전개 및/또는 지원 능력에 대한 빠른 액세스를 요구할 수 있는 병원/부양자 관리자들 또는 구매자들을 인에이블할 수 있다. 또한, 그룹은 관리 애플리케이션을 사용하여 PCD(100) 디바이스들의 관리된 세트에 걸쳐 저장된 정보에 액세스할 수 있다. 관리 애플리케이션은 특정한 조건들(예컨대, 로컬 사용자는 체크-인에 의해 예상된 것보다 늦고, 시끄러운 노이즈가 있었고, 로컬 사용자는 무반응이고 등등)에 대해 관리자에게 비동기식으로 경고할 수 있다. 또한, 관리 애플리케이션은 그의 관리된 디바이스들의 서브세트 또는 모두 다에 걸쳐서 메시지들 및 리마인더들을 브로드캐스트할 수 있다. [00186] In some embodiments, a management / deployment application to allow control or connectivity across a group of devices may be available on the web platform. The UI of the management application may enable hospital / caregiver managers or purchasers who may require detailed reports, quick access to set-up, deployment and / or support capabilities. The group can also use the management application to access information stored across the managed set of PCD 100 devices. The management application may asynchronously alert the administrator for certain conditions (e.g., the local user is later than expected by check-in, noisy noises, local users are unresponsive, etc.). The management application may also broadcast messages and reminders over a subset or all of its managed devices.

[00187] 예시적이며 비제한적인 실시예들에 따라, 지원 콘솔은 PCD(100)의 인원이 하나 또는 그 초과의 디바이스들을 모니터링/지원/진단/전개하도록 허용할 수 있다. 지원 콘솔은 웹 플랫폼 상에서 이용 가능할 수 있다. 일 실시예에서, 지원 콘솔은 고유 일련 번호, 소유자, 기관 전개 세트, 펌웨어 및 애플리케이션 버전 번호들, 또는 등록된 예외사항에 의해 식별될 수 있는 모든 전개된 PCD 디바이스들의 리스트 뷰를 지원할 수 있다. 일 실시예에서, 지원 콘솔은 일련 번호, 소유자, 기관 전개 세트, 펌웨어 및 애플리케이션 버전 번호, 또는 등록된 예외사항들을 포함하는 태그들로 상호작용식 질의들을 지원할 수 있다. 또한, 지원 콘솔은 디바이스 진단들의 발동 및 리포팅을 지원할 수 있다. [00187] In accordance with illustrative, non-limiting embodiments, a support console may allow a person of the PCD 100 to monitor / support / diagnose / deploy one or more devices. A support console may be available on the web platform. In one embodiment, the support console may support a list view of all deployed PCD devices that may be identified by unique serial number, owner, agency deployment set, firmware and application version numbers, or registered exceptions. In one embodiment, the support console may support interactive queries with tags including serial number, owner, agency deployment set, firmware and application version number, or registered exceptions. In addition, the support console can support the triggering and reporting of device diagnostics.

[00188] 예시적이며 비제한적인 실시예들에 따라, 지원 콘솔은 새로운 펌웨어 및 소프트웨어 버전들(푸시 모델)의 전개를 보조할 수 있다. 또한, 지원 콘솔은 더 새로운 NLU들, 새로운 앱들 등의 전개를 보조할 수 있다. 지원 콘솔은 고객 지원 시나리오들, 서비스의 계획된 중단시간과 같은 것들을 통신하기 위해 전개된 디바이스들 모두 또는 서브세트로의 메시지들의 브로드캐스팅 등을 지원할 수 있다. 일부 실시예들에서, 지원 콘솔은, PCD(100)와 상호작용하는데 걸린 시간, 모든 앱들/서비스들에 걸쳐 브레이크다운된 시간, 오디오 및 비디오 지각 알고리즘들에 대한 어그리게이팅된 히트/미스 메트릭들, (데이터 마이닝 등을 지원하기 위해) 로깅된 액션들, 로깅된 예외사항들, 경고 임계치들(예컨대, at what exception level should the support console scream at you?) 등을 포함(그러나 배타적이지 않음)하는 다양한 온-디바이스 메트릭들에 대한 액세스를 지원할 필요가 있을 수 있다. [00188] In accordance with exemplary, non-limiting embodiments, a support console may assist in the deployment of new firmware and software versions (push models). Support consoles can also assist in the deployment of newer NLUs, new apps, and more. The support console may support broadcasting of messages to all or a subset of deployed devices to communicate such as customer support scenarios, planned outage time of the service, and the like. In some embodiments, the support console may be configured to monitor the time it takes to interact with the PCD 100, the breakdown time across all the applications / services, the aggregated hit / miss metrics for audio and video perception algorithms (But not exclusively) logged actions, logged exceptions, alert thresholds (eg, to support data mining, etc.), etc. It may be necessary to support access to various on-device metrics.

[00189] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 원격회의에 관여할 수 있다. 일부 실시예들에서, 원격회의는 단순한 UI를 통해, PCD(100)의 바디 또는 터치스크린(104)을 터치하여, 또는 다수의 구문들, 사운드들 등으로 개시될 수 있는 것과 같은 음성 활성화를 통해 실행되도록 시작할 수 있다. 일 실시예에서, 원격회의를 개시하기 위해 PCD(100)의 기껏 2번의 터치들이 요구된다. 일부 실시예들에서, 콜들은 또한 콜 스케줄링/프롬프팅 특징의 출력으로서 또한 개시될 수 있다. 일단 개시되면, PCD(100)는 와이파이 연결, 블루투스, 전화 연결 또는 전화 기능성에 영향을 주는 이들의 임의의 결합을 사용하면서, 사용자로부터 오디오 데이터를 수신하고 출력하도록 마이크로폰(112) 및 스피커(110)를 사용하여 전화로서 기능할 수 있다. [00189] In accordance with exemplary, non-limiting embodiments, the PCD 100 may participate in teleconferencing. In some embodiments, the teleconference can be accessed via a simple UI, by touching the body or touch screen 104 of the PCD 100, or through voice activation, such as may be initiated with multiple phrases, sounds, You can start to run. In one embodiment, at most two touches of the PCD 100 are required to initiate a teleconference. In some embodiments, calls may also be initiated as an output of a call scheduling / prompting feature. Once initiated, the PCD 100 may be coupled to a microphone 112 and a speaker 110 to receive and output audio data from a user, using any combination of these to effect Wi-Fi connectivity, Bluetooth, Can be used as a telephone.

[00190] 호들은 표준 음성 콜들이거나, 또는 비디오 컴포넌트들을 포함할 수 있다. 이러한 상호작용들 동안, PCD(100)는 대화의 PCD(100) 단부에 대한 카메라맨으로서 기능할 수 있다. 일부 실시예들에서, PCD(100)는 테이블의 중간 또는 PCD(100) 주위의 룸을 점유하는, 가족과 같은 복수의 사용자들과의 다른 사회적 게더링 지점에 배치될 수 있으며, 이들 모두는 콜 동안 깨어있고, 이동하고 활성일 수 있다. 콜 동안, PCD(100)는 원하는 위치의 카메라(106)를 포인팅할 수 있다. 일 실시예에서, PCD(100)는 카메라(106)가 스피커/사용자를 포인팅한 채로 유지하도록 사운드 로컬화 및 얼굴 추적을 활용할 수 있다. 다른 실시예들에서, PCD(100)는 룸 안의 사람들/사용자들에 의해 지시(예컨대, "PCD, look at Ruby")될 수 있다. 다른 실시예들에서, 원격 사람이 디바이스를 통해 추적될 타겟을 특정할 수 있고 PCD(100)는 자동으로 그 타겟을 룩 앳하고 추적할 것이다. 어느 시나리오든, 카메라(106)가 입력으로서 수신하는 것은, 예컨대, 원격 참가자가 스마트폰, 랩톱, 또는 비디오를 디스플레이할 수 있는 다른 디바이스를 사용하는 경우 이들에게 제시된다. [00190] The calls may be standard voice calls, or may include video components. During these interactions, the PCD 100 may function as a cameraman for the PCD 100 end of the conversation. In some embodiments, the PCD 100 may be located at a different social hedging point with a plurality of users, such as a family, occupying a room in the middle of the table or around the PCD 100, It can be awake, moving and active. During the call, the PCD 100 may point to the camera 106 at the desired location. In one embodiment, the PCD 100 may utilize sound localization and face tracking to keep the camera 106 pointing at the speaker / user. In other embodiments, the PCD 100 may be directed (e.g., "PCD, look at ruby") by people / users in the room. In other embodiments, the remote person may specify a target to be tracked via the device and the PCD 100 will automatically look up and track the target. In any scenario, what camera 106 receives as input is presented to them, for example, when a remote participant uses a smartphone, laptop, or other device capable of displaying video.

[00191] 디바이스는 다수의 언어들을 이해하고 응답할 수 있다. 이러한 상호작용 동안, PCD(100)는 또한 음성 입력을 수신하고 프로세서를 통해 입력을 번역하고 번역된 출력을 출력함으로써 국제 연합 인터프리터의 패러다임처럼 링크의 다른 단부 상의 사람에 대한 "인터프리터"로서 기능할 수 있다. PCD(100)가 있는 룸에 TV, iPad 등과 같은 이용 가능한 스크린이 있는 경우, PCD(100)는 예컨대, 블루투스 또는 와이파이를 통해 오디오를, 그리고 이용 가능한 경우, 이 TV 스크린 상에 디스플레이될 원격 참가자의 비디오를 송신할 수 있다. 이용가능한 다른 스크린이 없는 경우, PCD(100)는 원격 참가자로부터의 오디오를 중계할 수 있지만, 어떠한 원격 비디오도 이용 가능하지 않을 수 있다. 이러한 예에서, PCD(100)는 원격 참가자의 단어들을 단지 중계한다. 일부 실시예들에서, PCD(100)는 애니메이팅되고 예컨대, 예컨대, 원격 참가자가 미리 결정된 양의 시간 동안 멈추어 있는 경우, 깜박이거나 아래를 봄으로써 또는 원격 참가자가 매우 흥분되었음을 PCD(100)가 감지하는 경우 약간의 댄스 또는 "시미(shimmy)"를 함으로써 사용자에게 반응할 수 있다. [00191] A device may understand and respond to multiple languages. During such interaction, the PCD 100 may also function as an " interpreter " for the person on the other end of the link, such as the paradigm of the International Union Interpreter, by receiving the speech input, translating the input through the processor and outputting the translated output have. If there is an available screen, such as a TV, iPad, or the like, in the room where the PCD 100 is located, the PCD 100 may receive audio from, for example, Bluetooth or WiFi and, if available, Video can be transmitted. If there is no other screen available, PCD 100 may relay audio from the remote participant, but no remote video may be available. In this example, the PCD 100 simply relays the words of the remote participant. In some embodiments, the PCD 100 is animated and, for example, if the remote participant is stopped for a predetermined amount of time, by blinking or looking down, or when the PCD 100 detects that the remote participant is very excited You can react to the user by doing some dancing or "shimmy".

[00192] 다른 실시예에서, PCD(100)는 링크의 원격 단부 상의 사람의 아바타일 수 있다. 예컨대, 아이 또는 터치 스크린(104) 상에 디스플레이되는 다른 영역은 원격 참가자의 얼굴의 랜더링된 버전(다른 실시예들 중에서, 카툰, 이미지 기반 또는 비디오 스트림)으로 모핑할 수 있다. 랜더링은 PCD(100)에 저장되어 PCD(100)가 액세스 가능할 수 있다. 다른 실시예들에서, PCD(100)는 또한 원격 사용자를 설명하고 연관된 데이터를 리트리브하고 아바타 경험을 강화하기 위해 원격 사용자의 모션/비언어적 큐들을 모방할 수 있다. [00192] In another embodiment, the PCD 100 may be the avatar of a person on the remote end of the link. For example, the eye or other area displayed on the touch screen 104 may be morph into a rendered version of the remote participant's face (in other embodiments, a cartoon, image-based, or video stream). Rendering may be stored in the PCD 100 so that the PCD 100 may be accessible. In other embodiments, the PCD 100 may also mimic the remote user's motion / non-verbal cues to describe the remote user and retrieve the associated data and enhance the avatar experience.

[00193] 일부 실시예들에서, 콜 동안, 원격 또는 로컬 참가자들은 참가자들 및 PCD(100) 카메라 뷰의 정지 이미지들, 비디오 및 오디오 클립들, 또는 메모들(예컨대, "PCD, remember this number")의 저장을 큐잉할 수 있다. 이들 태깅된 아이템들은 적절히 메타-태깅되고 PCD 클라우드에 저장될 것이다. [00193] In some embodiments, during a call, remote or local participants may view still images, video and audio clips, or notes (e.g., "PCD, remember this number") of participants and the PCD 100 camera view ). ≪ / RTI > These tagged items will be appropriately meta-tagged and stored in the PCD cloud.

[00194] 다른 실시예들에 따라, PCD(100)는 또한 요청 시에 원격 상호작용의 자극을 또한 도울 수 있다. 예컨대, 사용자가 아래에서 보다 완전히 설명되는 게임을 제안하도록 PCD(100)에 요청하고(PCD는 연결된 게임 모드를 개시할 것임), 양 참가자들이 동의할 때까지 게임들을 제안할 수 있다. 다른 예에서, 사용자는 이야깃거리에 대해 PCD(100)에 또한 요청할 수 있다. 이에 응답하여, PCD(I100)는 대화 참가자들의 공통 관심사들에 타겟팅되는 "PCD In The Know" 데이터베이스에 액세스하거나, 또는 이들이 이야기할 것을 제안하기 위해 이벤트에 대해 참가자들에 대한 PCD 캘린더를 마이닝할 수 있다(예컨대, "Grandma, tell Ruby about the lunch you had with your friend the other day"). [00194] In accordance with other embodiments, the PCD 100 may also be capable of stimulating remote interaction upon request. For example, a user may ask the PCD 100 to suggest a game that is more fully described below (the PCD will launch a connected game mode) and suggest games until both participants agree. In another example, the user may also request to the PCD 100 for the story distance. In response, the PCD I100 may access the " PCD In The Know " database targeted at the common interests of the conversation participants, or may mine the PCD calendar for the participants for the event to suggest that they speak (For example, "Grandma, tell Ruby about the lunch you had with your friend the other day").

[00195] 스케줄링 보조 [00195] Scheduling Assistance

[00196] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 링크의 다른 단부에 있는 존재의 캘린더 가용성, 특별한 날, 및/또는 지식에 기반하여 콜들을 제안할 수 있다(예컨대, "your mom is home right now, and it's her birthday, would you like to call her?"). 사용자가 제안을 수락하고, 이 경우에, PCD 콜 앱이 PCD(100)와 원격 참가자의 PCD(100), 전화, 스마트 디바이스 또는 스카이프 계정간에 론칭된다. 사용자는 또한 콜을 추후에 스케줄링하도록 PCD(100)에 요청함으로써 제안을 수락할 수 있고, 이 경우에 스케줄링 앱이 그것을 사용자의 캘린더에 추가한다. [00196] According to exemplary, non-limiting embodiments, the PCD 100 may suggest calls based on calendar availability, a special date, and / or knowledge of the presence at the other end of the link (eg, "Your mom is home right now, and it's every birthday, would you like to call her?"). The user accepts the proposal and in this case the PCD call app is launched between the PCD 100 and the remote participant's PCD 100, phone, smart device or Skype account. The user can also accept the suggestion by requesting the PCD 100 to schedule the call at a later time, in which case the scheduling app adds it to the user's calendar.

[00197] 콜 답신 및 메시징 [00197] Call reply and messaging

[00198] 예시적이며 비제한적인 실시예들에 따르면, 콜 응답 및 메시징 기능은 PCD(100)를 사용하여 구현될 수 있다. 이 특징이 PCD(100)에 배치된 음성 또는 비디오 콜들에 적용되고 PCD(100)는 다른 셀룰러 연결 디바이스들에 대한 콜 관리 서비스들을 수행하지 않을 것이다. 도 7을 참고하면, 예시적이며 비제한적인 실시예의 흐름도(700)가 도시된다. 예시된 바와 같이, 단계(702)에서, PCD(100)에 대한 콜이 이루어질 때, PCD(100)는 콜러를 룸에 있는 사람들에게 알릴 수 있다. 룸에 아무도 없는 경우, PCD(100)는 사용자의 캘린더를 체크할 수 있고, 캘린더가 사람들이 홈에 없다는 것을 나타내는 경우, PCD(100)는 PCD(100)와 연관된 음성메일로 직접 콜을 전송할 수 있다(단계 704). 역으로, 캘린더가 사람들이 집에 있다고 나타내는 경우, PCD(100)는 하우스에 있는 사람들의 주의를 끌도록 더 시끄러운 소리(벨, 링들, 고함소리?)를 사용할 것이다(단계 706).[00198] According to exemplary, non-limiting embodiments, the call response and messaging functionality may be implemented using the PCD 100. This feature applies to voice or video calls placed in the PCD 100 and the PCD 100 will not perform call management services for other cellular connected devices. Referring to FIG. 7, a flow diagram 700 of an exemplary, non-limiting embodiment is shown. As illustrated, at step 702, when a call is made to the PCD 100, the PCD 100 can notify the callers to the people in the room. If there is no one in the room, the PCD 100 may check the user's calendar, and if the calendar indicates that people are not in the home, the PCD 100 may send a call directly to the voice mail associated with the PCD 100 (Step 704). Conversely, if the calendar indicates that people are at home, the PCD 100 will use louder sounds (bell, ring, yell?) To attract the attention of the people in the house (step 706).

[00199] 일단 PCD(100)가 그의 사용자의 주의를 끌었다면, 단계(708)에서, PCD(100)는 콜러를 알리고, 그 사람이 통화하기를 원하는지 물어볼 수 있다. 단계(710)에서, 사용자는 단순 터치 인터페이스, 또는 이상적으로 중립 언어 인터페이스로 응답할 수 있다. 사용자가 예라고 답신하는 경우, 단계(712)에서, PCD(100)는, 동기식 온-디맨드 멀티모드 메시징 특징에 설명된 바와 같이 콜을 연결한다. 답신이 아니오인 경우, 단계(714)에서, 콜이 PCD(100) 음성메일로 전송된다.[00199] Once the PCD 100 has caught his user's attention, at step 708, the PCD 100 notifies the caller and may ask if the person wants to talk. At step 710, the user may respond with a simple touch interface, or ideally with a neutral language interface. If the user returns yes, then at step 712, the PCD 100 concatenates the call as described in the synchronous on-demand multimode messaging feature. If the answer is no, at step 714, the call is sent to the PCD 100 voice mail.

[00200] 콜러가 음성메일로 다이렉팅되는 경우, PCD(100)는 콜러들에게 인사하고 메시지를 남길지를 콜러들에게 물어볼 수 있다. 일부 실시예들에서, 음성 또는 음성/비디오(콜러가 Skype 또는 그 등가물을 사용하고 있는 경우) 메시지가, 나중에 재생되기 위해서 기록될 수 있다.[00200] When the caller is directed to a voice mail, the PCD 100 may ask the callers to greet the callers and leave a message. In some embodiments, a voice or voice / video message (if the caller is using Skype or its equivalent) message may be recorded for later playback.

[00201] 사용자가 리턴하고 PCD(100)가 사용자가 다시 룸에 있다는 것을 검출하면, PCD(100)는, 단계(716)에서, 사용자에게 메시지(음성으로 "you have a message" 또는 비언어적으로 조명 방울 등)를 알리고, 사용자가 메시지를 청취하기를 원하는지 묻는다. 예인 경우, PCD(100)는 오디오를 재생하거나 또는 상술된 바와 같이 TV/태블릿/등에서 오디오/비디오 메시지를 재생할 수 있다.[00201] If the user returns and the PCD 100 detects that the user is back in the room, the PCD 100 sends a message (either "you have a message" or non-verbal illumination Blobs, etc.) and asks the user if he or she wants to listen to the message. If yes, the PCD 100 may play back audio or play audio / video messages on a TV / tablet / etc. as described above.

[00202] 사용자는 나중을 위해 메시지를 저장하는 옵션을 가질 수 있다. 그는, 특정 시각에 다시 물어보도록 또는 단지 "later"라고 PCD(100)에게 말하며, 나중에라고 말한 경우, PCD(100)는 미리결정된 양의 시간 이후에 다시 물을 것이다.[00202] The user may have the option of saving the message for later. He will ask the PCD 100 to ask again at a specific time or just " later ", and if it says later, the PCD 100 will ask again after a predetermined amount of time.

[00203] 콜러가 PCD(100)에게 알려지지 않은 경우, PCD(100)는 그 콜을 음성메일로 다이렉팅될 수 있고, 사용자에게, X번호로부터의 식별되지 않은 콜이 수신되었다는 것을 통지하고, 메시지가 기록되었다면 그 메시지를 재생한다. 이후, 사용자는 앞으로 그 번호를 연결/음성메일로부터 효과적으로 차단시킬 것을 PCD(100)에게 지시할 수 있다. PCD(100)는 또한, 사용자가 동기식으로 또는 비동기식으로 콜을 리턴시키길 원하는지를 물어볼 수 있다. 사용자가 수락한 경우, PCD(100)는 사용자의 요청을 완료하기 위해 적절한 메시징 모드에 착수한다. 일부 실시예들에서, PCD(100)는 또한, 콜 관리자 기능을 다른 셀룰러 또는 집에 있는 유선 디바이스들에 제공할 수 있다. 또 다른 실시예들에서, PCD(100)는 콜에 답신하고 대화식으로 콜러에게 메시지를 남길 것을 프롬프트하므로 개인 보조자의 역할을 할 수 있다.[00203] If the caller is not known to the PCD 100, the PCD 100 may direct the call to a voice mail and notify the user that an unidentified call from the X number has been received, Is recorded, the message is reproduced. Thereafter, the user can instruct the PCD 100 to effectively block the number from the connection / voice mails in the future. The PCD 100 may also ask if the user desires to return the call synchronously or asynchronously. If the user accepts, the PCD 100 enters an appropriate messaging mode to complete the user's request. In some embodiments, the PCD 100 may also provide call manager functionality to other cellular or home wired devices. In yet other embodiments, the PCD 100 may act as a personal assistant, returning a call and prompting the caller to leave a message interactively.

[00204] 연결 스토리 읽기 [00204] Read the connection story

[00205] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는 연결 스토리 읽기 앱을 포함하여, 원격 참여자로 하여금, PCD(100)을 사용하여 룸에 있는 로컬 참여자에게 PCD(100)를 "통하여" 스토리를 읽어 줄 수 있게 할 수 있다. 판독기는 스토리를 집어내고 이것을 판독하는 프로세스를 통해 가상 PCD(100)에 의해 가이드된 단순 웹 또는 안드로이드 앱 기반 인터페이스를 통해 상호작용할 수 있다. 판독기는 가상 PCD(100)에 의해 프롬프트된 것으로서 스토리의 단어들을 판독할 수 있다. 일부 실시예들에서, 판독기의 음성은 물리적 PCD(100)에 의해 청취자에게 재생될 것이며, 미리설정된 필터들이 독자의 음성에 적용되므로, 독자는, 그/그녀가 이를 하기 위한 고유 능력을 갖지 않더라도, 믿을 수 없을 만큼 강력한 방법으로 문자들의 "음성들을 수행"할 수 있다. 사운드 트랙 및 효과들이 또한 재생에 삽입될 수 있다. 독자의 인터페이스는 또한 청취자의 "PCD의 전경(Eye View)"을 보여주고, PCD(100)는, 청취자를 비디오에 유지시키는 그의 "사진사" 능력을 사용할 수 있다.[00205] According to exemplary, non-limiting embodiments, the PCD 100 may include a connection story reading application to allow the remote participant to access the PCD 100 to a local participant in the room using the PCD 100, To "read through" the story. The reader may interact via a simple web or Android app based interface guided by the virtual PCD 100 through a process of picking up and reading the story. The reader can read the words of the story as prompted by the virtual PCD 100. In some embodiments, the voice of the reader will be played to the listener by the physical PCD 100, and since the pre-set filters are applied to the voice of the reader, the reader will not have the inherent ability to do so, You can perform "voices" of characters in an incredibly powerful way. Soundtracks and effects can also be inserted into the playback. The reader's interface also shows the listener's "Eye View", and the PCD 100 can use his "photographer" ability to keep the listener on the video.

[00206] 물리적 PCD(100)는 또한, 적절한 때에 단편 애니메이션들(공포의 전율 등)을 갖는 스토리에 반응할 수 있고, 상술된 PCD(100)의 아이가 스토리 엘리먼트들의 지원 시 상이한 형상들로 변형될 수 있다. 이러한 기능으로 PCD 콜 특징 내부를 랩핑할 수 있으므로, 독자 및 청취자는 이것에 대한 대화에 의해 스토리를 중단시킬 수 있는 식이다. 이 앱은, 독자가 스토리를 읽는 것을 중단하였다는 것을 인식하고 특징을 일시중지시킬 수 있으므로, 독자와 청취자는 필터링되지 않은 상태로 대화할 수 있다. 대안으로, 텔러(teller)는 스토리를 사전 레코딩하여 아래에 설명된 스토리 중계 앱을 사용하여 나중에 재생되게 스케줄링할 수 있다.[00206] The physical PCD 100 may also be responsive to stories having short animations (such as tremor of fear) at the appropriate times, and the child of the PCD 100 described above may be transformed into different shapes . With these features, you can wrap the PCD call feature inside, so readers and listeners can stop the story by talking about it. The app recognizes that the reader has stopped reading the story and can pause the feature so readers and listeners can talk unfiltered. Alternatively, the teller can pre-record the story and schedule it to be played later using the story relay app described below.

[00207] 핫라인 [00207] Hotline

[00208] 예시적이며 비제한적인 실시예들에 따르면, 사용자는 "푸시 투 토크(push to talk)" 또는 "워키-토키(walkie-talkie)" 스타일 인터페이스를 통해 "인-네트워크(in-network)" 멤버들과 통신하기 위해 PCD(100)를 사용할 수 있다. 이 특징은, 스킨 상에 1회 터치를 통해 또는 PCD(100) 상의 스크린 아이콘을 통해, 또는 "PCD(100), talk to Mom"라는 단순 음성 커맨드를 통해 액세스될 수 있다. 일부 실시예들에서, 이 특징은 단지 PCD-대-PCD 대화로 제한되고, PCD들(100) 둘 모두가 이들의 링크 끝 부분에서 사용자 존재를 검출할 경우에만 이용가능할 수 있다[00208] According to illustrative, non-limiting embodiments, a user may select a "in-network" through a "push to talk" or "walkie- ) &Quot; members. ≪ / RTI > This feature can be accessed through a single touch on the skin or through a screen icon on the PCD 100, or via a simple voice command "PCD 100, talk to Mom". In some embodiments, this feature is only limited to PCD-to-PDC conversations, and may be available only when both PCDs 100 detect user presence at the end of their links

[00209] 스토리 중계 [00209] Story relay

[00210] 도 8과 관련하여, 예시적이며 비제한적인 실시예의 흐름도(800)가 도시된다. 도시된 바와 같이, 단계(802)에서, 사용자/스토리 텔러는 임의의 시각에 스토리를 레코딩하여 PCD(100)가 나중에 재생하게 할 수 있다. 스토리들은 여러 가지 방법들로 레코딩될 수 있다.[00210] Referring to FIG. 8, a flowchart 800 of an exemplary, non-limiting embodiment is shown. As shown, at step 802, the user / storyteller can record the story at any time and have the PCD 100 play it later. Stories can be recorded in a variety of ways.

[00211] PCD(100)에 의해서: 스토리텔러는 그 스토리를 PCD(100)에게 말하고, PCD(100)는 재생을 위해 이것을 레코딩한다.[00211] By PCD 100: The story teller tells the story to the PCD 100, and the PCD 100 records it for playback.

[00212] 가상의 PCD(100) 웹 인터페이스 또는 안드로이드 앱에 의해: 사용자는 그 스토리를 웹캡에 말하는 가상의 PCD(100)에 의해 가이드된다. 이들은 또한 이러한 타입들의 스토리들에 더욱 풍부한 애니메이션들/사운드 효과들/백그라운드 음악을 포함시키기 위한 기회를 가질 수 있다.[00212] By virtue of the virtual PCD 100 web interface or Android app: the user is guided by a virtual PCD 100 that speaks the story into a webcap. They may also have the opportunity to include richer animations / sound effects / background music in these types of stories.

[00213] 스토리가 레코딩되면, PCD(100)는 텔러에 의해 설정된 스케줄링 선호들에 따라서 스토리를 재생할 수 있다(단계 804). 청취자에게는 스케줄링된 시각에 스토리를 듣는 옵션이 주어질 것이고, 스토리를 수락, 거절, 또는 리스케줄링할 수 있다.[00213] Once the story is recorded, the PCD 100 may play the story according to the scheduling preferences set by the teller (step 804). The listener will be given the option to listen to the story at the scheduled time and can accept, reject, or reschedule the story.

[00214] 일 실시예에서, 스토리텔링 동안, PCD(100)는 미리결정된 레이트로 청취자의 정지 사진들을 찍을 수 있다. 스토리가 완료되면, PCD(100)는, 그/그녀가 스토리텔러에게 다시 메시지를 전송하기 원하는지를 청취자에게 물어볼 수 있다(단계 806). 사용자가 수락한 경우, 단계(808)에서, PCD(100)는 "비동기 멀티모드 메시징(Asynchronous Multimodal Messaging)" 특징을 입력하고, 메시지를 컴파일링하고, 이들이 1을 갖는 경우 텔러의 물리적 PCD(100)에 메시지를 전송하거나 또는 가상의 PCD(100) 웹 링크로 메시지를 전송할 수 있다. 청취자는, 스토리를 청취하는 그 자신/그녀 자신의 사진을 리턴 메시지에 포함시킬 기회를 가질 수 있다.[00214] In one embodiment, during storytelling, the PCD 100 may take still pictures of the listener at a predetermined rate. Once the story is complete, the PCD 100 may ask the listener if he / she wants to send the message back to the storyteller (step 806). If the user accepts, at step 808, the PCD 100 enters the " Asynchronous Multimodal Messaging " feature and compiles the message, and if they have a 1, the physical PCD 100 , Or may transmit a message to a virtual PCD 100 web link. The listener may have the opportunity to include in his return message a picture of himself / herself listening to the story.

[00215] 포토/메모리 메이커 [00215] Photo / memory maker

[00216] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)가 이벤트에 대한 포토그래퍼의 역할을 함으로써 PCD(100)는 사진/메모리 메이커 특징을 포함할 수 있다. 이를 위한 2가지 모드가 존재한다:[00216] According to exemplary, non-limiting embodiments, the PCD 100 may include a photo / memory maker feature by acting as a photographer for the event. There are two modes for this:

[00217] PCD 스냅 모드 [00217] PCD snap mode

[00218] 이 모드에서, 사진 안에 있길 원하는 사용자들이 함께 서있을 수 있고 "PCD, take a picture of us"라고 말한다. PCD(100)는 확인응답한 후, 구두(verbal) 큐들을 사용하여 "백업(back up)", "왼쪽으로 이동(move left)" 등과 같은 큐들을 사용하여 카메라 이미지에서 사람/들을 중앙에 위치시킨다. 이들이 적절하게 포지셔닝될 때 PCD(100)는 이들에게 멈춰있으라고 말한 후, 미소("치즈(cheese)" 등)를 유도하는 일종의 어구를 사용한다. PCD(100)는 이들이 미소를 짓고 있지 않다면 말하여 계속해서 미소를 유도하도록 시도하기 위해 얼굴 표정 인식을 사용할 수 있다. 이미지 안에 있는 모든 사용자들이 미소를 짓고 있을 때, PCD(100)는 자동 초점을 사용하여 몇 장의 사진들을 찍고 필요하다면 플래시를 터트릴 수 있다.[00218] In this mode, the users who want to be in the picture can stand together and say "PCD, take a picture of us". After verifying, the PCD 100 uses the verbal cues to use the cues such as " back up ", " move left " . When they are properly positioned, the PCD 100 uses a kind of phrase that induces a smile (such as " cheese ") after telling them to stop. The PCD 100 may use facial expression recognition to attempt to speak to continue to smile if they are not smiling. When all the users in the image are smiling, the PCD 100 can take a few pictures using autofocus and burst the flash if necessary.

[00219] 이벤트 포토그래퍼 모드 [00219] Event Photographer Mode

[00220] 이 모드에서, 사용자는 특정 시각(또는 원하는 경우 "지금(now)")에 시작하는, 미리결정된 양의 시간 동안 이벤트의 사진들을 찍도록 PCD(100)에게 지시할 수 있다. PCD(100)는 룸을 둘러보고 사운드 위치와 얼굴 인식의 조합을 사용하고 사용자 정의된 속도로 룸에 있는 사람들의 자연스러운 사진들을 찍는다. 생성된 사진들 모두가 PCD(100) 메모리에 국부적으로 저장될 수 있다.[00220] In this mode, the user can instruct the PCD 100 to take pictures of the event for a predetermined amount of time, starting at a specific time (or "now" if desired). PCD 100 looks around the room, uses a combination of sound location and face recognition, and takes natural pictures of people in the room at a user-defined rate. All of the generated photographs can be stored locally in the PCD 100 memory.

[00221] 일단 사진들이 생성되면, PCD(100)는, 사진들이 PCD(100) 클라우드로 업로드되었음을 사용자에게 알릴 수 있다. 그 때에, 그들이 PCD(100) 앱 또는 웹 인터페이스를 통해 액세스될 수 있고, 가상의 PCD(100)가 사진들의 삭제, 편집, 잘라내기 등의 프로세스를 통해 사용자를 안내할 수 있다. 이후, 이들이 사용자에게 이메일로 전송되거나 또는 페이스북 등에 포스팅될 수 있다. 이 앱의 이러한 "아웃 오브 더 박스(out of the box)" 버전에서, 사진들은, 아래에 설명되는 예컨대, "살아있는 유산"의 일부로서 월정액 요금으로 제공된 파일링/메타태깅을 갖는 영구 저장소를 사용하여 미리결정된 양의 시간 동안 PCD(100) 클라우드 상에서만 유지될 수 있다.[00221] Once the photos are created, the PCD 100 may notify the user that the photos have been uploaded to the PCD 100 cloud. At that time, they can be accessed through the PCD 100 app or web interface, and the virtual PCD 100 can guide the user through processes such as deleting, editing, and cropping photos. Thereafter, they may be emailed to the user or posted to Facebook or the like. In this " out of the box " version of the app, the pictures are stored using a permanent store with filing / metatagging provided at monthly rates as part of the " living heritage " And may only be maintained on the PCD 100 cloud for a predetermined amount of time.

[00222] 본원에 설명된 바와 같이, 이와 같이, PCD(100)는 개인간 그리고 사회적 기회들을 향상시키는 것을 보조하도록 동작할 수 있다. 일 실시예에서, 애플리케이션, 또는 "앱"은, PCD(100)의 하나 또는 그보다 많은 인터페이스 컴포넌트들에 액세스하고 이들을 동작시켜 사회적 활동을 달성시키도록 PCD(100) 상에 구성되거나 또는 설치될 수 있다. 예컨대, PCD(100)는, 실행될 경우, 하나 또는 그보다 많은 사진들을 찍고 저장하기 위해 PCD(100)가 어느 것을 진행하는지에 따라서 하나 또는 그보다 많은 파라미터들을 수신하도록 사용자와 상호작용하도록 동작하는 팩토리 설치식 앱을 포함할 수 있다. 예컨대, 사용자가 PCD(100)에게 "Please take at least one picture of every separate individual at this party"라고 말할 수 있다. 응답으로, PCD(100)는 액세스가능한 손님 리스트로부터 파티 손님들의 리스트를 조합하고 각각의 손님의 사진을 찍도록 진행할 수 있다. 일 실시예에서, PCD(100)는 정지상태를 유지하고 손님들이 지나갈 때 개인들에게 그들의 신분에 대해 질의하고 인스턴스를 레코딩하고, 개인 사진을 찍을 수 있다. 다른 실시예에서, PCD(100)는 손님들의 사진들을 찍기 위해서 손님들과 상호작용하고 손님들의 그룹들 앞에서 PCD(100)을 설정하도록 그들에게 요청할 수 있다. 파티의 지속기간과 같은 일 시간의 기간 동안, PCD(100)는 사회적 이벤트를 문서화하는 것을 포함하여 사회적 목적/활동의 성취 시 사용자의 희망에 따라 파티 손님들의 사진을 2장 이상 획득한다.[00222] As described herein, the PCD 100 may thus act to assist in improving interpersonal and social opportunities. In one embodiment, an application, or " app, " may be configured or installed on the PCD 100 to access and operate one or more of the interface components of the PCD 100 to achieve social activity . For example, PCD 100, when executed, is operative to interact with a user to receive one or more parameters depending on which PCD 100 is proceeding to take and store one or more pictures, You can include an app. For example, a user may say to the PCD 100 " Please take at least one picture of each separate individual at this party. &Quot; In response, the PCD 100 may combine the list of party guests from the accessible guest list and proceed to take a picture of each guest. In one embodiment, the PCD 100 remains stationary and can query individuals, record instances, and take private pictures as they pass by guests. In another embodiment, the PCD 100 may interact with the guests to request pictures of the guests and ask them to set up the PCD 100 in front of the groups of guests. During a period of time, such as the duration of the party, the PCD 100 acquires two or more photographs of party guests in accordance with the user's wishes in accomplishing social purposes / activities, including documenting social events.

[00223] 다른 예시적인 실시예들에 따르면, PCD(100)는 소셜 큐들을 판독하고 그에 반응할 수 있다. 예컨대, PCD(100)는, 사용자가 더 부드럽게 말할 필요를 다른 사람에게 표시한다는 것을 관측할 수 있다. 응답으로, PCD(100)는 자신이 구두 통신(verbal communication)들을 출력하는 볼륨을 낮출 수 있다. 유사하게, PCD(100)는, 껴안아지거나 또는 쓰다듬어지는 경우(stroke), 만족감을 표시하는 사운드들을 방출할 수 있다. 다른 실시예들에서, PCD(100)는 소셜 큐들을 방출하거나 그렇지 않으면 출력할 수 있다. 예컨대, 사용자가 약속이 늦어서 뛰고 있다고 감지하는 PCD(100)는, 사용자의 이동 속도를 앞당기기 위해 겉보기에 과민한 상태로 앞뒤로 흔들거릴 수 있다.[00223] According to other exemplary embodiments, the PCD 100 may read and respond to social queues. For example, the PCD 100 may observe that the user indicates to others the need to speak more smoothly. In response, the PCD 100 may lower the volume at which it outputs verbal communications. Similarly, the PCD 100 may emit sounds indicative of satisfaction when it is hugged or stroked. In other embodiments, the PCD 100 may release or otherwise output social queues. For example, the PCD 100, which detects that the user is running late with an appointment, may wiggle back and forth in a seemingly sensitive state to speed up the user's movement speed.

[00224] 상호작용식 캘린더 [00224] Interactive Calendar

[00225] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는, 퇴근(outside of work) 이후의 사용자 및 가족 용무를 캡쳐하도록 캘린더 시스템을 사용하여 구성될 수 있다. PCD들(100)은, 그들의 사용자들이 허가를 제공하면, 캘린더들을 다른 PDC(100)들의 캘린더들과 공유 및 통합할 수 있을 수 있으므로, 모든 각각의 가정 내의 PCD(100)를 갖는 전체의 확대 가족이 모든 사람들에 대한 단일의 통합된 캘린더를 가질 수 있을 것이다.[00225] According to exemplary and non-limiting embodiments, the PCD 100 may be configured using a calendar system to capture user and family responsibilities after outside of work. PCDs 100 may be able to share and integrate calendars with calendars of other PDCs 100 if their users provide permissions so that the entire extended family with PCDs 100 in each respective home You could have a single unified calendar for all of these people.

[00226] PCD(100)들의 캘린더 내의 아이템들은, 적절한 정보, 즉 초기에는 약속이 있는 가족 멤버(들)의 이름, 그들이 약속/이벤트에 대해 어떻게 느끼는지, 날짜 또는 날짜-특정 정보(휴일 등) 등으로 메타태그될 수 있다. 입력될 수 있는 이벤트들의 타입들은, 기상 시간들, 식사 시간들, 약속들, 리마인더들, 전화 콜들, 가정 태스크들/정원일 등을 포함하지만 이에 제한되지는 않는다. 모든 이벤트들이 특정한 시간으로 셋팅될 필요는 없음을 유의하며, 이벤트들이 센서 입력들에 대해 예측되어 스케줄링될 수 있는 등의 식이고, 예컨대, "remind me the first time you see me tomorrow morning to pack my umbrella"이다.[00226] The items in the calendar of the PCDs 100 may include appropriate information, such as the name of the family member (s) who initially made an appointment, how they feel about the appointment / event, date or date-specific information Can be meta tagged. The types of events that can be entered include, but are not limited to, weather times, meal times, appointments, reminders, telephone calls, home tasks / Note that not all events need to be set to a specific time, and that events can be predicted and scheduled for sensor inputs, and so forth, for example " remind me the first time you see me tomorrow morning to pack my umbrella "to be.

[00227] PCD(100)들의 캘린더로의 아이템들의 엔트리는 다수의 방식들로 달성될 수 있다. 일 실시예는 안드로이드 앱 또는 웹 인터페이스를 사용하며, 여기서, 가상 PCD(100)는 프로세스를 통해 사용자를 안내한다. 이러한 포인트에서, 사용자가 apt/이벤트에 대해 어떻게 느끼는지를 PCD(100)에게 말하기 위해 이모티콘들 또는 다른 인터페이스가 사용될 수 있다. 이러한 모드에서의 캘린더의 그래픽적인 묘사는 아웃룩과 유사할 수 있어서, 사용자가 다른 네트워크 멤버들의 이벤트들/앱들을 관측하게 한다. PCD(100) 캘린더는 또한, 이와 관련하여 아웃룩이 행하는 것과 유사한 약속 충돌회피(de-confliction)를 위한 특성을 가질 수 있다.[00227] Entry of items into the calendars of the PCDs 100 can be accomplished in a number of ways. One embodiment uses an Android app or web interface, wherein the virtual PCD 100 guides the user through a process. At this point, emoticons or other interfaces may be used to tell the PCD 100 how the user feels about apt / event. The graphical depiction of the calendar in this mode can be similar to Outlook, allowing the user to observe events / apps of other network members. The PCD 100 calendars may also have properties for appointment collision avoidance (de-confliction) similar to that performed by Outlook in this regard.

[00228] 일부 실시예들에서, 사용자들은 또한, 자연 언어 인터페이스를 통해 캘린더에 아이템들을 부가할 수 있을 수 있다("PCD, I have a dentist appointment on Tuesday at 1PM, remind me half an hour earlier", 또는 "PCD, dinner is at 5:30PM tonight). 사용자에 의해 통신되지 않으면, 사용자 느낌이 그 이후에 PCD(100)에 의해 질의될 수 있어서(예컨대, How do you feel about that appointment?), 적절한 감정 메타태깅을 허용한다.[00228] In some embodiments, users may also be able to add items to the calendar via a natural language interface ("PCD, I have a dentist appointment on Tuesday at 1 PM, remind me half an hour earlier" Or " PCD, dinner is at 5:30 PM tonight.) If not communicated by the user, the user's feel may be subsequently queried by the PCD 100 (e.g., How do you feel about that appointment? Allow emotional metatags.

[00229] 일단 이벤트 리마인더가 트립되면, PCD(100)는 2개의 방식들 중 하나로 리마인더를 따라 전달할 수 있다. 리마인더가 셋팅되었던 사용자가 PCD(100)의 환경에 존재하면, 그는, 구두 리마인더, 애니메이션, 안면 표현들 등이 완비된 리마인더를 따라 대면하여(in person) 전달할 것이다. 안면 표현의 감정 내용은, 예컨대 이모티콘 또는 사용자 구두 입력들을 통해 이벤트의 메타태깅으로부터 유도될 수 있다. 그의 거동들은 또한, 알려진 맥락으로부터 유도될 수 있다(예컨대, 그는 깨어날 경우 항상 졸릴 것이거나, 식사시간에는 항상 배가 고프다). 상이한 이벤트들에 상황적으로 적절한 표현들은, 주기적으로 내용을 저술하여 그것을 비-반복적이고 즐거운 것으로 유지함으로써 리프레쉬될 수 있다.[00229] Once the event reminder is tripped, the PCD 100 may deliver along the reminder in one of two ways. If the user for whom the reminder was set is present in the environment of the PCD 100, he or she will convey in person the oral reminder, animations, facial expressions, etc., in full reminders. The emotional content of the facial expression can be derived from the meta tagging of the event, for example via emoticons or user verbal inputs. His behaviors can also be derived from known contexts (for example, he will always be sleepy when awake or always hungry at meal times). Situationally appropriate representations of different events can be refreshed by periodically writing the content and keeping it non-repetitive and enjoyable.

[00230] 리마인더가 발생하는 사용자에게 PCD(100)가 물리적으로 존재하지 않으면, PCD(100)는 그들에 대해 콜 아웃(call out)될 수 있다. 그러한 예시에서, 그들이 이에 응답하지 않으면, PCD(100)는 그들의 핸드폰에 리마인더를 문자로 전송할 수 있다.[00230] If the PCD 100 is not physically present to the user where the reminder occurs, the PCD 100 may be able to call out to them. In such an example, if they do not respond to this, the PCD 100 may transmit the reminders to their cell phones.

[00231] 리스트 관리자 [00231] List manager

[00232] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는 리스트 관리자 특성을 사용하여 구성될 수 있다. 이러한 특성에 따르면, PCD(100)는 사용자의 요청 시에, 일단 그들이 쇼핑 트립을 위해 떠나면 사용자에게 문자로 전송될 수 있는 할일(to-do) 리스트들 또는 쇼핑 리스트들을 생성할 수 있다. 특성은 간단한 터치 인터페이스를 통해, 또는 이상적으로는 자연 언어 인터페이스를 통해 사용자에 의해 개시될 수 있다. 사용자는 행해질 리스트의 타입을 특정할 수 있다(예컨대, "식료품", "의류들", "할일", 또는 특정한 타입의 상점 또는 상점 명칭). PCD(100)는 리스트 상에 초기에 존재하는 것을 요청할 수 있으며, 사용자는 PCD(100)가 일들을 리스트에 부가하게 하기 위해 구어(spoken word)를 통해 응답할 수 있다. 임의의 나중 시간에서, 사용자는 다른 아이템들을 리스트에 부가하도록 PCD(100)에게 요청할 수 있다.[00232] According to exemplary, non-limiting embodiments, the PCD 100 may be configured using a list manager property. According to this characteristic, the PCD 100 may generate to-do lists or shopping lists, upon request of the user, that can be transferred to the user as a character once they leave for the shopping trip. The characteristics may be initiated by the user through a simple touch interface, or ideally through a natural language interface. The user can specify the type of list to be done (e.g., "groceries", "apparel", "to do", or a particular type of store or store name). The PCD 100 may request that it initially exist on the list and the user may respond via the spoken word to cause the PCD 100 to add the things to the list. At any later time, the user may ask the PCD 100 to add other items to the list.

[00233] 몇몇 실시예들에 따르면, PCD(100)는, 아이템이 리스트에 부가되어야한다는 것을 결정하기 위해 일상 대화를 파싱할 수 있을 수 있다. 예컨대, 룸 내의 어떤 사람이 "we're out of milk"고 말하면, PCD(100)는 우유를 식료품 리스트에 자동적으로 부가할 수 있다.[00233] According to some embodiments, the PCD 100 may be able to parse the daily conversation to determine that the item should be added to the list. For example, if a person in the room says " we're out of milk, " PCD 100 can automatically add milk to the grocery list.

[00234] PCD(100)가 리스트를 보유하고 있는 상점으로 트립을 위해 사용자가 떠나는 경우, 사용자는 적절한 리스트를 그들에게 문자로 전송하도록 PCD(100)에게 요청할 수 있으므로, 그들이 상점에서 쇼핑하고 있는 경우, 그 리스트가 그들에게 이용가능하게 될 것이다. 부가적으로, 사용자가 상점 근방이긴 하지만 PCD(100)로부터 떨어지면, 그들은 안드로이드 또는 웹 앱을 통해 전송하도록 리스트를 요청할 수 있다.[00234] If the user leaves the trip for a trip to the store where the PCD 100 holds the list, the user can ask the PCD 100 to send the appropriate list to them in characters, so that if they are shopping at the store , The list will be made available to them. Additionally, if the user is near the store but leaves the PCD 100, they can request the list to be sent via Android or web app.

[00235] 사용자의 리턴 시에(즉, 다음에 PCD(100)는, 사용자가 그들에게 텍스트로 전송하도록 리스트를 요청했던 이후에 그 사용자를 관측함), PCD(100)는 트립이 어땠는지/사용자가 리스트 상의 모든 것을 발견했는지를 문의할 수 있다. "예"라면, PCD(100)는 리스트를 클리어하고 리스트에 부가될 다른 아이템들을 대기할 것이다. "아니오"라면, PCD(100)는, 구매되지 않았던 것에 대해 질의하고, 리스트로부터 다른 모든 아이템들을 클리어할 것이다.[00235] At the user's return (i.e., the PCD 100 then observes the user after the user has requested the list to send text to them), the PCD 100 determines what the trip was like / Can inquire if it has found everything on the list. If yes, the PCD 100 will clear the list and wait for other items to be added to the list. If no, PCD 100 will query for what was not purchased and clear all other items from the list.

[00236] 할일 리스트들의 경우, 사용자는 PCD(100)에게 "나는 X를 했어"라고 말할 수 있으며, 그 아이템은 저장된 리스트로부터 제거될 수 있다.[00236] In the case of to-do lists, the user can say to the PCD 100 "I did X" and the item can be removed from the saved list.

[00237] 사용자들은 또한, 그들에게 문자로 전송된 다른 사람의 PCD-생성된 리스트를 갖도록 요청할 수 있다(적절한 허가들을 보류중임). 예컨대, 성인이 나이가 많은 부모님께 PCD(100)를 제공하면, 그 성인은, 그들의 부모의 PCD(100)에 의해 생성된 쇼핑 리스트를 그들에게 전송하도록 PCD(100)에게 요청할 수 있으므로, 성인이 스스로 쇼핑하고 있었던 동안 그들은 그들의 부모님들의 식료품을 획득할 수 있거나, 성인은, 그들이 임의의 필요한 툴들을 갖는다는 것을 보장하기 위해 방문 이전에 어머니의 "할일" 리스트에 대해 PCD(100)에게 문의할 수 있는 등의 식이다.[00237] Users can also request that they have a PCD-generated list of other people sent to them literally (pending appropriate permissions). For example, if an adult provides a PCD 100 to an older parent, the adult may ask the PCD 100 to send to them a shopping list generated by their parent's PCD 100, While shopping on their own, they can acquire their parents' groceries, or adults can contact the PCD 100 about their mother's "to do" list prior to their visit to ensure they have any necessary tools And so on.

[00238] 잘 알고 있는 PCD [00238] A well-known PCD

[00239] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는 "잘 알고 있는(In the Know)" 특성을 사용하여 구성될 수 있다. 이러한 특성에 따르면, PCD(100)는, 사용자가 관심있는 뉴스들, 날씨, 스포츠 등을 사용자에게 최신으로 유지할 수 있다. 이러한 특성은, 간단한 터치 인터페이스, 또는 이상적으로는 자연 언어 커맨드(예컨대, "PCD(100), tell me the baseball scores from last night")를 사용하여 요청 시에 액세스될 수 있다.[00239] According to exemplary and non-limiting embodiments, the PCD 100 may be configured using the "In the Know" feature. According to this characteristic, the PCD 100 can keep the user up to date with the news, weather, sports, etc. that the user is interested in. This property can be accessed on demand using a simple touch interface, or ideally a natural language command (e.g., "PCD 100, tell me the baseball scores from last night").

[00240] 사용자는, 하루의 특정한 시간들에서 "정보 세션들"을 셋업하기 위한 능력을 가질 수 있다. 이것은, 웹 또는 모바일 앱 인터페이스를 통해 행해질 수 있다. 이러한 특성을 사용하면, PCD(100)는 하루의 특정한 시간들에서 특정한 정보를 중계하도록 스케줄링될 수 있다. 예컨대, 사용자는, 사용자가 깨어난 이후 뉴스를 제공하도록 그들의 PCD(100)를 프로그래밍할 수 있다. 사용자가 "예"라고 말하면, PCD(100)는 사용자가 자신의 "모닝 브리핑"으로 요청한 정보를 전달할 수 있다. 이것은, 팀 스코어들/뉴스, 날씨, 주요 신문으로부터의 헤드라인들의 리뷰 등을 포함할 수 있다. PCD(100)는 이들 아이템들의 개관으로 시작할 수 있고, 임의의 포인트에서 사용자는 특정한 아이템에 대해 더 많이 알도록 요청할 수 있으며, PCD(100)는 전체 뉴스 아이템을 읽을 것이다.[00240] A user may have the ability to set up "information sessions" at specific times of the day. This can be done via the web or mobile app interface. Using this property, the PCD 100 can be scheduled to relay specific information at specific times of the day. For example, the user may program their PCD 100 to provide news after the user wakes up. If the user says " yes ", the PCD 100 may deliver the information the user requested in his " morning briefing ". This may include team scores / news, weather, reviews of headlines from major newspapers, and so on. The PCD 100 may begin with an overview of these items and at any point the user may request to know more about a particular item and the PCD 100 will read the entire news item.

[00241] 뉴스 아이템들은 "PCD-화"될 수 있다. 상세하게, PCD(100)는, PCD(100)가 읽고 있는 뉴스에 대한 코멘터리 및 반응을 제공할 수 있다. 그러한 반응은 AI 생성의 결과로서 상황적으로 관련있을 수 있다.[00241] News items can be "PCD-ized". In detail, the PCD 100 may provide a commentary and response to the news that the PCD 100 is reading. Such a response may be contextually relevant as a result of AI generation.

[00242] 무드, 활동, 환경 모니터 [00242] Mood, activity, environment monitor

[00243] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는, PCD(100)에 대한 애플리케이션의 형태로 무드, 활동, 및 환경 모니터 특성을 사용하여 구성될 수 있다. 이러한 애플리케이션은, 예컨대 나이가 많은 부모님을 위하여 이미 PCD(100)를 구매했던 사람에 의해 구매될 수 있다. 구매 시에, 웹 인터페이스 또는 안드로이드 앱 인터페이스는 모니터링 셋업 및 상태에 액세스하기 위해 사용될 수 있다. 가상 PCD(100)는 이러한 프로세스를 통해 사용자를 안내할 수 있다. 모니터링될 수 있는 것들의 몇몇 예들은, (1) PCD(100)가 있는 룸/하우스 내의 주변 온도, (2) 활동(사람이 매 시간/하루마다 걸었던 횟수, 사람을 보고 있지 않은 시간 수 등), (3) 룸 내의 사람/사람들의 무드: 센서들로부터의 피드백에 기초한 유한한 세트의 선택들 중 하나로서 표현됨(안면 표현들, 웃음 빈도, 특정한 단어들/어구들의 사용 빈도 등) 및 (4) PCD(100)가 약제가 취해졌는지를 문의하는 것 또는 약제가 취해졌는지를 명시적으로 관찰하는 것 중 어느 하나를 통해 약제 정책(medication regime)들에 대한 준수(compliance)를 모니터링할 수 있는 것을 포함한다.[00243] According to exemplary, non-limiting embodiments, the PCD 100 may be configured using mood, activity, and environmental monitor characteristics in the form of an application to the PCD 100. This application may be purchased, for example, by a person who has already purchased the PCD 100 for older parents. At the time of purchase, the web interface or the Android app interface may be used to access monitoring setup and status. The virtual PCD 100 can guide the user through this process. Some examples of things that can be monitored are: (1) the ambient temperature in the room / house where the PCD 100 is located, (2) activity (the number of times a person walked every hour / day, ), (3) mood of a person / person in the room: expressed as one of a finite set of choices based on feedback from the sensors (facial expressions, laughter frequency, frequency of use of specific words / 4) the PCD 100 can monitor compliance with medication regimes through either inquiring whether the medication has been taken or explicitly monitoring whether the medication has been taken .

[00244] 셋팅될 수 있는 모니터들의 상태는 앱 또는 웹 인터페이스를 통해 체크될 수 있거나, 그 후, 경고 레벨이 초과된 경우(예컨대, 집안이 너무 춥다, 어떠한 사람도 임계 시간 양에서 걸어다니지 않음), 텍스트가 PCD(100)에 의해 모니터링 사용자에게 전송될 수 있다. 부가적으로, PCD(100)는, 예컨대, 너무 춥다면 한기를 느껴 온도를 높이도록 요청하는 것과 같이, 앱 또는 웹 인터페이스를 통해 모니터링 사용자에 의해 셋팅된 특정한 조건들이 충족되는지를 사용자에게 자율적으로 리마인드할 수 있다.[00244] The status of the monitors that can be set can be checked via the app or web interface, or thereafter, if the warning level is exceeded (eg, the house is too cold, no one walks in the threshold time amount) , The text may be sent to the monitoring user by the PCD 100. Additionally, the PCD 100 autonomously reminds the user that particular conditions set by the monitoring user are met through the app or web interface, such as requesting that the temperature be increased if it is too cold, for example, can do.

[00245] 무드 링 [00245] Mood ring

[00246] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 무드 링 특징을 사용하여 구성될 수 있다. 무드 링 특징은, 사용자의 무드/감정 상태의 표시자 및 심지어 인플루언서(influencer)로서의 역할을 하도록 PCD(100)의 센서들을 사용할 수 있다. 이 특징은 사용자의 감정 상태의 실시간 로그를 유지할 수 있다. 이 표시자는 표정 인식(facial expression recognition), 체온, 안구 운동, 활동 레벨 및 타입, 스피치 프로소디, 키워드 사용, 및 심지어 PCD(100)가 사용자에게 그들이 어떻게 느끼고 있는지를 묻는 것과 같은 단순한 기술들의 융합에 기초할 수 있다. PCD(100)는, 그의 해석들을 정정하고 그리고 시간에 따라 사용자의 더 나은 감정 모델을 만들기 위해 사용자 검증 기술들(예컨대, 묻기)을 시도할 것이다. 이는 또한, PCD(100) 클라우드로부터의 "클라우드 소싱" 학습 데이터(검증된 센서 데이터 <-> 다른 사용자들로부터의 감정 상태 맵핑들)를 수반할 수 있다. 도 9를 참조하면, 예시적이며 비제한적인 실시예의 흐름도(900)가 예시된다. 단계(902)에서, PCD(100)는 그의 감정 상태를 결정하기 위해 사용자 바디/얼굴/스피치 상세사항들을 해석한다. 시간에 따라, PCD(100)는 감정 상태를 결정하기 위해 사용자 바디/얼굴/스피치 상세사항들을 정확하게 해석할 수 있다.[00246] In accordance with illustrative, non-limiting embodiments, the PCD 100 may be configured using a moodling feature. The moodling feature may use sensors of the PCD 100 to act as indicators of the user's mood / emotional state and even as an influencer. This feature can maintain a real-time log of the user's emotional state. This indicator is a combination of simple techniques such as facial expression recognition, body temperature, eye movement, activity level and type, speech prosody, keyword usage, and even asking the user how they feel to the user Can be based. PCD 100 will attempt user verification techniques (e.g., asking) to correct its interpretations and to create a better emotional model of the user over time. This may also entail &quot; cloud sourcing &quot; learning data (verified sensor data <-> emotional state mappings from other users) from the PCD 100 cloud. Referring to FIG. 9, a flowchart 900 of an exemplary, non-limiting embodiment is illustrated. At step 902, the PCD 100 interprets the user body / face / speech details to determine its emotional state. Depending on the time, the PCD 100 may correctly interpret the user body / face / speech details to determine the emotional state.

[00247] 일단 PCD(100)가 사용자의 감정 상태를 결정했다면, 단계(904)에서, 그는 이것을 다른 사람들에게 리포팅한다. 이는 다수의 방식들로 이루어질 수 있다. (예컨대, 병원 셋팅에서) 코-로케이팅되는 부양자들에 대해, PCD(100)는 돌보는 사람이 속하는 개인의 무드를 표시하기 위해 조명/얼굴 그래픽들/자세의 결합을 사용할 수 있고, 따라서 부양자는 돌봄 하의 개인이 슬펐음/행복했음/화났음/등을 한눈에 알 수 있고 그에 따라 개입할 수 있다(또는 개입하지 않을 수 있다).[00247] Once the PCD 100 has determined the emotional state of the user, in step 904, he reports this to others. This can be done in a number of ways. For care-takers who are co-located (e.g., in a hospital setting), the PCD 100 may use a combination of light / face graphics / posture to indicate the mood of the individual to whom the caregiver belongs, Individuals under care can see at a glance the sadness / happiness / angry / etc. (Or may not intervene).

[00248] 코-로케이팅되지 않은 부양자들(예컨대, 여전히 혼자 사는 노부모를 돌보는 성인)에 대해, PCD(100)는, 자신이 어느 데이터를 제시하는지 그리고 어느 시간 기간들 동안 제시하는지에 관하여 커스터마이징가능한 모바일/웹 앱을 통해 이 감정 상태 데이터를 제공할 수 있다.[00248] For co-unknowledged caregivers (eg, adults still caring for an elderly parent living alone), the PCD 100 can customize what data it presents and for which time periods it can be customized You can provide this emotion status data via mobile / web apps.

[00249] 일단 사용자의 무드의 이러한 이해가 설정되면, 단계(906)에서, PCD(100)는 그 무드의 변화를 시도하고 실행한다. 이는 독자적으로 일어날 수 있는데, PCD(100)는 이야기/농담 말하기, 연민, 게임 플레이, 감정 미러링 등의 프로세스를 통해 사용자 감정 상태의 긍정적 변화를 유발하려고 노력한다. 대안적으로, 주요 사용자가 부정적 감정 상태에 있음을 PCD(100)에 의해 통보받을 때, 부양자는, 그들이 알 수 있는 특정한 것들을 말하고/시도하고/수행하도록 PCD(100)에게 지시할 수 있고, 이는 이러한 특정 상황에서 부정적 감정들을 완화시킬 것이다.[00249] Once this understanding of the user's mood is established, at step 906, the PCD 100 attempts and executes the change of the mood. This can happen on its own, and the PCD 100 tries to cause a positive change in the user's emotional state through processes such as story / joke speaking, compassion, game play, and emotional mirroring. Alternatively, when the main user is informed by the PCD 100 that they are in a negative emotional state, the caregiver can instruct the PCD 100 to tell / try / perform certain things they can know, In this particular situation, it will mitigate negative emotions.

[00250] 나이트 라이트 [00250] Night Light

[00251] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 나이트 라이트 특징을 사용하여 구성될 수 있다. 이 특징에 따라, PCD(100)는 사용자가 한밤중에 웨이크한다면 애니메이팅되는 종야등으로서 동작할 수 있다. 정확한 조건들이 충족된다면(예컨대, 시간이 한밤중이고, 주변광이 매우 낮고, 장시간 동안 정적 및 침묵 또는 슬리핑 소음들이 존재했고, 이후에 갑자기 이동 또는 말하기가 존재한다면), PCD(100)는 부드럽게 웨이크할 수 있고, 진정시키는 색으로 방울(pompom)을 조명할 수 있고, 아마도 사용자가 오케이(OK)하는지를 질문할 수 있다. 일부 실시예들에서, PCD(100)는 진정시킬 수 있는 활동 또는 앱을 제안할 수 있고, 사용자가 자러 리턴하는 것을 도울 수 있다.[00251] In accordance with illustrative, non-limiting embodiments, the PCD 100 may be configured using a nightlight feature. In accordance with this feature, the PCD 100 may operate as a title or the like that is animated if the user wakes at midnight. If the correct conditions are met (e.g., the time is midnight, the ambient light is very low, static and silent or sleeping noises have been present for a long time, and there is sudden movement or speech thereafter), the PCD 100 will smoothly wake up You can illuminate the pompom with a calming color, and perhaps ask if the user is OK. In some embodiments, the PCD 100 can suggest activities or apps that can be calmed down and help the user return to sleep.

[00252] 무작위 귀여움 동작들 [00252] Random cuteness actions

[00253] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 무작위 귀여움 동작들 특징을 사용하여 구성될 수 있다. 이 특징에 따라, PCD(100)는 기쁘게 하도록 또는 진지하게 생각을 하게 하도록 설계되는 식으로 온종일 다양한 시간들에 이러니저러니 말하고/질문들을 하도록 동작할 수 있다. 일 실시예에서, 이 기능은 PCD(100)와의 자유로운 형태의 자연 언어 대화를 수반하는 것이 아니라, 생각/대화를 위한 소재로서 재미있고, 귀엽고, 웃긴 것들 등을 말할 PCD(100)의 능력을 수반한다.[00253] In accordance with illustrative, non-limiting embodiments, the PCD 100 may be configured using random cuteness features features. In accordance with this feature, the PCD 100 may operate to speak / ask questions at various times throughout the day in a manner designed to delight or to give serious thought. In one embodiment, this function is not accompanied by a free-form natural language conversation with the PCD 100, but rather involves the ability of the PCD 100 to speak of fun, cute, funny things, etc. as material for thought / conversation do.

[00254] 일부 실시예들에서, PCD(100)는 생성, 유지, 및 가끔 리프레쉬되는 속담들, 문구들, 농담들 등의 데이터베이스 ―이 데이터베이스는 PCD(100) 내부에 있거나 또는 외부적으로 위치됨― 에 액세스할 수 있다. 데이터는 예컨대 날씨, 스포츠, 뉴스 등으로부터 나올 수 있다. RSS는 다른 PCD(100)들로부터의 클라우드 소싱, 및 사용자 프로파일들을 피딩한다. 이러한 비트들을 메타태깅하고 메타태그들을 개별 PCD(100) 사용자 선호도들과 비교하는 프로세스를 통해, 적절한 사실 또는 속담이 모든 각각의 개별 PCD(100)에 전송될 수 있다.[00254] In some embodiments, the PCD 100 is a database of prose, phrases, jokes, etc. that are created, maintained, and sometimes refreshed - this database is internal to the PCD 100 or externally located -. The data may come from, for example, weather, sports, news, and the like. RSS feeds cloud sourcing from other PCDs 100, and user profiles. Through the process of meta tagging these bits and comparing the meta tags to the individual PCD 100 user preferences, the appropriate facts or proverbs can be sent to every respective individual PCD 100.

[00255] PCD(100)가 무작위 귀여움 동작을 전달하기로 결정할 때, PCD(100)는 클라우드에 연결될 수 있고, 사용자 ID 등을 제공할 수 있으며, 데이터 저장소로부터의 비트를 요청할 수 있다. 위에서 설명된 바와 같이, 서버는 사실을 사용자 선호도들, 요일/날짜/시간, 사용자의 홈 영역의 날씨 등에, 그 사용자에 전달할 최선의 비트를 결정하기 위해 매칭시킬 것이다.[00255] When the PCD 100 decides to deliver a random cuteness operation, the PCD 100 may be connected to the cloud, provide a user ID, etc., and may request a bit from the data store. As described above, the server will match the facts to determine the best bits to convey to the user, such as user preferences, day / date / time, weather of the user's home area, and the like.

[00256] 일부 실시예들에서, 이 특징은 단순한 질문의 형태를 취하도록 기능할 수 있는데, 여기서 질문은 답신의 인식을 더 쉽게 만들기에 충분할 정도로 구체적이고, 동시에 이러한 질문들에 대한 답신들은 그 사용자의 프로파일을 형성하는 것을 돕는데 사용될 수 있으며, 따라서 정확한 시간들에 그/그녀의 PCD(100)에 전달되는 비트들을 더욱 잘 피팅하는 것이 보장된다. 다른 실시예들에서, 사용자는 단순한 터치 인터페이스를 통해 또는 자연 언어 인터페이스를 통해 귀여움 동작을 구체적으로 요청할 수 있다. 일부 실시예들에서, 이 특징은 이러한 특정한 사용자가 관심이 있는 비트들을 제공하는데 호전되도록 알고리즘을 인에이블링하기 위해서 "좋아요/싫어요" 사용자 피드백 권유를 사용할 수 있다.[00256] In some embodiments, this feature may function to take the form of a simple question, where the question is specific enough to make it easier to recognize the answer, and at the same time, So that it is guaranteed to better fit the bits delivered to his / her PCD 100 at the correct times. In other embodiments, the user may specifically request the cuteness operation via a simple touch interface or through a natural language interface. In some embodiments, this feature may use " like / no " user feedback invitations to enable the algorithm to be improved in providing the bits of interest for this particular user.

[00257] DJ PCD [00257] DJ PCD

[00258] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 DJ 특징을 사용하여 구성될 수 있다. 이 특징에 따라, PCD(100)는 뮤직 플레이, 댄싱, 및 PCD(100)로부터의 제안들을 특징으로 하도록 동작할 수 있다. 이 특징은 여러 모드들에서 동작할 수 있다. 이러한 모드들 또는 기능들은 단순한 터치 인터페이스(시작부터 원하는 동작까지 2개 이하의 두드림들)를 통해 또는 다른 실시예들에서 자연 언어 인터페이스를 통해 액세스 및 제어될 수 있다. 뮤직은 로컬로 저장될 수 있거나 또는 외부 소스로부터 수신될 수 있다.[00258] In accordance with exemplary, non-limiting embodiments, the PCD 100 may be configured using a DJ feature. In accordance with this feature, the PCD 100 may be operable to characterize music play, dancing, and suggestions from the PCD 100. This feature can operate in several modes. These modes or functions may be accessed and controlled via a simple touch interface (up to two beats from start to desired operation) or in other embodiments via a natural language interface. The music may be stored locally or may be received from an external source.

[00259] PCD(100)가 이 특징을 사용하여 노래를 플레이할 때, PCD(100)는 노래에 댄스 애니메이션들, 조명/컬러 쇼들, 표정들 등을 동반시키기 위해 박자 트랙킹(beat tracking)을 사용할 수 있다. PCD(100)의 노래 선택은, 하기와 같은 모드들 중 어느 모드가 선택되는지에 의존할 수 있다:[00259] When the PCD 100 plays a song using this feature, the PCD 100 may use beat tracking to accompany dance animations, lighting / color shows, facial expressions, . The song selection of the PCD 100 may depend on which of the following modes is selected:

[00260] 쥬크박스 모드 [00260] The jukebox mode

[00261] 이 모드에서는, PCD(100)가 사용자가 선택하는 특정한 노래, 아티스트, 또는 앨범을 플레이할 수 있다.[00261] In this mode, the PCD 100 may play a specific song, artist, or album selected by the user.

[00262] 무드박스 모드 [00262] In the mood-box mode

[00263] 이 모드에서는, 사용자가 특정한 무드의 노래를 요청한다. PCD(100)는 노래를 선택하기 위해 무드 메타태그들을 사용할 수 있다. 사용자는 판도라와 유사하게 노래들에 대한 피드백을 제공할 수 있고, 이는 PCD(100)가 미래 선택들을 위해 가중치들을 맞추도록 허용한다.[00263] In this mode, the user requests a specific mood song. PCD 100 may use mood meta tags to select a song. The user may provide feedback on songs similar to Pandora, which allows the PCD 100 to adjust the weights for future selections.

[00264] 앰비언트 뮤직 모드 [00264] Ambient music mode

[00265] 일단 사용자가 이 모드를 선택하면, PCD(100)는 룸에서 백그라운드 분위기를 생성하기 위해서 플레이할 노래들 및 이 노래들을 플레이할 볼륨들을 선택하기 위해 웹으로부터의 정보(날짜, 주중 요일, 하루중 시간, 달력 이벤트들, 바깥 날씨 등), 뿐만 아니라 센서들(102, 104, 106, 108, 112)(예컨대, 룸에 있는 사람들의 수/활동 레벨, 노이즈 레벨들 등)로부터 정보를 사용한다. 사용자들은 볼륨을 제어하거나 노래를 스킵할 능력을 가질 수 있다. 부가하여, 앰비언트 뮤직 모드를 떠나지 않고, 사용자들은 아무 때나 특정한 노래를 요청할 수 있다. 요청된 노래는 플레이될 수 있고, 그리고 (볼륨 변경들에 대해서와 같은) 사용자 선택은 미래 선택 가중치들에 사용될 수 있다.[00265] Once the user selects this mode, the PCD 100 sends information (date, weekday, weekday, etc.) from the web to select the songs to play and the volumes to play them to create a background mood in the room, (E.g., number of people in the room / activity level, noise levels, etc.), as well as sensors 102, 104, 106, 108 and 112 do. Users can have the ability to control volume or skip songs. In addition, without leaving the ambient music mode, users can request specific songs at any time. The requested song can be played, and user selection (such as for volume changes) can be used for future selection weights.

[00266] PCD 기호들 [00266] PCD symbols

[00267] 일부 실시예들에서, 이 모드에 직접 액세스할 수 있지만("what kind of music do you like, PCD?"), PCD(100)는 또한 때때로, 노래들의 스트림에 하나 또는 그 초과의 선택들을 끼워넣을 수 있거나, 또는 쥬크박스 또는 무드박스 모드의 개시 시 선택을 플레이하려고 노력할 수 있다(앰비언트 뮤직 모드에서는, PCD(100)가 이를 수행하지 않을 수 있다). PCD의 뮤직 선택들은, PCD(100) 주식회사(Inc)로부터 규칙적으로 업데이트되는 목록들에 기초할 수 있거나, 작곡가들에 의해 생성될 수 있거나 또는 예컨대 다른 PCD들로부터의 클라우드 소싱 노래 선택들에 의해 생성될 수 있다. PCD(100) 기호들은 또한, 사용자의 네트워크의 특정한 PCD(100)로부터 특정한 노래를 뽑을 수 있는데, 예컨대, PCD(100)는 "Your daughter is requesting this song all the time now"를 알릴 수 있고, 이후 딸의 즐겨찾기 노래를 플레이할 수 있다.[00267] In some embodiments, although the PCD 100 may directly access this mode ("what kind of music do you like, PCD?"), The PCD 100 also sometimes has one or more selections Or attempt to play a selection at the start of the jukebox or mood-box mode (in the ambient music mode, the PCD 100 may not perform this). The music selections of the PCD may be based on lists that are regularly updated from PCD (100), Inc. (Inc), or may be generated by composers or generated by cloud sourcing song selections, e.g., from other PCDs . The PCD 100 symbols may also pick a particular song from a particular PCD 100 of the user's network, for example, the PCD 100 may announce " Your daughter is requesting this song all the time now &quot; You can play your daughter's favorite song.

[00268] 댄싱 PCD [00268] Dancing PCD

[00269] 예시적이며 비제한적인 실시예들에 따라, 임의의 모드에서 노래를 플레이한 후, PCD(100)는 그것이 어땠는지를 물을 수 있거나(그리고 사용자의 답신에 의존하여 적절하게 행복 또는 슬픔으로 응답할 수 있음), 또는 사용자가 얼마나 잘 댄싱했는지에 관한 점수를 사용자에게 제공할 수 있다. 또한, PCD(100)는 사용자 댄싱의 포토들을 캡쳐할 수 있고, 그리고 이 포토들을 사용자의 PCD 프로파일, 사회적 미디어 사이트에 업로딩하거나 또는 이 포토들을 이메일링하도록 제공할 수 있다. 다양한 기능 모드들이 하기를 포함한다:[00269] According to illustrative, non-limiting embodiments, after playing a song in any mode, the PCD 100 may ask what it was (and may appropriately be happy or sad , Or may provide a score to the user as to how well the user has danced. In addition, the PCD 100 can capture the photos of the user dancing and can upload these photos to the user's PCD profile, social media site, or to e-mail these photos. The various functional modes include:

[00270] 상대방 복사 [00270] Copying the other party

[00271] 이 모드에서는, PCD(100)가 플레이할 노래를 선택하고, 이후 비스(vis)/RGBD 카메라 시야에서 사용자를 포착하기 위해 사운드 위치/얼굴/스켈레톤 추적을 사용한다. 사용자가 뮤직을 따라서 댄싱할 때, PCD(100)는 사용자의 댄스를 모방하려고 노력할 수 있다. 사용자가 뮤직에 박자를 맞추는데 실패한다면, 뮤직은 스피드가 떨어지거나 올라갈 수 있다. 노래의 끝에서, PCD(100)는 사용자의 이동들을 복사할 때 그것이 어떻게 수행했는지를 물을 수 있거나, 또는 사용자가 얼마나 잘 박자를 맞추었는지에 관한 점수를 사용자에게 제공할 수 있다. 또한, PCD(100)는 사용자 댄싱의 포토들을 캡쳐할 수 있고, 그리고 이 포토들을 사용자의 PCD 프로파일, 소셜 미디어 사이트에 업로딩하거나 또는 이 포토들을 사용자에게 이메일링하도록 제공할 수 있다. [00271] In this mode, the PCD 100 selects a song to play and then uses the sound location / face / skeleton tracking to capture the user in the vis / RGBD camera view. When the user dances along the music, the PCD 100 may try to imitate the user's dancing. If the user fails to beat the music, the music may slow down or go up. At the end of the song, the PCD 100 may ask how it performed when copying the user's movements, or may provide the user with a score as to how well the user has beat. In addition, the PCD 100 can capture the photos of the user dancing and upload these photos to the user's PCD profile, social media site, or provide them with e-mail to the user.

[00272] 카피 PCD [00272] The copy PCD

[00273] 이 모드에서, PCD(100)는 춤추고, 사용자는 춤을 모방하려고 노력한다. 다시, 사용자가 양호하게 태스크를 완수하고 있지 않는 경우, 음악의 재생에 영향을 미친다. 일부 실시예들에서, 별개의 스크린은 사용자 및 PCD(100) 둘 모두가 모방하기 위한 인간 댄서를 도시한다. 사용자 및 PCD(100) 둘 모두는 그들의 춤을 추고, 그 다음, PCD(100)는 자기 자신과 사용자 둘 모두를 등급화(grade)한다.[00273] In this mode, the PCD 100 dances, and the user tries to imitate the dance. Again, if the user is not satisfactorily performing the task, it affects playback of the music. In some embodiments, a separate screen depicts a human dancer for both the user and the PCD 100 to imitate. Both the user and the PCD 100 perform their dancing, and then the PCD 100 grades both itself and the user.

[00274] 따라서 춤추기 [00274] Therefore,

[00275] 이 모드에서, 사용자는 라디오, iPod, 노래부르기, 허밍 등으로부터 음악을 재생하고, PCD(100)는 춤을 추려고 노력하여, 그것이 결국 얼마나 잘 수행하였는지를 묻는다.[00275] In this mode, the user plays music from a radio, an iPod, a song, a humming, etc., and the PCD 100 tries to dance and asks how well it has done in the end.

[00276] 스토리 액팅/애니메이팅 [00276] Story Acting / Animating

[00277] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 스토리 액팅/애니메이팅 특징(feature)로 구성될 수 있다. 이 특징에 따라, PCD(100)는 사용자가 PCD(100)와의 상호작용식 수행에 대한 플레이들을 구입하게 하도록 동작할 수 있다. 도 10을 참조하면, 예시적이며 비제한적인 실시예의 흐름도(1000)가 예시된다. 단계(1002)에서, 플레이들이 구매되고 사용자의 PCD 클라우드 프로파일에 저장될 수 있거나, 이들은 넷플릭스(Netflix) 스타일로 렌트될 수 있다.[00277] In accordance with illustrative, non-limiting embodiments, the PCD 100 may be configured with story actuation / animating features. In accordance with this feature, the PCD 100 may be operable to allow a user to purchase plays for an interactive performance with the PCD 100. Referring to FIG. 10, a flowchart 1000 of an exemplary, non-limiting embodiment is illustrated. At step 1002, the plays may be purchased and stored in the user's PCD cloud profile, or they may be rented in a Netflix style.

[00278] 플레이들/장면들의 구입은, 예컨대, 안드로이드 앱 또는 웹 인터페이스를 통해 발생할 수 있고, 여기서, 가상 PCD(100)는 구입 및 설치 프로세스를 통해 사용자에게 안내할 수 있다. 일부 실시예들에서, 단계(1004)에서, 사용자들은 자신들이 수행하기를 원하는 플레이/장면을 선택할 수 있다. 이 선택뿐만 아니라, 그것을 사용하는 동안의 특징의 제어는 단순한 터치 인터페이스(PCD(100)의 아이(eye) 또는 바디)를 통해 또는 자연 언어 인터페이스를 통해 달성될 수 있다. 단계(1006)에서, 일단 사용자가 플레이를 선택하면, PCD(100)는 사용자가 리허설하거나 수행하기를 원하는지 여부를 물어볼 수 있고, 이는 진입될 모드를 지시할 것이다.[00278] Purchases of plays / scenes can occur, for example, via an Android app or a web interface, where the virtual PCD 100 can guide the user through the purchase and installation process. In some embodiments, at step 1004, users may select the play / scene they want to perform. In addition to this selection, control of features while using it can be accomplished through a simple touch interface (eye or body of PCD 100) or through a natural language interface. In step 1006, once the user selects play, the PCD 100 may ask whether the user wishes to rehearse or perform, which will indicate the mode to be entered.

[00279] 선택된 모드와 관계없이, 단계(1008)에서, PCD(100)는 사용자가 어떤 캐릭터가 플레이에 있기를 원하는지 사용자에게 물어봄으로써 시작할 수 있다. 이것 이후, 먼저, PCD(100)는 그 플레이가 다시 선택되는 경우, 그 선택을 검증할 것이고, 사용자는 언제라도 변경할 수 있다.[00279] Regardless of the mode selected, at step 1008, the PCD 100 may begin by asking the user which characters the user wants to be in play. After this, first, the PCD 100 will verify the selection if the play is again selected, and the user can change at any time.

[00280] 리허설 모드 [00280] Rehearsal mode

[00281] 단계(1010)에서, 일단 사용자가 리허설 모드에 진입하면, PCD(100)는 사용자가 플레이에 익숙하도록 플레이를 수행하도록 제안할 수 있다. 사용자가 이미 익숙한 경우, 사용자는 이것을 스킵할 수 있다. 단계(1012)에서, PCD(100)가 플레이를 수행하기를 사용자가 원하는 경우, PCD(100)는 사용자가 철저한 판독을 수행할 때 사용자의 역할에 대한 라인들을 강조할 수 있다.[00281] At step 1010, once the user enters the rehearsal mode, the PCD 100 may suggest that the user play to familiarize himself with the play. If the user is already familiar, the user can skip this. At step 1012, if the user desires that the PCD 100 perform a play, the PCD 100 may highlight lines for the user's role when the user performs a thorough read.

[00282] 이 판독 이후, 단계(1014)에서, PCD(100)는 라인들을 사용자에게 교시하는 것을 시작할 수 있다. 각각의 라인에 대해, PCD(100)는 프롬프트(prompt) 및 라인을 알리고, 그 다음, 사용자가 라인을 열거(recite)하는 동안 터치 스크린(104) 상에 단어들을 보여줄 수 있다. PCD(100)는 스피치 인식을 사용하여 사용자가 정확한지 여부를 결정할 수 있으며, 사용자가 라인을 정확하게 반복할 때까지 계속 노력할 것이다. 그 다음, PCD(100)는 프롬프트를 사용자에게 제안하고, 사용자들이 라인을 반복하게 할 수 있어, 사용자가 프롬프트에 대해 라인을 적절히 반복할 수 있을 때까지 다시 노력한다. 그 다음, PCD(100)는 다음 라인으로 이동할 수 있다.[00282] After this reading, in step 1014, the PCD 100 may begin to teach the lines to the user. For each line, the PCD 100 notifies the prompt and line, and then can display the words on the touch screen 104 while the user recites the line. PCD 100 may use speech recognition to determine if the user is correct and will continue to try until the user has correctly repeated the line. The PCD 100 then suggests a prompt to the user, allows the users to repeat the line, and tries again until the user can properly repeat the line for the prompt. The PCD 100 may then move to the next line.

[00283] 단계(1016)에서, 일단 사용자가 모든 라인들을 학습했다면, PCD(100)는 응답의 적절한 라인에 대해 체크하고 필요한 경우 사용자에게 프롬프트하여 모든 프롬프트들로 예행 연습을 행한다.[00283] At step 1016, once the user has learned all the lines, the PCD 100 checks for the appropriate line in the response and prompts the user, if necessary, to rehearse all the prompts.

[00284] 먼저, 프롬프트들은 라인을 제안하는 형상으로의 아이 모핑(eye morphing)을 갖는 그래픽 형태를 취할 수 있다는 점이 주목된다. 이것은 프롬프트에서의 첫 번째 시도일 수 있고, 사용자가 여전히 라인을 기억할 수 없는 경우, PCD(100)는 언어적 프롬프팅(verbal prompting)으로 진행할 수 있다.[00284] It is noted first that prompts can take the form of a graphic with eye morphing into a shape suggesting a line. This may be the first attempt at the prompt, and if the user is still unable to remember the line, the PCD 100 may proceed to verbal prompting.

[00285] 수행 모드 [00 285] do mode

[00286] 단계(1018)에서, 일단 사용자가 자신이 나타내길 원하는 캐릭터에 대한 모든 라인들을 기억한다면, 사용자는 수행 모드에 진입할 수 있다. 이 모드에서, PCD(100)는, 사용자가 자신의 라인들을 말하게 하도록 일시정지(pause)하고 사용자가 더듬거리거나 잊은 경우 프롬프팅하여, 플레이의 풀 업(full up) 수행을 이행할 것이다. PCD(100)는 이 수행 동안, 심지어 사용자-전달 라인들 동안에도, 전체 사운드 효과들, 백그라운드 음악, 애니메이션들 및 조명 효과들을 이용할 것이다. 일부 실시예들에서, 플레이가 수행된 이후, PCD(100)는, (가능한 경우) 사용자가 플레이하는 캐릭터의 입에 동기화되고 포함되는 사용자의 라인들 동안 사용자의 음성 오디오를 갖는 플레이의 카툰(cartoon)/애니메이션(animated) 버전을 생성할 수 있다. 이 카툰은 PCD 클라우드에 저장되거나, 소셜 미디어 사이트들에 포스팅되거나, 공유/기억하기 위해 사용자에게 이메일 전송될 수 있다. 일부 실시예들에서, PCD(100)는 또한, 다수의 참여자들(각각은 그들 자신의 캐릭터를 플레이함)에 의해 플레이들을 수행하도록 구성될 수 있고, 참여자들은 (예컨대, 텔레플로우(teleflow)의 다른 종단에서) 원격일 수 있다.[00286] At step 1018, once the user has memorized all the lines for the character he or she wants to display, the user can enter the mode of execution. In this mode, the PCD 100 will pause the user to tell his or her lines and prompt the user if he has stuttered or forgotten to perform a full up performance of the play. The PCD 100 will utilize the entire sound effects, background music, animations, and lighting effects during this performance, even during user-transfer lines. In some embodiments, after the play is performed, the PCD 100 may be synchronized to the mouth of the character that the user plays (if possible) and a cartoon of play with the user's voice audio during the lines of the user ) / Animated version. The cartoons can be stored in the PCD cloud, posted to social media sites, or emailed to users for sharing / remembering. In some embodiments, the PCD 100 may also be configured to perform the plays by a number of participants (each playing their own character) At the other end).

[00287] 춤추는 PCD - 공유 [00287] Dancing PCD - Sharing

[00288] 예시적이며 비제한적인 실시예에 따라, PCD(100)는 위에서 설명된 춤추는 PCD 앱의 추가 특징을 사용하도록 구성될 수 있다. 이 특징의 일부 실시예들에서, 사용자는 PCD(100)에 대한 커스텀 댄스(custom dance)를 생성할 수 있다. 이것은 모바일 또는 웹 앱을 통해 생성되어서, 사용자가 노래를 고르고 PCD(100)가 음악과 함께 수행하도록 함께 조합할 댄스 동작들을 선택하게 한다. 사용자는 또한, PCD(100)가 춤이 PCD(100)와 협력적으로 생성되도록 댄스 동작을 고르게 할 수 있다. 일부 실시예들에서, 조명/사운드 효과들(예컨대, PCD가 "get down!"이라 말함)이 추가되어 댄스와 동기화될 수 있다. 다른 실시예들에서, 가상 PCD(100)에 의해 수행되는 친구들에게 보여지고, 온라인에 저장되는 등의 식으로, PCD(100) 춤들은 다른 PCD들(100)에게 전송될 수 있다. 사용자는 또한, 다른 PCD(100) 사용자들에 의해 생성되는 다른 PCD(100) 춤들을 플레이할 수 있다.[00288] According to an exemplary, non-limiting embodiment, the PCD 100 may be configured to use the additional features of the dancing PCD app described above. In some embodiments of this feature, a user may create a custom dance for the PCD 100. This is generated via a mobile or web app, allowing the user to select songs and dance actions to be combined together for the PCD 100 to perform with the music. The user may also allow the PCD 100 to even out the dance operation so that the dance is produced in cooperation with the PCD 100. [ In some embodiments, lighting / sound effects (e.g., the PCD is said to be "get down!") May be added and synchronized with the dance. In other embodiments, PCD 100 dances may be sent to other PCDs 100, such as being viewed by friends played by virtual PCD 100, stored online, and so on. The user may also play other PCD 100 dances created by other PCD 100 users.

[00289] 셀러브리티(Celebrity) 생성 콘텐츠 [00289] Celebrity Generated Content

[00290] 예시적이며 비제한적인 실시예들에 따라, 이 특징은 사용자가 자신의 PCD(100) 셀러브리티 생성 콘텐츠에 대해 다운로드 또는 스트리밍하게 한다. 콘텐츠는 웹 인터페이스 또는 안드로이드 앱을 통해 선택되며, 여기서, 가상 PCD(100)는 콘텐츠 구입의 프로세스를 통해 사용자에게 안내할 수 있다. 콘텐츠는 다음 중 어느 하나일 수 있다:[00290] In accordance with illustrative, non-limiting embodiments, this feature allows a user to download or stream to their PCD (100) generated content. The content is selected through a web interface or an Android app, where the virtual PCD 100 can guide the user through the process of purchasing content. The content may be any of the following:

[00291] 프리레코딩(Prerecorded) [00291] Pre-recorded (Prerecorded)

[00292] 이것은 영화들, Mystery Science Theater 3000 타입의 농담들 등에 대한 디렉터/액터 코멘터리를 포함할 수 있다. 모든 콘텐츠는 영화에 큐잉될 수 있다. 오디오 워터마킹은 콘텐츠의 PCD(100)의 전달을 관찰되고 있는 미디어와 동기화하기 위해 사용될 수 있다.[00292] This may include a director / actor commentary on movies, Mystery Science Theater 3000 type jokes, and the like. All content can be queued to movies. Audio watermarking may be used to synchronize the delivery of the PCD 100 of content with the media being viewed.

[00293] 라이브 스트리밍 [00293] Live streaming

[00294] 이 모드에서, PCD(100)는 중심 위치에서 셀러브리티/전문가(pundit)에 의해 실시간으로 생성되고 있는 콘텐츠를 스트리밍할 수 있다. 콘텐츠 크리에이터는 또한, 말한 단어를 보완하도록 애니메이션들/조명/컬러 효과들을 달성하기 위한, 실시간 "인형(puppet)" PCD(100)에 대한 능력을 가질 수 있다. 이러한 경우들에서, 콘텐츠 크리에이터가 이론적으로 사용자와 동시에 이벤트를 관찰하고 실시간으로 코멘터리를 생성할 것이기 때문에, 어떠한 오디오 워터마킹도 필요하지 않다. 이것은 정치 전문가들이 대통령 연설들, 선거 보도 등에 대해 코멘터리를 제공하는 것 또는 사용자의 좋아하는 선수가 스포츠 이벤트에 대한 코멘터리를 제공하는 것을 포함할 수 있다.[00294] In this mode, the PCD 100 can stream content that is being generated in real time by a pundit at a central location. The content creator may also have the capability for a real-time " puppet " PCD 100 to achieve animations / lighting / color effects to complement the spoken words. In these cases, no audio watermarking is required, since the content creator will theoretically observe the event concurrently with the user and create a comment in real time. This may include political specialists offering commentaries on presidential speeches, election reports, or a user's favorite athlete offering a commentary on sporting events.

[00295] 예시적이며 비제한적인 실시예에 따라, PCD(persistent companion device)(100)는 사람 또는 사람들의 환경 내에서 계속적으로 또는 거의 계속적으로 상주하도록 적응된다. 일 실시예에서, 사람은 사람을 식별하는 다양한 파라미터 데이터가 PCD에 의해 포착되거나 PCD에 이용가능하게 이루어지는 사람의 특정 예이다. 아래에서 더 충분히 설명되는 바와 같이, 사람의 ID와 더불어, PCD(100)는 거동(스케줄들, 루틴들, 습관들 등), 선호도들, 태도들, 목표들, 태스크들 등의 패턴들을 추가로 인식할 수 있다.[00295] According to an exemplary, non-limiting embodiment, a persistent companion device (PCD) 100 is adapted to reside continuously or nearly continuously within the environment of a person or people. In one embodiment, a person is a specific example of a person whose various parameter data identifying a person is captured by the PCD or made available to the PCD. As will be described more fully below, in addition to the person's ID, the PCD 100 further adds patterns of behaviors (schedules, routines, habits, etc.), preferences, attitudes, goals, Can be recognized.

[00296] 식별 파라미터 데이터는 예컨대, 위에서 설명된 센서들(102, 104, 106, 108, 112) 중 하나 또는 둘 이상을 사용하는 음성 인식, 안면 인식 등을 사용하여 사람의 존재를 식별하기 위해 사용될 수 있다. 파라미터 데이터는, 이를테면, PCD(100)의 메모리 내에서 로컬로 또는 PCD(100)가 이를테면, 블루투스, 와이파이 등을 통해 유선 또는 무선 통신하는 서버 상에서 원격으로 저장될 수 있다. 이러한 파라미터 데이터는 PCD(100) 또는 서버에 수동으로 입력될 수 있거나, 초기화 프로세스의 일부로서 또는 시간이 지남에 따라 PCD(100)에 의해 포착될 수 있다.[00296] The identification parameter data may be used to identify a person's presence using, for example, voice recognition, face recognition, etc., using one or more of the sensors 102, 104, 106, . The parameter data may be stored remotely, such as in a memory of the PCD 100, or remotely on a server that is wired or wirelessly communicating via the Bluetooth, WiFi, or the like, for example, by the PCD 100. Such parameter data may be entered manually into the PCD 100 or server, or may be captured by the PCD 100 as part of the initialization process or over time.

[00297] 예컨대, 그렇지 않고 초기화되지 않은 PCD(100)를 사용자의 환경으로 이동시킬 시, 사용자는 PCD(100)가 사용자의 음성, 안면 특징들 등(및 다른 관련 사실 정보)의 예를 포착하기 위해 함께 상호작용/동작되는 초기화 프로시저를 수행할 수 있다. 아래에서 더 충분히 설명되는 패밀리 허브(family hub) 실시예에서, 사회적 네트워크를 형성하는 사용자들이 연장된 패밀리를 포함하는 경우, 다수가 존재할 수 있다. 이 데이터는 PCD(100) 내에 저장될 수 있으며, 마찬가지로, 이를테면, 예컨대, 서버에서 외부 저장을 위해 PCD(100)에 의해 통신될 수 있다. 다른 식별 사용자 데이터, 이를테면, 사용자 이름, 사용자 생일, 사용자 아이 색, 사용자 헤어 색, 사용자 몸무게 등은, 이를테면, PCD(100)의 부분의 형성 또는 서버의 그래픽 사용자 인터페이스, 스피치 인터페이스를 통해 수동적으로 입력될 수 있다. 일단 파라미터 데이터의 일부가 PCD(100)에 입력되거나 그렇지 않으면 PCD(100)에 의해 포착되면, PCD(100)는 다른 파라미터 데이터를 추가적으로 포착하도록 동작할 수 있다. 예컨대, 이를테면, 미리 결정된 텍스트를 PCD(100)에 열거함으로써 샘플 음성 시그니처를 제공하는 것을 포함하는 초기화를 수행할 시, PCD(100)는 말하고 있는 사용자를 식별하고 안면 식별에 대해 요구되는 안면 특징 데이터를 포착하도록 자율적으로 동작할 수 있다. PCD(100)가 사용자의 환경 내에서 지속적 존재를 유지할 때, PCD(100)는 사용자의 다양한 파라미터 데이터를 포착하도록 시간이 지남에 따라 동작할 수 있다.[00297] For example, when moving an uninitialized PCD 100 to the user's environment, the user may select the PCD 100 to capture an example of the user's voice, facial features, etc. (and other related factual information) You can perform initialization procedures that are interacted / operated together. In the family hub embodiment described more fully below, there may be many, if the users forming the social network include an extended family. This data may be stored in the PCD 100 and likewise, for example, communicated by the PCD 100 for external storage at the server. Other identifying user data, such as user name, user birth date, user eye color, user hair color, user weight, etc. may be manually entered, such as through the formation of a portion of PCD 100, . Once a portion of the parameter data is input to or otherwise captured by the PCD 100, the PCD 100 may be operable to additionally capture other parameter data. For example, when performing an initialization, including, for example, providing a sample voice signature by listing the predetermined text in the PCD 100, the PCD 100 may identify the speaking user and retrieve facial feature data Can be autonomously operated. When the PCD 100 maintains a persistent presence within the user's environment, the PCD 100 may operate over time to capture various parameter data of the user.

[00298] 일부 실시예들에서, 초기화 동안에, PCD(100)는 사람의 ID 이외의 사람에 관한 관련된 정보를 획득하도록 동작한다. 위에서 언급된 바와 같이, PCD(100)는, 백그라운드 정보, 인구통계 정보, 선호도들, 연락처 정보(이메일, 셀 폰 등), 관심들, 기호들, 성격 등을 획득하도록 동작할 수 있다. 그러한 경우들에서, PCD(100)는, 예컨대, "숙지하는(getting acquainted)" 상호작용 동안에, 텍스트 기반/GUI/스피치 입력 정보를 획득하도록 동작할 수 있다. 부가하여, PCD(100)는 또한, PCD(100)로 직접적으로 입력될 수 있을 뿐만 아니라, PCD들(100) 사이에서 공유될 수 있는, 가족 중심(예컨대, 연장자 부모, 자식 등)의 개인화된 파라미터화된 정보 및 연락처 정보를 획득하도록 동작할 수 있다. 아래에서 더 완전히 설명되는 다양한 실시예들에서, PCD(100)는 확대 가족과의 가족 연결을 용이하게 하도록 동작한다. 아래에서 더 설명되는 바와 같이, 사람의 스케줄, 이벤트들, 무드 등을 포함하지만 이에 제한되지는 않는 일간 정보는, PCD(100)가 사용자에게 어떻게 상호작용하고, 추천하고, 활동들을 제안하고, 정보를 제안하는지 등에 대한 중요한 상황을 제공할 수 있다.[00298] In some embodiments, during initialization, the PCD 100 operates to obtain relevant information about a person other than a person's ID. As mentioned above, the PCD 100 may be operable to obtain background information, demographic information, preferences, contact information (emails, cell phones, etc.), interests, symbols, personality, and the like. In such cases, the PCD 100 may be operable to obtain text-based / GUI / speech input information, for example, during an " acquiring &quot; In addition, the PCD 100 can also be directly entered into the PCD 100, as well as being personalized (e.g., personalized) of a family-centric (e.g., senior parent, child, etc.) And to obtain parameterized information and contact information. In the various embodiments described more fully below, the PCD 100 operates to facilitate family connections with extended family members. As will be discussed further below, daily information, including but not limited to a person's schedule, events, mood, etc., can be used by the PCD 100 to interact with, recommend, suggest activities, And the like.

[00299] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)에 의해 획득된 상황적, 종단 데이터는 적응 시스템을 용이하게 하며, 적응 시스템은, 사용자(들)의 관심들, 선호들, 사용 사례들에 점점 더 맞춰지게 되도록, 그 적응 시스템의 기능들 및 특징들을 구성한다. 예컨대, PCD(100)가, 사용자가 음악을 좋아하는 것을 학습하는 경우에, PCD(100)는, 좋아하는 음악을 발견하고, 그 종류의 음악을 플레이하고, 정보에 근거한 음악 추천들을 할 수 있도록, 클라우드로부터 "음악 속성"을 자동적으로 다운로딩할 수 있다.[00299] According to exemplary and non-limiting embodiments, the contextual, endpoint data obtained by the PCD 100 facilitates an adaptation system, which adapts the user (s) interests, preferences And configure the functions and features of the adaptation system so that it is more and more aligned with use cases. For example, if the PCD 100 learns that the user likes music, the PCD 100 may be able to find the music of his or her liking, play that kind of music, , You can automatically download "music properties" from the cloud.

[00300] 이러한 방식으로, PCD(100)는 사용자의 생활에 관하여 학습한다. PCD(100)는 실세계에서의 사용자를 감지할 수 있고, PCD(100)는, PCD(100)에 연결된, 다른 디바이스들, 기술들, 시스템들, 개인 컴퓨팅 디바이스들, 개인 전자 디바이스들의 생태로부터 데이터를 수집할 수 있다. 종단 데이터의 이러한 수집으로부터, PCD(100)는, 그것으로 하여금 사용자에 관하여 학습할 수 있게 하고, 그것이 제공할 수 있는 기능들에 대해 더 우수하게 적응되고 매칭되도록 그 자체를 구성할 수 있게 하는 활성의 패턴들 및 사람에 관하여 학습한다. 중요하게, PCD(100)는, 당신의 생활에서 중요한 사람들(당신의 확대 가족)인 당신의 사회/가족 패턴들에 관하여 학습하고, 그것은 당신의 감정들/무드들에 관하여 학습하고 추적하고, 그것은 (당신이 어떤 것들을 행하는 경향이 있는 경우에) 중요한 거동 패턴들에 관하여 학습하고, 그것은 당신의 선호들, 기호들 등을 학습하고, 그것은 당신이 알고 싶어하는 것, 당신을 즐겁게 하는 것 등을 학습한다.[00300] In this way, the PCD 100 learns about the life of the user. The PCD 100 may sense a user in the real world and the PCD 100 may receive data from the ecology of other devices, technologies, systems, personal computing devices, Can be collected. From this collection of end-point data, the PCD 100 has an activity that allows it to learn about the user and to configure itself to be better adapted and matched to the functions it can provide Learn about patterns and people. Importantly, the PCD 100 learns about your social / family patterns that are important people in your life (your extended family), that it learns and tracks about your feelings / moods, You learn about important behavior patterns (if you tend to do something), it learns your preferences, symbols, etc., and it learns what you want to know, what makes you happy .

[00301] 아래에서 더 완전히 설명되는 바와 같이, PCD(100)는, PCD(100)와 PCD(100)의 사용자의 상호작용들에 관한 데이터를 수집하기 위한 종단 데이터 수집 설비를 제공하기 위해, 사용자와 상호작용하도록 구성된다.As will be described more fully below, the PCD 100 may be configured to provide an end data collection facility for collecting data relating to user interactions of the PCD 100 and the PCD 100, Respectively.

[00302] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는, 시각, 청각, 및 촉각 센서들(102, 104, 106, 108, 112)을 수반하는 상호작용을 통해 사용자와의 지속적인 상호작용의 하나 또는 그 초과의 속성들을 포함하는 종단 데이터를 획득하도록 구성된다. 각각의 경우에서, 시각, 청각, 및 촉각 감각들은 인지될 수 있거나, 또는 그렇지 않으면, 사용자로부터 PCD(100)에 의해 획득될 수 있을 뿐만 아니라, PCD(100)에 의해 사용자에게 전달될 수 있다. 예컨대, PCD(100)는, 사용자의 활성들, 감정 상태, 및 메디컬 상태에 관련된 데이터를 포함하는, 사용자로부터의 시각 정보를 획득하기 위해, 카메라 센서(106)를 포함할 수 있다. 마찬가지로, PCD(100)는, 스피치 인식으로부터 유도된 데이터, 스트레스 레벨들에 관련된 데이터, 뿐만 아니라, 사용자에 의해 활용된 엔터테인먼트 매체들의 아이덴티티와 같은 상황적 정보를 포함하는, 사용자로부터의 오디오 정보를 획득하기 위해, 오디오 센서(112)를 포함할 수 있다. PCD(100)는, PCD(100)를 허깅(hugging)하는 것 및 페팅(petting)하는 것을 포함하지만 이에 제한되지는 않는, 사용자의 터칭 또는 PCD(100)와 물리적으로 접촉하는 것에 관련된 데이터를 포함하는, 사용자로부터의 촉각 정보를 획득하기 위해, 촉각 센서(102)를 더 포함할 수 있다. 다른 실시예들에서, 사용자는 또한, PCD(100)의 터치 스크린 인터페이스를 네비게이팅하기 위해 터치를 사용할 수 있다. 다른 실시예들에서, 사용자 또는 PCD(100)의 위치가, 예컨대, 사용자가 휴대하고 있고, 위치 상황-관련된 정보를 제공하고 서비스들을 제공하기 위한 입력으로서 사용되는 셀 폰을 통해, 결정될 수 있다.According to illustrative, non-limiting embodiments, the PCD 100 may be coupled to the user through interaction involving visual, auditory, and tactile sensors 102, 104, 106, 108, And is configured to obtain end data that includes one or more attributes of persistent interaction. In each case, the visual, auditory, and tactile sensations may be perceived or otherwise communicated to the user by the PCD 100 as well as obtained by the PCD 100 from the user. For example, the PCD 100 may include a camera sensor 106 to obtain visual information from a user, including data related to a user's activities, emotional state, and medical condition. Likewise, the PCD 100 obtains audio information from the user, including contextual information, such as data derived from speech recognition, data relating to stress levels, as well as identities of entertainment mediums utilized by the user An audio sensor 112 may be included. The PCD 100 includes data relating to a user's touch or physical contact with the PCD 100, including, but not limited to, hugging and petting the PCD 100 To obtain tactile information from the user, which is performed by the user. In other embodiments, the user may also use a touch to navigate the touch screen interface of the PCD 100. [ In other embodiments, the location of the user or PCD 100 may be determined, for example, through a cell phone that the user is carrying and which is used as input to provide location-related information and provide services.

[00303] 언급된 바와 같이, 시각, 청각, 및 촉각 감각들은 PCD(100)에 의해 사용자에게 전달될 수 있다. 예컨대, 오디오 출력 디바이스는, 사운드들, 알람들, 음악, 음성 명령들 등을 출력하고, 사용자와의 대화에 관여하기 위해 사용될 수 있다. 유사하게, 그래픽 엘리먼트는, 사용자에게 이미지들 및 텍스트를 전달하기 위해 활용될 수 있을 뿐만 아니라, 사용자와 PCD(100) 사이의 통신 상호작용의 부분을 포함하는 그래픽 데이터를 전달하도록 동작할 수 있다. 그것은 주변 광 및 다른 큐들(그것의 LED 폼 폼(LED pom pom))을 사용할 수 있다. 촉각 디바이스(102)는, 예컨대, 진동을 통해, 감정 상태들 및 포함하는 다양한 다른 데이터를 PCD(100)에 전달하고, 디바이스의 인터페이스/콘텐츠를 네비게이팅하기 위해 사용될 수 있다. 디바이스는 사용자의 상황, 무드 등에 적합한 상이한 냄새들을 방출할 수 있다.[0030] As mentioned, the visual, auditory, and tactile sensations can be communicated to the user by the PCD 100. For example, the audio output device may be used to output sounds, alarms, music, voice commands, and the like, and engage in conversation with the user. Similarly, the graphical element may be operable to convey graphics data, including portions of the communication interaction between the user and the PCD 100, as well as being utilized to convey images and text to the user. It can use ambient light and other cues (its LED pom pom). The haptic device 102 may be used, for example, to transmit emotion states and various other data, including vibration, to the PCD 100 and to navigate the interface / content of the device. The device may emit different odors suitable for the user's situation, mood, and the like.

[00304] 정보는 PCD(100)에 연결된 상이한 디바이스들을 통해 수집될 수 있다. 이는, 제 3자 시스템들(예컨대, 메디컬, 홈 보안 등의 데이터), 모바일 디바이스 데이터(음악 플레이리스트들, 포토들, 검색 히스토리, 달력, 연락 리스트들, 비디오들 등), (특히, PCD(100) 포털을 통해 입력된) 데스크톱 컴퓨터 데이터로부터 유래할 수 있다.[0030] Information may be collected via different devices connected to the PCD 100. This can be achieved by using third party systems (e.g., data such as medical, home security, etc.), mobile device data (music playlists, photos, search history, calendars, contact lists, videos, 100) portal). &Lt; / RTI &gt;

[00305] 위에서 설명된 센서들에 부가하여, 사용자와 PCD(100) 사이의 상호작용들에 수반되는 정보 및 데이터는, 다양한 데이터 소스들로부터 획득될 수 있고, 다양한 데이터 소스들 상에 저장될 수 있고, 다양한 데이터 소스들로 출력될 수 있다. 예시적이며 비제한적인 실시예들에서, 상호작용 데이터는, 클라우드 데이터 또는 연결의 다른 모드들(블루투스 등)을 통해 사용자와 PCD(100) 사이에서 송신될 수 있고 저장될 수 있다. 일 실시예에서, PCD(100)와의 상호작용을 가능하게 하기 위해, 사용자의 클라우드 저장된 데이터에 PCD(100)에 의해 액세스가 가능하게 될 수 있다. 예컨대, PCD(100)는, 인터넷을 검색할 수 있고, 앱/서비스를 사용할 수 있거나, 또는 클라우드 스토리지로부터의 사용자의 스케줄과 같은, 클라우드로부터의 데이터에 액세스할 수 있고, 그로부터 유도된 정보를 사용하여, 상호작용들을 트리거링할 수 있다. 일 예로서, PCD(100)는, 사용자가 근처의 레스토랑에서 9:00 am에 친구와 조식 약속이 있다는 것이 주목될 수 있다. PCD(100)가, 약속 5분 전에 홈에 사용자가 있다는 것을 주목한 경우에, PCD(100)는, 사용자가 출발할 준비를 해야 하지 않는지를 질의하기 위해, 오디오 디바이스(110)를 통해 스피킹함으로써, 사용자와 상호작용할 수 있다. 예시적인 실시예에서, PCD(100)는, 현재의 GPS 좌표들 및 레스토랑의 GPS 좌표들에 기반하여, 이동 시간 계산을 자율적으로 수행함으로써, 이러한 공적을 달성할 수 있다. 이러한 방식으로, PCD(100)는, 사용자와 PCD(100) 사이의 라포 형성 상호작용들을 발생시키는 액션들을 트리거링하기 위해, 액세스된 온라인 또는 클라우드 데이터에 하나 또는 그 초과의 알고리즘들을 적용할 수 있다. 사람들은, 사회적 네트워킹, 실시간 또는 비동기 방법들, 예컨대, 텍스트들을 전송하는 것, 실시간 오디오-시각 연결을 확립하는 것, 다른 앱들/서비스들(페이스북, 트위터 등)을 통해 연결하는 것 등을 통해 PCD(100)와 통신할 수 있다. 다른 예들은, 상호작용들을 트리거링하기 위해 사용될 수 있는 아이튠즈(itunes) 및 넷플릭스(Netflix) 데이터를 포함하지만 이에 제한되지는 않는, 클라우드에 저장된, 사용자의 엔터테인먼트 및 매체 파일들로의 PCD(100)에 의한 액세스를 포함한다.In addition to the sensors described above, the information and data involved in the interactions between the user and the PCD 100 can be obtained from various data sources and stored on various data sources And can be output to various data sources. In exemplary and non-limiting embodiments, the interaction data may be transmitted and stored between the user and the PCD 100 via cloud data or other modes of connection (Bluetooth, etc.). In one embodiment, to enable interaction with the PCD 100, the cloud stored data of the user may be made accessible by the PCD 100. For example, the PCD 100 can search the Internet, use the app / service, or access data from the cloud, such as a user's schedule from cloud storage, and use the information derived therefrom Thereby triggering interactions. As an example, it may be noted that the PCD 100 has a breakfast appointment with a friend at 9:00 am at a nearby restaurant. If the PCD 100 notices that there is a user in the groove five minutes prior to the appointment, the PCD 100 speaks through the audio device 110 to inquire whether the user should be ready to start , And interact with the user. In an exemplary embodiment, the PCD 100 may accomplish this accomplishment by autonomously performing travel time calculations based on current GPS coordinates and restaurant GPS coordinates. In this manner, the PCD 100 may apply one or more algorithms to the on-line or cloud data accessed to trigger actions that generate rapport formation interactions between the user and the PCD 100. People can use social networking, real-time or asynchronous methods, such as sending texts, establishing real-time audio-visual connections, connecting through other apps / services (Facebook, Twitter, etc.) And can communicate with the PCD 100. Other examples include, but are not limited to, iTunes and Netflix data that can be used to trigger interactions, to the PCD 100 to the user's entertainment and media files stored in the cloud &Lt; / RTI &gt;

[00306] 유사한 방식으로, 다른 예시적인 실시예들에 따르면, 상호작용 데이터는, 사용자의 환경에 또는 그 근처에, 예컨대, 서버 또는 개인 컴퓨터 또는 모바일 디바이스 상에 저장될 수 있고, 사용자에 의해 액세스 가능할 수 있다. PCD(100)는, 마찬가지로, 클라우드에 데이터를 저장할 수 있다. 다른 실시예들에서, 상호작용 데이터는 PCD(100) 외부의 센서들을 통해 획득될 수 있다.[00306] In a similar manner, in accordance with other exemplary embodiments, the interaction data may be stored in or near the user's environment, such as on a server or personal computer or mobile device, It can be possible. The PCD 100 may similarly store data in the cloud. In other embodiments, the interaction data may be obtained via sensors external to the PCD 100.

[00307] 예시적이며 비제한적인 실시예들에 따르면, 상호작용을 용이하게 하기 위해 활용될 수 있는, 활성 로그 및 디바이스 사용 로그가 생성될 수 있고, 예컨대, PCD(100) 상에, 서버 상에, 또는 클라우드에 저장될 수 있다. 활성 로그는, 사용자에 의해, PCD(100)에 의해, 또는 대화식 방식으로 사용자 및 PCD(100) 양자 모두에 의해 관여된 활성들을 레코딩하는 정보를 저장할 수 있다. 예컨대, 활성 로그는, 체스 게임에 관여하는 사용자 및 PCD(100)의 경우들을 레코딩할 수 있다. 부가적으로, 그러한 매칭들 동안의 사용자의 감정 상태에 관한 정보가 저장될 수 있고, 그로부터, 사용자의 즐거움 레벨이 추측될 수 있다. 이러한 데이터를 사용하여, PCD(100)는, 사용자가 얼마나 자주 체스를 플레이하기를 원하는지, PCD(100)와 사용자가 마지막으로 체스를 플레이한 이래로 얼마나 지났는지, 사용자가 체스 매칭에 관여하기를 원하는 가능성 등과 같은 것들을 결정할 수 있다. 유사한 방식으로, 언제, 얼마나 자주, 그리고 어떻게, 사용자가 PCD(100)와 상호작용하는 것을 선호하는지를 나타내는 디바이스 사용 로그가 저장 및 유지될 수 있다. 분명한 바와 같이, 활성 로그 및 디바이스 사용 로그 양자 모두는, 사용자와 PCD(100) 사이의 상호작용들의 품질 및 빈도 양자 모두를 증가시키기 위해 사용될 수 있다.[00307] According to exemplary, non-limiting embodiments, an activity log and device usage log may be generated that may be utilized to facilitate interaction, for example, on the PCD 100, , Or in the cloud. The activity log may store information that records activities that are engaged by the user, by the PCD 100, or by both the user and the PCD 100 in an interactive manner. For example, the activity log may record the users involved in the chess game and the cases of the PCD 100. Additionally, information about the emotional state of the user during such matches can be stored, from which the user's enjoyment level can be inferred. Using this data, the PCD 100 can determine how often the user wants to play the chess, how long since the PCD 100 and the user last played the chess, whether the user wanted to engage in chess matching Probability, and so on. In a similar manner, a device usage log may be stored and maintained that indicates when, how often, and how the user prefers to interact with the PCD 100. As is evident, both the activity log and the device usage log can be used to increase both the quality and frequency of interactions between the user and the PCD 100.

[00308] 예시적이며 비제한적인 실시예에 따르면, 상호작용 데이터는 수동 입력을 통해 획득될 수 있다. 그러한 데이터는, 사용자에 의해 직접적으로, PCD(100)의 부분을 형성하는 입력 디바이스들(102, 104, 106, 108, 112)을 통해 PCD(100)로 입력될 수 있거나, 또는 컴퓨팅 디바이스, 예컨대 서버, PDA, 개인 컴퓨터 등으로 입력될 수 있고, 예컨대 블루투스 또는 Wi-Fi/클라우드를 통해 PCD(100)로 송신될 수 있거나 또는 그렇지 않으면 통신될 수 있다. 다른 실시예들에서, 상호작용 데이터는 사용자와 PCD(100) 사이의 다이얼로그를 통해 PCD(100)에 의해 획득될 수 있다. 예컨대, PCD(100)는 일련의 질문들을 포함하는, 사용자와의 다이얼로그에 관여할 수 있고, 사용자의 답신들은 PCD(100) 상에서, 서버 상에서, 또는 클라우드에서 동작하는 스피치 인식 소프트웨어를 통해 텍스트로 변환되고, 결과들은 상호작용 데이터로서 저장된다. GUI 또는 터치-기반 상호작용에 대해서도 유사하다.[00308] According to an exemplary, non-limiting embodiment, the interaction data may be obtained via manual input. Such data may be entered by the user directly into the PCD 100 via the input devices 102, 104, 106, 108, 112 forming part of the PCD 100, Server, PDA, personal computer, or the like, and may be transmitted to the PCD 100 via, for example, Bluetooth or Wi-Fi / Cloud, or otherwise communicated. In other embodiments, the interaction data may be obtained by the PCD 100 via a dialog between the user and the PCD 100. For example, the PCD 100 may participate in a dialog with the user, including a series of questions, and the user replies may be converted to text on the PCD 100, on the server, or through speech recognition software running in the cloud And the results are stored as interaction data. It is similar for GUI or touch-based interactions.

[00309] 예시적이며 비제한적인 실시예에 따르면, 상호작용 데이터는, 후각 데이터를 식별하도록 구성된 센서(102, 104, 106, 108, 112)를 통해 생성될 수 있다. 마찬가지로, PCD(100)는 후각 냄새들을 방출하도록 구성될 수 있다. 또 다른 실시예들에서, 상호작용을 향상시키기 위해, GPS 및 다른 위치 결정 장치가 PCD(100)에 포함될 수 있다. 예컨대, 어린이 사용자는 가족 여행 또는 방학에 자신의 PCD(100)를 가지고 갈 수 있다. 이동 중에, PCD(100)는 그것의 지리적인 위치를 결정할 수 있고, 근처의 랜드마크들을 결정하기 위해 인터넷에 액세스할 수 있고, 랜드마크들을 논의함으로써 장소 및 시간에 관련된, 어린이와의 다이얼로그에 관여할 수 있다.[00309] According to an exemplary, non-limiting embodiment, the interaction data may be generated via sensors 102, 104, 106, 108, 112 configured to identify olfactory data. Likewise, the PCD 100 may be configured to emit olfactory odors. In yet other embodiments, GPS and other position determination devices may be included in the PCD 100 to enhance interaction. For example, a child user may take his or her PCD 100 to a family trip or vacation. On the move, the PCD 100 can determine its geographical location, access the Internet to determine nearby landmarks, and engage in dialogue with the child relating to the location and time by discussing the landmarks can do.

[00310] 이러한 방식에서의 논의에 대한 주제들을 확인하는 것에 부가하여, 일부 실시예들에서, 이러한 상호작용들의 결과들은, 그 시간에 또는 나중 시간에, 미리 정의된 보안 설정들에 따라 복수의 사용자들로부터 그와 같이 포착된, 누적된 상호작용 데이터가 존재하는 원격 저장 설비에 전송할 수 있다. 이러한 방식에서, 위치와 같은 PCD(100) 포착 데이터 및 사용자의 속성들의 통계적 프로파일에 기반하여, 바람직한 상호작용 모드들의 중앙집중형 데이터베이스가 전개될 수 있다. 예컨대, 이전의 예에서, PCD(100)는 자신의 위치가, 항공 우주 박물관 인근의 그리고 자연사 박물관 건너편의 내셔널 몰 상에 있는 것으로 결정할 수 있다. 중앙집중형 데이터베이스에 액세스하여 사용자의 나이 및 위치를 제공함으로써, 사용자의 나이 프로파일에 매칭되는 다른 어린이들이 공룡(dinosaurs)에 흥미있어 하는 경향이 있음이 결정될 수 있다. 결과적으로, PCD(100)는 사용자를 자연사 박물관으로 향하게 하면서 공룡의 논의에 관여하기 시작한다.[00310] In addition to identifying the subject matter of the discussion in this manner, in some embodiments, the results of these interactions may include, at the time or at a later time, Lt; / RTI &gt; to the remote storage facility in which the accumulated interaction data is captured. In this manner, a centralized database of preferred interaction modes can be deployed, based on the statistical profile of PCD 100 acquisition data and user attributes, such as location. For example, in the previous example, the PCD 100 may determine that its location is near the aerospace museum and on the National Mall opposite the Natural History Museum. By accessing the centralized database and providing the age and location of the user, it can be determined that other children who match the age profile of the user tend to be interested in dinosaurs. As a result, the PCD 100 begins to engage in the discussion of dinosaurs while directing the user to the Natural History Museum.

[00311] 예시적이며 비제한적인 실시예에 따르면, PCD(100)는, 사용자의 다양한 생리적 그리고 물리적 속성들 및 파라미터들에 적어도 부분적으로 기반하여, 사용자와의 상호작용의 양상들을 변조(modulate)할 수 있다. 일부 실시예들에서, PCD(100)는 사용자의 시선의 방향을 결정하기 위해 시선 트랙킹을 이용할 수 있다. 이러한 정보는 예컨대, 사용자의 흥미를 결정하기 위해 또는 회피성(evasiveness)을 측정하기 위해 사용될 수 있다. 마찬가지로, 사용자의 심박동수 및 호흡률이 포착될 수 있다. 또 다른 실시예들에서, 사용자의 피부 톤(skin tone)이 시각적 센서 데이터로부터 결정되어, 사용자의 물리적 또는 감정적 상태를 확인하기 위해 활용될 수 있다. 센서들(102, 104, 106, 108, 112)을 통해 확인될 수 있는 사용자의 다른 거동 속성들은, 이에 제한되는 것은 아니지만, 음성 프로소디 및 단어 선택을 포함할 수 있다. 다른 예시적인 실시예들에서, PCD(100)는, 흔드는 것(waving) 또는 가리키는 것(pointing)과 같은 사용자의 물리적 제스처들을 확인 및 해석할 수 있고, 이는 추후에 상호작용을 위한 트리거들로서 활용될 수 있다. 마찬가지로, 사용자가 서 있는지, 구부정하게 있는지, 기대 있는지 등을 결정하기 위해, 사용자의 자세가 PCD(100)에 의해 평가 및 분석될 수 있다.According to an exemplary, non-limiting embodiment, the PCD 100 modulates aspects of interaction with a user based, at least in part, on various physiological and physical attributes and parameters of the user, can do. In some embodiments, the PCD 100 may use eye tracking to determine the direction of the user &apos; s line of sight. This information can be used, for example, to determine the user's interest or to measure evasiveness. Similarly, the user's heart rate and respiration rate can be captured. In yet other embodiments, a user's skin tone may be determined from visual sensor data and utilized to identify a user's physical or emotional state. Other behavioral attributes of the user that can be identified through sensors 102, 104, 106, 108, 112 may include, but are not limited to, voice prosodic and word selection. In other exemplary embodiments, the PCD 100 may identify and interpret the user's physical gestures, such as waving or pointing, which may then be utilized as triggers for interaction . Likewise, the user's posture can be evaluated and analyzed by the PCD 100 to determine if the user is standing, leaning, expecting, and so on.

[00312] 다양한 예시적이며 비제한적인 실시예들에 따르면, PCD(100)와 사용자 사이의 상호작용은, 사용자의 결정된 감정적 또는 정신적 상태 또는 속성에 적어도 부분적으로 기초할 수 있다. 예컨대, PCD(100)는, 사용자가 예컨대, 불안해하는 것 같은지, 행복해하는 것 같은지, 걱정스러워하는 것 같은지, 즐거워하는 것 같은지 등을 확인하기 위해, 사용자가 아이를 깜빡이는 레이트, 사용자가 웃고 있는지 자신의 입술을 깨물고 있는지, 사용자가 웃음소리를 내는지 등을 결정 및 기록할 수 있다. 유사하게, PCD(100)는, 사용자 외에는 조용한 환경에서 사용자가 비교적 움직임없이 그리고 조용하게 있으면서 사용자의 시선이 공간의 포인트를 응시하는 것을 관찰하고, 사용자가 생각하는 상태 또는 혼란스러워하는 상태에 있음을 결정할 수 있다. 또 다른 실시예들에서, PCD(100)는, 자신의 머리를 끄덕이거나 흔드는 것과 같은 사용자 제스처들을 정신적 동의 또는 비동의의 표시들로서 해석할 수 있다.[00312] According to various exemplary, non-limiting embodiments, the interaction between the PCD 100 and the user may be based, at least in part, on a determined emotional or mental state or attribute of the user. For example, the PCD 100 may determine whether a user is blinking a child, whether the user is smiling, whether the user is smiling, whether the user is, for example, anxious, happy, worried, Determine whether the user is licking his / her lips, whether the user is laughing, and the like. Similarly, the PCD 100 may be able to determine that the user is gazing at a point in space while the user is relatively motionless and quiet in a quiet environment other than the user, and determines that the user is in a conceivable or confused state . In yet other embodiments, the PCD 100 may interpret user gestures such as nodding or shaking their heads as mental or non-consensual indications.

[00313] 예시적이며 비제한적인 실시예에 따르면, 사용자가 상호작용하는 인터페이스의 일반적 속성들은, 의인화(anthropomorphic) 또는 비-인간(non-human) 기반 PCD(100)를 제공하도록 구성 및/또는 조정될 수 있다. 일 실시예에서, PCD(100)는 비-인간 동물(non-human animal)의 특성들을 디스플레이하도록 구성된다. 그렇게 하는 것에 의해, 특정 동물에 대한, 사용자에 의한 기존의 감정적 애호성(emotional predilection)을 모방 및/또는 증폭시킴으로써, PCD(100)와 사용자 사이의 상호작용이 향상될 수 있다. 예컨대, PCD(100)는, 개가 행동할 때 짖는 것에 의해 흥분 상태를 전달하는 것을 모방할 수 있다. PCD(100)는 추가로, 사용자의 상호작용들에 응답하여 흔들 수 있는 꼬리 같은 부속물을 갖출 수 있다. 마찬가지로, PCD(100)는, 친숙한 고양이과의 "야옹(meow)"과 유사한 소리들을 출력할 수 있다. PCD(100) 인터페이스의 실시간 표현(real time manifestation)들에 부가하여, 이러한 인터페이스 속성들은, 상호작용을 추가로 향상시키기 위해 사용자의 에이징 프로세스 및 PCD(100) 동물 캐릭터를 조정함으로써, 시간에 걸쳐 바뀔 수 있다. 예컨대, 개에 기초하는 PCD(100) 캐릭터는, 처음 포착될 때 강아지의 동작들을 모방하고, 사용자와 PCD 캐릭터의 관계가 발전되고 있다는 의미를 사용자 쪽에 제공하기 위해 자신의 거동들 및 상호작용들을 점진적으로 발달시킬 수 있다.[00313] According to an exemplary, non-limiting embodiment, the general attributes of the interface with which the user interacts may be configured and / or configured to provide an anthropomorphic or non-human based PCD 100 Lt; / RTI &gt; In one embodiment, the PCD 100 is configured to display characteristics of a non-human animal. By doing so, the interaction between the PCD 100 and the user can be improved by mimicking and / or amplifying the existing emotional predilection by the user for a particular animal. For example, the PCD 100 may imitate conveying an excited state by barking when the dog is acting. The PCD 100 may additionally be equipped with a tail-like attachment that can be waved in response to user interactions. Likewise, the PCD 100 may output sounds similar to the familiar meats " meow &quot;. In addition to the real time manifestations of the PCD 100 interface, these interface attributes may be changed over time by adjusting the user's aging process and the PCD 100 animal character to further enhance the interaction . For example, a PCD 100 character based on a dog imitates the actions of a dog when it is first picked up and moves its behaviors and interactions gradually to provide the user with the meaning that the relationship between the user and the PCD character is developing .

[00314] 유의된 바와 같이, 동물들 또는 허구적인 존재(fictional creature)들에 기초하는 PCD 특성들에 부가하여, PCD(100)는 인간(human being)을 본떠 모델링된 의인화 인터페이스를 제공하도록 구성될 수 있다. 이러한 인간 또는 "페르소나"는 사전-구성되거나, 사용자 정의가능하거나 또는 이 둘의 임의의 조합일 수 있다. 이는, PCD(100)가 유명인사, 매체의 유명인 또는 캐릭터(예컨대, 래리 버드(Larry Bird), 존 스튜어트(Jon Stewart), 다운튼 애비(Dowton Abby)로부터의 캐릭터 등)의 매너리즘(mannerism)들 및 특성들을 취할 수 있는 경우, 인격화(impersonation)들을 포함할 수 있다. PCD(100)의 페르소나 또는 "디지털 소울"은, PCD(100) 상에 상주하는 것에 부가하여 PCD(100) 외부 (예컨대, 클라우드에) 저장될 수 있고, 그러므로 다른 PCD들(100) 상에 다운로드 및 설치될 수 있다. 이러한 다른 PCD들은 그래픽적일 수 있거나(예컨대, 그것의 화상(likeness)이 사용자 모바일 디바이스 상에 나타남), 다른 물리적 PCD(100)(예컨대, 새로운 모델)가 될 수 있다.[00314] As noted, in addition to the PCD features based on animals or fictional creatures, the PCD 100 is configured to provide a modeled personification interface that is modeled after human being . Such human or " persona " may be pre-configured, user-definable, or any combination of the two. This is because the PCD 100 can be used for a variety of purposes such as celebrities, media celebrities or characters (e.g., Larry Bird, Jon Stewart, characters from Dowton Abby, etc.) And may include impersonations if they can take characteristics. The personas or " digital souls " of the PCD 100 may be stored outside the PCD 100 (e.g., in the cloud) in addition to resident on the PCD 100, And can be installed. These other PCDs may be graphical or other physical PCDs 100 (e.g., new models) (e.g., their likeness appears on the user mobile device).

[00315] PCD(100)의 페르소나는 또한, 합성적 또는 기술적 성질일 수 있다. 결과적으로, PCD(100)는 의인화된 기술로서 기능하며, 디바이스 PCD(100)는, 사람, 동물, 알려진 캐릭터 등과 같은 이미 존재하는 다른 것을 모방하려고 시도하기 보다는, 자기 자신의 고유한 페르소나를 갖는 것으로 보여진다. 일부 실시예들에서, 시간에 걸쳐 그 사용자에게 더 양호하게 맞춰지도록 적응 및 수정될 수 있는, PCD(100)에 대한 사유 페르소나(proprietary persona)들이 생성될 수 있다. 예컨대, 사용자의 PCD(100)의 프로소디는, 친밀감 및 애정을 쌓는 그러한 기법들로서, PCD(100)의 사용자 자신의 프로소디에 더 가깝게 반영하도록 시간에 걸쳐 적응될 수 있다. PCD(100)는 또한, PCD(100)의 사용자가 구매한 임의의 코스메틱 또는 가상 아티팩트들에 부가하여, PCD(100)를 개인화(personalize) 또는 커스터마이징하기 위해, PCD(100)의 사용자의 기호(like)들 및 선호도(preference)들에 적응되도록, PCD(100)의 그래픽적 모습을 변경할 수 있다.[00315] The persona of the PCD 100 may also be of synthetic or technical nature. As a result, the PCD 100 functions as an anthropomorphic technique, and the device PCD 100 has its own personas rather than attempting to imitate other existing ones such as people, animals, known characters, . In some embodiments, proprietary persons for the PCD 100 may be created that can be adapted and modified to better fit the user over time. For example, the prosody of the user's PCD 100 may be adapted over time to reflect closer to the user's own prosody of the PCD 100, such as those techniques that build intimacy and affection. The PCD 100 may also be configured to provide a user's preference for personalization or customization of the PCD 100 in addition to any cosmetic or virtual artifacts purchased by the user of the PCD 100. [ like aspects and preferences of the PCD 100. In this way,

[00316] 예시적인 실시예에서, PCD(100)의 디지털 소울은, 사용자와 PCD(100) 사이의 상호작용들의 성질에 영향을 미치는 속성들뿐만 아니라, PCD(100)의 인터페이스의 속성들 및 특성들을 정의한다. 이러한 디지털 소울이, 사용자와의 상호작용에 관여하기 위해 PCD(100)에 의해 활용되는 상호작용 데이터 및 정보로부터 분기(bifurcate)되지만, 디지털 소울은 특정 사용자들과의 상호작용에 응답하여 시간에 걸쳐 변경될 수 있다. 예컨대, 사용자들 각각을 그들 자신의 PCD(100)와 분리시키는 것은, 예컨대, 알베르트 아인슈타인(Albert Einstein)과 같은 잘 알려진 역사적 인물에 기반하여 동일한 디지털 소울을 설치할 수 있다. 2개의 분리된 PCD들(100) 상에서의 설치 순간으로부터, 각각의 PCD(100)는 PCD(100)에 의해 발생되고 PCD(100)에 액세스가능한 사용자 특정 상호작용 데이터에 따라 상이한 방식으로 상호작용할 것이다. 디지털 소울은, 상이한 물리적 형태들(예컨대, 로봇 형태들) 또는 디지털 형태들(예컨대, 그래픽적 아바타들)로부터의 다수의 형태들로 구현될 수 있다.In an exemplary embodiment, the digital soul of the PCD 100 includes attributes that affect the nature of the interactions between the user and the PCD 100, as well as attributes and characteristics of the interface of the PCD 100 . While this digital soul is bifurcated from interaction data and information utilized by the PCD 100 to engage with the user, the digital soul may be spooled over time in response to interaction with particular users can be changed. For example, separating each of the users from their own PCD 100 may establish the same digital soul based on well-known historical figures, such as Albert Einstein. From the instant of installation on the two separate PCDs 100, each PCD 100 will interact in a different manner, according to user specific interaction data generated by the PCD 100 and accessible to the PCD 100 . The digital soul may be implemented in a number of forms from different physical forms (e.g., robot shapes) or digital forms (e.g., graphical avatars).

[00317] 예시적이며 비제한적인 실시예에 따르면, PCD(100)는 수집된 데이터에 기반하여 상호작용들의 품질을 개선하기 위한 기계 학습 설비를 제공한다. 기계 학습을 수행하기 위해 활용되는 알고리즘들은, PCD(100) 상에, PCD(100)와 통신하는 컴퓨팅 플랫폼 상에서 발생될 수 있다. 예시적인 실시예에서, PCD(100)는, 코칭 및 트레이닝을 제공하도록 사용자와 상호작용하기 위해, 연관성 컨디셔닝을 이용할 수 있다. 연관성, 또는 "자발적(operant)" 컨디셔닝은 거동을 증가시키기 위해 강화(reinforcement)를 사용하는 것에 초점을 맞춘다. 이러한 프로세스를 통해, 거동과 그러한 거동에 대한 결과들 사이에 연관성이 형성된다. 예컨대, PCD(100)는, 움직이지 않고 가만히 있는 것과 대조적으로, 사용자가 일찍 깨어나서 침대에서 뛰쳐나갈 때, 행복 노이즈(happy noise)를 낼 수 있다. 시간에 걸쳐, PCD(100)와 사용자 사이의 이러한 상호작용은, 사용자가 더 일찍 일어나는 것에 동기부여하게 작용하는데, 그 이유는 사용자가 이러한 액션과 PCD들(100)의 명백한 행복 상태를 연관시키기 때문이다. 다른 예에서, PCD(100)는, 사용자가 운동중임을 PCD(100)가 관찰한 경우, 격려하는 소리들 또는 단어들을 낼 수 있다. 이러한 경우, PCD(100)는 사용자에 의해 원해지는 액션들을 위해 지속되는 긍정적 강화인자를 제공하도록 기능한다.[0037] According to an exemplary, non-limiting embodiment, the PCD 100 provides a machine learning facility for improving the quality of interactions based on the collected data. The algorithms utilized to perform the machine learning may be generated on a computing platform that communicates with the PCD 100 on the PCD 100. In an exemplary embodiment, the PCD 100 may utilize associative conditioning to interact with the user to provide coaching and training. Association, or "operant" conditioning, focuses on using reinforcement to increase behavior. Through this process, a relationship is established between the behavior and the results for that behavior. For example, the PCD 100 can produce happy noise when the user wakes up early and rushes out of bed, as opposed to being motionless and still. Over time, this interaction between the PCD 100 and the user acts to motivate the user to occur earlier, since the user associates this action with the apparent state of happiness of the PCDs 100 to be. In another example, the PCD 100 may emit encouraging sounds or words if the PCD 100 observes that the user is exercising. In such a case, the PCD 100 functions to provide a positive reinforcement factor that persists for the actions desired by the user.

[00318] 다양한 예시적인 실시예들에 따르면, PCD(100)는, 이에 제한되는 것은 아니지만, 시간적 패턴 모델링 및 인식, 사용자 선호도 모델링, 특징 분류, 태스크/정책 모델링 및 강화 학습을 포함하는 기계 학습을 수행할 때, 당해 기술분야에 알려진 복수의 유형들의 분석 중 하나를 이용할 수 있다.[0038] According to various exemplary embodiments, the PCD 100 may include, but is not limited to, machine learning including temporal pattern modeling and recognition, user preference modeling, feature classification, task / policy modeling, When practiced, one of several types of analysis known in the art may be used.

[00319] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는, 사용자와의 상호작용에 가장 적합화된 상호작용 모드를 식별하기 위해 시각적, 오디오, 운동감각적, 또는 "VAK" 모델을 이용할 수 있다. PCD(100)는 사용자의 지배적인 학습 스타일을 결정하도록 동작할 수 있다. 예컨대, 사용자가 대부분 시각적인 방식으로 정보를 처리함을 PCD(100)가 결정하는 경우, PCD(100)는 정보를 사용자에게 전달하기 위해 PCD(100)의 일부를 형성하는, 이를테면, 그래픽 디스플레이(104) 상에서, 차트들 또는 일러스트레이션들을 이용할 수 있다. 마찬가지로, PCD(100)는, 청각적 환경들에서, 그들을 기민하게 유지하는 것을 돕기 위해, 질문들 및 다른 프롬프트들을 사용자에게 발행하도록 동작할 수 있다.[0039] According to exemplary, non-limiting embodiments, the PCD 100 may include a visual, audio, kinesthetic, or "VAK" model to identify the interaction mode best adapted for interaction with the user Can be used. The PCD 100 may operate to determine the dominant learning style of the user. For example, if the PCD 100 determines that the user is processing information in a mostly visual manner, the PCD 100 may be configured to form part of the PCD 100 to convey information to the user, 104, charts or illustrations may be used. Likewise, the PCD 100 can operate in auditory environments to issue questions and other prompts to the user to help keep them agile.

[00320] 마찬가지로, 사용자가 대부분 청각적 방식으로 정보를 처리함을 PCD(100)가 결정하는 경우, PCD(100)는, 무슨 일이 있을지의 간략한 설명으로 새로운 상호작용들을 시작할 수 있고, 무슨 일이 있었는지의 요약으로 마무리 지을 수 있다. 마지막으로, 사용자가 대부분 운동감각적 방식으로 정보를 처리함을 PCD(100)가 결정하는 경우, PCD(100)는 움직임 및 터치를 수반하는 운동감각적 및 촉각적 상호작용들을 통해 사용자와 상호작용하도록 동작할 수 있다. 예컨대, 아침에 사용자를 깨워서 활동적이게 하기 위해, PCD(100)는 활동에 관여할 수 있으며, PCD(100)는 사용자에게 포옹을 요청한다. 다른 실시예들에서, 사회적 상호작용의 엘리먼트를 강조 및 강화하기 위해, PCD(100)는 상호작용과 관련된 향을 방출할 수 있다.[00320] Similarly, when the PCD 100 determines that the user processes information in mostly audible ways, the PCD 100 may begin new interactions with a brief description of what will happen, This can be done by summarizing what happened. Finally, when the PCD 100 determines that the user processes information in a mostly kinesthetic manner, the PCD 100 may operate to interact with the user through kinesthetic and tactile interactions involving movement and touch can do. For example, in the morning, in order to wake up the user and become active, the PCD 100 may engage in activities, and the PCD 100 requests the user to embrace it. In other embodiments, to emphasize and enhance the elements of social interaction, the PCD 100 may emit an aroma associated with the interaction.

[00321] 하우스 주위에서 PCD(100)를 움직이게 하는 능력은 PCD(100)로서 중요한 양상이다. 동작시에, PCD(100)는 사람들로 하여금 스크린 정면에 멈춰 모여야(huddle)(현대의 비디오 회의) 하기보다는 "그들 삶의 흐름에서 머무르게" 하도록 허용하는, 통신하기 위한, 원격의 사람에게 물리적으로 체화되고(physically embodied) 그리고 물리적으로 사회적인 표현 방식을 제공하도록 동작한다. 그 결과, PCD(100)는 마치 사용자가 그들의 집에서 누군가를 방문하고 있었던 것처럼 일상적인 상호작용들에 대한 지원을 제공한다. 사용자는, 설겆이 등과 같은 다른 활성들을 하고 있었을 수 있고, PCD(100)가 룸 주위의 사용자를 추적할 수 있는 방법으로 인해 대화를 여전히 이어가고 있을 수 있다. 전술한 예시적인 실시예들에서, PCD(100)는 자체 센서를 갖도록 설계되어 룸 등을 가로지르는 이동(carry)을 출력한다. 중심 기술 양상들은 이하를 포함한다.[00321] The ability to move the PCD 100 around the house is an important aspect as the PCD 100. In operation, the PCD 100 is physically connected to a remote person for communication, allowing people to "stay in their lives" rather than huddle (modern video conferencing) in front of the screen Physically embodied and to provide a physically sociable representation. As a result, the PCD 100 provides support for routine interactions as if the user were visiting someone at their home. The user may have been performing other activities such as chatting, etc., and the conversation may still be taking place due to the way the PCD 100 can track the user around the room. In the exemplary embodiments described above, the PCD 100 is designed to have its own sensor and outputs a carry across the room or the like. The core technical aspects include the following.

[00322] 사용자는 PCD(100)의 카메라 뷰를 제어할 수 있고, 이는 또한 타겟 물체 상에 자신의 카메라를 유지시키기 위해 역운동학(inverse kinematics)을 추적하고 행함으로써 이를 자동화하도록 도울 수 있다.[00322] A user can control the camera view of the PCD 100, which can also help automate it by tracking and executing inverse kinematics to keep his camera on the target object.

[00323] PCD(100)는 아이-컨택(eye-contact)과 같은 중요한 비-언어 큐들을 보존하는 방식으로 스크린에 사용자 당신의 표현(비디오 스트림, 그래픽들 등)을 렌더링할 수 있다.The PCD 100 may render the user's representation (video stream, graphics, etc.) on the screen in a manner that preserves important non-language cues such as eye-contact.

[00324] PCD(100)는, 사람이 표현적 물리적 존재를 갖도록, 원격에 있는 사람의 머리 포즈, 바디 자세를 미러링할 수 있다. PCD(100)는 또한 라포(rapport)를 구축하기 위해 자세 미러링 및 동조(synchrony)와 같은 상황에 맞추도록 자신 소유의 표현 바디 움직임을 생성할 수 있다.[00324] The PCD 100 may mirror the head pose, body posture of a remote person so that the person has an expressive physical presence. The PCD 100 may also generate its own representation body motion to accommodate situations such as attitude mirroring and synchrony to build a rapport.

[00325] PCD(100)는 재미있는 애니메이션들 및 소리들을 추가로 트리거할 수 있다. 그래서, 사용자는 당신으로서 또는 재미난 캐릭터로서 정확하게 당신 자신을 전달하도록 시도할 수 있다. 이는 실제로 연관된 스토리 리딩을 위해 유용한데, 이 스토리 리딩에서 할머니가 그녀의 손녀딸과 원격으로 스토리를 읽으면서 스토리 세션 동안 서로 다른 캐릭터들을 취할 수 있다.[00325] The PCD 100 may additionally trigger interesting animations and sounds. So, the user can try to deliver your own as you or as a funny character exactly. This is really useful for associated story reading, where a grandmother can take different characters during a story session while reading stories with her granddaughter remotely.

[00326] PCD(100)는 (PCD(100)를 수동으로 제어해야만 하는데 있어서의 인지 부하(cognitive load)를 감소시키기 위해) 스피커(speaker)에게 자체 응시/당신의 카메라 뷰를 자동으로 시프트하라고 말하는 누군가를 추적할 수 있다.[00326] The PCD 100 may be configured to self-star to the speaker (to reduce the cognitive load in having to manually control the PCD 100) or to automatically shift the view of your camera I can track someone.

[00327] PCD(100)는 슬라이딩 자율성 인터페이스를 가져서, 이에 따라 원격의 사용자는 PCD(100)를 통해 더 많은 또는 더 적은 직접적 제어를 어써트할 수 있으며, 이는 보충하기 위해 자율성을 이용할 수 있다.[00327] The PCD 100 has a sliding autonomy interface so that a remote user can assert more or less direct control via the PCD 100, which can use autonomy to supplement it.

[00328] PCD(100)는, 사용자에게 (당신이 디바이스 정면에 머물러야하기 때문에 다른 디바이스들이 제공/가정하는 터널 비전보다 훨씬 더) 넓은 범위의 뷰를 제공할 수 있다. [00328] PCD 100 may provide a wide range of views to the user (much more than the tunnel vision that other devices provide / assume because you have to stay in front of the device).

[00329] 이러한 일들을 모두 함으로써 그리고 집 주위의 여러 장소들에 PCD(100)를 놓아둘 수 있음으로써, 원격의 사람은 이제 이들이 통신할 수 있을 뿐만 아니라 활성에 참여할 수 있다는 것을 느낀다. 취침시에 스토리를 공유할 수 있게 하기 위해, 플레이룸에 있어 손자들과 놀게 할 수 있게 하기 위해, 추수감사절 저녁을 원격으로 참여할 수 있게 하기 위해, 당신의 딸이 가족 레시피로 요리하는 것을 당신이 돕게 하기 위해 조리대에 참여할 수 있게 하기 위해서의 식이다. 이는, 당신이 실제로 어디서나 물리적 사회적 존재감을 갖는 것으로 느끼게 하도록, 핸즈 프리 동작을 지원한다.[00329] By doing all these things and placing the PCD 100 in various places around the house, the remote person now feels that they can participate in the activity as well as communicate. To help you share stories at bedtime, to allow your grandchildren to play in the playroom, and to allow you to remotely participate in Thanksgiving dinner, you can help your daughter cook with family recipe In order to be able to participate in the countertops to do so. It supports hands-free operation, so you can feel that you have physical social presence virtually anywhere.

[00330] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는 사용자가 생활하고 동작하는 통상적인 환경의 여러 가지 표면들에 대해 또는 이들에 관해 안정적인 또는 균형잡힌 방식으로 포지셔닝되도록 구성 또는 적응될 수 있다. 예컨대, PCD(100)의 일반적으로 평평한 표면들은, 평활한 표면들 상에서 PCD(100)의 슬라이딩을 방지하도록 동작하는 마찰 패드들로부터 적어도 부분적으로 제작될 수 있거나 또는 마찰 패드들을 적어도 부분적으로 포함할 수 있다. 다른 실시예들에서, PCD(100)는 평평하지 않은 표면들 상에 PCD(100)를 포지셔닝하기 위해 수동으로 또는 자동으로 전개될 수 있는 부분적으로 탈착가능한 또는 텔레스코핑 부속물들을 채용할 수 있다. 다른 실시예들에서, 디바이스는, 그 디바이스로 하여금 그 환경에서 이리저리 움직이게 하거나 또는 물체들을 조작하게 하는 하드웨어 액세서리들을 가질 수 있다. 이 디바이스들에는 외부 표면들 또는 물체들 상에 디스플레이하게 하기 위해 레이저 포인터 또는 프로젝터가 장착될 수 있다. 이러한 인스턴스들에서, PCD(100)는 미끄럼을 추가로 저감하기 위해 부속물들의 사지들(extremities)에 또는 그 근처에 마찰 패드들을 포함할 수 있다. 또 다른 실시예들에서, PCD(100)는 표면으로의 일시적인 부착을 위해 PCD(100)의 외부 표면 또는 표면들 상에 하나 또는 그 초과의 석션 컵(suction cup)들을 포함할 수 있다. 또 다른 실시예들에서, PCD(100)는 PCD(100)를 자리에 고정시키고 그리고/또는 PCD(100)를 걸게 하기 위해 후크들, 루프들 등을 포함할 수 있다.[0033] According to exemplary, non-limiting embodiments, the PCD 100 may be configured or arranged to be positioned in a stable or balanced manner with respect to or about various surfaces of a typical environment in which the user lives and / Can be adapted. For example, the generally flat surfaces of the PCD 100 may be at least partially fabricated from friction pads that operate to prevent sliding of the PCD 100 on smooth surfaces, or may be at least partially have. In other embodiments, the PCD 100 may employ partially removable or telescoping accessories that may be deployed manually or automatically to position the PCD 100 on non-planar surfaces. In other embodiments, the device may have hardware accessories that allow the device to move around or manipulate objects in the environment. These devices may be equipped with laser pointers or projectors for display on external surfaces or objects. In these instances, the PCD 100 may include friction pads at or near the extremities of the appendages to further reduce slippage. In still other embodiments, the PCD 100 may include one or more suction cups on the outer surface or surfaces of the PCD 100 for temporary attachment to the surface. In still other embodiments, the PCD 100 may include hooks, loops, and the like to secure the PCD 100 in place and / or to hook the PCD 100.

[00331] 다른 예시적인 실시예들에서, PCD(100)는 손으로 휴대가능하도록 적응된다. 구체적으로, PCD(100)는 10㎏미만의 중량이 되고 4,000㎤를 넘지 않는 체적을 점유하도록 구성된다. 추가로, PCD(100)는 PCD(100)를 운반하는데 사용하기 위한 부착된 또는 탈착가능한 스트랩 또는 핸들을 포함할 수 있다.[00331] In other exemplary embodiments, the PCD 100 is adapted to be portable by hand. Specifically, the PCD 100 is configured to occupy a volume of less than 10 kilograms and not exceeding 4,000 cm3. In addition, the PCD 100 may include an attached or removable strap or handle for use in carrying the PCD 100.

[00332] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는, 소셜 큐들의 존재 또는 출현을 컴퓨테이션을 통해 지속적으로 결정할 수 있게 되도록 또는 그에 대해 지속적으로 인지하게 되도록 그리고 사회적으로 존재하게 되도록 구성된다. 이와 같이, PCD(100)는 완전한 셧다운의 기간들을 회피하도록 동작할 수 있다. 일부 실시예들에서, PCD(100)는 전력을 보존하기 위해 저전력 상태, 또는 "슬립 상태"로 주기적으로 진입할 수 있다. 이러한 슬립 상태 동안, PCD(100)는, PCD(100)의 주변으로 진입하는 사람 또는 사용자, 사람 음성의 소리 등과 같은 소셜 큐들의 존재에 대해 PCD(100)에 경고하기 위한 것 같은 감소된 세트의 입력들을 처리하도록 동작할 수 있다. PCD(100)가 PCD(100)가 상호작용할 수 있는 사람 또는 사용자의 존재를 검출할 때, PCD(100)는 완전 경고 모드로 트랜지션할 수 있는데, 이 완전 경고 모드에서는 더 많은 또는 전체 PCD들(100) 센서 입력들이 상황적 데이터를 수신 및 처리하는데 활용된다.[00332] According to illustrative, non-limiting embodiments, the PCD 100 may be configured to allow the presence or appearance of social cues to be continuously determined through or through the computation, . As such, the PCD 100 may operate to avoid periods of complete shutdown. In some embodiments, the PCD 100 may periodically enter a low power state, or " sleep state " to conserve power. During such a sleep state, the PCD 100 may send a reduced set of messages to alert the PCD 100 to the presence of a person or user entering the perimeter of the PCD 100, Lt; / RTI &gt; When the PCD 100 detects the presence of a person or user with whom the PCD 100 can interact, the PCD 100 may transition to the full warning mode, where more or all of the PCDs 100) sensor inputs are used to receive and process situational data.

[00333] 소셜 큐들을 지속적으로 인지하도록 유지하는 능력은, PCD(100)가 언제나 파워 오프되거나 또는 수동으로 파워 온될 필요성을 감소시킨다. 턴 오프 그리고 턴 온 될 능력이 머신 디바이스들과 연관된 속성이기 때문에, 완전 파워 다운 모드에 있는 것을 회피하기 위한 PCD(100)의 능력은 PCD(100)가 살아있는 컴패니언이라는 인지를 증가시키도록 기능한다. 일부 실시예들에서, PCD(100)는 백색 노이즈 또는 코골음을 모방하는 소리들을 방출함으로써 슬립 상태에 있는 것으로 증강(augment)할 수 있다. 이러한 예시에서, 사용자가 PCD(100)를 발견했을 때, PCD(100)는, 사용자의 존재를 감지하고, 예컨대, 하품과 같이 깨어남을 나타내는 노이즈로 사용자를 그리팅함으로써 완전 경고 또는 파워 업 모드로 트랜지션하도록 진행한다. 이러한 액션들은 PCD(100)와 사용자 사이의 상호작용들을 시작하기 위한 큐들로서의 역할을 한다.[00333] The ability to keep the social cues constantly aware of reduces the need for the PCD 100 to be always powered off or manually powered on. Since the ability to turn off and turn on is an attribute associated with the machine devices, the ability of the PCD 100 to avoid being in a full power down mode serves to increase the perception that the PCD 100 is a live companion. In some embodiments, the PCD 100 may augment to be in a sleep state by emitting sounds that mimic white noise or snoring. In this example, when the user discovers the PCD 100, the PCD 100 senses the presence of the user and, for example, enters a full warning or power-up mode by grating the user with noise representing a wake- Proceed to transition. These actions serve as cues for initiating interactions between the PCD 100 and the user.

[00334] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는 사용자로부터의 언어적 및 비언어적 신호를 모니터링, 추적 및 특징화하도록 적응된다. 이러한 큐들의 예시들은, 제스처, 응시 방향, 단어 선택, 음성 프로소디, 바디 자세, 얼굴 표정, 감정의 큐들, 터치 등을 포함한다(그러나, 이에 한정되지 않는다). 모든 이러한 큐들은 센서 디바이스들(102, 104, 106, 108, 112)을 통해 PCD(100)에 의해 캡쳐될 수 있다. PCD(100)는 캡쳐된 큐들을 효율적으로 모방하거나 미러링하기 위해 자신의 거동을 적응시키고 조정하도록 더 구성될 수 있다. 이렇게 함으로써, PCD(100)는 사용자의 특징들 및 정신적 상태들을 반영하는 것처럼 보임으로써 PCD(100)와 사용자 사이의 라포를 증가시킨다. 이러한 미러링은, PCD(100)에 의한 상기 특성들의 장기간 프로젝션 동안 PCD(100)의 개성 또는 디지털적 소울에 통합될 수 있거나, 또는 일시적일 수 있고 그리고 예컨대, 특정 사회적 상호작용을 포괄하는 시간 기간에 걸쳐 연장할 수 있다.[00334] According to illustrative, non-limiting embodiments, the PCD 100 is adapted to monitor, track, and characterize verbal and non-verbal signals from a user. Examples of such cues include (but are not limited to) gestures, gazing directions, word selection, voice prosody, body posture, facial expressions, emotion cues, touch, All these queues may be captured by the PCD 100 via the sensor devices 102, 104, 106, 108, 112. The PCD 100 may be further configured to adapt and adjust its behavior to efficiently mimic or mirror the captured cues. In doing so, the PCD 100 increases the rapport between the PCD 100 and the user by appearing to reflect the user &apos; s characteristics and mental states. Such mirroring may be incorporated into the personality or digital soul of the PCD 100 during a prolonged projection of the characteristics by the PCD 100, or may be temporal and may include, for example, during a time period encompassing a particular social interaction .

[00335] 예컨대, 사용자가 특정 관용구(phrase)를 주기적으로 이용한다고 PCD(100)가 검출하면, PCD(100)는 미래에 사용자와 상호작용할 때 PCD(100)에 의한 지속적인 이용을 위해 상호작용 데이터의 코퍼스에 그 관용구를 부가할 수 있다. 유사하게, PCD(100)는 실시간으로 또는 거의 실시간으로 순간적인 언어적 및 비언어적 제스처들을 모방할 수 있다. 예컨대, PCD(100)가 검출하는 것이 흥분을 나타내는 증가된 단어 속도(word rate)와 결합된 사용자의 목소리의 증가된 주파수인 경우, PCD(100)는 증가된 말 속도를 통해 정상 주파수보다 더 높게 사용자와 언어적으로 상호작용하기 시작할 수 있다.[00335] For example, if the PCD 100 detects that a user periodically uses a particular phrase, the PCD 100 may use interactive data (eg, The idiom may be added to the corpus of the sentence. Similarly, the PCD 100 may imitate instantaneous linguistic and non-linguistic gestures in real time or near real time. For example, if the PCD 100 detects an increased frequency of the user's voice combined with an increased word rate indicating excitement, then the PCD 100 will be able to increase You can start interacting with the user verbally.

[00336] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는 바디 폼 팩터, 물리적 움직임들, 그래픽들 및 소리를 포함하는(그러나, 이에 한정되지 않는) PCD(100)의 일부를 형성하는 다양한 물리적 징후들을 통해 별개의 페르소나(distinct persona) 또는 디지털 소울을 투영할 수 있다. 일 실시예에서, PCD(100)는 표현적 메카닉들을 채용할 수 있다. 예컨대, PCD(100)는 오디오 신호의 출력을 통해 말할 때 활성화될 수 있는 이동가능 턱 부속물(movable jaw appendage)을 포함할 수 있다. 이러한 부속물은 적절할 때 웃음 또는 찡그림을 모방하기에 충분한 다수의 자유도로 그랜트(grant)될 수 있다. 유사하게, PCD(100)는 시각적 노출의 정도를 변화시킬 수 있는 하나 또는 그 초과의 "눈과 비슷한" 액세서리들로 구성될 수 있다. 그 결과, PCD(100)는 경악함, 놀람, 흥미로움 등에 응답하여 "눈이 휘둥그레진(wide eyed)" 표현을 디스플레이할 수 있다.[00336] According to exemplary, non-limiting embodiments, the PCD 100 may include a portion of the PCD 100 that includes (but is not limited to) a body form factor, physical movements, graphics, A distinct persona or digital soul can be projected through the various physical signs that form. In one embodiment, the PCD 100 may employ expressive mechanics. For example, the PCD 100 may include a movable jaw appendage that may be activated when talking through the output of an audio signal. Such accessories may be granted a number of degrees of freedom sufficient to mimic laughter or distortion when appropriate. Similarly, the PCD 100 may be comprised of one or more " eye-like " accessories that can change the degree of visual exposure. As a result, the PCD 100 can display a " wide eyed " expression in response to an alarm, surprise, or interest.

[00337] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는, 예컨대, 스크린 모드와 전체 모드 사이에서의 트랜지션을 위해 공간 내 자체 자세 또는 포지션을 검출할 수 있다. 예컨대, PCD(100)가 그래픽 정보를 디스플레이하기 위한 스크린(104)을 포함하면, PCD(100)는, 그가 처한 어떤 상황으로부터, 사용자가 사용자의 얼굴에까지 스크린을 들고 있을 때 스크린에 그리고 사용자가 디스플레이를 보는 포지션으로 정보를 출력하는 모드로 트랜지션할 수 있다.[00337] According to illustrative, non-limiting embodiments, the PCD 100 may detect its own attitude or position in space, for example, for transitions between a screen mode and an overall mode. For example, if the PCD 100 includes a screen 104 for displaying graphical information, the PCD 100 can determine, from any situation it is in, on the screen when the user is holding the screen to the user's face, It is possible to make a transition to a mode of outputting information to a position at which it is viewed.

[00338] 다른 실시예에 따르면, PCD(100)의 일부를 형성하는 하나 또는 그 초과의 압력 센서들은, 사용자가 사회적인 방식으로 PCD(100)를 터치하고 있을 때를 검출할 수 있다. 예컨대, PCD(100)는, 1개 초과의 압력 센서들은 사용자가 PCD(100)를 스트로킹(stroking)하거나, 페팅(petting)하거나, 또는 패팅(patting)하고 있는 동안의 압력을 경험하는 패턴으로부터 결정할 수 있다. 사회적인 터치의 상이한 검출 모드들은, 사용자와의 사회적 상호작용을 격려하거나 또는 나타내는 상호작용식 거동들을 표현하기 위해 PCD(100)에 대한 트리거들로서의 역할을 할 수 있다.[00338] According to another embodiment, one or more pressure sensors forming part of the PCD 100 may detect when the user is touching the PCD 100 in a social manner. For example, the PCD 100 may be configured such that more than one pressure sensor can be used to generate pressure from the pattern experienced by the user while stroking, petting, or patting the PCD 100 You can decide. Different detection modes of social touch may serve as triggers for the PCD 100 to express interactive behaviors that encourage or indicate social interaction with the user.

[00339] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는 PCD(100)의 외관(the look) 및 느낌을 강화하기 위한 액세서리들로 고정될 수 있다. 이러한 액세서리들은, 스킨들, 코스튬들, 내부 라이트뿐만 아니라 외부 라이트, 마스크들 등을 포함한다(그러나, 이에 한정되지 않는다).[0039] According to exemplary, non-limiting embodiments, the PCD 100 may be fixed with accessories to enhance the look and feel of the PCD 100. These accessories include (but are not limited to) skins, costumes, interior lights as well as exterior lights, masks, and the like.

[00340] 앞서 설명된 바와 같이, PCD(100)의 페르소나 또는 디지털적 소울은 PCD(100)의 물리적 징후로부터 두 갈래로 나뉠 수 있다. PCD(100) 페르소나를 포함하는 속성들은, 서버 및 개인용 컴퓨팅 디바이스를 포함하는(그러나, 이에 한정되지 않는) 하나 또는 그 초과의 다른 컴퓨팅 디바이스들에, 예컨대, 블루투스 또는 wifi를 통해 전달 및 통신될 수 있는 디지털 데이터로서 저장될 수 있다. 이러한 문맥에서, 개인용 컴퓨팅 디바이스는 일련의 프로그래머블 단계들을 실행하기 위해 프로세서 및 저장 메모리를 활용하는 임의의 디바이스일 수 있다. 일부 실시예들에서, PCD(100)의 디지털 소울은 워치 또는 모바일 폰과 같은 소비자 액세서리로 전달될 수 있다. 이러한 경우에서, PCD(100)의 페르소나는 다른 디바이스에 효과적으로 그리고 일시적으로 전달될 수 있다. 일부 실시예들에서, 전달되는 동안, PCD(100)의 전달된 인스턴스는, 사용자의 환경을 감지하고, 사회적 상호작용에 관여하고, 그리고 상호작용 데이터를 리트리브하고 출력하는 것을 계속할 수 있다. 이러한 상호작용 데이터는, 나중 시간에 PCD(100)에 전달될 수 있거나 또는 PCD(100)에 의한 나중에 리트리벌을 위해 서버에 업로드될 수 있다.[00340] As described above, the persona or digital soul of the PCD 100 may be split into two bifurcations from the physical manifestations of the PCD 100. Attributes, including PCD 100 personas, can be communicated and communicated to one or more other computing devices including, but not limited to, servers and personal computing devices, e.g., via Bluetooth or wifi. And stored as digital data. In this context, the personal computing device may be any device that utilizes a processor and storage memory to execute a series of programmable steps. In some embodiments, the digital soul of the PCD 100 may be delivered to a consumer accessory, such as a watch or mobile phone. In this case, the persona of the PCD 100 can be delivered effectively and temporally to other devices. In some embodiments, during delivery, the delivered instance of the PCD 100 may continue to sense the user's environment, engage in social interaction, and retrieve and output the interaction data. Such interaction data may be communicated to the PCD 100 at a later time or may be uploaded to the server for retry later by the PCD 100. [

[00341] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는, 소셜 큐들에 반응하여 조정되는 시각적 패턴들을 보여줄 수 있다. 예컨대, 디스플레이(104)는, 흥분된 경우 적색 광을 그리고 차분한 경우 청색 광을 방출할 수 있다. 마찬가지로, 디스플레이(104)는, 사용자가 태스크를 성공적으로 완료하는 때와 같은 경우, 환희를 전달하기 위해 애니메이팅된 떨어지는 색종이를 디스플레이할 수 있다. 일부 실시예들에서, 디스플레이를 위한 텍스쳐들 및 애니메이션들은, PCD(100)와 통신하는 외부 디바이스 또는 서버 내로 또는 직접 PCD(100) 내로 프로그래밍 가능하거나, 또는 사용자 선택 가능할 수 있다. 또 다른 실시예들에서, PCD(100)는, 시뮬레이팅된 감정들을 표현하기 위해, 일련의 비프음들 및 휘슬들을 방출할 수 있다. 일부 실시예들에서, 비프음들 및 휘슬들은, 사용자의 스피치 및 다른 구두 발언들로부터 유도된 패턴들에 따라 패터닝될 수 있다. 몇몇 예들에서, 비프음들, 휘슬들, 및 다른 청각적 출력들은 PCD(100)에 대해 고유한 청각적 서명(signature)으로서의 역할을 할 수 있다. 일부 실시예들에서, 관련성의 정도를 나타내기 위해, 시뮬레이팅된 패밀리를 형성하는 "관련된" PCD들(100)의 그룹과 같은 복수의 PCD들(100)에 대해, 동일한 청각적 서명의 변형들이 채용될 수 있다.[00341] According to illustrative, non-limiting embodiments, PCD 100 may show visual patterns that are adjusted in response to social cues. For example, the display 104 may emit red light when excited and blue light when calm. Likewise, display 104 may display falling colored confetti animated to deliver joy when, for example, the user completes a task successfully. In some embodiments, the textures and animations for display may be programmable, or user selectable, into an external device or server that communicates with the PCD 100, or directly into the PCD 100. In yet other embodiments, the PCD 100 may emit a series of beeps and whistles to represent the simulated emotions. In some embodiments, beeps and whistles may be patterned according to patterns derived from the user's speech and other verbal utterances. In some instances, beeps, whistles, and other auditory outputs may serve as a unique auditory signature for the PCD 100. In some embodiments, for a plurality of PCDs 100, such as a group of " related &quot; PCDs 100 that form a simulated family, variants of the same auditory signature Can be employed.

[00342] 일부 실시예들에서, PCD(100)는 감정을 전달하기 위한 표현의 모드들 사이의 애니모픽(animorphic) 트랜지셔닝에 관여할 수 있다. 예컨대, PCD(100)는, 인간의 감정을 디스플레이하기 위한 방법으로서, 디스플레이(104)가, 랜덤한 또는 의사 랜덤(pseudorandom)한 패턴 또는 다른 그래픽으로부터 웃거나 찡그린 입의 디스플레이로 트랜지션하도록 동작할 수 있다.[00342] In some embodiments, the PCD 100 may participate in animorphic transitions between modes of presentation to convey emotions. For example, the PCD 100 may be a method for displaying human emotions, wherein the display 104 may be operable to transition from a random or pseudorandom pattern or other graphic to a grinning or frowning mouth display have.

[00343] 다른 예시적인 실시예들에서, PCD(100)는 감정 상태를 표현하기 위해 향들 또는 페로몬들을 방출할 수 있다.[00343] In other exemplary embodiments, the PCD 100 may emit incense or pheromones to express an emotional state.

[00344] 또 다른 예시적인 실시예에 따르면, 사용자와의 상호 작용들의 기초를 위해서일 수 있는, PCD(100)에 액세스 가능한 데이터의 형태의 백 스토리로 제공될 수 있다. 그러한 데이터는, PCD들(100) 이전 히스토리의 일부를 형성하는, 실제와 가상 양자 모두의 과거 이벤트들을 참조하는 하나 또는 그 초과의 스토리들을 포함할 수 있다. 예컨대, PCD(100)의 인생에서의 과거 사건들에 대해 말해주는 스피치 생성을 통해 사용자에게 전달될 수 있는 스토리들이, PCD(100)에 제공될 수 있다. 그러한 스토리들은, 상호작용 데이터에 의해 트리거링될 수 있는, 사용자에 의한 요청에 따라 출력될 수 있다. 예컨대, PCD(100)는 사용자 데이터로부터, 오늘이 사용자의 생일이라는 것을 인식할 수 있다. 반응하여, PCD(100)는 PCD(100)의 과거 생일에 관련된 사용자와 스토리를 공유하도록 트리거링될 수 있다. 백 스토리를 포함하는 데이터는 중앙에 저장될 수 있고, 그리고 사용자에 의한 또는 자율적으로 PCD(100)에 의한 요청에 따라 PCD(100)에 다운로드될 수 있다.[00344] According to another exemplary embodiment, it may be provided as a back story in the form of data accessible to the PCD 100, which may be for the basis of interactions with the user. Such data may include one or more stories that refer to past and past events of both the real and the virtual, forming part of the history prior to the PCDs 100. Stories that may be communicated to the user through speech generation, for example, telling past events in the life of the PCD 100, may be provided to the PCD 100. Such stories may be output upon request by the user, which may be triggered by the interaction data. For example, the PCD 100 may recognize from the user data that today is the user's birthday. In response, the PCD 100 may be triggered to share a story with a user related to the PCD 100's past birthday. The data including the back story can be stored centrally and downloaded to the PCD 100 upon request by the PCD 100 either by the user or autonomously.

[00345] 백 스토리들은 PCD(100)의 제조자에 의해 생성되고 저장될 수 있으며, 요청에 따라 사용자에게 사용가능할 수 있다. 도 11을 참조하면, 예시적이며 비제한적인 실시예의 흐름도(1100)가 예시된다. 예에서, 단계(1102)에서, 제조자는 입력으로서, 스포츠, 특히 야구 및 보스톤 레드 삭스에 관심이 있는 사용자와 연관된 개에 대해 모델링된 PCD(100)를 위한 백스토리에 대한 요청을 수신할 수 있다. 반응하여, 제조자 또는 제3자 백 스토리 제공자는, 단계(1104)에서, 베이스 백 스토리를 생성할 수 있다. 예에서, 스토리는, 레드 삭스와 관련된 세부 사항들이 부가된, 야구를 다루는 더 구체적인 스토리들에 의해 증대된, 상대적으로 일반적인 개 스토리들을 포함할 수 있다.Back stories can be generated and stored by the manufacturer of the PCD 100 and available to the user upon request. 11, a flowchart 1100 of an exemplary, non-limiting embodiment is illustrated. In an example, at step 1102, the manufacturer may receive as input, a request for a back story for a PCD 100 modeled for a dog associated with a sport, particularly a user interested in baseball and the Boston Red Sox . In response, the manufacturer or third-party back story provider may, in step 1104, generate a base back story. In the example, the story may include relatively general dog stories, augmented by more specific stories dealing with baseball, with details related to the Red Sox.

[00346] 일부 실시예들에서, 단계(1106)에서, 백 스토리는, PCD(100)에 의한 추가적인 실시간 커스터마이징화를 허용할 변수들에 의해 인코딩될 수 있다. 예컨대, 백 스토리는: "Me and my brothers and sisters <for i==1 to max_siblings, insert sibling_name[i]> were raised in ..."와 같은 의사 코드로 인코딩될 수 있다. 이러한 방식에서, PCD(100)에 의해 판독되는 경우, 스토리는, PCD(100)와 연관되도록 구성된 다른 PCD들(100)의 이름을 포함하는 것으로 판독될 수 있다.[00346] In some embodiments, at step 1106, the back story can be encoded by variables that will allow additional real-time customization by the PCD 100. For example, the back story can be encoded in pseudo-code such as " Me and my brothers and sisters <for i == 1 to max_siblings, insert sibling_name [i]> were raised in ... ". In this manner, when read by the PCD 100, the story can be read as including the names of other PCDs 100 that are configured to be associated with the PCD 100.

[00347] 예시적이며 비제한적인 실시예에 따르면, 사용자가 동료 디바이스를 돌보도록 권장되는, PCD(100)의 공동 양육 기능을 관리하기 위한 실행 가능한 모듈 또는 프로그램이 PCD(100)에 제공될 수 있다. 예컨대, 공동 양육 모듈은, 유아들과 연관된 소리들, 그래픽들, 향기들 등을 수반하는 거동을 통해 사용자와의 상호 작용을 시작함으로써 아기를 돌보기 위해, 사용자의 타고난 임펄스에 따라 플레이하도록 작동할 수 있다. PCD(100)와 사용자 사이의 일치는, 공동 육아 모듈이, 부정적인 감정을 완화시키도록 사용자에게 액션들을 권유하는 동안 슬픔, 외로움, 및/또는 우울과 같은 부정적인 감정을 표현하도록 작동하는 경우, 추가적으로 권장될 수 있다. 이러한 방식으로, 사용자는 PCD(100)를 응원하기 위해 PCD(100)와 상호작용하도록 권장된다.[00347] According to an exemplary, non-limiting embodiment, an executable module or program for managing the co-parenting function of the PCD 100, which is encouraged by the user to care for a peer device, may be provided to the PCD 100 have. For example, the co-parenting module may be operable to play according to the user's natural impulses to care for the baby by initiating interaction with the user through behaviors involving sounds, graphics, scents, etc. associated with the infant have. The coincidence between the PCD 100 and the user is further recommended when the co-parenting module operates to express negative feelings such as sadness, loneliness, and / or depression while soliciting actions to the user to mitigate negative emotions . In this manner, the user is encouraged to interact with the PCD 100 to support the PCD 100.

[00348] 예시적이며 비제한적인 실시예에 따르면, PCD(100)는 사용자 특성들, PCD(100)와 PCD100)의 사용자의 상호작용들, 및 PCD(100)의 사용자의 환경을 나타내는 상호작용 데이터에 액세스하도록 구성된 모듈을 포함할 수 있다. 도 1200을 참조하면, 예시적이며 비제한적인 실시예의 흐름도가 예시된다. 단계(1202)에서, 상호작용 데이터가 액세스된다. 단계(1204)에서, 상호작용 데이터는 중앙집중화된 데이터 수집 설비에 저장될 수 있다. 일단 검색되고 저장되면, 단계(1206)에서, 상호작용 데이터는 사용자의 요구 상태를 예상하기 위해 활용될 수 있다. 일단 요구 상태가 식별되면, 단계(1208)에서, 액션을 수행하기 위한 스케줄에 의존하지 않고, 사용자의 요구들을 예방적으로 처리하기 위해 상호작용 데이터가 활용될 수 있다. 일부 실시예들에서, 사용자의 물리적 외모, 및 자세 등은 요구 상태를 식별하기 위한 기초를 형성할 수 있다. 몇몇 예에서, 요구 상태의 식별은, 상호작용 데이터의 일부를 포함하는 것과 같이, 스케줄 데이터에 의해 보완될 수 있다. 예컨대, 스케줄은, 항생제의 투여를 수행할 사용자의 요구를 충족하기에 시간이 지났음을 나타낼 수 있다. PCD(100)는, 안면 분석 및 음성 변조 분석으로부터 유도된 데이터로부터, 사용자의 요구 상태를, 부분적으로, 확인할 수 있다.[00348] According to an exemplary, non-limiting embodiment, the PCD 100 may include user characteristics, interactions of the user of the PCD 100 and the PCD 100, and interaction of the user of the PCD 100 And a module configured to access the data. Referring to FIG. 1200, a flow diagram of an exemplary, non-limiting embodiment is illustrated. In step 1202, the interaction data is accessed. In step 1204, the interaction data may be stored in a centralized data collection facility. Once retrieved and stored, in step 1206, the interaction data can be utilized to predict the user's desired state. Once the request state is identified, in step 1208, the interaction data may be utilized to proactively handle the user's requests, without relying on a schedule to perform the action. In some embodiments, the user &apos; s physical appearance, posture, etc., may form the basis for identifying the requested state. In some instances, identification of the request state may be supplemented by schedule data, such as including a portion of the interaction data. For example, the schedule may indicate that the time has elapsed to meet the needs of the user to perform administration of the antibiotic. The PCD 100 can identify, in part, the user's desired state from data derived from facial analysis and voice modulation analysis.

[00349] 예시적이며 비제한적인 실시예들에 따르면, PCD(100)는 한 사람으로부터 다른 사람으로 메시지를 중계하는 메신저로서 사용될 수 있다. 메시지들은, 전송자의 음성의 오디오 녹음들을 포함하지만 이에 제한되지는 않고, PCD(100)는 문자 메시지를 중계하며, 메시지와 노래들을 강화하기 위해 댄스들/애니메이션들/소리 클립들이 사용된다.[00349] According to illustrative, non-limiting embodiments, the PCD 100 may be used as a messenger relaying a message from one person to another. The messages include, but are not limited to, audio recordings of the sender's voice, the PCD 100 relays text messages, and dances / animations / sound clips are used to enhance messages and songs.

[00350] 메시지들은 다양한 방식들로 생성될 수 있다. 일 실시예에서, PCD(100)는 스마트 디바이스 상의 앱으로서 구현된다. 전송자는 앱을 열고, 메시지 및 연관된 소리들, 스케줄링, 등을 선택한다. 앱에서의 PCD(100)의 가상 인스턴스는 사용자에게 프로세스를 보여준다. 다른 실시예에서, PCD(100)와의 직접적인 상호작용을 통해, 전송자/사용자는, 어떤 미래의 시간에 다른 사람에게 무언가를 말하기 위해, 간단한 터치 인터페이스 또는 자연 언어 인터페이스를 통해서 PCD(100)에게 지시할 수 있다. 예컨대, 사용자는, "PCD, when my wife comes into the kitchen this morning, play her X song and tell her that I love her" 라고 말할 수 있다. 전송자는 또한, 메시지의 일부로서 사용하기 위해, 그/그녀의 목소리를 PCD(100)가 녹음하게 할 수 있다. 다른 실시예들에서, 전송자의 PCD(100)가 메시지를 전달하는 대신에, 메시지는 다른 위치의 다른 PCD(100)에 의해 전달될 수 있다. 또 다른 실시예에서, 사용자/전송자는, 예컨대, 메시지를 특정 PCD들(100) 해시태그에 트윗할 수 있고, PCD(100)는 그러한 메시지를 사용자/수신인에게 말할 수 있다. PCD(100)에 의해 행해질, 미리 준비된 애니메이션/소리 스크립트를 프롬프팅하는 이모티콘들이 또한, 메시지 내에 삽입될 수 있다. 몇몇 예시적인 이모티콘들이다:[00350] Messages can be generated in various ways. In one embodiment, the PCD 100 is implemented as an app on a smart device. The sender opens the app, selects messages and associated sounds, scheduling, and so on. The virtual instance of the PCD 100 in the app shows the process to the user. In another embodiment, through direct interaction with the PCD 100, the sender / user may instruct the PCD 100 via a simple touch interface or natural language interface to say something to another at some future time . For example, the user may say, " PCD, when my wife comes into the kitchen this morning, play her X song and tell her that I love her. &Quot; The sender may also have the PCD 100 record his / her voice for use as part of the message. In other embodiments, instead of the sender's PCD 100 delivering the message, the message may be delivered by another PCD 100 at another location. In another embodiment, the user / sender may, for example, Tweet a message to a particular PCDs 100 hashtag, and the PCD 100 may speak such message to the user / recipient. Emoticons that are to be made by the PCD 100, which prompts for a prepared animation / sound script, may also be inserted into the message. Here are some example emoticons:

Figure pct00001
Figure pct00001

[00351] 부가적으로, 메시지들은, 특정 날짜 및 시간 또는 특정 세트의 환경들(예컨대, "the first time you see person X on Tuesday" 또는 "when person Y wakes up on Wednesday, give them this message") 하에서, 나중에 전송되도록 스케줄링될 수 있다.[00351] Additionally, the messages may include a specific date and time or a specific set of circumstances (e.g., "the first time you see person X on Tuesday" or "when person Y wakes up on Wednesday, give them this message" May be scheduled to be transmitted later.

[00352] 다른 실시예들에서, PCD(100)는 PCD들을 가지고 있지 않은 사용자들을 위한 메시지들을 생성하도록 사용될 수 있다. 그러한 메시지들은 웹링크의 형태로 생성될 수 있고, 그리고 수신자가 PCD를 가졌다면 물리적 PCD(100)가 했었을 것과 동일한 메시지를 전달하기 위한 가상 PCD(100)를 포함할 수 있다.[00352] In other embodiments, the PCD 100 may be used to generate messages for users who do not have PCDs. Such messages may be generated in the form of a web link and may include a virtual PCD 100 for delivering the same message that the physical PCD 100 would have done if the recipient had a PCD.

[00353] 따라서 명백한 바와 같이, PCD(100)는 사용자의 가족들 및 친구들과 같은 사람들로부터 메시지들을 수신하도록 구성될 수 있고, 메시지들은 메시지들에서 특정된 감정들과 관련된 액션들을 트리거링한다. 예컨대, 사람은, 메시지의 전송자가 PCD(100)을 통해 전달하기를 원하는 사회적 액션 또는 감정을 표현하는 이모티콘이 내부에 내장된, 사용자외 연관된 PCD(100)에 메시지를 문자로 보낼 수 있다. 예컨대, 전송자가 PCD(100)에, "Missing you a lot OX"라고 판독되는 메시지를 전송하면, PCD(100)는, 메시지를 수신할 때, 스피치 합성기를 통해, "In coming message from Robert reads 'Missing you a lot' "를 출력하면서, 동시에 키스 소리를 방출하면서, 디스플레이 상에 오므린 입술들을 디스플레이하거나, 또는 유사한 액션을 할 수 있다. 이러한 방식으로, 메시지 전송자들은, PCD(100)가 사용자와 상호작용할 수 있는 표현 양식들을 사용하기 위해 그들의 메시지들에 주석을 달 수 있다.[00353] Thus, as is evident, the PCD 100 can be configured to receive messages from people such as the user's family and friends, and the messages trigger actions associated with the emotions specified in the messages. For example, a person may send a message as a character to a non-user associated PCD 100 with an emoticon expressing a social action or emotion that the sender of the message wants to convey via the PCD 100. For example, if a sender sends a message that reads " Missing you a lot OX " to the PCD 100, the PCD 100 sends a message &quot; In coming message from Robert reads &quot; Missing you a lot '"while simultaneously displaying the lips on the display, or similar actions, while emitting a kiss sound. In this manner, message senders can annotate their messages to use presentation forms in which the PCD 100 can interact with the user.

[00354] 도 13을 참조하면, 예시적이며 비제한적인 실시예의 흐름도 및 개개의 방법(1300)이 예시된다. 방법은 단계(1302)에서, PCD(persistent companion device)를 제공하는 단계를 포함한다. 방법은 단계(1304)에서, 제스처, 응시 방향, 단어 선정, 음성 프로소디, 바디 자세, 얼굴 표정, 감정적 큐들 및 터치로 이루어진 그룹으로부터 선택된, 사용자로부터의 언어적 및 비언어적 신호들 중 적어도 하나를 입력하는 단계를 더 포함한다. 방법은 단계(1306)에서, 언어적 및 비언어적 신호들 중 적어도 하나를 미러링하기 위해 PCD의 거동을 조정하는 단계를 더 포함한다.[00354] Referring to FIG. 13, a flowchart and an individual method 1300 of an exemplary, non-limiting embodiment are illustrated. The method includes, in step 1302, providing a persistent companion device (PCD). The method inputs at least one of the verbal and non-verbal signals from the user, selected from the group consisting of gesture, gazing direction, word selection, voice prosody, body posture, facial expression, emotional cues and touch . The method further comprises, in step 1306, adjusting the behavior of the PCD to mirror at least one of the linguistic and non-linguistic signals.

[00355] 개발 플랫폼, 라이브러리, 어셋들, PCD 등의 위의 모든 속성은 다른 언어들 및 문화들(로컬화)을 지원하도록 확장될 수 있다.[00355] All of the above properties, such as development platforms, libraries, assets, PCD, etc., can be extended to support other languages and cultures (localization).

[00356] 도 14를 참조하면, PCD(100)가 사용자와의 상호 작용 동안 아이와 같은 반복적, 지속적 또는 반지속적, 시각적 엘리먼트를 디스플레이하기 위해 사용자 인터페이스를 활용할 수 있게 하는 예의 예시적이며 비제한적인 실시예가 도시되어 있다. 예컨대, 아래에 도시된 바와 같이, 물음표를 디스플레이하기, 아이의 표면 상의 반사 또는 홍채를 나타내는 밝은 원을 포함하는 시각적 엘리먼트(1400)는, 아이가 중간 시각적 엘리먼트들(1400', 1400")를 통해 물음표 시각적 엘리먼트(1400''') 내로 모핑하거나 그러지 않으면 평활하게 트랜지션될 때, 그 포지션을 물음표의 최하부로 이동시킬 수 있다. 설명되고 예시된 바와 같이 모핑하기 위한 시각적 엘리먼트의 능력은 가독성을 높인다.[0035] Referring to FIG. 14, an exemplary, non-limiting implementation of an example that allows the PCD 100 to utilize a user interface to display repetitive, persistent or semi-persistent, visual elements such as a child during interaction with a user An example is shown. For example, as shown below, a visual element 1400, including a question mark, a light circle representing a reflection or iris on a child ' s surface, may be displayed by the child through intermediate visual elements 1400 &apos; The position can be moved to the bottom of the question mark when it is morph into the question mark visual element 1400 '' 'or smoothly transitioned to it. The ability of the visual element to morph, as described and illustrated, enhances readability.

[00357] 도 15를 참조하면, 아이가 아이에 대해 너무 시각적으로 복잡한 형상으로 모핑하려고 의도하는 인스턴스들에서, 시각적 엘리먼트(1500)는 더욱 시각적으로 복잡한 형상(1500')으로 트랜지션하기 위해 예시된 바와 같이 "깜빡"이게 하는 예의 예시적이며 비제한적인 실시예가 도시되어 있다. 예컨대, 예시된 바와 같이, 아이(1500)의 시각적 엘리먼트는 온도 또는 다른 날씨 관련된 가변적인 형상(1500')을 드러내기 위해 "깜박"인다. [00357] Referring to FIG. 15, in instances where the eye intends to morph into too visually complex shapes for a child, the visual elements 1500 may be displayed as illustrated to transition to a more visually complex shape 1500 ' Illustrative and non-limiting embodiment of an exemplary " blink " For example, as illustrated, the visual element of the eye 1500 &quot; blinks " to reveal a temperature or other weather related variable shape 1500 '.

[00358] 도 16을 참조하면, 입 심볼이 아이의 시각 엘리먼트의 표면 영역 밖으로 구멍내어 지거나 형성될 수 있게 하는 예의 예시적이며 비제한적인 실시예가 예시되어 있다. 다양한 실시예들에서, 시각적 엘리먼트의 컬러는 디스플레이된 표현을 강화하기 위해 변경될 수 있다.[00358] Referring to FIG. 16, there is illustrated an exemplary, non-limiting example of an ingress symbol being able to be punctured or formed outside the surface area of the eye's visual element. In various embodiments, the color of the visual element may be altered to enhance the displayed representation.

[00359] 다양한 예시적이며 비제한적인 실시예들 따라, PCD(100)는 스마트폰들 및 태블릿들과 같은 종래의 모바일 디바이스들 상에서 실행되는 애플리케이션들과 비교하여 "스킬들"을 가지며 이를 나타낼 수 있다. 마치 iOS 및 안드로이드와 같은 모바일 플랫폼들 상에서 실행되는 애플리케이션들처럼, PCD(100)는 매우 다양한 새로운 스킬들을 전개하기 위한 능력을 지원할 수 있다. PCD 스킬은, 실행 엔진에 대한 피드 정보는 물론, 다양한 JavaScript API들을 인보크할 수 있는 어셋들 및 구성 파일들과 함께 JavaScript 패키지를 포함할 수 있다. 결과적으로, 내부 및 외부 개발자 둘 모두가 PCD(100)에 대한 새로운 스킬들을 개발하는 데 지원될 수 있다.[00359] In accordance with various exemplary, non-limiting embodiments, the PCD 100 has "skills" in comparison to applications running on conventional mobile devices, such as smartphones and tablets, have. As with applications running on mobile platforms such as iOS and Android, PCD 100 can support the ability to deploy a wide variety of new skills. The PCD skill can include JavaScript packages with assets and configuration files that can invoke various JavaScript APIs as well as feed information to the execution engine. As a result, both internal and external developers can be supported to develop new skills for the PCD 100.

[00360] 기본 원칙으로서, 임의의 새로운 소셜 로봇 스킬은 새로운 스킬들을 개발하기 위한 소프트웨어 개발 키트(SDK)의 코어 컴포넌트를 포함하는 JavaScript API들의 세트와 관련된 JavaScript로 완전히 기록될 수 있다. 그러나 개발을 가능하게 하기 위해, 표현 툴 모음 및 거동 편집기와 같은 툴들의 세트가 개발자들이 실행 엔진에 피딩되는 구성 파일들을 생성하게 할 수 있어서, 이전에 개발된 스킬들의 사용은 물론 더 간단하고 신속한 스킬 개발을 가능하게 한다.[00360] As a basic principle, any new social robot skill may be written entirely in JavaScript associated with a set of JavaScript APIs, including core components of a software development kit (SDK) for developing new skills. However, to enable development, a set of tools, such as a set of expression tools and behavioral editors, can be used to allow developers to create configuration files that are fed into the execution engine, thus enabling the use of previously developed skills, Development.

[00361] 도 17을 참조하면, PCD(100)에 대한 런타임 스킬을 가능하게 하기 위한 플랫폼의 예시적이며 비제한적인 실시예가 예시된다. 예시된 바와 같이, 스테레오 RGB 카메라, 마이크로폰 어레이 및 터치 감지 센서들로부터의 이미저리를 포함하는(그러나 이에 제한되지 않음) 다양한 입력들(1700)이 수신된다. 입력들(1700)은 터치 스크린을 통해 들어올 수 있다. 입력들(1700)은 입력 데이터로부터 정보를 추출하고 입력 데이터를 카테고리화하기 위해 프로세싱이 수행되는 센서리 프로세싱 모듈(1702)로의 입력을 형성할 수 있다. 입력들은 디바이스들 또는 디바이스 외부의 소프트웨어 애플리케이션들, 이를테면, 웹 애플리케이션들, 모바일 애플리케이션들, IoT(Internet of Things) 디바이스들, 홈 자동화 디바이스들, 알람 시스템들 등으로부터 발생할 수 있다. 센서리 프로세싱 모듈에 사용될 수 있는 프로세싱의 형태들의 예들은 -이로 제한되는 것은 아니지만- ASR(automated speech recognition), 감정 검출, 안면 식별(ID), 사람 또는 물체 추적, 빔 형성 및 터치 식별을 포함한다. 센서리 프로세싱의 결과들은 실행 엔진(1704)에 입력으로서 포워딩될 수 있다. 실행 엔진(1704)은, 제한적이지 않게, 예컨대, 입력 문법, 거동 트리, JavaScript, 애니메이션들 및 스피치/사운드들 중 하나 또는 그 초과의 형태로 선택적으로 부가적 입력들(1706)을 수신하여 정의된 스킬을 적용하도록 동작할 수 있다. 실행 엔진(1704)은 유사하게 가족 멤버 모델(1708)로부터의 입력들을 유사하게 수신할 수 있다.[00361] Referring to FIG. 17, an exemplary, non-limiting embodiment of a platform for enabling runtime skills for PCD 100 is illustrated. As illustrated, various inputs 1700 are received including (but not limited to) imagers from stereo RGB cameras, microphone arrays, and touch sensing sensors. Inputs 1700 may be input via the touch screen. The inputs 1700 may form an input to the sensor processing module 1702 where processing is performed to extract information from the input data and to categorize the input data. The inputs may come from devices or software applications external to the device, such as web applications, mobile applications, Internet of Things (IoT) devices, home automation devices, alarm systems, and the like. Examples of types of processing that may be used in the sensor processing module include, but are not limited to, automated speech recognition (ASR), emotion detection, facial identification (ID), human or object tracking, . The results of sensor re-processing may be forwarded as input to execution engine 1704. Execution engine 1704 may optionally receive additional inputs 1706 in the form of one or more of, for example, input grammar, behavior tree, JavaScript, animations, and speech / Skill to apply the skill. Execution engine 1704 may similarly receive inputs from family member model 1708 similarly.

[00362] 실행 엔진(1704)은 로지컬 정의된 스킬의 양상들이 PCD(100)의 표현 엘리먼트들에 맵핑되는 표현 모듈(1710)로의 입력을 형성하는 데이터를 출력할 수 있으며, 표현 엘리먼트들은 -이에 제한되지 않지만- 애니메이션(예컨대, PCD의 다양한 부분들의 움직임), 그래픽들(이를테면, 터치스크린일 수 있는 스크린 상에 디스플레이되거나, 위에서 설명된 아이의 움직임), 조명 및 스피치 또는 다른 사운드들을 포함하며, 이들 각각은 표현 모듈(1710)에서 프로그래밍될 수 있고 본 개시내용의 다른 곳에서 설명된 바와 같이 PCD의 모드, 상태, 무드, 페르소나 등을 반영한다. 표현 모듈(1710)은 -이에 제한되지 않지만- 오디오 출력, 디스플레이, 조명 엘리먼트들, 및 움직임 인에이블링 모터들을 포함하는 스킬을 표현하기 위해 PCD(100)의 다양한 하드웨어 컴포넌트들(1712)에 데이터 및 명령들을 출력할 수 있다. 출력들은 디바이스 또는 PCD(100) 외부의 애플리케이션들, 이를테면, IoT 디바이스들, 웹 애플리케이션들, 모바일 애플리케이션들 등에 대한 제어 신호들 또는 데이터를 포함할 수 있다.[00362] The execution engine 1704 may output data that forms aspects of the logically defined skill that form the input to the presentation module 1710 that is mapped to the presentation elements of the PCD 100, But not limited to, animations (e.g., movement of various parts of the PCD), graphics (such as displayed on a screen, which may be a touch screen, or a child's movement as described above), illumination and speech or other sounds, Each of which can be programmed in the presentation module 1710 and reflects the mode, state, mood, persona, etc. of the PCD as described elsewhere in this disclosure. Representation module 1710 may be used to provide data and / or data to various hardware components 1712 of PCD 100 to represent skills including, but not limited to, audio output, display, lighting elements, and motion enabling motors. Commands can be output. The outputs may include control signals or data for the device or applications external to the PCD 100, such as IoT devices, web applications, mobile applications,

[00363] 도 18을 참조하면, SDK를 사용한 스킬의 개발을 인에이블링하는 플랫폼에 대한 흐름 및 다양한 아키텍처 컴포넌트들의 예시적이며 비제한적인 실시예가 예시된다. 예시된 바와 같이, 로직 레벨(1800)은 인지 레벨(1802)과 통신할 수 있다. 인지 레벨(1802)은 비전 기능 모듈(1804)을 통한 비전 기능 이벤트들, 표현 엔진(1806)을 통한 애니메이션 이벤트 및 스피치 인식기(1806)를 통한 스피치 인식 이벤트와 같은 다양한 이벤트들을 검출할 수 있다. 로직 레벨(1800)과 인지 레벨(1802) 간의 통신은 인식된 이벤트들은 표현된 스킬들로 변환하는 역할을 할 수 있다.[00363] Referring to FIG. 18, an exemplary, non-limiting embodiment of the flow and various architectural components for a platform that enables the development of skills using the SDK is illustrated. As illustrated, the logic level 1800 may communicate with the recognition level 1802. The recognition level 1802 may detect various events such as vision function events via the vision function module 1804, animation events via the presentation engine 1806, and speech recognition events via the speech recognizer 1806. The communication between the logic level 1800 and the recognition level 1802 may serve to convert the recognized events into the expressed skills.

[00364] 이를 염두에 두고, 특정 성능들은 JavaScript API들의 세트를 통해 제공될 수 있다. 첫째, JavaScript API들은 다양한 타입들의 센서리 입력을 위해 존재할 수 있다. JavaScript API들은 다양한 표현 출력을 위해 존재할 수 있다. 또한, JavaScript API들이 실행 엔진(1704)에 대해 존재할 수 있으며, 이는 결국 다른 기존 JavaScript API들을 호출할 수 있다. JavaScript API들은 가족 멤버 모델(1708)과 같은 다양한 모델들 내에 저장된 정보를 위해 존재할 수 있다. 실행 엔진(1704)은, 이를테면, 실행 엔진 (1704)에서 사용하기 위해 이들 API 중 임의의 API를 통해 정보를 추출함으로써 임의의 API들을 사용한다. 실시예들에서, 실행 엔진을 사용하지 않는 개발자들은, 가족 멤버 모델(1708)에 직접 액세스할 수 있다. 특히, PCD(100)는, 이를테면, PCD(100)가 하나 또는 그 초과의 사용자들에게, 그 환경에, 그리고 사용의 그 패턴들에 적응하고 이들에 대해 그 자체를 개인화할 수 있게 하기 위해, 이를테면, 정보, 거동 패턴, 선호도들, 사용 사례 패턴 등에 대한 머신 학습을 이용하여 학습할 수 있다. 그러한 데이터 및 그러한 학습의 결과들은 PCD(100)에 대한 가족 멤버 모델(1708)에서 구체화될 수 있다.[00364] With this in mind, certain capabilities may be provided through a set of JavaScript APIs. First, JavaScript APIs can exist for various types of sensor input. JavaScript APIs can exist for a variety of expression output. Also, JavaScript APIs may exist for execution engine 1704, which may eventually call other existing JavaScript APIs. The JavaScript APIs may exist for information stored in various models, such as the family member model 1708. [ Execution engine 1704 uses any APIs, such as by extracting information through any of these APIs for use in execution engine 1704. In embodiments, developers who do not use the execution engine may access the family member model 1708 directly. In particular, the PCD 100 may be configured to allow the PCD 100 to adapt to one or more of its users, its environment, and its patterns of use and to personalize itself for them, For example, you can learn by using machine learning on information, behavior patterns, preferences, use case patterns, and so on. Such data and the results of such learning may be embodied in the family member model 1708 for the PCD 100.

[00365] 센서리 입력 API들은 ASR API들, 보이스 입력 API들, (예컨대, 뮤직 인식, 특정 사운드 패턴들의 검출 등에 대해) 다른 사운드들을 프로세싱하기 위한 API들, 초음파 또는 소나를 핸들링하기 위한 API들, 전자기 에너지(가시광, 라디오 신호들, 마이크로웨이브, X선, 적외선 신호들 등)를 프로세싱하기 위한 API들, 이미지 프로세싱을 위한 API들, 화학 신호들(예컨대, 연기, 일산화탄소, 냄새 등의 검출)을 핸들링하기 위한 API들 등을 포함하는 광범위한 타입들을 포함할 수 있다. 센서리 입력 API들은 PCD(100)의 센서들로부터 직접 입력을 다루기 위해 또는 다른 센서리 입력 소스들, 이를테면, 센서 네트워크들, IOT 디바이스들의 센서들 등에 의해 수집되고 송신된 센서 데이터를 다루기 위해 사용될 수 있다.The sensor input APIs include ASR APIs, voice input APIs, APIs for processing other sounds (e.g., for music recognition, detection of specific sound patterns, etc.), APIs for handling ultrasonic or sonar, APIs for processing electromagnetic energy (visible light, radio signals, microwave, x-ray, infrared signals, etc.), APIs for image processing, detection of chemical signals (e.g., smoke, carbon monoxide, odor, etc.) APIs for handling, and the like. The sensor input APIs can be used to handle sensor data collected and transmitted by the sensors of the PCD 100 to handle the inputs directly or by other sensor input sources, such as sensor networks, sensors of IOT devices, have.

[00366] 다양한 센서리 입력들에 대해, 타임스탬프들은 다양한 상이한 센서리 입력 타입들을 합병하는 것을 가능하게 하도록 제공될 수 있다. 예컨대, 타임스탬프들에는, 인식된 스피치를 다른 센서리 입력과 합병할 수 있게 하는 스피치 인식기가 제공될 수 있다. ASR은 다양한 스피커들을 등록하는 데 사용될 수 있다. 전체적으로, 스피치 툴 모음은 PCD(100)의 스피치 인터페이스를 위해 제공될 수 있다.[00366] For various sensor inputs, the time stamps may be provided to enable the merging of a variety of different sensor input types. For example, the time stamps may be provided with a speech recognizer that allows merging the recognized speech with other sensor input. ASR can be used to register various speakers. In general, a speech tool suite may be provided for the speech interface of the PCD 100.

[00367] 또한, 다양한 얼굴 추적 및 사람 추적 API들, 터치 API들, 감정 인식 API들, 표현 출력 API들, 움직임 API들, 스크린 및 아이 그래픽 API들, (예컨대, LED 라이트들을 위한) 조명 API들, TTS(sound and text to speech) API들 및 다양한 다른 것들이 제공될 수 있다. 사운드 및 TTS API들은 PCD(100)가 오디오 파일들을 플레이하거나, 텍스트의 스트링으로부터 단어들을 말하거나 하는 것 등을 가능하게 할 수 있다. 이것은 스트링 변수의 콘텐츠 또는 상수, 사일런스의 임의의 양, 또는 이들의 임의의 결합일 수 있다. 예컨대, 개발자는, 비핑 사운드, NAME 변수를 파퓰레이팅(populating)함으로써 표현된 특정 이름을 실제 이름으로 말하기, 3초의 사일런트 기간, 그 다음 그리팅하게 하는 Speak( "beep.wav", NAME, ": SIL 3sec", "I am so happy to see you")와 같은 명령을 특정할 수 있다. 텍스트는 SSML(Speech Synthesis Markup Language)로 표현될 수 있다. 간단한 텍스트는 종래의 구두점 규칙들에 따라 발화될 수 있다. 실시예들에서, 발화된 발화로 중첩되거나 삽입되는 표현 필터들 또는 사운드 효과들이 있을 수 있다.[00367] It should also be appreciated that a variety of face tracking and human tracking APIs, touch APIs, emotion recognition APIs, presentation output APIs, motion APIs, screen and eyeglass APIs, lighting APIs (e.g., for LED lights) , Sound and text to speech (TTS) APIs, and various others. Sound and TTS APIs may enable PCD 100 to play audio files, speak words from a string of text, and so on. This may be the content or constant of the string variable, any amount of silence, or any combination thereof. For example, the developer can use Speak ("beep.wav", NAME, ":"), which causes a specific name rendered by popping the Beeping sound, the NAME variable to be spoken with the real name, a 3 second silent period, SIL 3sec ", " I am so happy to see you &quot;). The text may be expressed in Speech Synthesis Markup Language (SSML). Simple text can be spoken according to conventional punctuation rules. In embodiments, there may be presentation filters or sound effects that are superimposed or embedded in a spoken utterance.

[00368] PCD SDK는 볼륨과 같은 오디오 출력의 속성을 세팅하는 것은 물론 오디오 파일들과 같은 콘텐츠 어셋들을 업로드하는 방법들을 포함할 수 있다. 소셜 로봇은 .wav, .mp3 등과 같은 다양한 상이한 포맷들을 플레이하도록 구성될 수 있다. 어셋들은 다양한 라이브러리들, 이를테면, 클라우드 또는 로컬 컴퓨팅 디바이스에 저장될 수 있다. PCD SDK는 PCD가, 뮤직, 비디오, 애니메이션 등과 같은 적합한 콘텐츠에 대해, 이를테면, 인터넷 또는 하나 또는 그 초과의 사이트들을 검색함으로써, 어셋들을 검색하는 것을 가능하게 할 수 있다.[00368] The PCD SDK may include methods for uploading content assets, such as audio files, as well as setting properties of audio output such as volume. The social robot may be configured to play a variety of different formats, such as .wav, .mp3, and the like. Assets may be stored in various libraries, such as the cloud or local computing device. The PCD SDK may enable the PCD to search for suitable content such as music, video, animation, etc., such as by searching the Internet or one or more sites.

[00369] 이를테면, 클라우드에 원격으로 저장된 데이터에 대해 프런트 엔드로서 동작하는 일 세트의 가족 멤버 및 유틸리티 API들이 제공될 수 있다. 이러한 API들은 또한, (로깅 등과 같이) 개발자가 사용하길 원하는 유틸리티들을 포함할 수 있다.[00369] For example, a set of family members and utility APIs may be provided that act as a front end for data stored remotely in the cloud. These APIs may also include utilities that the developer wants to use (such as logging).

[00370] 실행 엔진(1704)과의 인터페이스를 인에이블링하기 위해 실행 엔진 API들의 세트가 제공될 수 있다. 실행 엔진(1704)은 거동 편집기 및 표현 툴 모음(이들에 제한되지 않음)과 같은 몇몇 상이한 툴을 사용하여 생성된 구성 파일들에 작용할 수 있는 선택적인 JavaScript 컴포넌트를 포함할 수 있다. 실행 엔진은 또한, 가족 멤버 스토어로부터의 데이터를 멀티플렉싱할 수 있어서, 개발자들이 다시 보다 쉽게 스킬들을 기록하게 한다. 실시예들에서, 패밀리 멤버 스토어는 또한, PCD(100)의 외관을 사용자들이 커스터마이징하게 하는 장식 엘리먼트들은 물론, PCD(100)의 물리적 성능을 확장시키는 하드웨어 액세서리, 이를테면, 프로젝터, PCD(100)용 모바일 베이스, 조작자들, 스피커들 등을 확장하도록 하드웨어 액세서리들을 포함할 수 있다. [00370] A set of execution engine APIs may be provided to enable interfacing with execution engine 1704. Execution engine 1704 may include optional JavaScript components that can act on the generated configuration files using several different tools, such as (but not limited to) a behavior editor and a representation toolbar. The execution engine can also multiplex data from family member stores, allowing developers to more easily record skills. In some embodiments, the family member store also includes hardware elements that extend the physical capabilities of the PCD 100, such as projectors, PCDs 100, as well as decorative elements that allow users to customize the appearance of the PCD 100 Mobile bases, operators, speakers, and the like.

[00371] 어셋 생성부터 스킬 기록, 시뮬레이션, 테스팅 및 인증(이 인증은 본원에서 설명된 방법들 및 시스템들을 관리하는 호스트 기업에 의해 실시예들에 제공됨)으로 진행되는 새로운 PCD 스킬을 생성하기 위해 워크플로우를 따를 수 있다.[00371] From the creation of the asset, to create a new PCD skill that proceeds to skill recording, simulation, testing and authentication (which is provided in embodiments by the host company managing the methods and systems described herein) You can follow the flow.

[00372] 도 19를 참조하면, 어셋들의 생성을 위해 제공될 수 있는 사용자 인터페이스의 예시적이며 비제한적인 실시예가 예시되어 있다. 어셋 생성은 스킬의 어셋들을 생성하는 것을 수반할 수 있다. 그것은 반드시 제1 단계는 아니지만, 스킬 자체가 개발됨에 따라 어셋들이 정밀화되거나 확장되는 스킬을 생성하는 흐름에서 대개 진행되는 태스크이다. 생성될 수 있는 어셋들의 타입들은, 새로운 바디 및 아이 애니메이션들을 쉽게 생성하기 위해 이를테면, 표현 툴 모음 내의 특수 툴을 사용하는 애니메이션들을 포함한다. 개발자들은 또한 PCD 스킬 스토어의 "개발자들" 섹션에서 바디 및 아이 애니메이션들을 용도 변경할 수도 있다. 실시예들에서, 개발자들은 자신의 어셋들을, 이를테면 PCD(100)용 스킬 스토어 또는 개발자의 포탈과 같은 다른 환경에서 컨슈머들 또는 다른 개발자들과 공유할 수 있다. 어셋들은, 또한 사운드들을 포함할 수 있어서, 자원이 적절하게 정의된 특징들을 가진 적절한 포맷으로 되어 있는 한, 개발자들은 그들이 좋아하는 사운드 편집기를 사용하여 그들 자신의 사운드들을 생성할 수 있다. 어셋들은, 파라메트릭 TTS 시스템을 레버리지하는 TTS(text-to-speech) 어셋들을 포함할 수 있어서, 개발자들은 TTS 인스턴스들을 생성하고, 스피치를 조절할 수 있는 ("행복" 같은) 다양한 속성들로 이들 인스턴스들에 주석을 달 수 있다[00372] Referring to FIG. 19, an illustrative, non-limiting embodiment of a user interface that may be provided for creation of assets is illustrated. Creating an asset can involve creating assets of the skill. It is not necessarily the first step, but it is a task that usually proceeds in the process of creating skills in which the assets are refined or expanded as the skill itself is developed. The types of assets that can be created include animations using special tools in the rendering tool bar, for example, to easily create new body and child animations. Developers may also change the use of body and child animations in the "Developers" section of the PCD SkillStore. In embodiments, developers may share their assets with consumers or other developers in other environments, such as a skill store for PCD 100 or a developer's portal. Assets may also include sounds so that developers can create their own sounds using their favorite sound editors as long as the resources are in the proper format with well-defined features. Assets may include text-to-speech (TTS) assets that leverage a parametric TTS system so that developers can create TTS instances and store them in a variety of properties (such as " You can annotate

[00373] 어셋들은 이를테면, PCD(100) 상의(이를테면, 몸통 상의) LED 라이트들을 제어하기 위해 라이트 가시화들을 포함할 수 있으며, 그런 경우, 개발자들은 제어를 특정하기 위한 표현 툴 모음을 사용할 수 있다. 개발자들은 또한 이를테면, PCD 스킬들 스토어의 "Developers" 섹션으로부터 LED 라이트 애니메이션들의 용도를 변경할 수 있음이 주목된다. [00373] The assets may include light visualizations, for example, to control LED lights (eg, torso) on PCD 100, in which case developers may use a collection of presentation tools to specify control. It is noted that developers may also change the use of LED light animations, for example, from the "Developers" section of the PCD Skills Store.

[00374] 어셋들은 입력 문법들을 포함할 수 있다. 스킬의 인식된 입력 문법을 관리하기 위해, 개발자들은 그들이 인식되기를 바라는 다양한 문법들을 특정하기 위해 스피치 툴 모음을 사용할 수 있다. [00374] Assets may include input grammars. To manage the recognized input grammar of the skill, the developers can use the speech tool suite to specify various grammars they want to be recognized.

[00375] 개발자가 적법한 스킬에 대한 어셋들을 가지면, 개발자는 거동 편집기를 사용하여 스킬 그 자체를 기록할 수 있다. 거동 편집기는 센서리 입력의 핸들링은 물론 표현 출력 제어를 통제하는 로직을 인에이블링한다. 이 단계 대부분은 간단한 편집기를 사용하여 행해질 수 있지만, SDK는 하나 또는 그 초과의 전유 REST API들을 통한 데이터의 교환 등과 같이, 개발자가 특정 스킬에 고유할 수 있는 작업들을 행하는 것을 인에이블링하도록 스트레이트(straight) JavaScript 코드의 추가를 인에이블할 수 있다. [00375] If a developer has assets for a legitimate skill, the developer can use the behavior editor to record the skill itself. The behavior editor enables logic to control the expression output control as well as the handling of the sensor input. While most of these steps can be done using a simple editor, the SDK can also be used to enable straightforward (for example, to allow developers to perform tasks that are specific to a particular skill, such as exchanging data through one or more proprietary REST APIs straight JavaScript code can be enabled.

[00376] 스킬이 (부분적으로) 기록되면, 개발자는 PCD 시뮬레이터를 사용하여 실시간으로 또는 거의 실시간으로 발생할 수 있는 스킬의 다양한 양상들을 연습할 수 있다. 시뮬레이터는 기본 센서리 입력의 트리거링을 지원할 수 있으며, PCD의 개발자 레코드 모드를 통해 조기에 생성된 센서리 입력 파일 상에서 또한 동작할 수 있다. 시뮬레이터에 대한 입력들은, PCD(100)로의 물리적 입력으로부터, PCD(100) 외부의 하나 또는 그 초과의 센서들로부터, 직접 시뮬레이터로부터, 또는 외부 디바이스들, 이를테면 IoT 디바이스들 또는 애플리케이션들, 이를테면 웹 애플리케이션들 또는 모바일 애플리케이션들로부터 발생할 수 있다. 시뮬레이터는 TTS 출력을 나타내기 위해 텍스트는 물론, WebGL 그래픽 출력을 통해 표현 시스템의 부분들을 지원할 것이다. 개발 및 시뮬레이션 사이클은 WYSIWYG 접근법을 사용하여 실시간 또는 거의 실시간으로 이루어질 수 있어서, 스킬의 변화들은 시뮬레이터 상에서 즉시 가시적이며 시뮬레이터의 동적 편집에 응답한다. [00376] Once the skill is (partially) recorded, the developer can practice various aspects of the skill that can occur in real time or near real time using the PCD simulator. The simulator can support triggering of the default sensor inputs and can also operate on sensor input files generated earlier through the PCD's developer record mode. The inputs to the simulator may be from a physical input to the PCD 100, from one or more sensors external to the PCD 100, directly from the simulator, or from external devices, such as IoT devices or applications, Or from mobile applications. The simulator will support portions of the presentation system via text, as well as WebGL graphics output, to represent the TTS output. Development and simulation cycles can be done in real time or near real time using the WYSIWYG approach, so changes in skill are immediately visible on the simulator and respond to the dynamic editing of the simulator.

[00377] 궁극적으로, 더 복잡한 거동들(이를테면, 통지들)이 시뮬레이터 내에서 지원되지 않을 수 있으므로, 개발자는 PCD(100) 그 자체 상에서 스킬을 테스트할 필요가 있을 수 있다. 애드혹 라이브 테스팅 외에도, 개발자는 PCD의 레코드 모드를 통해 생성된 센서리 입력 파일들을 통해 테스팅을 재차 구동할 수 있다. 실시예들에서, 입력들은 외부 소스로부터 실시간으로 또는 거의 실시간으로 스트리밍될 수 있다. [00377] Ultimately, the developer may need to test the skill on the PCD 100 itself, since more complex behaviors (such as notifications) may not be supported in the simulator. In addition to ad hoc live testing, developers can re-run testing through sensor input files generated through the PCD's record mode. In embodiments, the inputs may be streamed from an external source in real time or near real time.

[00378] 또한, 개발자가 다른 사람들이 새로운 스킬을 사용하고 구매하는 것일 인에이블하기를 바라는 경우, 개발자는 인증을 위해 스킬을, 이를테면 SDK의 호스트에 제출할 수 있다. 상이한 스킬들에 걸친 거동의 일관성을 조장하고, 안전을 보장하고, 신뢰성을 보장하는 등을 위해 다양한 인증 가이드라인들이 생성될 수 있다. 인증되면, 사용자들, 다른 개발자들 등에 의한 액세스들을 위해 스킬을 PCD 스토어에 배치될 수 있다. 실시예들에서, 개발자들은 또한 PCD(100)에 대한 스토어, 개발자의 포탈 등 상에 어셋들(예컨대, 애니메이션들, 스킬들, 사운드들 등)을 포스팅할 수 있다. [00378] Also, if a developer wishes to enable others to use and purchase a new skill, the developer can submit the skill for authentication, such as to the host of the SDK. Various authentication guidelines can be created to encourage consistency of behavior across different skills, to ensure safety, to ensure reliability, and so on. Once authenticated, the skills can be placed in the PCD store for access by users, other developers, and the like. In embodiments, developers may also post assets (e.g., animations, skills, sounds, etc.) on the store for the PCD 100, on the developer's portal,

[00379] 다양한 툴들이 SDK에 또는 SDK와 관련하여 전개될 수 있다. 개발자가 소셜 로봇의 로컬 인지 공간(예컨대, 사람의 식별, 사람 추적, 감정 검출 등)을 보고, 이해하고 그리고/또는 테스트하게 할 수 있는 LPS(local perception space) 가시화 툴을 포함할 수 있다. 툴들은 새로운 문법들을 생성하고 텍스트-대-스피치 출력에 주석을 달기 위한 유틸리티들의 스피치 툴 모음에서 스피치와 관련된 다양한 툴들을 포함할 수 있다. 실시예들에서, 툴들은 발화된 발화에 대해 필터들 또는 다른 사운드들 또는 오디오 효과들을 적용하는 데 사용될 수 있다. 툴들은 개발자들이 이를테면, 주어진 스킬에 대한 거동 트리들(예컨대, "브레인")을 통해 거동을 저작할 수 있도록 거동 편집기를 포함할 수 있다. [00379] Various tools may be deployed in the SDK or in conjunction with the SDK. A local perception space (LPS) visualization tool that allows a developer to view, understand and / or test the local cognitive space of a social robot (e.g., human identification, human tracking, emotion detection, etc.). Tools can include a variety of speech-related tools in the speech tools suite of utilities for creating new grammars and annotating text-to-speech output. In embodiments, the tools may be used to apply filters or other sounds or audio effects to the uttered speech. The tools may include behavioral editors so that developers can, for example, author behavior through behavioral trees (e.g., " brains ") for a given skill.

[00380] 표현 툴 모음은 소셜 로봇에 대한 표현 출력을 저작하기 위한 유틸리티들의 모음을 포함할 수 있으며, 이는 PCD(100)의 애니메이팅된 거동을 시뮬레이팅하는 애니메이션 시뮬레이터를 포함할 수 있다. 이는 웹킷 및 인터프리터, 이를테면 Google ™ 하의 V8 JS Interpreter ™를 갖는 JavaScript 또는 HTML을 포함할 수 있다. 거동들 및 스크린 그래픽들은 표준 웹 애플리케이션 코드를 사용하여 증강될 수 있다. [00380] The rendering tool suite may include a collection of utilities for authoring presentation output to the social robot, which may include an animation simulator that simulates the animated behavior of the PCD 100. This can include JavaScript or HTML with WebKit and an interpreter, such as V8 JS Interpreter ™ under Google ™. The behaviors and screen graphics can be augmented using standard web application code.

[00381] 시뮬레이팅된 런타임 환경은 스킬의 다양한 양상들을 연습하기 위한 툴로 제공될 수 있다. [00381] The simulated runtime environment can be provided as a tool for practicing various aspects of the skill.

[00382] 도 20을 참조하면, 개발자가, 이를테면, PCD(100)의 카메라를 통해 보여지는, PCD(100)의 로컬 인지 공간을 보게 할 수 있는 LPS(local perception space) 가시화 툴의 예시적이며 비제한적인 스크린 샷들이 예시되어있다. 이는 PCD(100)의 뷰 내의 사람들을 식별하고 추적하는 데 사용될 수 있다. 실시예들에서, 이는 복잡하게 성장할 수 있고 PCD(100)가 상호작용할 수 있는 아바타들 및 다른 시각적 엘리먼트들과 같은 엘리먼트들과 더불어, 3-차원 세계를 포함할 수 있다. [00382] Referring to FIG. 20, an example of a local perception space (LPS) visualization tool that allows a developer to view, for example, the local perceived space of the PCD 100, as seen through the camera of the PCD 100 Non-limiting screenshots are illustrated. This can be used to identify and track people in the view of the PCD 100. In embodiments, this may include a three-dimensional world, with elements such as avatars and other visual elements that can grow complexly and with which the PCD 100 can interact.

[00383] 스피치 툴 모음은 듣고(예컨대, "이어" 툴) 말하기와 관련된 툴들을 포함할 수 있다. 이는, 라이브러리로부터 어구들 및 다양한 타입들의 문법들(이를테면, 단어 스포팅, 통계적 등), 이를테면 예/아니오 문법들, 숫자들의 시퀀스, 자연수들, 제어들(계속, 중지, 일시정지), 날짜 및 시간, 비-어구-스포팅(non-phrase-spotting) 문법들, 변수들(예컨대, $name) 등을 가져오기 위한 다양한 성능들을 포함할 수 있다. 이들은 ASR, 스피치-대-텍스트 성능들 등을 사용할 수 있으며, 클라우드-기반이거나 PCD(100) 그 자체 상에 임베딩될 수 있다. 이 툴 모음은 위에서 주목된 시뮬레이터에서 애플리케이션 로직과 더불어, 문법의 기본 검증 및 디버깅을 포함할 수 있다. 툴 모음은 PCD(100)에 대한 NLU(natural language understanding) 모드들을 개발하기 위한 툴들을 포함할 수 있다. 자원들은 온-디바이스 문법 컴파일 툴을 사용하여 생성될 수 있다. 자원들은 데이터를 (예컨대, 기계적 터크와 같이) 데이터를 수집하기 위한 툴들 및 새로운 모델들을 트레이닝하기 위한: 이를테면, 어구 스포팅, 보이스를 통한 사람 식별, 또는 다른 스피치 또는 사운드 인식 또는 이해 성능들을 위한 머신 학습 툴들을 포함할 수 있다. 문법들은 GUI 프리젠테이션 및 로직 디버깅을 위한 출력 태그들을 게재할 수 있다. PCD(100)의 센서 라이브러리는 센서리 자원들을 생성하고 문법 인식 성능들을 테스트하기 위해 사용될 수 있다. 테스팅은 실제 발화된 ASR을 사용하여 전체 스킬에 대해 수행될 수 있다. 어구-스포팅 문법들이 생성, 테스팅 및 튜닝될 수 있다. [00383] The speech tool suite may include tools related to listening (eg, an "after" tool) speaking. This is accomplished by using a set of grammars (e.g., word spotting, statistical, etc.) such as phrases and various types of phrases from the library, such as yes / no grammars, sequences of numbers, natural numbers, , Non-phrase-spotting grammars, variables (e.g., $ name), and the like. They may use ASR, speech-to-text capabilities, etc., and may be cloud-based or embedded on the PCD 100 itself. This suite of tools can include basic verification and debugging of the grammar as well as application logic in the simulator noted above. The tool suite may include tools for developing natural language understanding (NLU) modes for the PCD 100. Resources can be created using an on-device grammar compilation tool. The resources may include tools for collecting data (such as, for example, mechanical tactics) and tools for training new models such as: gym spotting, person identification through voice, or machine learning for other speech or sound recognition or understanding capabilities. Tools. The grammars can serve output tags for GUI presentation and logic debugging. The sensor library of the PCD 100 can be used to generate sensor resources and test grammar awareness capabilities. Testing can be performed on the entire skill using the actual spoken ASR. The phrase-sporting grammars can be created, tested and tuned.

[00384] 거동 편집기에서, 인식기를 인보크할 때, 개발자는 제약된 세트의 인식기의 파라미터들(예컨대, 시간초과, 거부 등)을 수정하고 그리고/또는 (이를테면, 텍스트 프로세싱을 수행하기 위해) 인식 결과들에 대한 콜백을 인보크할 수 있다. [0038] In the behavior editor, when invoking the recognizer, the developer can modify the parameters of the constrained set of recognizers (eg, timeout, rejection, etc.) and / or recognize (eg, to perform text processing) You can invoke a callback to the results.

[00385] 도 21을 참조하면, 예시적이며 비제한적인 실시예에 따른 거동 편집기의 스크린샷이 제공된다. PCD 거동 편집기(2100)는 개발자들/설계자들이 PCD(100) 상에서 새로운 스킬을 신속하게 생성하도록 인에이블링한다. 이 섹션에서 정의된 출력 파일은 실행 엔진(1704)을 구동한다. 거동 편집기(2100)에 관한 더 많은 세부사항들이 아래에 제공된다. [00385] Referring to FIG. 21, a screen shot of a behavior editor in accordance with an exemplary, non-limiting embodiment is provided. The PCD behavior editor 2100 enables developers / designers to quickly create new skills on the PCD 100. The output file defined in this section drives the execution engine 1704. More details regarding the behavior editor 2100 are provided below.

[00386] 실시예들에서, 거동 저작 툴은 사용하기 쉽고, 모호하지 않고, 확장 가능하고, 실질적으로 WYSIWYG이도록 설계된 거동 트리 생성기를 포함할 수 있다. 거동들 그 자체는 실황 문서화(living documentation)를 포함할 수 있다. 각각의 거동은 설명 및 주석 표기를 가질 수 있다. 거동은 구현되지 않고도 정의될 수 있다. 이는 설계자들이 아직 존재하지 않는 거동들을 "채우게(fill in)" 할 수 있다. [00386] In embodiments, the motion authoring tool may include a behavior tree generator that is easy to use, is not ambiguous, is extensible, and is designed to be substantially WYSIWYG. The behaviors themselves may include living documentation. Each behavior can have a description and an annotation. The behavior can be defined without implementation. This allows designers to "fill in" behavior that does not yet exist.

[00387] PCD 거동 시스템은 그의 코어에서, 매우 저레벨의 간단한 거동으로 구성될 수 있다. 이러한 저레벨의 거동들은 보다 고레벨의 복잡한 거동들을 형성하기 위해 결합될 수 있다. 더 고레벨 거동은 손으로 코딩되거나 다른 하위 레벨 거동들로 구성될 수 있다. 이 계층구조는 사실상 무한하다. 비록 복잡성의 구배들이 존재할지라도, 거동 계층구조들은 대략 3개의 레벨들 즉; (1) 어토믹 거동(일반적으로, PCD(100)의 기능들에 반드시 의존하진 않는 거동들을 포함해서, 기능적 거동 트리를 갖는 거동들의 최소 세트); (2) PCD(100) 기반 거동들(이를테면, 소셜 로봇과 연관된 다양한 JavaScript API들에서 구체화되는 PCD(100)의 전체 성능 세트에 걸친 거동들); (3) (손으로 코딩되거나, 또는 파라미터화된 거동 계층구조들 그 자체로 구성될 수 있는) 컴파운드(compound)의 고레벨 거동들; 및 (4) 스켈레톤 거동들(존재하지 않거나 완전히 구현되지 않았거나 구현이 별개인 거동)으로 분할될 수 있다. 거동 계층구조들은 다른 것들 중에서도, 이를테면, 머신 학습 방법들, 이를테면, 강화 학습을 이용하여 PCD(100)의 경험으로부터 학습될 수 있다. 이를테면, JavaScript API에서 구체화되는 소셜 로봇 API의 각각의 함수 콜은 그것이 의미가 통하는 거동으로 표현될 수 있다. 스켈레톤 거동은 문서화를 위해 거동 트리에 삽입되고 나중에 구현되고 런타임에 바인딩될 수 있다. 이는 아직 존재하지 않는 거동을 필요로 하는 설계자가 이 거동의 설명 및 가능한 결과(실패, 성공 등)를 포함하는 이 "바운드 타입(Bound Type)"을 삽입하고 나중에 구현을 위한 엔지니어 코드를 갖게 할 수 있다. 플레이백 동안, 바운드 타입이 존재하는 경우, 그 타입은 구현에 바인딩되고; 그렇지 않으면, PCD(100) 또는 시뮬레이션은 바운드 거동 이름 및 그 리턴 타입을 말하고 트리에서 계속 진행할 수 있다. 또한, 툴들은 정교한 인지 프로세싱 파이프라인들을 개발하기 위해 인지 계층구조들의 정의를 지원할 수 있다. 이러한 인지 트리들의 출력들은 거동 등에 연결될 수 있다. 게다가, 개발 플랫폼 및 SDK는 개발자들에 대해 이용 가능하게 되는 더 높은-순서 인지 분류 모듈들(Reusable Multi-Modal Input-Output Modules)의 멀티-모달 라이브러리들의 모음을 지원한다. [00387] The PCD behavior system can be constructed in its core at a very low level of simple behavior. These low level behaviors can be combined to form a higher level of complex behavior. Higher level behavior can be hand coded or composed of other lower level behaviors. This hierarchy is virtually infinite. Although there are gradients of complexity, the behavior hierarchies have approximately three levels: (1) the minimal set of behaviors with functional behavioral trees, including behaviors that are not necessarily dependent on the functions of the PCD 100; (2) PCD 100-based behaviors (e.g., behaviors across the entire performance set of PCD 100 embodied in various JavaScript APIs associated with social robots); (3) high-level behaviors of a compound (which may be constructed by hand-coded or parameterized behavioral hierarchies as such); And (4) skeleton behaviors (nonexistent, fully implemented, or implementation-independent behaviors). The behavior hierarchies can be learned from the experience of the PCD 100 using among other things, such as machine learning methods, such as reinforcement learning. For example, each function call in the social robot API specified in the JavaScript API can be expressed in a way that makes sense. The skeleton behavior can be inserted into the behavior tree for documentation and later implemented and bound at runtime. This allows designers who need non-existent behavior to insert this "Bound Type", which includes an explanation of this behavior and possible outcomes (failure, success, etc.) have. During playback, if a bound type exists, its type is bound to the implementation; Otherwise, the PCD 100, or simulation, can say the bound behavior name and its return type and continue in the tree. Tools can also support the definition of cognitive hierarchies to develop sophisticated cognitive processing pipelines. The outputs of these cognitive trees can be connected to behavior, In addition, development platforms and SDKs support a collection of multi-modal libraries of Reusable Multi-Modal Input-Output Modules that are made available to developers.

[00388] 가장 어토믹적으로, 거동 트리는 다음과 같은 기본적인 거동들 즉, BaseBehavior - 리프 노드; BaseDecorator - 거동 데코레이터; Parallel - 컴파운드 노드; Sequence(및 시퀀스 변동들) - 컴파운드 노드; Select - 컴파운드 노드; 및 Random(및 랜덤 변동들) - 컴파운드 노드로 구성될 수 있다. 어토믹 거동들은 PCD JavaScript API에 대한 거의 원시 함수 콜들일 수 있지만 적합한 타이밍으로 거동으로 랩핑된다. 이들은 전체 API에 걸쳐 있으며 매우 저레벨일 수 있다. 일부 예들은, LookAt; LoadCompileClip; 및 PlayCompiledClip를 포함한다. 컴파일된 클립들은 임베딩된 이벤트를 가질 수 있다. 거동 또는 데코레이터는 특정 타입의 이벤트를 청취하고 그 이벤트의 정확한 순간에 로직을 실행할 수 있다. 이는 표현 출력과 더 높은-레벨 판정 내리기 간의 긴밀한 동기화를 허용한다. 또한, 어토믹 거동들은 PlayMp3; Listen; ListenTouch; 및 Blink(이릍테면, blinkSpeed, interruptPreviousBlink=(true|false)와 관련된 파라미터들을 가짐)을 포함할 수 있다. [00388] Most morphologically, the behavior tree includes the following basic behaviors: BaseBehavior - leaf node; BaseDecorator - Behavior decorator; Parallel - Compound node; Sequence (and sequence variations) - Compound node; Select - Compound node; And random (and random variations) -compound nodes. Apparent behaviors can be almost primitive function calls to the PCD JavaScript API, but wrapped into behavior with the right timing. They span the entire API and can be very low-level. Some examples include LookAt; LoadCompileClip; And a PlayCompiledClip. Compiled clips can have embedded events. The behavior or decorator can listen to a particular type of event and execute logic at the exact moment of the event. This allows tight synchronization between the presentation output and the higher-level determination. Also, the alchemic behaviors are PlayMp3; Listen; ListenTouch; And parameters related to Blink (in other words, blinkSpeed, interruptPreviousBlink = (true | false)).

[00389] 컴파운드/고레벨 거동들은 다른 고레벨 및/또는 저레벨 거동들을 결합하는 고레벨 거동들일 수 있다. 이러한 거동들은 파라미터화될 수 있다. 예들은, BeAttentive; TakeRandomPictures; BeHappy; 및 StreamCameraToScreen을 포함할 수 있다. 거동들은 이를테면, 세계와의 원하는 결과 또는 상태를 달성하도록 액션들을 변하도록 목표 지향적일 수 있다. 예컨대, 오브젝트 추적의 경우에, 목표는 오브젝트를 추적하여 이를 시각적 필드 내에 유지하는 것이다. 보다 복잡한 예들은 특정한 사람을 찾기 위한 검색 또는 이를테면, 사람을 웃게 하도록 PCD(100)의 거동을 변동시키는 것일 수 있다. 실시예들에서, PCD(100)의 무드 또는 감정 또는 정서 상태는 거동 또는 PCD(100)의 거동의 스타일을 수정할 수 있다. 이는 목표들의 우선순위화 또는 PCD의 관심에 영향을 미칠 수 있다. 또한, 이는 PCD(100)가 경험으로부터 무엇을 어떻게 학습하는지에 영향을 미칠 수 있다. [00389] The compound / high-level behaviors may be high-level behaviors that combine different high and / or low level behaviors. These behaviors can be parameterized. Examples include BeAttentive; TakeRandomPictures; BeHappy; And StreamCameraToScreen. The behaviors can be goal-oriented, for example, to change actions to achieve desired outcomes or conditions with the world. For example, in the case of object tracking, the goal is to track the object and keep it in the visual field. More complex examples may be to shift the behavior of the PCD 100 to search for a particular person or to make a person laugh, for example. In embodiments, the mood or emotional or emotional state of the PCD 100 may modify the behavior or the style of the behavior of the PCD 100. This may affect prioritization of goals or PCD interests. It can also affect what PCD 100 learns from experience.

[00390] 특히, 트리가 커질 때, 거동 트리들의 가독성이 중요하다. 발화에 기반하여 트리를 분기시키는 간단한 사례문을 보자. 사례문을 선언하는 공식적인 방식은 그것이 실행할 하나를 "선택"하는 칠드런을 갖는 Select 거동을 생성하는 것이다. 각각의 차일드는 그 거동을 "선택"하기 위한 로직을 포함하는 FailOnCondition로 데코레이팅된다. 공식적이지만, 이는 각각의 데코레이터의 로직을 검사하지 않고 다른 엘리먼트보다 하나의 엘리먼트가 선택되는 이유를 자동적으로 알게 하는 것을 어렵게 한다. 그러나 설명 필드는 더 많은 컨텍스트를 제공하기 위해 수동으로 편집될 수 있지만, 선택 로직과 설명 필드 간의 공식적인 관계가 반드시 존재하는 것은 아니다. 도 22를 참조하면, 예시적이며 비제한적인 실시예에 따른 분기 로직을 생성하는 공식적 방식이 예시된다. 제1 및 제2 데코레이터(2200, 2202)의 코드에 주의한다. 도 22는 공식적 관계를 예시한다. [00390] In particular, when the tree grows, the readability of the behavior trees is important. Let's look at a simple example of branching a tree based on utterance. The formal way of declaring a case statement is to create a Select behavior with children that "pick" one to execute. Each child is decorated with a FailOnCondition that contains logic to "select" the behavior. Although this is formal, it makes it difficult to automatically know why one element is selected rather than the other elements, without examining the logic of each decorator. However, the description field can be manually edited to provide more context, but there is not necessarily a formal relationship between the selection logic and the description field. Referring to Figure 22, an exemplary method for generating branch logic in accordance with an exemplary, non-limiting embodiment is illustrated. Note the codes of the first and second decorators 2200 and 2202. Figure 22 illustrates a formal relationship.

[00391] PCD(100)에서, 공통 분기 패턴들이 존재한다. 이들 중 소수는 문법-기반의 분기; 터치-기반 분기; 및 비전-기반 분기를 포함한다. [00391] In the PCD 100, common branch patterns exist. A few of these are grammar-based branches; Touch-based branch; And a vision-based branch.

[00392] 가장 일반적인 분기의 경우, 거동 툴 GUI가 트리 가시화를 단순화하고 "설명"과 논리 간의 공식적 관계를 제공할 수 있다. 이는 거동 트리 편집기에 "Info" 열을 추가함으로써 달성될 수 있으며, 이는 기본 로직을 인트로스페 팅(introspecting)함으로써 유도된 설명이 자동 파퓰레이팅된다. GUI 툴은 "GrammarSelect"로 불리는 전문화된 Select 거동이 GUI의 특정 모드에서 제공되도록 되어있다는 것을 안다. 기본 트리 구조는 도 22에서와 정확히 동일할 수 있지만 보다 판독 가능한 방식으로 제공될 수 있다. [00392] For the most common branches, the behavior tool GUI can simplify tree visualization and provide a formal relationship between "description" and logic. This can be accomplished by adding an "Info" column to the behavior tree editor, which is automatically populated with explanations derived by introspecting the underlying logic. The GUI tool knows that a specialized Select behavior called "GrammarSelect" is supposed to be provided in a specific mode of the GUI. The basic tree structure can be exactly the same as in Fig. 22, but can be provided in a more readable manner.

[00393] 도 23을 참조로, 예시적이며 비제한적인 실시예가 예시되며, 이로써, 선택 로직은 인수로서 거동 그 자체에 부가될 수 있다. 이 경우, 부가된 인수는 리턴된 문법 태그에 대응하는 스트링 필드일 수 있으며, 인수의 값은 "Info" 필드에 자동적으로 배치될 수 있다. GrammarSelect에 대한 각각의 차일드 거동의 부가된 인수의 값은 기본 SucceedElseFail 데코레이터를 파퓰레이팅하는 정확한 코드를 생성하기 위해 사용될 수 있다.[00393] Referring to Figure 23, an exemplary, non-limiting embodiment is illustrated, whereby the selection logic can be added to the behavior itself as an argument. In this case, the added argument may be a string field corresponding to the returned grammar tag, and the value of the argument may be automatically placed in the " Info " field. The value of the argument of each child behavior for GrammarSelect can be used to generate the correct code to populate the default SucceedElseFail decorator.

[00394] 멀티모달 상호작용에 대한 "공통 패턴"이 알려져 있으며, 그것은, 과거에 사용되었던 유니모달 상호작용(스피치)에 대한 공통 패턴의 진화이다. 이것은 순차적인 멀티모달러티(예컨대, 2개의 모드들)에서만 참이다. 그러나, 로봇 거동 및 HMI(human-machine interaction)는 약간 상이한 패러다임들을 갖는다. 처음 것은 거동 트리에 의해 더 용이하게 표현되는 반면, 다이얼로그의 "중첩하는" 구조 그 자체는 중첩 "경우" 사례문들, 또는 훨씬 더 일반적으로는 조건부 원호를 갖는 재귀적 방향성 그래프를 수반하는 표현에 더 적합하다. 그러므로, 본 발명은, HMI의 가독성을 증가시키기 위해 GrammarSelect에 대한 향상으로 2개를 매칭시켜, 정교한 상호작용들을 구축하는 것을 허용할 수 있다.[00394] A "common pattern" for multimodal interactions is known, which is the evolution of a common pattern for unimodal interactions (speech) that have been used in the past. This is true only in sequential multi-mode (e.g., two modes). However, robot behavior and human-machine interaction (HMI) have slightly different paradigms. While the first is more easily represented by the behavior tree, the "overlapping" structure of the dialog itself is a representation of a nested "case", or more generally a representation involving a recursive directional graph with a conditional arc More suitable. Therefore, the present invention can allow two to match up as enhancements to GrammarSelect to increase the readability of the HMI, thereby building sophisticated interactions.

[00395] 실제로, 임의의 인간-머신 상호작용이 이런 식으로 발생할 수 있다. 먼저, 머신은 어떤 것(일반적으로, 애니메이션+오디오+텍스처와 같은 어떤 것)을 출력하도록 구성되고, 그런 다음, 인간은 어떤 것(일반적으로, 스피치 또는 터치)을 입력하거나 또는 일부 다른 프로세스는 상호작용에 상당한 이벤트를 리턴시키며, 시퀀스는 부가적인 출력들 및 입력들과 함께 그곳으로부터 반복된다.[00395] In practice, any human-machine interaction can occur in this way. First, the machine is configured to output something (typically something like animation + audio + textures), and then the person enters something (usually speech or touch) Return a significant event to the action, and the sequence is repeated therefrom with additional outputs and inputs.

[00396] 그러므로, 위의 경우 사례문(GrammarSelect)은, 본 발명이 그 경우 사례문을 전체 이벤트 패러다임으로 확장시켰고, 본 발명이 일반적인 HMI 선택을 가질 수 있다는 것을 커버할 것이며, 여기서, 본 발명은 (이벤트에 대응하는) 태그 및 태그의 타입(문법, 비전, 터치)을 특정할 수 있다. 위의 것은 다음과 같을 것이다:Therefore, in the above case, GrammarSelect will cover that the present invention has extended the case to the full event paradigm in that case and that the present invention can have a general HMI selection, (Grammar, vision, touch) of the tag and the tag (corresponding to the event). The above would be:

[00397] HMI_InputSelect:[00397] HMI_InputSelect:

[00398] AnyBehavior1 Speech:RANDOMPICTURE, Touch: AREA1[00398] AnyBehavior1 Speech: RANDOMPICTURE, Touch: AREA1

[00399] AnyBeahvior2 Speech:RANDOMPICTURE, Touch: AREA2[00399] AnyBeahvior2 Speech: RANDOMPICTURE, Touch: AREA2

[00400] AnyBehavior3 Vision: TRACKINGFACELOST[00400] AnyBehavior3 Vision: TRACKINGFACELOST

[00401] 쉼표들에 의해 분리된 태그들은 또는(OR)에 있다. 이러한 예에서, 거동은 누군가가 "take random pictures"를 말하거나 또는 AREA1을 터치한 것에 대해 AnyBehavior1로 누군가가 "Play Music"을 말하거나 또는 Area2를 터치한 것에 대해 Behavior 2로, 또는 비전 시스템이 TRACKINGFACELOST를 리턴한 경우 응답할 것이다.[00401] Tags separated by commas are in (OR). In this example, the behavior may be as Behavior 2 when someone says "take random pictures" or touches AREA1, or someone says "Play Music" with AnyBehavior1 or touches Area2, or the vision system uses TRACKINGFACELOST Will return.

[00402] HMI 흐름의 가독성을 개선시키기 위한 다른 방식은, 예컨대, "말하다"로 불리는 기본 거동을 도입함으로써 거동 트리 사양 뷰 내의 프롬프트들의 텍스트를 명시적으로 보는 것이다. 그러므로, 위의 예를 참조하면, 누군가가 RANDOMPICTURE를 말한 경우, 그것은 AnyBehavior1Sequence:AnyBehavior1로 입력된다.[00402] Another way to improve the readability of the HMI flow is to explicitly view the text of the prompts in the behavior tree specification view, for example, by introducing a basic behavior called "talk". Thus, referring to the example above, if someone says RANDOMPICTURE, it is entered as AnyBehavior1Sequence: AnyBehavior1.

[00403] PCD(100)는 "OK, I am going to take a picture of you now. Ready?"를 말한다.[0040] The PCD 100 refers to "OK, I am going to take a picture of you now. Ready?".

[00404] 사용자는 "Yes"를 리턴하여, Behavior Speech:YES 또는 Touch:YESAREA의 프로세싱을 야기한다.[00404] The user returns "Yes" to cause processing of Behavior Speech: YES or Touch: YESAREA.

[00405] 그런 다음, PCD(100)는 시퀀스, 이를테면 TakePictureBehavior I을 개시한다.[00405] The PCD 100 then initiates a sequence, such as TakePictureBehavior I.

[00406] PCD(100)가 "no"를 검출하는 경우, 이를테면 NoBehavior Speech:NO를 듣거나 또는 Touch:NOAREA를 감지하는 경우, 사용자는 GoHomeBehavior를 실행하고, 스피치 거동: robotSpeak "OK. Going back to home screen"을 개시한다.When the PCD 100 detects "no", such as NoBehavior Speech: NO or Touch: NOAREA, the user executes the GoHomeBehavior and the speech behavior: robotSpeak "OK. Going back to home screen ".

[00407] 이 경우, PCD 말하기는 다수의 프롬프트들 및 대응하는 애니메이션들을 랜덤화하는 기본 거동이다(실시예들에서, 사람이 거동을 더블 클릭하는 경우 사람은 프롬프트들 및 애니메이션들을 볼 수 있고, 거동 편집 박스가 팝업될 것이다). 개발자가 애플리케이션을 설계하고 있는 동안 UI 설계가 프롬프트를 기록할 수 있기 때문에, 이러한 거동의 타이핑을 갖는 것이 중요하다. 그런 다음, 사람은 모든 프롬프트들에 대한 거동 트리를 자동적으로 마이닝하고, 보이스 탤런트에 대한 매니페스트 표를 생성하고, 프롬프트들에 대한 파일 이름들을 자동적으로 생성할 수 있는 등의 식이다. (그것만으도 많은 설계 및 스킬-개발 시간을 절약할 것이다).[00407] In this case, PCD speaking is the basic behavior of randomizing a number of prompts and corresponding animations (in embodiments, when a person double-clicks on a behavior one can see the prompts and animations, The edit box will pop up). It is important to have this type of behavior because the UI design can record prompts while the developer is designing the application. Then, one can automatically mining the behavior tree for all prompts, create a manifest table for voice talents, and automatically generate file names for prompts, and so on. (Which will save you a lot of design and skill-development time).

[00408] 상호작용 거동이 위의 예에서 표현되는 방식으로, 개발자는 무엇이 발생할 것인지를 신속히 이해할 수 있으므로, 이것은 설계 및 구현을 동시에 나타낼 것이다.[00408] In a manner in which the interaction behavior is represented in the above example, the developer will quickly understand what will occur, so that it will simultaneously indicate design and implementation.

[00409] 상호작용들을 나타내기 위해 의도된 트리들을 사용하는 것에 관해 통지하기 위한 하나의 것은, 상호작용이 깊은 경우(이를테면, 많은 중첩 턴들을 갖는 경우), 그것은 수평의 실제 자산을 신속히 소모한다는 것이다. 그러므로, 설계자는 다른 곳에서 정의된 거동들로 후속적인 턴들을 캡슐화하는 습관을 만들 수 있다. 가동성에 영향을 주는 다른 문제점은, 종료 조건이 중첩 문들에서 명확하지 않다는 것이다. 방향성 그래프 표현에서, 사람은 원하게 될 때마다 임의의 지점에 원호를 놓을 수 있으며, 그것은 완벽하게 판독가능하다. 중첩 절차에서, 그것은 절차로 하여금 나가게 하는 조건 뿐만 아니라 다른 콜링 절차들을 생성할 수 있다.[00409] One thing to notice about using the intended trees to represent interactions is that if the interaction is deep (such as having a lot of nested turns), it quickly consumes the actual assets in the horizontal . Therefore, the designer can create a habit of encapsulating subsequent turns with behaviors defined elsewhere. Another problem that affects mobility is that the termination condition is not clear in the nested statements. In a directional graph representation, a person can place an arc at any point whenever it is desired, and it is perfectly readable. In the overlapping procedure, it may generate other calling procedures as well as the conditions that cause the procedure to exit.

[00410] 거동 편집기의 메인 윈도우는 확장가능하고 접힘가능한 트리 구조일 수 있다. 이것은 거동들의 트리 구조를 나타낸다. 실시예들에서, 이러한 뷰의 각각의 거동에 대해, 사람은 드래그, 드롭, 삭제, 복사, 잘라내기, 붙이기, 다른 거동과 스와핑하고, 하나 또는 그 초과의 데코레이션들을 부가 또는 제거하고, 위 또는 아래에 형제를 부가하고 차일드를 부가할 수 있다(그리고 위의 것 중 임의의 것을 형제 또는 차일드에 적용할 수 있다).The main window of the behavior editor may be an expandable and collapsible tree structure. This represents the tree structure of the behaviors. In embodiments, for each behavior of such a view, a person may drag, drop, delete, copy, cut, paste, swap with other behavior, add or remove one or more decorations, (And any of the above can be applied to siblings or children).

[00411] 이러한 최상부 레벨 뷰는, 트리가 시도하려는 것의 양호한 아이디어를 저자가 획득할 수 있을 만큼 충분히 유익해야 한다. 이것은, 모든 각각의 행이 거동 및 데코레이터 이름들, 거동 타입을 나타내기 위한 작은 아이콘, 및 사용자-작성된 설명 필드를 포함할 수 있다는 것을 의미한다.[00411] This top level view should be beneficial enough for the author to obtain a good idea of what the tree is trying to do. This means that every single row can contain behavior and decorator names, a small icon to represent the behavior type, and a user-written description field.

[00412] 각각의 거동은 제로 또는 그 초과의 파라미터들로 파라미터화될 수 있다. 예컨대, SimplePlayAnimation 거동은 하나의 파라미터: 애니메이션 이름을 취할 수 있다. 더 복잡한 거동들은 통상적으로 더 많은 파라미터들을 취할 것이다.[0042] Each behavior can be parameterized with zero or more parameters. For example, the SimplePlayAnimation behavior can take one parameter: an animation name. More complex behaviors will typically take more parameters.

[00413] 컴파운드 거동은 서브 거동들로서 거동 툴에서 생성될 수 있다. 실시예들에서, 그것은 서브트리 파라미터들을 임의로 파라미터화하고, 그들을 컴파운드 거동의 최상부까지 그래픽으로 버블링할 수 있다.[00413] Compound behavior can be generated in the behavior tool as sub-behaviors. In embodiments, it may arbitrarily parameterize the subtree parameters and bubble them graphically to the top of the compound behavior.

[00414] 거동에 대한 각각의 파라미터는 그 파라미터와 연관된 "타입"을 가질 수 있다. 파라미터의 타입은 거동 저작 툴이 각각의 인수에 대한 유효 값들을 그래픽으로 입력하기 위해 사용자를 가능한 많이 돕게 할 수 있을 수 있다. 다음은, 사용자가 적합한 값을 작성하게 툴이 그래픽으로 어떻게 돕는지에 대한 설명들을 갖는 타입 상속 구조의 실시예이다: (1) CompiledClip: 컴파일링된 클립을 편집하는 것은, 타임라인 기반 편집기일 수 있는 애니메이션 편집기로 개발자를 안내할 수 있다; (2) 스트링: 텍스트 박스가 나타난다; (3) 파일: 파일 선정기가 나타난다; (4) 애니메이션 파일: 사용자 생성된 애니메이션들 및 PCD-생성된 애니메이션들을 포함할 수 있는 이용가능한 애니메이션들을 열거하는 파일 선정기 윈도우가 나타난다. 그것은 또한, 스폿 상에 애니메이션을 생성하기 위해 애니메이션 저작 툴로의 링크를 디스플레이할 수 있다; (5) 사운드 파일: 이용가능한 mp3 파일들을 열거하는 파일 선정기가 나타날 수 있다; (6) 문법 파일: 이용가능한 .raw 또는 .grammar 파일들을 열거하는 파일 선정기; (7) 문법 텍스트: 자동완성 및 구문 강조를 이용하는 문법 구문 편집기를 나타낸다; (8) TTS: TTS 편집기는 가급적 미리보기 모드에서 나타난다; (9) JavaScript: 소셜 로봇 API들에 대한 구문 강조 및 가능한 코드 완료를 이용하는 JavaScript 편집기, 이를테면 아톰을 나타낸다; (10) 환경 변수들: PCD(100)에 중요한 변수들이 존재한다; (11) 넘버: 넘버 박스가 나타난다. 최소, 최대, 디폴트; (12) 정수: 정수 선택 박스가 나타난다. 최소, 최대, 디폴트; (13) 부울: 참/허위 콤보 박스 또는 라디오 선택 버튼들이 나타난다; (14) Array<Type>: 타입의 엘리먼트들을 부가, 차감, 위 또는 아래로 이동시키기 위한 능력을 디스플레이한다; (15) Vector3d: (x, y, z) 박스를 디스플레이한다; 및 (16) 사람: 가장 근접하거나, 가장 멀리있거나, 가장 잘-알려진 등일 수 있다.[00414] Each parameter for a behavior may have a "type" associated with the parameter. The type of the parameter may allow the behavioral authoring tool to help the user as much as possible to graphically enter valid values for each argument. The following is an example of a type inheritance structure with a description of how the tool graphically helps the user create appropriate values: (1) CompiledClip: Editing a compiled clip can be a timeline-based editor You can guide the developer through the animation editor; (2) String: a text box appears; (3) File: File selector appears; (4) Animation file: A file selector window appears that lists the available animations that can contain user-generated animations and PCD-generated animations. It can also display a link to an animation authoring tool to create an animation on the spot; (5) Sound file: A file chooser may appear that lists the available mp3 files; (6) Grammar file: a file selector for enumerating available .raw or .grammar files; (7) Grammar Text: represents a grammar syntax editor that uses autocompletion and syntax highlighting; (8) TTS: The TTS editor appears in preview mode whenever possible; (9) JavaScript: A JavaScript editor that uses syntax highlighting and possible code completion for social robot APIs, such as Atom; (10) Environmental variables: There are important variables in the PCD 100; (11) Number: The number box appears. Minimum, maximum, default; (12) Constant: Constant selection box appears. Minimum, maximum, default; (13) Boolean: True / false combo box or radio select buttons appear; (14) Display the ability to add, subtract, move up or down the elements of the Array <Type>: type; (15) Vector3d: displays the (x, y, z) box; And (16) the person: the closest, the farthest, the best-known, and so on.

[00415] PCD(100)가 거동 트리를 실행할 때, 디버그 웹 인터페이스는, 트리가 있는 현재의 노드를 강조하여 그 트리의 그래픽 표현을 나타낼 수 있다. 시작, 중단, 및 전진 버튼들이 이용가능할 수 있다. 일시정지 동안, 툴은 글로벌 워치 변수들 및 거동 파라미터 값들에 대한 내성검사(introspection)를 허용할 수 있다. 뿐만 아니라, 제한된 입력 상호작용은 이용가능하게 계속 유지될 수 있다. 예컨대, 이것은, 어구를 트리거링하거나 또는 소셜 로봇 근방에 사람을 배치하는 것을 포함할 수 있으며, 이는 이러한 사람에 관한 템플릿 지식을 부가하는 것이 가능할 수 있다. 실시예들에서, 개발자들은 또한, 거동 모델들을 다른 개발자들과 공유할 수 있고, 이를테면 센서리-모터 스킬들 또는 모듈들을 공유할 수 있다. 예컨대, PCD(100)가 모바일 베이스를 갖는 경우, 내비게이션 및 맵핑 모델들이 개발자들 간에 공유될 수 있다. 거동 로직 부류들은, 이를테면 기능성에 대한 변형들을 확장 및 제공하도록 개발자들에 의해 수정될 수 있다.[00415] When the PCD 100 executes the behavior tree, the debug web interface can highlight the current node in which the tree is located to represent the graphical representation of the tree. Start, stop, and advance buttons may be available. During pause, the tool may allow introspection on global watch variables and behavior parameter values. In addition, limited input interaction can remain available. For example, this may involve triggering a phrase or placing a person near a social robot, which may be possible to add template knowledge about this person. In embodiments, developers may also share behavior models with other developers, such as sensor-motor skills or modules. For example, if the PCD 100 has a mobile base, the navigation and mapping models can be shared among developers. The behavioral logic classes can be modified by developers, for example to extend and provide variations on functionality.

[00416] SDK의 툴들은 소셜 로봇의 표현들을 관리하기 위한 표현 툴 모음을 포함할 수 있다. 표현 툴 모음의 코어 특징은 시뮬레이션 윈도우이다. 도 24를 참조로, 시뮬레이션 윈도우의 실시예가 예시되며, 여기서, 스크린샷들 둘 모두의 메인 뷰는 PCD(100)의 애니메이션을 시뮬레이팅한다. 최상부 메인 뷰(2400)는 또한, 아이 그래픽에 대한 초점을 시뮬레이팅한다. 각각의 스크린샷의 상부 좌측 부분은 스크린 그래픽(2402, 2402')을 시뮬레이팅한다. 이러한 시뮬레이션 뷰는, (실행되는 브라우저, 이를테면 Chrome™의 현재 버전을 갖는 것 이외에) 어떠한 특수 툴들도 소셜 로봇 애니메이션을 시뮬레이팅하도록 요구되지 않도록 WebGL로 기록될 수 있다. 이러한 시뮬레이션 뷰는 그 자체로 별개의 툴일 필요는 없으며; 대신, 그 시뮬레이션 뷰는, PCD 플랫폼의 호스트 및 다른 개발자들이 PCD 애니메이션들, 이를테면 다양한 스킬들의 애니메이션들을 생성 및 테스트하게 할 수 있을 툴들에 임베딩될 수 있는 뷰일 수 있다. 그것은, 개발자가 실시간으로 움직임 또는 애니메이션을 플레이 백하길 원할 때 또는 애니메이션을 순차적으로 "스텝 쓰루"함으로써 인보크될 수 있다. 따라서, 본원에서 제공된 것은 소셜 로봇의 거동을 시뮬레이팅하기 위한 시뮬레이션 툴이며, 여기서, 동일한 코드가 시뮬레이션, 및 소셜 로봇의 실제 실행에 대해 사용될 수 있다.[00416] The tools of the SDK may include a collection of presentation tools for managing the representations of the social robot. The core feature of the rendering tool suite is the simulation window. Referring to FIG. 24, an embodiment of a simulation window is illustrated, wherein the main view of both screen shots simulates the animation of the PCD 100. The top main view 2400 also simulates focus on the eye graphics. The upper left portion of each screen shot simulates screen graphics 2402 and 2402 '. These simulation views can be recorded in WebGL so that no special tools are required to simulate social robot animation (other than having a running browser, such as the current version of Chrome ™). This simulation view need not be a separate tool by itself; Instead, the simulation view can be a view that can be embedded in tools that will allow hosts and other developers of the PCD platform to create and test PCD animations, such as animations of various skills. It can be invoked when a developer wants to play a motion or animation in real time, or by "step-through" the animation sequentially. Thus, what is provided herein is a simulation tool for simulating the behavior of a social robot, wherein the same code can be used for simulation, and actual execution of the social robot.

[00417] 도 25를 참조로, 소셜 로봇 표현 툴 모음의 소셜 로봇 애니메이션 편집기의 예시적이며 비제한적인 실시예가 예시된다. 그러한 툴을 이용하여, 개발자는 하나 또는 그 초과의 소셜 로봇 움직임들, 스크린 그래픽들, 사운드들, 텍스트-대-스피치 액션들, 및 조명, 이를테면 LED 바디 조명 및 기능성으로 구성된 소셜 로봇 애니메이션을 함께 짜 맞출 수 있다. 도 25는 PCD(100)와 함께 사용을 위해 적응될 수 있는 타입의 종래의 애니메이션 편집기(2500)를 도시한다. 애니메이션 편집기의 핵심 특징들은 소셜 로봇 애니메이션들을 플레이 백하기 위한 시뮬레이션 윈도우(2502), 개발자/설계자가 어셋들(움직임들, 그래픽들, 사운드/TTS, LED 바디 조명, 또는 완료된 애니메이션들)을 타임라인에 배치시킬 수 있는 애니메이션 편집기(2504), 및 개발자/설계자는 타임라인으로의 포함을 위해 기존의 어셋들을 픽할 수 있는 어셋 라이브러리(2506)를 포함할 수 있다. 어셋들은 개발자의 하드 드라이브로부터 또는 PCD 스토어로부터 발생될 수 있다. 이것은, PCD(100)의 뷰, 스케일, 회전 등을 변경하기 위한 D3 뷰잉을 지원할 수 있다. 실시예들에서, 편집기는, PCD의 가상 환경을 확장할 수 있는, 이를테면 사람들을 시뮬레이팅하기 위한 아바타들을 갖거나, 사용자 인터페이스로부터 입력들을 수신하거나 등을 행할 수 있는 백그라운드들 또는 오브젝트들의 사용을 허용할 수 있다. 실시예들에서, 애니메이션 편집기는, 제어들을 반전시키고, 사용자들이 로봇을 포즈하고 그 포즈에 기반하여 키프레임들을 세팅하기 위한 인터페이스를 갖게 할 수 있는 모드를 가질 수 있다. 유사한 방식으로, 아이와 같은 스크린-기반 엘리먼트들, 오버레이 또는 백그라운드 엘리먼트를 애니메이팅하는 것은 터치 조작, 뒤이어 새로운 배향/변화들의 키프레이밍에 의해 행해질 수 있다. 이러한 접근법의 변형들이 또한 구체화될 수 있으며, 이를테면, 애니메이션들에 대한 커스텀 사운드 효과들(플레이스홀더 또는 최종)을 레코딩하기 위해 PCD(100)를 사용하는 것은 설계 스킬들의 창의적인 프로세스를 매우 가속화시킬 것이다. 실시예들에서, 툴은, 편집기가 연결되는 PCD(100) 상에서 직접 애니메이션 편집기를 통해 애니메이션들을 미리보는 것을 허용할 수 있다.[00417] Referring to FIG. 25, an illustrative, non-limiting embodiment of a social robot animation editor of the social robot presentation toolbar is illustrated. Using such a tool, a developer may combine social robot animations composed of one or more social robot movements, screen graphics, sounds, text-to-speech actions, and lighting, such as LED body lighting and functionality You can fit it. 25 shows a conventional animation editor 2500 of a type that may be adapted for use with the PCD 100. [ The core features of the animation editor include a simulation window 2502 for playing social robot animations, and a developer / designer accessing assets (movements, graphics, sound / TTS, LED body lighting, or completed animations) A deployable animation editor 2504, and a developer / designer may include an asset library 2506 that can pick up existing assets for inclusion in the timeline. Assets can be generated from the developer's hard drive or from the PCD store. This may support D3 viewing to change the view, scale, rotation, etc. of the PCD 100. [ In embodiments, the editor allows the use of backgrounds or objects that can extend the virtual environment of the PCD, such as having avatars for simulating people, receiving inputs from the user interface, etc., or the like can do. In embodiments, the animation editor may have a mode that can invert controls and allow users to have an interface to pose the robot and set key frames based on the pose. In a similar manner, animating screen-based elements, overlays or background elements such as a child can be done by touch manipulation followed by key framing of new orientations / changes. Variations of this approach can also be embodied, for example, using the PCD 100 to record custom sound effects (placeholders or final) for animations will greatly speed up the creative process of design skills. In embodiments, the tool may allow previewing the animations via the animation editor directly on the PCD 100 to which the editor is connected.

[00418] 실시예들에서, PCD 플랫폼의 호스트는 어셋들을 가져오고 새로운 어셋들을 생성하기 위한 능력을 지원할 수 있다. "가져오기" 및 "생성" 성능들은 본원에서 설명되는 다양한 어셋 타입들을 지원할 수 있다. 예컨대, 새로운 움직임을 생성하는 것은 소셜 로봇 애니메이션 움직임 툴을 론칭할 수 있는 반면, 새로운 TTS 어구들을 생성하는 것은 소셜 로봇의 말하는 툴을 론칭한다.[0048] In embodiments, the host of the PCD platform may support the ability to fetch assets and create new assets. The " import " and " generate " capabilities may support the various asset types described herein. For example, creating a new movement can launch a social robot animation movement tool, while creating new TTS phrases launches the talking tool of a social robot.

[00419] 새로운 LED 조명 스킴들을 생성하는 것은 다이얼로그 박스 또는 조명 툴을 통해 특정될 수 있다.[00419] Creating new LED lighting schemes may be specified through a dialog box or a lighting tool.

[00420] 실시예들에서, 하나 또는 그 초과의 툴들은 웹 애플리케이션, 이를테면 Chrome™ 웹 애플리케이션으로서 구체화될 수 있다. 실시예들에서, 정해진 툴은, 이를테면 고유한 파일 타입, 이를테면 .jba 또는 .anim 파일의 소셜 로봇 애니메이션 그 자체를 저장할 뿐만 아니라, 이를테면 .jbp 파일 타입의 소셜 로봇 애니메이션 프로젝트 파일로서 저장될 수 있다. PCD(100)가 새로운 능력들, 이를테면 지각 성능들, 물리적 성능들, 표현 성능들, 새로운 디바이스들(예컨대, 증강 현실 디바이스들)과의 연결성 등으로 진화되므로, 이러한 접근법은 새로운 툴들로 확장가능할 수 있다.[00420] In embodiments, one or more of the tools may be embodied as a web application, such as a Chrome ™ web application. In embodiments, the defined tool may not only store the social robot animation itself, such as a unique file type, such as a .jba or .anim file, but may also be stored as a social robot animation project file, such as a .jbp file type. Since the PCD 100 evolves with new capabilities such as perceptual capabilities, physical capabilities, presentation capabilities, connectivity with new devices (e.g., augmented reality devices), this approach can be extended to new tools have.

[00421] 도 26을 참조로, 이를테면, PCD 애니메이션 편집기(2500)로부터 "New...Animation"을 인보크함으로써 사용될 수 있는 PCD 애니메이션 편집기(2500)의 예시적이며 비제한적인 실시예가 예시된다. 자신의 코어에서, (이를테면, 로봇의 방사상 포지션 최하부, 중간 및 최상부 섹션들을 제어함으로써, 3 부분 로봇에서) 바디 포지션들을 특정하는 라디안 포지션들이 존재한다. 도 26에서, 한 세트의 슬라이더들(2602)은 움직임 포지션들을 제공하는 데 사용될 수 있다. 실시예들에서, 각각의 세트의 포지션들은 또한 타임-스탬핑될 수 있어서, 완전한 움직임이 시간/바디-포지션 값들의 어레이에 의해 정의된다. 나머지 슬라이더들은 아이 애니메이션에서 조인트들을 제어하기 위해 사용될 수 있다. 실시예들에서, 새로운 바디 애니메이션들을 생성하는 것으로부터 새로운 아이 애니메이션을 생성하는 것이 분리될 수 있다(이러한 실시예에서, 2개가 융합됨). 마지막으로, 툴은 또한 아이 그래픽의 룩(look)을 제어하기 위해 텍스처 파일의 가져오기를 지원할 수 있다. 툴은 터치 스크린과의 상호작용을 시뮬레이팅하는 것을 지원할 수 있다. 실시예들에서, 툴은 아이 외에 다양한 그래픽들, 이를테면 상호작용식 스토리 애니메이션들을 인에이블링할 수 있다.[00421] Referring to FIG. 26, an illustrative, non-limiting example of a PCD animation editor 2500 that may be used, for example, by invoking "New ... Animation" from a PCD animation editor 2500 is illustrated. In its core, there are radial positions that specify body positions (e.g., in a three-part robot by controlling the bottom, middle, and top sections of the radial position of the robot). In Fig. 26, a set of sliders 2602 can be used to provide movement positions. In embodiments, the positions of each set may also be time-stamped so that complete motion is defined by the array of time / body-position values. The remaining sliders can be used to control the joints in the eye animation. In embodiments, creating a new eye animation from creating new body animations can be separated (in this embodiment, two are merged). Finally, the tool can also support the import of texture files to control the eye graphics look. The tool can support simulating interaction with the touch screen. In embodiments, the tool may enable various graphics other than a child, such as interactive story animations.

[00422] PCD 시뮬레이터는 위의 참조된 시뮬레이션 윈도우를 포함할 뿐만 아니라, 센서리 입력을 주입하기 위한 인터페이스/콘솔을 가질 수 있다.[00422] The PCD simulator not only includes the above-referenced simulation window, but can also have an interface / console for injecting sensor input.

[00423] 실시예들에서, PCD(100)와 연관된 웹 포탈에 대한 키-기반 액세스는 개발자가 개발 및 테스팅을 위해 소셜 로봇 상에 스킬들을 설치하게 할 수 있다. PCD(100) 상의 웹 포탈은, 사용자가 PCD(100)와 계속해서 상호작용하는 동안에, PCD(100)의 스킬들의 런타임 디버깅을 위해 웹-기반 개발, 디버깅 및 가시화 툴들의 수집을 제공할 수 있다.[00423] In embodiments, key-based access to a web portal associated with PCD 100 may allow a developer to install skills on the social robot for development and testing. The web portal on the PCD 100 may provide a collection of web-based development, debugging and visualization tools for runtime debugging of the skills of the PCD 100 while the user continues interacting with the PCD 100 .

[00424] PCD(100)는 연관된 원격 저장 설비, 이를테면, PCD 클라우드를 가질 수 있고, 이는 그래픽들의 애니메이션, 바디 움직임, 사운드 및 표현에 대한 콘텐츠 생성을 지원하는 한 세트의 호스팅되는, 웹-기반 툴들 및 저장 성능들을 포함할 수 있다. 실시예들에서, PCD(100)는 다른 오프-보드 프로세싱, 이를테면, 스피치 인식 머신 학습, 내비게이션 등을 가질 수 있다. 이것은 거동 트리 라이브러리들을 사용하는 스킬들의 로직에 대한 거동 트리들의 생성을 위한 웹-기반 툴들뿐만 아니라 개발자 스킬들, 이를테면, 공통 정서 애니메이션들, 그래픽들 및 사운드들을 향상시키기 위한 "플러그-인" 콘텐츠의 라이브러리를 포함할 수 있다. 인터페이스는 다른 AP들, 이를테면, 홈 자동화 API들 등과 인터페이싱하기 위해 확장가능할 수 있다.The PCD 100 may have an associated remote storage facility, such as a PCD cloud, which includes a set of hosted, web-based tools that support content creation for animations, body movements, And storage capabilities. In embodiments, the PCD 100 may have other off-board processing, such as speech recognition machine learning, navigation, and the like. This includes not only web-based tools for generation of behavioral trees for the logic of skills using the behavior tree libraries, but also developer skills such as common emotion animations, " plug-in " Library. The interface may be extensible to interface with other APs, such as home automation APIs, and the like.

[00425] 본원에서 개시된 방법들 및 시스템들은 다양한 보안 고려사항들을 해결할 수 있다. 예컨대, 스킬들은 감각 플랫폼 자원들, 이를테면, 비디오 및 오디오 입력 스트림들에 액세스하기 위해 인가 토큰들을 요구할 수 있다. 스킬들은 소셜 로봇 스토어를 통해 디지털방식으로 서명된 "패키지들"로서 릴리즈될 수 있고, 설치 동안에 검증될 수 있다. 개발자들은 SDK의 일부로서 적용가능한 키들을 갖는 개개의 패키지를 획득할 수 있다.[00425] The methods and systems disclosed herein may address various security considerations. For example, the skills may require authorization tokens to access sensory platform resources, such as video and audio input streams. Skills can be released as digitally signed "packages" via the social robot store and verified during installation. Developers can obtain individual packages with applicable keys as part of the SDK.

[00426] 실시예들에서, PCD SDK, 종래의 웹 개발 툴들, 이를테면, HTML5, CSS, JS 및 WebGL뿐만 아니라 가시화를 위한 캔버스를 지원하면서, 간단한 브라우저, 이를테면, ChromeTM 브라우저에 의해 액세스될 수 있는 컴포넌트들을 포함할 수 있다. 실시예들에서, 개방 소스 버전의 브라우저, 이를테면, ChromeTM은 데스크톱 애플리케이션들을 구축하는 데 사용되고, 시뮬레이터 개발 환경 및 관련된 플러그인 위해 사용될 뿐만 아니라 PCD(100) 애플리케이션 런타임 동안에 사용될 수 있다. 이것은, 개발을 위해, 시뮬레이션 또는 런타임 사용이 통상적으로 최소의 수정으로 정규 브라우저들에서 실행될 수 있든지 아니든지 간에, PCD(100)가, 이를테면, 모바일 또는 PC 브라우저들 상에서 스킬들을 미리볼 수 있게 하기 위한 코드를 의미한다.[00426] In embodiments, a simple browser, such as a Web browser, which can be accessed by the Chrome TM browser, supports the PCD SDK, conventional web development tools such as HTML5, CSS, JS and WebGL as well as a canvas for visualization Components. In embodiments, an open source version of the browser, such as Chrome TM , is used to build desktop applications and may be used during the PCD 100 application runtime as well as for the simulator development environment and associated plug-ins. This allows the PCD 100 to preview the skills on mobile or PC browsers, for example, whether for simulation, or for runtime use, typically with minimal modification, to be performed in regular browsers &Lt; / RTI &gt;

[00427] 본원에서 설명되는 SDK는 다양한 어셋 타입들, 이를테면, 입력 문법들(이를테면, 프리-튜닝된 단어-스포팅 문법들을 포함함), 그래픽 자원들(이를테면, 소셜 로봇의 스크린 상에 디스플레이하기 위한 대중적인 그래픽 자원들); 사운드들(이를테면, PCD(100)의 스피커들 상에서 플레이하고, PCD(100)의 발화의 프로소디를 스컬춰링(sculpting)하고, 필터들을 보이스에 추가하기 위한 대중적인 사운드 자원들, 및 다른 사운드 효과들); 애니메이션들(이를테면, 조정된 애니메이션들에 패키징되는 움직임, 스크린 그래픽들, 사운드, 및 스피치의 대중적인 번들들); 및 거동 트리들(이를테면, 개발자들이 스킬들에 통합할 수 있는 대중적인 거동 트리 예들)을 지원할 수 있다.[0042] The SDK described herein may be used to display various asset types, such as input grammars (eg, including pre-tuned word-sporting grammars), graphics resources (such as for displaying on the screen of a social robot Popular graphics resources); (Such as playing on the speakers of the PCD 100, sculpting the prosody of the utterance of the PCD 100, adding popular sound resources to add filters to voices, and other sound effects field); Animations (such as popular bundles of movements, screen graphics, sound, and speech packaged in coordinated animations); And behavioral trees (e.g., popular behavior tree examples that developers can incorporate into their skills).

[00428] PCD SDK는 광범위한 센서리 입력 및 제어 성능들, 이를테면, 로컬 지각 공간에 관련된 성능들(이를테면, 실시간 3D 사람 추적, 보이스 및/또는 안면 인식 및 안면 감정 추정을 통한 사람 식별); 이미징(이를테면, 포토들의 스냅핑, 이미지들의 오버레이, 및 이미지 스트림들의 압축); 오디오 입력(이를테면, 오디오 소스들의 로케이팅, 오디오 빔의 방향의 선택, 및 오디오 스트림의 압축); 스피치 인식(이를테면, 스피커 식별, 어구의 인식 및 어구-스포팅 문법들의 사용, 이름 인식, 표준 스피치 인식, 및 커스텀 어구-스포팅 문법들의 사용); 터치(이를테면, 그래픽 엘리먼트 상의 얼굴 터칭의 검출 및 소셜 로봇의 헤드에 대한 터치들의 검출); 및 제어(이를테면, 단순화된 IFTTT, JavaScript를 갖는 복잡한 거동 트리들 또는 빌트-인 거동 라이브러리들의 사용)를 관리하는 것을 인에이블링할 수 있다.[00428] The PCD SDK provides a wide range of sensor input and control capabilities, such as performance related to the local perception space (such as real-time 3D person tracking, person identification through voice and / or facial recognition and facial emotion estimation); Imaging (e.g., snapping of photos, overlay of images, and compression of image streams); Audio input (e.g., locating audio sources, selecting the direction of the audio beam, and compressing the audio stream); Speech recognition (such as speaker identification, recognition of phrases and use of phrase-spotting grammars, use of name recognition, standard speech recognition, and custom phrase-spotting grammars); Touch (e.g., detection of face touches on graphic elements and detection of touches on the head of a social robot); And control (e.g., use of complex behavioral trees with built-in IFTTT, JavaScript, or built-in behavioral libraries).

[00429] PCD SDK는 또한 표현들의 출력 및 공유에 관련된, 이를테면, 움직임(이를테면, 소셜-로봇-생성 애니메이션들의 플레잉), 커스텀 애니메이션들의 저장, 커스텀 애니메이션들의 가져오기 및 프로그램에 따른 그리고 운동학적 애니메이션 구조); 사운드(이를테면, 소셜-생성 사운드들의 플레잉, 커스텀 사운드들의 가져오기, 커스텀 사운드들의 플레잉, 및 혼합(이를테면, 실시간) 또는 사운드들의 혼합); 스피치 출력(이를테면, 사전-레코딩된 보이스 세그먼트들의 플레이 백, 정확한 이름 발음의 지원, 텍스트-대-스피치를 사용하는 텍스트의 플레이 백, 커스텀 사전-레코딩된 보이스 세그먼트들의 통합 및 텍스트-대-스피치 감정적 주석들의 사용); 조명(이를테면, LED 라이트들의 제어); 그래픽들(이를테면, 소셜 로봇-생성 그래픽들의 실행 또는 커스텀 그래픽들의 가져오기); 개인화 또는 스킬의 공유(이를테면, 단일 계정 내의 디바이스들 상의 실행, 다른 디바이스들 상의 다른 개발자들과의 공유, 및 스킬 스토어로의 분산)에 관련된 다양한 성능들을 가질 수 있다.[00429] The PCD SDK may also be used in conjunction with the output and sharing of representations, such as motion (eg, playing social-robot-generated animations), storing custom animations, importing custom animations, ); Sound (e.g., playing social-generated sounds, fetching custom sounds, playing custom sounds, and mixing (e.g., real time) or a mix of sounds); Speech output (e.g., playback of pre-recorded voice segments, support for accurate name pronunciation, playback of text using text-to-speech, integration of custom pre-recorded voice segments, and text- Use of annotations); Illumination (e.g., control of LED lights); Graphics (e.g., execution of social robot-generated graphics or import of custom graphics); May have various capabilities related to personalization or sharing of skills (e.g., execution on devices within a single account, sharing with other developers on other devices, and distribution to the skill store).

[00430] 다양한 예시적이며 비제한적인 실시예들에 따라, IOT(Internet of Things) 디바이스들의 라이브 성능을 조정하기 위해 PCD(100)를 사용하기 위한 방법들 및 시스템들이 제공된다.[00430] In accordance with various exemplary, non-limiting embodiments, methods and systems are provided for using the PCD 100 to adjust the live performance of IOT (Internet of Things) devices.

[00431] 일부 실시예들에서, PCD(100)는 스피커들, 라이트들 등을 포함하는 IOT 디바이스들의 타입들 및 위치들을 자동적으로 발견할 수 있다. 그런 다음, PCD(100)는 라이브 뮤지컬 공연을 향상시키기 위해 라이트들 및 스피커들을 제어할 수 있다. PCD(100)는 또한, 이를테면, 외부 디바이스들, 이를테면, 뮤직 디바이스들, IOT 디바이스들 등의 세팅들 및 거동들을 개인화하기 위해, 사용자들의 선호도들이 무엇인지를 경험으로부터 학습할 수 있다.[00431] In some embodiments, the PCD 100 may automatically discover the types and locations of IOT devices including speakers, lights, and the like. The PCD 100 may then control the lights and speakers to enhance the live musical performance. The PCD 100 may also learn from experience that users preferences are to personalize settings and behaviors, such as external devices, such as music devices, IOT devices, and the like.

[00432] 비싸지 않은 IOT 디바이스들이 공통이 될 때, 그들을 엔터테이닝 방식들로 활용하는 것이 가능할 것이다. 공간 맵핑, 오브젝트 검출 및 오디오 검출과 함께, 뮤직, 비디오 및 다른 엔터테인먼트 미디어와 협력하여 이들 디바이스들을 제어하기 위해 PCD(100)가 이상적으로 장착된다. 잘 조정된 공연은 그의 청중을 기쁘게 할 것이다.[00432] When inexpensive IOT devices become common, it will be possible to utilize them as entertaining schemes. The PCD 100 is ideally equipped to control these devices in cooperation with music, video and other entertainment media, along with spatial mapping, object detection and audio detection. Well-tuned performances will please his audience.

[00433] 연극 및 라이브 뮤직 공연들을 향상시키도록 사운드 및 조명을 자동적으로 제어하기 위한 상업적 솔루션들이 존재한다. 가라오케 공연들을 향상시키기 위해 유사한 시스템들이 또한 사용된다. 기존 상업적 시스템들에서의 문제점은, 그들이 값비싸고 사운드 및 조명 디바이스들을 정확하게 구성하기 위한 전문지식을 요구한다는 것이다. 제어가능한 디바이스들은 일반적으로 구체적으로 극장 또는 강당 환경들을 위해 설계된다. 이들 시스템들 및 디바이스들은 홈들에서 발견되지 않는다.[00433] There are commercial solutions for automatically controlling sound and lighting to enhance theater and live music performances. Similar systems are also used to enhance karaoke performances. A problem with existing commercial systems is that they are expensive and require expertise to accurately configure sound and lighting devices. Controllable devices are typically designed specifically for theater or auditorium environments. These systems and devices are not found in homes.

[00434] 이를테면, 라이브 뮤지컬 공연을 향상시키기 위해, (1) 라이트들, 스피커들 등을 포함하는 IOT 디바이스들의 타입들 및 위치들을 자동적으로 발견하고, (2) 이들 라이트들, 스피커들 등을 제어할 수 있는 적절하게 프로그래밍된 PCD(100)가 본원에서 제공된다.[0043] For example, in order to improve live musical performance, it is necessary to (1) automatically find the types and locations of IOT devices including lights, speakers, etc., and (2) control these lights, A suitably programmed PCD 100 is provided herein.

[00435] IOT 라이트들 및 스피커들이, 이를테면, 주방 및 인접한 가족 룸에 설치된 홈에 있는 가족이 고려된다. 새로운 기술의 채택자들인 이러한 가족은 주방에 전개될 수 있는 개인 PCD(100)를 구매할 수 있다. 그의 셋업 절차의 일부로서, 소셜 로봇은 가족의 IOT 디바이스들의 타입들 및 위치들을 발견하고, 그들에 액세스하고 그들을 제어하기 위한 허가를 요청할 수 있다. 허가가 그랜트된 경우, PCD(100)는 대중적인 노래를 연주하도록 제시할 수 있다. 그런 다음, 소셜 로봇은 공연을 시작하기 위해 그 자신의 사운드 시스템 및 표현 물리적 애니메이션을 사용한다. 그런 다음, 가족을 기쁘게 하기 위해, 주방 및 가족 룸의 IOT 라이트들은 뮤직과 함께 고동치기 시작하여, 뮤지컬 이벤트들을 강조한다. 그런 다음, IOT 스피커들은 플레이하기 시작하여, 뮤직의 스테레오/공간 성질을 향상시킨다. [00435] IOT lights and speakers are considered, for example, families in the kitchen and in a home installed in an adjacent family room. This family of adopters of the new technology can purchase a personal PCD 100 that can be deployed in the kitchen. As part of his set-up procedure, the social robot can discover the types and locations of the family's IOT devices, request access to them and permission to control them. If the grant is granted, the PCD 100 may suggest to play a popular song. Then, the social robot uses its own sound system and expressive physical animation to start the performance. Then, to please the family, the IOT lights in the kitchen and family room start to beat with music, highlighting musical events. The IOT speakers then begin to play, improving the stereo / spatial nature of the music.

[00436] IOT 디바이스들과 뮤직(또는 다른) 공연을 조정하기 위한 능력은 PCD(100)의 인식되는 값을 향상시킨다. 이것은 또한 홈 외부에서 ad hoc 라이브 공연들을 자동적으로 세팅하고 향상시키는데 있어서 PCD(100)를 가치가 있게 할 수 있다.The ability to coordinate music (or other) performances with IOT devices improves the perceived value of the PCD 100. This can also make the PCD 100 valuable in automatically setting and enhancing ad hoc live performances outside the home.

[00437] 인간 참가자들 간의 미팅 또는 대화를 조정하기 위해 PCD(100)를 사용하기 위한 방법들 및 시스템들이 본원에서 제공된다. 그러한 실시예들에서, 적절히 설계된 PCD(100)는, 미팅들 및 대화들의 동적 및 유효성을 개선하기 위한 미팅 조정자로서 사용될 수 있다.[00437] Methods and systems for using the PCD 100 to coordinate meetings or conversations between human participants are provided herein. In such embodiments, a properly designed PCD 100 may be used as a meeting coordinator to improve the dynamic and effectiveness of meetings and conversations.

[00438] 미팅들은 종종 의도된 바와 같이 효과적이지 않고, 미팅들을 숙련되게 조정할 수 있는 개인들이 항상 이용가능하지는 않다. 차선의 미팅들에 기여하는 팩터들을 해결하기 위한 성공적인 시도들은 일반적으로 전문 조정가들의 전문화된 트레이닝 세션들 또는 활용의 형태를 취한다. 이들 접근법들은 효과적일 수 있지만, 그들은 값비싸다.[00438] Meetings are often not as effective as intended, and individuals who are able to skillfully adjust meetings are not always available. Successful attempts to solve the factors contributing to lane meetings generally take the form of specialized training sessions or utilization of professional coordinators. While these approaches may be effective, they are expensive.

[00439] 트레이닝되지 않은 개인들이 미팅들을 조정하기 위한 시도들은 종종 실패하는데, 왜냐하면 개인들이 피어들에 의해 제시된 명령 및 충고에 저항력이 있기 때문이다.[00439] Attempts by untrained individuals to reconcile meetings often fail because individuals are resistant to the orders and advice presented by the peers.

[00440] 종종, 미팅 또는 대화의 목표는, 참가자들이 미팅하는 동안에 아이디어들 및 견해들에 기여할 때, 아이디어들 및 견해들을 논의하는 것이다. 종종, 참가자들이 자유롭게 기여할 기회를 가질 것이라고 예상된다. 이들 목표들 및 예상들이 정해지면, 최적의 미팅 또는 대화는, 모든 참가자들에 의해 가치가 있고 관련된 기여들이 이루어지고 모든 중요한 아이디어들 및 견해들이 기여되는 것이다.[00440] Often, the goal of a meeting or conversation is to discuss ideas and opinions as participants contribute to ideas and opinions during the meeting. Often, participants are expected to have the opportunity to contribute freely. Once these goals and expectations are determined, the optimal meeting or conversation is worthy of all participants, the relevant contributions made, and all the important ideas and views contributed.

[00441] 다수의 인간 팩터들은 미팅의 성공을 제한할 수 있다. 예컨대, 개인들이 항상 미팅의 목표들 및 예상들에 커미팅되지는(committed) 않다. 또한, 개인들 간의 다이나믹은 미팅의 목표들 및 예상들과 항상 정렬되지는 않는다. 때때로, 미팅의 참가자들의 의도는 미팅의 목표들에 명시적으로 반대된다. 예컨대, 상호 논의를 촉진시키도록 의도된 미팅은, 목표가 논의를 특정 방향으로 조종하는 것인 참가자에 의해 장악될 수 있다. 다른 경우들에서, 개인들 간의 동력학은 적대적일 수 있어서, 논의가 의도된 주제보다는 동력학에 포커싱하게 한다. 의도치 않은 방해는 또한 미팅의 성공을 최소화할 수 있다. 예컨대, 수다스럽고 표현력이 있는 참가자는 무심코 논의를 독점하고, 다른 것들이 자유롭게 기여하는 것을 방지할 수 있다.[00441] Multiple human factors may limit the success of the meeting. For example, individuals are not always committed to meeting goals and expectations. Also, the dynamics between individuals are not always aligned with the goals and expectations of the meeting. Sometimes, the intentions of the participants in the meeting are explicitly opposed to the goals of the meeting. For example, a meeting intended to promote mutual discussion can be captured by a participant whose goal is to manipulate the discussion in a particular direction. In other cases, dynamics among individuals can be hostile, allowing the discussion to focus on dynamics rather than the intended subject. Unintentional interference can also minimize the success of the meeting. For example, a controversial and expressive participant may unknowingly monopolize discussion and prevent others from freely contributing.

[00442] 이들 제한 팩터들로 인해, (대부분은 아니지만) 많은 미팅들은 차선이다. 비지니스 세팅에서, 차선의, 비효율적인 미팅들이 자원들의 값비싼 낭비일 수 있다. 가족에서, 차선의 대화들은 불운한 손실된 기회일 수 있다.[00442] Due to these limiting factors, many (but not most) meetings are lanes. In business settings, lane, inefficient meetings can be a costly waste of resources. In the family, lane conversations can be an unfortunate lost opportunity.

[00443] 위에 언급된 문제점은 타고난 인간 성향들의 결과이고, 이를 해결하고 정정하기 것이 너무 없기 때문에, 문제점이 지속된다. 개인들의 통상적인 교육 동안, 읽기, 쓰기, 산술, 과학, 미술, 뮤직, 비지니스 등을 위한 명령에 상당한 시간이 소비된다. 그러나, 거의 또는 아예 명백하지 않은 명령은 대화 콜라보레이션 또는 설득(수사법)과 같은 중요한 스킬들에 제공된다. 이로 인해, 일반적으로 콜라보레이션, 및 특히 미팅들의 유효성을 상당히 개선할 기회가 있다.[00443] The problem mentioned above is the result of innate human tendencies, and the problem persists because there is not much to solve and correct. Significant time is spent in commands for reading, writing, arithmetic, science, art, music, business, etc. during the normal education of individuals. However, commands that are hardly or completely unambiguous are provided to important skills such as conversation collaboration or persuasion. As a result, there is generally an opportunity to significantly improve the effectiveness of collaborations, and in particular meetings.

[00444] 연구는, 인간들이 다른 인간으로부터보다는 소셜 로봇으로부터 명령 및 충고를 더 기꺼이 수용하고 따른다는 것을 드러낸다. 소셜 로봇은 미팅들에 대한 공정하고, 도덕적 판단이 아닌 전문 조정자로서 동작할 수 있다. PCD의 바이오메트릭 인식 성능은 PCD가 미팅의 각각의 개인에 의한 참가도를 정확하게 추적하고 측정하게 할 수 있다. 이러한 정보는 참가의 실시간 히스토그램으로서 제공될 수 있다. 히스토그램은 개인 당 발화 시간; 개인들 간의 전후; 각각의 개인에 의해 프로젝팅된 톤(포지티브/네거티브); 공손함; 관용적 표현들(포지티브 및 네거티브, 격려 및 비판, 무감각); 문화적 실례; 개인들의 감정 상태(정서적인 분석); 시간에 따른 전체 에너지; 및 논의되는 토픽들 및 서브토픽들을 포함할 수 있다.[00444] Studies reveal that humans are more willing to accept and follow orders and advice from social robots than from other humans. The social robot can act as a professional coordinator, not a fair, moral judgment of the meetings. The biometric recognition performance of the PCD allows the PCD to accurately track and measure participation by each individual of the meeting. This information can be provided as a real-time histogram of participation. The histogram is the speech time per person; Post-war between individuals; Tones projected by each individual (positive / negative); Politeness; Idiomatic expressions (positive and negative, encouragement and criticism, numbness); Cultural examples; Emotional state of the individual (emotional analysis); Total energy over time; And topics discussed and subtopics.

[00445] 미팅하는 동안 전반에 걸쳐, PCD(100)는 언어적 콘텐츠를 기록하고 그리고 논의를 캡처하고 미팅의 유효성을 평가하는 것 둘 모두를 위해 객관적 툴을 제공하기 위해 이를 사회적 측정들과 상관시킬 수 있다.[00445] Throughout the meeting, the PCD 100 correlates it with the social measures to record the linguistic content and to provide an objective tool for both capturing the discussion and evaluating the validity of the meeting .

[00446] PCD(100)는 미팅을 추적하기 위해 미팅 동안 끼어들을 수 있는 관련 임계치들로 구성될 수 있다. 예컨대, 로봇은 다음과 같은 때에 끼어들 수 있다: 누군가가 너무 많이 이야기할 때; 톤이 너무 네거티브일 때; 부적절한 관용 표현들이 사용될 때; 무감각이 검출될 때; 전체 에너지가 너무 낮을 때; 및/또는 본질적 토픽들이 처리되지 않을 때.[00446] The PCD 100 may be configured with associated thresholds that can be interrupted during a meeting to track the meeting. For example, a robot can interfere when: someone is talking too much; When the tone is too negative; When inappropriate idiomatic expressions are used; When an anesthesia is detected; When the total energy is too low; And / or when the essential topics are not processed.

[00447] 공정한 미팅 조정자 및 소셜 미러링 둘 다로서의 능력에서, PCD(100)는 참가자들이 2개의 중요한 목표들을 달성하게 도울 수 있다: 즉 미팅들을 더 효율적으로 수행하고 협력과 대화를 더 효과적으로 학습하는 것.[0044] In its ability as both a fair meeting coordinator and social mirroring, the PCD 100 can help participants achieve two important goals: better meeting performance and more effective learning and collaboration and dialogue .

[00448] 예컨대, 미팅은 기술이 전개될 수 있는 환경이다. 미팅 참가자들은 다양한 통신 스타일들을 가진 다양한 분야들의 전문가들을 포함할 수 있다. 미팅이 수다스러운 참가자에 의해 지배되는 경우에, PCD 조정자는 모든 참가자들의 상대적인 발화 시간을 나타내는 실시간 히스토그램(적합한 디스플레이 상에 디스플레이됨)을 (비-판단 방식으로) 제시할 수 있다. 부가적으로, 부적절한 표현들이 사용되는 경우, 소셜 로봇은 이를테면 히스토그램을 통해, 참가자들에게 이들 표현들을 (판단 없이) 나타낼 수 있다. 미팅의 에너지 및 톤은 또한 실시간으로 측정되고 추적되며 이전, 효과적인 미팅들과 비교될 수 있다. 학습하는 기회로서, 효과적인 미팅과 비효과적인 미팅 둘 다는 PCD(100)에 의해 수집된 통계를 사용하여 비교될 수 있다.[00448] For example, a meeting is an environment in which technology can be deployed. Meeting participants can include experts from diverse disciplines with diverse communication styles. If the meeting is dominated by a chatty participant, the PCD coordinator can present (in a non-judgmental manner) a real-time histogram (displayed on the appropriate display) that represents the relative firing time of all participants. Additionally, if inappropriate expressions are used, the social robot can display these expressions (without judgment) to the participants, such as through a histogram. The energy and tone of the meeting can also be measured and tracked in real time and compared to previous, effective meetings. As an opportunity to learn, both effective meetings and ineffective meetings can be compared using statistics collected by the PCD 100.

[00449] 따라서, 소셜 로봇, 이를테면 PCD(100)는 미팅들의 조정자로서, 관련 정보를 레코딩 및 디스플레이하고, 그리고 미팅들의 유효성 및 동력학을 개선하고, 이는 증가된 생산성 및 자원의 더 나은 사용으로 변환될 수 있다.[00449] Thus, the social robot, such as the PCD 100, is the coordinator of meetings, recording and displaying relevant information, and improving the validity and dynamics of meetings, which translates into increased productivity and better use of resources .

[00450] 또한 본원에는 인증된 인간 아이덴티티들 및 네트워크화된 모바일 디바이스들 중에서 정보를 분산시키기 위해 로봇 에이전트들의 네트워크를 조직하기 위한 방법들 및 시스템들이 제공된다.[00450] Also provided herein are methods and systems for organizing a network of robotic agents to distribute information among authenticated human identities and networked mobile devices.

[00451] 통신 채널들의 수 및 다양성이 증가함에 따라, 메시지 전송자들과 수신자들이 경쟁해야 하는 "노이즈"도 증가한다. 부가적으로, 새로운 채널들은 종종 특정 모드의 메시지 전달을 전문으로 한다. 결과는, 메시지 전송자가, 메시지 전달의 가능성 및 유효성을 최대화하기 위해 어느 채널을 사용할지를 판정해야 하는 것이다. 마찬가지로, 메시지 수신자는 시기 적절하게 메시지들을 수신하기 위해 어느 채널(들)을 "시청"할지를 판정하해야 한다. 이들 판정들은 점점더 어렵게 된다.[00451] As the number and variety of communication channels increase, the "noise" that message senders and receivers compete with increases. In addition, new channels often specialize in message delivery in certain modes. The result is that the message sender must determine which channel to use to maximize the likelihood and validity of message delivery. Likewise, the message recipient must determine which channel (s) to "watch" to receive messages in a timely manner. These decisions become increasingly difficult.

[00452] 오늘날, 다수의 이메일 계정들로부터의 메시지들은 메일-판독 프로그램들에 의해 자동적으로 통합되고, 이는 다수의 이메일 채널들을 동시적으로 모니터링하는 것을 가능하게 한다. 마찬가지로, 모바일 디바이스들은 통합된 방식으로 다수의 채널들로부터 텍스트 메시지들을 제공할 수 있다. 그러나, 메시지 통합은 "노이즈" 문제점을 해결하지 못한다. 이는, 동일한 모드로 모두 제공되는 메시지들로 수신자에게 충격을 줌으로써 문제점이 더 악화되게 할 수 있다.[00452] Today, messages from multiple email accounts are automatically integrated by mail-reading programs, which enables simultaneous monitoring of multiple email channels. Similarly, mobile devices can provide text messages from multiple channels in an integrated manner. However, message aggregation does not address the " noise " problem. This can make the problem worse by impacting the recipient with messages that are all provided in the same mode.

[00453] 소셜 로봇들은, 커맨드 관심에 대한 그들의 능력 때문에 그리고 인간들이 인간형 통신에 할당하는 중요성 때문에, 메시지 통신에서 고유한 역할을 플레이할 수 있다. 소셜 로봇이 메시지를 수신자에게 전달하기 위한 채널로서 사용될 때, 전달 모드는 소셜 로봇에 의해 자동적으로 선정될 수 있어서, 메시지는 수신자에 의한 최적 관심 정도를 수신한다.[00453] Social robots can play a unique role in message communication because of their ability to command attention and because of the importance that humans assign to humanoid communications. When a social robot is used as a channel for delivering a message to a recipient, the delivery mode can be automatically selected by the social robot, so that the message receives the optimal degree of interest by the recipient.

[00454] 이것은 소셜 로봇들에 고유한 몇몇 특징을 사용하여 달성될 수 있다: (1) 소셜 로봇의 물리적 존재는 인간들이 타고나게 조율을 이룬 표현 큐들로 관심을 끌게 할 수 있다, 즉 모션, 응시 방향, "바디 언어"; (2) 바이오메트릭 인식 성능을 가진 소셜 로봇은 메시지의 의도된 수신자가 물리적으로 존재할 때를 검출하고 가장 효과적인 물리적 큐들을 가진 그 수신자를 프롬프팅할 수 있다; 그리고 (3) 소셜 로봇에 의해 사용되는 학습하는 알고리즘들은 메시지를 어떻게 효과적으로 전달할지에 관한 최적 판정을 하기 위해 메시지 콘텐츠, 시츄에이션 콘텍스트 및 거동 히스토리를 사용할 수 있다.[00454] This can be accomplished using several features unique to social robots: (1) The physical presence of social robots can attract humans into expression cues that are tuned to ride, ie, Direction, "body language"; (2) A social robot with biometric recognition capability can detect when an intended recipient of a message is physically present and prompt the recipient with the most effective physical cues; And (3) learning algorithms used by social robots can use message content, context context, and behavior history to make optimal decisions about how to effectively deliver the message.

[00455] 네트워크화된 소셜 로봇들, 이를테면 PCD(100)뿐 아니라, 다른 디바이스들, 이를테면 모바일 디바이스들 및 다른 네트워크-연결된 디바이스들은 본원에서 개시된 방법들 및 시스템들에 사용될 수 있다. 개개의 소셜 로봇에 의해 제공된 메시지-전달 장점들은, 다수의 네트워크화된 소셜 로봇들이 사용되는 로봇들일 때 증폭된다. 가정 세팅에서, 다수의 PCD들(하우스의 룸들/존들 중에서 분산됨)은 그들의 메시지-전달 노력들을 조정할 수 있다. 가정 전반에 걸쳐 다수의 PCD들의 물리적 존재는 메시지들이 로봇들에 의해 전달될 수 있는 윈도우를 증가시킨다. PCD들의 네트워크는 가정 전반에 걸쳐 의도된 수신자의 소재들을 추적하기 위해 그들의 공유된 바이오메트릭 인식 성능들을 사용할 수 있다. PCD들의 네트워크에 의해 사용되는 학습하는 알고리즘들은, 어느 PCD 에이전트가 메시지를 가장 효과적으로 전달할 수 있는지를 결정하기 위해 수신자 움직임 및 거동에 관한 예측 모델들을 생성할 수 있다.[00455] Networked social robots, such as PCD 100, as well as other devices such as mobile devices and other network-connected devices can be used in the methods and systems disclosed herein. The message-passing advantages provided by individual social robots are amplified when robots are used with multiple networked social robots. In the home setting, multiple PCDs (distributed among the rooms / zones of a house) can coordinate their message-transfer efforts. The physical presence of multiple PCDs throughout the home increases the window over which messages can be delivered by robots. The network of PCDs may use their shared biometric recognition capabilities to track the intended recipient's subjects throughout the home. The learning algorithms used by the network of PCDs can generate predictive models of receiver behavior and behavior to determine which PCD agent can most effectively deliver the message.

[00456] 이런 동일한 동력학은 임의의 물리적 위치에 적용될 수 있고 그리고 비지니스들, 박물관들, 라이브러리들 등에 적용될 수 있다.[0045] This same kinetics can be applied to any physical location and can be applied to businesses, museums, libraries, and the like.

[00457] PCD들의 네트워크에서 로봇들의 물리적 형태들은 변화할 수 있다. 네트워크는운송수단의 대시보드에 임베딩되고, 냉장고 같은 기기에 임베딩되는 등의 정지, 모바일, 이동, 롤링(roll) 가능, 비행가능한 PCD들로 이루어질 수 있다.[00457] The physical forms of the robots in the network of PCDs may vary. The network may consist of stationary, mobile, mobile, rollable, and flightable PCDs embedded in a dashboard of the vehicle and embedded in a device such as a refrigerator.

[00458] 게다가, PCD의 "브레인"(이의 소프트웨어, 로직, 학습하는 알고리즘들, 메모리 등)은 다양한 디바이스들에 걸쳐 복제될 수 있고, 이들 중 일부는 물리적 표현 바디들을 가지며, 이들 중 일부는, PCD(100) 소프트웨어가 모바일 폰 또는 태블릿(모바일 디바이스에 복제됨)에서 구체화되는 경우에서와 같이 물리적 표현 바디들을 가지지 않는다.In addition, the "brain" (its software, logic, learning algorithms, memory, etc.) of the PCD can be replicated across various devices, some of which have physical representation bodies, Does not have physical representation bodies as in the case where the PCD 100 software is embodied in a mobile phone or tablet (copied to the mobile device).

[00459] PCD의 소프트웨어가 모바일 디바이스에 복제될 때, 그 디바이스는 소셜 로봇 네트워크의 완전히 협력적이고, 완전히 인지되는 멤버로서뿐 아니라, 사회적 및/또는 기술적 네트워크 내의 인간들로서 동작할 수 있다. 물리적으로 제약된 PCD 인스턴스가 메시지들을 전달하는 태스크에 기여할 수 있는 정도는, 소유하는 기능성에 의존하는데, 즉 통상적인 스마트폰에서 구체화되는 PCD 소프트웨어는 종종 바이오메트릭 인식, 카메라 감시, 스피치 인식, 및 심지어 온-스크린 렌더링에 의한 시뮬레이팅된 물리적 표현을 제공할 수 있을 것이다.When the software of the PCD is copied to the mobile device, the device may operate as a human being in a social and / or technical network as well as a fully collaborative, fully recognized member of the social robot network. The degree to which a physically constrained PCD instance can contribute to the task of delivering the messages depends on the functionality it possesses, i.e. PCD software embodied in a typical smartphone is often used for biometric recognition, camera surveillance, speech recognition, And provide simulated physical representation by on-screen rendering.

[00460] 스마트폰 제약 PCD 인스턴스는 일반적으로 완전히 형성된 메시지들에 기여할 수 있고, 이어서 이런 메시지들은 네트워크 내의 다른 제약되지 않은 PCD들에 의해 전달될 수 있다.[00460] A smartphone constrained PCD instance can generally contribute to fully formed messages, which in turn can be delivered by other unconstrained PCDs in the network.

[00461] PCD 인스턴스들의 네트워크에서, 각각의 인스턴스는 완전히 독립적인 기여자로서 동작할 수 있다. 그러나, 임의의 정해진 인스턴스는 또한 네트워크 상의 다른 PCD 인스턴스에 대한 원격 인터페이스(원격 제어부)로서 동작할 수 있다. 이런 원격 인터페이스 모드는 간헐적으로 액티브일 수 있거나, 또는 인스턴스는, 제약되지 않은 인스턴스에 원격 액세스를 제공하는 특정 목적을 위해 PCD 소프트웨어가 스마트폰 또는 스마트워치에 구체화되는 경우에서와 같이 다른 인스턴스에 대한 원격 인터페이스로서 동작하도록 영구적으로 구성될 수 있다.[00461] In the network of PCD instances, each instance may operate as a fully independent contributor. However, any given instance may also act as a remote interface (remote control) to another PCD instance on the network. This remote interface mode may be active intermittently, or the instance may be remotely remote to another instance, such as when the PCD software is embodied in a smartphone or smart watch for a specific purpose of providing remote access to the unconstrained instance May be permanently configured to operate as an interface.

[00462] 실시예들에서, 가족 홈 세팅에서, 메시지는 주방에서 제약되지 않은(전체-피처링된) 로봇 유닛을 사용하여 페어런츠에 의해 생성될 수 있다. 페어런츠는 PCD(100)와 말함으로써 메시지를 생성할 수 있다. [00462] In embodiments, in the family home setting, the message may be generated by the parent using the unrestricted (fully-featured) robot unit in the kitchen. The parent can generate a message by talking to the PCD 100.

[00463] 메시지는 오디오/비디오 레코딩으로서 그리고 텍스트 트랜스크립트(transcript)로서, 이를테면 스피치-대-텍스트 기술로부터 캡처되고, 그리고 TTS(텍스트-대-스피치)를 통해 전달될 수 있다. 전달은 향후, 이를테면 방과 후 같이 일부 시간에 스케줄링된다. 의도된 수신자, 십대는 현재 집에 없을 수 있지만, 의도된 전달 시간에 도달할 수 있다. 이 예에서, 십대는 방과 후에 집에 오지만, 주방에 진입하지 않는다. 차고 입구 벽에 임베딩된 태블릿-구체화된 로봇 유닛은 그녀가 도달할 때 십대를 인식할 수 있다. 태블릿-구체화된 유닛이 주방 로봇 유닛, 이층방 로봇 유닛, 및 십대의 아이포드-구체화된 유닛과 네트워크화되기 때문에, 모두 4개의 유닛들은 시기 적절하게 메시지를 전달하도록 협력한다. 이런 종류의 메시지에 대해, 바람직한 전달 모드는 제약되지 않은 로봇 유닛을 통해 이루어지므로, 태블릿 유닛만이, 메시지가 대기 중인 것을 언급한다. "Hi, [teenager], you have a message waiting. 십대는 주방 및 이층 로봇 유닛들을 우회하여 그녀의 룸으로 진행할 수 있다. 전달 시간에 도달할 때, 로봇 유닛들의 네트워크는, 십대가 제약되지 않은 로봇 유닛에 근접하게 있지 않기 때문에, 메시지를 전달하기 위한 다음 최선의 방식이 십대의 아이포드-구체화된 유닛을 통해서라는 것을 결정할 수 있다. 결과적으로, 아이포드 유닛은 경고 톤을 사운딩하고 메시지("Hey, [teenager)]. There is a brownie waiting for you in the kitchen"를 전달한다. 십대가 마지막으로 주방에 진입할 때, 주방 로봇 유닛은 이미, 메시지("Hi, [teenager]. If you ready for that brownie, it’s in the toaster oven")가 전달되었다는 것을 인지하고 단지 공손한 리마인더만을 제공한다. PCD(100)는 또한, "Carol, Jim left a message for you. Something about picking up the kids from soccer today" 같이 메시지의 콘텐츠와, 누구인지를 요약할 수 있다. 이것은 메시지를 청취할 때(즉, 또는 다소 나중에) Carol이 판정하게 도울 수 있다.[00463] The message can be captured as an audio / video recording and as a text transcript, such as from a speech-to-text technique, and delivered via TTS (text-to-speech). Delivery is scheduled at some time in the future, such as after school. The intended recipient, teenager, may not be present at home, but can reach the intended delivery time. In this example, a teenager comes home after school, but does not enter the kitchen. A tablet-embodied robot unit embedded in the garage entrance wall can recognize teens when she arrives. Since the tablet-specific unit is networked with the kitchen robot unit, the two-story room robot unit, and the teen's iPod-specific unit, all four units cooperate to deliver the message in a timely manner. For this type of message, the preferred delivery mode is via an unrestricted robot unit, so only the tablet unit mentions that the message is pending. When reaching the time of delivery, the network of robotic units will move to the room where the teen is unrestricted, It is possible to determine that the next best way to deliver the message is through the teen's iPod-specific unit, since the iPod unit is not in proximity to the unit. As a result, the iPod unit sounds a warning tone, [teenager]. "When a teenager enters the kitchen for the last time, the kitchen robot unit already has a message (" Hi, [teenager]. If you ready for that brownie, it's in the toaster oven ") has been delivered and provides only a polite reminder. PCD 100 also provides " Carol, Jim left a message for you. You can summarize the content of the message and who it is, such as "Something about picking up the kids from soccer today." This can help Carol decide when you listen to the message (ie, or somewhat later).

[00464] 따라서, 소셜 로봇들의 네트워크는 (이를테면 PCD(100)와 연관된 모바일 디바이스 간의 링크에 기반하여) 바이오메트릭 인식, 추적, 물리적 존재, 비언어적 및/또는 소셜 큐들, 및 그렇지 않으면 다수의, 복잡한 메시지 채널들의 노이즈에서 손실될 메시지들을 전달하기 위한 액티브 프롬프팅을 사용할 수 있다.[00464] Thus, the network of social robots may include biometric recognition, tracking, physical presence, non-verbal and / or social cues, and otherwise multiple, complex messages (eg, based on links between mobile devices associated with PCD 100) You can use active prompting to deliver messages that will be lost in the noise of the channels.

[00465] 다른 실시예들에서, 큰소리로 플레이되는 비디오 게임들을 큰소리로 플레이하거나 TV를 청취하는 것은, 오디오가 기분을 좋게 한다는 점에서 상이한 취향들을 가진 근처의 다른 사람들에게 매우 성가시게 할 수 있다. 부가적으로, 많은 가족들은 다른 가족들보다 나중까지 머무르는 멤버들을 가질 수 있다.[00465] In other embodiments, playing loudly video games or listening to a TV may be very annoying to others nearby with different tastes in that the audio is pleasant. In addition, many families may have members who stay later than other families.

[00466] 제안된 솔루션은, 청취자들이 소셜 로봇으로부터 무선으로 오디오를 수신하는 헤드폰들을 사용하는 방식을 지원하여, 단지 그 청취자만이 듣고 타협 없이 그들이 원하는 만큼 크게 자유롭게 듣는 것이다. 변형들은 블루투스 헤드폰들, 헤드폰들 번들, 유선 헤드폰들(이를테면 로컬 Wi-Fi 또는 블루투스를 사용함)을 가진 모바일 수신기 등을 포함할 수 있다.[00466] The proposed solution supports the way in which listeners use headphones to receive audio wirelessly from social robots, listening only to the listener and listening to them as freely as they want without compromise. Variants may include Bluetooth headphones, headphone bundles, mobile receivers with wired headphones (e.g., using local Wi-Fi or Bluetooth), and the like.

[00467] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 대중적인 스마트폰들 상의 개인 보조자의 성능들과 유사한 리마인더 성능들을 가질 수 있다. 예: "At 3pm on December 5th, remind me to buy an anniversary gift" "OK, I'll remind you". 리마인더들은 약 리마인더들 같은 것들을 지원하기 위해 반복적일 수 있다. 사용자들은 오디오 또는 비디오 레코딩으로서 리마인더를 생성하기 위한 옵션을 가질 수 있고, 그런 경우 PCD(100)는 레코딩의 시작들에서 프롬프팅할 필요가 있을 수 있다. PCD(100)는, 메시지가 생성된 후에 요약할 수 있다(예컨대, "OK, I'm going to remind John tomorrow when I see him [play audio]"). 리마인더는 단지, 시간이 특정된 특수 형태의 PCD Jot(PCD Jo)이다.[00467] In accordance with exemplary, non-limiting embodiments, the PCD 100 may have reminder capabilities similar to the capabilities of a personal assistant on popular smartphones. Example: "At 3pm on December 5th, remind me to buy an anniversary gift" "OK, I'll remind you". Reminders can be iterative to support things like reminders. Users may have the option to create a reminder as an audio or video recording, in which case the PCD 100 may need to prompt at the beginning of the recording. PCD 100 may summarize after the message is generated (e.g., "OK, I'm going to remind John tomorrow when I see him [play audio]"). The reminder is simply a special type of time-specific PCD Jot (PCD Jo).

[00468] PCD(100)는 물건들에 관한 가족 내의 알려진 사람들(동일한 리마인더에 대해 하나 또는 그 초과)을 리마인드할 수 있을 수 있다. 예컨대, "When you see Suzie, remind her to do her homework" or "At 6pm, remind Dad and Mom to pick me up from soccer practice"일 때, 리마이더가 정해진 경우, 리마인더의 발신자는, 자신이 소셜 로봇 링크 디바이스를 가지면 소셜 로봇 PCD 링크에 통지되어야 한다. 리마인더는 단지, 시간이 특수 형태의 특정된 PCD Jot(PCD Jot)이다. 실시예들에서, 링크는 PCD(100)와 모바일 디바이스 간에 있을 수 있다.[00468] PCD 100 may be able to remind people in the family about the things (one or more for the same reminder). For example, when the reminder is set when "When you see Suzie, remind her to do her homework" or "At 6pm, remind Dad and Mom to pick me up from soccer practice," the sender of the reminder, If you have a robot link device, you must be notified of the social robot PCD link. Reminders are simply a specific type of PCD Jot (PCD Jot) in time. In embodiments, the link may be between the PCD 100 and the mobile device.

[00469] 타겟 사람이 없기 때문에 PCD(100)가 리마인더를 전달할 수 없는 경우, 리마인더는 타겟 소셜 로봇 링크 디바이스(들)에 나타날 수 있다. 타겟에 할당된 소셜 로봇 링크 디바이스가 없는 경우, PCD(100)는, 타겟 사람을 보자마자 메시지를 디스플레이할 수 있다.[00469] If the PCD 100 can not deliver a reminder because there is no target person, a reminder may appear on the target social robot link device (s). If there is no social robot link device assigned to the target, the PCD 100 may display the message as soon as the target person is seen.

[00470] 예시적이며 비제한적인 실시예들에 따라, PCD(100)는 짧은 텍스트 메시지들 또는 오디오/시각적 레코딩들을 본원에서 "Jots"로 지칭되는 디렉토리 내의 다른 PCD들로 전송하도록 할 수 있다. PCD Jot는 편집가능할 수 있고, 그리고 PCD Jot(PCD Jot) 레코딩은 전송 전에 플레이 백하고 재-레코딩할 수 있을 수 있다. PCD(100)는, PCD Jot(PCD Jot)가 성공적으로 전송된 것을 전송자들에게 확인할 수 있다. PCD(100)는 가정의 각각의 멤버에 대해 "전송된" Jots 폴더를 유지할 수 있고, 이는 메시지마다 브라우징되고 삭제될 수 있다. 전송된 Jots는 PCD 링크 또는 PCD(100) 상에서 뷰잉가능하고 그리고/또는 편집가능할 수 있다.[00470] According to illustrative, non-limiting embodiments, the PCD 100 may cause short text messages or audio / visual recordings to be transmitted to other PCDs in the directory referred to herein as "Jots". The PCD Jot can be editable, and the PCD Jot (PCD Jot) recording can be played back and re-recorded before transmission. The PCD 100 can confirm to the senders that the PCD Jot (PCD Jot) has been successfully transmitted. The PCD 100 may maintain a " transferred " Jots folder for each member of the home, which may be browsed and deleted per message. The transmitted jots may be viewable and / or editable on the PCD link or PCD 100.

[00471] PCD는 이를테면 메시지들에 생명을 부여하거나 메시지들의 라이브니스를 향상시키기 위해 스크린-기반 디바이스들에서 사용되는 이모티콘들과 유사한, 본원에서 "로보티콘들"로 지칭되는 PCD 애니메이션들의 리스트를 유지할 수 있다. 예들은 "hello"를 나타내는 귀여운 윙크 또는 "uh-oh"를 나타내는 "o0"을 포함할 수 있다. 소셜 로보티콘들은 정교할 수 있고, 특정한 전문화된 라이브러리들이 PCD 스킬들 스토어 상에서의 구매를 위해 이용가능할 수 있다. 일부 PCD 로보티콘들은 독립형 애니메이션 표현들일 수 있다. 다른 것들은 사용자 비디오 이미지/메시지의 통합을 수용할 수 있다. PCD 로보티콘들은 PCD들의 표현 성능들(LED, 비피티 붑들, 또는 다른 사운드들 또는 사운드 효과들, 애니메이션 등) 중 임의의 것을 포함할 수 있다.[00471] The PCD maintains a list of PCD animations, referred to herein as "robotics", similar to emoticons used in screen-based devices, for example, to give life to messages or enhance the liveness of messages . Examples may include a cute wink representing "hello" or "o0" representing "uh-oh". The social robotics can be elaborate, and certain specialized libraries may be available for purchase on the PCD skills store. Some PCD robotics can be standalone animated representations. Others may accommodate the integration of user video images / messages. The PCD robotic icons may include any of the presentation capabilities of the PCDs (LEDs, non-peptides, or other sounds or sound effects, animation, etc.).

[00472] 사용자가 이를테면 PCT의 "스냅" 모드에 의해 캡처된 포토를 전송하도록 선택한 경우, PCD Jot 성능들은 포토에 첨부하도록 이용가능할 수 있다.[00472] PCD Jot capabilities may be available to attach to a port if the user has selected to transmit a photo captured by, for example, the "snap" mode of the PCT.

[00473] 예컨대, 가족 멤버는 PCD(100)에 "play me my reminders [from [person]]"를 항상 요청할 수 있고, PCD(100)는 그 사람에 대한 가장 빠른 리마인더들로부터 플레이를 시작함으로써 응답할 수 있다. PCD의 스크린은 대기하는 리마인더들이 있음을 나타낼 수 있다. PCD가 PCD Jot의 의도된 수신자를 보는 경우, PCD(100)는 리마인더가 마지막 6시간 내에 뷰잉되지 않았고 이제 리마인더의 시간이 도달된 경우 Jot를 플레이하도록 제시할 수 있다. 메시지를 뷰잉한 후, 수신자는 회답 또는 포워딩할 옵션을 가질 수 있고, 그런 다음 메시지를 세이브 또는 삭제할 수 있거나, 또는 사용자 정의된 시간 인터벌 후에 리플레이되는 메시지를 "스누즈"하고 가질 수 있다. 디폴트 액션은 메시지들을 세이브할 수 있다. PCD는 스크롤될 수 있는 세대의 각각의 멤버에 대한 PCD Jot들의 인박스를 유지할 수 있다.[00473] For example, a family member may always ask the PCD 100 for "play me my reminders [from [person]]" and the PCD 100 may start playing from the earliest reminders for the person can do. The screen of the PCD may indicate that there are waiting reminders. When the PCD sees the intended recipient of the PCD Jot, the PCD 100 may suggest that the reminder is not viewed within the last 6 hours and now play Jot if the reminder time is reached. After viewing the message, the recipient can have the option to answer or forward, then save or delete the message, or " snooze " a message that is replayed after a user defined time interval. The default action can save messages. The PCD may maintain an inbox of PCD Jots for each member of the scrollable generation.

[00474] 다수의 가족 멤버들이 있는 경우, 착신 PCD Jot는 이와 함께 의도된 수신자의 식별자를 반송할 수 있다. PCD(100)는 단지 의도된 수신자 또는 다른 인가된 사용자들에게 메시지들을 도시할 수 있다. 예컨대, 가족의 각각의 멤버는 자기 자신의 컬러를 가질 수 있고, 그 컬러에서 플래싱 "메시지" 표시자는 그 메시지가 자신을 위한 것임을 그 가족 멤버가 알게 한다. 패러다임은 가족의 상이한 멤버들을 대기하는 상이한 메시지들이 있는 인스턴스들을 수용해야 한다. 가족 멤버가 다른 가족 멤버의 메시지를 뷰잉하도록 인가되는지 여부는 관리자를 통해 구성가능할 수 있다.[00474] If there are multiple family members, the destination PCD Jot can also carry the intended recipient's identifier. PCD 100 may only display messages to an intended recipient or other authorized users. For example, each member of the family may have his or her own color, and in that color a flashing " message &quot; indicator informs the family member that the message is for himself. The paradigm should accommodate instances with different messages waiting for different members of the family. Whether the family member is authorized to view messages of other family members may be configurable via the administrator.

[00475] PCD(100)는 해야할 일 리스트들 및 쇼핑 리스트들을 생성할 수 있고, 이는 PCD 링크 상에서 뷰잉가능하고 편집가능할 수 있다. 예컨대, 사용자들이 "PCD, I need to sign Jenny up for summer camp"를 말할 수 있고, PCD(100)는 "I've added 'sign Jenny up for summer camp' to your to-do list"를 응답할 수 있거나, 또는 "PCD, add butter to my shopping list"를 말할 수 있다. 리스트들은 각각의 가족 멤버를 위해 또는 전체 가족을 위해 생성될 수 있다. 가족의 각각의 멤버는 리스트를 가질 수 있고, 가족 리스트가 있을 수 있다.[00475] The PCD 100 may generate to-do lists and shopping lists, which may be viewable and editable on the PCD link. For example, users may say "PCD, I need to sign Jenny up for summer camp" and PCD 100 responds "I've added 'sign Jenny up for summer camp' to your to-do list" Or "PCD, add butter to my shopping list". Lists can be created for each family member or for the entire family. Each member of the family can have a list, and there can be a family list.

[00476] PCD Jot는 미-사용 기간 후에 타임 아웃될 수 있다. [00476] The PCD Jot may be timed out after a non-use period.

[00477] PCD는, 사용자들과 사회적 및 캐릭터-기반(정서, 페르소나 모델-주도 거동들) 상호작용들, 판정들, 학습들에 관여하는 지속적 "Be" 상태를 가질 수 있다. 이러한 상태는 PCD 스킬들을 조절하고, 경험 및 다른 입력들에 기반하여 PCD 거동 및 이러한 스킬들의 성능을 특정 사용자들에 대해 개인화할 수 있다.[00477] The PCD may have a persistent "Be" status that is engaged in social and character-based (emotional, persona model-driven behaviors) interactions, decisions, and learning with users. This condition can adjust PCD skills and personalize PCD behavior and performance of these skills for specific users based on experience and other inputs.

[00478] PCD(100)는 단일의 별개의 "파워 오프" 포즈 뿐만 아니라, 턴 오프될 때 이를 그 포즈로 유도하는 일부 상이한 애니메이션 시퀀스들을 가질 수 있다. PCD(100)는, 플러그 인되거나 배터리 전력 상에서 실행될 때 단일의 별개의 "어슬립" 포즈 뿐만 아니라, "슬립" 커맨드를 획득한 후 또는 관여되지 않은 동안 낮잠을 자는 것으로 판정하는 경우 그 포즈로 유도하는 다수의 상이한 애니메이션 시퀀스들을 가질 수 있다. PCD(100)는, "웨이크 업" 언어적 또는 촉각적 커맨드들 또는 다른 시청각 이벤트들에 대응하거나 또는 <=48 시간 동안 어슬립 또는 오프될 때 전력을 턴 온/전력원에 연결하는 몇몇의 상이한 애니메이션들을 가질 수 있다. 실시예들에서, 별개의 슬립 모드들, 이를테면, PCD(100)가 대기하고 있지만 적합한 때 웨이크 업할 액티브 마이크로폰들 및 카메라들을 여전히 갖는 모드가 있을 수 있다. 다른 슬립 모드(일부 큐, 이를테면 LED 표시자)에 의해 표시될 수 있음)에서, PCD(100)는 마이크로폰들 및 카메라를 오프시킬 수 있어서, PCD(100)는 이러한 모드에서 어슬립일 때 보거나 듣지 않는다. 후자의 모드에서, 사람은 PCD(100)를 웨이크 업하기 위해 로봇을 터치하거나 또는 스피치 또는 시각적 입력과 상이한 모달리티를 사용할 필요가 있을 수 있다.[00478] The PCD 100 may have a single distinct "power off" pose, as well as some different animation sequences that lead to its pose when turned off. The PCD 100 is not only involved in a single distinct " sleep " pose when plugged in or running on battery power, but also in a pose if it determines that it takes a nap after acquiring a "Lt; RTI ID = 0.0 &gt; animation sequences. &Lt; / RTI &gt; The PCD 100 may be configured to provide a number of different < RTI ID = 0.0 &gt; different &lt; / RTI &gt; You can have animations. In embodiments, there may be separate sleep modes, such as those that still have active microphones and cameras to wake up when the PCD 100 is on standby. The PCD 100 can turn off the microphones and the camera so that the PCD 100 can either view or listen when in sleep mode (e.g., Do not. In the latter mode, a person may need to touch the robot to wake up the PCD 100 or use a different modality from the speech or visual input.

[00479] PCD(100)는, 언어적 또는 촉각적 "웨이크 업" 커맨드들 또는 >=48 시간 동안 어슬립 또는 오프될 때 전력을 턴 온/전력원에 연결하는 다른 시청각 이벤트들에 대응하는 몇몇의 상이한 애니메이션들을 가질 수 있다.[00479] The PCD 100 may also include some or all of the audio / visual events corresponding to loud or tactile "wake up" commands or other audiovisual events that connect power to the turn on / power source when sleeping or turning off for> = 48 hours Of different animations.

[00480] PCD(100)는 언어적 또는 촉각적 "웨이크 업" 커맨드들에 대응하거나 또는 예컨대 11pm와 11am 로컬 시간 간에 3시간 초과의 어슬립 또는 오프 이후 전력을 턴 온하는 몇몇의 웨이크 업 애니메이션들을 가질 수 있다.[00480] The PCD 100 may include a number of wakeup animations that correspond to linguistic or tactile "wake up" commands or that turn on power after an awake or off of more than three hours, for example between 11 pm and 11 am local time Lt; / RTI &gt;

[00481] PCD(100)는 어슬립인 동안 "드리밍"의 몇몇의 상이한 방식들을 가질 수 있다. 이러한 드리밍 상태들은 15분보다 오래 지속되는 슬립 세션들의 ~30% 동안 발생할 수 있다. PCD의 드림들은 인터럽트되어, 룸 안의 사람들이 PCD의 드림들이 방해받는 것을 발견하는 경우, 커맨드들로 또는 터치 스크린에 의해 사일런트 슬립 상태로 이동할 수 있다.[00481] The PCD 100 may have several different ways of "dreaming" while sleeping. These states of dreaming can occur for ~ 30% of sleep sessions lasting longer than 15 minutes. Dreams of the PCD may be interrupted to move to the silent sleep state by commands or by the touch screen if people in the room find that the PCD's dreams are interrupted.

[00482] PCD(100)는 자신의 전력 레벨이 20% 미만일 때 그리고 예컨대, 그 후 대략 5%의 각각의 감소로, 구두로 및 온-스크린으로 사용자들에게 통지할 수 있다.[00482] The PCD 100 may notify users verbally and on-screen when their power level is less than 20% and, for example, with a respective decrease of approximately 5% thereafter.

[00483] PCD(100)는 자신의 전력원이 아울렛과 배터리 간에 스위칭될 때 사용자들에게 온-스크린으로 통지할 수 있다. 또한, 질문들, 이를테면 "Are you plugged in?" 또는 "Are you using your battery?"에 응답할 수 있어야 한다. PCD(100)는, 자신의 머리의 후방 상의 버튼이 푸시되고 유지될 때 자동적으로 파워 온 또는 오프될 수 있다. 짧은 버튼 푸시는 소셜 로봇을 슬립하게 한다.[00483] The PCD 100 may notify users on-screen when their power source is switched between the outlet and the battery. Also, ask questions such as "Are you plugged in?" Or "Are you using your battery?". The PCD 100 may be automatically powered on or off when the button on the back of its head is pushed and held. A short button push causes the social robot to slip.

[00484] PCD(100)는 (보이스 또는 터치) 또는 단지 터치를 통해 슬립으로부터 웨이크 업하도록 세팅될 수 있다. PCD(100)가 온이지만 액티브 상호작용에(즉, 본원에서 "Be" 또는 "being" 상태로 지칭되는 베이스 상태에) 관여되지 않으면, PCD(100)는 누군가 자신의 라인 또는 시선에 진입하거나 노이즈를 만들 때, 수동 인지 애니메이션들을 나타낼 수 있다. 이러한 애니메이션들은, 사람이 관여하기를 원한다고 PCD(100)가 믿는 경우 액티브 인지를 유휴시키도록 유도할 수 있다.[00484] The PCD 100 may be set to wake up from sleep (voice or touch) or just through a touch. If the PCD 100 is on but is not engaged in active interaction (i.e., in a base state referred to herein as a " Be " or " being " state), the PCD 100 may allow someone to enter their line or line of sight, , You can represent passive cognitive animations. These animations may induce the PCD 100 to be idle if it believes that it wants to engage.

[00485] 언어적 커맨드 때문에 또는 사람이 의도적으로 PCD(100)를 향해 걸어가고 있기 때문에 PCD(100)가 수동적으로 누군가를 인지하고 사람이 활발히 관여하기를 원한다고 믿는 경우, "at your service" 타입 액티브 인지 애니메이션을 나타낼 수 있다.[00485] When the PCD 100 perceives someone passively and wants to actively engage a person because of a linguistic command or because a person is intentionally walking toward the PCD 100, the "at your service" type active Cognitive animation can be displayed.

[00486] PCD(100)는, 시선을 요구하는 어떠한 것을 행하도록 요청받은 경우 외부 오브젝트가 PCD의 아이들을 커버하고 있기 때문에 볼 수 없는 경우 코멘트할 수 있다. PCD(100)가 임의의 종류의 프롬프트와는 독립적으로 머리에서 탭핑되는 경우, 액티브 인지를 유휴시키는 것으로 전환할 수 있다. 다른 실시예들에서, PCD(100)가 스트로크 또는 페팅되는 경우, 또는 구두로 칭찬받는 경우, "기쁨" 애니메이션을 나타낼 수 있고, 액티브 인지를 유휴시키는 것으로 전환할 수 있다.[0048] When the PCD 100 is requested to do something requiring a line-of-sight, it can comment if the external object can not be seen because it covers the children of the PCD. If the PCD 100 is tapped in the head independently of any kind of prompt, it can switch to idle if it is active. In other embodiments, when the PCD 100 is stroked or pegged, or verbally praised, it may display a " joy " animation and switch to idling if it is active.

[00487] PCD의 가족의 인식된 멤버가 이를테면 음성 ID를 통해 가시선에 있거나 식별되는 경우, PCD(100)는 일반적으로, 반드시 구두로서가 아니라 개인적인 방식으로(이는 그 가족 멤버의 마지막 목격의 최신성에 의존할 수 있음) 그 가족 멤버에게 그리팅할 수 있다.[00487] If a recognized member of the family of PCDs is, for example, on the line of sight or identified through a voice ID, then PCD 100 is generally not necessarily verbally, but in a personal manner, You can rely on it).

[00488] 낯선 사람이 가시선에 있거나 보이스를 통해 검출되는 경우, PCD는 수동 인지 모드로 이동할 수 있다. 낯선 사람으로부터의 관심을 검출하는 경우, 반복 없이 자신을 소개해야 한다. PCD(100)는 그 다른 사람이 누구인지 적극적으로 요청하지 않을 수 있는데, 이는, "알려진 가족 멤버들"이 PCD의 가족 관리자에 의해 관리되기 때문이다.[00488] When a stranger is present in the line of sight or through a voice, the PCD can move to the passive cognitive mode. When detecting interest from a stranger, you should introduce yourself without repetition. The PCD 100 may not actively ask who the other person is because "known family members" are managed by the PCD's family manager.

[00489] PCD의 가족의 인식된 멤버가 인식되지 않은 낯선 사람과 함께 있는 경우, PCD(100)는 먼저 가족 멤버에게 개인적으로 그리팅한다. 그 가족 멤버가 PCD(100)를 낯선 사람에게 소개하는 경우, PCD(100)는 그 다른 사람이 누구인지 적극적으로 요청하지 않을 수 있는데, 이는, "알려진 가족 멤버들"이 소셜 로봇의 가족 관리자에 의해 관리되기 때문이다.[00489] If the recognized member of the family of the PCD is with an unrecognized stranger, the PCD 100 first personally grates to the family member. If the family member introduces the PCD 100 to a stranger, the PCD 100 may not actively ask who the other person is, because " known family members " .

[00490] 소셜 로봇의 가족 관리자가 새로운 사람을 만나도록 소셜 로봇을 소개하고, 그가 새로운 사람을 기억해야 한다고 관리자가 적극적으로 말하는 경우, 소셜 로봇은 16개의 ID 슬롯들 중 하나를 차지해야 한다. 어떠한 이용가능한 ID 슬롯들도 없는 경우, PCD(100)는 그가 기존의 인식된 사람을 대체하기를 원하는지 여부를 관리자에게 문의할 수 있다.[00490] When a social robot's family manager introduces a social robot to meet a new person and the manager actively says that he should remember a new person, the social robot must occupy one of the 16 ID slots. If there are no available ID slots, the PCD 100 may ask the manager if he wants to replace the existing recognized person.

[00491] 새로운 사람을 학습하도록 요청받을 때, PCD(100)는 필요한 시각적 및 오디오 데이터를 수집하고, 시각적 및 오디오 샘플들을 더 최적으로 캡처하고 이름 발음을 학습하기 위해 새로운 사람이 PCD 링크 앱을 경험하게 하도록 관리자에게 또한 제안할 수 있다.[00491] When requested to learn a new person, the PCD 100 will acquire the necessary visual and audio data, experience a PCD link app for a new person to better capture the visual and audio samples, You can also suggest to the administrator to

[00492] 일부 실시예들에서, PCD(100)는 시각에 기반하여 몇몇 형태들의 그리팅들을 가질 수 있다. 예컨대, "Good Morning" 또는 "Good evening" 또는 "You're up late". 자신이 그리팅하고 있는 사람을 PCD(100)가 아는 경우, 항상은 아니지만 자주 그 사람의 이름으로 개인화될 수 있다.[00492] In some embodiments, the PCD 100 may have some types of gratings based on time. For example, "Good Morning" or "Good evening" or "You're up late". If the PCD 100 knows the person that he or she is grilling, it can be personalized, often, but not always, in the person's name.

[00493] 누군가가 PCD(100)에게 굿바이를 말하는 경우, PCD는 작별을 고하는 몇몇 방식들을 가질 수 있다. PCD(100)가 굿바이를 말하는 사람을 아는 경우, PCD는 그 사람의 이름을 갖는 작별을 개인화할 수 있다.[00493] If someone speaks goodbye to the PCD 100, the PCD may have several ways to say goodbye. If the PCD 100 knows the person speaking goodbye, the PCD can personalize the farewell with the person's name.

[00494] PCD(100)는 제한되지 않은 다이얼로그를 조장하지 않는 그러한 방식으로 구성된 일부 유휴 채터 성능들을 가질 수 있다. 이들은 사용자 응답을 목적으로 하는 발화들, 또는 응답을 베코닝하지는 않지만 사용자를 즐겁게 하도록 설계된 간단한 재담들을 포함할 수 있다. 이러한 발화들은 가족 팩트 탭에 정의된 바와 같은, 이를테면 가족의 누군가의 "happy birthday"를 바라는 알려진 "가족 팩트들"을 지칭할 수 있다. 실시예들에서, 이를테면 PCD(100)의 사용자에게 프롬프팅하기 위해 PCD(100)가 청취할 것으로 예상하고 있는 발화들에 관한 시각적 힌트들이 스크린 상에 디스플레이될 수 있다. 발화들은 또한 특정 PCD의 지프 코드에 기반하여 지오센트릭일 수 있다. 발화들은 또한 설계 팀에 의해 PCD 클라우드로부터 푸시되는 것과 같은 토피컬일 수 있어서, 이를테면 "I can't believe Birdman swept the Academy Awards!"일 수 있다. 재담들은 유머러스하고 영리하며 PCD의 페르소나와 일관될 수 있다. 챗봇 콘텐츠는 또한, 사람들이 무엇을 말했는지 또는 사진들, 노래들, 농담들 등과 같은 것들에 대한 얼굴 표정 반응들로부터 무엇을 수집하는지에 기반하여 사람들이 무엇을 좋아하고 싫어하는지를 PCD의 메모리로부터 인출해야 한다.[00494] The PCD 100 may have some idle chatter capabilities configured in such a manner that it does not promote unrestricted dialogs. These may include utterances intended for user responses, or simple jokes that are not designed to answer, but are designed to entertain the user. These utterances may refer to known " family facts " as defined in the Family Fact tab, such as the wish to have a " happy birthday " In embodiments, visual hints about the utterances that the PCD 100 expects to hear, such as to prompt the user of the PCD 100, may be displayed on the screen. The utterances may also be geocentric based on the jeep code of a particular PCD. The utterances can also be topical, such as being pushed from the PCD cloud by the design team, such as " I can not believe Birdman swept the Academy Awards! &Quot;. Jokes can be humorous, smart and consistent with PCD's persona. The chatbox content can also be retrieved from the memory of the PCD based on what people have said or what they like from what they collect from facial expressions responses to such things as photos, songs, jokes, etc. Should be.

[00495] PCD(100)는 즐겁게 하도록 설계된 질문들을 가족 멤버들에 주기적으로 질문할 수 있다.[00495] PCD 100 may periodically ask family members questions designed to be entertaining.

[00496] PCD(100)는, 발화를 반복하기 위해 요청들에도 불구하고 사용자를 이해시킬 수 없는 경우 사용자들이 용서하도록 조장하는 이해못함을 표현하는 몇몇 고상한 방식들을 가질 수 있다.[00496] The PCD 100 may have some noble ways of expressing inability to encourage users to forgive, if they can not understand the user despite requests to repeat the speech.

[00497] PCD(100)는 때때로 이를테면 특정 선호도들, 두려움들 및 무드들을 표현하는 가급적 좋아하는 특이한 거동들을 가질 수 있다.[00497] The PCD 100 may sometimes have some likelihood of unique behaviors, such as expressing certain preferences, fears, and moods.

[00498] PCD(100)는 사용자들로부터 인내 및 용서를 끌어내도록 설계될 수 있는 정의된 멀티모달 모호성 패러다임을 가질 수 있다.[00498] The PCD 100 may have a defined multimodal ambiguity paradigm that may be designed to draw patience and forgiveness from users.

[00499] PCD(100)는 발화를 이해함을 표현하는 몇몇 고상한 방식들을 가질 수 있지만, 만족스럽게 준수하거나 응답할 수는 없다.[00499] PCD 100 may have some noble ways of expressing understanding speech, but can not satisfactorily follow or respond.

[00500] PCD(100)은 때때로 자신이 행복하고, 점유되고, 어떠한 보조도 필요없음을 나타내는 방식들로 스스로 조용히 즐겁게 할 수 있다.[00500] The PCD 100 may occasionally entertain himself silently in ways that indicate he is happy, occupied, and does not need any assistance.

[00501] PCD(100)는 임의의 레이턴시 발생 동안 또는 코어 서버 업데이트 동안 자신이 생각하고 있음을 나타내는 몇몇의 방식들을 가질 수 있다.[00501] The PCD 100 may have several ways of indicating that it is thinking during random latency or during core server update.

[00502] PCD(100)는 WiFi 연결성이 다운된 것 및 또한 WiFi가 재연결된 것을 사용자에게 경고하는 몇몇의 방식들을 가질 수 있다. 사용자들은 세팅들로부터 및 PCD 링크의 QR 코드를 사용함으로써 WiFi를 항상 재활성화시킬 수 있다.[00502] The PCD 100 may have several ways of alerting the user that WiFi connectivity is down and also that the WiFi is reconnected. Users can always reactivate WiFi from settings and by using the QR code of the PCD link.

[00503] PCD(100)는, 사용자들이 스킬들 및 기본 세팅들을 통해 브라우징하고 입력하도록 허용하는 기본 멀티모달 내비게이션 패러다임을 가질 수 있다. 진보된 세팅들이 PCD 링크를 통해 입력될 필요가 있을 수 있다.[00503] The PCD 100 may have a basic multimodal navigation paradigm that allows users to browse and enter through skills and default settings. Advanced settings may need to be entered via the PCD link.

[00504] PCD(100)는, 자신이 로킹되어 있다는 사과 통지를 넘어, 패스워드가 없다면 관여될 수 없도록, 자신의 관리자가 자신을 "로킹"하게 하는 능력을 가질 수 있다.[00504] PCD 100 may have the ability to let its manager "lock" itself beyond the applause notification that it is locked, so that it can not be involved if there is no password.

[00505] PCD(100)는 이용가능한 WiFi 네트워크들을 커맨드 상에 디스플레이할 수 있다. WiFi 연결이 손실되는 경우, PCD(100)는 이용가능한 WiFi 네트워크들을 디스플레이할 수 있다. PCD(100)는 자신의 스크린 상에 WiFi 패스워드를 입력하는 방식을 제공할 수 있다.[00505] The PCD 100 may display available WiFi networks on the command. If the WiFi connection is lost, the PCD 100 may display the available WiFi networks. The PCD 100 may provide a way to enter a WiFi password on its screen.

[00506] PCD(100)는 가족의 각각의 알려진 멤버와의 시각적 연관성을 가질 수 있다. 예컨대, Jim은 항상 블루, Jane은 항상 핑크, Mom은 항상 그린 및 Dad는 항상 퍼플이다. PCD(100)가 가족의 그 멤버와 상호작용할 때, 그 시각적 방식이 지배적이어야 한다. 이러한 시각적 식별자는, PCD(100)가 멤버들을 인식하는 것을 가족 멤버들이 아는 것을 보장하기 위해 PCD의 스킬들 전반에 걸쳐 사용될 수 있다.[00506] The PCD 100 may have a visual association with each known member of the family. For example, Jim is always blue, Jane is always pink, Mom is always green, and Dad is always purple. When the PCD 100 interacts with its members in the family, the visual manner must be dominant. This visual identifier may be used throughout the PCD's skills to ensure that family members know that the PCD 100 recognizes the members.

[00507] PCD(100)는 미소들을 인식하고 유사한 방식으로 응답할 수 있다.[00507] The PCD 100 may recognize the smiles and respond in a similar manner.

[00508] PCD(100)는, 그것이 있는 동안 슬라이드 보기 모드에서 그것의 PCD 스냅 포토 앨범으로부터 사진들을 플레이할 수 있으며, 사용자가 사진에 있는 경우, PCD(100)는 "you look particularly good in this one"라고 말할 수 있다. 때때로, PCD(100)는, 제 1 매킨토시 또는 R2D2 또는 핀볼 머신들에 대해서처럼, 그 "자신의" 포토들을 룩 앳할 수 있지만, 그런 다음, 그의 가족의 사진들은 또한 가끔 포함된다.[00508] The PCD 100 can play photos from its PCD snapshot photo album in slide view mode while it is on, and if the user is in the picture, the PCD 100 will " "Can be said. From time to time, the PCD 100 may look up its "own" photos, such as for a first Macintosh or R2D2 or pinball machines, but then photos of his family are also sometimes included.

[00509] PCD(100)는 종종, 상호작용을 요구하지 않으면서, 행복을 나타낼 수 있다. 예컨대, PCD(100)는 그 자신과 퐁(pong)을 플레이하고, 얼굴로서 PCD(100)를 갖는 모나리자처럼 그것의 스크린 상에 사진들을 그린다. 시간이 지날수록, 이들 스킬들은 진화할 수 있다(예컨대, 달 착륙선 ASCII 게임 또는 스틱 피겨(stick figure)들로 시작하고, 그런 다음, 더욱 복잡한 게임들로 진행된다). 일부 실시예들에서, PCD(100)는 애완동물, 이를테면 강아지를 가질 수 있으며, 그것의 아이는 강아지가 페치할 수 있는 볼이 될 수 있다. PCD(100)는 그의 강아지와 함께 수동으로 주고 받고 할 수 있다. PCD(100)는 요리 책들을 읽는 것과 같이 그것의 스킬들을 통해 브라우징할 수 있다. PCD(100)는 그것의 이동들을 연습하면서 일부 종류의 제한된 뮤직 라이브러리에 대해 춤출 수 있다. 때때로, PCD(100)는 낮잠을 잔다. 일부 실시예들에서, PCD(100)는 공(gong)을 갖는 가족 팩트들에 기반하여 시들, 이를테면 하이쿠(Haikus)를 기록할 수 있다. 다른 실시예들에서, PCD(100)는 운동하고 스스로를 격려할 수 있다. 다른 실시예들에서, PCD(100)는 악기들을 플레이하며, 웃기는 유투브 클립들을 보고 응답으로 빙그레 웃으며, 숫자 키즈 게임으로 컬러를 실행하며, 볼로 하여금 미로를 통해 이동하게 하기 위해 이동하며, 그리고 스도쿠(Sudoku)를 플레이할 수 있다. PCD(100)는 그 자신의 포토 앨범을 가지며 스탬프들을 수집할 수 있다.[00509] PCD 100 may often exhibit happiness, without requiring interaction. For example, the PCD 100 plays pong with itself and draws pictures on its screen like a Mona Lisa with a PCD 100 as a face. Over time, these skills can evolve (for example, starting with a lunar lander ASCII game or stick figures, then proceeding to more complex games). In some embodiments, the PCD 100 may have a pet, such as a dog, whose child may be a puppy-fetishable ball. The PCD 100 can be manually exchanged with his puppy. PCD 100 can browse through its skills, such as reading cookbooks. PCD 100 may dance to some kind of limited music library while practicing its movements. Occasionally, the PCD 100 takes a nap. In some embodiments, the PCD 100 may record poems, such as Haikus, based on family facts with a gong. In other embodiments, the PCD 100 may exercise and encourage itself. In other embodiments, the PCD 100 may play musical instruments, view funny YouTube clips, bing in the response, run colors in a numeric kids game, move the ball to move through the maze, Sudoku) can be played. The PCD 100 has its own photo album and can collect stamps.

[00510] 일부 실시예들에서, PCD(100)는 탁구 기반 게임에 관여하고 이 탁구 기반 게임을 디스플레이할 수 있으며, 여기서, 좌우 움직임들은 PCD(100)와의 시합시 사용자의 패들을 제어한다.[00510] In some embodiments, the PCD 100 may participate in a ping-pong-based game and display the ping-pong-based game, where the left and right movements control a user's paddle in a match with the PCD 100.

[00511] PCD(100)가 배터리 전력으로 실행되고 있을 경우, 그것의 스크린 상에 나머지 배터리 수명을 도시하는 아이콘이 있을 수 있다.[00511] If the PCD 100 is running on battery power, there may be an icon on its screen showing the remaining battery life.

[00512] 사람들이 태스크 콘텍스트가 아니라 소셜 콘텍스트에서 PCD(100)를 칭찬하는 경우, PCD(100)는 "기쁨/애정(delight/affection)" 애니메이션을 나타낼 수 있다.[00512] When people compliment the PCD 100 in the social context, rather than the task context, the PCD 100 may represent a "delight / affection" animation.

[00513] 그룹으로 있을 때, PCD(100)는 한 번에 한 사람과 관여할 수 있다. PCD(100)는, 누군가가 PCD(100)와 말하고 싶다는 것을 표시하며 그리고 PCD(100)와 현재 관여된 사람이 사일런트로 유지되거나 이와 달리 관여되지 않은 경우에만, 그들에 관여하기 위해 터닝할 수 있다. 실시예들에서, PCD는 다수인(multi-person) 상호작용들을 동시적으로 관리하기 위해 다양한 비언어적 및 준언어적 소셜 큐들을 사용할 수 있다.[00513] When in group, PCD 100 can engage with one person at a time. The PCD 100 indicates that someone wants to speak to the PCD 100 and can turn to engage with them only if the person currently involved with the PCD 100 is kept silent or otherwise involved . In embodiments, the PCD may use a variety of non-verbal and sub-linguistic social cues to simultaneously manage multi-person interactions.

[00514] PCD(100)는 기본 타이머 기능성을 가질 수 있다. 예컨대, "PCD, let me know when 15 minutes have passed".[00514] The PCD 100 may have basic timer functionality. For example, "PCD, let me know when 15 minutes have passed".

[00515] PCD(100)는, WiFi 범위 내에 있는 손실된 폰을 로케이팅할 때 사용자들을 보조하기 위해, PCD 링크를 통해 그것에 연결되는 폰 상에 톤을 생성할 수 있다. 누군가가 그들 자신의 디바이스가 아닌 PCD 링크 폰 상에 이 톤을 생성할 수 있는지 여부를 제어하는 능력은, 관리자 세팅들을 통해 구성가능할 수 있다.[00515] The PCD 100 may generate a tone on a phone connected to it via a PCD link to assist users in locating a lost phone within the WiFi range. The ability to control whether anyone can create this tone on a PCD link phone other than their own device may be configurable via administrator settings.

[00516] PCD(100)는 현재 스마트폰들에서 사용되는 것과 유사한 스톱워치 기능성을 가질 수 있다.[00516] The PCD 100 may have a stopwatch functionality similar to that used in current smartphones.

[00517] PCD(100)는 빌트 인 클록을 가지며, 요청되는 경우 임의의 시간 구역에서 시간을 말할 수 있다. 때때로, PCD(100)는, 그것의 관여 레벨 및 그것이 하고 있는 것에 적어도 부분적으로 기반하여, 시간을 디스플레이할 수 있고, PCD(100)는 다른 시간들을 디스플레이하지 않을 수 있다. PCD(100)는 알람 클록 기능성을 가질 수 있다. 예컨대, "The social robot, let me know when its 3:30pm". 포함된 스누즈 기능이 존재할 수 있다. PCD(100)는 이용가능한 몇몇의 알람 사운드들을 가질 수 있으며, 각각의 가족 멤버는 그들의 바람직한 알람 사운드를 세팅할 수 있다. 바람직한 알람 사운드가 세팅되지 않은 경우, PCD(100)는 하나를 선택할 수 있다.[00517] The PCD 100 has a built-in clock and can tell time in any time zone if requested. Occasionally, the PCD 100 may display the time based, at least in part, on its level of involvement and what it is doing, and the PCD 100 may not display other times. The PCD 100 may have alarm clock functionality. For example, "The social robot, let me know when its 3:30 pm". The included snooze function may exist. The PCD 100 may have several available alarm sounds, and each family member may set their desired alarm sound. If the desired alarm sound is not set, the PCD 100 can select one.

[00518] PCD(100)는 스킬에 의해 변할 수 있는 다자 상호작용 정책을 설정했을 수 있다.[0058] The PCD 100 may have set up a multi-party interaction policy that may vary depending on the skill.

[00519] PCD(100)는, 그것의 성능들을 "show off" 요청되는 경우, 그것이 도시할 수 있는 신속한 "데모 릴(demo reel)"을 가질 수 있다.[00519] The PCD 100 may have a rapid "demo reel", as it can be shown, when its capabilities are "show off" requested.

[00520] PCD(100)는, 그것이 가족 멤버에 의해 다른 PCD(100)에 소개되는 경우, 그것이 다른 PCD(100)에 맞닥뜨리고 보이스 ID에 의해 이 다른 PCD(100)를 인식할 때, 특정되었지만 간단한 거동 옵션들을 가질 수 있다. 실시예들에서, PCD(100)는 다른 PCD(100)와 상호작용하도록 설계된 특정 특수 거동들을 가질 수 있다.[00520] When the PCD 100 is introduced to another PCD 100 by a family member, it is specified when it encounters another PCD 100 and recognizes the other PCD 100 by the voice ID You can have simple behavior options. In embodiments, the PCD 100 may have certain special behaviors designed to interact with other PCDs 100.

[00521] 예시적이며 비제한적인 실시예들에 따라, 정해진 스킬 또는 거동(이를테면, 애니메이션, 스피치 등)은 PCD(100)와 연관된 다른 속성들에 기반하여 상이하게 나타날 수 있다. 예컨대, PCD(100)는, 이를테면, 시간이 지날수록 사용자 또는 그룹과의 상호작용들을 통해, 특정 성격을 갖고, 특정 페르소나를 착수하고, 특정 모드로 동작하고, 특정 무드를 갖고, 에너지 또는 피로 레벨을 표현하고, 특정 역할을 플레이하는 등을 하도록 프로그래밍될 수 있거나 또는 적응할 수 있다. PCD SDK는 개발자가, 전술한 것 중 임의의 것 또는 전술한 것의 임의의 조합에 기반하여, 특정 스킬 또는 그것의 컴포넌트가 어떻게 변해야 하는지를 표시하게 할 수 있다. 예컨대, PCD(100)는 "외향적인" 성격으로 채워질 수 있으며, 그런 경우, 그것은, 더 짧고 더 조용한 버전들을 실행하는 "내성적인" PCD(100)와 비교하여, 스피치 거동들의 더 길고 더 시끄러운 버전들을 실행할 수 있다. 유사하게, 동일한 스킬 또는 거동을 실행할 때, "액티브" PCD(100)가 큰 움직임들을 착수할 수 있는 반면에, "조용한" PCD(100)는 작은 움직임들을 착수할 수 있다. 유사하게, "피곤한" PCD(100)는, 이를테면 자러 갈 시간이라는 큐를 교묘하게 차일드에게 주기 위해, 느릿느릿한 움직임들, 느린 스피치 등을 디스플레이할 수 있다. 따라서, 본원에서, 스킬들 및 거동들의 개발을 허용하는, SDK를 포함하는 소셜 로봇 플랫폼이 제공되며, 스킬들 및 거동들은 스킬에 독립적인 PCD(100)의 모드에 따라 표현될 수 있다. 실시예들에서, PCD(100)는, 별개의 일관적인 페르소나를 계속해서 유지하면서, 별개의 사람들과 상이하게 상호작용하도록 적응하는데, 이를테면, 성인들과 상이하게 칠드런에게 말할 수 있다.[00521] In accordance with exemplary and non-limiting embodiments, a given skill or behavior (such as animation, speech, etc.) may appear differently based on other attributes associated with the PCD 100. For example, the PCD 100 may be configured to operate in a particular mode, with a particular mood, launching a particular persona, operating in a particular mode, interacting with a user or group over time, And may be programmed or adapted to play a particular role, and so forth. The PCD SDK may allow a developer to indicate how a particular skill or its component should change based on any of the foregoing or any combination of the foregoing. For example, the PCD 100 may be populated with an " outgoing " nature, in which case it may be compared to the " intrinsic " PCD 100 executing shorter and quieter versions, Lt; / RTI &gt; Similarly, when performing the same skill or behavior, the " quiet " PCD 100 may initiate small movements while the " active " PCD 100 may initiate large movements. Similarly, the " tired &quot; PCD 100 may display slow movements, slow speech, etc., to skillfully give the child a queue of time to go to bed, for example. Thus, in this application, a social robot platform is provided that includes the SDK, which allows the development of skills and behaviors, and the skills and behaviors can be represented according to the mode of the PCD 100 that is skill independent. In embodiments, the PCD 100 adapts to interact differently with the different people, while maintaining a separate, consistent persona, such as talking to the children differently from adults.

[00522] 다양한 실시예들에 따라, 광범위한 스킬들이 제공될 수 있다. 중요한 스킬들은, 미팅 스킬들(제 1 및 후속적인 미팅들에 대해, 이를테면 로봇-증강 비디오 콜들을 포함함), 모니터링 스킬들(이를테면, 홈의 사람들 및/또는 애완동물들을 모니터링하는 것), 포토그래퍼 스킬들, 스토리텔링 스킬들(및 멀티-미디어 매시업들, 이를테면 사용자가 어드벤처 플롯, 멀티-미디어 공연-기반 스토리들 등에 영향을 미치기 위해 브랜치에서 포인트를 선정하게 할 수 있음), 게임-플레이 스킬들, 사용자가 지능적인 미러로서 소셜 로봇을 사용하게 할 수 있는 "매직 미러(magic mirror)" 스킬, 날씨 스킬, 스포츠 스킬, 또는 판타지 스포츠들처럼 스포츠 프로그램 또는 스포츠 정보 또는 활동을 향상시키기 위해 상호작용하는 스포츠 버디 스킬, 뮤직 스킬, 레시피들로 작업하기 위한 스킬, 백그라운드/애니메이션 효과들을 이용하여 지능적인 상호작용식 텔레프롬프터로서의 역할을 하는 것, 그리고 (이를테면, 약물 준수, 개인 개발, 트레이닝 등에 대한) 코칭 스킬을 포함한다.[00522] In accordance with various embodiments, a wide variety of skills may be provided. Important skills include, but are not limited to, meeting skills (including first and subsequent meetings, including robot-enhancement video calls), monitoring skills (such as monitoring home peoples and / or pets) Game skills such as grapher skills, storytelling skills (and multi-media mashups, such as allowing a user to select points in a branch to affect adventure plots, multi-media performance-based stories, , &Quot; magic mirror " skill that allows a user to use a social robot as an intelligent mirror, weather skill, sports skill, or fantasy sports, Sports buddy skill, music skill, skill to work with recipe, background / animation effects, The interactive and to serve as a teleprompter, and (for example, for medication compliance, etc., individual development, training) comprises a coaching skills.

[00523] 자동화된 스피치 인식(또는 다른 사운드 인식)을 가능하게 하기 위해, 본원에서 개시된 방법들 및 시스템들은 빔 형성을 착수할 수 있다. 난제는, 이를테면 "핫 어구(hot phrase)", 이를테면 "Hey, Buddy"를 사용함으로써 사용자가 소셜 로봇의 관심을 콜링하게 하는 것이 원해질 수 있다는 것이다. PCD(100)가 존재하는 경우, 그것은 핫한 어구를 발화한 보이스로 터닝(또는 관심을 지시)할 수 있다. 그것을 하기 위한 하나의 방법은 빔 형성을 사용하는 것이며, 여기서, 상이한 위치들을 가리키는 빔들(공간 필터들 또는 채널들)이 존재한다. 이론상, 빔에 대응하는 각각의 공간 필터 또는 채널은 그 채널로부터 사운드를 취하며, 다른 채널들을 무시하려고 한다. 통상적으로, 사람들은, 예컨대 폴리폰(polyphone) 디바이스들에서, 가장 높은 볼륨을 갖는 빔들을 픽업하고 가장 높은 볼륨의 빔이 이야기하는 사람을 위한 것이라고 가정함으로써, 그것을 수행한다. 본원에서 개시된 방법들 및 시스템들은, 이를테면 핫한 어구를 말하는 사람의 빔을 픽업하기 위하여, 개선된 빔 형성 및 활용을 착수할 수 있다. 실시예들에서, 본원에서 개시된 소셜 로봇 플랫폼은, 각각의 빔에 대해 또는 빔들의 서브-세트에 대해 스피치 인식기의 별개의 인스턴스를 가질 수 있다. 따라서, 각각의 스피치 인식기는 원뿔의 공간을 청취하고 있다. 디바이스가 예컨대 4명의 사람들의 그룹 중에 있고, 한 사람이 "Hey Buddy"라고 말하는 경우, 디바이스는 그 스피커의 방향으로부터 누군가가 관심을 콜링하고 있다는 것을 알 것이다. 그것을 구현하기 위해, 시스템들 및 방법들은 채널마다 또는 채널들의 서브세트마다 스피치 인식기를 가질 수 있다.[00523] To enable automated speech recognition (or other sound recognition), the methods and systems disclosed herein may initiate beamforming. The challenge is that by using a "hot phrase", such as "Hey, Buddy", it may be desirable for the user to call the attention of the social robot. If the PCD 100 is present, it can turn (or indicate attention) to the voice that uttered the hot phrase. One way to do this is to use beamforming, where there are beams (spatial filters or channels) pointing to different locations. In theory, each spatial filter or channel corresponding to the beam takes a sound from that channel and tries to ignore the other channels. Typically, people do this by, for example, in polyphone devices, picking up beams having the highest volume and assuming that the highest volume beam is for the person talking. The methods and systems disclosed herein can initiate improved beam forming and utilization, such as to pick up a person's beam that speaks a hot phrase. In embodiments, the social robot platform disclosed herein may have a separate instance of a speech recognizer for each beam or for a sub-set of beams. Thus, each speech recognizer is listening to the cone's space. If the device is for example a group of four people and a person says "Hey Buddy", the device will know from the direction of the speaker that someone is calling attention. To implement it, systems and methods may have a speech recognizer per channel or a subset of channels.

[00524] 이상적으로, PCD의 모션/배향에 기반하여 빔의 배향을 유지하는 것이 원해질 수 있다. 빔 형성을 실행하고 있는 시스템은, 모터 제어기들로부터 정보를 수신할 수 있거나, 또는 외부 시스템, 이를테면 GPS 시스템, 비전 시스템 또는 시각적 입력들, 또는 환경의 위치 시스템, 이를테면 IOT 디바이스들의 위치들에 기반하여 이를테면 홈의 위치 시스템으로부터 위치 또는 배향을 수신할 수 있다. 예컨대, 모터 제어기들은, PCD(100)가 PCD(100)를 회전시키는 각도를 알 수 있으며, 그런 다음, PCD(100)는 그것의 좌표들을 찾을 필요가 있을 수 있다. 이는, 그것을 재-배향시키기 위해 다시 핫한 어구를 말함으로써, 또는 다른 위치 정보의 장점을 취함으로써 달성될 수 있다. 일단 스피커가 로케이팅되면 사람 추적이 사용될 수 있으며, 따라서 PCD(100)는 스피커가 이동함에 따라 스피커의 방향으로 빔을 유지하기 위해 적절하게 이동 및 터닝할 수 있으며, 다른 지각 양식들, 이를테면 터치, 열 시그니처 등에 의한 추적이 이것을 증강시킬 수 있다. 실시예들에서, 시각적 큐들과 사운드 로컬화의 통합은, 이를테면 안면 움직임을 시각적으로 결정함으로써 어느 사람이 PCD(100)에 말하려고 시도하고 있는지를 이해하는 데 사용될 수 있다. 실시예들에서, 룸에서의 모션을 검출하고 그런 다음 더 높은 품질의 카메라를 스피커로 지향시키기 위해, 전방향성 "낮은 해상도(low resolution)" 비전 시스템이 또한 전개될 수 있다.[00524] Ideally, it may be desirable to maintain the orientation of the beam based on the motion / orientation of the PCD. The system executing the beamforming may receive information from the motor controllers or may be based on the location of an external system, such as a GPS system, a vision system or visual inputs, or a location system of the environment, such as IOT devices Such as a position or orientation from the location system of the groove. For example, the motor controllers may know the angle at which the PCD 100 rotates the PCD 100, and then the PCD 100 may need to find its coordinates. This can be accomplished by saying a hot phrase again to re-orient it, or by taking advantage of other location information. Once the loudspeaker is located, human tracking can be used, so that the PCD 100 can move and turn properly to maintain the beam in the direction of the loudspeaker as the loudspeaker moves, and other perceptual forms, such as touch, Tracking with thermal signatures can enhance this. In embodiments, the integration of visual cues and sound localization may be used to understand which person is attempting to speak to the PCD 100, such as by visually determining facial movement. In embodiments, an omnidirectional " low resolution " vision system may also be deployed to detect motion in the room and then direct a higher quality camera to the speaker.

[00525] 다른 예시적인 실시예들에서, 본원에서 개시된 방법들 및 시스템들은 어구 스포팅 기술의 일부로서 결합된 문법들을 사용할 수 있다. 효과적인 어구 스포팅을 수행하기 위해, 바람직하게는, 짧은 어구들을 가질 수 있지만, 얼마나 많은 상이한 어구들을 인식해야 하는지에 의존하여, 어구 스포팅 구축 비용은 더 높다. 예컨대, 10개의 콘텐츠들 간을 구분하기 위해, 당신이 상이한 별개의 어구들을 더 많이 가질수록, 그것은 (기하학적으로) 더 비싸진다. 실시예들에서, 본원에서 개시된 방법들 및 시스템들은 어구들을 상이한 인식기들로 쪼갤 수 있으며, 이 인식기들은 상이한 쓰레드들에서 동시적으로 실행하며, 따라서 각각의 인식기는 작고 덜 비싸다. 이제, 일련의 것들이 도입될 수 있는데, 그 이유는 어구 스포팅의 개념이, 당신이 스피치의 콘텐츠-베어링 청크들을 찾도록 하기 때문이다. 예컨대, 어구: "Hey Buddy, I want to take a picture and send it to my sister"를 취하라. 대부분의 시츄에이션들에서 2개의 청크들: "take a picture" 그리고 "send it to my sister"이 문제의 가능성이 있다. 하나의 어구 스포팅 쓰레드에 의존하여, 다른 수정된 어구 스포팅 인식기가 트리거될 수 있다. 인식기들의 그래프(단지 문법들의 그래프가 아니라, 실제 인식기들)가 구축될 수 있으며, 인식기들 각각은 특정 타입들의 어구들을 인식한다. 그래프에 기반하여, 인식기는, 그것의 적용가능성 및 사용을 통제하는 적합한 페어런츠 인식기에 의해 트리거될 수 있다. 따라서, 병렬로 작업하는 복수의 스피치 인식기들을 갖는 자동화된 스피치 인식 시스템이 본원에서 제공되며, 스피치 인식기들은 선택적으로, 광범위한 어구들에 걸쳐 어구 스포팅을 허가하기 위한 그래프에 따라 배열된다. [00525] In other exemplary embodiments, the methods and systems disclosed herein may use combined grammars as part of a gypsy spotting technique. In order to carry out an effective game spotting, it is preferable to have short phrases, but depending on how many different phrases should be recognized, the cost of establishing a game spot is higher. For example, to distinguish between ten contents, the more you have different distinct phrases, the more expensive it is (geometrically). In embodiments, the methods and systems disclosed herein may break the phrases into different recognizers, which run concurrently on different threads, so that each recognizer is small and less expensive. Now, a set of things can be introduced, because the concept of the phrase sporting lets you find the content-bearing chunks of speech. For example, take the phrase "Hey Buddy, I want to take a picture and send it to my sister". In most sequences, two chunks: "take a picture" and "send it to my sister". Depending on a single spitting thread, another modified spelling spot recognizer can be triggered. A graph of recognizers (not just graphs of grammars, but actual identifiers) can be constructed, and each recognizer recognizes certain types of phrases. Based on the graph, the recognizer can be triggered by a suitable parental recognizer that controls its applicability and use. Accordingly, an automated speech recognition system having a plurality of speech recognizers working in parallel is provided herein, and the speech recognizers are optionally arranged according to a graph for permitting spotting over a wide range of phrases.

[00526] 로봇 스킬들 및 어셋들을 개발하기 위한 방법들, 툴들, 사용자 인터페이스들, 및 기법들(일반적으로, SDK 엘리먼트들)의 세부사항들은 첨부된 도면들에서 도시되고, 이와 함께 아래에서 설명된다. 일반적으로, 본원에서 설명되는 소프트웨어, 데이터 구조들, 데이터베이스들, 사용자 인터페이스들 등으로 적응된 하나 또는 그 초과의 컴퓨터 서버들을 통해 개발자들 등이 이들 엘리먼트들에 액세스가능할 수 있다. 각각의 엘리먼트는, 그것의 요건들, 입력들, 사용들, 동작, 다른 엘리먼트들과의 상호작용, 및 출력들 측면에서 설명되지만, 이들 엘리먼트들과 함께, 사회적 상호작용을 개발, 테스팅 및 인스턴스화하기 위한 포괄적 환경, 그리고 지속적으로 존재하는 소셜 로봇의 스킬들에 대한 다른 스킬들 및 어셋들을 제공한다. 여기서, 엘리먼트들은, 로봇의 물리적 양상들에 관련된 많은 복잡한 기술적 문제들, 이를테면 포지셔닝, 움직임, 제어, 입력 감지, 디스플레이, 라이트, 사운드, 아로마 생성을 해결하도록 설계된다. 이들 엘리먼트들은 또한, 성능들, 이를테면 인간들과의 라포를 개발하는 것, 인간-유사 감정들을 표현하는 것, 거의 인간의 방식으로 로봇의 환경을 검출하여 이에 응답하는 것 등을 심어주기 위해, 로봇의 하나 또는 그 초과의 프로세싱 설비들 상에서 동작하는 복잡한 알고리즘들에 대한 액세스를 제공하도록 설계된다.Details of methods, tools, user interfaces, and techniques (generally, SDK elements) for developing robotic skills and assets are shown in the accompanying drawings and are described below in conjunction therewith . Generally, developers and the like may access these elements through one or more computer servers adapted to the software, data structures, databases, user interfaces, etc. described herein. Each element is described in terms of its requirements, inputs, uses, operations, interactions with other elements, and outputs, but with these elements it is possible to develop, test, and instantiate social interaction And other skills and assets for the ongoing social robot skills. Here, the elements are designed to solve many complex technical problems related to the physical aspects of the robot, such as positioning, movement, control, input sensing, display, light, sound, aroma generation. These elements can also be used to determine the performance of the robot, such as developing a laptop with humans, representing human-like emotions, detecting and responding to the environment of the robot in a nearly human manner, And is designed to provide access to complex algorithms that operate on one or more processing facilities.

[00527] 소셜 로봇 SDK(Software Developer Kit)는, 소셜 로봇 스킬들(예컨대, 로봇 애플리케이션들)을 구축하기 위한 쉬운 방법을 개발자들에 제공하도록 적응된 웹-기반 애플리케이션 툴이다. 소셜 로봇 SDK는, 다른 것들 중에서 Atom/Electron 및 Node.js와 호환적인 다수의 주요 컴포넌트들을 통해 스킬 개발을 가능하게 한다. 이들은 애니메이션, 거동 생성, 스킬 시뮬레이션, 비언어적 및 준언어적 소셜 큐들과의 자연 언어 상호작용들, 및 로봇 유지보수를 포함한다. SDK를 이용하여, 소셜 로봇의 스피치 기술, 안면 인식 및 추적, 터치 입력 기술, 움직임 시스템들, 비전 시스템들 등, 뿐만 아니라 그것들을 사용하여 구축되는 소셜 로봇의 더 고레벨의 기능들 및 스킬들을 포함하는, 소셜 로봇의 많은 양상들이 액세스된다.[00527] The Software Developer Kit (SDK) is a web-based application tool adapted to provide developers with an easy way to build social robotic skills (eg, robotic applications). The Social Robot SDK enables skill development through a number of key components that are compatible with Atom / Electron and Node.js among others. These include animation, behavior generation, skill simulation, natural language interactions with non-verbal and sub-linguistic social cues, and robot maintenance. Using the SDK, it is possible to use the social robot's speech technology, facial recognition and tracking, touch input technology, motion systems, vision systems, etc., as well as higher-level functions and skills of social robots built using them , Many aspects of social robots are accessed.

[00528] 일 실시예에서, 소셜 로봇 SDK는 적절한 사용자 인터페이스를 통해 아톰(Atom) 패키지 관리자로부터 다운로드될 수 있다. (소셜 로봇-sdk로 불리는) 소셜 로봇 아톰 패키지는 Electron™ 상에서 구축되는 IDE(Integrated Developer Environment)인 Atom™ 상에서 구축될 수 있다. 소셜 로봇 스킬들은, 예컨대, JavaScript에 기록되고, Electron™ 상에서 실행될 수 있다. 그는 JavaScript에서 직접적 API 콜들을 수행함으로써 또는 소셜 로봇 아톰 패키지 GUI에서 직접적으로 소셜 로봇 스킬들을 저작할 수 있다. 소셜 로봇 아톰 패키지는 간단한 UI를 포함하며, Chrome DevTools™, 사전-생성된 애니메이션, 거동들, 이미지들 및 사운드 효과들의 라이브러리, 및 정서 오버레이들 및 비언어적 또는 준언어적 큐들을 갖는 발화된 라인들의 매우 표현적인 캐릭터-풍부 성능을 설계하기 위한 툴들 및 마크업 언어에 대한 액세스에 더해 스크래치로부터 스킬들을 생성하기 위한 능력을 제공할 수 있다.[00528] In one embodiment, the social robot SDK can be downloaded from the Atom package manager via an appropriate user interface. The social robot Atom package (called social robot- sdk) can be built on Atom ™, an integrated developer environment (IDE) built on Electron ™. The social robot skills can be recorded in, for example, JavaScript and executed on Electron ™. He can author social robot skills directly by executing API calls directly in JavaScript or directly from the social robot atom package GUI. The social robot Atom package includes a simple UI and includes a library of Chrome DevTools ™, pre-generated animations, behaviors, images and sound effects, and a library of emotional overlays and utterance lines with nonverbal or semi- Expressive character-rich capabilities, and the ability to create skills from scratch in addition to access to the markup language.

[00529] 소셜 로봇 커맨드 라인 인터페이스(CLI: command line interface)는 커맨드 라인 인터페이스를 통해 스킬들을 직접적으로 생성 및 전개하기 위한 능력을 제공할 수 있다. 소셜 로봇 아톰 패키지와 소셜 로봇 CLI 둘 다는 소셜 로봇 시뮬레이터에 대한 액세스를 제공할 수 있으며, 소셜 로봇 시뮬레이터는, 애니메이션들, 3D 바디 움직임들, 상호작용들, 표현들 및 스킬들의 다른 징후들이 소셜 로봇에 전송되기 전에 미리보여지게 할 수 있다.[00529] The social robot command line interface (CLI) can provide the ability to directly create and deploy skills via a command line interface. Both the social robot Atom package and the social robot CLI are able to provide access to the social robot simulator and the social robot simulator is able to provide other signals of animations, 3D body movements, interactions, representations and skills to the social robot It can be shown in advance before transmission.

[00530] 예시적이며 비제한적인 실시예들에 따라, 소셜 로봇의 애니메이션 시스템은 모터들, 라이트 링, 아이 그래픽들 등을 포함하는 로봇의 전체 바디를 통한 표현 출력을 조정하는 것을 담당할 수 있다. 시스템은 스크립팅된 애니메이션들의 플레이백뿐만 아니라 실시간으로 절차상 렌더링된 표현 거동들, 이를테면, 표현 룩-앳 및 배향 거동들을 지원할 수 있다. 부가적으로, 시스템은, 로봇이, 포즈로부터 포즈로, 또는 하나의 애니메이션 또는 표현 거동의 종료로부터 다음의 것으로 평활하게 트랜지션하도록 보장한다.[00530] According to illustrative, non-limiting embodiments, a social robot's animation system may be responsible for coordinating presentation output through the entire body of the robot, including motors, light rings, eye graphics, . The system can support not only the playback of scripted animations, but also real-time procedurally rendered presentation behaviors, such as representational look-at and orientation behaviors. Additionally, the system ensures that the robot smoothly transitions from pose to pose, or from the end of one animation or presentation behavior to the next.

[00531] PCD SDK의 주요한 엘리먼트들은 다음의 것들을 포함할 수 있다: [00531] The main elements of the PCD SDK may include the following:

· Skill Structure - 대부분의 스킬이 고착되는(adhere) 데이터 구조;· Skill Structure - Data structure where most skills adhere;

· Main Script - 로봇이 초기화될 때 보내지는 스킬 엔트리 포인트들의 세트;· Main Script - A set of skill entry points sent when the robot is initialized;

· Styling - 로봇의 바디 부분들로 스타일 동작들을 수행하기 위한 데이터 구조;· Styling - a data structure for performing style actions with the body parts of the robot;

· Builders 및 Instances - 스킬 엘리먼트들의 구현을 위한 데이터를 반송하는 데이터 구조들;· Builders and Instances - data structures that carry data for the implementation of the skill elements;

· Degrees of Freedom(DOFs) - 애니메이션 모듈에 의해 제어되는 동적 엘리먼트들의 표현;· Degrees of Freedom (DOFs) - Representation of dynamic elements controlled by an animation module;

· Animations - 스크립팅된 애니메이션들의 플레이백을 제어함;· Animations - Controls playback of scripted animations;

· Transitions - 하나의 애니메이팅된 거동으로부터 다음 거동으로의 평활한 모션을 보장함;· Transitions - ensures smooth motion from one animated behavior to the next;

· Gaze/Orient Behaviors - 소셜 로봇의 부분들을 관심 위치들을 향하도록 표현방식으로 지향시키기 위해 사용됨;· Gaze / Orient Behaviors - used to orient parts of the social robot in an expressive way towards the points of interest;

· Animation Editor - 별개의 애니메이션 계층들을 사용하여 상호작용식으로 애니메이션 파일들을 생성하기 위한 그래픽 인터페이스;· Animation Editor - A graphical interface for interactively creating animation files using separate animation layers;

· Behavior Editor - 각각의 스킬에 대한 거동들의 트리의 편집을 허가함;· Behavior Editor - Allows editing of the tree of behaviors for each skill;

· Speech Rules Editor - 스피치가 로봇의 자연 언어 이해 또는 청취 성능을 통해 검출될 때 사용될 규칙들을 생성함; 및· Speech Rules Editor - creates rules to be used when speech is detected through natural language understanding or listening performance of the robot; And

· MIM 편집기 - 자연적 사운딩 다이얼로그에 대한 상호작용 다이얼로그 규칙들 및 기능성을 생성함.· MIM Editor - Generates interactive dialog rules and functionality for natural sounding dialogs.

PCD SDKPCD SDK

[00532] PCD-특정 소프트웨어 개발 키트의 아키텍처의 블록 다이어그램을 도시하는 도 27을 참조하면, PCD Software Developer Kit(SDK)(2704)는 PCD 스킬들(로봇 애플리케이션들)을 구축하기 위한 용이한 방식을 개발자들에게 제공하도록 적응된 웹-기반 애플리케이션 툴로서 동작할 수 있다. PCD SDK는 4개의 주요 컴포넌트들로 구성되며, 이들 중 일부는 별개의 사용자 인터페이스들, 툴 세트, API들 등을 가질 수 있다. 주요 컴포넌트들은 애니메이션 컴포넌트(2706), 거동 생성 컴포넌트(2702), 스킬 시뮬레이션 컴포넌트 및 로봇 유지보수 컴포넌트를 포함한다. SDK를 이용하여, 그는 PCD의 스피치 기술, 안면 인식 및 추적하는 터치 입력 기술, 및 다른 센서리 입력들 및 표현 출력들에 액세스한다.[00532] Referring to Figure 27, which illustrates a block diagram of the architecture of a PCD-specific software development kit, the PCD Software Developer Kit (SDK) 2704 provides an easy way to build PCD skills (robotic applications) Lt; RTI ID = 0.0 &gt; web-based &lt; / RTI &gt; application tool adapted to provide to developers. The PCD SDK consists of four main components, some of which may have separate user interfaces, tool sets, APIs, and so on. The main components include an animation component 2706, a behavior generating component 2702, a skill simulation component, and a robot maintenance component. Using the SDK, he accesses PCD's speech technology, facial recognition and tracking touch input technology, and other sensor inputs and presentation outputs.

[00533] 그는 프로그래밍 언어, 이를테면, JavaScript에서 직접적 API 콜들을 수행함으로써 또는 컴포넌트 사용자 인터페이스들에서 직접적으로 PCD 스킬들을 저작할 수 있다. PCD SDK는 사용자 인터페이스들을 포함할 수 있으며, 사전-생성된 애니메이션들, 거동들, 이미지들 및 사운드 효과들의 라이브러리 등에 대한 액세스에 더해 스크래치로부터 스킬들을 생성하기 위한 능력을 제공할 수 있다.[00533] He can author PCD skills directly in a programming language, such as by executing direct API calls in JavaScript or directly in component user interfaces. The PCD SDK may include user interfaces and may provide the ability to create skills from scratch in addition to accessing pre-created animations, behaviors, images, and libraries of sound effects and the like.

[00534] PCD SDK는 PCD가 수행할 수 있는 스킬들을 생성하는 것을 가능하게 할 수 있다. 예시적이며 비제한적인 실시예들에 따라, 스킬들은 SDK가 생성하는 것을 가능하게 할 수 있는 기본 구조에 대한 고착(adherence)을 요구할 수 있다. 예시적인 실시예들에서, 아래에서 설명된 구조는, 본원에서 설명되는 거동 및 애니메이션 편집기들과 같은 SDK의 스킬 생성기 성능들을 통해 새로운 스킬이 생성될 때 디폴트로 개시될 수 있다. 각각의 스킬은, 스킬의 사용자 인터페이스(UI)를 구현하고, 스타일 파일에 대한 링크, 코드의 구분 또는 섹션을 정의하는 태그, 모든 UI 엘리먼트들을 포함하는 PCD의 id와 같은 엘리먼트들을 포함하는 index.html 파일을 갖도록 요구될 수 있다.[00534] The PCD SDK may enable to generate the skills that the PCD can perform. According to exemplary and non-limiting embodiments, the skills may require adherence to the underlying structure that may enable the SDK to generate. In the exemplary embodiments, the structure described below may be initiated by default when a new skill is created through skill generator capabilities of the SDK, such as the behavior and animation editors described herein. Each skill implements a skill's user interface (UI), a link to the style file, a tag defining a section or section of code, an index.html containing elements such as the id of the PCD containing all the UI elements File. &Lt; / RTI &gt;

[00535] 각각의 스킬은 또한, PCD에 의한 스킬의 실행 동안 하나 또는 그 초과의 스킬 기능들을 보내는 것을 담당하는 메인 스크립트로 구성될 수 있다.[00535] Each skill may also consist of a main script that is responsible for sending one or more skill functions during the execution of the skill by the PCD.

[00536] 스킬의 액션들은, 한 액션으로부터 다른 액션으로의, 이를테면, 포토그래프를 촬영하는 액션으로부터, 캡처된 이미지를 디스플레이하는 액션으로의 현실적인 트랜지션을 가능하게 하기 위한 액션들 전에 그리고/또는 그 후에, 특정 마진들 또는 패딩들을 갖는 PCD SDK로 구성될 수 있다. PCD SDK는 스킬들, 스킬들 간의 트랜지션들, 및 관련 PCD 표현들을 구성하는 것을 가능하게 한다. [00536] The actions of a skill may be performed before and / or after actions to enable a real transition from one action to another, such as an action photographing a photograph, an action displaying a captured image, , A PCD SDK with specific margins or padding. The PCD SDK makes it possible to configure skills, transitions between skills, and associated PCD representations.

[00537] PCD 커맨드 라인 인터페이스(CLI)는 커맨드 라인 인터페이스를 통해 스킬들을 직접적으로 생성 및 전개하기 위한 능력을 제공할 수 있다. PCD 아톰 패키지와 PCD CLI 둘 다는 PCD 시뮬레이터에 대한 액세스를 제공할 수 있으며, PCD 시뮬레이터는, 애니메이션들, 3D 바디 움직임들, 상호작용들, 및 표현들이 PCD에 전송되기 전에 미리보여지게 할 수 있다.[00537] The PCD command line interface (CLI) can provide the ability to directly create and deploy skills via a command line interface. Both the PCD Atom package and the PCD CLI can provide access to the PCD simulator, which allows the animations, 3D body movements, interactions, and representations to be previewed before being sent to the PCD.

거동들 & 거동 편집기Behaviors & Behavior Editor

[00538] 도 27을 참조로, SDK(2704)의 거동 편집기(2702)는 트리들, 노드들, 리프들, 페어런츠들, 데코레이터들 등을 포함할 수 있다. 거동들은 SDK(2704)에 의해 구성, 순서화, 시뮬레이팅 및 전개될 수 있는 부류들로서 SDK(2704)에서 액세스가능할 수 있다. 예시적인 거동 부류들은, Blink, ExecuteScript, ExecuteScriptAsync, Listen, ListenEmbedded, ListenJs, LookAt, Nul, Parallel, PlayAnimation, PlayAudio, Point3D, Random, ReadBarcode, Sequence, Subtree, SubtreeJs, Switch, TakePhoto, TextToSpeech, TextToSpeechJs, TimeoutJs 등을 포함한다.[00538] Referring to FIG. 27, the behavior editor 2702 of the SDK 2704 may include trees, nodes, leaves, parents, decorators, and the like. The behaviors may be accessible in the SDK 2704 as a class that can be configured, ordered, simulated and deployed by the SDK 2704. [ Exemplary behavior classes include Blink, ExecuteScript, ExecuteScriptAsync, Listen, ListenEmbedded, ListenJs, LookAt, Nul, Parallel, PlayAnimation, PlayAudio, Point3D, Random, ReadBarcode, Sequence, Subtree, SubtreeJs, Switch, TakePhoto, TextToSpeech, TextToSpeechJs, .

[00539] 거동 트리들은 자율적인 에이전트들의 거동 및 제어 흐름을 모델링하는 데 사용될 수 있는 표현 툴이다. 그들은 동시적 액션들 및 판정-수행 프로세스들을 조정하기 위한 그들의 능력에 대해 로봇 공학 및 비디오 게임 산업들에서 대중적이다. 상태 머신들(임의의 정해진 시간에 단일의 활성 상태가 있음)과 달리, 거동 트리들은 다수의 거동들을 병렬로 실행할 수 있다. 이것은 그들을 모든 PCD 센서리 입력을 표현 출력으로 조정하는 데 매우 강력한 툴들로 만든다. 거동 트리들은 계층적이며, 상태 머신들과는 달리, 이들은 그래프들로 표현된다.[00539] Behavioral trees are expression tools that can be used to model the behavior and control flow of autonomous agents. They are popular in the robotics and video game industries for their ability to coordinate concurrent actions and decision-making processes. Unlike state machines (which have a single active state at any given time), behavior trees can execute multiple behaviors in parallel. This makes them very powerful tools for adjusting all PCD sensor input to the expressive output. Behavioral trees are hierarchical, and unlike state machines, they are represented by graphs.

[00540] 각각의 생성된 스킬은 디폴트로 main.bt 거동 트리를 포함할 수 있다. 이것은 스킬이 실행될 때 실행되는 거동 트리이다. 그는 main.bt가 참조할 부가적 거동 트리들을 스킬에 생성할 수 있다. 거동들은 달리 특정되지 않는다면, 거동 트리의 최상부에서부터 최하부까지 실행할 수 있다.[00540] Each generated skill may, by default, include a main.bt behavior tree. This is a behavior tree that is executed when the skill is executed. He can create additional behavioral trees on the skill that main.bt will reference. The behavior can be performed from the top to the bottom of the behavior tree, unless otherwise specified.

[00541] 도 28을 참조로, 2개의 거동들이 동시에 실행되고, 그런 다음 제2 거동이 실행되고, 그런 다음 제3 거동이 실행되는 거동 트리 스니펫(2800)의 예시적이며 비제한적인 실시예가 예시된다. 구체적으로, 카메라 애니메이션을 플레이하고, 사진을 촬영하는 것은, 제1 거동의 일부로서 병렬로 먼저 수행된다. 완료 시에, 포토들을 디스플레이하고 디스플레이로부터 포토를 제거하는 것을 포함하는 제2 및 제3 거동들이 각각 수행된다.[00541] Referring to FIG. 28, an exemplary, non-limiting example of a behavior tree snippet 2800 in which two behaviors are executed simultaneously, then a second behavior is performed, and then a third behavior is performed . Specifically, playing the camera animation and taking a picture is performed first in parallel as part of the first behavior. Upon completion, the second and third behaviors, including displaying the photos and removing the photo from the display, respectively, are performed.

[00542] 거동은 액션을 수행하는 거동 트리의 노드이다. 이것은 (오디오 파일을 플레이하는 것과 같은) 매우 간단한 액션이거나 또는 (누군가의 이름을 요청하는 것과 같은) 복잡한 액션일 수 있다.[00542] A behavior is a node of a behavior tree that performs an action. This can be a very simple action (such as playing an audio file) or a complex action (such as requesting someone's name).

[00543] 거동들은 적어도 4개의 별개의 상태들을 취할 수 있다:[00543] The behaviors can take at least four distinct states:

a. INVALID: 거동이 아직 시작되지 않았다.a. INVALID: The behavior has not yet begun.

b. IN_PROGRESS: 거동은 애니메이션을 플레이하거나 또는 텍스트-대-스피치를 사용하여 말하는 것과 같은 일부 액션을 활발히 수행하고 있다.b. IN_PROGRESS: Behavior is actively performing some actions, such as playing animations or using text-to-speech.

c. SUCCEEDED: 거동은 자신의 태스크를 성공적으로 끝마쳤다.c. SUCCEEDED: The behavior has successfully completed its task.

d. FAILED: 거동은 그것의 태스크를 성공하지 못하게 끝마쳤다. 이것은 반드시 에러가 발생했음을 의미한 것은 아님이 주목된다. d. FAILED: The behavior finished to make its task unsuccessful. It is noted that this does not necessarily mean that an error has occurred.

[00544] 리프 거동은 어떤 칠드런도 갖지 않는다. 그것은 오디오 파일을 플레이하는 것 또는 PCD 말하기를 수행하는 것과 같은 하나의 액션을 수행하는 것을 담당한다.[00544] The leaf behavior has no children. It is responsible for performing one action, such as playing an audio file or performing a PCD speaking.

[00545] 도 29를 참조로, 리프 거동의 예시적이며 비제한적인 실시예가 예시된다. 이러한 예시된 리프 거동은 애니메이션을 플레이하고, 포토를 촬영하며, 타임아웃 동안 일시정지하고, JavaScript 코드를 실행한다.[00545] Referring to Figure 29, an exemplary, non-limiting embodiment of leaf behavior is illustrated. These exemplified leaf behaviors play animations, take photos, pause during timeouts, and execute JavaScript code.

[00546] 일반적으로, 페어런츠 거동은 칠드런을 가질 수 있다. 그것의 칠드런은 리프 거동들 또는 다른 페어런츠 거동들일 수 있다. SDK(2704)에는, 4개의 코어 페어런츠 거동들이 존재한다.[00546] In general, the parentant behavior can have children. Its children can be leaf behaviors or other parental behaviors. In the SDK 2704, there are four core parental behaviors.

a. Sequence: Sequence는 그것의 칠드런을 최상부에서부터 최하부까지 순서대로 플레이할 것이다. 그것의 칠드런 중 임의의 차일드가 IN_PROGRESS 상태인 동안, Sequence는 또한 IN_PROGRESS 상태에 있을 것이다. Sequence의 칠드런 모두가 SUCCESS 상태로 리턴하는 경우, Sequence는 SUCCESS 상태로 리턴할 것이다. 그것의 칠드런 중 임의의 차일드가 FAILED 상태로 리턴하자마자, Sequence는 즉시 FAILED 상태로 리턴할 것이다.a. Sequence : Sequence will play its children in order from top to bottom. While any child of its children is in the IN_PROGRESS state, the Sequence will also be in the IN_PROGRESS state. If all children of the sequence return to the SUCCESS state, the Sequence will return to the SUCCESS state. As soon as any of its children returns to the FAILED state, the Sequence will immediately return to the FAILED state.

b. Parallel: Parallel 페어런츠 거동은 동시에 그것의 칠드런 모두를 시작시킬 수 있다. Parallel은 그것의 칠드런 중 하나의 차일드가 실패할 때까지(그런 경우 Parallel이 FAILED 상태를 리턴할 것임) 또는 그것의 칠드런 모두가 SUCCEEDED일 때까지(그런 경우, Parallel은 SUCCESS 상태로 리턴할 것임) IN_PROGRESS를 계속 유지할 것이다.b. Parallel : Parallel parental behavior can start all of its children at the same time. Parallel will wait until one of its children fails (in which case Parallel will return a FAILED state) or until all of its children are SUCCEEDED (in which case Parallel will return to SUCCESS state) IN_PROGRESS .

c. Switch: Switch 거동은 거동 트리들이 분기 로직을 처리하는 방법이다. Switch는 차일드가 성공할 때까지 순차적으로 그것의 칠드런 모두를 테스트할 것이며, 이 포인트에서 Switch는 그 차일드를 실행할 것이고, 그런 다음 SUCCEEDED 상태로 리턴한다. Switch는 그것의 칠드런 모두가 실패한 경우에도 항상 성공할 것이다.c. Switch : Switch behavior is how behavior trees handle branch logic. The switch will sequentially test all its children until the child succeeds, at which point the Switch will execute the child and then return to the SUCCEEDED state. The switch will always succeed even if all its children fail.

d. Random: 랜덤 거동은 그것의 칠드런 중 하나의 차일드를 랜덤으로 선정할 것이다. 그 차일드가 실패하는 경우, Random은 실패할 것이다. 그 차일드가 성공하는 경우, 랜덤은 성공할 것이다.d. Random : The random behavior will randomly select one of its children. If the child fails, Random will fail. If the child succeeds, the random will succeed.

[00547] 도 30을 참조로, 시퀀스 및 병렬 페어런츠 거동들 둘 다의 예시적이며 비제한적인 실시예가 예시된다. Sequence 페어런츠 거동은 그것의 칠드런을 최상부에서부터 최하부까지 순서대로 실행한다. Parallel 페어런트 거동은 그것의 칠드런 모두를 동시에 실행한다.[00547] Referring to FIG. 30, an exemplary, non-limiting embodiment of both sequence and parallel parental behaviors is illustrated. Sequence The parental behavior executes its children in order from top to bottom. Parallel parent behavior performs all of its children simultaneously.

[00548] 데코레이터들은 트리의 노드들이 아니다. 데코레이터들은 거동에 부가되어 그 거동의 상태를 수정할 수 있는 컴포넌트들이다. 데코레이터들은 네 가지 것들을 할 수 있다:[00548] Decorators are not nodes in the tree. Decorators are components that can be added to a behavior to modify its behavior. Decorators can do four things:

a. 어떤 조건이 충족될 때까지 거동이 시작하는 것을 방지한다.a. Thereby preventing the behavior from starting until certain conditions are met.

b. IN_PROGRESS인 거동을 성공하도록 강제한다.b. Force IN_PROGRESS behavior to succeed.

c. IN_PROGRESS인 거동을 실패하도록 강제한다.c. Force IN_PROGRESS behavior to fail.

d. 성공 또는 실패한 거동을 다시 시작한다.d. Resume the success or failure behavior.

[00549] SDK(2704)를 통해 액세스가능한 예시적인 데코레이터 부류들은 다음을 포함한다: [00549] Exemplary decorator classes accessible via SDK 2704 include the following:

a. 데코레이팅하는 거동이 시작되기 전에 단일 체크를 수행하는 Case. 그 체크가 실패하는 경우, Case가 거동에 실패한다.a. A Case that performs a single check before the decorating behavior begins. If the check fails, the Case fails to behave.

b. 평가되고 있는 조건이 충족되는 경우, 데코레이팅하는 거동을 명시적으로 인터럽트하는 FailOnCondition.b.  A FailOnCondition that explicitly interrupts the decorating behavior when the condition being evaluated is met.

c. 애니메이션이 그 애니메이션의 이벤트 계층에서 이벤트를 시동(fire)할 때, 해당 거동의 실행을 시작하는 StartOnAnimEvent.c.  A StartOnAnimEvent that starts the execution of the behavior when the animation fires the event in the event layer of the animation.

d. 평가하고 있는 조건이 충족될 때까지 데코레이팅하는 거동이 시작하는 것을 방지하는 StartOnCondition.d.  A StartOnCondition that prevents the decorating behavior from starting until the evaluating condition is satisfied.

e. 거동 트리의 글로벌 방출기로부터 이벤트가 방출될 때까지 데코레이팅하는 거동이 시작하는 것을 방지하는 StartOnEvent.e.  StartOnEvent, which prevents the decorating behavior from starting until the event is emitted from the global emitter of the behavior tree.

f. 평가하고 있는 조건이 충족되는 경우, 데코레이팅하는 거동을 명시적으로 인터럽트하는 SucceedOnCondition.f.  A SucceedOnCondition that explicitly interrupts the decorating behavior when the evaluating condition is met.

g. 특정된 오디오 어구가 발견될 때, 데코레이팅하는 거동에 성공하는 SucceedOnEmbedded.g.  When a specified audio phrase is found, SucceedOnEmbedded succeeds in the behavior of decorating.

h. 거동 트리의 글로벌 방출기로부터 이벤트가 방출될 때, 데코레이팅하는 거동에 성공하는 SucceedOnEvent.h.  A SucceedOnEvent that succeeds in decorating behavior when an event is emitted from the global emitter of the behavior tree.

i. 오디오 스피치 인식을 수행하고 규칙들 파일에 따라 결과들을 적용하고 파싱하는 SucceedOnListen.i.  SucceedOnListen to perform audio speech recognition and apply and parse results according to the rules file.

j. 오디오 스피치 인식을 수행하고. 규칙들 파일에 따라 결과들을 파싱하고 적용하는 SucceedOnListenJs.j.  Perform audio speech recognition and. SucceedOnListenJs parses and applies the results according to the rules file.

k. 특정된 양의 시간 후에, 데코레이팅하는 거동을 실패하도록 강제하는 TimeoutFail.k.  TimeoutFail, which forces the decorating behavior to fail after a specified amount of time.

l. 특정된 양의 시간 후에, 데코레이팅하는 거동을 성공하도록 강제하는 TimeoutSucceed.l.  TimeoutSucceed, which forces the decorating behavior to succeed after a specified amount of time.

m. 특정된 양의 시간 후에, 데코레이팅하는 거동을 성공하도록 강제하는 TimeoutSucceedJs.m.  TimeoutSucceedJs, which forces the decorating behavior to succeed after a specified amount of time.

n. 컴포넌트가 성공적으로 성공한 후에 조건을 평가할 WhileCondition. 평가되고 있는 조건이 충족되는 경우, 컴포넌트가 다시 시작된다. 조건이 충족되지 않는 경우, 컴포넌트의 상태가 데코레이터를 활성화한 함수로 전달(리턴)된다.n.  A WhileCondition that evaluates a condition after a component has successfully succeeded. If the condition being evaluated is met, the component is restarted. If the condition is not met, the state of the component is passed back to the function that activated the decorator.

[00550] 도 31을 참조로, 조건이 충족될 때까지 Sequence 거동이 시작하는 것을 방지하는 Case 데코레이터의 예시적이며 비제한적인 실시예가 예시된다. StartOnAnimEvent 데코레이터는 PlayAnimation 거동에서 카메라 애니메이션으로부터 이벤트가 방출될 때까지 TakePhoto 거동이 시작하는 것을 방지한다.[00550] Referring to FIG. 31, an exemplary, non-limiting embodiment of a Case decorator is illustrated that prevents Sequence behavior from starting until conditions are met. The StartOnAnimEvent decorator prevents the TakePhoto behavior from starting until the event is released from the camera animation in the PlayAnimation behavior.

[00551] 도 32를 참조로, 스킬의 메인 거동 트리의 사용자 인터페이스 렌더링의 예시적이며 비제한적인 실시예가 예시된다.[00551] Referring to Figure 32, an illustrative, non-limiting embodiment of user interface rendering of the skill's main behavior tree is illustrated.

[00552] 각각의 스킬은 디폴트로 메인 거동 트리를 포함한다. 이는 스킬이 실행될 때 실행하는 거동 트리이다. main.bt가 참조할 부가적 거동 트리들을 스킬에 생성할 수 있다.[00552] Each skill includes a main behavior tree by default. This is the behavior tree that runs when the skill is executed. You can create additional behavioral trees to be referenced by main.bt in the skill.

[00553] 거동들은 달리 특정되지 않는다면, 거동 트리의 최상부에서부터 최하부까지 실행한다.[0055] The behaviors are performed from the top to the bottom of the behavior tree, unless otherwise specified.

[00554] 도 33을 참조로, Sequence 페어런츠의 차일드인 Parallel 페어런츠의 차일드로서 TextToSpeech 리프 거동의 예시적이며 비제한적인 실시예가 예시된다. TextToSpeech 거동은 StartOnAnimEvent 데코레이터 및 설명을 갖는데, 거동 트리에 부가될 수 있는 세 가지 타입들의 거동들: 페어런츠 거동들, 리프 거동들 및 데코레이터들이 존재한다.[0055] Referring to FIG. 33, an exemplary, non-limiting embodiment of the TextToSpeech leaf behavior is illustrated as a child of a Sequence parent, a Parallel parent. The TextToSpeech behavior has a StartOnAnimEvent decorator and a description. There are three types of behaviors that can be added to the behavior tree: parental behaviors, leaf behaviors, and decorators.

[00555] 페어런츠 거동들은 차일드 거동들을 가질 수 있다. 칠드런은 리프 거동들 또는 다른 페어런츠 거동들일 수 있다.[00555] The parentant behaviors may have childhood behaviors. Children can be leaf behaviors or other parental behaviors.

[00556] Behavior Editor에는 4개의 페어런츠 거동들이 존재한다:[00556] There are four parental behaviors in the Behavior Editor:

a. Sequence: 칠드런을 최상부에서부터 최하부까지 순서대로 실행한다.a. Sequence: Run children in order from top to bottom.

b. Parallel: 한 번에 칠드런을 모두 실행한다.b. Parallel: Runs all children at once.

c. Switch: 최상부에서부터 최하부까지 계승되는(succeed) 제1 차일드를 실행한다.c. Switch: Executes the first child succeeding from the top to the bottom.

d. Random: 칠드런 중 랜덤 차일드를 실행한다.d. Random: Runs a random child among the children.

[00557] 일부 실시예들에서, 리프 거동들은 다른 거동들을 포함할 수 없다. 이러한 리프 거동들은 오디오 파일을 플레이하거나 PCD를 말하게 하는 것과 같은 단일 액션을 실행한다.[00557] In some embodiments, leaf behaviors can not include other behaviors. These leaf behaviors perform a single action, such as playing an audio file or telling a PCD.

[00558] 예시된 바와 같이, 데코레이터들은 거동이 시작, 성공 또는 실패할 때 수정한다. 데코레이터들은 또한 거동들을 다시 시작할 수 있다. [0055] As illustrated, the decorators modify when the behavior begins, succeeds, or fails. Decorators can also resume their behavior.

[00559] 도 34를 참조로, 측정가능한 조건에 기반하여 거동의 상태를 변경하도록 구성된 데코레이터의 예시적이며 비제한적인 실시예가 예시된다.[00559] Referring to Figure 34, an illustrative, non-limiting embodiment of a decorator configured to change the state of behavior based on measurable conditions is illustrated.

[00560] 도 35를 참조로, 거동의 인수들을 특정하기 위한 사용자 인터페이스의 예시적이며 비제한적인 실시예가 예시된다.[00560] Referring to Figure 35, an illustrative, non-limiting embodiment of a user interface for specifying the arguments of a behavior is illustrated.

[00561] Behavior Tree에서 거동이 선택될 때, 그 거동에 이용가능한 임의의 인수들이 Behavior Arguments 페인에 나타난다. Decorator Pane에서 데코레이터가 선택될 때, 그 데코레이터에 대한 임의의 인수들이 Decorator Arguments pane에 나타난다.[00561] When a behavior is selected in the Behavior Tree, any arguments available for that behavior appear in the Behavior Arguments pane. When a decorator is selected in the Decorator Pane, any arguments to that decorator appear in the Decorator Arguments pane.

[00562] Behavior Editor에는 8가지 타입들의 인수들이 존재한다:[00562] There are eight types of arguments in the Behavior Editor:

a. stringa. string

b. fileb. file

c. integerc. integer

d. numberd. number

e. enume. enum

f. booleanf. boolean

g. functiong. function

h. SSML subseth. SSML subset

애니메이션들 & 애니메이션 편집기Animations & Animation Editor

[00563] 예시적이며 비제한적인 실시예들에 따르면, PCD의 애니메이션 시스템은 모터들, 라이트 링, 아이 그래픽들 등을 포함하는 로봇의 전체 바디에 걸친 표현 출력의 조정을 담당할 수 있다. 시스템은 표현 응시 및 배향 거동들뿐만 아니라 스크립팅된 애니메이션들의 플레이백을 지원할 수 있다. 부가적으로, 시스템은 로봇이 포즈에서 포즈로 또는 하나의 애니메이션 또는 표현 거동의 종료에서 다음 거동으로 평활하게 트랜지션하는 것을 보장한다.[00563] According to exemplary and non-limiting embodiments, the animation system of the PCD may be responsible for coordinating the representation output across the entire body of the robot, including motors, light rings, eye graphics, and the like. The system can support playback of scripted animations as well as presentation and orientation behaviors. Additionally, the system ensures that the robot smoothly transitions from pose to pose, or from the end of one animation or presentation behavior to the next.

[00564] 구성, 활성화 및 실행/제어에 걸쳐 빌더들 및 인스턴스들의 생활주기의 예시를 도시하는 도 36을 참조하면, 빌더들은 구성 정보 및 다른 데이터를 저장하는 데 사용될 수 있으며, 그런 다음 액티브 인스턴스 핸들들을 유발하는 데 사용(재사용)될 수 있다. 빌더들 및 인스턴스들의 몇 가지 예들은 AnimationInstances를 유발하는 AnimationBuilders, LookatInstances를 유발하는 LookatBuilders, "중간" 모션들을 유발하는 TransitionBuilders 등을 포함할 수 있다. 빌더(3602)는 구성 프로세스 단계(3604) 동안 구성될 수 있다. 액티브 프로세스 단계(3608) 동안, 빌더(3602)는 예컨대, 현재 파라미터들에 기반하여 빌더가 빌더의 인스턴스(3610)를 생성하는 것을 개시할 수 있는 시작 입력을 수신할 수 있다. 실행/제어 프로세스(3612) 동안, 빌더(3602)는 재사용될 준비가 되어 있을 수 있는 한편, 개시된 인스턴스(3610)는 이를테면, 모터/그래픽/LED 값들을 PCD의 동작 엘리먼트들에 제공하는 액션들을 수행할 수 있다. 실시예들에서, 빌더의 개시된 인스턴스는 단지 한 번만 사용될 수 있다.[00564] Referring to FIG. 36, which illustrates an example of the life cycle of builders and instances throughout configuration, activation, and execution / control, builders can be used to store configuration information and other data, Can be used (reused) to induce them. Some examples of builders and instances may include AnimationBuilders that cause AnimationInstances, LookatBuilders that cause LookatInstances, TransitionBuilders that cause "intermediate" motions, and so on. Builder 3602 may be configured during configuration process step 3604. During the active process phase 3608, the builder 3602 may receive a start input that may, for example, initiate a builder to create an instance 3610 of the builder based on current parameters. During the execution / control process 3612, the builder 3602 may be ready to be reused, while the initiated instance 3610 may perform actions that provide, for example, motor / graphics / LED values to the operating elements of the PCD can do. In embodiments, the disclosed instance of the builder may be used only once.

[00565] 로봇의 개개의 자유도(DOF)들, DOF 값 타입들 및 공통 DOF 그룹핑들의 맵을 제공하는 다이어그램을 도시하는 도 37을 참조하면, 애니메이트 모듈을 통해 동기화되는 동적 엘리먼트들이 자유도들로서 표현될 수 있다. DOF들은 PCD SDK의 사용자가 제어할 수 있는 애니메이트 모듈의 가장 작은 분리가능한 유닛들을 나타낼 수 있다. 일부 DOF들은 PCD의 바디 모터들의 회전을 제어하고, 다른 DOF들은 LED 라이트 링의 컬러 채널들을 제어하며, 다른 DOF들은 온-스크린 아이 및 오버레이에 관련된 그래픽 파라미터들을 제어한다. DOF들은 개별적으로 제어될 수 있지만, 이들은 통상적으로 다른 DOF들과 DOF 세트들로 그룹화된다. 흔히 사용되는 DOF 세트들이 예컨대, SDK를 통해 이용가능한 자원들에 제공된다. 도 37은 로봇의 개개의 DOF들(이탤릭체로), DOF 값 타입들 및 공통 DOF 그룹핑들(CAPS로)의 맵을 제공한다:[00565] Referring to FIG. 37, which illustrates a diagram that provides a map of the individual degrees of freedom (DOF), DOF value types, and common DOF groupings of the robot, the dynamic elements that are synchronized via the animate module are represented as degrees of freedom . The DOFs can represent the smallest detachable units of the animate module that the user of the PCD SDK can control. Some DOFs control the rotation of the body motors of the PCD, other DOFs control the color channels of the LED light ring, and other DOFs control the graphics parameters associated with the on-screen eye and overlay. Although DOFs can be controlled individually, they are typically grouped into different DOFs and DOF sets. Commonly used DOF sets are provided, for example, to the resources available through the SDK. Figure 37 provides a map of the robot's individual DOFs (in italics ), DOF value types, and common DOF groupings (into the CAPS):

[00566] 가장 최근에 트리거된 애니메이트 인스턴스에 의한 배타적인 DOF 소유권의 정책에 따르는 애니메이트 모듈을 도시하는 도 38을 참조하면, PCD SDK의 애니메이트 모듈은 가장 최근에 트리거된 인스턴스에 의한 배타적인 DOF 소유권의 정책을 따를 수 있다. 도 38에서, 로봇의 바디, LED 및 아이를 제어하고 있는 인스턴스 A가 PCD의 바디 DOF들만을 제어하도록 구성된 인스턴스 B에 의해 인터럽트된다. 인스턴스 B가 트리거되자마자, 인스턴스 B는 로봇의 바디에 대한 배타적인 제어를 가정하는 한편, 인스턴스 A는 로봇의 LED 및 아이를 계속해서 제어한다. DOF 제어의 다양한 다른 조합들 및 오버랩핑하는 인스턴스들이 본원에서 통합된다.[00566] Referring to FIG. 38, which shows an animated module according to the policy of exclusive DOF ownership by the most recently triggered animated instance, the animated module of the PCD SDK generates an exclusive DOF ownership of the most recently triggered instance You can follow the policy. In Figure 38, instance A, which controls the robot's body, LED and eye, is interrupted by instance B configured to control only the body DOFs of the PCD. As soon as instance B is triggered, instance B assumes exclusive control over the robot's body while instance A continues to control the robot's LEDs and children. Various other combinations of DOF control and overlapping instances are incorporated herein.

[00567] 빌더(3602)에 의해 제공되는 애니메이션의 빌더 인스턴스(3610)에 의해 어떤 DOF가 제어되는지를 결정하는 것 외에도, 애니메이션 동작 제어는 파라미터들 또는 인수들, 이를테면 setSpeed(3902), setNumLoops(3904) 또는 관련된 방법들을 포함하여 도 39에 도시된 것들에 의해 조정될 수 있다.[00567] In addition to determining which DOF is controlled by the builder instance 3610 of the animation provided by the builder 3602, the animation operation control may include parameters or arguments, such as setSpeed 3902, setNumLoops 3904 ) Or related methods, as shown in FIG.

[00568] 애니메이션들 간의 트랜잭션을 구성하는 것을 도시하는 도 40을 참조하면, 트랜지션들은 하나의 애니메이팅된 거동의 종료에서부터 다음 거동의 시작까지 평활한 모션을 보장한다. 애니메이션(들)을 구성하기 위해 PCD SDK의 사용자에 의해 AnimationBuilder(4002)의 인스턴스가 선택될 때, SDK는 PCD의 현재 상태(예컨대, PCD의 바디 상태)로부터 선택된 애니메이션의 시작까지의 트랜지션 모션(4004)을 자동적으로 생성할 수 있다. 이러한 트랜지션 모션은 도 40에 예시된 바와 같이, 애니메이션 인스턴스 전에 스킬 흐름에 삽입될 수 있다. PCD 현재 상태와 선택된 애니메이션에 대한 PCD 상태가 이미 잘 정렬되어 있는 경우, 트랜지션 모션은 짧은(또는 심지어 제로) 지속기간을 가질 수 있다.[00568] Referring to FIG. 40, which illustrates composing a transaction between animations, transitions ensure smooth motion from the end of one animated behavior to the start of the next. When an instance of the AnimationBuilder 4002 is selected by the user of the PCD SDK to construct the animation (s), the SDK will generate a transition motion 4004 from the current state of the PCD (e.g., the body state of the PCD) ) Can be automatically generated. Such a transition motion may be inserted into the skill flow before the animation instance, as illustrated in FIG. If the PCD current state and the PCD state for the selected animation are already well aligned, the transition motion may have a short (or even zero) duration.

[00569] 예시적이며 비제한적인 실시예들에 따르면, PCD SDK의 AnimationBuilder(4002) 기능은, AnimationBuilder(4002)에 의해 정의되는 애니메이션에 대한 인바운드 트랜지션을 생성하는 데 사용될 수 있는 시스템-디폴트 TransitionBuilder(4004)를 갖게 사전-구성될 수 있다. 이러한 디폴트 거동은 빌더의 setTransitionIn 기능을 통해 수정될 수 있다. 이러한 기능은 SDK의 사용자 인터페이스를 통해 또는 커맨드, 이를테면, animationBuilder.setTransitionIn(transitionBuilder)를 통해 세팅될 수 있다. SDK는 적어도 2개의 기본 타입들의 트랜지션 빌더들을 제시할 수 있다. 예컨대, LinearTransitionBuilders는 간단한 선형 혼합을 사용하여 트랜지션 모션들을 생성할 수 있지만, AccelerationTransitionBuilders는 구성가능한 가속 제한들을 따르는 모션들을 생성할 수 있다. 트랜지션 빌더들은 스크래치로부터 생성되거나 또는 기존의 트랜지션을 복제 및 수정함으로써 생성될 수 있으며; SDK는 트랜지션들을 생성 및 커스터마이징하는 이러한 모드들 중 임의의 것을 가능하게 할 수 있다.[00569] According to exemplary and non-limiting embodiments, the AnimationBuilder 4002 function of the PCD SDK is a system-default TransitionBuilder (4002) function that can be used to generate inbound transitions for the animation defined by the AnimationBuilder 4002 4004). &Lt; / RTI &gt; This default behavior can be modified by the builder's setTransitionIn function. These functions can be set via the SDK's user interface or through commands such as animationBuilder.setTransitionIn (transitionBuilder). The SDK can present transition builders of at least two basic types. For example, LinearTransitionBuilders can create transition motions using simple linear blending, but AccelerationTransitionBuilders can generate motions that follow configurable acceleration limits. Transition builders can be created from scratch or by cloning and modifying existing transitions; The SDK may enable any of these modes of creating and customizing transitions.

[00570] 예시적인 코어 애니메이션 이벤트들의 타이밍을 도시하는 도 41을 참조하면, 예컨대, 애니메이션 시퀀스의 플레이백을 포함할 수 있는, 애니메이션, 이를테면, 본원에서 설명된 바와 같은 애니메이션의 인스턴스는, 다른 커스텀 이벤트들에 더해 STARTED, STOPPED, 및 CANCELLED를 포함한 다수의 상이한 이벤트들을 통해 모니터링될 수 있다. 액티브 애니메이션 인스턴스들을 모니터링하기 위한 이벤트 청취자들은 AnimationBuilder의 이벤트 청취 특징을 사용하여 설치될 수 있다. 도 41의 예에서, 적용가능한 경우, STARTED 이벤트는, 임의의 인바운드 트랜지션 모션의 완료 후에, 애니메이션 인스턴스가 시작될 때, 시동된다(예컨대, 이벤트는, 애니메이션-시간 0에서 시동됨). STOPPED 이벤트는, 애니메이션 인스턴스가 끝마치거나 또는 완전히 인터럽트될 때, 시동된다. STOPPED 이벤트의 인터럽트된 특성은 이러한 경우들을 구별하기 위해 체크될 수 있다. 예로서, 새롭게-트리거된 인스턴스가 현재 실행되는 애니메이션을 트렁케이팅하거나 또는 현재 실행되는 애니메이션의 중단 방법이 애니메이션의 종료 전에 실행되는 경우, payload.interrupted === true이다. CANCELLED 이벤트는, 애니메이션 인스턴스가 언제든 STARTED 되기 전에, 애니메이션 인스턴스가 제거되거나 또는 완전히 인터럽트되는 경우에 시동된다.[00570] Referring to FIG. 41, which illustrates the timing of exemplary core animation events, an animation, such as an instance of animation as described herein, which may include, for example, playback of an animation sequence, , And can be monitored through a number of different events including STARTED, STOPPED, and CANCELED. Event listeners for monitoring active animation instances can be installed using the event listening features of the AnimationBuilder. In the example of FIG. 41, if applicable, the STARTED event is fired when the animation instance is started (e.g., the event is fired at animation-time 0), after completion of any inbound transition motion. The STOPPED event is fired when the animation instance is finished or fully interrupted. The interrupted nature of the STOPPED event can be checked to distinguish these cases. For example, payload.interrupted === true if the newly-triggered instance is truncating the animation that is currently being executed, or if the method of stopping the animation that is currently executing is to be executed before the end of the animation. The CANCELED event is fired when the animation instance is removed or fully interrupted before the animation instance is STARTED at any time.

[00571] 애니메이션들은, 그들이 로봇의 DOF들 중 적어도 하나의 제어를 계속 유지할 수 있는 한, 계속해서 이벤트들을 산출할 수 있다. STOPPED 이벤트는 특정 애니메이션에 대해 유지되는 어떤 DOF들도 없을 때, 시동된다. 따라서, 다수의 애니메이션 인스턴스들이 동시에 이벤트들을 산출하는 것이 일반적이다. 도 42는 2개의 오버랩핑하는 애니메이션 인스턴스들에 의해 산출되는 이벤트들(4202)의 타임라인을 도시한다. 애니메이션 A(4204)는 바디, LED, 및 아이에 대한 DOF들을 제어한다. 애니메이션 B(4208)는 바디 DOF만을 제어하므로, 이는 애니메이션 A 바디 DOF를 인터럽트하지만, 애니메이션 A LED 또는 아이 애니메이션들을 인터럽트하지 않는다. 이벤트들(4202)은 애니메이션 A(4204) LED 및 아이 DOF들에 대해 산출되는 반면, 애니메이션 B(4208)는 바디 DOF에 대한 이벤트들을 산출한다.[00571] The animations can continue to generate events as long as they can keep control of at least one of the DOFs of the robot. A STOPPED event is fired when there are no DOFs that are maintained for a particular animation. Thus, it is common for multiple instances of animation to simultaneously produce events. Figure 42 shows a timeline of events 4202 produced by two overlapping animation instances. Animation A 4204 controls DOFs for body, LED, and eye. Since animation B 4208 only controls the body DOF, it interrupts the animation A body DOF, but does not interrupt the animation A LED or child animations. Events 4202 are calculated for the LEDs and eye DOFs in animation A 4204, while animation B 4208 yields events for the body DOF.

[00572] 응시 배향 구성 인터페이스의 예를 도시하는 도 43 및 44를 참조하면, PCD에 의한 응시 및 배향을 수행하기 위한 애니메이션 성능들을 구성 및 조작하기 위한 방법들 및 시스템들의 성능을 나타낸다. PCD의 응시 및 배향 성능들은 표현 응시 거동들을 산출하도록 트리거될 수 있다. 이러한 거동들은 PCD의 바디 및/또는 아이를 주위 환경의 관심 위치들을 향해 표현방식으로 지시하는 데 사용될 수 있다.[00572] Referring now to Figures 43 and 44, which illustrate examples of contour alignment configuration interfaces, illustrate the performance of systems and methods for constructing and manipulating animation capabilities for performing gazing and orientation with a PCD. The striking and orientation capabilities of the PCD can be triggered to produce expression-striking behaviors. These behaviors can be used to represent the body and / or eye of the PCD in an expressive way towards the locations of interest in the surrounding environment.

[00573] 응시 거동들은 애니메이션들과 유사한 방식으로 관리될 수 있다. 거동 트리거링은 LookatBuilder 오브젝트들을 사용하여 달성된다. 먼저, createLookatBuilder 방법을 사용하여 빌더를 생성한다. 다음, 빌더를 선택적으로 구성할 수 있다. 마지막으로, 빌더의 startLookat 방법을 통해 거동의 인스턴스를 트리거한다.[00573] The gazing behaviors can be managed in a manner similar to animations. Behavioral triggering is accomplished using LookatBuilder objects. First, create a builder using the createLookatBuilder method. Next, builders can be optionally configured. Finally, it triggers an instance of the behavior through the builder's startLookat method.

[00574] 응시 거동들은 2개의 모드들: 싱글-샷 모드 또는 연속적 모드 중 하나로 동작할 수 있다. 이러한 모드는 빌더의 setContinuousMode 방법을 통해 구성될 수 있다. 싱글-샷 모드에서, 응시 거동은 스크립트된 애니메이션과 매우 흡사하며, 로봇을 선택된 타겟을 향해 표현방식으로 배향하고, 그런 다음, 타겟에 도달하면 중단한다. 연속적 모드에서, 거동 그 자체는 절대 중단되지 않고, 타겟 위치는 인스턴스의 updateTarget 방법을 사용하여 반복적으로 수정될 수 있다. 이는 얼굴 추적에 유용하거나 또는 이동하는 타겟을 PCD가 따르는 다른 시츄에이션들에 유용할 수 있다. 도 43은 싱글-샷 모드 응시 동작을 구성하는 것을 도시한다. 연속적 모드에서, 타겟 포인트는 언제라도 업데이트될 수 있다. 도 44는 매 3초마다 2개의 상이한 응시 타겟들 간을 토글링하기 위한 LookAt 기능을 갖는 PCD SDK를 갖는 커스텀 코드를 포함하는 것을 도시한다.[00574] The gazing behaviors may operate in one of two modes: a single-shot mode or a continuous mode. These modes can be configured through the builder's setContinuousMode method. In the single-shot mode, the striking behavior is very similar to the scripted animation, orienting the robot toward the selected target in an expressive manner, and then stopping when it reaches the target. In continuous mode, the behavior itself is never interrupted, and the target location can be iteratively modified using the instance's updateTarget method. This may be useful for face tracking or for other sequences where the PCD follows a moving target. Figure 43 illustrates configuring a single-shot mode stance operation. In continuous mode, the target point can be updated at any time. Figure 44 illustrates custom code with PCD SDK with LookAt function for toggling between two different target targets every 3 seconds.

[00575] 소프트웨어 개발 키트에 의해 참조되는 소셜 로봇의 3차원 좌표계를 도시하는 도 45를 참조하면, 응시 API에 타겟들을 제공하는 것은 때때로 3D 벡터들을 이용하여 수학적 계산(math)을 수행하는 것을 요구할 수 있다. 3D 벡터 산술 및 다른 선형 대수학 연산들을 위해 사전구성된 모듈을 사용하는 것이 바람직할 수 있다. 새로운 3D 벡터 오브젝트는 하기 예를 통해 생성될 수 있다: target = new animate.THREE.Vector3(1.0, 0.0, 1.0)이라고 함. 실시예들에서, PCD는 로봇의 베이스의 중심에서 자신의 원점(4502)을 갖는 3D 좌표계를 사용할 수 있다. 도 45의 다이어그램에서 예시된 바와 같이, PCD의 관점에서, 포지티브 X 축(4504)은 순방향을 가리키고, 포지티브 Y 축(4508)은 좌측을 가리키고, 포지티브 Z 축(4510)은 위를 가리킨다.[00575] Referring to FIG. 45, which illustrates a three-dimensional coordinate system of a social robot referenced by a software development kit, providing targets to the gaze API may sometimes require performing mathematical calculations using 3D vectors have. It may be desirable to use a preconfigured module for 3D vector arithmetic and other linear algebra operations. A new 3D vector object can be created with the following example: target = new animate.THREE.Vector3 (1.0, 0.0, 1.0). In embodiments, the PCD may use a 3D coordinate system with its origin 4502 at the center of the base of the robot. 45, the positive X-axis 4504 points in the forward direction, the positive Y-axis 4508 points to the left, and the positive Z-axis 4510 points to the top, as illustrated in the diagram of Fig.

[00576] 애니메이션들을 편집하기 위한 소프트웨어 개발 키트의 사용자 인터페이스를 도시하는 도 46을 참조하면, 애니메이션들은 이러한 인터페이스를 통해 생성될 수 있다. 애니메이션들은 개개의 애니메이션 파일들로 구성 및 저장될 수 있다. 도 46의 애니메이션 편집기는 바디 페인(4602), 아이 페인(4604), 및 타임라인 페인(4608)을 포함할 수 있다. 각각의 페인은 줌될(zoomed) 수 있고; 각각의 페인의 컬러는 변경될 수 있고; 애니메이션 편집기의 페인들은 리세팅될 수 있다. 바디 페인(4602)은, 포인트, 클릭, 및 드래그 기능성을 통해 바디 세그먼트들의 직접적 제어를 가능하게 한다.[00576] Referring to FIG. 46, which illustrates the user interface of a software development kit for editing animations, animations may be generated via this interface. The animations can be organized and stored as individual animation files. The animation editor of FIG. 46 may include a body pane 4602, an eye pane 4604, and a timeline pane 4608. Each pane can be zoomed; The color of each pane may be changed; The panes in the Animation Editor can be reset. Body pane 4602 enables direct control of body segments through point, click, and drag functionality.

[00577] 타임라인 페인(4608)은 초 당 30 프레임들의 프레임 레이트로 30 프레임들의 디폴트 애니메이션을 조정함으로써 애니메이션 길이를 조정하는 데 사용될 수 있다. 타임라인 페인의 타임라인들은, 이를테면, 2배만큼 스케일링될 수 있는 식이다. 타임라인의 특정 프레임들은 키프레임 파라미터를 세팅함으로써 로킹될 수 있다. 타임라인 페인(4608)의 프레임들은 커맨드들, 이를테면, 잘라내기, 붙이기, 복사, 삭제 등을 이용하여 편집될 수 있다. 타임 라인 상의 프레임들은, 바디 페인(4602) 및/또는 아이 페인(4604)이 타임라인 페인(4608)에서 선택된 애니메이션 프레임들의 시퀀스를 도시할 수 있도록, 시뮬레이션 기능을 통해 동작될 수 있다. 시뮬레이션들은 한 번에 하나의 프레임씩, 또는 중단 커맨드가 입력될 때까지 계속 동작될 수 있는 식이다.[00577] The timeline pane 4608 can be used to adjust the animation length by adjusting the default animation of 30 frames at a frame rate of 30 frames per second. The timelines of the timeline pane are, for example, an expression that can be scaled by a factor of two. Certain frames in the timeline can be locked by setting key frame parameters. The frames of the timeline pane 4608 can be edited using commands, such as cut, paste, copy, delete, and the like. The frames on the timeline can be operated through the simulation function so that the body pane 4602 and / or the eye pane 4604 can show the sequence of animation frames selected in the timeline pane 4608. [ Simulations can be run one frame at a time, or until the break command is entered.

[00578] 애니메이션 편집기는 계층들을 통한 애니메이션들의 생성을 가능하게 한다. 애니메이션 편집기에서 계층을 선택하며, 이는 그 계층에 대한 애니메이션을 생성하기 위해서이다.[00578] The animation editor enables creation of animations through layers. You select a layer in the Animation Editor, which is to create an animation for that layer.

[00579] 일부 경우들에서, 동일한 타입의 다수의 계층들이 혼합될 것이다. 일부 계층들은 가산적이다(additive). 예컨대, PCD의 아이를 위로 1만큼 이동시키는 계층과 아이를 아래로 2만큼 이동시키는 계층이 혼합되어, 아이를 아래로 1만큼 이동시키는 애니메이션을 생성할 것이다. 다른 계층들은 곱셈적이다(multiplicative). 예컨대, PCD의 아이를 3만큼 스케일링하는 계층과 PCD의 아이를 2만큼 스케일링하는 계층이 혼합되어, PCD의 아이를 6만큼 스케일링하는 애니메이션을 생성할 것이다. 혼합되지 않는 계층들은 최상부 계층 상에 적용된 애니메이션들을 디폴트로 할 것이다.[00579] In some cases, multiple layers of the same type will be mixed. Some layers are additive. For example, a layer that moves the child of the PCD by 1 and a layer that moves the child by 2 are mixed to create an animation that moves the child down by one. The other layers are multiplicative. For example, a layer scaling the eye of the PCD by 3 and a layer scaling the eye of the PCD by two will be mixed to create an animation that scales the eye of the PCD by six. Unmixed layers will default to animations applied on the top layer.

[00580] 도 47은 PCD의 제한들의 위반이 표시될 수 있는 디스플레이 스크린이다. 애니메이션을 생성할 때, 당신이 PCD에게 수행하도록 요청하는 움직임들이 그로 하여금 그의 모터들의 내부 하드웨어 제한들을 초과하게 하는 경우, 프레임들은, 그가 너무 신속히 이동하는 동안에, 적색(4702)으로 터닝되고, 특성 페인(4704)에서 에러 메시지가 나타날 것이다. 움직임이 가속 제한들 또는 속도 제한들을 위반하는 경우, 애니메이션 에러들이 발생할 수 있다. 이러한 메시지들은 단지 경고들일뿐이다. PCD는 여전히 움직임들을 수행하도록 시도할 수 있지만, 하드웨어는 그러한 움직임들을 지원하지 못할 수 있다. 제한들은 모든 바디 계층들의 가산적 누적에 기반한다. 예컨대, 하나의 바디 계층 상에 과도하게 빠른 키프레임을 부가하지만 그것이 다른 바디 계층 상에서 상쇄되는 경우, 결과적인 애니메이션은 허용되고, 에러들은 나타나지 않을 것이다. 제한이 초과되는 경우, 모든 각각의 영향받은 영역의 모든 각각의 바디 계층 상에 경고들이 나타나는데, 왜냐하면, 임의의 바디 계층이 원인(culprit) 또는 솔루션일 수 있기 때문이다. 제한 위반들을 정정하기 위해, PCD가 키프레임들 간에 이동하는 자유도를 감소시키거나 또는 키프레임들 간의 프레임들의 수를 증가시킬 수 있다.[00580] Figure 47 is a display screen on which a violation of the restrictions of the PCD can be indicated. When creating an animation, if the motions you request the PCD to perform exceed the internal hardware limits of its motors, the frames are turned to red 4702 while he is moving too quickly, An error message will be displayed at step 4704. If the motion violates the acceleration constraints or velocity constraints, animation errors may occur. These messages are merely warnings. The PCD may still attempt to perform the motions, but the hardware may not support such motions. The constraints are based on the cumulative accumulation of all body layers. For example, if an excessively fast key frame is added on one body layer but it is offset on the other body layer, then the resulting animation is allowed, and no errors will appear. If the limit is exceeded, alerts appear on every individual body layer of every affected area, because any body layer may be a culprit or a solution. To correct for limit violations, the PCD may reduce the degree of freedom to move between key frames or may increase the number of frames between key frames.

[00581] 프레임들 간의 모션의 핸들링은 본원에서 "트위닝"으로 지칭된다. 예컨대, 선형 트윈은 키프레임들 간에 일정한 페이스(steady pace)로 PCD의 바디를 이동시킬 것이다. 애니메이션 트윈들은 자연적 움직임을 모방하기 위해 더 느리게 키프레임 내로 그리고/또는 키프레임 밖으로 용이하게 조정될 수 있다. 트위닝은, 그것이 적용된 키프레임으로부터 다음 세팅된 키프레임으로(타임라인 상에서 좌측에서 우측으로) 애니메이션이 이동하는 방법에 영향을 미친다.[00581] Handling of motion between frames is referred to herein as "tweening". For example, a linear twin will move the body of the PCD with a steady pace between keyframes. The animation tweens can be easily adjusted into the keyframe and / or out of the keyframe more slowly to mimic the natural motion. Tweening affects the way the animation moves from the keyframe from which it is applied to the next set keyframe (from left to right on the timeline).

[00582] 소셜 로봇의 대표적 아이 이미지를 제어하기 위해 아이 계층을 구성하기 위한 사용자 인터페이스를 도시하는 도 48을 참조하면, 사용자 인터페이스는 PCD의 아이의 사이즈, 포지션, 형상, 및 회전을 조작하는 데 사용될 수 있다. 트위닝은 또한, 아이 애니메이션들에 적용될 수 있다. PCD의 아이는 리사이징되고, 제약된 비율들로 또는 제약된 비율들 없이 스케일링되고, 재형상화되고, 회전될 수 있는 식이다. 도 48의 사용자 인터페이스는, 포인트, 클릭, 및 드래그 기능성을 통해 아이의 직접적 제어를 가능하게 한다.[00582] Referring to Figure 48, which depicts a user interface for configuring an eye layer to control a representative eye image of a social robot, the user interface is used to manipulate the size, position, shape, and rotation of the eye of the PCD . Tweening can also be applied to child animations. The eye of the PCD can be resized, scaled, reshaped, and rotated without constrained ratios or with constrained ratios. The user interface of Figure 48 enables direct control of the eye through point, click, and drag functionality.

[00583] 소셜 로봇의 대표적 아이 이미지의 텍스처 양상을 제어하기 위해 아이 텍스처 계층을 구성하기 위한 사용자 인터페이스를 도시하는 도 49를 참조하면, 아이 컬러들 및 텍스처들은 이러한 사용자 인터페이스를 통해 구성될 수 있다. PCD 아이 계층 구성 사용자 인터페이스는 바디 페인(4902), 아이 페인(4904), 및 타임라인 페인(4908)을 포함할 수 있다. 애니메이션들의 시뮬레이션들은 바디 페인(4902)에서 도시될 수 있고, 바디, 라이트 링, 아이, 및 오디오 시뮬레이션을 포함할 수 있다. 아이 페인(4904)은, 적어도 컬러 및 텍스처 애니메이션을 포함하는 아이(4910)의 애니메이션의 제어 및 시뮬레이션 둘 다를 제공할 수 있다. 컬러들은 RGB 공간을 통해 애니메이션 프레임으로부터 프레임으로 보간되며, 부가적일 수 있다. 컬러들은 텍스처들의 최상부 상에서 혼합될 수 있으며; 따라서, 디폴트 백색 이외의 아이 텍스처를 구성하는 것은, 기본 텍스처 컬러의 영향으로 인해 각각의 컬러가 어떻게 도시되는지에 영향을 미칠 것이다.[00583] Referring to FIG. 49, which illustrates a user interface for constructing an eye texture layer to control the texture aspect of a representative eye image of a social robot, the eye colors and textures may be configured through this user interface. The PCD eye layer configuration user interface may include a body pane 4902, an eye pane 4904, and a timeline pane 4908. Simulations of the animations can be shown in the body pane 4902 and can include body, light ring, eye, and audio simulations. The eye pane 4904 may provide both control and simulation of the animation of the eye 4910, including at least color and texture animations. The colors are interpolated from the animation frame to the frame through the RGB space, and may be additive. The colors may be mixed on top of the textures; Thus, constructing a child texture other than the default white color will affect how each color is shown due to the effect of the underlying texture color.

[00584] 도 50을 참조하면, 소셜 로봇의 대표적 아이 이미지를 제어하기 위해 아이 오버레이 계층을 구성하기 위한 사용자 인터페이스가 도시된다. 사용자 인터페이스는 바디 페인(5002), 아이 오버레이 페인(5004), 및 타임라인 페인(5008)을 포함할 수 있다. 오버레이 계층은 PCD 스크린 상에서, 그의 아이 앞에 나타난다. 오버레이들은 아이 오버레이 계층 사용자 인터페이스에서 수정될 수 있다. 이러한 사용자 인터페이스에서, x 값들은 우측으로 증가되고 y는 스크린의 중심으로부터 아래로 증가되는데, 스크린의 중심은 디폴트로 아이의 중심이며, (x=0,y=0)에 로케이팅된다. 오버레이는, 실질적으로 모든 동일한 특성들을 포함하여, 아이와 실질적으로 동일하게 구성된다. 아이 오버레이 계층 콘텐츠는 디폴트로 PCD의 아이의 앞에 나타나는 한편, 이는 텍스처들을 스와핑함으로써(즉, 아이 오버레이 텍스처에 대해 아이 텍스처를 스와핑함으로써) 효과적으로 반전될 수 있다. 아이 오버레이 계층들은, 부가되고, 제거되고, 이동되고, 아이와 독립적으로 트위닝되고, 제약된 비율들로 또는 제약된 비율들 없이 리사이징되고, 재형상화되고, 그리고 회전될 수 있다.[00584] Referring to FIG. 50, a user interface for configuring an eye overlay layer for controlling a representative eye image of a social robot is shown. The user interface may include a body pane 5002, a child overlay pane 5004, and a timeline pane 5008. The overlay layer appears on the PCD screen, before its child. The overlays can be modified in the eye overlay layer user interface. In this user interface, the x values are incremented to the right and y is incremented from the center of the screen down to the center of the screen by default (x = 0, y = 0). The overlay is constructed substantially the same as the eye, including substantially all of the same characteristics. While the eye overlay layer content appears by default in front of the eyes of the PCD, it can be effectively reversed by swapping the textures (i.e. swapping the eye texture over the eye overlay texture). The eye overlay layers can be added, removed, moved, tweened independently of the eye, resized, reshaped, and rotated without constrained ratios or with constrained ratios.

[00585] 소셜 로봇의 대표적 아이 이미지를 제어하기 위해 아이 오버레이 텍스처 계층을 구성하기 위한 사용자 인터페이스를 도시하는 도 51을 참조하면, 아이 오버레이에 대한 텍스처가 구성될 수 있다. 도 51의 사용자 인터페이스는, 오버레이 텍스처가 변경되는 것, 오버레이 컬러가 변경되는 것 등을 가능하게 한다. 비록 상이한 계층들 상의 텍스처들이 혼합되지 않을 수 있을지라도, 컬러들은 RGB 공간을 통해 혼합될 수 있고, 부가적이다. 오버레이가 컬러링된 텍스처를 갖는 경우, 컬러 조작들은 텍스처 컬러와 또한 혼합될 수 있다.[00585] Referring to FIG. 51, which illustrates a user interface for constructing an eye overlay texture layer to control a representative eye image of a social robot, a texture for the eye overlay can be constructed. The user interface of Fig. 51 enables the overlay texture to change, the overlay color to change, and the like. Although the textures on different layers may not be mixed, the colors can be mixed through the RGB space and are additive. If the overlay has a colored texture, the color manipulations may also be mixed with the texture color.

[00586] 소셜 로봇의 대표적 아이 이미지의 백그라운드를 제어하기 위해 백그라운드 계층을 구성하기 위한 사용자 인터페이스를 도시하는 도 52를 참조하면, 디스플레이 백그라운드 계층 텍스처가 구성될 수 있다. 백그라운드 텍스처 계층은 아이 뒤의 PCD 스크린 상에 나타날 수 있다. 백그라운드 텍스처뿐만 아니라 백그라운드 텍스처 컬러도 변경될 수 있다.Referring to FIG. 52, which illustrates a user interface for configuring a background layer to control the background of a representative eye image of a social robot, a display background layer texture may be constructed. The background texture layer may appear on the PCD screen behind the eye. Background texture colors as well as background textures can be changed.

[00587] 소셜 로봇의 바디 세그먼트 둘레에 배치된 LED를 구성하기 위한 사용자 인터페이스를 도시하는 도 53을 참조하면, LED는 양상들, 이를테면, 온/오프, 온-강도, 온-컬러, 컬러 온도, 컬러 포화도, 변화 레이트 등에 대해 제어될 수 있다. 이러한 엘리먼트들은 도 53의 LED 구성 사용자 인터페이스에서 선택되고 그리고/또는 입력될 수 있다.[00587] Referring to FIG. 53, which illustrates a user interface for configuring an LED disposed around a body segment of a social robot, the LED is configured to display aspects such as on / off, on-intensity, on- Color saturation, change rate, and the like. These elements may be selected and / or entered in the LED configuration user interface of FIG.

[00588] 이벤트들은 중단, 시작, 인터럽팅 등에 대한 애니메이션 동작 제어와 관련하여 본원에서 전술되었다. 아이, 바디, LED 및 다른 계층들 외에도, 이벤트 계층들이 또한, PCD SDK 사용자 인터페이스들을 통해 구성되고 그리고/또는 커스터마이징될 수 있다. 도 54는 이벤트의 활성화 시에 연관된 애니메이션의 조건을 테스팅하기 위한 정보, 이를테면, 이벤트 이름 및 페이로드로 이벤트를 구성하기 위한 사용자 인터페이스를 도시한다. 이벤트들은 또한, 애니메이션들을, 본원에서 도 27-35를 참조하여 설명된 거동들과 링크시킬 수 있다. 애니메이션의 특정 프레임 동안 발생하는 거동을 생성하기 위해, 먼저 이벤트를 생성한다. 이벤트들은 애니메이션들 및 거동들을 링크시킨다. 본원에 포함된 거동 편집기 자료는 거동 툴에서 이벤트들을 사용하는 방법을 설명한다. 다수의 이벤트 계층들이 허용된다. 모든 이벤트들이 실행될 것이며; 동일한 프레임으로 세팅된 이벤트들은 최상부 계층으로부터 최하부 계층의 순서로 실행될 것이다.[00588] Events have been described herein in connection with controlling animation actions for interruption, start, interruption, and the like. In addition to eye, body, LED and other layers, event layers can also be configured and / or customized via PCD SDK user interfaces. Figure 54 shows information for testing conditions of an animation associated with the activation of an event, such as a user name for configuring an event with an event name and payload. Events may also link animations with the behaviors described herein with reference to Figures 27-35. To create the behavior that occurs during a particular frame of an animation, we first create an event. Events link animations and behaviors. The behavior editor data contained in this document describes how to use events in the behavior tool. Multiple event layers are allowed. All events will be executed; Events set to the same frame will be executed in order from the highest layer to the lowest layer.

[00589] 오디오 이벤트 계층을 구성하기 위한 사용자 인터페이스를 도시하는 도 55를 참조하면, 오디오 파일 또는 다른 콘텐츠를 애니메이션과 연관시킴으로써 애니메이션에 오디오가 부가될 수 있다. 오디오 이벤트 계층 사용자 인터페이스는 또한, 사용자로 하여금 애니메이션과 연관시키기 위한 오디오 파일의 일부를 선택할 수 있게 하기 위해 제어들, 이를테면 스크러버 아이콘을 포함한다.[00589] Referring to FIG. 55, which illustrates a user interface for configuring an audio event layer, audio may be added to the animation by associating an audio file or other content with the animation. The audio event hierarchy user interface also includes controls, such as a scrubber icon, to allow the user to select a portion of the audio file to associate with the animation.

스피치 인식 및 스피치 편집기Speech Recognition and Speech Editor

[00590] 도 56을 참조로, PCD SDK 스피치 규칙 편집기(5600)에서 생성되는 "reservations.rule"로 불리는 스피치 규칙의 예시적이며 비제한적인 실시예가 예시된다.[00590] Referring to FIG. 56, an exemplary, non-limiting example of a speech rule called "reservations.rule" generated in the PCD SDK speech rule editor 5600 is illustrated.

[00591] PCD는 NLU(Natural Language Understanding)를 나타낸다. PCD는 2개의 타입들의 스피치 인식 규칙들을 인식할 수 있다:[00591] The PCD stands for NLU (Natural Language Understanding). The PCD can recognize two types of speech recognition rules:

a. 임베딩된 규칙들 - PCD가 청취할 수 있는 빌트-인 어구들. a. Embedded rules - built-in phrases that the PCD can listen to.

b. 커스텀 규칙들 - 커스텀 어구 또는 단어를 청취하도록 PCD에게 명령하기 위한 개발자에 의해 코딩된 규칙들. b. Custom Rules - Rules coded by the developer to instruct the PCD to listen to custom phrases or words.

[00592] 임베딩된 규칙들은 SDK 내에 구축된다. 부가적으로, 어구-스포팅이 PCD의 소프트웨어 내에 구축되고, 그에 따라, 스피치를 프로세싱하기 위해 클라우드까지 도달해야 하는 요건이 존재하지 않는다.[00592] Embedded rules are built into the SDK. Additionally, there is no requirement that the phrase-spotting be built into the software of the PCD and thus reach the cloud to process the speech.

[00593] 예컨대, 누군가가 'hey PCD'라고 발언할 때, PCD에게 무언가를 행하라고 전달하기 위해, ListenEmbedded 거동 또는 SucceedOnEmbedded 데코레이터가 인수들에서 ruleName으로서 'Hey PCD'를 특정함으로써 그렇게 행하기 위해 사용될 수 있고, PCD는 누군가가 'hey PCD'라고 발언하는 것을 PCD가 들을 때 스트링 'hey PCD'를 리턴할 것이다.[00593] For example, when someone speaks 'hey PCD', the ListenEmbedded behavior or the SucceedOnEmbedded decorator can be used to do so by specifying 'Hey PCD' as the ruleName in the arguments, to tell the PCD to do something And the PCD will return the string 'hey PCD' when the PCD listens to someone saying 'hey PCD'.

[00594] PCD SDK에는 하나 또는 그 초과의 규칙들, 이를테면 스피커가 “Hey PCD”라고 발언하는 것을 인식하는 규칙이 프리로딩될 수 있다. PCD는 이들 규칙들을 청취하도록 구성될 수 있고; 규칙 코딩이 요구되지 않는다.[00594] The PCD SDK may be preloaded with rules that recognize one or more rules, such as the speaker saying "Hey PCD". The PCD can be configured to listen to these rules; No rule coding is required.

[00595] 도 57을 참조로, 누군가가 'hey PCD'라고 발언할 때까지 PCD가 유휴 상태에 있는 예시적이며 비제한적인 실시예가 예시되며, 누군가가 'hey PCD'라고 발언할 때, PCD는 유휴 상태를 멈추고, hello라고 발언하기 위해 텍스트-대-스피치를 사용한다.[00595] Referring to FIG. 57, an illustrative, non-limiting embodiment in which the PCD is in an idle state until someone speaks 'hey PCD' is illustrated, and when someone says 'hey PCD' Stop idle and use text-to-speech to say hello.

[00596] PCD로 하여금 임베딩된 규칙들을 통해 이용가능한 것 이외의 무언가를 청취하게 하기 위해, 커스텀 규칙이 생성될 수 있다. 이는, 이를 달성하기 위한, 예컨대, Listen 거동, ListenJs 거동, SucceedOnListen 데코레이터, 또는 SucceedOnListenJs 데코레이터의 사용을 통해 달성될 수 있다.[00596] In order to allow the PCD to listen to something other than what is available through the embedded rules, a custom rule can be created. This can be accomplished through the use of, for example, Listen behavior, ListenJs behavior, SucceedOnListen decorator, or SucceedOnListenJs decorator to achieve this.

[00597] 스피치 규칙의 로직은 간단한데: PCD는 청각적 입력을 청취하고, PCD가 들은 것에 기반하여 스트링 변수들을 리턴한다(현재, SDK 내의 스피치 규칙들은 PCD가 수를 듣는 경우에도, 스트링 값들만을 리턴한다. 수들 및 정수들을 리턴하기 위한 지원이 조만간 이루어진다). 예컨대, 당신은 book으로 불리는 스트링 변수를 생성할 수 있고, PCD가 단어 "flight"를 듣는 경우 스트링 air를 리턴하고 PCD가 단어 'hotel'을 듣는 경우 단어 lodging을 리턴하도록 SDK에게 전달할 수 있다. 당신은 더 나아가, PCD가 단어 'flight' 또는 'air' 또는 'plane' 또는 'airplane'을 듣는 경우 스트링 air를 리턴하고 PCD가 'hotel' 또는 'motel' 또는 'room' 또는 'suite'를 듣는 경우 lodging을 리턴하도록 SDK에게 전달할 수 있다.[00597] The logic of the speech rule is simple: the PCD listens to the audible input and returns string variables based on what the PCD listens to (currently, the speech rules in the SDK only allow string values And support for returning integers and integers sooner or later). For example, you can create a string variable called a book, return the string air if the PCD listens on the word "flight", and pass it to the SDK to return the word lodging if the PCD listens on the word 'hotel'. You can also go ahead and return the string air if the PCD listens to the word 'flight' or 'air' or 'plane' or 'airplane', and if the PCD listens to 'hotel' or 'motel' or 'room' You can tell the SDK to return lodging.

[00598] 스피치 규칙들을 설계할 때, 2가지를 고려하는 것이 중요하다: (1) PCD가 달성할 필요가 있는 일을 PCD가 이해하도록 하기 위해 어떤 변수들이 리턴되어야 하는지, 및 (2) PCD 사용자가 그 정보를 말로 표현할 수 있는 가능한 상이한 방식들.When designing speech rules, it is important to consider two things: (1) which variables should be returned to make the PCD understand what the PCD needs to accomplish, and (2) the PCD user Possible different ways in which the information can be expressed in words.

[00599] 일반적으로, 커스텀 스피치 규칙은 다음과 같은 식이다:[00599] In general, the custom speech rule is:

[00600]

Figure pct00002
[00600]
Figure pct00002

[00601]

Figure pct00003
[00601]
Figure pct00003

[00602]

Figure pct00004
[00602]
Figure pct00004

[00603] 또는, 예컨대,[00603] Alternatively, for example,

[00604]

Figure pct00005
[00604]
Figure pct00005

[00605]

Figure pct00006
[00605]
Figure pct00006

[00606]

Figure pct00007
[00606]
Figure pct00007

[00607] 위의 예에서, PCD는 어구 'reserve me a flight'를 청취한다. PCD가 정확한 어구를 듣는 경우, SDK는 값 air를 갖는 book으로 명명된 변수를 리턴한다. 그러나, 이는 굉장히 유용한 것은 아니다. 규칙에 약간의 복잡성을 더 부가하기 위해 규칙을 확장해 본다. 'flight'만을 청취하는 대신, PCD가 'hotel'을 또한 청취하기 위한 옵션을 부가해 본다. 우리는 우리의 코드에서 표준 OR 로직을 사용할 수 있다.[00607] In the above example, the PCD listens to the phrase 'reserve me a flight'. If the PCD listens to the correct phrase, the SDK returns a variable named book with the value air . However, this is not very useful. Extend the rules to add some complexity to the rules. Instead of listening to only 'flight', we add an option for the PCD to also listen to 'hotel'. We can use standard OR logic in our code.

[00608]

Figure pct00008
[00608]
Figure pct00008

[00609]

Figure pct00009
[00609]
Figure pct00009

[00610]

Figure pct00010
[00610]
Figure pct00010

[00611]

Figure pct00011
[00611]
Figure pct00011

[00612] 이제, PCD는 'reserve me a'를 청취한 후에, 'flight' 또는 'hotel'을 청취한다.[00612] Now, after listening to 'reserve me a', the PCD listens to 'flight' or 'hotel'.

[00613] 아래의 표는 위의 규칙을 사용하여 SDK가 다양한 발화된 입력에 대해 어떤 것을 리턴할 것인지를 도시한다:[00613] The table below shows what the SDK will return for various spoken input using the above rules:

[00614][00614]

Figure pct00012
Figure pct00012

[00615] Listen 거동 및 SucceedOnListen 데코레이터는 누군가가 규칙 파일을 선택한 파일 인수들을 취한다.[00615] The Listen behavior and the SucceedOnListen decorator take file arguments where someone has chosen a rules file.

[00616] 도 58을 참조로, ".rule" 타입의 파일들을 사용하는 PCD를 위한 커스텀 청취 규칙들을 생성하는 예시적이며 비제한적인 실시예가 예시된다.[00616] Referring to FIG. 58, an exemplary, non-limiting embodiment of generating custom listening rules for a PCD using files of the type ".rule" is illustrated.

[00617] 도 59를 참조로, 'hey PCD'를 청취하도록 PCD에게 전하는 예시적이며 비제한적인 실시예가 예시된다.[00617] Referring to FIG. 59, an illustrative, non-limiting embodiment of communicating to the PCD to listen to 'hey PCD' is illustrated.

[00618] 도 60을 참조로, JavaScript를 사용하는 PCD를 위한 동적 청취 규칙들을 생성하는 예시적이며 비제한적인 실시예가 예시된다.[00618] Referring to FIG. 60, an illustrative, non-limiting embodiment of generating dynamic listening rules for a PCD using JavaScript is illustrated.

MIMSMIMS

[00619] 자연적 다이얼로그를 시뮬레이팅하기 위해, PCD SDK는 가변성을 도입하고, 에러들을 다루고, VUI(Voice User Interface) 및 GUI(Graphical User Interface) 상호작용들을 조정하기 위한 메커니즘들을 구성 및 사용하는 것을 가능하게 한다. PCD SDK는 MIM(Multimodal Interaction Module)들을 제공하여, 개발자들에게서 부담을 제거하고, 스킬들 간에 일관성을 제공한다. 이름이 암시하는 바와 같이, MIM들은 보이스(VUI) 및 터치스크린(GUI) 모드들을 포함하는 하나 초과의 모드를 갖는 상호작용들을 다룬다. "Do you want to share this photo?"와 같은 질문이 프롬프팅될 때, 사용자가 "yes"를 발언함으로써 또는 PCD의 터치스크린 상의 버튼을 태핑함으로써 답신할 수 있는 것이 예상된다. MIM 거동은, MIM 타입(예컨대, 질문, 알림, 선택적인 응답 등), 사용자의 발화들을 파싱하기 위해 사용되는 스피치 인식 규칙, TTS(text to speech) 프롬프트들, 오디오 입력이 예상되지만 수신되지 않을 때(예컨대, 사용자가 프롬프트에 응답하지 않았을 때)의 프롬프트들, 비매칭 프롬프트 응답들 등을 포함하는 다양한 파라미터들에 걸쳐 구성된 상태 머신을 포함한다. MIM(Multi Modal Interaction Module)들은 TTS(Text-to-Speech) 거동들을 미리 정의된 방식으로 더 플렉시블하게 만들도록 설계된다. PCD SDK MIM 편집기는 당신으로 하여금 TTS 프롬프들을 스피치 인식 규칙 파일들 및 API 입력과 매칭할 수 있게 한다.[00619] To simulate natural dialogue, the PCD SDK is capable of introducing variability, handling errors, and configuring and using mechanisms to coordinate VUI (Voice User Interface) and GUI (Graphical User Interface) interactions . The PCD SDK provides Multimodal Interaction Modules (MIMs), eliminating the burden on developers and providing consistency across skills. As the name suggests, MIMs deal with interactions with more than one mode, including voice (VUI) and touch screen (GUI) modes. It is expected that when a question such as " Do you want to share this photo? &Quot; is prompted, the user can reply by saying "yes" or by tapping the button on the PCD's touchscreen. The MIM behavior may include MIM types (e.g., questions, notifications, selective responses, etc.), speech recognition rules used to parse user utterances, text to speech (TTS) prompts, , Prompts (e.g., when the user has not responded to the prompt), mismatch prompt responses, and the like. Multi Modal Interaction Modules (MIMs) are designed to make text-to-speech (TTS) behaviors more flexible in a predefined manner. The PCD SDK MIM editor allows you to match TTS prompts with speech recognition rules files and API inputs.

[00620] MIM 편집기를 도시하는 도 61을 참조하면, 사용자는 다양한 방식들로 MIM들을 구성할 수 있다. 다이얼로그를 자연스럽게 느끼도록 만들기 위해, MIM들은 임의의 수의 프롬프트들로 구성될 수 있다. MIM 거동이 실행할 때, MIM 거동은 적합한 카테고리로부터 이용가능한 프롬프트들 중 하나를 선발한다. 프롬프트는 랜덤하게, 또는 Condition 필드에 공급된 로직을 사용하여 선정될 수 있다.[00620] Referring to FIG. 61 showing a MIM editor, a user may configure MIMs in various manners. To make the dialog feel natural, MIMs can be composed of any number of prompts. When the MIM behavior is performed, the MIM behavior selects one of the available prompts from the appropriate category. The prompt can be selected at random, or using the logic supplied in the Condition field.

[00621] 예컨대, 다수의 Entry-Core 프롬프트들이 Condition 필드들로 정의될 수 있고, 그 Condition 필드들은 이용가능한 데이터에 기반하여 이들을 필터링한다. 이 예에서, PCD가 스피커를 식별하지 않은 상황들에 적합한 2개의 Entry-Core 프롬프트들이 존재한다(Entry-1 및 Entry-3). 이런 경우들에, PCD는 그 둘 중 하나를 랜덤하게 선정할 것이다. 그러나, 스피커가 식별된 경우, PCD는 Entry-2 프롬프트들을 사용할 것이다. 임의의 MIM에 대해 임의의 수의 프롬프트들+조건들이 정의될 수 있기 때문에, 개발자는 다이얼로그 상호작용들에 많은 프롬프트 가변성을 부가하기 위한 간단한 방식을 갖는다.[00 621] For example, the number of Entry-Core prompt to may be defined in Condition field, that field are Condition filters them based on the available data. In this example, there are two Entry-Core prompts (Entry-1 and Entry-3) that are suitable for situations where the PCD does not identify the speaker. In these cases, the PCD will randomly select one of them. However, if a speaker is identified, the PCD will use Entry-2 prompts. Since any number of prompts + conditions can be defined for any MIM, the developer has a simple way to add a lot of prompt variability to dialog interactions.

[00622] MIM 구성에서 샘플 발화들을 정의함으로써, PCD는 보이스 상호작용에 대한 대안으로서 사용될 수 있는 GUI(Graphical User Interface) 제어들을 자동적으로 생성할 수 있다. 도 61에서의 CheckLights MIM은 사용자의 발화들을 프로세싱하기 위해 YesNo 규칙을 사용한다. 샘플 발화들로서 "yes" 및 "no"를 제공함으로써, PCD는 PCD의 스크린 상에 Yes 및 No 터치스크린 버튼들을 제공할 수 있다. 그 버튼들을 태핑하는 것은 "yes" 또는 "no"를 발언하는 것과 동일한 결과를 산출한다. 이 예에서, Failures to Trigger GUI 필드는 1로 세팅된다. 이는, NoMatch 에러가 존재하는 경우에만 GUI를 제공하도록 PCT에게 전하는데, 이는 스피커가 보이스를 통해 PCD와 통신하는 것에 어려움을 겪고 있다는 것을 의미한다. 이 값이 0으로 세팅될 때, PCD는 항상 GUI를 제공할 것이다.[00622] By defining sample utterances in the MIM configuration, the PCD can automatically generate GUI (Graphical User Interface) controls that can be used as an alternative to voice interaction. The CheckLights MIM in Figure 61 uses the YesNo rule to process user utterances. By providing "yes" and "no" as sample utterances, the PCD can provide Yes and No touch screen buttons on the screen of the PCD. Tapping those buttons yields the same result as saying "yes" or "no". In this example, the Failures to Trigger GUI field is set to one. This tells the PCT to provide a GUI only if there is a NoMatch error, which means that the speaker is having difficulty communicating with the PCD via voice. When this value is set to 0, the PCD will always provide a GUI.

[00623] 본원에서 설명되는 listen 거동과 같이, MIM들은 사용자의 발화들을 파싱하기 위해 스피치 인식 규칙로 구성된다. PCD의 ASR(automatic speech recognition) 시스템이 사용자의 발화의 트랜스크립트를 리턴할 때, 이 트랜스크립트는 PCD의 온-보드 NLU(Natural Language Understanding) 파서로 전달된다. 발화의 어의를 결정하기 위해, 파서는 MIM과 연관된 규칙 파일에 정의된 패턴들을 찾는다. 규칙들은 다수의 응답들이 MIM 예상을 준수할 수 있게 하는 규칙 구문을 준수할 수 있다. 예에서, 규칙은 YES의 예상되는 응답들이 "right", "I'm good" 등을 포함할 수 있도록 구성될 수 있다.[00623] Like the listen behavior described herein, MIMs are configured with speech recognition rules to parse user utterances. When the PCD's automatic speech recognition (ASR) system returns a transcript of the user's utterance, the transcript is passed to the PCD's on-board Natural Language Understanding (NLU) parser. To determine the utterance of the utterance, the parser looks for patterns defined in the rules file associated with the MIM. Rules can comply with a rule syntax that allows multiple responses to comply with MIM expectations. In the example, the rule may be configured such that the expected responses of YES may include &quot; right ", &quot; I'm good &quot;, and the like.

[00624] 도 62는 MIM 규칙들을 편집하는 것을 가능하게 하는 PCD SDK의 사용자 인터페이스를 도시한다. 입력 필드(6202) 내에 어구를 타이핑함으로써, 규칙 페인(6204)에서의 정해진 규칙에 대해 결과 오브젝트가 결과 페인(6208)에 디스플레이된다.[00624] FIG. 62 illustrates a user interface of the PCD SDK that enables editing of MIM rules. By typing a phrase in the input field 6202, the result object is displayed in the result pane 6208 for a predetermined rule in the rule pane 6204.

[00625] 마치 인간-대-인간 다이얼로그처럼, PCD와의 보이스 상호작용들은 때때로, 오해들 및 인식 에러들을 포함할 것이다. MIM들은 가능한 자연스럽게 이들 에러들로부터 복원한다. 위에서 언급된 바와 같이, MIM들은, PCD가 질문을 요청했지만 답신을 이해할 수 없을 때 PCD가 응답하기 위한 방식을 정의한다. 위에서 설명된 NoInput 및 NoMatch 프롬프트들을 정의함으로써, PCD는 질문을 재-요청 및/또는 바꾸어 말하기 위한 적합한 방식들을 갖는다.[00625] Like a human-to-human dialogue, voice interactions with the PCD will sometimes include misunderstandings and recognition errors. MIMs recover from these errors as naturally as possible. As mentioned above, MIMs define the way in which the PCD responds when the PCD requests a question but can not understand the reply. By defining the NoInput and NoMatch prompts described above, the PCD has suitable ways to re-request and / or swap questions.

[00626] PCD SDK는 또한, MIM들을 위한 API를 포함한다. 이 API는 회답이 예상되지만 수신되지 않을 때, 타이밍 아웃을 인에이블할 수 있다. MIM의 다양한 특징들은, 엔트리 스트링, 매치 스트링들, 비_매치 스트링들, 반복, 감사 스트링들, 장황한 응답 스트링들 등을 포함하는 API에 의해 제어될 수 있다.[00626] The PCD SDK also includes APIs for MIMs. This API can enable timing out when an answer is expected but not received. The various features of the MIM may be controlled by APIs including entry strings, match strings, non-match strings, repetitions, audit strings, verbose response strings, and so on.

흐름들Flows

[00627] PCD는, 흐름-실행자 활동들, MIM 활동들, 및 거동들과 같은 활동들로 구성되는 제어 흐름들의 사용을 통해 동작될 수 있다. 도 63은, PCD SDK의 예시적인 흐름 편집기를 도시한다. PCD 제어 흐름들은, PCD 상에서 실행되는 흐름 엔진에 의해 해석될 수 있다. PCD SDK는, 흐름도와 같은 방식으로 로봇 스킬들을 생성 및 편집하기 위한 흐름 편집기 툴을 포함한다. 흐름들은, 활동들 및 활동들에 대한 제어들을 부가함으로써 흐름 편집기 툴에서 구성될 수 있다. 이러한 제어들은 흐름-실행자 활동들로 불리고, 흐름에서의 활동들을 제어하는 데 사용된다. 흐름-실행자 활동들은, 흐름을 시작하고, 병렬 흐름들을 실행하고, 흐름들을 종료하고, 다른 흐름에 액세스하고, 거동 트리를 실행하고, 흐름을 인터럽트하고, 스로우(throw)들 및 캐치(catch)들을 사용하여 흐름 내에서 곳곳을 스킵하고, 임의의 JavaScript를 실행하는 등을 행하는 데 사용될 수 있다. 흐름에 부가될 수 있는 다른 활동들은, MIM 활동들 및 거동 활동들을 포함한다. 흐름들은 또한, 수행할 다음 활동을 결정하기 위해 흐름에서의 하나의 활동의 결과들을 사용하는 것을 가능하게 하는 트랜지션 프로세싱을 포함할 수 있다.[00627] The PCD can be operated through the use of control flows that consist of activities such as flow-to-operator activities, MIM activities, and behaviors. 63 shows an exemplary flow editor of the PCD SDK. The PCD control flows can be interpreted by a flow engine running on the PCD. The PCD SDK includes a flow editor tool for creating and editing robot skills in the same manner as the flowchart. The flows can be configured in the flow editor tool by adding controls for activities and activities. These controls are called flow-executor activities and are used to control activities in the flow. The flow-initiator activities may be used to initiate flows, execute parallel flows, terminate flows, access other flows, execute the behavior tree, interrupt the flow, and throws and catches You can use it to skip anywhere in the flow, run any JavaScript, and so on. Other activities that may be added to the flow include MIM activities and behavioral activities. The flows may also include transition processing, which makes it possible to use the results of one activity in the flow to determine the next activity to perform.

[00628] 실시예들에서, PCD SDK는, PCD를 동작시키기 위한 스킬들 및 어셋들을 생성하는 데 사용될 수 있다. 스킬을 생성하기 위한 기본 단계들은, SDK 사용자 인터페이스를 사용하여 새로운 스킬 프로젝트를 오픈하고; 애니메이션을 생성하고; 활동들(이를테면, 바디 움직임, 아이 활동, 및 LED 링 조명)을 수행하기 위해 거동 트리를 생성하고; 청취하도록 PCD에 지시하는 스피치 규칙을 생성하고; PCD가 스피치 규칙을 적용하는 것에 대한 응답으로 멀티-모달 상호작용을 가능하게 하기 위해 하나 또는 그 초과의 MIM들을 생성하고; PCD의 디스플레이 스크린 상에 디스플레이할 GUI 메뉴를 생성하고; 이러한 생성된 엘리먼트들을 활동들의 코히어런트(coherent) 순차적 흐름으로 합치는 흐름을 생성하고; 스킬을 포함하는 활동들의 흐름이 예상되는 바와 같다는 것을 검증하기 위해 시뮬레이터를 사용하고; PCD에 스킬을 다운로드하는 것을 포함한다.[00628] In embodiments, the PCD SDK can be used to generate the skills and assets for operating the PCD. The basic steps to create a skill are to open a new skill project using the SDK user interface; Create an animation; Generate a behavior tree to perform activities (e.g., body motion, eye activity, and LED ring illumination); Creating a speech rule instructing the PCD to listen; Generate one or more MIMs to enable multi-modal interaction in response to the PCD applying the speech rule; Creating a GUI menu to be displayed on the display screen of the PCD; Generate a flow that combines these generated elements into a coherent sequential flow of activities; Use a simulator to verify that the flow of activities involving the skill is as expected; And downloading the skill to the PCD.

[00629] 거동 편집기는, PCD 거동들의 계층적 구조를 구성하는 것을 가능하게 할 수 있다. 거동 편집기는, 노드들, 리프들, 페어런츠 거동들 등으로 구성될 수 있는 거동 트리 구조에 기반하여 PCD의 거동 활동을 제어하는 것을 가능하게 할 수 있다. 거동 편집기는, 순차적 및 병렬 순서 중 적어도 하나로 거동을 순서화하는 계층적 거동 트리로 PCD 거동들을 구성하는 것을 가능하게 할 수 있다. 거동 트리는, 판정-수행 프로세스들 및 PCD 프로세싱 리소스들의 액션들을 조정하는 것을 가능하기 위해 PCD의 제어 시퀀스들을 포함한다. 거동 편집기는, PCD의 복수의 표현 시스템들 중 적어도 하나의 표현 시스템 및 적어도 하나의 지각 시스템을 사용자가 제어할 수 있게 할 수 있다. 거동 트리 편집기는, 무효 거동 상태, 진행 중인 거동 상태, 성공된 거동 상태, 및 실패된 거동 상태를 포함하는 적어도 4개의 별개의 거동 상태들에 기반하여 PCD 거동들을 제어하는 것을 가능하게 할 수 있다. 무효 거동 상태는, 특정 거동이 아직 시작되지 않았다는 것을 표시할 수 있다. 진행 중인 거동 상태는, PCD가 특정 거동을 활발히 수행하고 있다는 것을 표시할 수 있다. 성공된 거동 상태는, 거동이 성공적이었다는 결정에 기반하여 PCD가 특정 거동을 수행하는 것을 끝마쳤다는 것을 표시할 수 있다. 실패된 거동 상태는, 거동이 성공하지 못했다는 결정에 기반하여 PCD가 특정 거동을 수행하는 것을 끝마쳤다는 것을 표시할 수 있다. 거동 편집기는, 거동들의 계층적 구조에서 PCD 거동을 정의하는 거동 트리의 기능적 엘리먼트로서 리프 거동을 구성하는 것을 가능하게 할 수 있으며, 여기서, 리프 거동은 어떠한 하위 레벨 거동들도 갖지 않는다. 거동 편집기는, 페어런츠 거동과 차일드 거동의 결합으로 한 세트의 PCD 거동들을 구성하는 것을 가능하게 할 수 있으며, 여기서, 차일드 거동은, 대응하는 페어런츠 거동의 완료 후에 PCD에 의해 수행된다. 페어런츠 거동은, 하나 또는 그 초과의 차일드 거동들을 개별적으로, 이를테면 미리 정의된 시퀀스로 또는 병렬로 수행하도록 거동 편집기로 구성될 수 있다. 차일드 거동은, 순차적인 차일드 거동 실행, 병렬 차일드 거동 실행, 스위칭된 차일드 거동 실행, 및 랜덤 차일드 거동 실행 중 적어도 하나에 기반하여 거동 트리에서 페어런츠 거동에 의해 선택될 수 있다. 거동 편집기는, 거동 편집기에 의해 구성되는 PCD 거동에 대한 적어도 하나의 거동 데코레이터를 구성하는 것을 가능하게 할 수 있다. 거동 데코레이터는, PCD 상에서, PCD의 대응하는 거동의 상태를 수정하도록 동작할 수 있다. PCD SDK는 사용자 인터페이스를 포함할 수 있으며, 사용자 인터페이스를 통해, 거동 편집기로 사용자에 의해 구성되는 거동 트리 특성들에 기반하여, PCD 상에서 스킬이 실행될 때, 연관된 거동에서의 거동들이 실행되도록, 거동 트리가 구성될 수 있고 그리고 거동 트리가 PCD 스킬과 연관될 수 있다. 거동 편집기는, PCD SDK의 거동 툴 모음을 포함할 수 있다. PCD SDK의 거동 툴 모음은 거동 편집기를 포함할 수 있다. 거동 편집기는, PCD에 대한 거동의 생성, 정의, 구성, 시뮬레이팅, 변경 및 전개 중 적어도 하나를 행하도록 적응되는 복수의 거동 사용자 인터페이스들을 포함할 수 있다.[00629] The behavior editor may enable to construct a hierarchical structure of PCD behaviors. The behavior editor may be able to control the behavior of the PCD based on the behavior tree structure, which may consist of nodes, leaves, parental behaviors, and the like. The behavior editor may enable to construct PCD behaviors with a hierarchical behavioral tree that orders behavior in at least one of sequential and parallel order. The behavior tree includes the control sequences of the PCD to enable the decision-making processes and the coordination of the actions of the PCD processing resources. The behavioral editor may enable the user to control at least one of the plurality of presentation systems of the PCD and at least one of the perception systems. The behavioral tree editor may be enabled to control PCD behaviors based on at least four distinct behavioral states, including a reactive behavior state, an ongoing behavior state, a successful behavior state, and a failed behavior state. The invalid behavior state can indicate that a particular behavior has not yet begun. An ongoing behavioral state may indicate that the PCD is actively performing certain behaviors. A successful behavior state can indicate that the PCD has finished performing a particular behavior based on the determination that the behavior was successful. The failed behavior state may indicate that the PCD has finished performing a specific behavior based on the determination that the behavior was not successful. The behavior editor may make it possible to construct the leaf behavior as a functional element of the behavior tree that defines the behavior of the PCD in a hierarchical structure of behaviors, where the leaf behavior has no lower level behavior. The behavior editor may enable to construct a set of PCD behaviors in combination of child behavior and child behavior, where the child behavior is performed by the PCD after completion of the corresponding parent behavior. The parentant behavior may consist of a behavioral editor to perform one or more child behaviors individually, such as in a predefined sequence or in parallel. The child behavior can be selected by parent behavior in the behavior tree based on at least one of sequential child behavior execution, parallel child behavior execution, switched child behavior execution, and random child behavior execution. The behavior editor may enable to construct at least one behavior decorator for the PCD behavior configured by the behavior editor. The behavior decorator can operate on the PCD to modify the state of the corresponding behavior of the PCD. The PCD SDK can include a user interface and, based on the behavioral tree characteristics configured by the user with the behavior editor via the user interface, the behavioral behavior of the behavioral tree is determined such that when the skill is executed on the PCD, And the behavior tree can be associated with the PCD skill. The behavior editor can include a collection of behavior tools from the PCD SDK. The behavior tool suite of the PCD SDK can include a behavior editor. The behavior editor may include a plurality of behavioral user interfaces adapted to perform at least one of creating, defining, constructing, simulating, changing, and deploying behaviors for the PCD.

[00630] PCD SDK의 애니메이션 툴 모음은, PCD의 어셋들을 제어하는 것을 가능하게 하도록 적응되는 애니메이션 편집기를 포함할 수 있으며, PCD의 어셋들은, 복수의 움직일 수 있는 세그먼트들의 다중-축 바디, 광원, 디스플레이 스크린, 및 오디오 출력 시스템 중 적어도 하나를 포함한다. 애니메이션 편집기는, 애니메이션 액션들 간의 트랜지션들 동안 PCD 어셋들을 제어하는 것을 가능하게 할 수 있다. 애니메이션 편집기는, 특정 애니메이션 빌더 모듈로부터 유도되는 적어도 하나의 애니메이션 인스턴스의 PCD 프로세서에 의한 실행을 유발하는 애니메이션 빌더들에 기반하여 한 세트의 PCD 애니메이션 액션들을 구성하는 것을 가능하게 할 수 있다. 적어도 하나의 유발된 애니메이션 인스턴스는 PCD의 어셋들을 제어한다. 어셋들 중 적어도 하나의 제어는, 애니메이션 인스턴스가 PCD 상에서 실행되는 동안 애니메이션 인스턴스에 의해 배타적으로 제어된다. PCD SDK의 애니메이션 툴 모음은, PCD의 실행 시퀀스에서 애니메이션 빌더를 인스턴스화할 수 있다. 애니메이션 툴 모음은, PCD의 복수의 자유도를 제어하기 위한 액세스를 제공할 수 있으며, 여기서, 각각의 자유도는, PCT의 액션가능한 물리적 양상과 연관된다. PCD의 자유도는, PCD의 하나 또는 그 초과의 움직일 수 있는 바디 세그먼트들과 연관될 수 있다. PCD의 자유도는, PCD의 전자 디스플레이 스크린과 연관될 수 있다. PCD의 자유도는, 광원, 이를테면, PCD의 하나 또는 그 초과의 바디 세그먼트들 상에 배치되는 라이트 링과 연관될 수 있다. PCD의 자유도는, PCD의 전자 디스플레이 상에 디스플레이되는 예시된 아이를 포함할 수 있다. 애니메이션 툴 모음은, PCD의 하나 또는 그 초과의 자유도를 애니메이션 인스턴스에 할당하는 것을 가능하게 할 수 있다. 애니메이션 툴 모음은, PCD의 자유도의 제어를 별개의 애니메이션 인스턴스들 사이로 변경하는 것을 가능하게 할 수 있다. 애니메이션 툴 모음은, PCD의 하나 또는 그 초과의 자유도의 애니메이션들의 스피드, 상호작용들 등의 제어를 가능하게 할 수 있다. PCD의 자유도를 제어하기 위한 애니메이션 툴 모음은, 시작된 애니메이션 이벤트, 중단된 애니메이션 이벤트, 및 취소된 애니메이션 이벤트를 포함하는 애니메이션 인스턴스와 연관된 이벤트들에 기반하여, 애니메이션 제어를 가능하게 할 수 있다. PCD SDK의 애니메이션 툴 모음은, PCD의 표현 응시 애니메이션 제어를 가능하게 할 수 있는, 컴퓨팅 디바이스의 전자 디스플레이에 디스플레이되는 사용자 인터페이스 제어 엘리먼트들을 포함할 수 있다. 표현 응시 애니메이션은, PCD에 대해 3차원 공간에 정의될 수 있는 응시 포인트에 대한 단일 움직임으로서 수행될 수 있다. 대안적으로, 표현 응시 애니메이션은, 응시 타겟을 계속 응시하도록 PCD를 애니메이팅하는 것을 가능하게 하는 응시 타겟 추적을 이용한 연속하는 움직임으로서 수행될 수 있다. 애니메이션 툴 모음과 연관된 것과 같은 PCD SDK의 애니메이션 편집기는, PCD의 시각적 표현이 도시되는 바디 페인, PCD의 전자 디스플레이 스크린 상에 디스플레이되는 아이의 시각적 표현이 도시되는 아이 페인, 및 애니메이션 액션들이 애니메이션들, 트랜지션들 등의 타임라인에 있는 것으로 도시되는 타임라인 페인을 포함할 수 있다.[00630] The animation tool suite of the PCD SDK may include an animation editor adapted to enable control of the PCD's assets, the assets of the PCD including a multi-axis body of a plurality of movable segments, a light source, A display screen, and an audio output system. The animation editor may be enabled to control PCD assets during transitions between animation actions. The animation editor may be enabled to configure a set of PCD animation actions based on animation builders that cause execution by a PCD processor of at least one animation instance derived from a particular animation builder module. At least one triggered animation instance controls the assets of the PCD. Control of at least one of the assets is exclusively controlled by the animation instance while the animation instance is running on the PCD. The animation toolset in the PCD SDK can instantiate an animation builder in the PCD's execution sequence. The animation tool suite may provide access to control a plurality of degrees of freedom of the PCD, wherein each degree of freedom is associated with an actionable physical aspect of the PCT. The degree of freedom of the PCD may be associated with one or more movable body segments of the PCD. The degree of freedom of the PCD can be associated with the electronic display screen of the PCD. The degree of freedom of the PCD can be associated with a light ring, such as a light ring, placed on one or more body segments of the PCD. The degrees of freedom of the PCD may include the illustrated eye displayed on the electronic display of the PCD. The animation tool suite may enable assigning one or more degrees of freedom of the PCD to the animation instance. The animation tool suite can enable control of the degree of freedom of the PCD to be changed between separate animation instances. The animation tool suite may enable control of the speed, interactions, etc. of animations of one or more degrees of freedom of the PCD. An animation tool suite for controlling the degree of freedom of the PCD may enable animation control based on events associated with the animation instance, including initiated animation events, interrupted animation events, and canceled animation events. The animation tool suite of the PCD SDK may include user interface control elements that are displayed on the electronic display of the computing device, which may enable presentation look-and-feel control of the PCD. Representative gazing animation can be performed as a single move to the gazing point that can be defined in the 3D space for the PCD. Alternatively, the presentation gazing animation can be performed as a continuous movement using the target target tracking, which enables animating the PCD to keep gazing at the target target. Animation editors of the PCD SDK, such as those associated with the animation tool suite, include a body pane in which the visual representation of the PCD is shown, an eye pane in which a visual representation of the child is displayed on the PCD's electronic display screen, And a timeline pane shown as being in the timeline, such as transitions.

[00631] PCD와 인간 참가자 간의 상호작용들 동안 가변성, 핸들링 에러들 등을 도입하기 위한 MIM(multi-modal interaction module) 편집기는, 상호작용의 하나 초과의 모드를 제어하는 것을 가능하게 할 수 있다. MIM 편집기는, 인식된 조건(이를테면, 발화된 응답, 촉각 입력, 응답의 부재 등)에 대한 응답으로 PCD에 의해 산출될 복수의 멀티-모달 프롬프트들을 구성하는 것을 가능하게 할 수 있다. MIM 편집기는, 참가자, 이를테면 인간, 다른 PCD 등과의 상호작용들 동안 멀티-모달 응답들을 제어하는 것을 가능하게 한다. MIM 편집기는, PCD의 디스플레이 스크린이 PCD에 의해 출력되는 오디오와 조정되도록 그 디스플레이 스크린을 제어하는 것을 가능하게 할 수 있으며, 여기서, 디스플레이 스크린은, 촉각 입력을 수신하고 그 입력을 디스플레이 스크린 상의 시각적 프리젠테이션에 기반하여 복수의 응답 옵션들 중 하나와 연관시키도록 적응된다. MIM 편집기는, PCD의 자연 언어 이해 프로세서가 PCD에 근접하게 있는 인간으로부터의 발화들을 해석하는 방식을 제어할 수 있는 스피치 인식 규칙을 구성하는 것을 가능하게 할 수 있다. MIM 편집기는, 어구 입력 필드, 결과 오브젝트 디스플레이 페인, 및 스피치 인식 규칙 페인을 포함할 수 있는 사용자 인터페이스를 포함할 수 있다. MIM 편집기는 추가로, PCD에 의해 취해질 비-매치 및 비-입력 액션들의 사용자 구성을 가능하게 하는 것을 통해 에러들 또는 인식되지 않은 응답들로부터의 복원을 가능하게 할 수 있다.[00631] A multi-modal interaction module (MIM) editor for introducing variability, handling errors, etc. during interactions between a PCD and a human participant may be able to control one mode of interaction. The MIM editor may be enabled to configure a plurality of multi-modal prompts to be computed by the PCD in response to recognized conditions (such as an uttered response, tactile input, lack of response, etc.). The MIM editor makes it possible to control multi-modal responses during interactions with participants, such as humans, other PCDs, and the like. The MIM editor may enable the display screen of the PCD to control its display screen to be coordinated with the audio output by the PCD, wherein the display screen receives the tactile input and sends the input to a visual presenting Based on a plurality of response options. The MIM editor can make it possible to construct speech recognition rules that can control how the natural language understanding processor of the PCD interprets human utterances close to the PCD. The MIM editor may include a user interface that may include a phrase input field, a result object display pane, and a speech recognition rule pane. The MIM editor may additionally enable restoration from errors or unrecognized responses through enabling user configuration of non-matching and non-input actions to be taken by the PCD.

[00632] 본 명세서에 설명된 방법들 및 시스템들은, 프로세서 상에서 컴퓨터 소프트웨어, 프로그램 코드들, 및/또는 명령들을 실행하는 머신을 통해 부분적으로 또는 그 전부가 전개될 수 있다. 프로세서는, 서버, 클라이언트, 네트워크 기반구조, 모바일 컴퓨팅 플랫폼, 정적 컴퓨팅 플랫폼, 또는 다른 컴퓨팅 플랫폼의 일부일 수 있다. 프로세서는, 프로그램 명령들, 코드들, 바이너리 명령들 등을 실행할 수 있는 계산 또는 프로세싱 디바이스의 임의의 유형일 수 있다. 프로세서는, 프로세서에 저장된 프로그램 명령들 또는 프로그램 코드의 실행을 직접적으로 또는 간접적으로 용이하게 할 수 있는 신호 프로세서, 디지털 프로세서, 임베딩된 프로세서, 마이크로프로세서, 또는 코-프로세서(co-processor)(매쓰 코-프로세서, 그래픽 코-프로세서, 통신 코-프로세서 등) 등과 같은 임의의 변형일 수 있거나 또는 이를 포함할 수 있다. 부가적으로, 프로세서는 다수의 프로그램들, 쓰레드들, 및 코드들의 실행을 가능하게 할 수 있다. 프로세서의 성능을 향상시키고 애플리케이션의 동시 동작들을 용이하게 하기 위해, 쓰레드들은 동시에 실행될 수 있다. 구현으로서, 본 명세서에 설명된 방법들, 프로그램 코드들, 프로그램 명령들 등은 하나 또는 그 초과의 쓰레드로 구현될 수 있다. 쓰레드는, 그들과 연관된 할당된 우선순위들을 가질 수 있는 다른 쓰레드들을 유발할 수 있으며, 프로세서는 우선순위에 기초하거나 프로그램 코드에서 제공되는 명령들에 기반하여 임의의 다른 순서로 이들 쓰레드들을 실행할 수 있다. 프로세서는, 본 명세서 및 다른 곳에서 설명된 바와 같은 방법들, 코드들, 명령들, 및 프로그램들을 저장하는 메모리를 포함할 수 있다. 프로세서는, 본 명세서 및 다른 곳에서 설명된 바와 같은 방법들, 코드들, 및 명령들을 저장할 수 있는 저장 매체에 인터페이스를 통해 액세스할 수 있다. 컴퓨팅 또는 프로세싱 디바이스에 의해 실행될 수 있는 방법들, 프로그램들, 코드들, 프로그램 명령들 또는 다른 타입의 명령들을 저장하기 위한 프로세서와 연관된 저장 매체는, CD-ROM, DVD, 메모리, 하드 디스크, 플래시 드라이브, RAM, ROM, 캐시 등 중 하나 또는 그 초과를 포함할 수 있지만 이에 제한되지 않을 수 있다.[00632] The methods and systems described herein may be deployed, in whole or in part, through a machine that executes computer software, program code, and / or instructions on a processor. The processor may be part of a server, client, network infrastructure, mobile computing platform, static computing platform, or other computing platform. A processor may be any type of computing or processing device capable of executing program instructions, codes, binary instructions, and the like. A processor may be a signal processor, a digital processor, an embedded processor, a microprocessor, or a co-processor (such as a MathCore processor) that can directly or indirectly facilitate the execution of program instructions or program code stored in a processor. Processor, graphics co-processor, communication co-processor, etc.), and the like. Additionally, the processor may enable execution of multiple programs, threads, and codes. To improve the performance of the processor and facilitate simultaneous operation of applications, threads may be executed concurrently. As an implementation, the methods, program codes, program instructions, and the like described herein may be implemented as one or more threads. The threads may cause other threads to have their assigned priorities associated with them, and the processor may execute these threads in any other order based on priority or based on instructions provided in the program code. A processor may include a memory that stores methods, codes, instructions, and programs as described herein and elsewhere. A processor may access, via an interface, a storage medium capable of storing methods, codes, and instructions as described herein and elsewhere herein. A storage medium associated with a processor for storing the methods, programs, codes, program instructions or other types of instructions that may be executed by a computing or processing device includes, but is not limited to, a CD-ROM, DVD, memory, hard disk, flash drive , RAM, ROM, cache, etc., but may not be limited thereto.

[00633] 프로세서는, 멀티프로세서의 스피드 및 성능을 향상시킬 수 있는 하나 또는 그 초과의 코어들을 포함할 수 있다. 실시예에서, 프로세스는, 2개 또는 그 초과의 독립적인 코어들(다이로 지칭됨)을 결합시킨 듀얼 코어 프로세서, 쿼드 코어 프로세서들, 다른 칩-레벨 멀티프로세서 등일 수 있다.[00633] A processor may include one or more cores capable of improving the speed and performance of the multiprocessor. In an embodiment, the process may be a dual-core processor, quad-core processors, other chip-level multiprocessors, etc., that combine two or more independent cores (referred to as dies).

[00634] 본 명세서에 설명된 방법들 및 시스템들은, 서버, 클라이언트, 방화벽, 게이트웨이, 허브, 라우터, 또는 다른 그러한 컴퓨터 및/또는 네트워크 하드웨어 상에서 컴퓨터 소프트웨어를 실행하는 머신을 통해 부분적으로 또는 그 전부가 전개될 수 있다. 소프트웨어 프로그램은, 파일 서버, 프린트 서버, 도메인 서버, 인터넷 서버, 인트라넷 서버, 및 2차 서버, 호스트 서버, 분산형 서버 등과 같은 다른 변형들을 포함할 수 있는 서버와 연관될 수 있다. 서버는, 메모리들, 프로세서들, 컴퓨터 판독가능 매체들, 저장 매체들, (물리적 및 가상) 포트들, 통신 디바이스들, 및 유선 또는 무선 매체를 통해 다른 서버들, 클라이언트들 머신들 및 디바이스들에 액세스할 수 있는 인터페이스들 등 중 하나 또는 그 초과를 포함할 수 있다. 본 명세서 및 다른 곳에서 설명된 바와 같은 방법들, 프로그램들 또는 코드들은 서버에 의해 실행될 수 있다. 부가적으로, 본 출원에 설명된 바와 같은 방법들의 실행을 위해 요구되는 다른 디바이스들은 서버와 연관된 기반구조의 일부로서 고려될 수 있다.[00634] The methods and systems described herein may be implemented in part or in whole through a machine running computer software on a server, client, firewall, gateway, hub, router, or other such computer and / Lt; / RTI &gt; A software program may be associated with a server that may include file servers, print servers, domain servers, Internet servers, intranet servers, and other variations such as secondary servers, host servers, distributed servers, A server may be coupled to other servers, clients, machines and devices via memories, processors, computer readable media, storage media, (physical and virtual) ports, communication devices, and wired or wireless media. Accessible interfaces, and the like. The methods, programs or codes as described herein and elsewhere may be executed by the server. Additionally, other devices required for execution of methods such as those described in this application may be considered as part of the infrastructure associated with the server.

[00635] 서버는, 클라이언트들, 다른 서버들, 프린터들, 데이터베이스 서버들, 프린트 서버들, 파일 서버들, 통신 서버들, 분산형 서버들 등을 제한 없이 포함하는 다른 디바이스들에 인터페이스를 제공할 수 있다. 부가적으로, 이러한 커플링 및/또는 접속은 네트워크에 걸친 프로그램의 원격 실행을 용이하게 할 수 있다. 이들 디바이스들 중 일부 또는 그 전부의 네트워킹은, 범위를 벗어나지 않으면서 하나 또는 그 초과의 위치에서 프로그램 또는 방법의 병렬 프로세싱을 용이하게 할 수 있다. 부가적으로, 인터페이스를 통해 서버에 연결된 디바이스들 중 임의의 디바이스는, 방법들, 프로그램들, 코드 및/또는 명령들을 저장할 수 있는 적어도 하나의 저장 매체를 포함할 수 있다. 중앙 저장소는 상이한 디바이스들 상에 실행될 프로그램 명령들을 제공할 수 있다. 이러한 구현에서, 원격 저장소가 프로그램 코드, 명령들, 및 프로그램들에 대한 저장 매체로서 동작할 수 있다.[00635] The server may provide an interface to other devices including, without limitation, clients, other servers, printers, database servers, print servers, file servers, communication servers, distributed servers, . Additionally, such coupling and / or connection may facilitate remote execution of a program across a network. The networking of some or all of these devices may facilitate the parallel processing of programs or methods at one or more locations without departing from the scope. Additionally, any of the devices connected to the server via the interface may include at least one storage medium capable of storing methods, programs, code and / or instructions. The central repository may provide program instructions to be executed on different devices. In this implementation, the remote repository may operate as a storage medium for program code, instructions, and programs.

[00636] 소프트웨어 프로그램은, 파일 클라이언트, 프린트 클라이언트, 도메인 클라이언트, 인터넷 클라이언트, 인트라넷 클라이언트, 및 2차 클라이언트, 호스트 클라이언트, 분산형 클라이언트 등과 같은 다른 변형들을 포함할 수 있는 클라이언트와 연관될 수 있다. 클라이언트는, 메모리들, 프로세서들, 컴퓨터 판독가능 매체들, 저장 매체들, (물리적 및 가상) 포트들, 통신 디바이스들, 및 유선 또는 무선 매체를 통해 다른 클라이언트들, 서버들, 머신들 및 디바이스들에 액세스할 수 있는 인터페이스들 등 중 하나 또는 그 초과를 포함할 수 있다. 본 명세서 및 다른 곳에서 설명된 바와 같은 방법들, 프로그램들, 또는 코드들은 클라이언트에 의해 실행될 수 있다. 부가적으로, 본 출원에서 설명된 바와 같은 방법들의 실행을 위해 요구되는 다른 디바이스들은, 클라이언트와 연관된 기반구조의 일부로서 고려될 수 있다.[00636] A software program may be associated with a client that may include a file client, a print client, a domain client, an Internet client, an intranet client, and other variations such as a secondary client, a host client, a distributed client, The client may be connected to other clients, servers, machines and devices (e. G., &Lt; RTI ID = 0.0 &gt; &Lt; / RTI &gt; and / or more. The methods, programs, or codes as described herein and elsewhere may be executed by a client. Additionally, other devices required for execution of methods as described in this application may be considered as part of the infrastructure associated with the client.

[00637] 클라이언트는, 서버들, 다른 클라이언트들, 프린터들, 데이터베이스 서버들, 프린트 서버들, 파일 서버들, 통신 서버들, 분산형 서버들 등을 제한 없이 포함하는 다른 디바이스들에 인터페이스를 제공할 수 있다. 부가적으로, 이러한 커플링 및/또는 접속은 네트워크에 걸친 프로그램의 원격 실행을 용이하게 할 수 있다. 이들 디바이스들 중 일부 또는 그 전부의 네트워킹은, 범위를 벗어나지 않으면서 하나 또는 그 초과의 위치에서 프로그램 또는 방법의 병렬 프로세싱을 용이하게 할 수 있다. 부가적으로, 인터페이스를 통해 클라이언트에 연결된 디바이스들 중 임의의 디바이스는, 방법들, 프로그램들, 애플리케이션들, 코드 및/또는 명령들을 저장할 수 있는 적어도 하나의 저장 매체를 포함할 수 있다. 중앙 저장소는 상이한 디바이스들 상에 실행될 프로그램 명령들을 제공할 수 있다. 이러한 구현에서, 원격 저장소가 프로그램 코드, 명령들, 및 프로그램들에 대한 저장 매체로서 동작할 수 있다.[00637] A client may provide an interface to other devices including, without limitation, servers, other clients, printers, database servers, print servers, file servers, communication servers, distributed servers, . Additionally, such coupling and / or connection may facilitate remote execution of a program across a network. The networking of some or all of these devices may facilitate the parallel processing of programs or methods at one or more locations without departing from the scope. Additionally, any of the devices connected to the client via the interface may comprise at least one storage medium capable of storing methods, programs, applications, code and / or instructions. The central repository may provide program instructions to be executed on different devices. In this implementation, the remote repository may operate as a storage medium for program code, instructions, and programs.

[00638] 본 명세서에 설명된 방법들 및 시스템들은 네트워크 기반구조를 통해 부분적으로 또는 그 전부가 전개될 수 있다. 네트워크 기반구조는, 컴퓨팅 디바이스들, 서버들, 라우터들, 허브들, 방화벽들, 클라이언트들, 개인용 컴퓨터들, 통신 디바이스들, 라우팅 디바이스들, 및 당업계에 알려져 있는 바와 같은 다른 능동 및 수동 디바이스들, 모듈들 및/또는 컴포넌트들과 같은 엘리먼트들을 포함할 수 있다. 네트워크 기반구조와 연관된 컴퓨팅 및/또는 넌-컴퓨팅(non-computing) 디바이스(들)는, 다른 컴포넌트들 외에도, 플래시 메모리, 버퍼, 스택, RAM, ROM 등과 같은 저장 매체를 포함할 수 있다. 본 명세서 및 다른 곳에서 설명된 프로세스들, 방법들, 프로그램 코드들, 명령들은, 네트워크 기반구조 엘리먼트들 중 하나 또는 그 초과에 의해 실행될 수 있다.[00638] The methods and systems described herein may be deployed, in part or in whole, through a network infrastructure. The network infrastructure may be implemented in any computing device, including servers, routers, hubs, firewalls, clients, personal computers, communication devices, routing devices, and other active and passive devices , &Lt; / RTI &gt; modules and / or components. The computing and / or non-computing device (s) associated with the network infrastructure may include storage media such as flash memory, buffer, stack, RAM, ROM, etc., in addition to other components. The processes, methods, program codes, and instructions described herein and elsewhere may be executed by one or more of the network infrastructure elements.

[00639] 본 명세서 및 다른 곳에서 설명된 방법들, 프로그램 코드들, 및 명령들은, 다수의 셀들을 갖는 셀룰러 네트워크 상에 구현될 수 있다. 셀룰러 네트워크는, 주파수 분할 다중 액세스(FDMA) 네트워크 또는 코드 분할 다중 액세스(CDMA) 네트워크 중 어느 하나일 수 있다. 셀룰러 네트워크는, 모바일 디바이스들, 셀 사이트들, 기지국들, 중계기들, 안테나들, 타워들 등을 포함할 수 있다. 셀 네트워크는 GSM, GPRS, 3G, EVDO, 메시, 또는 다른 네트워크 타입들일 수 있다.[00639] The methods, program codes, and instructions described herein and elsewhere may be implemented on a cellular network having a plurality of cells. The cellular network may be either a frequency division multiple access (FDMA) network or a code division multiple access (CDMA) network. A cellular network may include mobile devices, cell sites, base stations, repeaters, antennas, towers, and the like. The cell network may be GSM, GPRS, 3G, EVDO, mesh, or other network types.

[00640] 본 명세서 및 다른 곳에서 설명된 방법들, 프로그램 코드들, 및 명령들은 모바일 디바이스들 상에 또는 모바일 디바이스들을 통해 구현될 수 있다. 모바일 디바이스들은, 내비게이션 디바이스들, 셀 폰들, 모바일 폰들, 모바일 개인 휴대 정보 단말들, 랩톱들, 팜탑들, 넷북들, 페이저들, 전자 책 판독기들, 뮤직 플레이어들 등을 포함할 수 있다. 이들 디바이스들은, 다른 컴포넌트들 외에도, 플래시 메모리, 버퍼, RAM, ROM과 같은 저장 매체 및 하나 또는 그 초과의 컴퓨팅 디바이스들을 포함할 수 있다. 모바일 디바이스들과 연관된 컴퓨팅 디바이스들은, 모바일 디바이스들 상에 저장된 프로그램 코드들, 방법들, 및 명령들을 실행하도록 가능하게 될 수 있다. 대안적으로, 모바일 디바이스들은 다른 디바이스들과 협력하여 명령들을 실행하도록 구성될 수 있다. 모바일 디바이스들은, 서버들과 인터페이싱되고 그리고 프로그램 코드들을 실행하도록 구성되는 기지국들과 통신할 수 있다. 모바일 디바이스들은, 피어 투 피어 네트워크, 메시 네트워크 또는 다른 통신 네트워크를 통해 통신할 수 있다. 프로그램 코드는, 서버와 연관된 저장 매체 상에 저장되고 서버 내에 임베딩된 컴퓨팅 디바이스에 의해 실행될 수 있다. 기지국은 컴퓨팅 디바이스 및 저장 매체를 포함할 수 있다. 저장 디바이스는, 기지국과 연관된 컴퓨팅 디바이스들에 의해 실행되는 프로그램 코드들 및 명령들을 저장할 수 있다.[00640] The methods, program codes, and instructions described herein and elsewhere herein may be implemented on or through mobile devices. Mobile devices may include navigation devices, cell phones, mobile phones, mobile personal digital assistants, laptops, palmtops, netbooks, pagers, e-book readers, music players, and the like. These devices, in addition to other components, may include flash memory, a buffer, a storage medium such as RAM, ROM, and one or more computing devices. Computing devices associated with mobile devices may be enabled to execute program codes, methods, and instructions stored on mobile devices. Alternatively, the mobile devices may be configured to execute commands in cooperation with other devices. Mobile devices may communicate with base stations that are configured to interface with servers and execute program codes. Mobile devices may communicate via peer-to-peer networks, mesh networks, or other communication networks. The program code may be stored on a storage medium associated with the server and executed by a computing device embedded within the server. The base station may include a computing device and a storage medium. The storage device may store program codes and instructions that are executed by computing devices associated with the base station.

[00641] 컴퓨터 소프트웨어, 프로그램 코드들, 및/또는 명령들은, 컴퓨터 컴포넌트들, 디바이스들, 및, 일부 시간 구간 동안 컴퓨팅하기 위해 사용되는 디지털 데이터를 보유하는 기록 매체들; 랜덤 액세스 메모리(RAM)로 알려져 있는 반도체 저장부; 광학 디스크들, 자기 저장 유형 하드 디스크들의 형태들, 테이프들, 드럽들, 카드들 및 다른 타입들과 같은 통상적으로 더 영구적인 저장을 위한 대용량 저장부; 프로세서 레지스터들, 캐시 메모리, 휘발성 메모리, 비-휘발성 메모리; CD, DVD와 같은 광학 저장부; 플래시 메모리(예컨대, USB 스틱 또는 키들), 플로피 디스크들, 자기 테이프, 페이퍼 테이프, 펀치 카드들, 독립형 RAM 디스크들, Zip 드라이브들, 착탈형 대용량 저장부, 오프-라인 등과 같은 착탈형 매체들; 동적 메모리, 정적 메모리, 판독/기입 저장부, 이변(mutable) 저장부, 판독 전용, 랜덤 액세스형, 순차적 액세스형, 위치 어드레스가능형, 파일 어드레스가능형, 콘텐츠 어드레스가능형, 네트워크 연결 저장부, 저장 영역 네트워크, 바 코드들, 자기 잉크 등과 같은 다른 컴퓨터 메모리를 포함할 수 있는 머신 판독가능 매체들 상에 저장될 수 있고 그리고/또는 그들 상에서 액세스될 수 있다.[00641] Computer software, program codes, and / or instructions may include computer components, devices, and recording media having digital data used for computing during some time intervals; A semiconductor storage section known as random access memory (RAM); A mass storage for typically more permanent storage such as optical disks, types of magnetic storage type hard disks, tapes, droops, cards and other types; Processor registers, cache memory, volatile memory, non-volatile memory; An optical storage unit such as a CD or a DVD; Removable media such as flash memory (e.g., USB sticks or keys), floppy disks, magnetic tape, paper tape, punch cards, stand alone RAM disks, Zip drives, removable mass storage, off-line, A random access memory, a random access memory, a random access memory, a sequential access memory, a location addressable memory, a file addressable memory, a content addressable memory, a network connection memory, May be stored on and / or accessed on machine-readable media, which may include other computer memory such as storage area networks, bar codes, magnetic ink, and the like.

[00642] 본 명세서에 설명된 방법들 및 시스템들은, 물리적이거나 및/또는 무형의 아이템들을 하나의 상태로부터 다른 상태로 변환할 수 있다. 본 명세서에 설명된 방법들 및 시스템들은 또한, 물리적 및/또는 무형의 아이템들을 표현하는 데이터를 하나의 상태로부터 다른 상태로 변환할 수 있다.[00642] The methods and systems described herein may convert physical and / or intangible items from one state to another. The methods and systems described herein may also convert data representing physical and / or intangible items from one state to another.

[00643] 도면들 전체에 걸친 흐름도들 및 블록도들에 포함되는 본 명세서에 설명되고 도시된 엘리먼트들은, 엘리먼트들 사이의 로직 경계들을 함의한다. 그러나, 소프트웨어 또는 하드웨어 엔지니어링 실시들에 따르면, 도시된 엘리먼트들 및 그들의 기능들은, 단일구성 소프트웨어 구조로서, 독립형 소프트웨어 모듈로서, 또는 외부 루틴들, 코드, 서비스들 등을 사용하는 모듈들 또는 이들의 임의의 결합으로서 그들 상에 저장된 프로그램 명령들을 실행할 수 있는 프로세서를 갖는 컴퓨터 실행가능 매체들을 통해 머신들 상에서 구현될 수 있으며, 그러한 구현들 전부가 본 개시의 범위 내에 있을 수 있다. 그러한 머신들의 예들은, 개인 휴대 정보 단말들, 랩톱들, 개인용 컴퓨터들, 모바일 폰들, 다른 핸드헬드 컴퓨팅 디바이스들, 의료 장비들, 무선 또는 유선 통신 디바이스들, 트랜스듀서들, 칩들, 계산기들, 위성들, 태블릿 PC들, 전자 책들, 가젯(gadget)들, 전자 디바이스들, 인공 지능을 갖는 디바이스들, 컴퓨팅 디바이스들, 네트워킹 장비들, 서버들, 라우터들 등을 포함할 수 있지만 이에 제한되지 않을 수 있다. 게다가, 흐름도 및 블록도들에 도시된 엘리먼트들 또는 임의의 다른 로직 컴포넌트는, 프로그램 명령들을 실행할 수 있는 머신 상에서 구현될 수 있다. 따라서, 전술한 도면들 및 설명들이 기재된 시스템들의 기능적 양상들을 설명하지만, 명백히 언급되지 않거나 또는 맥락으로부터 달리 명확하지 않으면, 이들 기능적 양상들을 구현하기 위한 소프트웨어의 어떠한 특정 어레인지먼트라도 이들 설명들로부터 추론되어야 한다. 유사하게, 위에서 확인되고 설명되는 다양한 단계들이 변경될 수 있고, 본 명세서에 기재된 기술들의 특정한 애플리케이션들로 단계들의 순서가 적응될 수 있음이 인식될 수 있다. 모든 그러한 변형들 및 변경들은 본 개시의 범위 내에 속하는 것으로 의도된다. 따라서, 다양한 단계들에 대한 순서의 도시 및/또는 설명은, 특정한 애플리케이션에 의해 요구되지 않으면, 또는 명백히 언급되거나 맥락으로부터 달리 명확하지 않으면 그들 단계들에 대해 특정한 순서의 실행을 요구하는 것으로 이해되어서는 안된다.[00643] The elements described and illustrated herein, which are included in flowcharts and block diagrams throughout the Figures, embody logical boundaries between elements. However, according to software or hardware engineering practices, the elements shown and their functions may be implemented as a single configuration software structure, as a stand alone software module, or as modules using external routines, code, services, May be implemented on machines via computer-executable media having a processor capable of executing the program instructions stored on them as a combination of instructions, and all such implementations may be within the scope of the present disclosure. Examples of such machines are personal digital assistants, laptops, personal computers, mobile phones, other handheld computing devices, medical devices, wireless or wired communication devices, transducers, chips, But are not limited to, a variety of devices, including, but not limited to, notebook computers, tablet PCs, electronic books, gadgets, electronic devices, devices with artificial intelligence, computing devices, networking equipment, servers, routers, have. In addition, the elements shown in the flowcharts and block diagrams or any other logic component may be implemented on a machine capable of executing program instructions. Accordingly, although the above-described figures and descriptions illustrate the functional aspects of the described systems, any specific arrangement of software for implementing these functional aspects should be deduced from these descriptions, unless explicitly stated otherwise or clear from the context . Similarly, it will be appreciated that the various steps identified and described above may be varied and that the order of the steps may be adapted to the specific applications of the techniques described herein. All such modifications and variations are intended to be within the scope of this disclosure. Thus, it will be appreciated that the order and / or description of the sequences for the various steps is not required by a particular application, or is understood to require the execution of a particular sequence for those steps unless explicitly stated or otherwise explicit from the context Can not be done.

[00644] 상술된 방법들 및/또는 프로세스들, 및 그들의 단계들은, 특정한 애플리케이션에 대해 적절한 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어의 임의의 결합으로 실현될 수 있다. 하드웨어는, 범용 컴퓨터 및/또는 전용 컴퓨팅 디바이스 또는 특정 컴퓨팅 디바이스 또는 특정 컴퓨팅 디바이스의 특정한 양상 또는 컴포넌트를 포함할 수 있다. 프로세스들은, 내부 및/또는 외부 메모리와 함께, 하나 또는 그 초과의 마이크로프로세서들, 마이크로제어기들, 임베딩된 마이크로제어기들, 프로그래밍가능 디지털 신호 프로세서들 또는 다른 프로그래밍가능 디바이스에서 실현될 수 있다. 프로세스들은 또한 또는 그 대신, 주문형 집적 회로, 프로그래밍가능 게이트 어레이, 프로그래밍가능 어레이 로직, 또는 전자 신호들을 프로세싱하도록 구성될 수 있는 다른 디바이스 또는 디바이스들의 결합에서 구현될 수 있다. 프로세스들 중 하나 또는 그 초과는, 머신 판독가능 매체 상에서 실행될 수 있는 컴퓨터 실행가능한 코드로서 실현될 수 있음이 추가로 인식될 수 있다.[00644] The above-described methods and / or processes, and their steps, may be implemented with any suitable combination of hardware, software, or hardware and software for a particular application. The hardware may comprise a general purpose computer and / or a dedicated computing device or a particular aspect or component of a particular computing device or a specific computing device. Processes may be implemented in one or more microprocessors, microcontrollers, embedded microcontrollers, programmable digital signal processors, or other programmable devices, with internal and / or external memory. The processes may also or alternatively be implemented in a combination of an application specific integrated circuit, a programmable gate array, programmable array logic, or other device or devices that may be configured to process electronic signals. It is further appreciated that one or more of the processes may be realized as computer executable code that may be executed on a machine-readable medium.

[00645] 컴퓨터 실행가능 코드는, 상기 디바이스들 뿐만 아니라 프로세서들의 이종 결합들, 프로세서 아키텍쳐들, 또는 상이한 하드웨어 및 소프트웨어의 결합들, 또는 프로그램 명령들을 실행할 수 있는 임의의 다른 머신 중 하나 상에서 구동하도록 저장되거나 컴파일되거나 또는 해석될 수 있는 C와 같은 구조화된 프로그래밍 언어, C++와 같은 오브젝트 지향 프로그래밍 언어, 또는 (어셈블리 언어들, 하드웨어 디스크립션 언어들, 및 데이터베이스 프로그래밍 언어들 및 기술들을 포함하는) 임의의 다른 하이-레벨 또는 로우-레벨 프로그래밍 언어를 사용하여 생성될 수 있다.[00645] Computer executable code may be stored on any of the devices, as well as heterogeneous combinations of processors, processor architectures, or combinations of different hardware and software, or any other machine capable of executing program instructions A structured programming language such as C that can be compiled or interpreted, an object-oriented programming language such as C ++, or any other high (including assembly language, hardware description languages, and database programming languages and techniques) Level or low-level programming language.

[00646] 따라서, 일 양상에서, 상술된 각각의 방법 및 그들의 결합들은, 하나 또는 그 초과의 컴퓨팅 디바이스들 상에서 실행되는 경우 그들의 단계들을 수행하는 컴퓨터 실행가능한 코드로 구현될 수 있다. 다른 양상에서, 방법들은, 그들의 단계들을 수행하는 시스템들에서 구현될 수 있거나, 다양한 방식으로 디바이스들에 걸쳐 분산될 수 있거나, 또는 그 기능 전부가 전용, 독립형 디바이스 또는 다른 하드웨어 내에 통합될 수 있다. 다른 양상에서, 상술된 프로세스들과 연관된 단계들을 수행하기 위한 수단은, 상술된 하드웨어 및/또는 소프트웨어 중 임의의 것을 포함할 수 있다. 그러한 치환들 및 결합들 전부가 본 개시의 범위 내에 속하는 것으로 의도된다.[00646] Thus, in one aspect, each of the methods and combinations described above may be implemented with computer executable code that performs the steps thereof when executed on one or more computing devices. In another aspect, methods may be implemented in systems that perform their steps, or may be distributed across devices in various ways, or all of their functions may be integrated into a dedicated, stand-alone device or other hardware. In another aspect, the means for performing the steps associated with the processes described above may include any of the hardware and / or software described above. All such substitutions and combinations are intended to be within the scope of this disclosure.

[00647] 본 명세서에 설명된 방법들 시스템들이, 상세히 설명되고 도시된 특정한 바람직한 실시예들과 관련하여 기재되었지만, 그들 상에서의 다양한 변형들 및 개선들이 당업자들에게 용이하게 명백해질 수 있다. 따라서, 본 명세서에 설명된 방법들 및 시스템들의 사상 및 범위는 전술한 예들에 의해 제한되는 것이 아니며, 법에 의해 허용되는 가장 넓은 의미에 있는 것으로 이해될 것이다.[00647] While the methods and systems described herein have been described in connection with specific preferred embodiments, which are illustrated and described in detail, various modifications and improvements thereon may be readily apparent to those skilled in the art. Accordingly, it is to be understood that the spirit and scope of the methods and systems described herein are not limited by the foregoing examples, but are to be accorded the widest scope permitted by law.

[00648] 본 명세서에서 참조된 모든 문헌들은 이로써 인용에 의해 포함된다.[00648] All documents referred to herein are hereby incorporated by reference.

Claims (14)

지속적 컴패니언 디바이스(PCD: persistent companion device)에 대한 스킬(skill)을 개발하기 위한 시스템으로서,
프로세서상에서 실행하는 애플리케이션 프로그래밍 인터페이스(API: application programming interface)를 통해 액세스가능하며, 개발자가 상기 PCD에 의해 실행 가능한 스킬을 생성하는데 활용 가능한 하나 또는 그 초과의 콘텐츠 어셋들을 찾는 것, 생성하는 것, 편집하는 것 그리고 이들에 액세스하는 것 중 적어도 하나를 수행하는 것을 가능하게 하도록 구성된 어셋 개발 라이브러리;
프로세서상에서 실행하며 하나 또는 그 초과의 API들을 가진 애니메이션 툴 모음(animation tool suite) ―전자 디스플레이, 복수의 움직일 수 있는 바디 세그먼트들, 스피치(speech) 출력 시스템 및 멀티-컬러 광원 중 적어도 2개를 포함하는, 상기 스킬에 대한 상기 PCD의 하나 또는 그 초과의 물리적 엘리먼트들의 동작은 하나 또는 그 초과의 API들을 통해 상기 개발자에 의해 특정되며, 상기 스킬은 상기 개발자에 의해 정의되는 적어도 하나의 입력에 대한 응답으로 상기 PCD에 의해 실행 가능함―;
상기 스킬에 대한 상기 PCD의 하나 또는 그 초과의 거동 시퀀스들을 특정하기 위하여 상기 프로세서상에서 실행하는 거동 편집기(behavior editor); 및
상기 스킬을 실행하기 위한 실행 엔진에 상기 스킬을 전개하기 위하여 상기 프로세서상에서 실행하는 스킬 전개 설비를 포함하는, 지속적 컴패니언 디바이스(PCD: persistent companion device)에 대한 스킬을 개발하기 위한 시스템.
A system for developing a skill for a persistent companion device (PCD)
Creating, editing, and accessing one or more content assets that are accessible through an application programming interface (API) running on the processor and which the developer can use to create a skill executable by the PCD And accessing one or more of the plurality of storage devices;
An animation tool suite running on the processor and having one or more APIs - including at least two of an electronic display, a plurality of movable body segments, a speech output system, and a multi-color light source Wherein the operation of one or more of the physical elements of the PCD for the skill is specified by the developer through one or more APIs and the skill comprises a response to at least one input defined by the developer Executable by the PCD;
A behavior editor executing on the processor to specify one or more behavior sequences of the PCD for the skill; And
And a skill deployment facility executing on the processor for deploying the skill in an execution engine for executing the skill. &Lt; Desc / Clms Page number 19 &gt;
제1 항에 있어서,
상기 스킬 전개 설비는 API를 통해 상기 스킬을 전개하는, 지속적 컴패니언 디바이스(PCD: persistent companion device)에 대한 스킬을 개발하기 위한 시스템.
The method according to claim 1,
Wherein the skill deployment facility develops the skill via an API by developing a skill for a persistent companion device (PCD).
제1 항에 있어서,
상기 거동 편집기는 상기 PCD의 표현 출력 시스템 및 센서리 입력 시스템의 동작을 가능하게 하는, 지속적 컴패니언 디바이스(PCD: persistent companion device)에 대한 스킬을 개발하기 위한 시스템.
The method according to claim 1,
Wherein the behavior editor enables the operation of the representation output system and the sensor input system of the PCD for developing a skill for a persistent companion device (PCD).
소프트웨어 개발 키트(SDK)를 사용하여 지속적 컴패니언 디바이스(PCD) 스킬의 개발을 인에이블링하기 위한 시스템으로서,
프로세서상에서 동작하며, 상기 PCD로 수신된 입력들을 코딩된 응답들에 맵핑하도록 구성된 로직 레벨 맵핑 시스템; 및
상기 프로세서상에서 동작하며, 상기 PCD의 인지 엔진을 구성하도록 적응된 PCD 거동 툴 모음(behavior tool suite)을 포함하며,
상기 PCD 거동 툴 모음은,
하나 또는 그 초과의 비전 기능 이벤트들을 검출하고 하나 또는 그 초과의 검출된 비전 기능 이벤트들을 상기 로직 레벨 맵핑 시스템에 알리기 위하여 상기 거동 툴 모음을 통해 구성된 비전 기능 시스템, 및
정의된 사운드(sound)들을 검출하고 검출된 스피치/사운드들을 상기 로직 레벨 맵핑 시스템에 알리기 위하여 상기 거동 툴 모음에 의해 구성 가능한 스피치/사운드 인식 및 이해 시스템; 및
적어도 하나의 입력에 대한 응답으로 적어도 하나의 정의된 상태를 표현하는 하나 또는 그 초과의 애니메이션들을 생성하고 상기 입력들에의 상기 애니메이션들의 맵핑을 위해 상기 로직 레벨 맵핑 시스템에 상기 하나 또는 그 초과의 애니메이션들을 송신하도록 표현 엔진을 구성하도록 적응된, 상기 프로세서상에서 실행하는 PCD 애니메이션 툴 모음을 포함하는, 소프트웨어 개발 키트(SDK)를 사용하여 지속적 컴패니언 디바이스(PCD) 스킬의 개발을 인에이블링하기 위한 시스템.
A system for enabling development of a persistent companion device (PCD) skill using a software development kit (SDK)
A logic level mapping system, operating on the processor, configured to map inputs received by the PCD to coded responses; And
A PCD behavior tool suite operating on the processor and adapted to configure the perception engine of the PCD,
The PCD behavior tool set includes:
A vision function system configured through the behavior tool suite to detect one or more vision function events and notify the logic level mapping system of one or more detected vision function events,
A speech / sound recognition and understanding system configurable by the behavior tool suite to detect defined sounds and to communicate the detected speech / sounds to the logic level mapping system; And
Generating one or more animations representing at least one defined state in response to at least one input and providing the logic level mapping system with the one or more animations to map the animations to the inputs, (PCD) skill using a software development kit (SDK), comprising a collection of PCD animation tools running on the processor, adapted to configure an expression engine to send a plurality of PCDs.
제4 항에 있어서,
상기 정의된 상태는 감정 상태, 페르소나 상태(persona state), 인식 상태(cognitive state), 및 정의된 에너지 레벨을 표현하는 상태 중 적어도 하나인, 소프트웨어 개발 키트(SDK)를 사용하여 지속적 컴패니언 디바이스(PCD) 스킬의 개발을 인에이블링하기 위한 시스템.
5. The method of claim 4,
Wherein the defined state is at least one of an emotional state, a persona state, a cognitive state, and a state representing a defined energy level, wherein the persistent companion device (PCD) ) A system for enabling the development of skills.
스킬을 수행하도록 지속적 컴패니언 디바이스(PCD)를 구성하기 위한 시스템으로서,
네트워킹된 서버상에서 실행하는 소프트웨어 개발 키트를 포함하며;
상기 소프트웨어 개발 키트는,
복수의 애니메이션 사용자 인터페이스 스크린들 ―사용자는 상기 복수의 애니메이션 사용자 인터페이스 스크린들을 통해 상기 스킬과 연관된 애니메이션을 구성하며, 상기 복수의 사용자 인터페이스 스크린들은 전자 디스플레이, 복수의 움직일 수 있는 바디 세그먼트들, 스피치 출력 시스템 및 멀티-컬러 광원 중 적어도 2개를 포함하는, 상기 PCD의 물리적 엘리먼트들의 동작의 사양(specification)을 가능하게 함―;
복수의 거동 사용자 인터페이스 스크린들을 포함하며, 상기 사용자는 상기 복수의 거동 사용자 인터페이스 스크린들을 통해 상기 스킬과 연관된 로봇 액션들 및 판정들을 조정하기 위한 상기 PCD의 거동을 구성하며, 상기 복수의 거동 사용자 인터페이스 스크린들은 상기 PCD의 센서리 입력 시스템에 대한 응답으로 상기 PCD의 표현 출력 시스템의 동작을 가능하게 하며;
상기 애니메이션 사용자 인터페이스 스크린들 및 상기 거동 사용자 인터페이스 스크린들 중 적어도 하나에서의 상기 PCD의 그래픽 표현은 상기 사용자에 의한 구성에 기반한 입력들에 대한 응답으로 상기 PCD의 움직임을 나타내는, 스킬을 수행하도록 지속적 컴패니언 디바이스(PCD)를 구성하기 위한 시스템.
A system for configuring a persistent companion device (PCD) to perform a skill,
A software development kit running on a networked server;
The software development kit includes:
A plurality of animation user interface screens, wherein the user configures an animation associated with the skill via the plurality of animation user interface screens, the plurality of user interface screens comprising an electronic display, a plurality of movable body segments, And at least two of a multi-color light source;
Wherein the user configures the behavior of the PCD to adjust robotic actions and decisions associated with the skill via the plurality of behavioral user interface screens, wherein the plurality of behavioral user interface screens, Enable the operation of the representation output system of the PCD in response to the sensor input system of the PCD;
Wherein the graphical representation of the PCD in at least one of the animation user interface screens and the behavioral user interface screens is indicative of movement of the PCD in response to inputs based on configuration by the user, A system for configuring a device (PCD).
제6 항에 있어서,
응시 배향 사용자 인터페이스 스크린을 더 포함하며, 상기 응시 배향 사용자 인터페이스 스크린을 통해, 사용자는 상기 PCD에 대한 3차원 공간내의 포인트로서 상기 PCD에 근접하게 로케이팅된 타겟을 향해 상기 PCD의 디스플레이 스크린을 표현방식으로 배향시키도록 상기 PCD를 구성하며, 상기 PCD는 싱글-샷 모드(single-shot mode) 및 연속하는 타겟-추적 모드(continuous target-tracking mode) 중 적어도 하나에서 상기 타겟에 응답하는, 스킬을 수행하도록 지속적 컴패니언 디바이스(PCD)를 구성하기 위한 시스템.
The method according to claim 6,
Further comprising a contingent orientation user interface screen through which the user is able to display the display screen of the PCD towards a target positioned close to the PCD as a point in the three dimensional space relative to the PCD Wherein the PCD is responsive to the target in at least one of a single-shot mode and a continuous target-tracking mode to perform the skill A system for configuring a persistent companion device (PCD)
지속적 컴패니언 디바이스(PCD)를 애니메이팅하기 위한 시스템으로서,
네트워킹된 서버상에서 실행하며, 소프트웨어 개발 키트를 통해 상기 PCD의 제어 기능들 및 PCD 애니메이션 구성에 대한 액세스를 제공하는 애니메이션 편집기;
복수의 상호연결된 움직일 수 있는 바디 세그먼트들, 상기 바디 세그먼트들의 회전을 위한 모터들, 적어도 하나의 라이트 링, 전자 디스플레이 스크린, 및 오디오 시스템으로 구성된 PCD에 대한 전자 인터페이스;
PCD 애니메이션 애플리케이션 프로그래밍 인터페이스 ― 상기 애니메이션 편집기는 상기 PCD 애니메이션 애플리케이션 프로그래밍 인터페이스를 통해 상기 PCD의 특징들 중 적어도 일부를 제어함 ―; 및
상기 애니메이션 편집기의 사용자에 의해 구성 가능한 복수의 애니메이션 빌더(builder)들을 포함하며, 상기 애니메이션 빌더들은 액티브(active) 애니메이션 세션들을 특정하는 애니메이션 인스턴스(instance)들을 유발하는, 지속적 컴패니언 디바이스(PCD)를 애니메이팅하기 위한 시스템.
A system for animating a persistent companion device (PCD), the system comprising:
An animation editor running on a networked server and providing access to control functions of the PCD and PCD animation configuration via a software development kit;
An electronic interface for a PCD comprised of a plurality of interconnected movable body segments, motors for rotation of the body segments, at least one light ring, an electronic display screen, and an audio system;
PCD animation application programming interface, said animation editor controlling at least some of the features of said PCD via said PCD animation application programming interface; And
Wherein the animation builders comprise a plurality of animation builders configurable by a user of the animation editor, wherein the animation builders are configured to animate persistent companion devices (PCDs), which cause animation instances to identify active animation sessions, A system for mating.
제8 항에 있어서,
신호에 대한 응답으로 제1 애니메이션 인스턴스로부터 제2 애니메이션 인스턴스로의 상기 PCD의 트랜지션(transition)을 특정하기 위한 거동 트랜지션 시스템을 더 포함하는, 지속적 컴패니언 디바이스(PCD)를 애니메이팅하기 위한 시스템.
9. The method of claim 8,
Further comprising a behavior transition system for specifying a transition of the PCD from the first animation instance to the second animation instance in response to the signal. &Lt; Desc / Clms Page number 19 &gt;
지속적 컴패니언 디바이스(PCD)의 거동들을 제어하기 위한 시스템으로서,
네트워킹된 서버상에서 실행하며, 소프트웨어 개발 키트를 통해 상기 PCD의 제어 기능들 및 PCD 거동 구성에 대한 액세스를 제공하는 거동 편집기;
상기 거동 편집기에 의해 액세스가능하고, 자율적인 로봇 동작 기능들의 거동 및 제어 흐름을 제어하는 것을 가능하게 하는 복수의 거동 트리 데이터 구조들을 포함하며, 상기 동작 기능들은 복수의 센서 입력 기능들 및 복수의 표현 출력 기능들을 포함하며, 상기 복수의 거동 트리 데이터 구조들은 로봇 동작 기능들의 제어를 계층적으로 체계화하며, 적어도 하나의 거동 트리 데이터 구조는 상기 PCD에 의해 수행되는 적어도 하나의 스킬과 연관되며;
각각의 거동 트리 데이터 구조는 복수의 거동 노드들을 포함하며, 상기 복수의 거동 노드들 각각은 무효 상태, 진행중인 상태, 성공적인 상태 및 실패된 상태로 구성된 4개의 거동 상태들 중 하나와 연관되며;
각각의 거동 트리 데이터 구조는 적어도 하나의 페어런츠(parent) 거동 노드를 포함하며, 상기 적어도 하나의 페어런츠 노드는 적어도 하나의 차일드(child) 거동 노드를 참조하며, 순차적 차일드 거동 노드 동작, 병렬 차일드 거동 노드 동작, 차일드 거동 노드들 간을 스위칭하는 것, 및 참조된 차일드 거동 노드를 랜덤하게 활성화하는 것 중 적어도 하나를 개시하도록 적응되는, 지속적 컴패니언 디바이스(PCD)의 거동들을 제어하기 위한 시스템.
A system for controlling behaviors of a persistent companion device (PCD)
A behavior editor running on the networked server and providing access to control functions and PCD behavior configuration of the PCD via a software development kit;
A plurality of behavior tree data structures accessible by the behavior editor and enabling control of behavior and control flow of autonomous robotic operation functions, the operation functions comprising a plurality of sensor input functions and a plurality of representations Output functions, wherein the plurality of behavior tree data structures hierarchically control the control of robot action functions, wherein at least one behavior tree data structure is associated with at least one skill performed by the PCD;
Each behavior tree data structure comprising a plurality of behavior nodes, each of the plurality of behavior nodes being associated with one of four behavior states comprised of an invalid state, an ongoing state, a successful state, and a failed state;
Each behavior tree data structure comprising at least one parent behavior node, the at least one parent node referring to at least one child behavior node, the sequential child behavior node behavior, the parallel child behavior node Wherein the controller is adapted to initiate at least one of: operation, switching between child behavior nodes, and randomly activating a referenced child behavior node.
제10 항에 있어서,
상기 거동 노드들 중 적어도 일부는 거동 노드가 시작하는 것을 방지하는 것, 실행 거동 노드가 성공하게 강제하는 것, 실행 거동 노드가 실패하게 강제하는 것, 거동 노드를 재실행하는 것 중 적어도 하나를 수행함으로써 자신의 거동 노드의 상태를 수정하는 기능을 하는 거동 노드 데코레이터(decorator)로 각각 구성되는, 지속적 컴패니언 디바이스(PCD)의 거동들을 제어하기 위한 시스템.
11. The method of claim 10,
At least some of the behavioral nodes performing at least one of preventing the behavioral nodes from starting, enforcing the behavioral behavior nodes successfully, enforcing the behavioral behavior nodes to fail, and re-running the behavioral nodes (PCD), each configured with a behavior node decorator functioning to modify the state of its behavior node.
지속적 컴패니언 디바이스(PCD)로 스피치를 인식하기 위한 시스템으로서,
PCD가 이해하는 자연 언어를 가능하게 하는 PCD 스피치 인식 구성 시스템 ― 상기 시스템은 사용자가 임베딩된 규칙(embedded rule) 및 커스텀 규칙(custom rule) 중 적어도 하나를 포함하는 스피치 이해 규칙들을 구성하기 위하여 네트워킹된 컴퓨터상에서 실행하는 스피치 규칙 편집기를 동작하게 하는 복수의 사용자 인터페이스 스크린들을 포함함 ―;
상기 네트워킹된 서버를 통해 상기 사용자에 의해 액세스되는 임베딩된 스피치 이해 규칙들의 라이브러리(library)를 포함하는 소프트웨어 개발 키트; 및
청취 성공 데코레이터에 의해 테스트된 조건의 성공적인 결과에 기반하여 사용자가 상기 PCD로 하여금 동작을 수행하게 하도록 구성하는 상기 청취 성공 데코레이터 및 청취-타입 PCD 거동 중 적어도 하나와 스피치 이해 규칙들을 사용자가 연관시키게 하는 상기 소프트웨어 개발의 로봇 거동 연관성 기능을 포함하는, 지속적 컴패니언 디바이스(PCD)로 스피치를 인식하기 위한 시스템.
A system for recognizing speech with a persistent companion device (PCD), the system comprising:
A PCD speech recognition configuration system that enables a natural language understood by the PCD. The system comprises a user interface for configuring speech intelligence rules for configuring speech understanding rules comprising at least one of an embedded rule and a custom rule. A plurality of user interface screens for operating a speech rule editor running on a computer;
A software development kit comprising a library of embedded speech understanding rules accessed by the user via the networked server; And
Wherein the user associates speech understanding rules with at least one of the listening success decorator and the listening-type PCD behavior that configures the user to perform an action on the PCD based on a successful result of the condition tested by the listening success decorator And a robotic behavior association function of said software development. &Lt; Desc / Clms Page number 20 &gt;
지속적 컴패니언 디바이스(PCD) 제어 구성 시스템으로서,
스크립팅된(scripted) 애니메이션들의 플레이백(playback)을 통한 상기 PCD의 표현 출력, 사용자에 의해 구성 가능한 이벤트 청취자들에 의해 검출된 이벤트들에 대한 상기 PCD의 응답 동작 및 애니메이션 커맨드들을 특정하는 것을 가능하게 하는 복수의 애니메이션 계층들을 제어하는 것을 가능하게 하는 PCD 애니메이션 구성 시스템;
상기 PCD의 기계적 및 전자적 동작을 제어하는 것을 가능하게 하는 PCD 거동 구성 시스템;
싱글-샷 및 타겟 추적 중 적어도 하나의 것의 응시 PCD 기능 모드 및 타겟을 특정함으로써 상기 PCD의 응시의 지향성 활동을 결정하는 것을 가능하게 하는 PCD 응시 배향 구성 시스템; 및
인간 스피치를 인식하기 위한 복수의 임베딩된 규칙들, 및 인간 스피치를 인식하기 위한 규칙들을 커스터마이징(customizing)하기 위한 사용자 인터페이스를 포함하는 PCD 스피치 인식 구성 시스템을 포함하며, 상기 인간 스피치는 상기 PCD의 오디오 센서 입력 시스템에 의해 캡처되는, 지속적 컴패니언 디바이스(PCD) 제어 구성 시스템.
A persistent companion device (PCD) control configuration system,
It is possible to output the representation of the PCD through playback of scripted animations, to specify the response operations of the PCD and the animation commands for events detected by user-configurable event listeners A PCD animation configuration system which enables to control a plurality of animation layers to be controlled;
A PCD behavior configuration system that enables to control the mechanical and electronic operation of the PCD;
A PCD candidate orientation configuration system that enables determining a directional activity of the gaze of the PCD by specifying a staring PCD function mode and a target of at least one of a single shot and a target tracking; And
A PCD speech recognition configuration system comprising a plurality of embedded rules for recognizing human speech and a user interface for customizing rules for recognizing human speech, A persistent companion device (PCD) control configuration system, captured by a sensor input system.
제13 항에 있어서,
로봇 거동을 통해 상기 PCD의 기계적 및 전자적 동작을 제어하는 것은 애니메이팅된 거동들 간의 트랜지션들을 제어하는 것, 병렬 제어 및 순차적인 제어 중 적어도 하나의 제어로 복수의 애니메이팅된(animated) 거동들을 제어하는 것, 및 페어런츠 및 차일드 거동들의 거동 트리에 기반하여 복수의 차일드 거동들을 제어하는 것을 포함하며, 차일드 거동은 상기 차일드 거동들 중에서 선택하고 상기 차일드 거동들 중에서 랜덤하게 선택하기 위한 스위치 조건 중 하나에 기반하여 활성화되는, 지속적 컴패니언 디바이스(PCD) 제어 구성 시스템.
14. The method of claim 13,
Controlling the mechanical and electronic operations of the PCD through robot behavior may include controlling transitions between animated behaviors, controlling a plurality of animated behaviors with at least one of a parallel control and a sequential control And controlling a plurality of child states based on a behavior tree of parent and child behaviors, wherein the child state behavior is selected from among the child states and one of the switch conditions for randomly selecting among the child states Based continuous active companion device (PCD) control configuration system.
KR1020187031496A 2016-03-31 2017-03-30 Persistent companion device configuration and deployment platform KR102306624B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662316247P 2016-03-31 2016-03-31
US62/316,247 2016-03-31
PCT/US2017/025137 WO2017173141A1 (en) 2016-03-31 2017-03-30 Persistent companion device configuration and deployment platform

Publications (2)

Publication Number Publication Date
KR20180129886A true KR20180129886A (en) 2018-12-05
KR102306624B1 KR102306624B1 (en) 2021-09-28

Family

ID=59966475

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187031496A KR102306624B1 (en) 2016-03-31 2017-03-30 Persistent companion device configuration and deployment platform

Country Status (4)

Country Link
JP (1) JP2019521449A (en)
KR (1) KR102306624B1 (en)
CA (1) CA3019535A1 (en)
WO (1) WO2017173141A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200108753A (en) * 2019-03-11 2020-09-21 쿠팡 주식회사 Systems and methods for managing application programming interface information
KR20210056114A (en) 2019-11-08 2021-05-18 고려대학교 산학협력단 Device for automatic question answering

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019133689A1 (en) * 2017-12-29 2019-07-04 DMAI, Inc. System and method for selective animatronic peripheral response for human machine dialogue
US20190206402A1 (en) * 2017-12-29 2019-07-04 DMAI, Inc. System and Method for Artificial Intelligence Driven Automated Companion
WO2019133698A1 (en) * 2017-12-29 2019-07-04 DMAI, Inc. System and method for personalizing dialogue based on user's appearances
WO2019133684A1 (en) * 2017-12-29 2019-07-04 DMAI, Inc. System and method for personalized and adaptive application management
US11222632B2 (en) 2017-12-29 2022-01-11 DMAI, Inc. System and method for intelligent initiation of a man-machine dialogue based on multi-modal sensory inputs
US11024294B2 (en) * 2017-12-29 2021-06-01 DMAI, Inc. System and method for dialogue management
US11150869B2 (en) 2018-02-14 2021-10-19 International Business Machines Corporation Voice command filtering
US11331807B2 (en) 2018-02-15 2022-05-17 DMAI, Inc. System and method for dynamic program configuration
US11238856B2 (en) 2018-05-01 2022-02-01 International Business Machines Corporation Ignoring trigger words in streamed media content
US11200890B2 (en) 2018-05-01 2021-12-14 International Business Machines Corporation Distinguishing voice commands
CN108928631B (en) * 2018-05-25 2024-01-26 上海优异达机电有限公司 Automatic distributing device for FPC jointed boards
USD888165S1 (en) 2018-11-05 2020-06-23 DMAI, Inc. Robot
USD916161S1 (en) 2018-11-05 2021-04-13 DMAI, Inc. Robot
US10824370B2 (en) * 2019-02-07 2020-11-03 quadric.io, Inc. Systems and methods for implementing random access memory in a flow-based machine perception and dense algorithm integrated circuit based on computing and coalescing of indices
KR102361038B1 (en) * 2019-06-29 2022-02-09 주식회사 큐버 smart mirror chatbot system of high-level context awareness by use of adaptive multiple biometrics
US11355108B2 (en) 2019-08-20 2022-06-07 International Business Machines Corporation Distinguishing voice commands
CN110910872B (en) * 2019-09-30 2023-06-02 华为终端有限公司 Voice interaction method and device
US20230173683A1 (en) * 2020-06-24 2023-06-08 Honda Motor Co., Ltd. Behavior control device, behavior control method, and program
JP7446178B2 (en) * 2020-08-05 2024-03-08 本田技研工業株式会社 Behavior control device, behavior control method, and program
CN111787169B (en) * 2020-07-13 2021-06-15 南京硅基智能科技有限公司 Three-party call terminal for mobile man-machine cooperation calling robot
CN113744414B (en) * 2021-09-06 2022-06-28 北京百度网讯科技有限公司 Image processing method, device, equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060126807A (en) * 2004-03-12 2006-12-08 코닌클리케 필립스 일렉트로닉스 엔.브이. Electronic device and method of enabling to animate an object
KR20160034243A (en) * 2013-03-15 2016-03-29 지보, 인코포레이티드 Apparatus and methods for providing a persistent companion device

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6427063B1 (en) * 1997-05-22 2002-07-30 Finali Corporation Agent based instruction system and method
JP4934904B2 (en) * 2000-05-12 2012-05-23 富士通株式会社 Robot cooperation device, robot cooperation program storage medium, and robot cooperation program
JP4670136B2 (en) * 2000-10-11 2011-04-13 ソニー株式会社 Authoring system, authoring method, and storage medium
JP2007069302A (en) * 2005-09-07 2007-03-22 Hitachi Ltd Action expressing device
TWI375933B (en) * 2007-08-07 2012-11-01 Triforce Co Ltd Language learning method and system thereof
FR2946160B1 (en) * 2009-05-26 2014-05-09 Aldebaran Robotics SYSTEM AND METHOD FOR EDIT AND ORDER BEHAVIOR OF MOBILE ROBOT.
US9286711B2 (en) * 2011-09-30 2016-03-15 Microsoft Technology Licensing, Llc Representing a location at a previous time period using an augmented reality display
US20150314454A1 (en) * 2013-03-15 2015-11-05 JIBO, Inc. Apparatus and methods for providing a persistent companion device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060126807A (en) * 2004-03-12 2006-12-08 코닌클리케 필립스 일렉트로닉스 엔.브이. Electronic device and method of enabling to animate an object
KR20160034243A (en) * 2013-03-15 2016-03-29 지보, 인코포레이티드 Apparatus and methods for providing a persistent companion device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200108753A (en) * 2019-03-11 2020-09-21 쿠팡 주식회사 Systems and methods for managing application programming interface information
KR20210056114A (en) 2019-11-08 2021-05-18 고려대학교 산학협력단 Device for automatic question answering

Also Published As

Publication number Publication date
JP2019521449A (en) 2019-07-25
CA3019535A1 (en) 2017-10-05
KR102306624B1 (en) 2021-09-28
WO2017173141A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
KR102306624B1 (en) Persistent companion device configuration and deployment platform
US11148296B2 (en) Engaging in human-based social interaction for performing tasks using a persistent companion device
US20170206064A1 (en) Persistent companion device configuration and deployment platform
AU2014236686B2 (en) Apparatus and methods for providing a persistent companion device
WO2016011159A1 (en) Apparatus and methods for providing a persistent companion device
Park et al. A metaverse: Taxonomy, components, applications, and open challenges
US20220148271A1 (en) Immersive story creation
US20230092103A1 (en) Content linking for artificial reality environments
CN109789550B (en) Control of social robots based on previous character depictions in novels or shows
US20180229372A1 (en) Maintaining attention and conveying believability via expression and goal-directed behavior with a social robot
US20210232577A1 (en) Devices and systems for human creativity co-computing, and related methods
TW201916005A (en) Interaction method and device
CN112262024A (en) System and method for dynamic robot configuration for enhanced digital experience
US11074491B2 (en) Emotionally intelligent companion device
WO2016206645A1 (en) Method and apparatus for loading control data into machine device
WO2018183812A1 (en) Persistent companion device configuration and deployment platform
Platz Design Beyond Devices: Creating Multimodal, Cross-device Experiences
Benyon et al. Scenarios for companions
WO2024219336A1 (en) Action control system and robot
WO2024214708A1 (en) Action control system
Yim Robotic User Interface for Telecommunication
Hansson et al. Lava AI-Design of an Interactive Online Device

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant