KR20200014368A - 로봇 행동 보정에 기초한 로컬 피쳐 모델의 업데이트 - Google Patents

로봇 행동 보정에 기초한 로컬 피쳐 모델의 업데이트 Download PDF

Info

Publication number
KR20200014368A
KR20200014368A KR1020197038773A KR20197038773A KR20200014368A KR 20200014368 A KR20200014368 A KR 20200014368A KR 1020197038773 A KR1020197038773 A KR 1020197038773A KR 20197038773 A KR20197038773 A KR 20197038773A KR 20200014368 A KR20200014368 A KR 20200014368A
Authority
KR
South Korea
Prior art keywords
feature
embedding
classification
model
robot
Prior art date
Application number
KR1020197038773A
Other languages
English (en)
Other versions
KR102472592B1 (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 엑스 디벨롭먼트 엘엘씨
Priority to KR1020227041549A priority Critical patent/KR102517457B1/ko
Publication of KR20200014368A publication Critical patent/KR20200014368A/ko
Application granted granted Critical
Publication of KR102472592B1 publication Critical patent/KR102472592B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/1605Simulation of manipulator lay-out, design, modelling of manipulator
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/40Software arrangements specially adapted for pattern recognition, e.g. user interfaces or toolboxes therefor
    • G06F18/41Interactive pattern learning with a human teacher
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06K9/6254
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/778Active pattern-learning, e.g. online learning of image or video features
    • G06V10/7784Active pattern-learning, e.g. online learning of image or video features based on feedback from supervisors
    • G06V10/7788Active pattern-learning, e.g. online learning of image or video features based on feedback from supervisors the supervisor being a human, e.g. interactive learning with a human teacher
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/02Arm motion controller
    • Y10S901/03Teaching system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Robotics (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Mechanical Engineering (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Fuzzy Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Manipulator (AREA)
  • Image Analysis (AREA)

Abstract

로봇 행동에 대한 보정을 결정하고 이용하기 위한 방법, 장치, 및 컴퓨터 판독가능한 매체가 개시된다. 일부 구현들은, 로봇에 의해 수행되는 행동의 인간 보정을 결정하는 것에 응답하여, 로봇의 로컬 피쳐 모델(feature model)을 업데이트하는 것에 관한 것이다. 로컬 피쳐 모델은, 대응하는 신경망 모델을 통해 생성된 임베딩(embedding)에 기초하여, 생성된 임베딩과 가장 유사한 하나 이상의 피쳐를 결정하는데 이용된다. 인간 보정에 응답하여 로컬 피쳐 모델을 업데이트하는 것은, 인간 보정에 대응하는, 로컬 피쳐 모델의 피쳐 임베딩을 업데이트하는 것을 포함할 수 있다. 피쳐 모델에 대한 조정(들)은 대응하는 신경망 모델의 재훈련을 필요로하지 않고도 로봇 수행을 즉시 향상시킬 수 있다.

Description

로봇 행동 보정에 기초한 로컬 피쳐 모델의 업데이트
구매되어 이용되는 로봇은 다양한 행동을 수행할 수 있다. 그러나, 일부 상황에서 로봇은 여전히 일부 행동을 부정확하게 수행하거나 및/또는 일부 행동을 수행하지 못할 수 있다. 이러한 사태는, 행동을 수행하는데 있어서 로봇에 의해 이용되는 모델(들)의 정확성 및/또는 확실성의 결여, 로봇이 동작하는 다양하거나 및/또는 동적인 환경 등의 다양한 요인들에 기인한 것일 수 있다. 또한, 행동의 부정확한 수행의 많은 발생의 경우, 로봇 자체가 부정확한 수행을 인식하지 못할 수도 있다. 예를 들어, 로봇의 제어 프로세스는, 실제로는 수행이 부정확하더라도, 행동이 정확하게 수행된 것으로 간주할 수 있다.
본 개시내용은, 로봇 행동에 대한 인간 보정(human correction)을 결정하고 이용하기 위한 방법, 장치, 및 컴퓨터 판독가능한 매체(일시적 및 비일시적)에 관한 것이다. 이들 구현들 중 일부는, 로봇에 의해 수행되는 행동의 인간 보정을 결정하는 것에 응답하여, 로봇의 피쳐 모델(feature model)을 업데이트하는 것에 관한 것이다. 피쳐 모델은, 로봇에 의해서만 이용되거나 및/또는 로봇에 로컬 저장된다는 점에서 "로컬" 피쳐 모델일 수 있다. 피쳐 모델은, 대응하는 신경망 모델을 통해 생성된 임베딩(embedding)에 기초하여, 생성된 임베딩과 가장 유사한 하나 이상의 피쳐를 결정하는데 이용된다. 예를 들어, 피쳐 모델은, 피쳐와 대응하는 피쳐 임베딩 사이의 저장된 맵핑을 포함할 수 있다. 피쳐는, 피쳐 모델에서, 생성된 임베딩과 가장 유사한 피쳐 임베딩에 피쳐가 맵핑된다는 사실에 기초하여, 생성된 임베딩과 가장 유사하도록 결정될 수 있다.
이러한 한 예에서, 로봇 행동은 피쳐에 기초하여 수행될 수 있고, 인간 보정은, 피쳐가 부정확하거나 및/또는 추가 피쳐가 그 대신에 정확하다(또는 역시 정확하다)는 것을 나타낼 수 있다. 인간 보정에 응답하여, 피쳐 모델이 업데이트될 수 있다. 예를 들어, 추가 피쳐에 맵핑되는 추가 피쳐 임베딩은 조정될 수 있거나(즉, 생성된 임베딩과 더 유사하게끔) 및/또는 모델의 피쳐에 맵핑되는 피쳐 임베딩은 조정될 수 있다(즉, 생성된 임베딩과 덜 유사하게끔). 또 다른 예로서, 추가 피쳐가 모델에 포함되지 않는다면, 추가 피쳐가 포함되고 생성된 임베딩에 기초하는(예를 들어, 생성된 임베딩과 동일한) 피쳐 임베딩을 할당받을 수 있다. 피쳐 모델은 인간 보정에 응답하여 업데이트될 수 있고, 대응하는 신경망 모델의 재훈련을 요구하지 않고 업데이트될 수 있다.
본 명세서에 개시된 구현들 중 한 특정한 예로서, 피쳐 모델은 분류 모델(classification model)일 수 있다. 분류 모델은 로봇에 로컬로 저장될 수 있고, 분류를 대응 분류 임베딩에 맵핑할 수 있다. 예를 들어, "그릇" 분류는 분류 임베딩 A에, "컵" 분류는 분류 임베딩 B에 맵핑될 수 있고, "모자" 분류는 분류 임베딩 C에 맵핑될 수 있는 등등이다. 각각의 분류 임베딩은, 예를 들어, 다차원 공통 임베딩 공간에서의 한 위치를 정의하는 값들의 벡터일 수 있다.
분류 모델에 대응하는 신경망 모델은 또한, 로봇 상에 로컬 저장될 수 있다. 신경망 모델은, 센서 데이터 인스턴스의 임베딩을 생성하도록 훈련될 수 있고, 분류 모델과 협력하여 훈련될 수 있다. 예를 들어, 로봇의 시각 센서(예를 들어, 단안 카메라, 입체 카메라, 레이저 스캐너)에 의해 생성된 시각 센서 데이터는 신경망 모델에 대한 입력으로서 적용될 수 있고, 임베딩은 적용된 입력에 기초하여 신경망 모델 기반을 통해 생성될 수 있다. 그 다음, 생성된 임베딩은 생성된 임베딩과 가장 유사한 분류 임베딩을 결정하기 위해 하나 이상의 분류 임베딩과 비교될 수 있다. 예를 들어, 생성된 임베딩 및 분류 임베딩 각각이 대응하는 값들의 벡터인 경우, 생성된 임베딩과 분류 임베딩 사이의 거리 측정이 생성될 수 있고, 가장 작은 거리 측정은 가장 유사한 분류 임베딩을 나타낼 수 있다.
그 다음, 가장 유사한 분류 임베딩에 대응하는 분류는 시각 센서 데이터에 의해 포착된 물체의 분류로서 결정될 수 있다. 예를 들어, "그릇" 분류는 시각 센서 데이터에 의해 포착된 물체의 분류로서 결정될 수 있다(즉, 생성된 임베딩은, "그릇" 분류에 맵핑되는 분류 임베딩 A와 가장 유사하도록 결정된다는 사실에 기초하여). 그러면, 로봇은 물체를 향한 하나 이상의 행동을 수행할 수 있다. 예를 들어, 로봇은 물체를 집어 들고 "나는 그릇을 집어 들고 있는 중이다"라는 가청 출력을 제공할 수 있다.
행동의 수행 동안 또는 수행 후에, 분류가 부정확하다는 것을 나타내는(예를 들어, "그것은 그릇이 아니다"라는 음성 입력) 및/또는 대안적 분류가 그 대신에 정확한 분류임을 나타내는(예를 들어, "그것은 모자이다"라는 음성 입력) 사용자 인터페이스 입력이 수신될 수 있다. 인간 보정에 응답하여, 로컬 저장된 분류 모델이 업데이트될 수 있다. 예를 들어, "모자"가 정확한 분류임을 나타내는 사용자 인터페이스 입력에 기초하여, 생성된 임베딩에 기초하여 ("모자" 분류에 맵핑되는) 분류 임베딩 C는 조정될 수 있다. 예를 들어, 분류 임베딩 C는 생성된 임베딩과 더 유사하도록 조정될 수 있다. 하나의 특정한 예로서, 현재 분류 임베딩 C 및 생성된 임베딩은 평균될 수 있고, 이 평균은 "모자" 분류에 대한 새로운 분류 임베딩으로서 이용될 수 있다(예를 들어, 새로운 분류 임베딩은, "모자" 분류에 대한 맵핑된 분류 임베딩으로서 분류 임베딩 C를 대체할 수 있다). 다른 예로서, "그릇"이 부정확한 분류임을 나타내는 사용자 인터페이스 입력에 기초하여, ("그릇" 분류에 맵핑되는) 분류 임베딩 A가 생성된 임베딩에 기초하여 조정될 수 있다. 예를 들어, 분류 임베딩 A는 생성된 임베딩과 덜 유사하도록 조정될 수 있다.
분류 모델에 대한 이러한 조정(들)은 대응하는 신경망 모델의 재훈련을 필요로 하지 않으면서 미래 분류의 수행을 즉시 향상시킬 수 있다는 점에 유의한다. 예를 들어, 추가적인 시각 센서 데이터가 동일한(추가로 훈련되지 않은) 신경망 모델에 적용되어 위에서 생성된 임베딩과 매우 유사한(또는 동일한) 추가 임베딩을 생성한다면, "모자" 분류에 대한 새로운 분류 임베딩에 기초하여 ("그릇" 분류 대신에) "모자" 분류가 결정될 수 있다. 따라서, 신경망 모델의 추가적인 계산 집약적 및/또는 시간 소모적 훈련없이, 분류 모델의 조정을 통해 분류 성능이 신속하게 개선될 수 있다. 이러한 개선된 분류 수행은, 나아가, 물체의 분류에 (직접 또는 간접) 의존하는 다양한 로봇 행동의 수행을 향상시킨다.
일부 구현들에서, 인간 보정을 결정하는 것에 응답하여, 보정 인스턴스가 추가로 또는 대안으로서 생성되어 하나 이상의 원격 컴퓨팅 디바이스에 전송될 수 있다. 보정 인스턴스는, 예를 들어, 신경망 모델에 적용된 센서 데이터, 및 (예를 들어, 정확한 피쳐(들)를 나타내거나 및/또는 결정된 피쳐(들)가 부정확하다는 것을 나타내는) 인간 보정에 기초하는 보정 정보를 포함할 수 있다. 예를 들어, 및 이전 단락들의 예를 계속하면, "그릇" 분류가 부정확하다는 것을 나타내는 사용자 인터페이스 입력에 응답하여, 다음을 포함하는 보정 인스턴스가 생성 및 전송될 수 있다 : 부정확한 "그릇" 분류를 생성하는데 있어서 신경망 모델에 적용된 시각 센서 데이터; 및 "그릇" 분류가 부정확하다는 표시. 또한, 예를 들어, 및 이전 단락들의 예를 계속하면, 대안적인 "모자" 분류가 그 대신에 정확한 분류임을 나타내는 사용자 인터페이스 입력에 응답하여, 다음을 포함하는 보정 인스턴스가 생성 및 전송될 수 있다 : 부정확한 "그릇" 분류를 생성하는데 있어서 신경망 모델에 적용된 시각 센서 데이터; 및 "모자"가 정확한 분류라는 표시.
보정 인스턴스는 하나 이상의 원격 컴퓨팅 디바이스에 전송될 수 있다. 원격 컴퓨팅 디바이스는, 보정 인스턴스를 이용하여, 행동을 수행하는데 이용된 부정확한 피쳐(들)를 결정하는데 이용되는 것들에 대응하는 신경망 모델(들) 등의, 하나 이상의 신경망 모델(들)의 훈련을 위한 훈련 예(들)를 생성할 수 있다. 다양한 구현에서, 신경망 모델(들)의 훈련은 복수의 로봇으로부터 수신된 보정 인스턴스들에 기초한다. 보정 인스턴스들을 생성 및 제공하는 복수의 로봇은, 이질적인 지리적 위치들 및/또는 환경들에 물리적으로 위치할 수 있거나 및/또는 서로 다를 수 있다(예를 들어, 하드웨어별로 및/또는 소프트웨어별로 다름).
일단 복수의 로봇으로부터의 보정 인스턴스들에 기초한 훈련을 통해 신경망 모델의 개정된 버전이 생성되고 나면, 신경망 모델의 개정된 버전은 그 후 복수의 로봇 중 하나 이상에 의해 이용될 수 있다. 예를 들어, 복수의 로봇 중 하나는, 보정 인스턴스들 중 하나가 그 로봇에 의해 생성되었을 때 이용되었던 더 이전의 대응하는 버전 대신에 개정된 버전을 이용할 수 있다. 예를 들어, 개정된 버전은 그 로봇에 전송될 수 있고, 그 로봇은 이전의 로컬 저장된 버전을 개정된 버전으로 대체할 수 있다. 일부 구현들에서, 신경망 모델의 개정된 버전에 대응하는 피쳐 모델의 개정된 버전도 역시 생성될 수 있다. 예를 들어, 피쳐 모델의 개정된 버전은 다양한 피쳐에 대한 개정된 피쳐 임베딩을 포함할 수 있고(예를 들어, 신경망 모델의 개정된 버전에 대응하도록), 추가 피쳐 및 대응하는 피쳐 임베딩을 포함할 수 있고(예를 들어, 보정 인스턴스가 "새로운" 피쳐를 포함하는 경우), 등등일 수 있다. 피쳐 모델의 개정된 버전은 또한, 그 후, 복수의 로봇 중 하나 이상에 의해 이용될 수 있다.
일부 구현들에서, 신경망 모델의 "새로운" 버전을 수신한 것에 응답하여, 로봇은 과거의 인간 보정에 기초하여 대응하는 피쳐 모델을 적응(adapt)시킬 수 있다. 한 예로서, 신경망 모델의 새로운 버전이 신경망 모델의 구 버전을 대체하고, 피쳐 모델의 새로운 버전이 피쳐 모델의 구 버전을 대체한다고 가정하자. 또한, 시각 센서 데이터 X에 기초하여 신경망 모델의 구 버전을 통해 생성된 임베딩과 더 유사하도록 피쳐 A의 피쳐 임베딩을 조정함으로써, 인간 보정에 응답하여, 피쳐 모델의 구 버전이 이전에 업데이트되었다고 가정한다. 피쳐 모델의 새로운 버전은, 신경망 모델의 새로운 버전에 시각 센서 데이터 X를 적용하는 것에 기초하여 신경망 모델의 새로운 버전을 통해 새로운 임베딩을 생성하고 새로운 임베딩과 가장 유사하도록 (피쳐 모델의 새로운 버전에서의) 피쳐 A의 피쳐 임베딩을 조정함으로써 업데이트될 수 있다. 이러한 방식으로, 로봇의 이전 피쳐 모델을 업데이트하는데 이용된 과거 인간 보정으로부터의 이전 시각 센서 데이터 및 이전 보정 정보는, 신경망 모델의 새로운 버전을 통해 생성된 임베딩을 이용하여 피쳐 모델의 새로운 버전을 조정하기 위해 로봇에 의해 이용될 수 있다.
일부 구현들에서, 로봇의 행동의 인간 보정을 결정하는 것은 행동의 수행과 연관하여(즉, 행동의 수행 이전에, 동안에 또는 이후에) 수신된 사용자 인터페이스 입력에 기초한다. 사용자 인터페이스 입력은, 로봇의 하나 이상의 센서(예를 들어, 로봇의 마이크로폰, 로봇의 인간 터치 및/또는 인간 조작을 결정하는데 이용될 수 있는 센서(들))를 통해, 및/또는 로봇과 분리되어 있지만 로봇과 통신하는 클라이언트 디바이스(예를 들어, 태블릿 또는 스마트폰을 통해 수신된 음성 또는 타이핑된 사용자 인터페이스 입력)를 통해 수신될 수 있다.
사용자 인터페이스 입력이 보정을 나타낸다는 것을 결정하는 것은, 사용자 인터페이스 입력 자체의 분석에 기초할 수 있고, 선택사항으로서 수행중에 있는 행동의 피쳐(들)에 기초할 수 있다. 예를 들어, 그것은 사용자 인터페이스 입력에서 보정을 나타내는 하나 이상의 용어 또는 기타의 단서들에 기초할 수 있다(예를 들어, "아니오(no)", "정지(stop)", "말고(not)"). 또한, 예를 들어, 그것은, 추가로 또는 대안으로서, 사용자 인터페이스 입력에 기초하여 결정된 피쳐(들)와 행동의 수행에 이용되는 있는 피쳐(들)의 비교에 기초할 수 있다. 예를 들어, "모자"와 "그릇"의 비교는 사용자 인터페이스 입력이 물체의 분류가 "모자"임을 나타내는 상충을 결정하는 반면, 행동은 그 물체에 대한 "그릇"이라는 부정확하게 결정된 분류에 기초하여 수행되고 있다. 사용자 인터페이스 입력이 자연어 입력(예를 들어, 음성 또는 자유형 타이핑된 입력)인 경우, 자연어 처리(NLP; natural language processing) 시스템 및/또는 기타의 컴포넌트들이 선택사항으로서 이러한 사용자 인터페이스 입력이 보정인지를 결정하는데 이용될 수 있다.
다양한 구현에서, 본 명세서에 설명된 바와 같이 인간 보정에 응답하여 피쳐 모델을 업데이트하는 것은 피쳐 모델이 소위 "하드 네거티브(hard negative)" 사례에 비추어 적응될 수 있게 한다. 즉, 피쳐 모델은, 사전-업데이트된 피쳐 모델에 기초하여 이루어진 기저의 부정확한 결정의 결과로서 업데이트된다. 다시 말해서, 피쳐 모델은, 피쳐(들)가 실제로는 부정확하거나 및/또는 불완전함에도 불구하고, 정확한 피쳐(들)인 것으로 간주된 것에 기초하여 로봇에 의해 수행된 행동에 기초하여 업데이트된다. 이러한 적응은, 기저 결정이 정확한 소위 "긍정적인(affirmative)" 사례에서 피쳐 모델을 업데이트하는 것보다 더 영향을 줄 수 있다.
또한, 신경망 모델을 훈련시키기 위한 훈련 예를 생성하는데 이용하기 위한 보정 인스턴스를 생성 및 전송하는 다양한 구현은 소위 "하드 네거티브" 훈련 예의 생성을 가능케한다. 즉, 훈련 예들은, 훈련될 것에 대응하는 신경망 모델에 기초하여 이루어진 기저의 부정확한 결정의 결과인 보정 인스턴스에 기초하여 생성되기 때문에 하드 네거티브이다.
구현의 예들은, 이들 구현들 중 일부의 개요를 제공할 목적으로 이전 단락들에서 제공된다. 그러나, 여기서 설명된 다양한 구현들은 제공된 예들로부터 하나 이상의 관점에서 상이하다는 것을 이해할 것이다.
일부 구현들에서, 로봇의 환경에서 물체에 대한 분류를 결정하는 단계를 포함하는 한 방법이 제공될 수 있다. 물체의 분류를 결정하는 단계는 : 로봇의 하나 이상의 컴퓨터 판독가능한 매체 상에 로컬 저장된 신경망 모델에 입력으로서, 물체를 포착하고 로봇의 적어도 하나의 센서에 의해 생성되는 센서 데이터를 적용하는 단계; 적용에 기초하여 신경망 모델을 통해 센서 데이터의 임베딩을 생성하는 단계; 로봇의 하나 이상의 컴퓨터 판독가능한 매체 상에 로컬 저장된 분류 모델에 센서 데이터의 임베딩을 적용하는 단계; 및 임베딩을 분류 모델에 적용하는 것에 기초하여 분류를 결정하는 단계를 포함한다. 이 방법은, 물체를 향한 로봇에 의한 행동의 수행 동안에, 사용자 인터페이스 입력을 수신하는 단계를 더 포함한다. 이 방법은, 사용자 인터페이스 입력이 물체의 분류가 부정확함을 나타낸다고 결정하는 단계를 더 포함한다. 이 방법은, 사용자 인터페이스 입력이 물체의 분류가 부정확함을 나타낸다고 결정하는 것에 응답하여, 로컬 저장된 분류 모델을 업데이트하는 단계를 더 포함한다. 로컬 저장된 분류 모델을 업데이트하는 단계는 신경망 모델의 재훈련없이 발생한다.
본 명세서에 개시된 기술의 이 방법 및 기타의 구현들 각각은, 다음과 같은 피쳐들 중 하나 이상을 선택사항으로서 포함할 수 있다.
일부 구현들에서, 사용자 인터페이스 입력이 물체의 분류가 부정확함을 나타낸다고 결정하는 단계는, 사용자 인터페이스 입력이, 결정된 분류와 상충되는, 물체의 대안적인 분류를 나타낸다고 결정하는 단계를 포함한다. 이들 구현들 중 일부에서, 로컬 저장된 분류 모델을 업데이트하는 단계는, 대안적인 분류에 기초하여 로컬 저장된 분류 모델을 업데이트하는 단계를 포함한다. 이들 구현의 일부 버전들에서, 대안적인 분류에 기초하여 로컬 저장된 분류 모델을 업데이트하는 단계는 : 로컬 저장된 분류 모델에서 대안적인 분류에 맵핑되는 현재의 대안적인 분류 임베딩을 식별하는 단계; 및 대안적인 분류 임베딩에 기초하여 및 센서 데이터의 임베딩에 기초하여 조정된 대안적인 분류 임베딩을 결정하는 단계를 포함한다. 예를 들어, 조정된 대안적인 분류 임베딩을 결정하는 단계는, 대안적인 분류 임베딩과 센서 데이터의 임베딩의 평균에 기초할 수 있다. 일부 추가적인 또는 대안적인 구현들에서, 이 방법은 : 센서 데이터 및 대안적인 분류를 저장하는 단계; 로컬 저장된 분류 모델을 업데이트한 후 : 신경망 모델의 새로운 버전 및 분류 모델의 새로운 버전을 수신하는 단계; 센서 데이터를 입력으로서 신경망 모델의 새로운 버전에 적용하는 단계; 적용에 기초하여, 신경망 모델의 새로운 버전을 통해, 센서 데이터의 새로운 임베딩을 생성하는 단계; 분류 모델의 새로운 버전에서, 대안적인 분류의 새로운 대안적인 분류 임베딩을 식별하는 단계; 및 분류 모델의 새로운 버전에서, 센서 데이터의 새로운 임베딩에 기초하여 대안적인 분류의 새로운 대안적인 분류 임베딩을 조정하는 단계를 더 포함할 수 있다. 일부 구현들에서, 대안적인 분류에 기초하여 로컬 저장된 분류 모델을 업데이트하는 단계는 : 로컬 저장된 분류 모델이 대안적인 분류에 대한 임의의 대안적인 분류 임베딩이 결여되어 있다고 결정하는 단계; 및 응답하여, 대안적인 분류 임베딩 ―대안적인 분류 임베딩은 센서 데이터의 임베딩에 기초함― 을 로컬 저장된 분류 모델에 저장하는 단계를 포함한다. 일부 구현들에서, 로컬 저장된 분류 모델을 업데이트하는 단계는 : 신경망 모델에 대한 입력으로서, 물체를 포착하고 로봇의 센서에 의해 생성되는 추가 센서 데이터를 적용하는 단계; 적용에 기초하여 신경망 모델을 통해, 추가 센서 데이터의 추가 임베딩을 생성하는 단계; 및 추가 임베딩 및 대안적인 분류에 기초하여 로컬 저장된 분류 모델을 업데이트하는 단계를 더 포함한다.
일부 구현들에서, 분류 모델에 임베딩을 적용하는 것에 기초하여 분류를 결정하는 단계는, 임베딩이, 대안적인 분류에 맵핑된 대안적인 분류 임베딩보다 분류에 맵핑된 분류 임베딩과 더 유사하다는 결정에 기초하여 분류를 결정하는 단계를 포함한다. 이들 구현들 중 일부에서, 로컬 저장된 분류 모델을 업데이트하는 단계는 : 분류 임베딩을 임베딩과 덜 유사하도록 수정하는 것에 기초하여 분류에 대한 조정된 분류 임베딩을 결정하는 단계를 포함한다.
일부 구현들에서, 로봇의 하나 이상의 컴퓨터 판독가능한 매체 상에 로컬 저장된 신경망 모델에 대한 입력으로서, 물체를 포착하고 로봇의 적어도 하나의 센서에 의해 생성되는 센서 데이터를 적용하는 단계; 적용에 기초하여 신경망 모델을 통해, 센서 데이터의 임베딩을 생성하는 단계; 및 로봇의 하나 이상의 컴퓨터 판독가능한 매체 상에 로컬 저장된 피쳐 모델에 임베딩을 적용하는 것에 기초하여 센서 데이터의 피쳐를 결정하는 단계를 포함하는 방법이 제공된다. 피쳐 모델은, 피쳐를, 피쳐의 피쳐 임베딩에 맵핑하고, 추가 피쳐를 대응하는 추가 피쳐 임베딩에 맵핑한다. 피쳐를 결정하는 단계는, 피쳐에 맵핑되는 피쳐 임베딩에 대한 센서 데이터의 임베딩의 유사성에 기초하여 피쳐를 결정하는 단계를 포함한다. 이 방법은 : 결정된 피쳐에 기초하여, 물체를 향한 로봇 행동을 수행하는 단계; 물체를 향한 로봇 행동의 수행에 응답하여 사용자 인터페이스 입력을 수신하는 단계; 및 사용자 인터페이스 입력이 추가 피쳐들 중 특정한 추가 피쳐를 나타낸다고 결정하는 단계를 더 포함한다. 이 방법은, 사용자 인터페이스 입력이 특정한 추가 피쳐를 나타낸다고 결정하는 것에 응답하여 : 피쳐 모델에서, 센서 데이터의 임베딩에 기초하여 특정한 추가 피쳐의 추가 피쳐 임베딩을 조정하는 단계를 더 포함한다.
본 명세서에 개시된 기술의 이 방법 및 기타의 구현들 각각은, 다음과 같은 피쳐들 중 하나 이상을 선택사항으로서 포함할 수 있다.
일부 구현들에서, 피쳐는 제1 분류이고 특정한 추가 피쳐는 제2 분류이다.
일부 구현들에서, 피쳐는 제1 경계 영역(bounding area)이고 추가 피쳐는 제2 경계 영역이다. 이들 구현들 중 일부에서, 제1 경계 영역은 복수의 제1 픽셀에 의해 정의되고, 제2 경계 영역은 복수의 제2 픽셀에 의해 정의된다. 이들 구현들 중 일부에서, 사용자 인터페이스 입력은, 사용자가 클라이언트 컴퓨팅 디바이스를 통해 제2 경계 영역을 나타내는 것에 기초하여 클라이언트 컴퓨팅 디바이스에서 생성된다. 제2 경계는, 센서 데이터에 기초한 이미지의 디스플레이 동안에 클라이언트 디바이스를 통해 표시될 수 있다. 이들 구현들의 일부 버전에서, 이 방법은 로봇 행동이 부정확하다는 것을 나타내는 초기 사용자 인터페이스 입력에 응답하여 이미지를 클라이언트 디바이스에 제공하는 단계를 더 포함한다.
일부 구현들에서, 한 방법이 제공되고, 이 방법은 : 로봇의 하나 이상의 컴퓨터 판독가능한 매체 상에 로컬 저장된 신경망 모델에 대한 입력으로서, 물체를 포착하고 로봇의 적어도 하나의 센서에 의해 생성되는 센서 데이터를 적용하는 단계; 적용에 기초하여 신경망 모델을 통해, 센서 데이터의 임베딩을 생성하는 단계; 및 로봇의 하나 이상의 컴퓨터 판독가능한 매체 상에 로컬 저장된 피쳐 모델에 임베딩을 적용하는 것에 기초하여 센서 데이터의 피쳐를 결정하는 단계를 포함한다. 피쳐 모델은, 피쳐를, 피쳐의 피쳐 임베딩에 맵핑하고, 추가 피쳐를 대응하는 추가 피쳐 임베딩에 맵핑한다. 피쳐를 결정하는 단계는, 피쳐에 맵핑된 피쳐 임베딩이 임의의 추가 피쳐 임베딩보다 센서 데이터의 임베딩과 더 유사하다는 것에 기초하여 피쳐를 결정하는 단계를 포함한다. 이 방법은 : 결정된 피쳐에 기초하여 로봇 행동을 수행하는 단계; 로봇 행동의 수행에 응답하여 사용자 인터페이스 입력을 수신하는 단계; 및 사용자 인터페이스 입력이 로봇 행동이 부정확함을 나타낸다고 결정하는 단계를 더 포함한다. 이 방법은, 사용자 인터페이스 입력이 로봇 행동이 부정확함을 나타낸다고 결정하는 것에 응답하여 : 센서 데이터의 임베딩에 기초하여 로컬 저장된 피쳐 모델을 업데이트하는 단계; 센서 데이터를 포함하는 보정 인스턴스를 생성하는 단계; 및 네트워크 인터페이스를 통해 보정 인스턴스를 하나 이상의 원격 컴퓨팅 디바이스에 전송하는 단계를 더 포함한다. 하나 이상의 원격 컴퓨팅 디바이스는, 신경망 모델의 개정된 버전을 생성하기 위한 적어도 하나의 훈련 예를 생성하기 위해 보정 인스턴스를 이용한다.
본 명세서에 개시된 기술의 이 방법 및 기타의 구현들 각각은, 다음과 같은 피쳐들 중 하나 이상을 선택사항으로서 포함할 수 있다.
일부 구현들에서, 이 방법은 : 네트워크 인터페이스를 통해, 신경망 모델의 개정된 버전을 수신하는 단계를 더 포함한다. 신경망 모델의 개정된 버전은, 신경망 모델이, 훈련 예, 및 추가 로봇들로부터의 추가 보정 인스턴스로들부터의 추가 훈련 예들에 기초하여 훈련된 후에, 수신된다.
일부 구현들에서, 사용자 인터페이스 입력이 결정된 피쳐가 부정확함을 나타낸다고 결정하는 단계는 : 사용자 인터페이스 입력이, 결정된 피쳐와 상충되는, 추가 피쳐들 중의 한 추가 피쳐를 나타낸다고 결정하는 단계를 포함한다. 이들 구현들 중 일부에서, 센서 데이터의 임베딩에 기초하여 로컬 저장된 피쳐 모델을 업데이트하는 단계는 : 센서 데이터의 임베딩에 기초하여 추가 피쳐 임베딩을 조정하는 단계를 포함한다. 추가 피쳐 임베딩은, 추가 피쳐 임베딩들 중 하나이고 로컬 저장된 피쳐 모델의 추가 피쳐에 맵핑된다. 이들 구현들의 일부 버전들에서, 보정 인스턴스는 추가 피쳐의 표시를 포함한다. 일부 구현들에서, 센서 데이터의 임베딩에 기초하여 로컬 저장된 피쳐 모델을 업데이트하는 단계는 : 추가 피쳐가 로컬 저장된 피쳐 모델의 임의의 추가 피쳐 임베딩에 맵핑되지 않는다고 결정하는 단계; 및 응답하여, 추가 피쳐에 대한 특정한 피쳐 임베딩을 로컬 저장된 피쳐 모델에 저장하는 단계를 포함한다. 특정한 피쳐 임베딩은 센서 데이터의 임베딩에 기초한다.
다른 구현들은, 전술된 하나 이상의 방법 등의 한 방법을 수행하기 위해 프로세서에 의해 실행가능한 명령어들을 저장한 비일시적인 컴퓨터 판독가능한 저장 매체를 포함할 수 있다. 역시 다른 구현들은, 메모리, 및 메모리에 저장된 명령어들을 실행하여 전술된 방법들 중 하나 이상을 단독으로 또는 집합적으로 수행하는 하나 이상의 모듈 또는 엔진을 구현하도록 동작가능한 하나 이상의 프로세서를 포함하는 시스템(예를 들어, 로봇 및/또는 하나 이상의 다른 컴포넌트)을 포함할 수 있다.
본 명세서에서 더 상세하게 설명된 전술된 개념들 및 추가적인 개념들의 모든 조합은 본 명세서에 개시된 주제의 일부인 것으로 간주된다는 것을 이해해야 한다. 예를 들어, 본 개시내용의 끝에 나타나는 청구된 주제의 모든 조합들은 본 명세서에서 개시된 주제의 일부로서 간주된다.
도 1은 본 명세서에 개시된 구현들이 구현될 수 있는 예시적인 환경을 나타낸다.
도 2a, 도 2b, 도 2c, 및 도 2d는 로봇 행동에 보정을 제공하는 예들을 나타낸다.
도 3은 본 명세서에 개시된 구현들에 따른 한 예시적인 방법을 나타내는 플로차트이다.
도 4는 본 명세서에 개시된 구현들에 따른 또 다른 예시적인 방법을 나타내는 플로차트이다.
도 5는 본 명세서에 개시된 구현들에 따른 또 다른 예시적인 방법을 나타내는 플로차트이다.
도 6은 본 명세서에 개시된 구현들에 따른 또 다른 예시적인 방법을 나타내는 플로차트이다.
도 7은 로봇의 예시적인 아키텍쳐를 개략적으로 도시한다.
도 8은 컴퓨터 시스템의 예시적인 아키텍쳐를 개략적으로 도시한다.
도 1은 본 명세서에 개시된 구현들이 구현될 수 있는 예시적인 환경을 나타낸다. 예시적인 환경은 로봇(190)을 포함한다. 특정한 로봇(190)이 도 1에 도시되어 있지만, 고정식 "로봇 아암", 휴머노이드 형태를 갖는 로봇, 동물 형태를 갖는 로봇, 하나 이상의 휠을 통해 이동하는 다른 로봇들(예를 들어, 기타의 자체 밸런싱 로봇, 비자체 밸런싱 로봇), 무인 항공기("UAV") 등을 포함한 추가적인 및/또는 대안적인 로봇이 이용될 수도 있다.
로봇(190)은, 대응하는 집기용 말단 작동기(196a, 196b)를 갖춘 로봇 아암(194a, 194b)을 포함하고, 이들은 각각 2개의 대향하는 작동 부재를 갖는 집게(gripper) 형태를 취한다. 로봇(190)은 또한, 로봇(190)의 이동을 위해 그 대향 측면들 상에 제공된 휠(197a 및 197b)을 갖는 베이스(193)를 포함한다. 베이스(193)는, 예를 들어, 로봇(190)의 이동에 대한 원하는 방향, 속도 및/또는 가속도를 달성하기 위해 대응하는 휠(197a 및 197b)을 구동하기 위한 하나 이상의 모터를 포함할 수 있다.
로봇(190)은 또한, 시각 센서(199)를 포함한다. 시각 센서(199)는, 예를 들어, 입체 카메라(stereographic camera), 모노그래픽 카메라(monographic camera), 또는 3D 레이저 스캐너일 수 있다. 일부 구현들에서, 입체 카메라는, 각각이 상이한 관점에 있는 2개 이상의 센서(예를 들어, 전하-결합 디바이스(CCD))를 포함한다. 주어진 인스턴스에서 2개의 센서에 의해 생성된 센서 데이터에 기초하여, 3차원("3D") 지점 클라우드 데이터인 시각 센서 데이터가 주어진 인스턴스에 대해 생성될 수 있고, 여기서 3D 지점 클라우드의 3D 지점들 각각은 대응하는 물체의 표면의 3D 좌표를 정의한다. 일부 다른 구현들에서, 입체 카메라는, 단일 센서, 및 2개의 상이한 관점들로부터 센서 데이터를 효과적으로 포착하는데 이용되는 하나 이상의 미러를 포함할 수 있다. 모노그래픽 카메라는 단일 센서를 포함할 수 있고 2차원("2D") 시각 센서 데이터를 포착한다. 3D 레이저 스캐너는, 빛을 방출하는 하나 이상의 레이저, 및 방출된 빛의 반사에 관련된 시각 센서 데이터를 생성하는 하나 이상의 센서를 포함한다. 3D 레이저 스캐너로부터 생성된 시각 센서 데이터는 3D 지점 클라우드 데이터일 수 있다. 3D 레이저 스캐너는, 예를 들어, 비행 시간 3D 레이저 스캐너(time-of-flight 3D laser scanner) 또는 삼각측량 기반의 3D 레이저 스캐너(triangulation based 3D laser scanner)일 수 있고, 위치 감지 검출기(PSD) 또는 기타의 광학 위치 센서를 포함할 수 있다.
본 명세서에 설명된 바와 같이, 로봇(190)은 다양한 행동의 수행에 있어서 시간의 적어도 일부를 자율적으로 작동하고 액츄에이터를 제어할 수 있다. 예를 들어, 다양한 행동을 수행하는데 있어서, 로봇(190)의 하나 이상의 프로세서는, 휠(197a 및/또는 197b), 로봇 아암(194a 및/또는 194b), 및/또는 말단 작동기(196a 및/또는 196b)와 연관된 액츄에이터에 제어 명령을 제공할 수 있다.
또한, 로봇(190)에 의해 수행되는 다양한 행동에 대한 인간 보정을 결정함에 있어서, 이들 다양한 행동들에 대한 인간 보정을 결정하는 것에 응답하여 피쳐 모델(들)을 업데이트함에 있어서, 및/또는 이들 다양한 행동들에 대한 인간 보정을 결정하는 것에 응답하여 보정 인스턴스를 생성 및 전송함에 있어서, 로봇(190)에 의한 다양한 행동의 수행에 이용되는 다양한 컴포넌트(103)가 도 1에 도시되어 있다.
컴포넌트(103)들이 도 1에서는 로봇(190)과는 별도로 도시되어 있지만, 접속 요소(102)는, 이들 컴포넌트(103)들이 로봇(190) 상에서 구현될 수 있거나 및/또는 로봇(190)과 (예를 들어, 근거리 네트워크 및/또는 광역 네트워크를 통한) 네트워크 통신할 수 있다는 것을 나타낸다. 예를 들어, 일부 구현들에서, 컴포넌트(103)들 중 하나 이상(예를 들어, 전부)은 로봇(190)에 대해 로컬인 하드웨어에 의해 구현된다. 예를 들어, 행동 시스템(120), 로컬 업데이트 모듈(126), 보정 인스턴스 엔진(130), 및/또는 로봇 데이터 엔진(135)은, 로봇(190)의 하나 이상의 프로세서에 의해 구현될 수 있다. 또한, 예를 들어, 신경망 모델(150A), 피쳐 모델(160A), 신경망 모델(150N), 피쳐 모델(160N), 및/또는 생성된 로봇 데이터 데이터베이스(152)는, 로봇(190)의 하나 이상의 하드 드라이브 또는 기타의 컴퓨터 판독가능한 매체에 저장될 수 있다. 또 다른 예로서, 일부 구현들에서, 하나 이상의 컴포넌트(103)는 로봇(190)으로부터 원격지인 하나 이상의 컴퓨팅 디바이스 상에서 구현된다.
컴포넌트(103)는, 로봇(190)의 로봇 센서들에 의해 생성된 로봇 센서 데이터 및/또는 로봇(190)의 컴포넌트들에 의해 생성된 기타의 데이터를 처리하는 로봇 데이터 엔진(135)을 포함한다. 예를 들어, 로봇 데이터 엔진(135)은 로봇의 다양한 센서로부터 로봇 센서 데이터를 수신하고, 로봇 센서 데이터를 타임스탬핑하며, 타임스탬핑된 로봇 센서 데이터를 행동 시스템(120)에 제공할 수 있다. 로봇 센서 데이터는, 예를 들어, 시각 센서(199)로부터의 시각 센서 데이터, 로봇의 액츄에이터의 위치 센서로부터의 위치 센서 데이터, 로봇의 가속도계(들)로부터의 가속도계 데이터 등을 포함할 수 있다. 로봇 데이터 엔진(135)은 또한, 로봇 센서 데이터 중 적어도 일부의 로그(log)를 생성된 로봇 데이터 데이터베이스(152)에 저장한다. 예를 들어, 로봇 데이터 엔진(135)은 "최근" 센서 데이터의 버퍼를 저장하고 공간, 시간 및/또는 기타의 요인들에 기초하여 버퍼로부터 데이터를 클리어할 수 있다. 로봇 데이터 엔진(135)은 또한, 행동 시스템(120)에 의해 결정된 피쳐, 로봇(190)의 액츄에이터에 제공된 제어 명령 등의, 로봇(190)에 의해 생성된 다양한 다른 데이터를, 생성된 로봇 데이터 데이터베이스(152)에 저장할 수 있다.
행동 시스템(120)은, 다양한 로봇 행동을 수행함에 있어서, 로봇 데이터 엔진(135)에 의해 제공된 로봇 센서 데이터를 이용한다. 행동은, 물체를 집어 올리거나, 물체를 "집어 놓거나", 소정 위치로 이동하는 것 등의 행동, 및/또는 식기세척기를 비우는 것, 정의된 영역으로부터 모든 "장난감"을 집어 올리는 것, 모든 물체의 테이블을 클리어하는 것, 소정 유형(들)의 물체들만의 테이블을 클리어하는 것, 건물의 복수의 방으로부터 소정 유형들의 물체들을 회수하는 것 등의 비교적 복잡한 행동들의 모음을 포함할 수 있다. 행동 시스템(120)은 다양한 단서들에 응답하여 로봇 행동을 수행할 수 있다. 예를 들어, 행동 시스템(120)은, 인간에 의해 제공된 사용자 인터페이스 입력에 응답하여 일부 로봇 행동을 수행할 수 있다(예를 들어, 음성 입력에 응답하여 "주문형"으로 작업을 수행). 다른 예로서, 행동 시스템(120)은, 추가로 또는 대안으로서, 스케쥴에 기초하여(예를 들어, 매주 아침마다) 및/또는 환경 조건에 기초하여(예를 들어, "지저분한" 영역으로부터 아이템들을 제거하는) 어떤 행동을 제공할 수 있다.
행동 시스템(120)은 행동의 수행에서 다양한 모듈을 이용할 수 있고, 그 예가 도 1에 도시되어 있다. 행동 시스템(120)의 피쳐 모듈들(121A-N)은, 행동을 실행하는 방법을 결정함에 있어서 계획 모듈(122)에 의해 이용될 다양한 피쳐를 결정한다. 예를 들어, 피쳐 모듈(121A-N)은, 환경 내의 물체의 자세(위치 및/또는 배향)를 나타내는 피쳐, 로봇(190)의 환경 내의 물체의 클래스를 나타내는 피쳐, 로봇(190)의 환경 내의 물체를 집는 방법을 나타내는 피쳐(예를 들어, 집기용 말단 작동기(196a 및/또는 196b)에 대한 집기 자세를 나타내는 경계 박스), 로봇(190)의 환경 내의 물체의 무게, 재료 및/또는 기타의 물리적 특성을 나타내는 피쳐 등을 결정할 수 있다. 계획 모듈(122)은 행동을 실행하는 방법을 결정하는데 있어서 이러한 피쳐들을 이용할 수 있다. 예를 들어, 테이블로부터 "접시"를 클리어할 때, 계획 모듈(122)은 결정된 물체 자세 및 분류를 이용하여 "접시"이고 "테이블 상에" 있는 물체들을 결정할 수 있고, 테이블로부터 이들을 제거하는데 있어서 이들 물체들을 집는 방법을 결정하기 위해 집기 피쳐를 이용할 수 있다.
명령 모듈(123)은 계획 모듈(122)에 의해 결정된 행동을 수행하기 위해 로봇(190)의 액츄에이터에 제공할 제어 명령을 생성한다. 예를 들어, 계획 모듈(122)은, 행동을 수행하기 위한 경로 및 기타의 더 높은 수준의 움직임을 생성하는 상위 레벨 계획기일 수 있고, 명령 모듈(123)은 이들 더 높은 수준의 움직임을 수행하기 위해 로봇(190)의 액츄에이터에 제공할 실시간 제어 명령을 생성하는 실시간 모듈일 수 있다.
2개의 피쳐 모듈들(121A 및 121N)이 도 1에 도시되어 있다. 피쳐 모듈(121A)은 대응하는 피쳐를 생성하는데 있어서 대응하는 신경망 모델(150A) 및 피쳐 모델(160A)을 이용한다. 피쳐 모듈(121N)은 대응하는 피쳐를 생성하는데 있어서 대응하는 신경망 모델(150N) 및 피쳐 모델(160N)을 이용한다. 피쳐 모듈들(121A 및 121N) 사이에는, 생략표로 표시된 바와 같이, 추가 피쳐 모듈들이 제공될 수 있다는 것을 이해할 수 있을 것이다. 또한, 이들 추가 피쳐 모듈들 중 하나 이상은, 선택사항으로서, 추가적인 생략표로 표시된 바와 같이, 대응하는 신경망 모델 및 선택사항적인 피쳐 모델을 이용할 수 있다.
한 예로서, 피쳐 모듈(121A)은 신경망 모델(150A) 및 피쳐 모델(160A)을 이용하여 물체 인식을 효과적으로 수행할 수 있다. 예를 들어, 피쳐 모듈(121A)은 신경망 모델(150A)에 대한 입력으로서 (로봇 데이터 엔진(135)에 의해 제공되는) 시각 센서 데이터의 한 인스턴스를 적용하고 이 입력에 기초하여 모델(150A)에 관해 임베딩을 생성할 수 있다. 그 다음, 피쳐 모듈(121A)은 생성된 임베딩과 가장 유사한 하나 이상의 자세를 결정하기 위해 생성된 임베딩을 피쳐 모델(160A)에 적용할 수 있다. 예를 들어, 피쳐 모델(160A)은, 피쳐 모델(160A)의 대응하는 피쳐 임베딩에 각각 맵핑되는 경계 영역(예를 들어, 경계 박스)을 정의할 수 있고, 피쳐 모듈(121A)은, 신경망 모델을 통해 생성된 임베딩과 가장 큰 유사성(예를 들어, 가장 짧은 거리)을 갖는 피쳐 임베딩(들)을 결정할 수 있다. 피쳐 모듈(121A)은 이들 피쳐 임베딩(들)에 맵핑된 경계 영역(들)을 이용하여 시각 센서 데이터에 의해 포착된 물체(들)의 자세(들)를 결정할 수 있다. 예를 들어, 경계 영역은, 시각 센서 데이터의 픽셀들의 경계 박스, 및 물체의 자세를 결정하는데 이용되는 픽셀들을 정의할 수 있다(예를 들어, 자세는 환경 내의 이들 픽셀들의 유효 위치에 대응할 수 있다). 이것은, 피쳐 모듈(121A)이 로봇 환경 내의 복수의 물체 각각에 대한 자세를 결정할 수 있게 하도록 시각 센서 데이터 복수의 인스턴스 각각에 대해 반복적으로 수행될 수 있어서, 피쳐 모듈(121A)이 로봇 환경 내의 물체들의 최신의 공간-시간 "인벤토리"를 효과적으로 유지할 수 있게 한다.
또 다른 예로서, 피쳐 모듈(121N)은 신경망 모델(150N) 및 피쳐 모델(160N)을 이용하여 시각 센서 데이터에 의해 포착된 물체의 물체 분류를 효과적으로 수행할 수 있다. 예를 들어, 물체의 분류를 결정하기 위해, 피쳐 모듈(121N)은 신경망 모델(150N)에 대한 입력으로서 시각 센서 데이터를 적용하고, 입력에 기초하여 모델(150N)을 통해, 시각 센서 데이터의 임베딩을 생성할 수 있다. 그 다음, 피쳐 모듈(121N)은 생성된 임베딩에 기초하여 하나 이상의 분류를 결정하기 위해 생성된 임베딩을 피쳐 모델(160N)에 적용할 수 있다. 예를 들어, 피쳐 모델(160N)은 피쳐 모델(160N)의 대응하는 분류 임베딩에 각각 맵핑되는 분류를 정의할 수 있고, 피쳐 모듈(121N)은 신경망 모델을 통해 생성된 임베딩과 가장 큰 유사성(예를 들어, 가장 짧은 거리)을 갖는 분류 임베딩(들)을 결정할 수 있다. 피쳐 모듈(121N)은 이들 분류 임베딩(들)에 맵핑된 분류(들)를 이용하여 시각 센서 데이터에 의해 포착된 물체(들)의 분류(들)를 결정할 수 있다. 일부 구현들에서, 피쳐 모듈(121N)은 또한, 선택사항으로서, 시각 센서 데이터와 함께 신경망 모델(150A)에 대한 입력으로서, 분류가 결정되어야 하는 특정한 물체의 자세(예를 들어, 피쳐 모듈(121A)에 의해 결정된 자세)를 제공할 수 있다. 이것은, 시각 센서 데이터에 기초하지만 특정한 물체에 특별히 맞게 조정된 임베딩을 생성하는데 이용될 수 있다(예를 들어, 자세에 의해 표시된, 시각 센서 데이터에서의 그 위치에 기초하여).
신경망 모델, 피쳐 모델 및 피쳐 모듈의 특정한 예가 이전 단락들에서 제공되었지만, 추가적인 및/또는 대안적인 신경망 모델, 피쳐 모델, 및/또는 피쳐 모듈이 제공될 수 있다는 것을 이해해야 한다. 예를 들어, 추가 피쳐 모듈은, 시각 센서 데이터 및/또는 기타의 데이터(예를 들어, 다른 피쳐 모듈(들)의 피쳐(들))를 대응하는 훈련된 신경망 모델에 대한 입력으로서 적용할 수 있고, 입력에 기초하여 모델을 통해, 시각 센서 데이터에 의해 포착된 물체를 집을 곳을 나타내는 집기 피쳐를 결정하기 위해 대응하는 피쳐 모델에 적용될 수 있는 임베딩을 생성할 수 있다. 예를 들어, 집기 피쳐는, 피쳐 모델의 피쳐 임베딩에 맵핑된 경계 박스의 2개의 코너로 표시된 2개의 집기 지점일 수 있다. 또한, 예를 들어, 하나 이상의 피쳐 모듈은, 비-시각 센서 데이터를 대응하는 훈련된 신경망 모델에 대한 입력으로서 적용하고, 입력에 기초하여 모델을 통해, 로봇의 환경에 관련된 하나 이상의 피쳐를 결정하기 위해 대응하는 피쳐 모델에 적용될 수 있는 임베딩을 생성할 수 있다. 비-시각 센서 데이터는, 위치 센서(들), 촉각 센서, 오디오 센서(예를 들어, 마이크로폰) 등의 다양한 센서들 중 하나 이상으로부터 나온 것일 수 있다. 비-시각 센서 데이터는, 선택사항으로서, 입력으로서 역시 적용되는 시각 센서 데이터와 함께 입력으로서 적용될 수 있다. 예를 들어, 훈련된 신경망 모델은 시각 센서 데이터 및 비-시각 센서 데이터 양쪽 모두를 입력으로서 수락하도록 훈련될 수 있다.
행동 시스템(120)은 또한, UI 출력 모듈(125)을 포함한다. UI 출력 모듈(125)은, 로봇(190)에 의한 행동의 수행 동안에 제공할 사용자 인터페이스 출력을 생성할 수 있다. 제공된 사용자 인터페이스 출력은, 행동을 수행하기 위한 진행으로서의 로봇(190)의 움직임에 추가하여, 피쳐 모듈들(121A-N)에 의해 결정된 하나 이상의 피쳐의 인지가능한 표시를 제공한다. 예를 들어, 사용자 인터페이스 출력은 로봇(190)의 스피커를 통해 제공되는 가청 출력일 수 있고, 여기서, 가청 출력은 로봇(190)에 의해 작용되는 중인(또는 작용될) 물체의 결정된 피쳐를 "발성한다(speak)". 예를 들어, 로봇(190)이 피쳐 모듈들(121A-N) 중 하나에 의해 분류된 물체를 "플레이트"로서 집어들고 있을 때, 로봇(190)은 "플레이트 집어들기"라는 가청 출력을 생성할 수 있다. 다른 구현에서, UI 출력 모듈(125)은, 추가로 또는 대안으로서, 시각적 및/또는 다른 비-청각적 사용자 인터페이스 출력을 제공할 수 있다. 물체의 결정된 피쳐를 나타내는 사용자 인터페이스 출력을 제공하는 것은, 로봇(190)의 환경에서 인간에 의한 그 인지를 가능케한다. 사용자 인터페이스 출력의 인지는 그것이 부정확한지를 인간이 인식할 수 있게 하고, 만일 그렇다면, 여기서 설명된 바와 같이 보정을 제공할 수 있게 한다.
행동 시스템(120)은 또한, 사용자 인터페이스 입력을 수신하는 UI 입력 모듈(124)을 포함한다. 예를 들어, UI 입력 모듈(124)은, 로봇(190)의 마이크로폰을 통해 제공된 음성 사용자 인터페이스 입력, 또는 UI 입력 모듈(124)과 통신하는 클라이언트 디바이스(106)에 의해 제공된 사용자 인터페이스 입력을 수신할 수 있다. 일부 구현들에서, 로봇(190)의 임의의 마이크로폰과 연관된 하드웨어는, 음성 "핫 워드"(예를 들어, "헤이 로봇"), (예를 들어, 로봇(190) 상의) 하드웨어 버튼의 선택, (예를 들어, 클라이언트 디바이스(106) 상에 렌더링된) 가상 버튼의 선택 등의, 소정의 선행 입력에 응답하여, 인간 보정에 대한 "능동적 청취"만을 하고 있을 수 있다.
클라이언트 디바이스(106)에 의해 제공되는 사용자 인터페이스 입력은, 클라이언트 디바이스(106)의 입력 디바이스(들)(예를 들어, 클라이언트 디바이스(106)의 마이크로폰 및/또는 가상 또는 하드웨어 키보드)와의 사용자 상호작용에 응답하여 제공되고, 선택사항으로서, 클라이언트 디바이스(106) 및/또는 기타의 컴포넌트에 의해 전처리될 수 있다(예를 들어, 음성 입력은 텍스트 입력으로 변환함으로써 전처리됨). 일부 구현들에서, UI 입력 모듈(124)은 수신된 사용자 인터페이스 입력에 기초하여 행동 시스템(120)에 의해 이용되기 위한 하나 이상의 피쳐를 생성할 수 있다. 예를 들어, "테이블 클리어"라는 수신된 사용자 인터페이스 입력에 대해, UI 입력 모듈(124)은 그 입력을 처리하여, 로봇(190)의 환경 내의 "테이블" 물체 상에 있는 모든 물체를 제거하기 위해, 로봇(190)에 의해 수행되어야 할 행동들을 나타내는 피쳐를 결정할 수 있다. UI 입력 모듈(124)에 의해 결정된 임의의 피쳐는 계획 모듈(122)에 제공될 수 있다. UI 입력 모듈(124)은, 수신된 사용자 인터페이스 입력으로부터 피쳐를 결정하는데 있어서 NLP 시스템(133) 및/또는 하나 이상의 다른 컴포넌트와 상호작용할 수 있다.
UI 입력 모듈(124)은, 추가로 또는 대안으로서, 보정 인스턴스 엔진(130)과 연계하여 작동할 수 있다. 보정 인스턴스 엔진(130)은, 수신된 사용자 인터페이스 입력이 로봇 행동에 대한 보정을 나타내는지를 결정한다. 만일 그렇다면, 보정 인스턴스 엔진(130)은 (아래에서 더 상세히 설명된) 로컬 업데이트 모듈(126)로 하여금 피쳐 모델들(160A-N) 중 하나에 대한 대응하는 로컬 업데이트를 수행하게 하거나 및/또는 자체로 대응하는 보정 인스턴스를 생성하고 네트워크(101)를 통해 수집 엔진(140)에 전송할 수 있다. 이러한 방식으로, 다양한 구현에서, 보정 인스턴스 엔진(130)은 로컬 업데이트 모듈(126)로 하여금 피쳐 모델들(160A-N) 중 하나에 대한 대응하는 로컬 업데이트를 수행하게 하거나, 및/또는 수신된 사용자 인터페이스 입력이 로봇 행동에 대한 보정을 나타낼 때에만, 보정 인스턴스를 전송할 수 있다.
보정 인스턴스 엔진(130)은, 수신된 사용자 인터페이스 입력이 로봇 행동에 대한 보정을 나타낸다고 결정하는데 있어서 다양한 기술을 이용할 수 있다. 일부 구현들에서, 수신된 사용자 인터페이스 입력이 (예를 들어, 로봇(190)의 마이크로폰을 통해 수신되거나 클라이언트 디바이스(106)를 통해 수신된) 자연어 입력인 경우, 보정 인스턴스 엔진(130)은 자연어 입력의 시맨틱 및/또는 다른 자연어 처리에 기초하여 그것이 보정을 나타낸다고 결정할 수 있다. 보정 인스턴스 엔진(130)은, 자연어 입력의 처리에 있어서, 선택사항으로서, (예를 들어, 인터넷 또는 다른 네트워크(들)를 통해) NLP 시스템(133) 또는 다른 외부 자원(들)과 상호작용할 수 있다. NLP 시스템(133)은 자연어 입력을 처리하고 자연어 입력의 다양한 주석을 제공할 수 있다. 예를 들어, NLP 시스템(133)은, (예를 들어, 감정 분류기를 이용한) 감정 주석부기, (포함된 엔티티들을 일반적으로 및/또는 구체적으로 포함된 주석부기하는) 엔티티 주석부기, 자연어 입력의 완전한 의미 해석을 제공하는 주석부기 등을 제공할 수 있다.
일부 구현들에서, 보정 인스턴스 엔진(130)은, 행동의 수행에 있어서 행동 시스템(120)에 의해 이용된 피쳐와 입력의 비교에 기초하여 사용자 인터페이스 입력이 행동에 대한 보정을 나타낸다고 결정한다. 예를 들어, 피쳐 모듈(121N)이 "컵"이라고 결정한 환경 물체와 로봇(190)이 상호작용하는 동안 "그것은 그릇이다"라는 자연어 입력이 수신된다고 가정하자. 보정 인스턴스 엔진(130)은, 자연어 입력에 의해 표시된 "그릇" 분류와 피쳐 모듈(121N)에 의해 결정된 "컵" 분류 사이의 상충에 기초하여, 사용자 인터페이스 입력이 행동에 대한 보정을 나타낸다고 결정할 수 있다. 본 명세서에 설명된 바와 같이, 일부 구현들에서 UI 출력 모듈(125)은, 환경 물체와의 상호작용 동안에 가청의 또는 기타의 사용자 인터페이스 출력을 제공할 수 있고, 이것은 인간에게 "그것은 그릇이다"라는 사용자 인터페이스 입력을 제공할 것을 촉구할 수 있다.
일부 구현들에서, 보정 인스턴스 엔진(130)은, 자연어 사용자 인터페이스 입력이 아닌 사용자 인터페이스 입력에 기초하여 로봇의 행동에 대한 보정을 결정한다. 예를 들어, 사용자 인터페이스 입력은, 사용자가 로봇(190) 상의 "에러" 버튼을 작동하는 것, 사용자가 (예를 들어, "외부" 터치-감지 센서 및/또는 힘-토크에 또는 기타의 "내부" 센서(들)에 기초하여 감지된 대로) 로봇(190)을 "집는"것, 사용자가 클라이언트 디바이스(106)를 통해 그래픽 사용자 인터페이스(예를 들어, 사용자가 로봇(190)의 상태를 모니터링하고 일반적으로 및/또는 구체적으로 에러를 보고할 수 있게 하는 인터페이스)와 상호작용하는 것에 기초할 수 있다.
보정 인스턴스 엔진(130)은 행동 시스템(120)의 로컬 업데이트 모듈(126)과 상호작용하여 로컬 업데이트 모듈(126)로 하여금 로봇(190)에 의해 수행된 행동의 인간 보정을 결정하는 것에 응답하여 하나 이상의 피쳐 모델(160A)을 업데이트하게 한다. 예를 들어, 보정 인스턴스 엔진(130)은, 로컬 업데이트 모듈(126)에, 피쳐가 부정확하다는 및/또는 추가 피쳐가 그 대신에 정확하다는(또는 역시 정확하다는) 표시를 제공할 수 있다. 응답하여, 로컬 업데이트 모듈(126)은, 부정확한 피쳐를 결정하는데 이용된 (대응하는 신경망 모델을 통해 생성된) 임베딩에 기초하여 대응하는 피쳐 모델을 업데이트할 수 있다. 예를 들어, 피쳐 모듈(121N)이 신경망 모델(150N)에 대한 입력으로서 시각 센서 데이터를 적용하고, 입력에 기초하여 임베딩 A를 생성하고, 피쳐 모델(160N)에 임베딩 A를 적용하는 것에 기초하여 피쳐 A를 결정했다고 가정하자. 또한, 보정 인스턴스 엔진(130)이 피쳐 A가 부정확하고 피쳐 B가 그 대신에 정확하다고 나타낸다고 가정하자. 로컬 업데이트 모듈(126)은, 피쳐 B에 대한 피쳐 B 임베딩이 임베딩 A와 더 유사하게끔 하거나 및/또는 피쳐 A에 대한 피쳐 A 임베딩이 임베딩 A와 덜 유사하게끔 하도록 피쳐 모델(160A)을 업데이트할 수 있다.
일부 구현들에서, 보정 인스턴스 엔진(130)은, 추가로 및/또는 대안으로서, 로봇(190)에 의해 수행되는 행동의 인간 보정을 결정하는 것에 응답하여 보정 인스턴스를 생성한다. 보정을 결정하는 것에 응답하여 보정 인스턴스 엔진(130)에 의해 생성된 보정 인스턴스는, 예를 들어, 인간 보정과 연관된(즉, 부정확하거나 불완전한 피쳐(들)를 생성하는데 이용된) 신경망 모델에 적용된 센서 데이터, 및 (예를 들어, 정확한 피쳐(들)를 나타내거나 및/또는 결정된 피쳐(들)가 부정확하다는 것을 나타내는) 인간 보정에 기초한 보정 정보를 포함할 수 있다.
수집 엔진(140)은, 네트워크(101)(예를 들어, 인터넷)를 통해 보정 인스턴스 엔진(130)으로부터 보정 인스턴스를 수신한다. 수집 엔진(140)은 또한, 네트워크(101)를 통해 추가 로봇(192)들로부터 보정 인스턴스를 수신할 수 있다. 추가 로봇(192)은 다양한 지리적 위치에 있을 수 있고, 추가 로봇(192)은 선택사항으로서 로봇(190)과는 상이할 수 있다(예를 들어, 이들은 4개의 바퀴를 갖는 유형 등의 상이한 "유형"일 수 있다). 추가 로봇(192)에 의해 제공되는 보정 인스턴스는 또한, 로봇 행동의 인간 보정에 응답하여 생성된 것들을 포함할 수 있다. 수집 엔진(140)은, 예를 들어, 컴퓨팅 디바이스들의 클러스터에 의해 구현될 수 있다.
수집 엔진(140)은, 주어진 신경망 모델 및 피쳐 모델에 대응하는 보정 인스턴스를 이용하여 신경망 모델 및 피쳐 모델의 훈련을 위한 훈련 예를 생성한다. 한 예로서, 특정한 물체를 포착하는 시각 센서 데이터의 한 인스턴스, 그 특정한 물체가 "그릇"으로서 부정확하게 분류되었다는 표시, 및 그 분류가 (인간 보정을 통해) "모자"로 보정되었다는 표시를 포함하는 보정 인스턴스가 수신된다고 가정하자. 이러한 한 예에서, 수집 엔진(140)은, 시각 센서 데이터의 한 대응하는 인스턴스에 기초하는 훈련 예 입력; 및 "그릇"이 정확한 분류가 아니거나 및/또는 "모자"가 정확한 분류라는 것을 나타내는 훈련 예 출력을 포함하는 훈련 예를 생성할 수 있다.
수집 엔진(140)은 생성된 훈련 예를 훈련 엔진(145)에 제공한다. 훈련 엔진(145)은, 하나 이상의 대응하는 신경망 모델 및 피쳐 모델을 훈련시키는 훈련 예를 이용하여 대응하는 개정된 신경망 모델(151A-N) 및 개정된 피쳐 모델(161A-N)을 생성한다. 한 예로서, 수집 엔진(140)은 신경망 모델(150N) 및 피쳐 모델(160N)의 하나 이상의 인스턴스에 의한 물체의 부정확한 분류에 대한 인간 보정에 기초하여 생성된 많은 수의 훈련 예를 제공한다고 가정하자. 이러한 한 예에서, 훈련 엔진(145)은 또한, 신경망 모델(150N)(또는 신경망 모델(150N)과 유사한 또 다른 모델) 및 피쳐 모델(160N)을 훈련시켜 개정된 신경망 모델(151N) 및 개정된 피쳐 모델(161N)을 생성할 수 있다. 예를 들어, 훈련 엔진(145)은, 한 훈련 예의 훈련 예 입력을 신경망 모델(150N)에 적용하고, 훈련 예에 기초하여 임베딩을 생성하고, 임베딩을 피쳐 모델(160N)에 적용하고, 훈련 예 출력에 의해 표시된 피쳐와 피쳐 모델(160N)로의 임베딩의 적용에 기초하여 표시된 실제의 피쳐에 기초하여 에러를 결정하고, 피쳐 모델(160N) 및/또는 신경망 모델(150N)을 통해 에러를 역전파하여 피쳐 모델(160N) 및/또는 신경망 모델(150N)을 업데이트할 수 있다. 일괄 훈련이 선택사항으로서 이용될 수 있다.
대량의 훈련 예의 적용을 통해, 훈련 엔진(145)은 개정된 신경망 모델(151N) 및/또는 개정된 피쳐 모델(161N)을 생성한다. 그 다음, 개정된 신경망 모델(151N) 및/또는 개정된 피쳐 모델(161N)은, 신경망 모델(150N) 및/또는 개정된 피쳐 모델(161N) 대신에 이용을 위해 제공될 수 있다. 또한, 이러한 개정된 신경망 모델(151N) 및/또는 개정된 피쳐 모델(161N)은 후속 생성된 훈련 예들에 기초하여 추후에 훈련 엔진(145)에 의해 추가로 개정되어, 이용을 위해 제공될 수 있는 개정된 신경망 모델(151N) 및/또는 개정된 피쳐 모델(161N)의 추가의 개정된 버전을 생성할 수 있다. 이러한 방식으로, 다양한 환경에 있는 로봇들(190 및 192)로부터의 보정 인스턴스들에 기초한 훈련 예들을 이용하여 개선된 신경망 모델 및 피쳐 모델이 반복적으로 훈련되고 제공될 수 있다. 훈련 엔진(145)은, 예를 들어, 컴퓨팅 디바이스들의 클러스터에 의해 구현될 수 있다.
일부 구현들에서, 신경망 모델의 "새로운" 버전을 수신하는 것에 응답하여, 로봇(190)의 로컬 업데이트 모듈(126)은 과거의 인간 보정에 기초하여 대응하는 피쳐 모델을 적응시킬 수 있다. 한 예로서, 개정된 신경망 모델(151N)은 신경망 모델(150N)을 대체하고, 개정된 피쳐 모델(161N)은 피쳐 모델(160N)을 대체한다고 가정하자. 또한, 로컬 업데이트 모듈(126)은, 시각 센서 데이터 X에 기초하여 신경망 모델(150N)을 통해 생성된 임베딩과 더 유사하도록 (피쳐 모델(160N)의) 피쳐 A의 피쳐 임베딩을 조정함으로써, 인간 보정에 응답하여, 이전에 피쳐 모델(160N)을 업데이트했다고 가정한다. 로컬 업데이트 모듈(126)은, 시각 센서 데이터 X 및 "피쳐 A"의 표시 등의 이전 업데이트의 피쳐를 로컬 저장할 수 있고, 저장된 이전 업데이트를 이용하여 개정된 피쳐 모델(161N)을 업데이트할 수 있다. 예를 들어, 로컬 업데이트 모듈(126)은, 시각 센서 데이터 X를 개정된 신경망 모델(151N)에 적용하는 것에 기초하여 개정된 신경망 모델(151N)을 통해 새로운 임베딩을 생성하고, 개정된 피쳐 모델(161N)에서, 새로운 임베딩과 더 유사하도록 (개정된 피쳐 모델(161N)의) 피쳐 A의 피쳐 임베딩을 조정함으로써, 개정된 피쳐 모델(161N)을 업데이트할 수 있다.
이제 도 2a 내지 도 8을 참조하면, 도 1의 예시적인 환경의 다양한 컴포넌트에 대한 추가 설명이 제공된다.
먼저 도 2a 내지 도 2d를 참조하면, 로봇 행동에 보정을 제공하는 일부 예가 제공된다. 도 2a 내지 도 2d는 로봇(190) 및/또는 다른 로봇(들)이 동작할 수 있는 예시적인 환경의 다양한 상태를 도시한다. 도 2a는 제1 시간에서의 테이블(250)을 나타낸다. 제1 시간에서, 4개의 물체(252A-D)가 테이블(250) 위에 놓여 있다.
도 2b는, 도 2a의 제1 시간에서, 사용자가 "테이블로부터 그릇들을 클리어하라"는 사용자 인터페이스 입력(103B1)을 제공한 예를 나타낸다. 응답하여, 로봇(190)(도 2b에 도시되지 않음)은, 테이블(250)로부터, 자신이 "그릇"으로서 분류한 물체를 제거하기 시작할 수 있다. 예를 들어, 로봇(190)은, (신경망 모델(150N)을 통해 생성된 임베딩을 피쳐 모델(160N)에 적용하는 것에 기초하여) 피쳐 모듈(121N)에 의해 "그릇"으로서 분류된 임의의 물체를 제거하기 시작할 수 있다. 예를 들어, 도 2b는 로봇(190)이 테이블(250)로부터 "그릇"으로서 부정확하게 분류한 물체(252D)를 집고 제거할 때의 환경을 나타낸다. 로봇(190)이 물체(252D)와 상호작용하는 동안, 사용자는 "모자말고"라는 추가 사용자 인터페이스 입력(103B2)을 제공한다.
보정 인스턴스 엔진(130)은, 추가 사용자 인터페이스 입력(103B2)이 물체(252D)에 관해 수행되고 있는 행동에 대한 보정을 나타낸다고 결정할 수 있다. 예를 들어, 보정 인스턴스 엔진(130)은, 사용자 인터페이스 입력(103B2)에 의해 표시된 "모자" 분류가 부정확하게 결정된 "접시" 분류와 상충된다고 결정할 수 있다. 응답하여, 보정 인스턴스 엔진(130)은 로컬 업데이트 모듈(126)과 상호작용하여 로컬 업데이트 모듈(126)로 하여금 피쳐 모델(160N)을 업데이트하게 할 수 있다. 예를 들어, 보정 인스턴스 엔진(130)은, "그릇" 분류가 부정확하고 "모자"가 그 대신에 정확한 분류라는 표시를 로컬 업데이트 모듈(126)에 제공할 수 있다. 응답하여, 로컬 업데이트 모듈(126)은, 부정확한 피쳐를 결정하는데 이용된, 신경망 모델(150N)을 통해 생성된 임베딩에 기초하여 피쳐 모델(160N)을 업데이트할 수 있다. 예를 들어, "모자" 분류에 대한 피쳐 임베딩이 이미 피쳐 모델(160N)에 존재한다면, 로컬 업데이트 모듈(126)은, 부정확한 "그릇" 분류를 결정하는데 이용된 신경망 모델(150N)을 통해 생성된 임베딩과 더욱 유사하도록 그 피쳐 임베딩을 조정할 수 있다. 또한, 예를 들어, "모자" 분류에 대한 피쳐 임베딩이 피쳐 모델(160N)에 존재하지 않는다면, 로컬 업데이트 모듈(126)은 피쳐 모델(160N)에서 "모자"에 대한 피쳐 임베딩을 생성할 수 있다. 예를 들어, "모자"에 대한 피쳐 임베딩은 부정확한 "그릇" 분류를 결정하는데 이용된 신경망 모델(150N)을 통해 생성된 임베딩에 기초할 수 있다. 본 명세서에 설명된 바와 같이, 일부 구현들에서, 보정 인스턴스 엔진(130)은, 추가로 및/또는 대안으로서, 추가 사용자 인터페이스 입력(103B2)이 물체(252D)에 관해 수행되고 있는 행동에 대한 보정을 나타낸다고 결정하는 것에 기초하여 보정 인스턴스를 생성 및 전송할 수 있다.
도 2c는 도 2b의 예 동안에 발생할 수 있는 도 1의 컴포넌트들 사이의 상호작용의 예를 나타낸다. 도 2c에서, 피쳐 모듈(121A)은 신경망 모델(150A)에 대한 입력으로서 시각 센서 데이터를 적용하고, 그 적용에 기초하여 임베딩을 생성한다. 피쳐 모듈(121A)은 또한, 피쳐 모델(160A)에 임베딩을 적용하고, 그 적용에 기초하여 "그릇"이라는 분류를 결정한다. 예를 들어, 피쳐 모듈(121A)은, 임베딩이 피쳐 임베딩 A와 C-N 중 다른 임의의 것보다 (도 2c에서 "그릇"에 맵핑된 것으로 도시된) 피쳐 모델(160A)의 피쳐 임베딩 B와 더 유사한 것에 기초하여 "그릇" 분류를 결정할 수 있다.
피쳐 모듈(121A)은, (도 2a 및 도 2b의 모자에 대응하는) "물체 D"가 "그릇" 분류를 갖는다는 표시를 계획 모듈(122)에 제공한다. 예를 들어, 피쳐 모듈(121A)은, 그 분류의 표시와 함께, "물체 D"의 자세 및/또는 다른 고유 식별자를 계획 모듈(122)에 제공할 수 있다.
계획 모듈(122)은 수행될 하나 이상의 행동을 결정하기 위해 "물체 D"에 대한 분류를 이용한다. 행동(들)을 결정하는데 있어서, 계획 모듈(122)은 또한, 피쳐 모듈(121A)에 의해 결정된 다른 분류들 및/또는 다른 피쳐 모듈(들)로부터의 다른 피쳐들에 의존할 수 있다. 계획 모듈(122)은 행동을 명령 모듈(123)에 제공하고, 명령 모듈(123)은 행동을 수행하기 위해 제어 명령을 생성하고 (도 2c에 도시되지 않은) 하나 이상의 액츄에이터에 제공한다.
행동의 수행 동안 또는 수행 후에, UI 입력 모듈(124)은 UI 입력을 수신하고 UI 입력(및 선택사항으로서 UI 입력의 주석부기)을 보정 인스턴스 엔진(130)에 제공한다. 보정 인스턴스 엔진(130)은 UI 입력을 이용하여 "물체 D"에 대한 분류가 부정확하고 그 대신에 "모자" 분류이어야 한다고 결정한다.
보정 인스턴스 엔진(130)은 정확한 "모자" 분류의 표시를 로컬 업데이트 모듈(126)에 제공한다. 응답하여, 로컬 업데이트 모듈(126)은, "그릇" 분류를 부정확하게 결정하는데 있어서 피쳐 모듈(121A)에 의해 생성된 임베딩과 더 유사하도록 (도 2c에서 "모자"에 맵핑된 것으로 도시된) 피쳐 임베딩 C를 업데이트한다.
도 2d는, 도 2a의 제1 시간에서, 사용자가 (도 2b의 사용자 인터페이스 입력(103B1)을 제공하는 것 대신에) "테이블을 클리어"하라는 사용자 인터페이스 입력(103D1)을 제공한 예를 나타낸다. 응답하여, (도 2d에 도시되지 않은) 로봇(190)은 식별된 모든 물체를 테이블(250)로부터 제거할 수 있다. 예를 들어, 피쳐 모듈(121A)에 의해 물체로서 검출된 임의의 물체를 제거할 수 있다. 예를 들어, 피쳐 모듈(121A)은 시각 센서 데이터의 하나 이상의 인스턴스를 신경망 모델(150A)에 적용하고 각각의 적용에 기초하여 대응하는 임베딩을 생성할 수 있다. 피쳐 모듈(121A)은 또한, 각각의 임베딩을 피쳐 모델(160A)에 적용하여 각각이 테이블(250) 상의 대응하는 물체의 자세를 나타내는 하나 이상의 경계 박스를 결정할 수 있다. 예를 들어, 피쳐 모델(160A)은 피쳐 임베딩 A를 경계 박스 A와 경계 박스 B의 조합에 맵핑할 수 있다. 피쳐 모듈(121A)은, (신경망 모델(150A)을 통해 생성된) 주어진 임베딩이 피쳐 임베딩 A와 가장 유사하다고 결정할 수 있고, 그 결과, (이들 경계 박스들이 피쳐 임베딩 A에 맵핑된다는 것에 기초하여) 경계 박스 A와 경계 박스 B를 선택한다. 피쳐 모듈(121A)은, 경계 박스 A에 기초하여 물체(예를 들어, 252A)를 검출하고 그것이 경계 박스 A에 대응하는 자세를 갖는다고 결정할 수 있다. 피쳐 모듈(121A)은 또한, 경계 박스 B에 기초하여 물체(예를 들어, 252C)를 검출하고 경계 박스 B에 대응하는 자세를 갖는다고 결정할 수 있다. 물체(252D)는 또한, 추가 시각 센서 데이터에 기초하는 추가 임베딩에 기초하여 검출될 수 있다.
도 2d는 로봇(190)이 자신이 식별한 모든 물체의 제거를 완료했을 때의 환경을 나타낸다. 그러나, 물체(252B)는, 테이블 (250)과 분리된 물체로서 로봇(190)에 의해 인식되지 않기 때문에 테이블(250)에 남아있다. 예를 들어, 피쳐 모듈(121A)은 물체(252B)를 검출하지 못할 수 있다. 예를 들어, 물체(252B)의 자세에 대응하는 경계 박스가 피쳐 모델(160A)에 포함되고 피쳐 임베딩 X에 맵핑될 수 있다. 그러나, 피쳐 모듈(121A)은, 피쳐 임베딩 X와 적어도 임계 정도의 유사성을 갖지 않는 (신경망 모델(150A)을 통해 생성된) 임베딩에 기초하여 그 경계 박스를 선택하지 않았을 수 있다.
도 2d에서, 사용자는 "너는 포크를 잊었다"라는 추가 사용자 인터페이스 입력(103D2)을 제공한다. 일부 상황에서, 사용자는, 식별한 모든 물체의 제거를 완료했다는 것을 나타내기 위해 로봇(190)에 의해 제공되는 가청 사용자 인터페이스 출력(예를 들어, "끝났어", "벨소리")에 응답하여, 추가 사용자 인터페이스 입력(103D2)을 제공할 수 있다.
보정 인스턴스 엔진(130)은, 추가 사용자 인터페이스 입력(103D2)이 수행중에 있는 행동에 대한 보정을 나타낸다고 결정할 수 있다. 예를 들어, 보정 인스턴스 엔진(130)은, 사용자 인터페이스 입력(103D2)이 테이블(250) 상에 존재하는 물체가 인식되지 않았음을 나타낸다고 결정할 수 있다.
응답하여, 보정 인스턴스 엔진(130)은 로컬 업데이트 모듈(126)과 상호작용하여 로컬 업데이트 모듈(126)로 하여금 피쳐 모델(160N)을 업데이트하게 할 수 있다. 응답하여, 로컬 업데이트 모듈(126)은 클라이언트 디바이스(106)를 통해 추가 보정 상세사항을 요청한다. 도 2d에 나타낸 바와 같이, 로컬 업데이트 모듈(126)은 (네트워크를 통해) 테이블(250)의 이미지를 클라이언트 디바이스(106)에 제공하고 사용자가 "포크" 주위에 박스를 그릴 것을 요청한다. 테이블(250)의 이미지는, 예를 들어, 불완전한 물체가 검출된 시각 센서 데이터의 인스턴스에 기초할 수 있다. 사용자는 (예를 들어, 클라이언트 디바이스(106)의 터치 스크린을 이용하여) 포크 주위에 박스(107)를 그리기 위해 사용자 인터페이스 입력을 제공한다. 로컬 업데이트 모듈(126)은, 로컬 모델(160A)에서, 박스(107)에 대응하는 대응하는 경계 박스를 식별할 수 있다. 또한, 로컬 업데이트 모듈(126)은 대응하는 경계 박스에 맵핑되는 피쳐 임베딩을 업데이트하여 그 피쳐 임베딩이 신경망 모델(150A)을 통해 생성된 임베딩(예를 들어, 클라이언트 디바이스(106) 상에 테이블(250)의 이미지를 생성하는데 이용되는 시각 센서 데이터에 기초하여 생성된 임베딩)과 더욱 유사하게 되도록 한다. 이러한 방식으로, 로컬 업데이트 모듈(126)은 정확한 피쳐(경계 박스)에 대한 사용자로부터의 입력을 요청하고, 신경망 모델(150)을 통해 생성된 임베딩에 기초하여 피쳐 모델(160A)에서 그 피쳐에 대한 피쳐 임베딩을 업데이트한다.
본 명세서에 설명된 바와 같이, 일부 구현들에서, 보정 인스턴스 엔진(130)은, 추가로 및/또는 대안으로서, 추가 사용자 인터페이스 입력(103D2)이 행동에 대한 보정을 나타낸다고 결정하는 것에 기초하여 보정 인스턴스를 생성 및 전송할 수 있다.
이제 도 3을 참조하면, 다양한 구현에 따른 예시적인 방법(300)이 설명된다. 편의상, 플로차트의 동작들은 그 동작들을 수행하는 시스템을 참조하여 설명된다. 이 시스템은, 로봇 및/또는 로봇과 통신하는 하나 이상의 컴퓨팅 디바이스의 다양한 컴포넌트를 포함할 수 있다. 더욱이, 방법(300)의 동작들이 특정한 순서로 도시되어 있지만, 이것은 제한적인 의미가 아니다. 하나 이상의 동작이 재정렬되거나, 생략되거나 추가될 수 있다.
블록 352에서, 시스템은, 신경망 모델로의 로봇 센서 데이터의 적용에 기초하여 신경망 모델을 통해 임베딩을 생성한다. 작업 예로서, 시스템은, 신경망 모델의 입력으로서, 물체를 포착하는 시각 센서 데이터를 적용할 수 있다.
블록 354에서, 시스템은, 임베딩과, 피쳐 모델 내의 피쳐에 맵핑된 피쳐 임베딩과의 비교에 기초하여 적어도 하나의 피쳐를 결정한다. 작업 예를 계속 진행하여, 피쳐 모델은 집기 파라미터를 대응하는 피쳐 임베딩에 맵핑할 수 있다. 예를 들어, 집기 파라미터 A는 피쳐 임베딩 A에 맵핑될 수 있고, 집기 파라미터 B는 피쳐 임베딩 B에 맵핑될 수 있는 등등이다. 시스템은, 블록 352에서 생성된 임베딩에 대한 그 피쳐 임베딩의 유사성에 기초하여 피쳐 임베딩 A를 선택할 수 있다.
다양한 구현에서, 시스템은, 블록 352의 복수의 인스턴스에 기초하여 생성된 출력의 복수의 인스턴스에 기초하여 블록 354에서 피쳐(들)를 결정할 수 있고, 블록 352의 각각의 인스턴스는 센서 데이터의 상이한 인스턴스를 적용한다는 점에 유의한다. 또한, 다양한 구현에서, 시스템은, 블록 352의 것에 추가한 다른 신경망 모델(들)을 통해 생성된 추가 출력에 기초하여 결정된 피쳐(들)에 기초하여 블록 354에서 피쳐(들)를 결정할 수 있다는 점에 유의한다.
블록 356에서, 시스템은 블록 354에서 생성된 적어도 하나의 피쳐에 기초하여 로봇 행동을 수행한다. 작업 예를 계속하여, 시스템은 결정된 집기 파라미터를 이용하여 물체 집기의 전부 또는 일부를 수행할 수 있다.
블록 356은 서브블록들 356A 및 356B를 포함한다. 블록 356A에서, 시스템은 행동의 완료를 모니터링한다. 행동이 완료되었다고 시스템이 결정한다면, 시스템은 블록 358로 진행하여 다음 행동의 수행을 시작한다.
블록 356B에서, 시스템은 보정 사용자 인터페이스 입력의 수신을 모니터링한다. 시스템은, 행동의 수행 이전에, 동안에 또는 이후에, (예를 들어, 행동의 수행 후의 적어도 임계 지속시간 동안에) 보정 사용자 인터페이스 입력의 수신을 모니터링할 수 있다. 보정 사용자 인터페이스 입력이 수신되면, 시스템은 블록 360으로 진행한다.
작업 예를 계속하여, 시스템이 물체를 집었고, 여전히 그 물체를 집고 있는 동안, "그렇게 말고"라는 사용자 인터페이스 입력이 수신된다고 가정한다. 이러한 한 예에서, 시스템은 "그렇게 말고"가 보정 사용자 인터페이스 입력이라고 결정하고 블록 360으로 진행할 수 있다. 많은 시나리오에서, 시스템은, 시스템의 관점에서 행동의 수행이 정확하더라도, 블록 356B에서 보정 UI 입력을 수신한다는 점에 유의한다. 다시 말해, 보정 사용자 인터페이스 입력이 없다면, 시스템은 행동의 수행의 부정확한 특성을 자체 인식하지 않을 것이다.
블록 360에서, 시스템은 보정 사용자 인터페이스 입력에 기초하여 피쳐 모델의 피쳐 임베딩을 조정한다. 작업 예를 계속하면, 보정 인스턴스가, 피쳐 임베딩 A에 맵핑된 집기 파라미터에 기초해, 집기가 부정확하다는 것을 나타내는 것에 응답하여, 시스템은 피쳐 임베딩 A를 블록 352에서 생성된 임베딩과 덜 유사하게끔 조정할 수 있다.
일부 구현들에서, 블록 360은 서브블록 360A를 포함하고, 여기서 시스템은 추가의 보정 상세사항을 요청하고 수신한다. 작업 예를 계속 진행하면, 시스템은 "집는 올바른 방법을 보여줄 수 있습니까?"라는 사용자 인터페이스 출력을 제공할 수 있다. 응답하여, 사용자는 로봇을 물리적으로 조작함으로써 정확한 집기를 운동감각적으로 가르칠 수 있다. 예를 들어, 시스템은 로봇이 낮은 기계적 임피던스인 "중력-보상된" 모드에 있게끔 할 수 있고, 그 동안에 사용자는 정확한 집기를 예시하기 위해 로봇을 물리적으로 조작할 수 있다. 이러한 경우에, 시스템은 물체에 대한 정확한 집기 파라미터를 결정하기 위해 센서 데이터를 기록할 수 있다. 그 다음, 시스템은 정확한 집기 파라미터에 대응하는 피쳐 모델의 피쳐 임베딩을 조정할 수 있다. 예를 들어, 시스템은 블록 352에서 생성된 임베딩과 더 유사하도록 피쳐 임베딩을 조정할 수 있다.
선택사항적 블록 362에서, 시스템은 보정 인스턴스를 생성한다. 보정 인스턴스는, 시각 센서 데이터 및/또는 보정에 관련된 기타의 로봇 센서 데이터를 포함할 수 있다. 예를 들어, 시스템은, 임베딩을 생성하기 위해 블록 352에서 적용된다는 것에 기초하여 소정의 로봇 센서 데이터를 포함할 수 있다. 일부 구현들에서, 시스템은 또한, 보정 인스턴스에서 : 블록 354에서 결정된 피쳐(들), 블록 356B에서 수신된 보정 사용자 인터페이스 입력 및/또는 블록 360A에서 수신된 추가 보정 상세사항에 기초하는 보정 정보, 및/또는 기타의 데이터를 포함한다.
작업 예를 계속하여, 시스템은, 블록 352에서 적용된 시각 센서 데이터를 포함하고 블록 360A에서 결정된 정확한 인간이 예시한 집기 피쳐를 포함하는 보정 인스턴스를 제공할 수 있다.
선택사항적 블록 364에서, 시스템은 블록 362에서 생성된 보정 인스턴스를 전송한다. 예를 들어, 시스템은 하나 이상의 네트워크를 통해 보정 인스턴스를 원격 컴퓨팅 디바이스에 전송할 수 있다.
블록 366에서, 시스템은 보정 인스턴스에 기초하여 훈련된 개정된 신경망 모델을 수신하고, 개정된 신경망 모델에 대한 개정된 피쳐 모델을 수신한다. 일부 구현들에서, 개정된 신경망 모델 및 개정된 피쳐 모델은 보정 인스턴스에 기초하여 생성된 훈련 예(들)에 기초하여 및 복수의 추가 로봇들로부터의 다른 보정 인스턴스에 기초하여 생성된 다른 훈련 예들에 기초하여 훈련된다. 많은 구현들에서 블록 364와 블록 366 사이에는 시간 지연(예를 들어, 수 시간, 수 일, 수 주)이 있을 것임을 이해할 것이다. 한편, 시스템은 다른 행동을 수행함에 있어서 "이전" 신경망 모델 및 그 로컬 업데이트된 피쳐 모델을 계속 이용할 수 있다.
선택사항적 블록 368에서, 시스템은, 블록 360에서 결정된 보정 등의, 과거의 보정에 기초하여 개정된 피쳐 모델을 조정한다. 예를 들어, 시스템은, 블록 352에서 적용된 로봇 센서 데이터뿐만 아니라 블록 360에서 결정된 보정 정보를 저장했을 수 있다. 시스템은 저장된 로봇 센서 데이터를 개정된 신경망 모델에 대한 입력으로서 적용하고, 입력에 기초하여 개정된 신경망 모델을 통해 임베딩을 생성하고, 보정 상세사항 및 임베딩에 기초하여 개정된 피쳐 모델의 피쳐 임베딩(들)을 조정할 수 있다. 작업 예를 계속하면, 시각 센서 데이터, 및 생성된 임베딩과 더 유사하도록 업데이트된 "정확한 집기 파라미터"에 (개정된 피쳐 모델 내의) 맵핑된 피쳐 임베딩을 적용하는 것에 기초하여 개정된 신경망 모델을 통해 임베딩이 생성될 수 있다.
시스템은 이들 모델들의 이전 버전 대신에 개정된 신경망 모델 및(선택사항으로서 블록 366에서 개정된) 피쳐 모델을 이용할 수 있다.
이제 도 4를 참조하면, 다양한 구현에 따른 또 다른 예시적인 방법(400)이 설명된다. 방법(400)은 도 3의 방법(300)의 특정한 구현을 나타낸다는 점에 유의한다.
편의상, 도 4의 플로차트의 동작들은 동작들을 수행하는 시스템을 참조하여 설명된다. 이 시스템은, 로봇 및/또는 로봇과 통신하는 하나 이상의 컴퓨팅 디바이스의 다양한 컴포넌트를 포함할 수 있다. 더욱이, 방법(400)의 동작들이 특정한 순서로 도시되어 있지만, 이것은 제한적인 의미가 아니다. 하나 이상의 동작이 재정렬되거나, 생략되거나 추가될 수 있다.
블록 452에서, 시스템은, 신경망 모델로의 시각 센서 데이터의 적용에 기초하여 신경망 모델을 통해 임베딩을 생성한다.
블록 454에서, 시스템은 시각 센서 데이터에 의해 포착된 물체의 적어도 하나의 분류를 결정한다. 시스템은 블록 452에서 생성된 임베딩과 분류 모델의 분류에 맵핑된 분류 임베딩과의 비교에 기초하여 분류를 결정한다. 분류 모델은 분류 임베딩(특정한 유형의 피쳐 임베딩)을 대응하는 분류에 맵핑하는 한 특정한 유형의 피쳐 모델이다.
블록 456에서, 시스템은 물체를 향한 로봇 행동을 수행한다. 예를 들어, 시스템은, 물체를 집거나 기타의 방식으로 접촉하는데 있어서, 물체를 더 잘 볼 수 있도록 등에 있어서, 물체를 향하여 더 가깝게 및/또는 물체와 접촉하도록, 로봇의 하나 이상의 컴포넌트를 이동시킬 수 있다.
블록 456은 선택사항으로서 블록들 456A 및/또는 456B를 포함한다.
블록 456A에서, 시스템은 물체의 분류를 나타내는 사용자 인터페이스 입력에 응답하여 로봇 행동을 수행한다. 예를 들어, 시스템은, 블록 452에서 결정된 물체에 대한 분류를 나타내는 수신된 사용자 인터페이스에 기초하여 물체를 향한 행동을 수행할 수 있다. 작업 예로서, "리모콘을 발견하라"는 사용자 인터페이스 입력에 응답하여, 시스템은 "리모콘" 분류를 갖는다고 결정한 물체를 향해 행동을 수행할 수 있다.
블록 456B에서, 시스템은 블록 456B에서 결정된 물체에 대한 분류를 나타내는 사용자 인터페이스 출력을 제공한다. 예를 들어, 로봇 행동의 수행 이전에 및/또는 동안에, 시스템은 "리모콘을 집어들어라"는 오디오 출력을 제공할 수 있다.
블록 458에서, 시스템은 수신된 사용자 인터페이스 입력이 물체를 향한 로봇 행동의 보정을 나타낸다고 결정한다. 작업 예를 계속하면서, 시스템이 "리모콘"이라고 간주한 것을 집어드는 로봇 행동을 수행하는데 있어서, 시스템은 "전화 말고"라는 사용자 인터페이스 입력을 수신할 수 있다. 시스템은, "말고"의 존재에 기초하여 및/또는 "전화"와 "리모콘" 사이의 상충을 결정하는 것에 기초하여 수신된 사용자 인터페이스 입력이 보정을 나타낸다고 결정할 수 있다.
블록 460에서, 시스템은 보정 UI 입력에 기초하여 분류 모델의 분류 임베딩을 조정한다. 작업 예를 계속하여, 보정 인스턴스에 응답하여, 시스템은 "리모콘" 분류에 맵핑된 분류 임베딩을 블록 452의 임베딩과 덜 유사하게 조정할 수 있다. 추가로 또는 대안으로서, 시스템은 "전화" 분류에 맵핑된 분류 임베딩을 블록 452의 임베딩과 더 유사하게 조정할 수 있다.
일부 구현들에서, 블록 460은 서브블록 460A를 포함하고, 여기서 시스템은 추가의 보정 상세사항을 요청하고 수신한다. 예를 들어, 블록 458의 수신된 사용자 인터페이스 입력이 "아니요, 그거 말고"(및 "전화"를 식별하지 않았다)이면, 시스템은 "제가 부정확하게 집어들었는지를 말해 줄 수 있습니까?"라는 사용자 인터페이스 출력을 제공할 수 있다. 응답하여, 사용자는 "전화"라는 추가 음성 입력을 제공할 수 있다. 이러한 추가의 음성 입력에 기초하여, 시스템은 "전화" 분류에 맵핑된 분류 임베딩을 블록 452의 임베딩과 더 유사하게 조정할 수 있다.
선택사항적 블록 462에서, 시스템은 블록 452에서 적용된 시각 센서 데이터를 포함하는 보정 인스턴스를 생성한다. 일부 구현들에서, 블록 462는 서브블록들(462A 및/또는 462B)을 포함한다. 블록 462A에서, 시스템은 물체의 결정된 분류를 보정 인스턴스에 포함한다. 즉, 블록 454에서 부정확하게 결정된 분류. 블록 462B에서, 시스템은 보정 정보를 보정 인스턴스에 포함한다. 보정 정보는, 예를 들어, 블록 458 또는 블록 460A에서 제공되는 인간이 제공한 분류의 표시를 포함할 수 있다. 추가의 및/또는 대안적인 데이터가 선택사항으로서 시스템에 의해 보정 인스턴스에 포함될 수 있다.
블록 464에서, 시스템은 블록 460에서 생성된 보정 인스턴스를 전송한다. 예를 들어, 시스템은 하나 이상의 네트워크를 통해 보정 인스턴스를 원격 컴퓨팅 디바이스에 전송할 수 있다.
블록 466에서, 시스템은 보정 인스턴스에 기초하여 훈련된 개정된 신경망 모델 및 보정 인스턴스에 기초하여 훈련된(및/또는 개정된 신경망 모델에 비추어 훈련된) 개정된 분류 모델을 수신한다. 일부 구현들에서, 개정된 신경망 모델 및/또는 개정된 분류 모델은 보정 인스턴스에 기초하여 생성된 훈련 예(들)에 기초하여 및 복수의 추가 로봇들로부터의 다른 보정 인스턴스들에 기초하여 생성된 다른 훈련 예들에 기초하여 훈련된다. 일부 구현들에서, 시스템은, 블록 458에서 결정된 보정 등의, 과거의 보정들에 기초하여, 수신된 개정된 분류 모델을 조정할 수 있다.
이제 도 5를 참조하면, 다양한 구현에 따른 역시 또 다른 예시적인 방법(500)이 설명된다. 편의상, 플로차트의 동작들은 그 동작들을 수행하는 시스템을 참조하여 설명된다. 이 시스템은, 로봇 및/또는 로봇과 통신하는 하나 이상의 컴퓨팅 디바이스의 다양한 컴포넌트를 포함할 수 있다. 더욱이, 방법(500)의 동작들이 특정한 순서로 도시되어 있지만, 이것은 제한적인 의미가 아니다. 하나 이상의 동작이 재정렬되거나, 생략되거나 추가될 수 있다.
도 5의 방법(500)은, 블록 364(도 3) 및/또는 블록 464(도 4)에서 제공되는 보정 인스턴스 등의, 보정 인스턴스에 기초하여 신경망 모델의 개정된 버전 및 피쳐 모델의 개정된 버전을 생성하는 예를 나타낸다.
블록 552에서, 시스템은 복수의 로봇으로부터 보정 인스턴스들을 수신한다. 일부 구현들에서, 수신된 보정 인스턴스들은 모두 동일한 주어진 신경망 모델에 적용가능하다. 예를 들어, 수신된 보정 인스턴스들은 모두 물체의 분류에 이용되는 신경망 모델에 적용가능할 수 있다.
일부 다른 구현에서, 블록 552에서 수신된 보정 인스턴스들은 집합적으로 다양한 신경망 모델에 적용가능할 수 있다. 예를 들어, 일부 보정 인스턴스는 "분류" 신경망 모델에 적용가능하고, 다른 보정 인스턴스는 "집기" 신경망 모델 등에 적용가능하고, 등등이다. 이들 구현들 중 일부에서, 블록 552는 서브블록 552A를 포함하고, 여기서, 시스템은 주어진 신경망 모델에 적용가능한 보정 인스턴스를 결정한다. 다시 말해서, 블록 552A에서, 시스템은, 다양한 신경망 모델에 적용가능한 보정 인스턴스들의 그룹으로부터, 주어진 신경망 모델에 적용가능한 서브그룹을 결정할 수 있다. 블록 552A에서, 시스템은 보정 인스턴스의 내용의 분석에 기초하여 보정 인스턴스를 결정할 수 있다. 예를 들어, 시스템은, 주어진 신경망 모델(또는 대응하는 버전)을 명시적으로 나타내는 보정 인스턴스에 기초하여 이러한 보정 인스턴스를 결정할 수 있다. 또한, 예를 들어, 시스템은, 추가로 또는 대안으로서, 주어진 모델을 나타내는 이러한 보정 인스턴스에 포함된 보정 정보에 기초하여 이러한 보정 인스턴스를 결정할 수 있다.
블록 554에서, 시스템은 주어진 신경망 모델에 대한 보정 인스턴스를 선택한다.
블록 556에서, 시스템은 선택된 보정 인스턴스에 기초하여 하나 이상의 훈련 예를 생성 및 저장한다.
블록 558에서, 시스템은 주어진 신경망 모델에 대해 추가의 보정 인스턴스가 이용가능한지를 결정한다. 만일 그렇다면, 시스템은 블록 554로 진행하여 추가 보정 인스턴스를 선택한 다음, 블록 556으로 다시 진행하여 선택된 추가 보정 인스턴스에 기초하여 추가 훈련 예(들)를 생성 및 저장한다. 이것은 반복적으로 수행될 수 있고, 선택사항으로서 (이하에서 설명되는) 블록 560과 병렬로 수행될 수도 있다.
블록 560에서, 시스템은, 훈련 예에 기초한 훈련에 의해, 신경망 모델의 개정된 버전 및 대응하는 피쳐 모델의 개정된 버전을 생성한다. 예를 들어, 시스템은, 블록 552의 보정 인스턴스들을 제공한 로봇들에 의해 이용된 신경망 모델 및 피쳐 모델의 동일한 버전들, 동일한 모델의 상이한 버전들, 또는 상이한(그러나 기능적으로 유사한) 모델들과 함께 시작할 수 있다. 일부 구현에서, 시스템은 하나 이상의 기준이 충족될 때까지 훈련에 의해 개정된 버전을 생성한다. 기준은, 예를 들어, 모든 "현재" 훈련 예의 이용, 이용중에 있는 훈련 예들의 적어도 임계량, 달성중에 있는 훈련의 적어도 임계 지속시간 등을 포함할 수 있다.
블록 562에서, 시스템은, 이전 버전들 대신에 이용할 주어진 신경망 모델의 개정된 버전 및 피쳐 모델의 개정된 버전을 하나 이상의 로봇에 제공한다.
이제 도 6을 참조하면, 다양한 구현에 따른 역시 또 다른 예시적인 방법(600)이 설명된다. 편의상, 플로차트의 동작들은 그 동작들을 수행하는 시스템을 참조하여 설명된다. 이 시스템은, 로봇 및/또는 로봇과 통신하는 하나 이상의 컴퓨팅 디바이스의 다양한 컴포넌트를 포함할 수 있다. 더욱이, 방법(600)의 동작들이 특정한 순서로 도시되어 있지만, 이것은 제한적인 의미가 아니다. 하나 이상의 동작이 재정렬되거나, 생략되거나 추가될 수 있다.
도 6의 방법(600)은 수신된 신경망 모델의 개정된 버전에 대한 피쳐 모델을 조정하는 한 예를 도시하고, 여기서 피쳐 모델은 신경망 모델의 과거 버전(들)과 연관된 과거 보정에 기초하여 조정된다. 예를 들어, 방법(600)은 도 3의 블록 368의 구현의 한 예를 나타낸다.
블록 652에서, 시스템은, 신경망 모델의 개정된 버전, 및 신경망 모델의 개정된 버전에 대응하는 피쳐 모델을 수신한다.
블록 654에서, 시스템은 과거 시각 센서 데이터 및 과거 시각 센서 데이터에 대한 대응하는 보정 상세사항(들)을 선택한다. 과거 시각 센서 데이터 및 보정 상세사항(들)은 신경망 모델의 이전 버전에 기초하여 결정된 이전 인간 보정에 응답하여 시스템에 의해 미리 저장된다. 예를 들어, 보정 상세사항(들)은 시각 센서 데이터에 의해 포착된 물체에 대한 정확한 분류를 포함할 수 있고, 이전의 인간 보정에 기초할 수 있다. 이전의 인간 보정은 피쳐 모델의 이전 버전을 업데이트하는데 이용되었을 수 있다. 예를 들어, 시스템은, 시각 센서 데이터에 기초하여 신경망 모델의 이전 버전에 관해 생성된 임베딩과 더욱 유사하도록 하기 위해, 피쳐 모델의 이전 버전의 피쳐 임베딩을 미리 조정했을 수 있다.
블록 656에서, 시스템은 시각 센서 데이터를 신경망 모델의 개정된 버전에 적용하는 것에 기초하여 임베딩을 생성한다. 블록 656에서 생성된 임베딩은, 신경망 모델의 개정된 버전이 추가로 훈련된다는 사실로 인해, 신경망 모델의 이전 버전에 관해 생성된 임베딩과 아마도 상이할 것임을 이해할 것이다.
블록 658에서, 시스템은, 블록 656의 임베딩에 기초하여, 피쳐 모델(들)의 보정 상세사항(들)에 맵핑된 피쳐 임베딩(들)을 업데이트한다. 예를 들어, 블록 654의 보정 상세사항(들)이 정확한 분류를 포함하는 경우, 그 정확한 분류에 맵핑된 분류 임베딩은 블록 656의 임베딩과 더 유사하도록 조정될 수 있다.
블록 660에서, 시스템은, 추가적인 과거 시각 센서 데이터 및 대응하는 보정 상세사항(들) 인스턴스가 남아있는지를 결정한다. 만일 그렇다면, 시스템은 블록들(654, 656 및 658)로 되돌아 가서 (신경망 모델의 개정된 버전에 비추어) 그 인스턴스에 기초하여 피쳐 모델을 추가로 업데이트한다. 만일 그렇지 않다면, 시스템은, 신경망 모델(및 대응하는 피쳐 모델)의 추가 개정된 버전이 수신될 때까지 방법(600)을 종료할 수 있으며, 그 시점에서 방법(600)이 반복될 수 있다.
도 7은 로봇(700)의 예시적인 아키텍쳐를 개략적으로 도시한다. 도 1의 로봇(190) 및/또는 추가 로봇(192)은 도 7의 예시적인 아키텍쳐의 하나 이상의 컴포넌트를 구현할 수 있다. 로봇(700)은, 로봇 제어 시스템(760), 하나 이상의 동작 컴포넌트들(704a-704n), 및 하나 이상의 센서들(708a-708m)을 포함한다. 센서들(708a-708m)은, 예를 들어, 시각 센서(예를 들어, 카메라(들), 3D 스캐너), 광 센서, 압력 센서, 압력파 센서(예를 들어, 마이크로폰), 근접 센서, 가속도계, 자이로스코프, 온도계, 기압계 등을 포함할 수 있다. 센서들(708a-708m)이 로봇(700)과 일체인 것으로 도시되어 있지만, 이것은 제한적인 것을 의미하지 않는다. 일부 구현들에서, 센서들(708a-708m)은, 예를 들어 독립형 유닛들로서, 로봇(700)의 외부에 위치할 수 있다.
동작 컴포넌트들(704a-704n)은, 예를 들어, 로봇의 하나 이상의 컴포넌트들의 이동을 수행하기 위해 하나 이상의 말단 작동기(예를 들어, 집기용 말단 작동기) 및/또는 하나 이상의 서보 모터 또는 다른 액츄에이터들을 포함할 수 있다. 예를 들어, 로봇(700)은 복수의 자유도를 가질 수 있고 액츄에이터들 각각은 제어 명령에 응답하여 하나 이상의 자유도 내에서 로봇(700)의 작동을 제어할 수 있다. 본 명세서에서 사용될 때, 액츄에이터라는 용어는, 액츄에이터와 연관될 수 있고 수신된 제어 명령을 액츄에이터를 구동하기 위한 하나 이상의 신호로 변환하는 임의의 드라이버(들)에 추가하여, 움직임을 생성하는 기계적 또는 전기적 디바이스(예를 들어, 모터)를 포괄한다. 따라서, 액츄에이터에 제어 명령을 제공하는 것은, 제어 명령을, 전기적 또는 기계적 디바이스를 구동하여 원하는 움직임을 생성하기 위한 적절한 신호로 변환하는 드라이버에 제어 명령을 제공하는 것을 포함할 수 있다.
제어 시스템(702)은, 로봇(700)의 CPU, GPU 및/또는 기타의 제어기(들) 등의 하나 이상의 프로세서로 구현될 수 있다. 일부 구현들에서, 로봇(700)은 제어 시스템(702)의 전부 또는 양태들을 포함할 수 있는 "브레인 박스"를 포함할 수 있다. 예를 들어, 브레인 박스는, 동작 컴포넌트들(704a-n)에 실시간 데이터 버스트를 제공할 수 있고, 실시간 버스트들 각각은, 특히 하나 이상의 동작 컴포넌트(704a-n) 각각에 대하여 (있다면) 움직임의 피쳐들을 지시하는 하나 이상의 제어 명령들의 세트를 포함한다.
제어 시스템(702)이 도 7에서는 로봇(700)의 필수 부분으로서 도시되어 있지만, 일부 구현들에서, 제어 시스템(702)의 전부 또는 양태들은, 로봇과는 분리되어 있지만 로봇(700)과 통신하는 컴포넌트로 구현될 수 있다. 예를 들어, 제어 시스템(702)의 전부 또는 양태들은, 컴퓨팅 디바이스(810) 등의, 로봇(700)과 유선 및/또는 무선 통신하는 하나 이상의 컴퓨팅 디바이스에서 구현될 수 있다.
일부 구현들에서, 제어 시스템(702)은 도 1의 하나 이상의 컴포넌트(103)를 기능적으로 구현하거나 및/또는 이와 인터페이스한다. 예를 들어, 제어 시스템(702)은, 피쳐 모듈(121A-N), 계획 모듈(122), 명령 모듈(123), UI 입력 모듈(124), UI 출력 모듈(125), 로컬 업데이트 모듈(126), 보정 인스턴스 엔진(130), 및/또는 로봇 데이터 엔진(135)을 구현할 수 있다. 또한, 예를 들어, 제어 시스템(702)은 (예를 들어, 네트워크 인터페이스(715)를 통해) NLP 시스템(133)과 인터페이스할 수 있다. 신경망 모델들(150A-N) 중 하나 이상은 로봇(700)에 로컬 저장될 수 있고 제어 시스템(702)에 액세스가능할 수 있다.
도 8은 본 명세서에서 설명된 기술들의 하나 이상의 양태를 수행하기 위해 선택사항으로서 이용될 수 있는 예시적인 컴퓨팅 디바이스(810)의 블록도이다. 컴퓨팅 디바이스(810)는, 전형적으로, 버스 서브시스템(812)을 통해 다수의 주변 디바이스와 통신하는 적어도 하나의 프로세서(814)를 포함한다. 이들 주변 디바이스들은, 예를 들어, 메모리 서브시스템(825) 및 파일 저장 서브시스템(826), 사용자 인터페이스 출력 디바이스(820), 사용자 인터페이스 입력 디바이스(822), 및 네트워크 인터페이스 서브시스템(816)을 포함하는 저장 서브시스템(824)을 포함할 수 있다. 입력 및 출력 디바이스는 컴퓨팅 디바이스(810)와의 사용자 상호작용을 허용한다. 네트워크 인터페이스 서브시스템(816)은, 외부 네트워크에 대한 인터페이스를 제공하고 다른 컴퓨팅 디바이스의 대응하는 인터페이스 디바이스에 결합된다.
사용자 인터페이스 입력 디바이스(822)는, 키보드, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿 등의 포인팅 디바이스, 스캐너, 디스플레이에 통합된 터치스크린, 음성 인식 시스템, 마이크로폰, 등의 오디오 입력 디바이스, 및/또는 다른 유형의 입력 디바이스들을 포함할 수 있다. 일반적으로, "입력 디바이스"라는 용어의 사용은, 모든 가능한 유형의 디바이스 및 정보를 컴퓨팅 디바이스(810) 또는 통신 네트워크에 입력하는 방식들을 포함하는 것으로 의도된다.
사용자 인터페이스 출력 디바이스(820)는, 디스플레이 서브시스템, 프린터, 팩스기, 또는 오디오 출력 디바이스 등의 비-시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은, 음극선관(CRT), 액정 디스플레이(LCD) 등의 평판 디바이스, 투사 디바이스, 또는 가시 이미지를 생성하기 위한 어떤 다른 메커니즘을 포함할 수 있다. 디스플레이 서브시스템은 또한, 오디오 출력 디바이스를 통해서 등의, 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, "출력 디바이스"라는 용어의 사용은, 모든 가능한 유형의 디바이스 및 컴퓨팅 디바이스(810)로부터 사용자로 또는 또 다른 머신 또는 컴퓨팅 디바이스로 정보를 출력하는 방식들을 포함하는 것으로 의도된다.
저장 서브시스템(824)은, 본 명세서에서 설명된 모듈들의 일부 또는 전부의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브시스템(824)은 본 명세서에서 설명된 방법들의 선택된 양태들을 수행하는 로직을 포함할 수 있다.
이들 소프트웨어 모듈들은 일반적으로 프로세서(814) 단독에 의해 또는 다른 프로세서들과 조합하여 실행된다. 저장 서브시스템(824)에서 이용되는 메모리(825)는, 프로그램 실행 동안 명령어 및 데이터의 저장을 위한 메인 랜덤 액세스 메모리(RAM)(830) 및 고정된 명령어들이 저장되는 판독 전용 메모리(ROM)(832)를 포함한 다수의 메모리를 포함할 수 있다. 파일 저장 서브시스템(826)은, 프로그램 및 데이터 파일을 위한 영구 저장소를 제공할 수 있고, 하드 디스크 드라이브, 연관된 착탈식 매체와 함께 플로피 디스크 드라이브, CD-ROM 드라이브, 광학 드라이브, 또는 착탈식 매체 카트리지를 포함할 수 있다. 소정의 구현들의 기능을 구현하는 모듈들은, 저장 서브시스템(824) 내의, 또는 프로세서(들)(814)에 의해 액세스가능한 기타의 머신들 내의 파일 저장 서브시스템(826)에 의해 저장될 수 있다.
버스 서브시스템(812)은 컴퓨팅 디바이스(810)의 다양한 컴포넌트들 및 서브시스템들이 의도한대로 서로 통신하게 하는 메커니즘을 제공한다. 버스 서브시스템(812)이 단일의 버스로서 개략적으로 도시되어 있지만, 버스 서브시스템의 대안적인 구현은 복수의 버스를 이용할 수도 있다.
컴퓨팅 디바이스(810)는, 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜, 또는 기타 임의의 데이터 처리 시스템 또는 컴퓨팅 디바이스를 포함한 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 속성으로 인해, 도 8에 도시된 컴퓨팅 디바이스(810)의 설명은 일부 구현을 예시하기 위한 목적으로 특정한 예로서만 의도된 것이다. 컴퓨팅 디바이스(810)의 많은 다른 구성들은 도 8에 도시된 컴퓨팅 디바이스보다 더 많거나 더 적은 수의 컴포넌트를 가질 수 있다.
수 개의 구현들이 여기서 설명되고 예시되었지만, 기능을 수행하거나 및/또는 결과 및/또는 여기서 설명된 이점들 중 하나 이상을 획득하기 위한 다양한 다른 수단 및/또는 구조가 이용될 수 있고, 이러한 변형들 및/또는 수정들 각각은 여기서 설명된 구현들의 범위 내에 있는 것으로 간주된다. 더 일반적으로, 여기서 설명된 모든 피쳐들, 치수들, 재료들 및 구성들은 예시를 위한 것이며, 실제적인 피쳐들, 치수들, 재료들 및/또는 구성들은 본 교시가 이용되기 위한 특정한 응용이나 응용들에 의존할 것이다. 본 기술분야의 통상의 기술자라면, 단지 일상적인 실험만을 이용하여, 여기서 설명된 특정한 구현들에 대한 많은 균등물을 인식하거나, 확인할 수 있을 것이다. 따라서, 상기 구현들은 예시로서 제시된 것일 뿐이며, 첨부된 청구항들과 그 균등물의 범위 내에서, 구현들은 구체적으로 설명되고 청구된 것과는 다른 방식으로 실시될 수도 있다는 것을 이해해야 한다. 본 개시내용의 구현들은 여기서 설명된 각각의 개별적인 피쳐, 시스템, 항목, 재료, 키트, 및/또는 방법에 관한 것이다. 또한, 2개 이상의 이러한 피쳐, 시스템, 항목, 재료, 키트 및/또는 방법의 임의의 조합은, 이러한 피쳐, 시스템, 항목, 재료, 키트 및/또는 방법이 상호 불일치하지 않는다면, 본 개시내용의 범위 내에 포함된다.

Claims (22)

  1. 로봇의 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    상기 로봇의 환경 내의 물체에 대한 분류를 결정하는 단계 ―상기 분류를 결정하는 단계는,
    상기 로봇의 하나 이상의 컴퓨터 판독가능한 매체 상에 로컬 저장된 신경망 모델에 대한 입력으로서, 상기 물체를 포착하고 상기 로봇의 적어도 하나의 센서에 의해 생성되는 센서 데이터를 적용하는 단계,
    상기 적용에 기초하여 상기 신경망 모델을 통해, 상기 센서 데이터의 임베딩을 생성하는 단계,
    상기 로봇의 하나 이상의 컴퓨터 판독가능한 매체 상에 로컬 저장된 분류 모델에 상기 센서 데이터의 임베딩을 적용하는 단계, 및
    상기 임베딩을 상기 분류 모델에 적용하는 것에 기초하여 상기 분류를 결정하는 단계
    를 포함함―;
    상기 물체를 향한, 상기 로봇에 의한 행동의 수행 동안에, 사용자 인터페이스 입력을 수신하는 단계;
    상기 사용자 인터페이스 입력이 상기 물체의 분류가 부정확함을 나타낸다고 결정하는 단계; 및
    상기 사용자 인터페이스 입력이 상기 물체의 분류가 부정확함을 나타낸다고 결정하는 단계에 응답하여 :
    상기 로컬 저장된 분류 모델을 업데이트하는 단계
    를 포함하고, 상기 로컬 저장된 분류 모델을 업데이트하는 단계는 상기 신경망 모델의 재훈련없이 발생하는, 방법.
  2. 제1항에 있어서, 상기 사용자 인터페이스 입력이 상기 물체의 분류가 부정확함을 나타낸다고 결정하는 단계는,
    상기 사용자 인터페이스 입력이 상기 결정된 분류와 상충되는 상기 물체의 대안적인 분류를 나타낸다고 결정하는 단계를 포함하는, 방법.
  3. 제2항에 있어서, 상기 로컬 저장된 분류 모델을 업데이트하는 단계는, 상기 대안적인 분류에 기초하여 상기 로컬 저장된 분류 모델을 업데이트하는 단계를 포함하는, 방법.
  4. 제3항에 있어서, 상기 대안적인 분류에 기초하여 상기 로컬 저장된 분류 모델을 업데이트하는 단계는,
    상기 로컬 저장된 분류 모델에서 상기 대안적인 분류에 맵핑되는 현재의 대안적인 분류 임베딩을 식별하는 단계; 및
    상기 대안적인 분류 임베딩에 기초하여 및 상기 센서 데이터의 임베딩에 기초하여 조정된 대안적인 분류 임베딩을 결정하는 단계
    를 포함하는, 방법.
  5. 제4항에 있어서, 상기 대안적인 분류 임베딩에 기초하여 및 상기 센서 데이터의 임베딩에 기초하여 조정된 대안적인 분류 임베딩을 결정하는 단계는,
    상기 대안적인 분류 임베딩과 상기 센서 데이터의 임베딩의 평균에 기초하여 상기 조정된 대안적인 분류 임베딩을 결정하는 단계를 포함하는, 방법.
  6. 제4항에 있어서,
    상기 센서 데이터 및 상기 대안적인 분류를 저장하는 단계;
    상기 로컬 저장된 분류 모델을 업데이트하는 단계 후 :
    상기 신경망 모델의 새로운 버전 및 상기 분류 모델의 새로운 버전을 수신하는 단계;
    상기 센서 데이터를 상기 신경망 모델의 상기 새로운 버전에 대한 입력으로서 적용하는 단계;
    상기 적용에 기초하여, 상기 신경망 모델의 상기 새로운 버전을 통해, 상기 센서 데이터의 새로운 임베딩을 생성하는 단계;
    상기 분류 모델의 상기 새로운 버전에서, 상기 대안적인 분류의 새로운 대안적인 분류 임베딩을 식별하는 단계;
    상기 분류 모델의 상기 새로운 버전에서, 상기 센서 데이터의 상기 새로운 임베딩에 기초하여 상기 대안적인 분류의 상기 새로운 대안적인 분류 임베딩을 조정하는 단계
    를 더 포함하는 방법.
  7. 제3항에 있어서, 상기 대안적인 분류에 기초하여 상기 로컬 저장된 분류 모델을 업데이트하는 단계는,
    상기 로컬 저장된 분류 모델이 상기 대안적인 분류에 대한 임의의 대안적인 분류 임베딩이 결여되어 있다고 결정하는 단계; 및
    응답으로, 대안적인 분류 임베딩 ―상기 대안적인 분류 임베딩은 상기 센서 데이터의 상기 임베딩에 기초함― 을 상기 로컬 저장된 분류 모델에 저장하는 단계
    를 포함하는, 방법.
  8. 제3항에 있어서, 상기 로컬 저장된 분류 모델을 업데이트하는 단계는,
    상기 신경망 모델에 대한 입력으로서, 상기 물체를 포착하고 상기 로봇의 상기 센서에 의해 생성되는 추가 센서 데이터를 적용하는 단계;
    상기 적용에 기초하여 상기 신경망 모델을 통해, 상기 추가 센서 데이터의 추가 임베딩을 생성하는 단계; 및
    상기 추가 임베딩 및 상기 대안적인 분류에 기초하여 상기 로컬 저장된 분류 모델을 업데이트하는 단계
    를 더 포함하는, 방법.
  9. 제1항에 있어서, 상기 임베딩을 상기 분류 모델에 적용하는 것에 기초하여 상기 분류를 결정하는 단계는 :
    상기 임베딩이 대안적인 분류들에 맵핑된 대안적인 분류 임베딩들보다 상기 분류에 맵핑된 분류 임베딩과 더 유사하다는 결정에 기초하여 상기 분류를 결정하는 단계
    를 포함하는, 방법.
  10. 제9항에 있어서, 상기 로컬 저장된 분류 모델을 업데이트하는 단계는 :
    상기 분류 임베딩을 상기 임베딩과 덜 유사하게 수정하는 것에 기초하여 상기 분류에 대한 조정된 분류 임베딩을 결정하는 단계를 포함하는, 방법.
  11. 로봇의 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    상기 로봇의 하나 이상의 컴퓨터 판독가능한 매체 상에 로컬 저장된 신경망 모델에 대한 입력으로서, 물체를 포착하고 상기 로봇의 적어도 하나의 센서에 의해 생성되는 센서 데이터를 적용하는 단계;
    상기 적용에 기초하여 상기 신경망 모델을 통해, 상기 센서 데이터의 임베딩을 생성하는 단계;
    상기 로봇의 상기 하나 이상의 컴퓨터 판독가능한 매체 상에 로컬 저장된 피쳐 모델에 상기 임베딩을 적용하는 것에 기초하여 상기 센서 데이터의 피쳐를 결정 ―상기 피쳐 모델은 상기 피쳐를 상기 피쳐의 피쳐 임베딩에 맵핑하고 추가 피쳐들을 대응하는 추가 피쳐 임베딩들에 맵핑함― 하는 단계 ―상기 피쳐를 결정하는 단계는
    상기 피쳐에 맵핑된 상기 피쳐 임베딩에 대한 상기 센서 데이터의 상기 임베딩의 유사성에 기초하여 상기 피쳐를 결정하는 단계를 포함함―;
    상기 결정된 피쳐에 기초하여, 상기 물체를 향한 로봇 행동을 수행하는 단계;
    상기 물체를 향한 상기 로봇 행동의 수행에 응답하여 사용자 인터페이스 입력을 수신하는 단계;
    상기 사용자 인터페이스 입력이 상기 추가 피쳐들 중의 특정한 추가 피쳐를 나타낸다고 결정하는 단계;
    상기 사용자 인터페이스 입력이 상기 특정한 추가 피쳐를 나타낸다고 결정하는 것에 응답하여 :
    상기 피쳐 모델에서, 상기 센서 데이터의 상기 임베딩에 기초하여 상기 특정한 추가 피쳐의 추가 피쳐 임베딩을 조정하는 단계
    를 포함하는 방법.
  12. 제11항에 있어서, 상기 피쳐는 제1 분류이고 상기 특정한 추가 피쳐는 제2 분류인, 방법.
  13. 제11항에 있어서, 상기 피쳐는 제1 경계 영역이고, 상기 추가 피쳐는 제2 경계 영역인, 방법.
  14. 제13항에 있어서, 상기 제1 경계 영역은 복수의 제1 픽셀에 의해 정의되고, 상기 제2 경계 영역은 복수의 제2 픽셀에 의해 정의되는, 방법.
  15. 제13항에 있어서, 상기 사용자 인터페이스 입력은, 사용자가 클라이언트 컴퓨팅 디바이스를 통해 상기 제2 경계 영역을 표시하는 것에 기초하여 상기 클라이언트 컴퓨팅 디바이스에서 생성되고, 상기 제2 경계 영역은 상기 센서 데이터에 기초하는 이미지의 디스플레이 동안에 상기 클라이언트 디바이스를 통해 표시되는, 방법.
  16. 제15항에 있어서, 상기 로봇 행동이 부정확하다는 것을 나타내는 초기 사용자 인터페이스 입력에 응답하여 상기 이미지를 상기 클라이언트 디바이스에 제공하는 단계를 더 포함하는 방법.
  17. 로봇의 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    상기 로봇의 하나 이상의 컴퓨터 판독가능한 매체 상에 로컬 저장된 신경망 모델에 대한 입력으로서, 상기 물체를 포착하고 상기 로봇의 적어도 하나의 센서에 의해 생성되는 센서 데이터를 적용하는 단계,
    상기 적용에 기초하여 상기 신경망 모델을 통해, 상기 센서 데이터의 임베딩을 생성하는 단계;
    상기 로봇의 상기 하나 이상의 컴퓨터 판독가능한 매체 상에 로컬 저장된 피쳐 모델에 상기 임베딩을 적용하는 것에 기초하여 상기 센서 데이터의 피쳐를 결정 ―상기 피쳐 모델은 상기 피쳐를 상기 피쳐의 피쳐 임베딩에 맵핑하고 추가 피쳐들을 대응하는 추가 피쳐 임베딩들에 맵핑함― 하는 단계 ―상기 피쳐를 결정하는 단계는,
    상기 피쳐에 맵핑된 상기 피쳐 임베딩이 상기 추가 피쳐 임베딩들 중 임의의 것보다 상기 센서 데이터의 상기 임베딩과 더 유사하다는 것에 기초하여 상기 피쳐를 결정하는 단계를 포함함―;
    상기 결정된 피쳐에 기초하여 로봇 행동을 수행하는 단계;
    상기 로봇 행동의 수행에 응답하여 사용자 인터페이스 입력을 수신하는 단계;
    상기 로봇 행동이 부정확함을 상기 사용자 인터페이스 입력이 나타낸다고 결정하는 단계;
    상기 로봇 행동이 부정확함을 상기 사용자 인터페이스 입력이 나타낸다고 결정하는 것에 응답하여 :
    상기 센서 데이터의 임베딩에 기초하여 상기 로컬 저장된 피쳐 모델을 업데이트하는 단계,
    상기 센서 데이터를 포함하는 보정 인스턴스를 생성하는 단계, 및
    네트워크 인터페이스를 통해 상기 보정 인스턴스를 하나 이상의 원격 컴퓨팅 디바이스에 전송하는 단계
    를 포함하고, 상기 하나 이상의 원격 컴퓨팅 디바이스는 상기 보정 인스턴스를 이용하여 상기 신경망 모델의 개정된 버전을 생성하기 위한 적어도 하나의 훈련 예를 생성하는, 방법.
  18. 제17항에 있어서,
    상기 신경망 모델이
    상기 훈련 예, 및
    추가 로봇들로부터의 추가 보정 인스턴스들로부터의 추가 훈련 예들
    에 기초하여 훈련된 이후에, 상기 네트워크 인터페이스를 통해, 상기 신경망 모델의 개정된 버전을 수신하는 단계를 더 포함하는, 방법.
  19. 제17항에 있어서, 상기 결정된 피쳐가 부정확함을 상기 사용자 인터페이스 입력이 나타낸다고 결정하는 단계는,
    상기 사용자 인터페이스 입력이 상기 결정된 피쳐와 상충되는 상기 추가 피쳐들 중의 추가 피쳐를 나타낸다고 결정하는 단계를 포함하는, 방법.
  20. 제19항에 있어서, 상기 센서 데이터의 상기 임베딩에 기초하여 상기 로컬 저장된 피쳐 모델을 업데이트하는 단계는,
    상기 센서 데이터의 상기 임베딩에 기초하여 추가 피쳐 임베딩을 조정하는 단계를 포함하고, 상기 추가 피쳐 임베딩은 상기 추가 피쳐 임베딩들 중 하나이고 상기 로컬 저장된 피쳐 모델에서 상기 추가 피쳐에 맵핑되는, 방법.
  21. 제20항에 있어서, 상기 보정 인스턴스는 상기 추가 피쳐의 표시를 포함하는, 방법.
  22. 제18항에 있어서, 상기 시각 센서 데이터의 상기 임베딩에 기초하여 상기 로컬 저장된 피쳐 모델을 업데이트하는 단계는,
    상기 추가 피쳐가 상기 로컬 저장된 피쳐 모델에서 상기 추가 피쳐 임베딩들 중 어느 것에도 맵핑되지 않는다고 결정하는 단계; 및
    응답으로, 상기 추가 피쳐에 대한 특정한 피쳐 임베딩 ―상기 특정한 피쳐 임베딩은 상기 시각 센서 데이터의 상기 임베딩에 기초함― 을 상기 로컬 저장된 피쳐 모델에 저장하는 단계
    를 포함하는 방법.
KR1020197038773A 2017-07-03 2018-07-02 로봇 행동 보정에 기초한 로컬 피쳐 모델의 업데이트 KR102472592B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227041549A KR102517457B1 (ko) 2017-07-03 2018-07-02 로봇 행동 보정에 기초한 로컬 피쳐 모델의 업데이트

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/640,936 2017-07-03
US15/640,936 US11106967B2 (en) 2017-07-03 2017-07-03 Update of local features model based on correction to robot action
PCT/US2018/040644 WO2019010137A1 (en) 2017-07-03 2018-07-02 UPDATING A MODEL OF LOCAL CHARACTERISTICS BASED ON A CORRECTION OF ROBOT ACTION

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227041549A Division KR102517457B1 (ko) 2017-07-03 2018-07-02 로봇 행동 보정에 기초한 로컬 피쳐 모델의 업데이트

Publications (2)

Publication Number Publication Date
KR20200014368A true KR20200014368A (ko) 2020-02-10
KR102472592B1 KR102472592B1 (ko) 2022-12-01

Family

ID=62976371

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227041549A KR102517457B1 (ko) 2017-07-03 2018-07-02 로봇 행동 보정에 기초한 로컬 피쳐 모델의 업데이트
KR1020197038773A KR102472592B1 (ko) 2017-07-03 2018-07-02 로봇 행동 보정에 기초한 로컬 피쳐 모델의 업데이트

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227041549A KR102517457B1 (ko) 2017-07-03 2018-07-02 로봇 행동 보정에 기초한 로컬 피쳐 모델의 업데이트

Country Status (5)

Country Link
US (3) US11106967B2 (ko)
EP (1) EP3625730A1 (ko)
JP (2) JP6963041B2 (ko)
KR (2) KR102517457B1 (ko)
WO (1) WO2019010137A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023075351A1 (ko) * 2021-10-25 2023-05-04 (주)바질컴퍼니 산업용 로봇의 인공지능 학습 방법

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10562181B2 (en) 2017-07-03 2020-02-18 X Development Llc Determining and utilizing corrections to robot actions
US11106967B2 (en) 2017-07-03 2021-08-31 X Development Llc Update of local features model based on correction to robot action
JP6676030B2 (ja) * 2017-11-20 2020-04-08 株式会社安川電機 把持システム、学習装置、把持方法、及び、モデルの製造方法
WO2019107455A1 (ja) * 2017-11-28 2019-06-06 川崎重工業株式会社 技能伝承機械装置
US10682774B2 (en) 2017-12-12 2020-06-16 X Development Llc Sensorized robotic gripping device
US10792809B2 (en) * 2017-12-12 2020-10-06 X Development Llc Robot grip detection using non-contact sensors
US10981272B1 (en) * 2017-12-18 2021-04-20 X Development Llc Robot grasp learning
US10754318B2 (en) * 2017-12-21 2020-08-25 X Development Llc Robot interaction with objects based on semantic information associated with embedding spaces
WO2019133743A1 (en) * 2017-12-27 2019-07-04 Drive.Ai Inc Method for accessing supplemental perception data from other vehicles
US11475291B2 (en) * 2017-12-27 2022-10-18 X Development Llc Sharing learned information among robots
US11097418B2 (en) 2018-01-04 2021-08-24 X Development Llc Grasping of an object by a robot based on grasp strategy determined using machine learning model(s)
JP7106997B2 (ja) * 2018-06-04 2022-07-27 日本電信電話株式会社 データ分析システムおよびデータ分析方法
US11636123B2 (en) * 2018-10-05 2023-04-25 Accenture Global Solutions Limited Density-based computation for information discovery in knowledge graphs
JP7135750B2 (ja) * 2018-11-12 2022-09-13 富士通株式会社 学習プログラム、学習方法、学習装置、検知プログラム、検知方法及び検知装置
JP7047726B2 (ja) * 2018-11-27 2022-04-05 トヨタ自動車株式会社 把持ロボットおよび把持ロボットの制御プログラム
KR20190104488A (ko) * 2019-08-21 2019-09-10 엘지전자 주식회사 인공 지능을 이용하여, 오브젝트의 이동을 관리하는 인공 지능 로봇 및 그의 동작 방법
JP7021158B2 (ja) * 2019-09-04 2022-02-16 株式会社東芝 ロボットシステムおよび駆動方法
CN115038554A (zh) * 2019-11-22 2022-09-09 西门子股份公司 基于传感器的用于自主机器的复杂场景的构建
US20230004797A1 (en) 2020-03-10 2023-01-05 Sri International Physics-guided deep multimodal embeddings for task-specific data exploitation
WO2023212260A1 (en) * 2022-04-28 2023-11-02 Theai, Inc. Agent-based training of artificial intelligence character models
JP2024077442A (ja) 2022-11-28 2024-06-07 富士通株式会社 対象検出プログラム、装置、及び機械学習モデル生成方法
CN116330310B (zh) * 2023-02-14 2023-11-07 河南泽远网络科技有限公司 一种低延时机器人交互方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160063393A1 (en) * 2014-08-26 2016-03-03 Google Inc. Localized learning from a global model
US20160217349A1 (en) * 2015-01-22 2016-07-28 Microsoft Technology Licensing, Llc. Optimizing multi-class multimedia data classification using negative data
US20180114334A1 (en) * 2016-10-24 2018-04-26 International Business Machines Corporation Edge-based adaptive machine learning for object recognition

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3211186B2 (ja) 1997-12-15 2001-09-25 オムロン株式会社 ロボット、ロボットシステム、ロボットの学習方法、ロボットシステムの学習方法および記録媒体
JP2001322079A (ja) 2000-05-15 2001-11-20 Sony Corp 脚式移動ロボット及びその動作教示方法
WO2011080882A1 (ja) 2009-12-28 2011-07-07 パナソニック株式会社 動作空間提示装置、動作空間提示方法およびプログラム
FR2962048A1 (fr) * 2010-07-02 2012-01-06 Aldebaran Robotics S A Robot humanoide joueur, methode et systeme d'utilisation dudit robot
US20120130541A1 (en) 2010-09-07 2012-05-24 Szalek Leszek A Method and apparatus for robot teaching
US8781629B2 (en) * 2010-09-22 2014-07-15 Toyota Motor Engineering & Manufacturing North America, Inc. Human-robot interface apparatuses and methods of controlling robots
US9015092B2 (en) 2012-06-04 2015-04-21 Brain Corporation Dynamically reconfigurable stochastic learning apparatus and methods
US8996167B2 (en) 2012-06-21 2015-03-31 Rethink Robotics, Inc. User interfaces for robot training
JP2014106597A (ja) * 2012-11-26 2014-06-09 Toyota Motor Corp 自律移動体、物体情報取得装置、および物体情報取得方法
EP2967322A4 (en) * 2013-03-11 2017-02-08 Magic Leap, Inc. System and method for augmented and virtual reality
US9764468B2 (en) 2013-03-15 2017-09-19 Brain Corporation Adaptive predictor apparatus and methods
US9792546B2 (en) 2013-06-14 2017-10-17 Brain Corporation Hierarchical robotic controller apparatus and methods
WO2015013283A2 (en) 2013-07-22 2015-01-29 Texas State University Autonomous performance optimization in robotic assembly process
CN106462655B (zh) * 2013-11-13 2019-04-05 皇家飞利浦有限公司 临床诊断支持网络、系统及方法
US9358685B2 (en) 2014-02-03 2016-06-07 Brain Corporation Apparatus and methods for control of robot actions based on corrective user inputs
US10043112B2 (en) * 2014-03-07 2018-08-07 Qualcomm Incorporated Photo management
US9346168B2 (en) 2014-05-20 2016-05-24 International Business Machines Corporation Information technology asset type identification using a mobile vision-enabled robot
US9630318B2 (en) 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
JP2016101612A (ja) 2014-11-27 2016-06-02 トヨタ自動車株式会社 物品搬送用ロボット
CN107924487A (zh) 2015-04-17 2018-04-17 情感爱思比株式会社 处理系统以及程序
JP6249247B2 (ja) 2016-02-29 2017-12-20 ソニー株式会社 制御装置、制御方法、およびプログラム
CN108885715B (zh) 2016-03-03 2020-06-26 谷歌有限责任公司 用于机器人抓取的深度机器学习方法和装置
WO2018017612A1 (en) 2016-07-18 2018-01-25 Lael Odhner Training robotic manipulators
US10360531B1 (en) 2016-12-19 2019-07-23 Amazon Technologies, Inc. Robot implemented item manipulation
US11106967B2 (en) 2017-07-03 2021-08-31 X Development Llc Update of local features model based on correction to robot action

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160063393A1 (en) * 2014-08-26 2016-03-03 Google Inc. Localized learning from a global model
US20160217349A1 (en) * 2015-01-22 2016-07-28 Microsoft Technology Licensing, Llc. Optimizing multi-class multimedia data classification using negative data
US20180114334A1 (en) * 2016-10-24 2018-04-26 International Business Machines Corporation Edge-based adaptive machine learning for object recognition

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023075351A1 (ko) * 2021-10-25 2023-05-04 (주)바질컴퍼니 산업용 로봇의 인공지능 학습 방법

Also Published As

Publication number Publication date
JP6963041B2 (ja) 2021-11-05
KR102472592B1 (ko) 2022-12-01
EP3625730A1 (en) 2020-03-25
US20190005374A1 (en) 2019-01-03
US20230281422A1 (en) 2023-09-07
JP2020526819A (ja) 2020-08-31
JP2022019721A (ja) 2022-01-27
WO2019010137A1 (en) 2019-01-10
KR20220164082A (ko) 2022-12-12
US20210390371A1 (en) 2021-12-16
US11106967B2 (en) 2021-08-31
KR102517457B1 (ko) 2023-04-03
JP7213934B2 (ja) 2023-01-27
US11640517B2 (en) 2023-05-02
KR20230050470A (ko) 2023-04-14

Similar Documents

Publication Publication Date Title
KR102472592B1 (ko) 로봇 행동 보정에 기초한 로컬 피쳐 모델의 업데이트
KR102365465B1 (ko) 로봇 행동들에 대한 보정들의 결정 및 이용
US11691273B2 (en) Generating a model for an object encountered by a robot
US20230398690A1 (en) Efficient robot control based on inputs from remote client devices
CN112847336B (zh) 动作学习方法、装置、存储介质及电子设备
KR102720866B1 (ko) 로봇 행동 보정에 기초한 로컬 피쳐 모델의 업데이트
US20240367313A1 (en) Determining and utilizing corrections to robot actions

Legal Events

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