KR20170028877A - 로봇 상의 소프트웨어 애플리케이션 실행하기 - Google Patents

로봇 상의 소프트웨어 애플리케이션 실행하기 Download PDF

Info

Publication number
KR20170028877A
KR20170028877A KR1020167032135A KR20167032135A KR20170028877A KR 20170028877 A KR20170028877 A KR 20170028877A KR 1020167032135 A KR1020167032135 A KR 1020167032135A KR 20167032135 A KR20167032135 A KR 20167032135A KR 20170028877 A KR20170028877 A KR 20170028877A
Authority
KR
South Korea
Prior art keywords
robot
user
software application
conversation
rules
Prior art date
Application number
KR1020167032135A
Other languages
English (en)
Other versions
KR102001293B1 (ko
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 KR20170028877A publication Critical patent/KR20170028877A/ko
Application granted granted Critical
Publication of KR102001293B1 publication Critical patent/KR102001293B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • 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
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • 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/02Feature extraction for speech recognition; Selection of recognition unit
    • 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/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • 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/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Manipulator (AREA)
  • Machine Translation (AREA)
  • Stored Programmes (AREA)
  • Toys (AREA)

Abstract

로봇 상의 소프트웨어 애플리케이션 실행하기
로봇 상에서 소프트웨어 애플리케이션을 핸들링하는 방법으로서, 상기 로봇은 복수의 설치된 소프트웨어 애플리케이션을 포함하고, 소프트웨어애플리케이션은 지정 의미 기술(semantic description)과 연관되고, 상기 방법은 다음의 단계를 포함한다: 인간 사용자와의 오디오 대화로부터 하나 이상의 패턴을 추출하는 단계 - 상기 오디오 대화는 문장 또는 지정 문장을 포함하는 패턴을 포함함 - , 하나 이상의 패턴을 상기 소프트웨어 애플리케이션의 의미 기술에 비교하는 단계, 수행된 비교를 기초로 소프트웨어 애플리케이션을 선택하는 단계, 및 선택된 소프트웨어 애플리케이션을 실행하는 단계. 기재된 실시예가 소프트웨어 애플리케이션 실행 규칙, 지정 또는 동적으로 정의되는 규칙, 환경 파라미터에 따라 달라지는 설치된 애플리케이션의 오디오 나열, 보완적 디스플레이 수단의 선택적 사용 및 없는 애플리케이션의 설치를 포함한다. 연관된 시스템이 기재된다.

Description

로봇 상의 소프트웨어 애플리케이션 실행하기{EXECUTING SOFTWARE APPLICATIONS ON A ROBOT}
이 특허는 디지털 데이터 처리 분야와 관련되며 더 구체적으로 동반자 휴머노이드 로봇에서의 소프트웨어 애플리케이션의 핸들링과 관련된다.
스마트폰, 개인 컴퓨터 또는 태블릿 상에서, 그래픽 사용자 인터페이스(GUI)가 소프트웨어 애플리케이션으로의 우선 액세스 모드(predominant)를 나타낸다. 예를 들어, 사용자는 터치 스크린 상에서 아이콘을 선택함으로써 애플리케이션("앱")을 런칭하고 예를 들어 데이터를 선택 또는 입력함으로써 상기 애플리케이션과 더 대화할 수 있다.
음성 명령어는 일반적으로 특정 맥락에 한정된다. 예를 들면, 음성 받아쓰기 소프트웨어가 독립형 소프트웨어 (가령, 워드 프로세싱 소프트웨어)의 맥락에서 사용된다. 현대의 운영 체제에 의해 점점 더 제공되는 일부 액세스 가능성 특징에 따르면, 사용자는 특정 동작(가령, 애플리케이션 런칭, 복사 및 붙여 넣기 등)을 수행하기 위해 음성 명령어를 이용할 수 있다. 이들 지정 동작은 다소 제한적이다.
이러한 시각적 또는 오디오 대화 모드는 일반적으로 수동적이다(가령, 사용자는 능동적으로 주문하고 기계가 주문을 실행한다). 최근 컴퓨터 대화 모델, 가령, 대답 시스템에서 구현되는 컴퓨터 대화 모델의 경우에도, 기계에서 사용자로 제한된 대화가 발생한다. 몇몇 코어 및 지정 소프트웨어 애플리케이션, 가령, "웹 검색" 또는 "일정표"를 제외하고, 대답 시스템(answering system)(가령, 대화 에이전트)이 특정 게임 소프트웨어 애플리케이션을 런칭할 수 없다.
동반자 휴머노이드 로봇의 맥락에서, 인간 사용자와의 대화 모델은 개인 컴퓨터(및 이들의 상이한 형태)와의 대화 모델과 비교할 때 상당히 다르다. 따라서 로봇과의 인지 상호대화(cognitive interaction)가 태블릿 PC 또는 스마트 폰과의 인지 상호대화와 근본적으로 상이하다. 예를 들어 그리고 구체적으로, 로봇에는 종종 그래픽 출력 수단이 없다(가령, 동반자 로봇은 스크린을 내장하지 않을 수 있다). 이러한 기본적인 사실은, 특히, 하나 이상의 소프트웨어 애플리케이션을 적절하게 발견, 선택 및 실행할 때 많은 것을 의미한다.
로봇은 장차 소프트웨어 애플리케이션을 액세스하는 플랫폼을 나타낼 수 있기 때문에 - 미래가 아니더라도 많은 가정용으로 두드러짐 - 및/또는 디스플레이 요건을 최대 0까지 낮추기 위해 컴퓨팅이 일반적이 될 수 있기 때문에, 그래픽 사용자 인터페이스 수단이 제한되거나 부재하는 장치 상에서, 특히, 로봇의 특정 맥락에서 소프트웨어 애플리케이션을 핸들링하는 방법 및 시스템에 대한 필요성이 존재한다.
로봇 상에서 소프트웨어 애플리케이션을 핸들링하는 컴퓨터로 구현되는 방법으로서, 상기 로봇은 복수의 설치된 소프트웨어 애플리케이션을 포함하고, 소프트웨어애플리케이션은 지정 의미 기술(semantic description)과 연관되고, 상기 방법은 다음의 단계를 포함한다: 인간 사용자와의 오디오 대화로부터 하나 이상의 패턴을 추출하는 단계 - 상기 오디오 대화는 문장 또는 지정 문장을 포함하는 패턴을 포함함 - , 하나 이상의 패턴을 상기 소프트웨어 애플리케이션의 의미 기술에 비교하는 단계, 수행된 비교를 기초로 소프트웨어 애플리케이션을 선택하는 단계, 및 선택된 소프트웨어 애플리케이션을 실행하는 단계.
본 발명의 하나의 형태에서, 적어도 하나의 설치된 소프트웨어 애플리케이션은 하나 이상의 실행 규칙과 연관되고, 소프트웨어 애플리케이션을 선택하는 단계는 하나 이상의 규칙을 검증하는 단계를 포함한다.
본 발명의 하나의 형태에서, 상기 하나 이상의 규칙은 지정되거나 동적으로 정의된다.
본 발명의 하나의 형태에서, 상기 하나 이상의 규칙은 로봇 상에서 로컬하게 불러와 지거나 네트워크 연결을 통해 원격으로 액세스 가능하다.
본 발명의 하나의 형태에서, 상기 오디오 대화는 로봇의 질문에 대한 사용자의 응답을 포함한다.
본 발명의 하나의 형태에서, 상기 로봇의 질문은 대화의 문장 또는 상기 대화로부터 추출된 패턴을 명확화하기 위한 것이다.
본 발명의 하나의 형태에서, 상기 대화는 설치된 소프트웨어 애플리케이션의 리스트를 발음할 것을 로봇에게 사용자가 요청하는 것을 포함한다.
본 발명의 하나의 형태에서, 로봇에 의해 발음되는 리스트는 로봇의 지각되는 환경과 연관된 파라미터에 따라 달라진다.
본 발명의 하나의 형태에서, 상기 파라미터는 사용자 연령, 사용자 성별, 사용자 신장, 로봇 주위의 사용자 수, 사용자의 기분, 사용자의 미소 여부, 주변 오디오 레벨, 현재 날짜, 현재 시각, 현재 위치 및 이들의 조합으로 구성된 군 중에서 선택된다.
본 발명의 하나의 형태에서, 소프트웨어 애플리케이션을 선택하는 단계는 실행 확률 값을 상기 비교에 따라 각각의 설치된 소프트웨어 애플리케이션에 연관시키는 단계를 더 포함한다.
하나의 형태에서, 상기 방법은 선택된 소프트웨어 애플리케이션을 실행하기 전에 사용자의 확인을 수신하는 단계를 더 포함한다.
본 발명의 하나의 형태에서, 사용자와의 대화 동안 설치된 소프트웨어 애플리케이션 중 하나 이상과 연관된 하나 이상의 표현을 디스플레이하는 단계를 더 포함한다.
본 발명의 하나의 형태에서, 사용자와 대화 중에 로봇에 없는 소프트웨어 애플리케이션을 식별하고, 상기 로봇에 없는 소프트웨어 애플리케이션을 불러오고 설치하는 단계를 더 포함한다.
적합한 컴퓨터 장치 또는 로봇 장치 상에서 실행될 때 방법의 하나 이상의 단계를 수행하기 위한 명령을 포함하는 컴퓨터 프로그램이 개시된다. 방법의 하나 이상의 단계들을 수행하기에 적합한 수단을 포함하는 시스템이 개시된다.
바람직하게는, 인간-기계 대화가 능동적이며 더는 수동적이지 않다: 인간 관점에서 로봇은 임의의 계획을 가질 수 있다(가령, 로봇이 명확화 목적으로 질문을 할 수 있다).
바람직하게는, 대화 모드가 인간 사용자의 증가된 "표현성"을 가능하게 한다. 용어 "표현성(expressivity)"은 인간-기계 상호작용이 (더) 자연스럽기 때문에, 사용자는 더 많은 데이터를 로봇에게 전달하며, 그 후 로봇은 사용자에 대한 더 많은 데이터를 알고 저장할 수 있어서, 추가 상호작용을 풍부하게 만드는 선순환을 발생시킨다. 이는 개인 컴퓨터의 경우에는 해당되지 않는다. 태블릿(tablet)이 가령, 퀴즈 또는 문제의 형태로 음성 합성으로 "질문"을 하려 시도할 수 있지만, 태블릿이 (자율적으로) 스스로 이동하고 물체를 이동시키거나, 인간을 따르는 "동반자"로 여겨지지 않기 때문에, 잔류 바이어스가 존재할 것이다. 캡처될 수 있는 데이터의 양이 동반자 로봇과 비교될 때 더 작을 것이다.
사용자에 대해 능동적으로 또는 수동적으로 수집되는 정보(사용자 프로파일링 또는 사용자 선호)가 상태를 런칭하기 위한 입력으로 사용될 수 있다(가령, 사용자가 "농구"를 좋아하는 경우에만 활동이 런칭될 것이다). 머신 러닝 메커니즘이 수행될 수 있다: 시스템에 의해 런칭되는 활동은 사용자에 대해 학습되는 바에 따라 진화될 수 있다.
본 발명의 실시예가 첨부된 도면을 참조하여 예시로서 기재될 것이며, 여기서 유사한 도면부호가 유사한 요소를 지칭하며, 이때:
도 1은 본 발명의 전역적 기술적 환경을 도시한다.
도 2는 방법의 실시예의 일부 양태를 상세히 도시한다.
소프트웨어 애플리케이션은, 그 사전적 의미(적절한 컴퓨터 장치 상에서 실행될 때 하나 이상의 단계를 수행할 수 있는 컴퓨터 프로그램 코드)를 벗어나, 대화(가령, 지정 문장들의 모음, 가령, 예상 질문에 대한 응답), 동작(가령, 춤 또는 물리적 동작의 실행), 애니메이션(가령, 머리 운동, 조명이 존재한다면, 이의 활성화, 등), 및 이들의 조합(가령, 춤을 추면서 대화하기)과 연관될 수 있다. 더 일반적으로, 소프트웨어 애플리케이션은 다른 애프리케이션과 대화하거나 대화하지 않는 독립형 애플리케이션일 수 있다. 독립형 소프트웨어 애플리케이션의 예시는 날씨 애플리케이션이 있다. 이러한 애플리케이션은 날씨 데이터를 불러오고 재구성할 수 있다.
애플리케이션의 예시로는, (가령, 오디오 출력을 발음 또는 열거 또는 재구성함으로써) 지역 날씨 상태를 제공하기 위한 날씨 애플리케이션, 게임 애플리케이션, 댄스 애플리케이션, 스토리텔링 애플리케이션 등이 있다. 특히, 로봇을 위한 소프트웨어 애플리케이션은 로봇의 물리적 동작(춤, 이동, 물체의 파지 및 변위)의 세트를 야기할 수 있다. 스마트폰 또는 태블릿에 대한 소프트웨어 애플리케이션이 일반적으로 물리 세계에서의 실제 유형의 동작을 포함하지 않는다.
소프트웨어 애플리케이션들은 상호의존적일 수 있다. 예를 들어, 소프트웨어 애플리케이션은 복잡한 물체를 나타낼 수 있기 때문에, 선험적 구별되는 소프트웨어 애플리케이션(또는 대화 주제) 간 "전환"이 관측될 수 있다. 태블릿 컴퓨터 상에서, 드로잉 소프트웨어 애플리케이션이 드로잉 툴을 제공하고 날씨 소프트웨어 애플리케이션은 기상 데이터를 제공한다. 로봇 상에서, 로봇이 "바깥은 -10°C입니다"라고 말하거나 및/또는 종이에 눈사람을 그리는 것이 가능하다(및/또는 제스처의 조합에 의해 외부가 추움을 부호화함). 다시 말하면, 멀티모드 출력의 결과로서, 소프트웨어 애플리케이션은 더 조합될 수 있다(출력 레벨에서 또는 더 낮은 레벨에서, 가령, 변수 또는 파라미터 또는 스크립트가 소프트웨어 애플리케이션들 간에 공유되거나 수정될 수 있다).
소프트웨어 애플리케이션은, 즉, 사용자와의 ("자연스러운(natural)") 대화의 동작 과정 중에 대화 인터페이스를 통해 사용자에게 표시될 수 있다. 다시 말하면, 대화 시스템은 사용자가 하나 이상의 애플리케이션을 런칭할 때 "병목"과 같이 동작할 수 있다. 언급된 바와 같이, 그래픽 사용자 인터페이스 수단이 이용 가능한 경우, 오디오 사용자 인터페이스 수단이 그래픽 사용자 인터페이스 수단에 의해 보완 또는 보조 또는 수정될 수 있다.
도 1은 본 발명의 전역적 기술적 환경을 도시한다. 로봇(130)은 센서 및 액추에이터를 포함한다. 로직 또는 "마인드"(100)이 로봇 내에서 구현되거나 (예를 들어 원격으로) 로봇과 연관되며 소프트웨어(110) 및 하드웨어 구성요소(120)의 모음을 포함한다. 로봇(130)은 (양방향 통신(140), 가령, 하나 이상의 대화 세션을 통해) 하나 이상의 사용자(150)와 대화한다. 상기 하나 이상의 사용자는 (서버의 클라우드 및/또는 다른 로봇 또는 연결된 객체 무리와 통신하는 등) 연결된 장치일 수 있는 다른 컴퓨팅 장치(160)(가령, 개인 컴퓨터, 가령, 웨어러블 컴퓨터 또는 스마트폰 또는 태블릿)를 액세스할 수 있다. 특히, 연결된 장치는 웨어러블 컴퓨터(가령, 시계, 안경, 몰입형 헬멧(immersive helmet) 등)일 수 있다.
도면 상의 특정 로봇(130)이 본 발명이 구현될 수 있는 휴머노이드 로봇의 예시로서 간주된다. 도면 상의 로봇의 하지는 보행 기능을 하지 않고, 표면 상에서 구르는 베이스를 갖고 임의의 방향으로 이동할 수 있다. 본 발명은 보행에 적합한 로봇에서 쉽게 구현될 수 있다.
본 발명의 일부 실시예에서, 로봇은 다양한 유형의 센서를 포함할 수 있다. 이들 중 일부가 로봇의 위치 및 운동을 제어하도록 사용된다. 이는, 예를 들어, 로봇의 몸통에 위치하는 관성 유닛(inertial unit)이 3축 자이로미터 및 3축 가속도계를 포함하는 경우이다. 로봇은 또한 자신의 이마 상에 (상부 및 하부) 2개의 2D 컬러 RGB 카메라를 포함할 수 있다. 또한 3D 센서가 로봇의 눈 뒤에 포함될 수 있다. 상기 로봇은 또한 선택사항으로서, 예를 들어, 머리 및 이의 베이스에 레이저 라인 생성기를 포함하여, 주위에 존재하는 물체/생물체에 대한 자신의 상대적 위치를 감지할 수 있다. 로봇은 또한 주위의 소리를 감지할 수 있는 마이크로폰을 포함할 수 있다. 본 발명의 로봇은 또한, 자신의 베이스의 전면 및 후면에 위치할 수 있는 초음파 센서를 더 포함하여, 주위의 물체/인간까지의 거리를 측정할 수 있다. 로봇은 자신의 머리와 손 상에 촉각 센서(tactile sensor)를 더 포함하여, 인간과의 대화를 가능하게 할 수 있다. 로봇은 자신의 베이스 상에 범퍼를 더 포함하여 로봇이 자신의 경로 중에 마주치는 장애물을 감지할 수 있다. 로봇의 감정을 해석하고 주위 인간과 소통하기 위해, 본 발명의 로봇은, 가령, 로봇의 눈, 귀, 및 어깨에 LED와 (가령, 귀에 위치하는) 확성기를 더 포함할 수 있다. 로봇은 기지국, 그 밖의 다른 연결된 장치, 또는 그 밖의 다른 로봇과 다양한 네트워크(3G, 4G/LTE, Wifi, BLE, 메시(mesh) 등)를 통해 통신할 수 있다. 로봇은 배터리 또는 에너지 공급원을 포함한다. 상기 로봇은 자신이 포함하는 배터리의 유형에 적합한 충전 스테이션을 액세스할 수 있다. 로봇의 위치/운동이 센서의 측정 관점에서, 각 사지와 각 사지의 끝부분에서 형성된 효과기(effector)에 의해 형성된 체인을 활성화하는 알고리즘을 이용해 이의 모터에 의해 제어된다.
특정 실시예에서, 본 발명의 로봇은 메시지(오디오, 비디오, 웹 페이지)를 이의 주위 환경으로 통신하거나, 태블릿의 촉각 인터페이스를 통해 사용자로부터의 입력 값을 수신할 수 있는 태블릿을 가진다. 또 다른 실시예에서, 로봇은 스크린을 내장하거나 제공하지 않고, 데이터 또는 정보가 로봇 근방의 표면 상에 영사될 수 있도록 하는 비디오 영사기를 가진다. 상기 표면은 평면이거나(가령, 바닥) 평면이 아닐 수 있다(가령, 영사 표면의 왜곡이 보상되어 충분히 평면인 영사가 획득될 수 있다). 두 실시예 모두(스크린 및/또는 영상기를 갖는 실시예), 본 발명의 실시예가 유효하다: 본 발명의 대화 모델이 시각 대화 수단에 의해 보충 또는 보완된다. 어느 경우라도, 그래픽 수단이 고장나거나 비활성화될 경우, 종래의 대화 모드가 유지된다.
하나의 실시예에서, 로봇은 이러한 그래픽 사용자 인터페이스 수단을 포함하지 않는다. 기존 휴머노이드 로봇은 일반적으로 진보된 음성 능력을 구비하지만 일반적으로 GUI는 구비하지 않는다. 점점 더 많은 수의 사용자가 선택적으로 및/또는 필수적으로(어린이, 장애인, 실시 상황 등 때문에) 로봇과 통신하기 위해 그래픽 수단(가령, 태블릿, 스마트폰)을 - 심지어 보조도구로서도 - 사용하지 않을 것이다.
소프트웨어(110)의 모음(전부는 아니지만)은 서로 대화하는 소프트웨어 모듈 또는 객체 또는 소프트웨어 코드 부분, 가령, "추출기(extractor)"(111), "활동 제안"(112), "마인드 우선순위화"(113), "패키지 관리자"(114), "사용자 히스토리 데이터"(115), "집중 자율 활동"(116) 및 "집중 대화 주제"(117) 및 "건강 모니터링 서비스"(118)을 포함한다.
일반적으로 "추출기 서비스"(111)는 로봇의 내부 또는 외부에 있는 무언가를 감지 또는 지각하고 로봇의 메모리로 단기 데이터를 제공한다. 추출기 서비스는 로봇 센서로부터 입력 판독물을 수신하며, 이들 센서 판독물이 사전처리되어, 로봇의 위치, 주위 물체/인간의 신원, 상기 물체/인간의 거리,인간이 발음한 단어 또는 감정과 관련된 데이터를 추출할 수 있다. 추출기 서비스는, 특히, 안면 인식, 인간 지각, 체결 구역(engagement zone), 웨이빙 검출(waving detection), 미소 검출, 시선 검출, 감정 검출, 음성 분석, 음성 인식, 소리 위치 찾기, 운동 검출, 파노라마 나침반, 로봇 포즈, 로봇 건강 진단, 배터리, QR 코드 핸들링, 홈 자동화, 부족(tribe), 시각 및 스케줄을 포함한다.
"액추에이터 서비스"에 의해 로봇(130)이 동작을 물리적으로 수행할 수 있다. 모션 추적기, LED, 행동 관리자가 "액추에이터 서비스"의 예시이다.
"데이터 서비스"가 장기 저장된 데이터를 제공한다. 데이터 서비스의 예시는 사용자 데이터 및 로봇에 의해 수행된 것의 히스토리를 저장하는 사용자 세션 서비스(115), 및 하이 레벨 정의, 런칭 조건 및 태그를 갖고 로봇에 의해 실행되는 절차의 확장 가능한 저장소를 제공하는 패키지 관리자 서비스(114)이다.특히, "패키지 관리자"는 활동 및 대화, 및 적하목록(Manifest)의 확장 가능한 저장소를 제공한다. "적하목록"은 메타데이터, 가령, 런칭 조건, 태그 및 하이 레벨 기술을 포함한다.
"마인드 서비스"(가령, 서비스 마인드 우선순위화(113))는 로봇이 동작을 개시할 때 로봇의 중앙 "마인드"에 의해 제어될 것들이다. "마인드 서비스"는 "액추에이터 서비스"(130), "추출기 서비스"(111) 및 "데이터 서비스"(115)를 함께 묶는다. 기본 의식이 "마인드 서비스"이다. 이는 "추출기 서비스", 가령, 사람 지각, 운동 검출, 및 소리 위치 찾기를 이용해 모션 서비스에게 움직일 것을 명령할 수 있다. "마인드"(113)가 상황을 기초로 기본 의식(Basic Awareness)의 행동을 구성한다. 그 밖의 다른 때, 기본 의식은 스스로 동작하거나, 러닝 활동(Running Activity)에 의해 설정된다.
"자율 생활(Autonomous Life)"이 마인드 서비스이다. 이는 행동 활동을 실행한다. 상황의 맥락을 기초로, 마인드(Mind)는 자율 수명에게 집중할 활동이 무엇인지를 알려줄 수 있다("집중 자율 활동"(116)). 적하목록의 메타데이터가 이 정보를 마인드에 묶는다. 임의의 활동이 운영 체제 API 중 하나 이상을 액세스할 수 있다. 활동이 집중할 활동을 자율 생활에게 직접 말하거나, 집중할 주제를 대화 서비스에게 말할 수 있다.
"대화" 서비스는 마인드 서비스로서 구성될 수 있다. 이는 음성 인식 추출기를 이용하고 말하기 위해 "애니메이션된 음성 액추에이터 서비스"를 이용할 수 있다. 상황 맥락을 기초로, 마인드부가 집중할 주제("대화 주제(Dialog Topic)")를 대화부(Dialog)에게 말할 수 있다. "대화" 서비스는 또한 대화를 관리하기 위한 알고리즘을 가지며, 일반적으로 스스로 동작한다. 대화 서비스의 한 가지 구성요소는 "집중 대화 주제" 서비스(117)일 수 있다. 프로그램에 따라 대화 주제는 언제라도 상이한 활동 또는 대화 주제로 초점을 전환하도록 마인드에게 말할 수 있다. 대화 주제를 결정하기 위한 가능한 방법의 한 가지 예시는 다음을 포함할 수 있다: 대화 주제 또는 활동의 런칭 조건이 참 또는 거짓이 되는 순간, 순간에 대한 모든 가능한 활동 또는 대화 주제의 목록이 마인드부로 전송되며, 목록은 활동 우선순위화에 따라 필터링되고, 목록 순서가 랜덤화되며, 목록이 정렬(또는 점수 부여)되어 "고유"하며 덜 빈번하게 시작되는 활동 또는 대화 주제에 우선순위를 부여하고, 이 목록의 상위 대화 주제 또는 활동이 실행된 이전 활동과 동일한 활동이 아님을 확실시하기 위해 특수 체크가 이뤄진다. 목록은 사용자의 선호에 따라 다시 정렬되고 필터링될 수 있다.
로봇이 "건강 모니터링" 서비스(118)를 구현할 수 있다. 이러한 서비스는 데이몬(daemon) 또는 "와치독(watchdog)"으로서 동작하여, 로봇의 서로 다른 우선순위를 검토 또는 제어 또는 규정할 수 있다. 이러한 서비스는 (연속적으로, 간헐적으로 또는 주기적으로) 로봇의 내부 구성요소의 상태를 모니터링하고 하드웨어 고장을 측정 또는 예상 또는 예측 또는 수정할 수 있다. 하나의 형태에서, 로봇의 플릿(fleet)(가령, 설치된 베이스)이 모니터링된다. 내장된 서비스가 연속으로 오류 상황을 검출하고 (예를 들어 1분마다) "클라우드" 서비스와 동기화시킬 수 있다.
하드웨어 구성요소(120)는 처리 수단(121), 메모리 수단(122), 입/출력 I/O 수단(123), 대량 저장 수단(124) 및 네트워크 액세스 수단(125)을 포함하고, 상기 수단은 서로 대화한다(캐싱, 스와핑, 분산 컴퓨팅, 로드 밸런싱 등). 처리 수단(121)은 CPU(멀티코어 또는 매니코어(manycore)) 또는 FPGA일 수 있다. 메모리 수단(122)는 플래시 메모리 또는 랜덤 액세스 메모리 중 하나 이상을 포함한다. I/O 수단(123)은 스크린(가령, 터치 스크린), 조명 또는 LED, 햅틱 피드백, 가상 키보드, 마우스, 트랙볼, 조이스틱 또는 영사기(가령, 레이저 영사기) 중 하나 이상을 포함할 수 있다. 저장 수단(124)은 하드 드라이브 또는 SSD 중 하나 이상을 포함할 수 있다. 네트워크 액세스 수단은 하나 이상의 네트워크, 가령, 3G, 4G/LTE, Wifi, BLE 또는 메시 네트워크로의 액세스를 제공할 수 있다. 네트워크 트래픽은 암호화될 수 있다(가령, 터널, SSL 등).
하나의 실시예에서, 컴퓨팅 자원(계산부, 메모리, I/O 수단, 저장부 및 연결부)이, 예를 들어, (로봇 자체에서 이용 가능한) 로컬 자원의 보조로서 원격으로 액세스될 수 있다. 예를 들어, 추가 CPU 유닛이 음성 인식 컴퓨팅 작업을 위한 클라우드를 통해 액세스될 수 있다. 컴퓨팅 자원이 또한 공유될 수 있다. 특히, 복수의 로봇이 자원을 공유할 수 있다. 로봇 근방의 연결된 장치가 또한, 가령, 보안 프로토콜을 통해 어느 정도까지 자원을 공유할 수 있다. 디스플레이 수단이 또한 공유될 수 있다. 예를 들어, 텔레비전이 로봇에 의해 추가 디스플레이로서 사용될 수 있다.
도 2는 방법의 실시예의 일부 양태를 상세히 도시한다. 인간 사용자(150)와 로봇(130) 간 문장을 포함하는 대화(140) 동안 애플리케이션의 런칭 또는 실행을 트리거하기 위한 몇 가지 방법이 존재한다. 대화 동안 하나 이상의 대화 패턴이 추출(200)되고 하나 이상의 소프트웨어 애플리케이션(201) 및 차후 테스트될 하나 이상의 실행 규칙(202)과 연관된 하나 이상의 의미 기술(semantic description)과 더 비교된다(210). (가령, 센서를 구비한 로봇에 의한 지각되는 환경의 관점에서) 검증(220)되면, 하나 이상의 소프트웨어 애플리케이션이 선택된다. 추가 선택적 기준, 가령, 건강 모니터링 감시기(231)로부터 유도된 기준이 실행 우선순위(또는 확률)를 재배열할 수 있다. 그 결과로, 하나 이상의 소프트웨어 애플리케이션이 실행된다(단계(240)).
하나 이상의 소프트웨어 애플리케이션의 런칭 또는 실행을 트리거하기 위한 (특히, 이하에서 기재되는) 이들 서로 다른 방식이 서로 독립적일 수 있고 추가로 조합될 수 있다. 결국, 소프트웨어 애플리케이션은 런칭 조건 또는 파라미터에 따라 실행될 수 있다. 이들 조건 또는 파라미터는 사실(201) 또는 규칙(202)일 수 있고, 둘 모두(사실에 근거한 규칙)일 수 있다. 이들 사실(201)의 예로는, 사용자의 유형 또는 카테고리, 하나 이상의 환경 값에 의해 특징지워지는 현재 맥락 또는 상황 또는 환경을 포함한다(가령, 현재 지역 날씨, 날짜 및 시각, 검출 감정, 사용자 수 등). 규칙(202)은 단순한 규칙에서 복잡한 규칙까지 다양하다. 실행 규칙은 조건적일 수 있다. 예를 들어, 하나의 실시예에서, 복수의 규칙이 애플리케이션의 실행을 인증 또는 허용하기 위해 동시에 만족되어야 한다. 또 다른 실시예에서, 복수의 규칙이 순차적으로(가령, 특정 순서로 및/또는 시간 제한 또는 임계치 내에) 만족되어야 한다. 일부 규칙이 지정될 수 있다. 그 밖의 다른 일부 규칙이 동적으로 정의될 수 있다(가령, 일부 규칙이 인터넷으로부터 불러와질 수 있다).
애플리케이션의 실행의 규제로서, 로봇의 건강 모니터링 서비스(231)가 실행 우선순위(231)를 조절할 수 있다. 구체적으로, 소프트웨어 애플리케이션의 실행이 이러한 "건강 모니터링" 서비스를 고려할 수 있다. 즉, 우선순위 스킴이 소프트웨어 애플리케이션의 실행을 더 규제할 수 있다. 하나의 실시예에서, 로봇이 사용자와 상호작용 중이 아니다(즉, 누구와도 상호작용 중이 아니다). 이러한 경우, 로봇은 자율 작업을 수행하거나 수행할 수 있다. 또 다른 실시예에서, 로봇이 위험에 직면할 수 있다(가령, "보호 모드(safeguard mode)", 배터리 레벨이 낮거나 임계치임, 장애물의 존재 또는 낙석 위험에 직면 등). 이러한 경우, 로봇의 우선순위가 (가령, 고유 작업을 수행하는 것보다) 자신의 문제를 핸들링하고 해결하는 것이다. 예를 들어, 배터리 레벨이 임계치인 경우, 로봇이 사용자와 대화를 중단하고 에너지 소스 베이스에 도달하려 시도할 수 있다. 사용자가 근접부에서 검출될 때 및/도는 로봇이 임계 상황에 있지 않을 때(로봇이 자신의 기본 기능을 수행할 수 없을 때) 대화 모드는 활성화될 수 있다. 반대로, 어떠한 사용자도 근접부에서 검출되지 않을 때 및/또는 로봇이 임계 상황에 있을 때 대화 모드 모듈은 비활성화될 수 있다.
애플리케이션의 실행의 일부 특정 맥락이 지금부터 기재된다.
하나의 실시예에서, 하나 이상의 애플리케이션이 대화 동안 실행되고, 하나 이상의 실행 조건의 수행(또는 검증 또는 만족)(220)에 의해 트리거된다. 인간과 기계 간 대화가 모니터링되고 "패턴"이 (예를 들어) 연속적으로 대화 흐름으(140)로부터 추출(200)된다("협업적 대화" 모드). 하나의 실시예에서, 음성 흐름이 수신되고 연속적으로 분석된다. 추출은 마커("OK Glass, take a picture")가 있던 없던 음성 흐름에서의 음성 명령어(가령, 키 표현)의 단순 추출 이상이다. 특히, 사용자의 단어 또는 표현이 소프트웨어 애플리케이션의 하나 이상의 의미 기술(201)에 대해 비교 또는 매칭(210)된다.
일부 실시예에서, 각각의 소프트웨어 애플리케이션은 의미 기술(201) 및 맥락적 런칭 또는 실행 규칙(202)으로서 소프트웨어 프로그램일 수 있다. 일반적으로 상기 의미 기술(201)은 소프트웨어 애플리케이션 편집기 또는 퍼블리셔에 의해 제공된다. 구체적으로 이들 의미 기술은 고려되는 소프트웨어 애플리케이션에 대한 하나 이상의 사전-조립된 대화를 포함할 수 있다. 특히 이들 대화는 소프트웨어 애플리케이션에 대한 변형을 포함한다. 예를 들어, 단지 상업적 명칭 대신, 게임 애플리케이션은 "새와 녹색 돼지의 게임" 또는 "타깃으로 새를 던져야 하는 게임"이라고 알려질 수 있다. 문장 및 이들 문장에 대한 검증으로 구성된 이들 메타-기술(meta-description)이 구조화된 대화(201)에서 제공된다. 대화 형태로 패키징되는 것이 조합 트리(combinatorial tree)를 구분분석(parse)하고 모호함을 명확화할 수 있다. 예를 들어, 사용자가 "새와 놀고 싶다(I would like to play with the birds)"라고 요청한 경우, 로봇은 "놀고 싶은 것이 실제 새인지 또는 가상의 새인지"라고 더 질문할 수 있다. 사용자가 "가상의 새"라고 응답하는 경우, 로봇은 "그렇다면 게임을 하고 싶은 건가?"라고 확인을 위해 질문할 수 있다. 사용자가 "예"라고 응답하는 경우, 로봇은 여전히 추가 확인을 요청할 수 있는데, 가령, "나한테 새를 녹색 돼지를 향해 던지는 게임이 있다"라고 질문할 수 있다.
로봇과의 대화를 이용함으로써, 특정 소프트웨어 모듈로의 특정하고 상이하며 바람직한 액세스가 가능해진다. 태블릿 또는 PC에서, 애플리케이션에 의미 기술이 제공되지 않고 디스플레이 능력의 존재 하에서, 애플리케이션이 장치 상에서 동일하게 액세스 가능하다. 사용자는 올바른 바람직한 애플리케이션을 식별하기 위해 스크린을 스와이프(swipe)해야 한다. 사용자가 애플리케이션의 로고 및/또는 일부 설명을 기억할 수 없는 경우, 많은 가능한 소프트웨어 애플리케이션들 중에서 하나의 애플리케이션을 불러올 특별한 방법이 없다. 이와 달리, 개시된 소프트웨어 액세스 모드는, 대화를 통해 그리고 대화 중에, 이용 가능한 애플리케이션을 효과적으로 "데이터 마이닝"할 수 있다. 이 모드는 어느 정도까지 더 자연스러우며 디스플레이 수단의 부재를 보완할 수 있다. 상기 모드의 한 가지 눈에 띄는 특징이 대화의 속성과 관련된다: 대화는 복잡하거나 불명확하거나 불충분한 질의를 다룰 수 있다. 불충분한 정보의 경우, 소프트웨어 애플리케이션과 연관된 기술에서 지정된 대화에 의해, 갭을 채우고 정확한 소프트웨어 애플리케이션의 식별로 빠르게 수렴할 수 있다. 이 모드는 "협업적 대화"라고 지칭될 수 있다.
또 다른 실시예에서, 하나 이상의 런칭 조건 또는 실행 규칙(202)이 지정된다. 소프트웨어 애플리케이션이 편집자 또는 퍼블러셔에 의해 상기 소프트웨어 애플리케이션의 런층을 허가 또는 허용하기 위한 조건 및/또는 규칙의 리스트를 포함하는 파일과 함께 제공된다. 실행 규칙이 시험된다: 이들이 만족되거나 허용 또는 검증(220)된 경우, 하나 이상의 대화 모드가 선택될 수 있다. 일부 규칙은 수행되기 최소한의 기준일 수 있다. 그 밖의 다른 일부 규칙 시간이 바람직한 런칭 조건을 정의할 수 있다. 예를 들어, 최소 실행 규칙은 "사용자가 12세 미만이고 22시 전인 경우, 다스 베이더 음성 스킨이 인가된다"일 수 있으며, 바람직한 규칙은 "3명의 사용자가 5분 내에 위치하고, 적어도 2명의 사용자가 12세 미만이며, 적어도 한 명이 웃고 있고, 다른 누구도 반대 표시를 하지 않는 경우, 조크와 다스 베이더 목소리를 제안한다"일 수 있다. 다시 말하면, 애플리케이션이 자신의 선호되는 런칭 조건을 스스로 정의할 수 있다.
실행 규칙 및/또는 의미 기술이 네트워크를 통해 액세스되거나 로컬하게 액세스될 수 있다. 일부 실시예에서, 이들은 네트워크로의 액세스 및 지식 베이스(knowledge base)에 의해 보충된다.
하나의 실시예에서, 하나 이상의 소프트웨어 애플리케이션의 런칭 또는 실행이 사용자와의 대화(사용자와의 상호작용) 동안 트리거된다. 특히, 사용자에 의해 발음되고 로봇에 의해 캡처 및 인식되는 하나 이상의 단어가 상기 실행의 트리거를 이끌 수 있다. 지정된 날씨 애플리케이션이 로봇 상에 설치되며, 상기 애플리케이션은 협업적 대화와 연관된다. 협업적 대화는 추출(200)되는 하나 이상의 패턴을 포함하는데, 가령, "weather, please", "give me the weather", "what is the weather", "what is the weather in ~ city", "is it sunny outside?", "do I need warm clothes", "is it going to rain tomorrow"이 있다. 대화 중에, 사용자가 로봇에게 "오늘 날씨 어때?"라고 묻는다. 오디오 신호가 캡처되고, 선택사항으로서 필터링 및 개선되며, (로봇 상에 로컬하게 및/또는 클라우드 상에 원격으로) 음성-텍스트 동작(speech-to-text operation)이 수행되며, 획득된 텍스트가 분석되고 패턴과의 하나 이상의 비교가 수행된다. 하나 이상의 매칭이 존재하면, 선택사항으로서 임계치를 이용해, 로봇 상에 설치된 것들 중에서 소프트웨어 애플리케이션이 선택된다. 선택된 소프트웨어 애플리케이션이 더 실행된다. 실제로, 예를 들어, 로봇은 날씨 애플리케이션을 런칭하고 요청된 정보를 제공할 수 있다.
하나의 변형예에서, 서로 다른 설치된 소프트웨어 애플리케이션의 오디오 "나열(listing)" 동작이 맥락에 따라 이뤄진다, 즉, 규칙 모음에 따라 이뤄진다(즉, 적어도 부분적으로 현재 맥락에 따라 구동된다). 이하에서 하나의 예시가 제공된다. 사용자가 "무엇을 할 수 있니?"라고 묻는다. 로봇이 시각적으로 지각된 것을 해석하고 어린이를 검출한다. 오디오 인식 및/또는 안면 인식이 어린이가 로봇과 체스를 둔 적이 없음을 결정한다. 로봇은 "우리는 함께 체스를 둘 수 있어"라고 제안한다. 예를 들어, 대응하는 패턴은 {proposal:[~game "$people/age>10 ~information"]}와 같을 것이다. 사용자가 예를 들어 "그래"라고 응답한 경우, 로봇은 긍정 패턴으로 해석할 수 있으며, 그 후 대응하는 소프트웨어 애플리케이션을 런칭 또는 실행할 수 있다. 일부 지정 규칙(가령, 하루 중 시간대, 사용자가 미소 짓는 여부 등)을 이용해, 로봇은 선행적으로(proactively) 사진을 찍자고 제안할 수 있으며, 사용자가 긍정하면, 로봇은 실제로 카메라를 트리거한다.
이들 예시는 로봇의 행동을 제어하기 위해 더 복잡한 규칙이 지정될 수 있다는 사실을 설명한다. 일반적으로, "정보" 카테고리로 분류된 애프리케이션이 어른 전용으로 제안될 수 있는 동안 게임 애플리케이션은 누구에게나 제안될 수 있다. 다시 말하면, 실제로, 사용자는 그룹으로 분류될 수 있다. 이러한 점을 기초로, 규칙이 정의될 수 있다: 소프트웨어 애플리케이션은 대응하는 실행 규칙과 연관될 수 있다. 예를 들어, 하나의 실시예에서, 로봇에 의한 애플리케이션의 제안이 지정된(가령, 예상된) 환경에 의해 구동될 수 있다. 예를 들어, 애플리케이션의 개발자는 날씨 애플리케이션에 대해 "선행적 협업 대화(proactive collaborative dialog)"를, {proposal: $Dialog/Weather/SoonRain==True "you may want to take an umbrella with you today "의 형태로 추가할 수 있다. 이 규칙은 날씨 애플리케이션이 곧 비가 내릴 것임을 가리키는 경우 로봇이 사용자에게 알릴 수 있음을 결정할 수 있다. 스토리텔링을 위한 규칙, 가령, {proposal: $people/age<10 "do you want me to tell you a story?"; u1:(~confirmation) ^switchFocus(AliceInWonderland)를 이용해, 사용자가 해당 연령 그룹에 속한다고 결정된 경우, 주제 "스토리"에서 수신된 긍정이 지정 스토리 유형으로 자동으로 전환될 것이다.
특정 실시예에서, 사용자는 로봇에게 서로 다른 설치된 소프트웨어 애플리케이션을 나열할 것을 적극적으로 물을 수 있다(가용 소프트웨어 애플리케이션의 "오디오 나열"). 실제로, 애플리케이션의 개발자가 날씨 애플리케이션에 "정보"라고 주석(가령, 메타데이터)을 달거나 분류하고, 체스 게임 애플리케이션에 "게임"이라고 주석(가령, 메타데이터)을 달거나 분류할 수 있다. 사용자가 "무엇을 할 수 있니?"라는 질문을 던지면, 로봇은 "정보와 게임을 갖고 있습니다"라고 대답할 수 있다. 사용자가 "정보를 원해"라고 요청하는 경우, 로봇은 대화 문장을 패턴 ("~ 애플리케이션을 원해")에 대응하는 것으로 해석할 수 있다. 그 후 로봇이 "날씨 정보를 줄 수 있습니다"라고 대답할 수 있다. 사용자가 "좋아"라고 응답하는 경우, 문장을 긍정 패턴으로 해석한다. 결국 로봇은 요청된 정보를 제공한다.
하나의 실시예에서, 로봇은 카테고리(생산성, 게임 등)별로 이용 가능한 서로 다른 애플리케이션을 나열할 수 있다. 사용자는 언제든지 중단시키고 더 많은 세부사항(가령, 가격, 리뷰 등)을 요청할 수 있다. 하나의 실시예에서, 사용자 질의에 응답하여, 로봇은 테마와 주제별로 이용 가능한 애플리케이션을 나열할 수 있다. 예를 들어, 사용자는 "게임을 갖고 있니?"라고 물을 수 있고 로봇은 "예 체스와 앵그리버드(angry birds) 2개의 게임이 있습니다"라고 응답할 수 있다. 트리의 하부 부분이 필요에 따라 구분분석될 수 있다. 예를 들어, 사용자가 "나는 게임을 좋아하지 않아"라고 선언하면, 대응하는 카테고리는 스킵될 수 있다. 다시 말하면, 사용자에 대한 데이터의 누적으로부터 도출되는 사용자 프로파일링이 대화를 더 우수하게 이끌거나 지붕시키는 데 바람직하게 사용될 수 있다. 또 다른 실시예에서, 로봇은 이용 가능하거나 설치된 소프트웨어 애플리케이션을 브라우징하는 것을 선행적으로 제안 또는 개시할 수 있다. 이러한 경우, 로봇은 예를 들어 알파벳 순으로, 또는 소프트웨어 애플리케이션 카테고리(생산성, 게임, 건강 유틸리티 등) 별로, 또는 그 밖의 다른 방식으로 소프트웨어 애플리케이션의 서로 다른 명칭을 더 빠르게 또는 덜 빠르게 명확히 말한다. 하나의 형태에서, 사용자와의 대화 동안 이러한 제안이 발생할 수 있다.
본 발명의 몇 개의 양태가 이하에서 언급된다.
소프트웨어 애플리케이션의 실행의 규제와 관련하여, 일반적으로 경쟁 법칙이 공정한 차별적이지 않은 실시를 야기한다. 예를 들어, 개인 컴퓨터에서, 새 브라우저 애플리케이션을 설치할 때, 사용자는 몇 가지 옵션들 중에서 선택을 부여 받아야 한다. 로봇 플랫폼에 대해 유사한 요건이 관찰될 것이라고 예상될 수 있다. 독립적 소프트웨어 또는 웹 서비스의 경우, 로봇의 일반적인 소프트웨어 프레임워크가 몇 가지 소프트웨어 대안과 직면할 수 있을 것이다. 예를 들어, 전자메일 클라이언트가 필요할 때, 로봇 플랫폼이 오픈 소스 대안과 사설 대안 중에서 선택을 할 것이다. 웹 서비스에 대해, 이러한 선택은 규칙적으로 발생할 수 있다(오래된 API(deprecated API) 등의 선택). 일반적인 가이드라인이 로봇과 연관된 소프트웨어 패널 상에서 정의될 수 있다. 하나의 실시예에서, 합리적인 개수의 이러한 선택이 사용자에게 표시될 수 있다, "Google API 또는 Bing API?, 이 RSS 피드를 사용하기를 원하나요?". 동일한 분야에서 경쟁하는 또는 일부 겹치는 활동을 갖는 복수의 소프트웨어 애플리케이션의 경우, 약간의 규제가 발생할 수 있다. 우선, 로봇 플랫폼의 운영자는 사용자의 경험의 품질이 보존됨을 보장할 수 있다. 예를 들어, 독립적인 감지자 또는 모니터링 데몬이 사용자별로 수신되는 전체 권유의 횟수를 제한할 수 있다. 소프트웨어 애플리케이션 사용에 대한 통계(다운로드 횟수, 런칭 횟수, 소프트웨어 애플리케이션과의 대화 횟수) 및/또는 소프트웨어 애플리케이션 재정적 측면(커미션, 편집자 추천 등), 및/또는 소프트웨어 애플리케이션 품질 메트릭(소비자 리뷰, 등급, 가령, 통계적 데이터 및/또는 로컬 측정 피드백)을 기초로, 런칭 조건이 조절될 수 있다. 실제로, 소프트웨어 애플리케이션 제공자에 의해 사전에 선언되는 대로 런칭 조건에서 임계값 및 파라미터가 가중된다.
소프트웨어 애플리케이션의 검색 및 설치의 "주문형" 모드와 관련해, 기재된 실시예에 따르는 "소프트웨어 애플리케이션"이 일반적으로 설치 또는 사전-설치된다(즉, 소프트웨어 코드가 다운로드되고 장치 상에 설치될 준비가 된다). 추가 실시예에서, 소프트웨어 애플리케이션은 또한 잠재적으로 설치 또는 가상으로 설치 또는 설치 후보로서 나열될 수 있다. 즉, 로봇의 결정 로직이 특정 순간에서 상보적 소프트웨어 애플리케이션이 필요하거나 심지어 요구될 수 있음을 결정할 수 있다. 하나의 실시예에서, 애플리케이션 요건(가령, 날씨 소프트웨어 애플리케이션이 값을 화씨로 제공함)이 정의될 수 있으며, 이러한 요건은 소프트웨어 애플리케이션의 인벤토리(알파 또는 베타 등으로 인증되거나 인증되지 않을 수 있음)를 포함하는 클라우드 또는 중앙 서버로 전송될 수 있으며, 상기 요건과 이용 가능한 소프트웨어 애플리케이션 간 하나 이상의 매칭이 이뤄지면, 하나 이상의 대응하는 소프트웨어 애플리케이션이 다운로드 되고 로봇 상에 추가 설치될 수 있다. 후자 단계가 빠르게 이뤄질 수 있기 때문에 이러한 "주문형" 재설정이 사용자에게 투명할 수 있다.
시각적 인터페이스 대 오디오 대화 인터페이스와 관련하여, 로봇과 대화할 때 사용자를 안내 또는 보조하기 위한 어떠한 디스플레이 수단도 이용 가능하지 않는 시나리오가 장차 발생할 가능성이 높을 수 있는(노인, 장애인, 자연스럽고 직관적인 대화 등의 경우) "필수" 대화 모드일 수 있다. 그럼에도, 스크린이 어디든(벽에, 테이블 상의 칩 스크린 상에, 모든 물체 상에 등) 존재하는 미래가 가능하다. 개시된 실시예와 어떠한 충돌도 없는 한, 대화 모드는 적어도 보조적이다(오디도 대화 모드 및 기회적 GUI). 예를 들어, 로봇의 근방에서 하나 이상의 디스플레이 수단이 액세스 가능한 경우(가령, 지나갈 때 정보를 수신하고 디스플레이하도록 구성된 연결된 텔레비전 또는 로봇에 의해 닿는 태블릿, 또는 시계 또는 자동차 유리창 등), 사용자 인터페이스의 적어도 일부 관련 부분이 사용자에게 디스플레이되어 선택을 촉진시킬 수 있다. 다시 말하면, 로봇과의 대화를 위해 시각적 수단이 완전히 회피될 수 있는 경우, 역으로, 임의의 디스플레이 수단으로의 액세스 가능성이 활용되어 사용자 경험을 보완 또는 풍부화할 수 있다. 일부 실시예에서, 로봇에 디스플레이 수단(가령, 몸통에 위치하는 터치 스크린)이 제공되지 않고 영사기 또는 피코-영사기(pico-projector)(가령, 머리 및/또는 손에 위치함)가 내장되어, 필요에 따라 어디든 GUI, 적어도 이의 적절한 일부분을 디스플레이할 수 있다. 따라서 그래픽 UI(사용자 인터페이스)와 비-그래픽 UI가 조합될 수 있다.
폐쇄 루프 대 개방 루프 실시예가 언급될 수 있다. 하나의 실시예에서, 애플리케이션의 런칭이 완전 자동화된다, 즉, 사용자의 동의 또는 확인 없이 런칭될 수 있다. 하나의 형태에서, 사용자 또는 수퍼-사용자(가령, 부모)가 애플리케이션의 실행을 중단, 유예, 또는 종료시킬 수 있다. 또 다른 실시예에서, 애플리케이션의 런칭이 사용자에 의한 명시적 확인을 필요로 한다. 로봇은 특정 애플리케이션을 런칭하기 위한 자신의 의도를 선언할 수 있지만, 계속하기 전에 확인을 기다릴 것이다. 예를 들어, 로봇은 "날씨 상태를 알려줄까요"라고 선언할 수 있고 사용자는 "나중에"라고 대답할 수 있다. 하나의 실시예에서, 음성 명령어 "날씨 정보를 줘"의 수신에 응답하여, 로봇의 운영 체제는 현재 작업 및 특정 소프트웨어 애플리케이션의 런칭/실행을 유예할 수 있으며, 종료 후, 현재 작업이 재개될 수 있다.
개시된 방법이 완전 하드웨어 실시예(가령, FPGA)의 형태를 취할 수 있고, 완전 소프트웨어 실시예 또는 하드웨어 와 소프트웨어 요소를 포함하는 실시예의 형태를 취할 수 있다. 소프트웨어 실시예의 비제한적 예를 들면, 펌웨어, 레지던트 소프트웨어, 마이크로코드 등이 있다. 본 발명은 컴퓨터 또는 임의의 명령 실행 시스템에 의해 사용되기 위해 프로그램 코드를 제공하는 컴퓨터 이용 가능 또는 컴퓨터 판독 매체로부터 액세스 가능한 컴퓨터 프로그램 프로덕트의 형태를 가질 수 있다. 컴퓨터 이용 가능 또는 컴퓨터 판독형 매체는 명령 실행 시스템, 장치, 또는 디바이스에 의해 또는 이들과 함께 프로그램을 포함, 저장, 통신, 전파, 또는 전송할 수 있는 임의의 유형의 장치일 수 있다. 매체는 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템(또는 장치 또는 디바이스) 또는 전파 매체일 수 있다.

Claims (15)

  1. 로봇 상의 소프트웨어 애플리케이션을 핸들링하는 방법으로서, 상기 로봇은 복수의 설치된 소프트웨어 애플리케이션을 포함하고, 소프트웨어애플리케이션은 지정 의미 기술(semantic description)과 연관되고, 상기 방법은
    사용자와의 오디오 대화로부터 하나 이상의 패턴을 추출하는 단계 - 오디오 대화는 문장들 및 지정 문장을 포함하는 패턴을 포함함 - ,
    상기 하나 이상의 패턴을 상기 소프트웨어 애플리케이션의 의미 기술과 비교하는 단계,
    수행된 비교를 기초로 소프트웨어 애플리케이션을 선택하는 단계,
    선택된 소프트웨어 애플리케이션을 실행하는 단계를 포함하는, 로봇 상의 소프트웨어 애플리케이션을 핸들링하는 방법.
  2. 제1항에 있어서, 적어도 하나의 설치된 소프트웨어 애플리케이션은 하나 이상의 실행 규칙과 연관되고, 소프트웨어 애플리케이션을 선택하는 단계는 하나 이상의 규칙을 검증하는 단계를 포함하는, 로봇 상의 소프트웨어 애플리케이션을 핸들링하는 방법.
  3. 제2항에 있어서, 상기 하나 이상의 규칙은 지정되거나 동적으로 정의되는, 로봇 상의 소프트웨어 애플리케이션을 핸들링하는 방법.
  4. 제2항 또는 제3항에 있어서, 상기 하나 이상의 규칙은 로봇 상에서 로컬하게 불러와 지거나 네트워크 연결을 통해 원격으로 액세스 가능한, 로봇 상의 소프트웨어 애플리케이션을 핸들링하는 방법.
  5. 제1항에 있어서, 상기 오디오 대화는 로봇의 질문에 대한 사용자의 응답을 포함하는, 로봇 상의 소프트웨어 애플리케이션을 핸들링하는 방법.
  6. 제5항에 있어서, 상기 로봇의 질문은 대화의 문장 또는 상기 대화로부터 추출된 패턴을 명확화하기 위한 것인, 로봇 상의 소프트웨어 애플리케이션을 핸들링하는 방법.
  7. 제1항에 있어서, 상기 대화는 설치된 소프트웨어 애플리케이션의 리스트를 발음할 것을 로봇에게 사용자가 요청하는 것을 포함하는, 로봇 상의 소프트웨어 애플리케이션을 핸들링하는 방법.
  8. 제7항에 있어서, 로봇에 의해 발음되는 리스트는 로봇의 지각되는 환경과 연관된 파라미터에 따라 달라지는, 로봇 상의 소프트웨어 애플리케이션을 핸들링하는 방법.
  9. 제8항에 있어서, 상기 파라미터는 사용자 연령, 사용자 성별, 사용자 신장, 로봇 주위의 사용자 수, 사용자의 기분, 사용자의 미소 여부, 주변 오디오 레벨, 현재 날짜, 현재 시각, 현재 위치 및 이들의 조합으로 구성된 군 중에서 선택되는, 로봇 상의 소프트웨어 애플리케이션을 핸들링하는 방법.
  10. 제1항에 있어서, 소프트웨어 애플리케이션을 선택하는 단계는 실행 확률 값을 상기 비교에 따라 각각의 설치된 소프트웨어 애플리케이션에 연관시키는 단계를 더 포함하는, 로봇 상의 소프트웨어 애플리케이션을 핸들링하는 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 선택된 소프트웨어 애플리케이션을 실행하기 전에 사용자의 긍정 확인을 수신하는 단계를 더 포함하는, 로봇 상의 소프트웨어 애플리케이션을 핸들링하는 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서, 사용자와의 대화 동안 설치된 소프트웨어 애플리케이션 중 하나 이상과 연관된 하나 이상의 표현을 디스플레이하는 단계를 더 포함하는, 로봇 상의 소프트웨어 애플리케이션을 핸들링하는 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서, 사용자와 대화 중에 로봇에 없는 소프트웨어 애플리케이션을 식별하고, 상기 로봇에 없는 소프트웨어 애플리케이션을 불러오고 설치하는 단계를 더 포함하는, 로봇 상의 소프트웨어 애플리케이션을 핸들링하는 방법.
  14. 적합한 컴퓨터 장치 상에서 실행될 때 청구항 제1항 내지 제13항 중 어느 한 항에 따르는 방법의 단계들을 수행하기 위한 명령을 포함하는 컴퓨터 프로그램.
  15. 청구항 제1항 내지 제13항 중 어느 한 항에 따르는 방법의 단계들을 수행하도록 구성된 수단을 포함하는 시스템.
KR1020167032135A 2014-04-17 2015-04-17 로봇 상의 소프트웨어 애플리케이션 실행하기 KR102001293B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP14305580.4 2014-04-17
EP14305580.4A EP2933796B1 (en) 2014-04-17 2014-04-17 Executing software applications on a robot
PCT/EP2015/058360 WO2015158880A1 (en) 2014-04-17 2015-04-17 Executing software applications on a robot

Publications (2)

Publication Number Publication Date
KR20170028877A true KR20170028877A (ko) 2017-03-14
KR102001293B1 KR102001293B1 (ko) 2019-07-17

Family

ID=50628739

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167032135A KR102001293B1 (ko) 2014-04-17 2015-04-17 로봇 상의 소프트웨어 애플리케이션 실행하기

Country Status (15)

Country Link
US (1) US10369699B2 (ko)
EP (1) EP2933796B1 (ko)
JP (1) JP6328793B2 (ko)
KR (1) KR102001293B1 (ko)
CN (1) CN106575504A (ko)
AU (1) AU2015248706B2 (ko)
BR (1) BR112016023922A2 (ko)
CA (1) CA2946040C (ko)
DK (1) DK2933796T3 (ko)
ES (1) ES2703338T3 (ko)
HK (1) HK1216451A1 (ko)
MX (1) MX2016013017A (ko)
RU (1) RU2016144755A (ko)
SG (1) SG11201608255QA (ko)
WO (1) WO2015158880A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113778114A (zh) * 2014-11-07 2021-12-10 索尼公司 控制***、控制方法以及存储介质
EP3200482B1 (en) * 2016-01-22 2019-12-18 The Raymond Corporation Systems and methods for a material handling vehicle network
US10259117B2 (en) 2016-08-02 2019-04-16 At&T Intellectual Property I, L.P. On-demand robot virtualization
US10272349B2 (en) * 2016-09-07 2019-04-30 Isaac Davenport Dialog simulation
CN110785268B (zh) * 2017-06-28 2023-04-04 谷歌有限责任公司 用于语义机器人抓取的机器学习方法和装置
JP6956562B2 (ja) * 2017-08-10 2021-11-02 学校法人慶應義塾 知能ロボットシステム及びプログラム
US11568265B2 (en) * 2017-08-23 2023-01-31 Sony Interactive Entertainment Inc. Continual selection of scenarios based on identified tags describing contextual environment of a user for execution by an artificial intelligence model of the user by an autonomous personal companion
CN108765921A (zh) * 2018-04-04 2018-11-06 昆山市工研院智能制造技术有限公司 基于视觉语意分析应用于巡逻机器人的智能巡逻方法
US20210319790A1 (en) * 2018-07-20 2021-10-14 Sony Corporation Information processing device, information processing system, information processing method, and program
KR102252195B1 (ko) * 2018-09-14 2021-05-13 엘지전자 주식회사 감성 인식기 및 이를 포함하는 로봇, 서버
JP7392004B2 (ja) * 2019-06-12 2023-12-05 ライブパーソン, インコーポレイテッド 通信システムインテント分析のためのシステムおよび方法
CN112017629B (zh) * 2020-07-15 2021-12-21 马上消费金融股份有限公司 语音机器人的会话控制方法及设备、存储介质
US11896536B2 (en) 2020-11-06 2024-02-13 Toyota Motor North America, Inc. Wheelchair systems and methods to follow a companion
CN112363789B (zh) * 2020-11-11 2024-06-04 上海擎朗智能科技有限公司 页面交互方法、装置、终端和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000029936A1 (en) * 1998-11-12 2000-05-25 Microsoft Corporation Speech recognition system with changing grammars and grammar help command
JP2002301675A (ja) * 2001-01-30 2002-10-15 Nec Corp ロボット、ロボット制御システム、およびそのプログラム
JP2011033680A (ja) * 2009-07-30 2011-02-17 Sony Corp 音声処理装置及び方法、並びにプログラム
KR20110104723A (ko) * 2010-03-17 2011-09-23 삼성전자주식회사 휴대 단말기의 어플리케이션 실행 방법 및 장치
US20140075352A1 (en) * 2012-09-13 2014-03-13 Timothy E. Hansen Methods and apparatus for improving user experience

Family Cites Families (30)

* 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
US7679534B2 (en) * 1998-12-04 2010-03-16 Tegic Communications, Inc. Contextual prediction of user words and user actions
US6513006B2 (en) * 1999-08-26 2003-01-28 Matsushita Electronic Industrial Co., Ltd. Automatic control of household activity using speech recognition and natural language
US6513009B1 (en) * 1999-12-14 2003-01-28 International Business Machines Corporation Scalable low resource dialog manager
KR20020027382A (ko) * 2000-05-03 2002-04-13 요트.게.아. 롤페즈 콘텐트 정보의 의미론에 따른 음성 명령
JP2002113675A (ja) * 2000-10-11 2002-04-16 Sony Corp ロボット制御システム並びにロボット制御用ソフトウェアの導入方法
JP2002190847A (ja) * 2000-12-20 2002-07-05 Ntt Docomo Inc アプリケーション起動制御方法及び通信端末装置
JP2003080482A (ja) * 2001-09-07 2003-03-18 Yaskawa Electric Corp ロボット教示装置
JP2003225228A (ja) * 2002-01-31 2003-08-12 Sanyo Electric Co Ltd 健康管理端末装置,コンピュータプログラム及び記録媒体
JP2005275707A (ja) * 2004-03-24 2005-10-06 Hitachi Ltd 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2005275890A (ja) * 2004-03-25 2005-10-06 Nec Corp プレゼンス情報発行装置およびシステムならびにプログラム
US8041570B2 (en) * 2005-05-31 2011-10-18 Robert Bosch Corporation Dialogue management using scripts
JP4866572B2 (ja) * 2005-06-14 2012-02-01 パナソニック株式会社 携帯端末装置及びプログラム起動方法
JP2007030050A (ja) * 2005-07-22 2007-02-08 Nec Corp ロボット制御装置、ロボット制御システム、ロボット装置、およびロボット制御方法
US9833901B2 (en) * 2006-02-27 2017-12-05 Perrone Robotics, Inc. General purpose robotics operating system with unmanned and autonomous vehicle extensions
US9195233B2 (en) * 2006-02-27 2015-11-24 Perrone Robotics, Inc. General purpose robotics operating system
US10331136B2 (en) * 2006-02-27 2019-06-25 Perrone Robotics, Inc. General purpose robotics operating system with unmanned and autonomous vehicle extensions
US8612230B2 (en) * 2007-01-03 2013-12-17 Nuance Communications, Inc. Automatic speech recognition with a selection list
US20090082879A1 (en) * 2007-09-20 2009-03-26 Evolution Robotics Transferable intelligent control device
CN101178705A (zh) * 2007-12-13 2008-05-14 中国电信股份有限公司 一种自然语言理解方法和人机交互智能***
JP5429462B2 (ja) * 2009-06-19 2014-02-26 株式会社国際電気通信基礎技術研究所 コミュニケーションロボット
CN101604204B (zh) * 2009-07-09 2011-01-05 北京科技大学 智能情感机器人分布式认知***
JP5202601B2 (ja) * 2010-10-18 2013-06-05 株式会社エヌ・ティ・ティ・ドコモ サービス提供システム及びサービス提供方法
JP5644622B2 (ja) * 2011-03-24 2014-12-24 日本電気株式会社 表示システム、集計サーバ、携帯端末、表示方法
US20130031476A1 (en) * 2011-07-25 2013-01-31 Coin Emmett Voice activated virtual assistant
US9256396B2 (en) * 2011-10-10 2016-02-09 Microsoft Technology Licensing, Llc Speech recognition for context switching
JP2013127724A (ja) * 2011-12-19 2013-06-27 Nec Corp アプリケーション選択装置、アプリケーション選択手段、及びアプリケーション選択プログラム
US9275341B2 (en) * 2012-02-29 2016-03-01 New Sapience, Inc. Method and system for machine comprehension
US10431235B2 (en) * 2012-05-31 2019-10-01 Elwha Llc Methods and systems for speech adaptation data
US20170206064A1 (en) * 2013-03-15 2017-07-20 JIBO, Inc. Persistent companion device configuration and deployment platform

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000029936A1 (en) * 1998-11-12 2000-05-25 Microsoft Corporation Speech recognition system with changing grammars and grammar help command
JP2002301675A (ja) * 2001-01-30 2002-10-15 Nec Corp ロボット、ロボット制御システム、およびそのプログラム
JP2011033680A (ja) * 2009-07-30 2011-02-17 Sony Corp 音声処理装置及び方法、並びにプログラム
KR20110104723A (ko) * 2010-03-17 2011-09-23 삼성전자주식회사 휴대 단말기의 어플리케이션 실행 방법 및 장치
US20140075352A1 (en) * 2012-09-13 2014-03-13 Timothy E. Hansen Methods and apparatus for improving user experience

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
일본 공개특허공보 특개2011-033680호(2011.02.17.) 1부. *

Also Published As

Publication number Publication date
DK2933796T3 (en) 2019-01-21
WO2015158880A1 (en) 2015-10-22
AU2015248706A1 (en) 2016-10-27
US10369699B2 (en) 2019-08-06
EP2933796A1 (en) 2015-10-21
JP6328793B2 (ja) 2018-05-23
CA2946040C (en) 2020-04-14
HK1216451A1 (zh) 2016-11-11
BR112016023922A2 (pt) 2017-08-15
AU2015248706B2 (en) 2018-04-19
ES2703338T3 (es) 2019-03-08
RU2016144755A (ru) 2018-05-17
MX2016013017A (es) 2017-10-04
EP2933796B1 (en) 2018-10-03
CA2946040A1 (en) 2015-10-22
US20170106539A1 (en) 2017-04-20
CN106575504A (zh) 2017-04-19
RU2016144755A3 (ko) 2018-05-17
SG11201608255QA (en) 2016-10-28
JP2017514227A (ja) 2017-06-01
KR102001293B1 (ko) 2019-07-17

Similar Documents

Publication Publication Date Title
KR102001293B1 (ko) 로봇 상의 소프트웨어 애플리케이션 실행하기
AU2018202162B2 (en) Methods and systems of handling a dialog with a robot
US10335954B2 (en) Methods and systems for managing dialogs of a robot
JP7254772B2 (ja) ロボットインタラクションのための方法及びデバイス
KR20170027707A (ko) 로봇의 활동 모니터링
KR102595790B1 (ko) 전자 장치 및 그의 제어방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant