KR20210138170A - 로봇 행동들에 대한 보정들의 결정 및 이용 - Google Patents

로봇 행동들에 대한 보정들의 결정 및 이용 Download PDF

Info

Publication number
KR20210138170A
KR20210138170A KR1020217037021A KR20217037021A KR20210138170A KR 20210138170 A KR20210138170 A KR 20210138170A KR 1020217037021 A KR1020217037021 A KR 1020217037021A KR 20217037021 A KR20217037021 A KR 20217037021A KR 20210138170 A KR20210138170 A KR 20210138170A
Authority
KR
South Korea
Prior art keywords
robot
user interface
calibration
instance
objects
Prior art date
Application number
KR1020217037021A
Other languages
English (en)
Other versions
KR102365465B1 (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 KR20210138170A publication Critical patent/KR20210138170A/ko
Application granted granted Critical
Publication of KR102365465B1 publication Critical patent/KR102365465B1/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/1602Programme controls characterised by the control system, structure, architecture
    • 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/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration 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/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
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • G05B13/027Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
    • 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
    • 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
    • G06N3/045Combinations of networks
    • G06N3/0454
    • 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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33036Error back propagation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33037Learn parameters of network offline, not while controlling system

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Robotics (AREA)
  • Software Systems (AREA)
  • Mechanical Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Automation & Control Theory (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Fuzzy Systems (AREA)
  • Manipulator (AREA)
  • Feedback Control In General (AREA)

Abstract

로봇 행동에 대한 인간 보정을 결정 및 이용하기 위한 방법, 장치, 및 컴퓨터 판독가능한 매체가 개시된다. 일부 구현들에서, 로봇 행동의 인간 보정을 결정하는 것에 응답하여, 로봇의 하나 이상의 센서들에 의해 포착되고 보정된 행동에 관련된 센서 데이터를 포함하는 보정 인스턴스(correction instance)가 생성된다. 보정 인스턴스는, 로봇 행동을 수행하는데 있어서 이용되는 결정된 부정확한 파라미터(들) 및/또는 인간 보정에 기초한 보정 정보를 더 포함할 수 있다. 보정 인스턴스는, 부정확한 파라미터(들)를 결정하는데 있어서 이용된 것들에 대응하는 신경망 모델 등의 하나 또는 모델(들)을 훈련시키기 위한 훈련 예(들)를 생성하는데 이용될 수 있다. 다양한 구현에서, 훈련은 복수의 로봇으로부터의 보정 인스턴스들에 기초한다. 모델의 개정된 버전이 생성된 후, 개정된 버전은 그 후 복수의 로봇 중 하나 이상에 의해 이용될 수 있다.

Description

로봇 행동들에 대한 보정들의 결정 및 이용{DETERMINING AND UTILIZING CORRECTIONS TO ROBOT ACTIONS}
구매되어 이용되는 로봇은 다양한 행동을 수행할 수 있다. 그러나, 일부 상황에서 로봇은 여전히 일부 행동을 부정확하게 수행하거나 및/또는 일부 행동을 수행하지 못할 수 있다. 이러한 사태는, 행동을 수행하는데 있어서 로봇에 의해 이용되는 모델(들)의 정확성 및/또는 확실성의 결여, 로봇이 동작하는 다양하거나 및/또는 동적인 환경 등의 다양한 요인들에 기인한 것일 수 있다. 또한, 행동의 부정확한 수행의 많은 발생의 경우, 로봇 자체가 부정확한 수행을 인식하지 못할 수도 있다. 예를 들어, 로봇의 제어 프로세스는, 실제로는 수행이 부정확하더라도, 행동이 정확하게 수행된 것으로 간주할 수 있다.
본 개시내용은, 로봇 행동에 대한 인간 보정(human correction)을 결정하고 이용하기 위한 방법, 장치, 및 컴퓨터 판독가능한 매체(일시적 및 비일시적)에 관한 것이다. 일부 구현들에서, 로봇에 의해 수행되는 행동의 인간 보정을 결정하는 것에 응답하여, 로봇의 하나 이상의 센서들에 의해 포착되고 보정된 행동에 관련된 센서 데이터를 포함하는 보정 인스턴스(correction instance)가 생성된다. 이들 구현들 중 일부에서, 보정 인스턴스는, 행동을 수행하는데 이용된 결정된 부정확한 파라미터(들) 및/또는 인간 보정에 기초한(및 정확한 파라미터(들)를 나타내는) 보정 정보를 더 포함한다. 보정 인스턴스는, 행동을 수행하는데 이용된 부정확한 파라미터(들)를 결정하는데 있어서 이용된 것들에 대응하는 신경망 모델(들) 등의, 하나 이상의 모델(들)의 훈련을 위한 훈련 예(들)를 생성하는데 이용될 수 있다. 다양한 구현에서, 모델(들)의 훈련은 복수의 로봇으로부터 수신된 보정 인스턴스들에 기초한다. 보정 인스턴스들을 생성 및 제공하는 복수의 로봇은, 이질적인 지리적 위치들 및/또는 환경들에 물리적으로 위치할 수 있거나 및/또는 서로 다를 수 있다(예를 들어, 하드웨어별로 및/또는 소프트웨어별로 다름).
일단 복수의 로봇으로부터의 보정 인스턴스들에 기초한 훈련을 통해 모델의 개정된 버전이 생성되고 나면, 모델의 개정된 버전은 그 후 복수의 로봇 중 하나 이상에 의해 이용될 수 있다. 예를 들어, 복수의 로봇 중 하나는, 보정 인스턴스들 중 하나가 그 로봇에 의해 생성되었을 때 이용되었던 더 이전의 대응하는 버전 대신에 개정된 버전을 이용할 수 있다. 예를 들어, 개정된 버전은 그 로봇에 전송될 수 있고, 그 로봇은 이전의 로컬 저장된 버전을 개정된 버전으로 대체할 수 있다. 또한, 예를 들어, 개정된 버전은, 다양한 작업을 수행하기 위해 로봇에 의해 이용되는 "클라우드 기반" 시스템 또는 기타의 원격 시스템에서 이전 버전을 대체할 수 있다. 일부 구현들에서, 로봇의 "로컬 수행"은, 추가로 또는 대안으로서, 로봇에 의해 수행되는 행동의 인간 보정을 결정하는 것에 응답하여 변경될 수 있다. 예를 들어, 인간 보정은 행동의 수행 동안에 수신될 수 있고, 로봇은 수행 동안에 행동을 변경할 수 있다. 또한, 예를 들어, 인간 보정을 결정하는 것에 응답하여 하나 이상의 "다운스트림" 행동이 수정되거나 및/또는 생성될 수 있다. 추가적인 예로서, 부정확하게 결정된 파라미터는 정확한 파라미터로 대체될 수 있고, 여기서 정확한 파라미터는 인간 보정에 기초하여 결정된다. 역시 또 다른 예로서, 로봇에 의해 이용되는 하나 이상의 로컬 신경망 모델 및/또는 다른 로컬 모델은 인간 보정에 기초하여 직접 적응될 수 있다.
일부 구현들에서, 로봇의 행동의 인간 보정을 결정하는 것은 행동의 수행과 연관하여(즉, 행동의 수행 이전에, 동안에 또는 이후에) 수신된 사용자 인터페이스 입력에 기초한다. 사용자 인터페이스 입력은, 로봇의 하나 이상의 센서(예를 들어, 로봇의 마이크로폰, 로봇의 인간 터치 및/또는 인간 조작을 결정하는데 이용될 수 있는 센서(들))를 통해, 및/또는 로봇과 분리되어 있지만 로봇과 통신하는 클라이언트 디바이스(예를 들어, 태블릿 또는 스마트폰을 통해 수신된 음성 또는 타이핑된 사용자 인터페이스 입력)를 통해 수신될 수 있다.
사용자 인터페이스 입력이 보정을 나타낸다고 결정하는 것은, 사용자 인터페이스 입력 자체의 분석에 기초할 수 있고, 선택사항으로서 수행중에 있는 행동의 파라미터(들)에 기초할 수 있다. 예를 들어, 그것은 사용자 인터페이스 입력에서 보정을 나타내는 하나 이상의 용어 또는 기타의 단서들에 기초할 수 있다(예를 들어, "아니오(no)", "정지(stop)", "말고(not)"). 또한, 예를 들어, 그것은, 추가로 또는 대안으로서, 사용자 인터페이스 입력에 기초하여 결정된 파라미터(들)와 행동의 수행에 이용되는 있는 파라미터(들)의 비교에 기초할 수 있다. 예를 들어, "모자"와 "그릇"의 비교는 사용자 인터페이스 입력이 물체의 분류가 "모자"임을 나타내는 상충을 결정하는 반면, 행동은 그 물체에 대한 "그릇"이라는 부정확하게 결정된 분류에 기초하여 수행되고 있다. 사용자 인터페이스 입력이 자연어 입력(예를 들어, 음성 또는 자유형 타이핑된 입력)인 경우, 자연어 처리(NLP; natural language processing) 시스템 및/또는 기타의 컴포넌트들이 선택사항으로서 이러한 사용자 인터페이스 입력이 보정인지를 결정하는데 이용될 수 있다.
본 명세서에 개시된 구현의 한 예로서, 로봇이 식기세척기를 비우는 작업을 수행하고 있다고 가정하자. 그렇게 함에 있어서, 파라미터 모듈(들)은, 식기세척기 내의 물체들의 자세(위치 및 배향) 및 분류를 결정하기 위해, 로봇의 시각 센서(예를 들어, 단안 카메라, 입체 카메라, 레이저 스캐너)로부터 신경망 모델(들)에 시각 센서 데이터를 적용할 수 있다. 파라미터 모듈 및/또는 신경망 모델은 로봇에 대해 로컬이거나, 로봇과 네트워크 통신하는 원격 컴퓨팅 디바이스(들)에 있을 수 있다. 로봇이 식기세척기에서 각각의 물체를 회수할 때, 로봇은 결정된 분류를 나타내는 사용자 인터페이스 출력을 생성할 수 있다. 예를 들어, 로봇이 플레이트로서 분류된 물체를 회수하고 있을 때, "플레이트를 집어서 치워라"는 가청 출력(예를 들어, 로봇의 스피커를 통해)을 제공할 수 있다. 또한 로봇이 플레이트로서 분류된 물체를 회수하고 있고, "플레이트를 집어서 치워라"는 가청 출력을 제공한 이후에, 사용자는 "그것은 플레이트가 아니라 그릇이다"라고 말한다.
음성 출력은 로봇의 마이크로폰에서 수신되고 (예를 들어, NLP 시스템으로부터의 출력을 이용하여) 분석되어 "플레이트" 분류가 부정확하고 "그릇" 분류가 그 대신에 정확한 분류임을 나타낸다고 결정할 수 있다. "플레이트" 분류가 부정확하다는 결정에 응답하여, 로봇은 보정 인스턴스를 생성하고 그 보정 인스턴스를 원격 컴퓨팅 디바이스에 전송할 수 있다. 보정 인스턴스는, 부정확하게 분류된 물체를 포착하고 시각 센서의 복수의 자세로부터 부정확하게 분류된 물체를 집합적으로 포착하는 시각 센서 데이터 복수의 인스턴스를 포함하도록 생성될 수 있다. 예를 들어, 복수의 인스턴스는, 최근 센서 데이터의 "로그"로부터의 인스턴스들을 포함할 수 있다. 보정 인스턴스는, 선택사항으로서, 시각 센서 데이터에서 물체의 결정을 가능케하는 부정확하게 분류된 물체의 식별자(예를 들어, 물체 검출 동안 물체에 할당된 식별자); 부정확하게 결정된 분류의 표시("플레이트"); 및/또는 인간에 의해 표시된 정확한 분류의 표시("그릇")를 더 포함할 수 있다.
원격 컴퓨팅 디바이스는, 그 보정 인스턴스뿐만 아니라, 복수의 추가 로봇들로부터의 보정 인스턴스를 이용하여, (예를 들어, 동일한 신경망 모델의 또 다른 버전의 추가 훈련을 위해) 물체를 부정확하게 분류하는데 이용된 것에 대응하는 신경망 모델의 훈련을 위한 훈련 예를 생성할 수 있다. 예를 들어, 제1 훈련 예는, 보정 인스턴스의 시각 센서 데이터의 제1 인스턴스에 기초한 훈련 예 입력, 및 분류가 "플레이트"가 아님을 나타내거나 및/또는 분류가 “그릇"임을 나타내는 훈련 예 출력을 포함할 수 있다. 훈련 후에, 물체를 부정확하게 분류한 신경망 모델을 대체하기 위해 (보정 인스턴스 기반의 훈련에 기초하여 개정된) 개정된 신경망 모델이 제공될 수 있다. 다양한 구현에서, 본 명세서에서 설명된 바와 같이 훈련 예를 생성하기 위해 보정 인스턴스를 이용하는 것은 소위 "하드 네거티브(hard negative)" 훈련 예의 생성을 가능케한다. 즉, 훈련 예들은, 훈련될 것에 대응하는 신경망 모델에 기초하여 이루어진 기저의 부정확한 결정의 결과인 보정 인스턴스에 기초하여 생성되기 때문에 하드 네거티브이다. 다시 말해, 이들은, 실제로는 수행이 부정확하더라도, 정확한 행동으로서 간주한 것을 수행하기 위해 로봇에 의해 이용된 수집된 센서 데이터에 기초한다.
일부 구현들에서, 로봇의 "로컬 수행"은, 추가로 또는 대안으로서, "플레이트" 분류가 부정확하다고 결정하는 것에 응답하여 및/또는 "그릇" 분류가 정확하다고 결정하는 것에 응답하여 변경될 수 있다. 한 예로서, 로봇은 결정(들)에 기초하여 (식기세척기로부터의 회수 후에) 물체를 배치하기 위해 이전에 결정된 위치를 변경할 수 있다. 예를 들어, 로봇은 부정확한 분류에 기초하여 물체 위치를 제1 "플레이트" 위치에 배치할 것을 계획했을 수 있고, 물체가 그 대신에 "그릇" 분류를 갖는다고 결정하는 것에 기초하여 별개의 제2 "그릇" 위치로 배치를 조정할 수 있다.
구현의 예들은, 이들 구현들 중 일부의 개요를 제공할 목적으로 이전 단락들에서 제공된다. 그러나, 여기서 설명된 다양한 구현들은 제공된 예들로부터 하나 이상의 관점에서 상이하다는 것을 이해할 것이다.
일부 구현들에서, 로봇을 위한 현재 모델에 대한 입력으로서 센서 데이터를 적용하는 단계를 포함하는 한 방법이 제공될 수 있다. 센서 데이터는 로봇의 하나 이상의 센서에 기초하여 생성된다. 이 방법은 : 센서 데이터에 기초하여 현재 모델을 통해 출력을 생성하는 단계; 생성된 출력에 기초하여 로봇 행동을 위한 하나 이상의 파라미터를 결정하는 단계; 및 하나 이상의 파라미터에 기초하여 로봇에 의해 로봇 행동의 수행 동안에 또는 그 후에 로봇 행동을 보정하는 사용자 인터페이스 입력을 수신하는 단계를 더 포함한다. 이 방법은, 로봇 행동을 보정하는 사용자 인터페이스 입력을 수신하는 것에 응답하여 보정 인스턴스를 생성하는 단계, 및 보정 인스턴스를 네트워크 인터페이스를 통해 하나 이상의 원격 컴퓨팅 디바이스에 전송하는 단계를 더 포함한다. 보정 인스턴스는, 로봇 행동에 관련된 센서 데이터의 복수의 인스턴스를 포함한다. 이 방법은, 보정 인스턴스를 전송한 후, 현재 모델의 개정된 버전을 수신하는 단계를 더 포함한다. 수신된 현재 모델의 개정된 버전은, 보정 인스턴스 및 추가 로봇들의 추가 보정 인스턴스들에 기초하여 훈련된다. 이 방법은, 현재 모델의 개정된 버전을 수신하는 것에 응답하여, 로봇의 추가 로봇 행동에 대한 추가 파라미터들을 결정하는데 있어서 현재 모델 대신에 현재 모델의 개정된 버전을 이용하는 단계를 더 포함한다.
본 명세서에 개시된 기술의 이 방법 및 기타의 구현들 각각은, 다음과 같은 피쳐들 중 하나 이상을 선택사항으로서 포함할 수 있다.
일부 구현들에서, 보정 인스턴스에 포함된 센서 데이터의 복수의 인스턴스는, 시각 센서 데이터의 복수의 인스턴스를 포함하고, 시각 센서 데이터의 복수의 인스턴스는 : 제1 시간에 제1 자세로부터 물체를 포착하는 시각 센서 데이터의 제1 인스턴스, 및 제2 시간에 제2 자세로부터 물체를 포착하는 시각 센서 데이터의 제2 인스턴스를 포함한다. 이들 구현들의 일부 버전들에서, 보정 인스턴스를 생성하는 단계는 : 로봇 행동에 대한 복수의 인스턴스의 시간적 근접성에 기초하여 시각 센서 데이터의 복수의 인스턴스가 로봇 행동과 관련된다고 결정하는 단계를 포함한다. 이들 구현들의 일부 추가적인 또는 대안적인 버전들에서, 시각 센서 데이터의 복수의 인스턴스는, 로봇 행동에 대한 하나 이상의 파라미터를 결정하는데 있어서 현재 신경망 모델에 적용된 센서 데이터에 포함된다.
일부 구현들에서, 보정 인스턴스를 생성하는 단계는 사용자 인터페이스 입력에 기초하는 보정 정보를 더 포함하도록 보정 인스턴스를 생성하는 단계를 포함한다.
일부 구현들에서, 보정 인스턴스를 생성하는 단계는, 현재 모델이 로봇 행동에 대한 하나 이상의 파라미터들을 결정하는데 있어서 이용되고 있다는 것에 기초하여 현재 모델의 표시를 더 포함하도록 보정 인스턴스를 생성하는 단계를 포함한다. 일부 구현들에서, 보정 인스턴스를 생성하는 단계는, 로봇 행동에 대한 하나 이상의 파라미터를 더 포함하도록 보정 인스턴스를 생성하는 단계를 포함한다. 일부 구현들에서, 사용자 인터페이스 입력은 자연어 입력이다.
일부 구현들에서, 물체를 향한 행동을 수행하기 위한 로봇의 이동 동안에 사용자 인터페이스 입력을 수신하는 단계; 및 사용자 인터페이스 입력이 물체를 향한 행동에 대한 보정을 나타낸다고 결정하는 단계를 포함하는 한 방법이 제공될 수 있다. 이 방법은, 사용자 인터페이스 입력이 보정을 나타낸다고 결정하는 것에 응답하여 보정 인스턴스를 생성하는 단계를 더 포함한다. 생성된 보정 인스턴스는, 각각이 물체를 포착하는 시각 센서 데이터의 복수의 인스턴스를 포함한다. 시각 센서 데이터는 로봇의 시각 센서에 의해 생성된다. 생성된 보정 인스턴스에 포함된 시각 센서 데이터의 복수의 인스턴스는, 제1 시간에 제1 자세로부터 물체를 포착하는 제1 인스턴스, 및 제2 시간에 제2 자세로부터 물체를 포착하는 제2 인스턴스를 포함한다. 이 방법은, 보정 인스턴스를 네트워크 인터페이스를 통해 하나 이상의 원격 컴퓨팅 디바이스에 전송하는 단계를 더 포함한다. 하나 이상의 원격 컴퓨팅 디바이스는, 모델을 훈련시키기 위한 복수의 훈련 예를 생성하기 위해 보정 인스턴스를 이용한다.
본 명세서에 개시된 기술의 이 방법 및 기타의 구현들 각각은, 다음과 같은 피쳐들 중 하나 이상을 선택사항으로서 포함할 수 있다.
일부 구현들에서, 모델은 신경망 모델이고, 이 방법은, 신경망 모델이, 복수의 훈련 예, 및 추가 로봇들로부터의 추가 보정 인스턴스들로부터의 추가 훈련 예들에 기초하여 훈련된 후에, 네트워크 인터페이스를 통해, 신경망 모델을 수신하는 단계를 더 포함한다.
일부 구현들에서, 보정 인스턴스는 사용자 인터페이스 입력에 기초한 보정 정보를 더 포함한다.
일부 구현들에서, 이 방법은, 로봇에 대해 로컬인 로컬 모델에 기초하여 물체의 예측된 분류를 결정하는 단계를 더 포함한다. 이들 구현들 중 일부에서, 로봇에 의해 수행되는 행동은 예측된 분류에 기초하여 수행되고, 보정 인스턴스를 생성하는 단계는 물체의 예측된 분류를 더 포함하도록 보정 인스턴스를 생성하는 단계를 포함한다.
일부 구현들에서, 이 방법은 복수의 훈련 예를 생성하는 단계를 더 포함한다. 이들 구현들 중 일부에서, 복수의 훈련 예를 생성하는 단계는, 예측된 분류가 정확한 분류가 아님을 나타내는 훈련 예 출력을 포함하는 네거티브 훈련 예를 생성하는 단계를 포함한다.
일부 구현들에서, 이 방법은 : 초기 사용자 인터페이스 입력을 수신하는 단계; 초기 사용자 인터페이스 입력이 물체를 나타낸다고 결정하는 단계; 및 초기 사용자 인터페이스 입력이 물체를 나타낸다고 결정하는 것에 응답하여 물체를 향한 행동을 수행하라는 로봇 제어 명령들을 생성하는 단계를 더 포함한다. 이들 구현들 중 일부에서, 보정 인스턴스는 초기 사용자 인터페이스 입력에 기초하는 보정 정보를 더 포함한다.
일부 구현들에서, 이 방법은 사용자 인터페이스 입력이 보정을 나타낸다는 결정에 응답하여 물체를 향한 행동의 수행을 변경하는 단계를 더 포함한다.
일부 구현들에서, 이 방법은, 사용자 인터페이스 입력이 보정을 나타낸다고 결정하는 것에 응답하여, 사용자 인터페이스 입력에 기초하여, 물체와 연관된 로컬 저장된 파라미터를 조정하는 단계를 더 포함한다.
일부 구현들에서, 로봇의 환경 내의 물체의 분류를 결정하는 단계; 사용자에 의해 제공된 초기 사용자 인터페이스 입력을 수신하는 단계; 및 초기 사용자 인터페이스 입력이 물체의 분류에 부합한다고 결정하는 단계를 포함하는 한 방법이 제공될 수 있다. 이 방법은, 초기 사용자 인터페이스 입력이 물체의 분류에 부합한다고 결정하는 것에 응답하여, 물체를 향한 행동을 수행하라는 제어 명령을 로봇의 하나 이상의 액츄에이터에 제공하는 단계를 더 포함한다. 이 방법은 : 물체를 향한 행동의 수행 동안에 추가 사용자 인터페이스 입력을 수신하는 단계; 및 추가 사용자 인터페이스 입력이 물체의 결정된 분류에 부합하지 않는 물체의 상충되는 분류를 나타낸다고 결정하는 단계를 더 포함한다. 이 방법은, 추가 사용자 인터페이스 입력이 물체의 상충되는 분류를 나타낸다고 결정하는 것에 응답하여, 보정 인스턴스를 생성하는 단계를 더 포함한다. 이 방법은, 보정 인스턴스를 네트워크 인터페이스를 통해 하나 이상의 원격 컴퓨팅 디바이스에 전송하는 단계를 더 포함하고, 여기서, 하나 이상의 원격 컴퓨팅 디바이스는 모델을 훈련시키기 위한 적어도 하나의 훈련 예를 생성하기 위해 보정 인스턴스를 이용한다.
본 명세서에 개시된 기술의 이 방법 및 기타의 구현들 각각은, 다음과 같은 피쳐들 중 하나 이상을 선택사항으로서 포함할 수 있다.
일부 구현들에서, 보정 인스턴스는 물체를 포착하는 시각 센서 데이터의 적어도 하나의 인스턴스를 포함한다. 시각 센서 데이터는 로봇의 시각 센서에 의해 생성된다.
일부 구현들에서, 보정 인스턴스는, 각각이 물체를 포착하는 시각 센서 데이터의 복수의 인스턴스를 포함한다. 시각 센서 데이터는 로봇의 시각 센서에 의해 생성된다.
다른 구현들은, 전술된 하나 이상의 방법 등의 한 방법을 수행하기 위해 프로세서에 의해 실행가능한 명령어들을 저장한 비일시적인 컴퓨터 판독가능한 저장 매체를 포함할 수 있다. 역시 다른 구현들은, 메모리, 및 메모리에 저장된 명령어들을 실행하여 전술된 방법들 중 하나 이상을 단독으로 또는 집합적으로 수행하는 하나 이상의 모듈 또는 엔진을 구현하도록 동작가능한 하나 이상의 프로세서를 포함하는 시스템(예를 들어, 로봇 및/또는 하나 이상의 다른 컴포넌트)을 포함할 수 있다.
본 명세서에서 더 상세하게 설명된 전술된 개념들 및 추가적인 개념들의 모든 조합은 본 명세서에 개시된 주제의 일부인 것으로 간주된다는 것을 이해해야 한다. 예를 들어, 본 개시내용의 끝에 나타나는 청구된 주제의 모든 조합들은 본 명세서에서 개시된 주제의 일부로서 간주된다.
도 1은 본 명세서에 개시된 구현들이 구현될 수 있는 예시적인 환경을 나타낸다.
도 2a, 도 2b, 및 도 2c는 로봇 행동에 보정을 제공하는 예들을 나타낸다.
도 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), 보정 인스턴스 엔진(130), 및/또는 로봇 데이터 엔진(135)은, 로봇(190)의 하나 이상의 프로세서에 의해 구현될 수 있다. 또한, 예를 들어, 신경망 모델(150A), 신경망 모델(150N), 및/또는 생성된 로봇 데이터 데이터베이스(152)는, 로봇(190)의 하나 이상의 하드 드라이브 또는 기타의 컴퓨터 판독가능한 매체에 저장될 수 있다. 또 다른 예로서, 일부 구현들에서, 하나 이상의 컴포넌트(103)는 로봇(190)으로부터 원격지인 하나 이상의 컴퓨팅 디바이스 상에서 구현된다. 예를 들어, 파라미터 모듈들(121A-N) 및/또는 신경망 모델들(150A-N) 중 하나 이상은 고성능 컴퓨팅 디바이스들의 원격 클러스터에 의해 "클라우드로" 구현될 수 있고, 로봇(190) 및/또는 다른 로봇(예를 들어, 추가 로봇(192))에 대한 파라미터 결정을 처리할 수 있다. 역시 또 다른 예로서, 파라미터 모듈들(121A-N) 및/또는 신경망 모델들(150A-N) 중 하나 이상은, 로봇(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에 도시되어 있으며, 각각은 대응하는 파라미터(들)를 생성하는데 있어서 대응하는 신경망 모델(150A, 150N)을 이용한다. 파라미터 모듈들(121A 및 121N) 사이에는, 생략표로 표시된 바와 같이, 추가 파라미터 모듈들이 제공될 수 있다는 것을 이해할 수 있을 것이다. 또한, 이들 추가 파라미터 모듈들 중 하나 이상은, 선택사항으로서, 신경망 모델들(150A 및 150N) 사이의 생략표로 표시된 바와 같이, 대응하는 신경망 모델(들)을 이용할 수 있다. 파라미터 모듈들(121A 및 121N) 각각은, 행동 시스템(120)에 의한 이용을 위한 하나 이상의 파라미터를 생성하는데 있어서 그 대응하는 신경망 모델(150A 및 150N)을 이용한다.
한 예로서, 파라미터 모듈(121A)은 물체 인식을 효과적으로 수행하기 위해 신경망 모델(150A)을 이용할 수 있다. 예를 들어, 파라미터 모듈(121A)은 신경망 모델(150A)에 대한 입력으로서 (로봇 데이터 엔진(135)에 의해 제공되는) 시각 센서 데이터의 인스턴스를 적용할 수 있고, 모델(150A)을 통해, 입력에 기초하여, 시각 센서 데이터의 그 인스턴스에 의해 포착된 하나 이상의 물체의 자세(들)를 나타내는 출력을 생성할 수 있다. 이것은, 파라미터 모듈(121A)이 로봇 환경 내의 복수의 물체 각각에 대한 자세를 결정할 수 있게 하도록 시각 센서 데이터 복수의 인스턴스 각각에 대해 반복적으로 수행될 수 있어서, 파라미터 모듈(121A)이 로봇 환경 내의 물체들의 최신의 공간-시간 "인벤토리"를 효과적으로 유지할 수 있게 한다.
또 다른 예로서, 파라미터 모듈(121N)은 파라미터 모듈(121A)에 의해 인식된 이들 물체들에 대한 물체 분류를 효과적으로 수행할 수 있다. 예를 들어, 물체의 분류를 결정하기 위해, 파라미터 모듈(121N)은 시각 센서 데이터 및 (파라미터 모듈(121A)에 의해 결정된) 물체의 자세를 신경망 모델(150N)에 대한 입력으로서 적용할 수 있고, 모델(150A)을 통해, 입력에 기초하여, 아마도 물체의 분류(들)를 나타내는 출력을 생성할 수 있다. 이것은 복수의 물체 각각에 대해 수행되어 복수의 물체 각각의 분류를 결정할 수 있다. 일부 구현들에서, 파라미터 모듈(121N)은, 선택사항으로서, 각각이 상이한 그룹의 분류들을 결정하도록 훈련된, 복수의 신경망 모델을 이용할 수 있다.
신경망 모델 및 파라미터 모듈의 특정한 예가 전술된 단락들에서 제공되었지만, 추가적인 및/또는 대안적인 신경망 모델 및/또는 파라미터 모듈이 제공될 수 있다는 것을 이해할 것이다. 예를 들어, 추가 파라미터 모듈은, 시각 센서 데이터 및/또는 기타의 데이터(예를 들어, 다른 파라미터 모듈(들)의 파라미터(들))를 대응하는 훈련된 신경망 모델에 대한 입력으로서 적용할 수 있고, 입력에 기초하여 모델을 통해, 시각 센서 데이터에 의해 포착된 물체를 집는 방법을 나타내는 집기 파라미터를 생성할 수 있다. 또 다른 예로서, 파라미터 모듈은 단일 신경망 모델을 이용하여 물체 인식과 물체 분류 양쪽 모두를 수행할 수 있다.
행동 시스템(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)의 임의의 마이크로폰과 연관된 하드웨어는, 음성 "핫 워드"(예를 들어, "헤이 로봇"), (예를 들어, 로봇 상의) 하드웨어 버튼의 선택, (예를 들어, 클라이언트 디바이스(106) 상에 렌더링된) 가상 버튼의 선택 등의, 소정의 선행 입력에 응답하여, 인간 보정에 대한 "능동적 청취"만을 하고 있을 수 있다.
클라이언트 디바이스(106)에 의해 제공되는 사용자 인터페이스 입력은, 클라이언트 디바이스(106)의 입력 디바이스(들)(예를 들어, 클라이언트 디바이스(106)의 마이크로폰 및/또는 가상 또는 하드웨어 키보드)와의 사용자 상호작용에 응답하여 제공되고, 선택사항으로서, 클라이언트 디바이스(106) 및/또는 기타의 컴포넌트에 의해 전처리될 수 있다(예를 들어, 음성 입력은 텍스트 입력으로 변환함으로써 전처리됨). 일부 구현들에서, UI 입력 모듈(124)은 수신된 사용자 인터페이스 입력에 기초하여 행동 시스템(120)에 의해 이용되기 위한 하나 이상의 파라미터를 생성할 수 있다. 예를 들어, "테이블 클리어"라는 수신된 사용자 인터페이스 입력에 대해, UI 입력 모듈(124)은 그 입력을 처리하여, 로봇(190)의 환경 내의 "테이블" 물체 상에 있는 모든 물체를 제거하기 위해, 로봇(190)에 의해 수행되어야 할 행동들을 나타내는 파라미터를 결정할 수 있다. UI 입력 모듈(124)에 의해 결정된 임의의 파라미터는 계획 모듈(122)에 제공될 수 있다. UI 입력 모듈(124)은, 수신된 사용자 인터페이스 입력으로부터 파라미터를 결정하는데 있어서 NLP 시스템(133) 및/또는 하나 이상의 다른 컴포넌트와 상호작용할 수 있다.
UI 입력 모듈(124)은, 추가로 또는 대안으로서, 보정 인스턴스 엔진(130)과 연계하여 작동할 수 있다. 보정 인스턴스 엔진(130)은, 수신된 사용자 인터페이스 입력이 로봇 행동에 대한 보정을 나타내는지를 결정한다. 만일 그렇다면, 보정 인스턴스 엔진(130)은 대응하는 보정 인스턴스를 생성하고 네트워크(101)를 통해 보정 인스턴스를 수집 엔진(140)에 전송한다. 이러한 방식으로, 다양한 구현에서, 보정 인스턴스 엔진(130)은 수신된 사용자 인터페이스 입력이 로봇 행동에 대한 보정을 나타내는 경우에만 보정 인스턴스를 전송할 수 있다.
보정 인스턴스 엔진(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)에 의해 생성된 보정 인스턴스는, 로봇의 하나 이상의 센서에 의해 포착되고 보정된 행동에 관련된 센서 데이터를 포함할 수 있다. 예를 들어, 보정 인스턴스는, 시각 센서 데이터, 로봇 위치 센서 데이터, 및/또는 보정 발생시의 및/또는 그 이전으로부터의 다른 데이터(예를 들어, 마지막 X초로부터의 데이터)를 포함할 수 있다. 또한, 예를 들어, 보정 인스턴스 엔진(130)은, 이들 인스턴스들이 부정확한 행동의 초점이 되는 물체(들)를 포착한다고 결정하는 것에 기초하여 시각 센서 데이터의 인스턴스들을 보정 인스턴스에 포함할 수 있다. 일부 구현들에서, 보정 인스턴스는 행동을 수행하는데 이용된 결정된 파라미터(들), 부정확한 행동을 초래한 이용된 신경망 모델(들)의 표시들, 인간 보정에 기초하는 보정 정보 등을 더 포함한다.
일부 구현들에서, 보정 인스턴스 엔진(130)은, 추가로 또는 대안으로서, 로봇(190)에 의해 수행된 행동의 인간 보정을 결정하는 것에 응답하여 로봇(190)의 "로컬 수행"을 변경하기 위해 행동 시스템(120)의 보정 모듈(126)과 상호작용한다. 예를 들어, 보정 모듈(126)은 인간 보정에 기초하여 부정확하게 결정된 파라미터를 변경하고, 계획 모듈(122)에 의한 후속 행동의 변경을 위해 변경된 파라미터를 계획 모듈(122)에 제공할 수 있다. 예를 들어, 파라미터가 주어진 물체를 "그릇"으로서 표시하지만, 사용자 인터페이스 입력이 그 주어진 물체가 실제로는 "모자"임을 나타내는 경우, 보정 모듈(126)은 그 물체에 대한 "그릇" 분류를 "모자" 분류로 대체하고, 모자 분류를 계획 모듈(122)에 제공할 수 있다. 계획 모듈(122)은 수행중인 현재 행동(들)을 변경된 분류에 기초하여 변경하거나 및/또는 다운스트림 행동(들)에서 변경된 분류를 이용할 수 있다(예를 들어, 계획 모듈이 "내 모자를 가져와"라는 명령에 정확하게 응답할 수 있게 함).
수집 엔진(140)은, 네트워크(101)(예를 들어, 인터넷)를 통해 보정 인스턴스 엔진(130)으로부터 보정 인스턴스를 수신한다. 수집 엔진(140)은 또한, 네트워크(101)를 통해 추가 로봇(192)들로부터 보정 인스턴스를 수신할 수 있다. 추가 로봇(192)은 다양한 지리적 위치에 있을 수 있고, 추가 로봇(192)은 선택사항으로서 로봇(190)과는 상이할 수 있다(예를 들어, 이들은 4개의 바퀴를 갖는 유형 등의 상이한 "유형"일 수 있다). 추가 로봇(192)에 의해 제공되는 보정 인스턴스는 또한, 로봇 행동의 인간 보정에 응답하여 생성된 것들을 포함할 수 있다. 수집 엔진(140)은, 예를 들어, 컴퓨팅 디바이스들의 클러스터에 의해 구현될 수 있다.
수집 엔진(140)은 보정 인스턴스를 이용하여 보정 인스턴스에 대응하는 신경망 모델의 훈련을 위한 훈련 예를 생성한다. 한 예로서, 특정한 물체를 포착하는 시각 센서 데이터의 복수의 인스턴스, 그 특정한 물체가 "그릇"으로서 부정확하게 분류되었다는 표시, 및 그 분류가 (인간 보정을 통해) "모자"로 보정되었다는 표시를 포함하는 보정 인스턴스가 수신된다고 가정하자. 이러한 한 예에서, 수집 엔진(140)은, 각각이, 시각 센서 데이터의 한 대응하는 인스턴스에 기초하는 훈련 예 입력; 및 "그릇"이 정확한 분류가 아니거나 및/또는 "모자"가 정확한 분류라는 것을 나타내는 훈련 예 출력을 포함하는 훈련 예들을 생성할 수 있다.
수집 엔진(140)은 생성된 훈련 예를 훈련 엔진(145)에 제공한다. 훈련 엔진(145)은, 하나 이상의 대응하는 신경망 모델 훈련시키는 훈련 예를 이용하여 대응하는 개정된 신경망 모델들(151A-N)을 생성한다. 한 예로서, 수집 엔진(140)은 신경망 모델(150N)의 하나 이상의 인스턴스에 의한 물체의 부정확한 분류에 대한 인간 보정에 기초하여 생성된 많은 수의 훈련 예를 제공한다고 가정하자. 이러한 한 예에서, 훈련 엔진(145)은 또한, 신경망 모델(150N)(또는 신경망 모델(150N)과 유사한 또 다른 모델)을 훈련시켜 개정된 신경망 모델(151N)을 생성할 수 있다. 예를 들어, 훈련 엔진(145)은 훈련 예의 훈련 예 입력을 신경망 모델(150N)에 적용하고, 훈련 예 출력 및 훈련 예 입력의 적용에 기초하여 생성된 실제의 출력에 기초하여 에러를 결정하고, 신경망 모델(150N)을 통해 에러를 역 전파하여 신경망 모델(150N)을 업데이트할 수 있다. 일괄 훈련이 선택사항으로서 이용될 수 있다.
대량의 훈련 예의 적용을 통해, 훈련 엔진(145)은 개정된 신경망 모델(151N)을 생성한다. 그 다음, 개정된 신경망 모델(151N)은 이용을 위해 신경망 모델(150N) 대신에 제공될 수 있다. 추가로, 이러한 개정된 신경망 모델(151N)은 후속 생성된 훈련 예에 기초하여 향후에 더 개정되어, 초기의 개정된 신경망 모델(151N) 대신에 이용을 위해 제공될 수 있는 개정된 신경망 모델(151N)의 추가의 개정된 버전을 생성할 수 있다. 이러한 방식으로, 다양한 환경에 있는 로봇들(190 및 192)로부터의 보정 인스턴스들에 기초한 훈련 예들을 이용하여 개선된 신경망 모델이 반복적으로 훈련되고 제공될 수 있다. 따라서, 시간이 지남에 따라 로봇들(190 및 192)에 의해 이용되는 신경망 모델은 반복적으로 업데이트될 것이며, 매번 다양한 보정 인스턴스로부터 생성된 훈련 예들에 기초하여 추가로 훈련된다. 훈련 엔진(145)은, 예를 들어, 컴퓨팅 디바이스들의 클러스터에 의해 구현될 수 있다.
이제 도 2a 내지 도 8을 참조하면, 도 1의 예시적인 환경의 다양한 컴포넌트에 대한 추가 설명이 제공된다.
먼저 도 2a 내지 도 2c를 참조하면, 로봇 행동에 보정을 제공하는 일부 예가 제공된다. 도 2a 내지 도 2c는 로봇(190) 및/또는 다른 로봇(들)이 동작할 수 있는 예시적인 환경의 다양한 상태를 도시한다. 도 2a는 제1 시간에서의 테이블(250)을 나타낸다. 제1 시간에서, 4개의 물체(252a-d)가 테이블(250) 위에 놓여 있다.
도 2b는, 도 2a의 제1 시간에서, 사용자가 "테이블로부터 접시들을 클리어하라"는 사용자 인터페이스 입력(103B1)을 제공한 예를 나타낸다. 응답하여, 로봇(190)(도 2b에 도시되지 않음)은, 테이블(250)로부터, 자신이 "접시"로서 분류한 물체를 제거하기 시작할 수 있다. 예를 들어, 로봇(190)은, (신경망 모델(150N)을 통해 생성된 출력에 기초하여) 파라미터 모듈(121N)에 의해 "접시"로서 분류된 임의의 물체를 제거하기 시작할 수 있다. 예를 들어, 도 2b는 로봇(190)이 테이블로부터 "접시"로서 부정확하게 분류한 물체(252d)를 집고 제거할 때의 환경을 나타낸다. 로봇(190)이 물체(252d)와 상호작용하는 동안, 사용자는 "모자말고"라는 추가 사용자 인터페이스 입력(103B2)을 제공한다.
보정 인스턴스 엔진(130)은, 추가 사용자 인터페이스 입력(103B2)이 물체(252d)에 관해 수행되고 있는 행동에 대한 보정을 나타낸다고 결정할 수 있다. 예를 들어, 보정 인스턴스 엔진(130)은, 사용자 인터페이스 입력(103B2)에 의해 표시된 "모자" 분류가 부정확하게 결정된 "접시" 분류와 상충된다고 결정할 수 있다. 응답하여, 보정 인스턴스 엔진(130)은 물체(252d)를 포착하는 시각 센서 데이터의 복수의 인스턴스를 포함하는 보정 인스턴스를 생성할 수 있다. 예를 들어, 행동 시스템(120)은, 고유 식별자에 기초하여 다양한 시각 센서 데이터 인스턴스에서 물체(252d)를 "추적"할 수 있고, 보정 인스턴스에 포함시킬 시각 센서 데이터의 복수의 인스턴스를 결정하기 위해 고유 식별자를 이용할 수 있다. 예를 들어, 시각 센서 데이터의 인스턴스들은, 이들 인스턴스들에 포함된 물체들의 고유 식별자(들), 및 이러한 고유 식별자로 인덱싱된 이들 인스턴스들을 식별하는데 이용된 "모자"의 고유 식별자에 의해 인덱싱될 수 있다. 보정 인스턴스는, 선택사항으로서, 다른 센서 데이터, 부정확하게 결정된 분류의 표시, 정확한 분류의 표시, 및/또는 부정확한 분류를 결정하는데 이용된 로봇의 신경망 모델(들)의 표시를 추가로 포함할 수 있다.
도 2c는, 도 2a의 제1 시간에서, 사용자가 (도 2b의 사용자 인터페이스 입력(103B1)을 제공하는 것 대신에) "테이블을 클리어"하라는 사용자 인터페이스 입력(103C1)을 제공한 예를 나타낸다. 응답하여, (도 2b에 도시되지 않은) 로봇(190)은 식별된 모든 물체를 테이블(250)로부터 제거할 수 있다. 예를 들어, 로봇은, 임의의 검출된 물체를, 파라미터 모듈(121A)에 의해 결정된 자세에 기초하여(신경망 모델(150A)을 통해 생성된 출력에 기초하여) 제거할 수 있다.
도 2c는 로봇(190)이 자신이 식별한 모든 물체의 제거를 완료했을 때의 환경을 나타낸다. 그러나, 물체(252B)는, 테이블 (250)과 분리된 물체로서 로봇(190)에 의해 인식되지 않기 때문에 테이블(250)에 남아있다. 사용자는 "너는 포크를 잊었다"라는 추가 사용자 인터페이스 입력(103C2)을 제공한다. 일부 상황에서, 사용자는, 식별한 모든 물체의 제거를 완료했다는 것을 나타내기 위해 로봇(190)에 의해 제공되는 가청 사용자 인터페이스 출력(예를 들어, "끝났어", "벨소리")에 응답하여, 추가 사용자 인터페이스 입력(103C2)을 제공할 수 있다.
보정 인스턴스 엔진(130)은, 추가 사용자 인터페이스 입력(103C2)이 수행중에 있는 행동에 대한 보정을 나타낸다고 결정할 수 있다. 예를 들어, 보정 인스턴스 엔진(130)은, 사용자 인터페이스 입력(103C2)이 테이블(250) 상에 존재하는 물체가 인식되지 않았음을 나타낸다고 결정할 수 있다. 응답하여, 보정 인스턴스 엔진(130)은 테이블(250)을 포착하는 시각 센서 데이터의 복수의 인스턴스를 포함하는 보정 인스턴스를 생성할 수 있다. 일부 구현들에서, 사용자는 (예를 들어, 로봇(190)의 스피커를 통해 및/또는 클라이언트 디바이스(106)를 통해) 인식되지 않은 물체가 어디에 위치해 있는 곳을 나타내는 추가 사용자 인터페이스 입력을 제공하도록 촉구받을 수 있다. 예를 들어, 사용자는, 클라이언트 디바이스(106)를 통해 테이블(250)의 이미지(포착된 시각 센서 데이터의 인스턴스)가 제공받을 수 있고, 클라이언트 디바이스(106)를 통해 물체를 식별하도록 촉구받을 수 있다(예를 들어, 그 물체를 "탭(tap)"하거나, 그 물체 주변에 경계 박스를 그리는 등). 또한, 예를 들어, 사용자는 인식되지 않은 물체에 접근하여 그 물체를 "가리키라"라고 촉구받을 수 있고, 시각 센서(199)는 그 물체를 "가리키는" 사용자의 시각 센서 데이터 인스턴스를 포착할 수 있다. 이러한 추가 사용자 인터페이스 입력은 또한, 선택사항으로서 다른 센서 데이터, 물체를 인식하지 못한 로봇의 신경망 모델(들)의 표시, 및/또는 기타의 데이터와 함께, 보정 인스턴스에 제공될 수 있다.
이제 도 3을 참조하면, 다양한 구현에 따른 예시적인 방법(300)이 설명된다. 편의상, 플로차트의 동작들은 그 동작들을 수행하는 시스템을 참조하여 설명된다. 이 시스템은, 로봇 및/또는 로봇과 통신하는 하나 이상의 컴퓨팅 디바이스의 다양한 컴포넌트를 포함할 수 있다. 더욱이, 방법(300)의 동작들이 특정한 순서로 도시되어 있지만, 이것은 제한적인 의미가 아니다. 하나 이상의 동작이 재정렬되거나, 생략되거나 추가될 수 있다.
블록 352에서, 시스템은 적용된 로봇 센서 데이터에 기초하여 현재 신경망 모델을 통해 출력을 생성한다. 작업 예로서, 시스템은, 물체를 포착하기 위한 집기 파라미터를 예측하도록 훈련된 현재 신경망 모델에 시각 센서 데이터 및/또는 기타의 로봇 센서 데이터를 적용할 수 있다. 시스템은 또한, 적용된 데이터에 기초한 집기 파라미터를 나타내는 출력을 모델을 통해 생성할 수 있다. 예를 들어, 출력은 물체를 집기 위한 말단 작동기 자세를 나타낼 수 있다.
블록 354에서, 시스템은 블록 352의 생성된 출력에 기초하여 파라미터(들)를 결정한다. 작업 예를 계속하여, 시스템은 블록 352에서 생성된 출력에 기초하여 물체를 집기 위한 말단 작동기 자세를 결정할 수 있다. 다양한 구현에서, 시스템은, 블록 352의 복수의 인스턴스에 기초하여 생성된 출력의 복수의 인스턴스에 기초하여 블록 354에서 파라미터(들)를 결정할 수 있고, 블록 352의 각각의 인스턴스는 센서 데이터의 상이한 인스턴스를 적용한다는 점에 유의한다. 또한, 다양한 구현에서, 시스템은, 블록 352의 것에 추가한 다른 신경망 모델(들)을 통해 생성된 추가 출력에 기초하여 결정된 파라미터(들)에 기초하여 블록 354에서 파라미터(들)를 결정할 수 있다는 점에 유의한다.
블록 356에서, 시스템은 블록 354에서 생성된 파라미터(들)에 기초하여 로봇 행동을 수행한다. 작업 예를 계속하여, 시스템은 결정된 집기 파라미터를 이용하여 물체 집기의 전부 또는 일부를 수행할 수 있다.
블록 356은 서브블록들 356A 및 356B를 포함한다. 블록 356A에서, 시스템은 행동의 완료를 모니터링한다. 행동이 완료되었다고 시스템이 결정한다면, 시스템은 블록 358로 진행하여 다음 행동의 수행을 시작한다.
블록 356B에서, 시스템은 보정 사용자 인터페이스 입력의 수신을 모니터링한다. 시스템은, 행동의 수행 이전에, 동안에 또는 이후에, (예를 들어, 행동의 수행 후의 적어도 임계 지속시간 동안에) 보정 사용자 인터페이스 입력의 수신을 모니터링할 수 있다. 보정 UI 입력이 수신되면, 시스템은 블록 360으로 진행한다.
작업 예를 계속하여, 시스템이 물체를 집었고, 여전히 그 물체를 집고 있는 동안, "그렇게 말고"라는 사용자 인터페이스 입력이 수신된다고 가정한다. 이러한 한 예에서, 시스템은 "그렇게 말고"가 보정 사용자 인터페이스 입력이라고 결정하고 블록 360으로 진행할 수 있다. 많은 시나리오에서, 시스템은, 시스템의 관점에서 행동의 수행이 정확하더라도, 블록 356B에서 보정 UI 입력을 수신한다는 점에 유의한다. 다시 말해, 보정 사용자 인터페이스 입력이 없다면, 시스템은 행동의 수행의 부정확한 특성을 자체 인식하지 않을 것이다.
블록 360에서, 시스템은 보정 사용자 인터페이스 입력의 수신에 기초하여 로컬 수행을 변경한다. 예를 들어, 시스템은, 사용자 인터페이스 입력이 보정 입력이라고 결정하는 것에 기초하여 및/또는 보정 입력의 하나 이상의 보정 상세사항(예를 들어, 입력의 보정 상세사항 및/또는 서브블록 360A의 추가 보정 상세사항)에 기초하여 로컬 수행을 변경할 수 있다. 작업 예를 계속하여, 시스템은 물체를 그 원래 위치에 "배치"하고 집기를 중단할 수 있다.
일부 구현들에서, 블록 360은 서브블록 360A를 포함하고, 여기서 시스템은 추가의 보정 상세사항을 요청하고 수신한다. 작업 예를 계속하면, 시스템은 "집는 올바른 방법을 보여줄 수 있습니까?"라는 사용자 인터페이스 출력을 제공할 수 있다. 응답하여, 사용자는 로봇을 물리적으로 조작함으로써 정확한 집기를 운동감각적으로 가르칠 수 있다. 예를 들어, 시스템은 로봇이 낮은 기계적 임피던스인 "중력-보상된" 모드에 있게끔 할 수 있고, 그 동안에 사용자는 정확한 집기를 예시하기 위해 로봇을 물리적으로 조작할 수 있다. 이러한 한 경우에, 시스템은 물체에 대한 정확한 집기 파라미터를 결정하기 위해 센서 데이터를 기록할 수 있고, 현재 행동 및/또는 물체를 집을 미래의 행동에 대해 이들 정확한 집기 파라미터들을 이용할 수 있다. 더욱이, 정확한 집기 파라미터는, 추가로 또는 대안으로서, 블록 362에서 생성된 보정 인스턴스에 포함될 수 있다.
블록 362에서, 시스템은 보정 인스턴스를 생성한다. 보정 인스턴스는, 시각 센서 데이터 및/또는 보정에 관련된 기타의 센서 데이터를 포함할 수 있다. 예를 들어, 시스템은, 행동의 초점이 되는 물체(들)를 포착하는 것에 기초하여, 보정의 임계 시간적 근접성 내에 있는 것에 기초해 시각 센서 데이터를 포함할 수 있고, 등등일 수 있다. 일부 구현들에서, 시스템은 또한, 선택사항으로서, 보정 인스턴스에서 : 블록 354에서 결정된 파라미터(들), 블록 356B에서 수신된 보정 사용자 인터페이스 입력 및/또는 블록 360A에서 수신된 추가 보정 상세사항에 기초하는 보정 정보, 및/또는 기타의 데이터를 포함한다.
조작 예를 계속하여, 시스템은, 복수의 자세에서 물체를 집합적으로 포착하고, 부정확한 집기 파라미터 및/또는 인간이 예시한 집기 파라미터(있다면, 블록 360A에서 결정된 것)를 포함하는 시각 센서 데이터의 복수의 인스턴스를 포함하는 보정 인스턴스를 제공할 수 있다.
블록 364에서, 시스템은 블록 362에서 생성된 보정 인스턴스를 전송한다. 예를 들어, 시스템은 하나 이상의 네트워크를 통해 보정 인스턴스를 원격 컴퓨팅 디바이스에 전송할 수 있다.
블록 366에서, 시스템은 보정 인스턴스에 기초하여 훈련되는 업데이트된 신경망 모델을 이용한다. 예를 들어, 미래의 작업에 대한 파라미터를 결정함에 있어서, 시스템은 블록 352에서 이용되는 신경망 모델 대신에 업데이트 신경망 모델을 이용할 수 있다. 일부 구현들에서, 업데이트된 신경망 모델은 보정 인스턴스에 기초하여 생성된 훈련 예(들)에 기초하여 및 복수의 추가 로봇들로부터의 다른 보정 인스턴스에 기초하여 생성된 다른 훈련 예들에 기초하여 훈련된다. 많은 구현들에서 블록 364와 블록 366 사이에는 시간 지연(예를 들어, 수 시간, 수 일, 수 주)이 있을 것임을 이해할 것이다. 한편, 시스템은 다른 행동을 수행함에 있어서 "이전" 신경망 모델을 계속 이용할 수 있다.
작업 예를 계속하여, 블록 364에서 전송된 보정 인스턴스는, 각각이 보정 인스턴스의 시각 센서 데이터의 대응하는 인스턴스에 기초한 훈련 예 입력, 및 인간이 예시한 집기 파라미터 및/또는 부정확한 집기 파라미터에 기초하는 훈련 예 출력을 포함하는 훈련 예들을 생성하는데 이용될 수 있다.
이제 도 4를 참조하면, 다양한 구현에 따른 또 다른 예시적인 방법(400)이 설명된다. 방법(400)은 도 3의 방법(300)의 특정한 구현을 나타낸다는 점에 유의한다.
편의상, 도 4의 플로차트의 동작들은 동작들을 수행하는 시스템을 참조하여 설명된다. 이 시스템은, 로봇 및/또는 로봇과 통신하는 하나 이상의 컴퓨팅 디바이스의 다양한 컴포넌트를 포함할 수 있다. 더욱이, 방법(400)의 동작들이 특정한 순서로 도시되어 있지만, 이것은 제한적인 의미가 아니다. 하나 이상의 동작이 재정렬되거나, 생략되거나 추가될 수 있다.
블록 452에서, 시스템은 하나 이상의 신경망 모델로의 센서 데이터의 적용에 기초하여 로봇 환경에서 물체를 검출하고 추적한다. 예를 들어, 시스템은, 물체를 포착하는 시각 센서 데이터의 인스턴스들의 하나 이상의 신경망 모델로의 적용에 기초하여 물체에 대한 자세(및 대응하는 타임스탬프)를 반복적으로 결정할 수 있다.
블록 452는, 선택사항으로서 블록 452A를 포함하고, 이 블록에서, 시스템은 또한, 하나 이상의 신경망 모델 및/또는 추가 신경망 모델에 기초하여 물체의 분류를 결정한다.
블록 454에서, 시스템은 물체를 향한 로봇 행동을 수행한다. 예를 들어, 시스템은, 물체를 집거나 기타의 방식으로 접촉하는데 있어서, 물체를 더 잘 볼 수 있도록 등에 있어서, 물체를 향하여 더 가깝게 및/또는 물체와 접촉하도록, 로봇의 하나 이상의 컴포넌트를 이동시킬 수 있다.
블록 454는 선택사항으로서 블록들 454A 및/또는 454B를 포함한다.
블록 454A에서, 시스템은 물체의 분류를 나타내는 사용자 인터페이스 입력에 응답하여 로봇 행동을 수행한다. 예를 들어, 시스템은, 블록 452A에서 결정된 물체에 대한 분류를 나타내는 수신된 사용자 인터페이스에 기초하여 물체를 향한 행동을 수행할 수 있다. 작업 예로서, "리모콘을 발견하라"는 사용자 인터페이스 입력에 응답하여, 시스템은 "리모콘" 분류를 갖는다고 결정한 물체를 향해 행동을 수행할 수 있다.
블록 454B에서, 시스템은 블록 454B에서 결정된 물체에 대한 분류를 나타내는 사용자 인터페이스 출력을 제공한다. 예를 들어, 로봇 행동의 수행 이전에 및/또는 동안에, 시스템은 "리모콘을 집어들어라"는 오디오 출력을 제공할 수 있다. 블록 456에서, 시스템은 수신된 사용자 인터페이스 입력이 물체를 향한 로봇 행동의 보정을 나타낸다고 결정한다. 작업 예를 계속하면서, 시스템이 "리모콘"이라고 간주한 것을 집어드는 로봇 행동을 수행하는데 있어서, 시스템은 "전화 말고"라는 사용자 인터페이스 입력을 수신할 수 있다. 시스템은, "말고"의 존재에 기초하여 및/또는 "전화"와 "리모콘" 사이의 상충을 결정하는 것에 기초하여 수신된 사용자 인터페이스 입력이 보정을 나타낸다고 결정한다.
블록 458에서, 시스템은 보정 사용자 인터페이스 입력의 수신에 기초하여 로컬 수행을 변경한다. 예를 들어, 시스템은, 사용자 인터페이스 입력이 보정 입력이라고 결정하는 것에 기초하여 및/또는 보정 입력의 하나 이상의 보정 상세사항(예를 들어, 입력의 보정 상세사항 및/또는 서브블록 458A의 추가 보정 상세사항)에 기초하여 로컬 수행을 변경할 수 있다. 작업 예를 계속하여, 시스템은 물체를 그 원래 위치에 "배치"하고 집기를 중단할 수 있다. 또 다른 예로서, 작업 예를 계속하면, 시스템은, 물체의 분류를 "리모콘"으로부터 "전화"로 변경하고, 하나 이상의 다운스트림 행동에서 변경된 분류를 이용할 수 있다(예를 들어, "전화를 집어들어라"는 요청에 즉시 정확하게 응답하는 것을 가능케함).
일부 구현들에서, 블록 458은 서브블록 458A를 포함하고, 여기서 시스템은 추가의 보정 상세사항을 요청하고 수신한다. 예를 들어, 블록 456의 수신된 사용자 인터페이스 입력이 "아니오, 그거 말고"(및 "전화"를 식별하지 않았다)이면, 시스템은 "제가 부정확하게 집어들었는지를 말해 줄 수 있습니까?"라는 사용자 인터페이스 출력을 제공할 수 있다. 응답하여, 사용자는 "전화"라는 추가 음성 입력을 제공할 수 있다. 이러한 한 예에서, 시스템은 물체에 대한 분류를 "리모콘"으로부터 "전화"로 변경하고, 현재의 행동 및/또는 미래의 행동에 대한 정확한 "전화” 분류를 이용할 수 있다. 또한, 정확한 "전화" 분류가, 추가로 또는 대안으로서, 블록 "460"에서 생성되는 보정 인스턴스에 포함될 수 있다.
블록 460에서, 시스템은 물체를 포착하는 시각 센서 데이터의 복수의 인스턴스를 포함하는 보정 인스턴스를 생성한다. 예를 들어, 시스템은, 물체를 검출하거나 및/또는 물체의 분류를 결정하기 위해 블록 452에서 이전에 이용된 것에 기초하여 시각 센서 데이터를 포함할 수 있다. 또한, 예를 들어, 시스템은, 소정 시간에 환경의 한 영역을 포착하는 것에 기초하여 시각 센서 데이터 인스턴스를 포함할 수 있고, 그 소정 시간 동안에 시공간 모델은 물체가 그 영역에 존재했다는 것을 나타낸다.
일부 구현들에서, 블록 460은 서브블록들 460A 및/또는 460B를 포함한다. 블록 460A에서, 시스템은 물체의 결정된 분류를 보정 인스턴스에 포함한다. 즉, 블록 452A에서 부정확하게 결정된 분류. 블록 460B에서, 시스템은 보정 인스턴스에 보정 정보를 포함한다. 보정 정보는, 예를 들어, 블록 454B 또는 블록 458A에서 제공되는 인간이 제공한 분류의 표시를 포함할 수 있다. 추가의 및/또는 대안적인 데이터가 선택사항으로서 시스템에 의해 보정 인스턴스에 포함될 수 있다.
블록 462에서, 시스템은 블록 460에서 생성된 보정 인스턴스를 전송한다. 예를 들어, 시스템은 하나 이상의 네트워크를 통해 보정 인스턴스를 원격 컴퓨팅 디바이스에 전송할 수 있다.
블록 464에서, 시스템은 보정 인스턴스에 기초하여 훈련되는 업데이트된 신경망 모델을 이용한다. 예를 들어, 미래의 작업에 대한 파라미터를 결정함에 있어서, 시스템은 블록 452 및/또는 블록 452A에서 이용되는 신경망 모델(들) 대신에 업데이트 신경망 모델을 이용할 수 있다. 일부 구현들에서, 업데이트된 신경망 모델은 보정 인스턴스에 기초하여 생성된 훈련 예(들)에 기초하여 및 복수의 추가 로봇들로부터의 다른 보정 인스턴스들에 기초하여 생성된 다른 훈련 예들에 기초하여 훈련된다. 많은 구현들에서 블록 462와 블록 464 사이에는 시간 지연(예를 들어, 수 시간, 수 일, 수 주)이 있을 것임을 이해할 것이다. 한편, 시스템은 다른 행동을 수행함에 있어서 "이전" 신경망 모델을 계속 이용할 수 있다.
이제 도 5를 참조하면, 다양한 구현에 따른 역시 또 다른 예시적인 방법(500)이 설명된다. 편의상, 플로차트의 동작들은 그 동작들을 수행하는 시스템을 참조하여 설명된다. 이 시스템은, 로봇 및/또는 로봇과 통신하는 하나 이상의 컴퓨팅 디바이스의 다양한 컴포넌트를 포함할 수 있다. 더욱이, 방법(500)의 동작들이 특정한 순서로 도시되어 있지만, 이것은 제한적인 의미가 아니다. 하나 이상의 동작이 재정렬되거나, 생략되거나 추가될 수 있다.
도 5의 방법(500)은, 블록 364(도 3) 및/또는 블록 462(도 4)에서 제공되는 보정 인스턴스 등의, 보정 인스턴스에 기초하여 신경망 모델의 개정된 버전을 생성하는 예를 나타낸다.
블록 552에서, 시스템은 복수의 로봇으로부터 보정 인스턴스들을 수신한다. 일부 구현들에서, 수신된 보정 인스턴스들은 모두 동일한 주어진 신경망 모델에 적용가능하다. 예를 들어, 수신된 보정 인스턴스들은 모두 물체의 분류에 이용되는 신경망 모델에 적용가능할 수 있다.
일부 다른 구현에서, 블록 552에서 수신된 보정 인스턴스들은 집합적으로 다양한 신경망 모델에 적용가능할 수 있다. 예를 들어, 일부 보정 인스턴스는 "분류" 신경망 모델에 적용가능하고, 다른 보정 인스턴스는 "집기" 신경망 모델 등에 적용가능하고, 등등이다. 이들 구현들 중 일부에서, 블록 552는 서브블록 552A를 포함하고, 여기서, 시스템은 주어진 신경망 모델에 적용가능한 보정 인스턴스를 결정한다. 다시 말해서, 블록 552A에서, 시스템은, 다양한 신경망 모델에 적용가능한 보정 인스턴스들의 그룹으로부터, 주어진 신경망 모델에 적용가능한 서브그룹을 결정할 수 있다. 블록 552A에서, 시스템은 보정 인스턴스의 내용의 분석에 기초하여 보정 인스턴스를 결정할 수 있다. 예를 들어, 시스템은, 주어진 신경망 모델(또는 대응하는 버전)을 명시적으로 나타내는 보정 인스턴스에 기초하여 이러한 보정 인스턴스를 결정할 수 있다. 또한, 예를 들어, 시스템은, 추가로 또는 대안으로서, 주어진 모델을 나타내는 이러한 보정 인스턴스에 포함된 보정 정보에 기초하여 이러한 보정 인스턴스를 결정할 수 있다.
블록 554에서, 시스템은 주어진 신경망 모델에 대한 보정 인스턴스를 선택한다.
블록 556에서, 시스템은 선택된 보정 인스턴스에 기초하여 하나 이상의 훈련 예를 생성 및 저장한다.
블록 558에서, 시스템은 주어진 신경망 모델에 대해 추가의 보정 인스턴스가 이용가능한지를 결정한다. 만일 그렇다면, 시스템은 블록 554로 진행하여 추가 보정 인스턴스를 선택한 다음, 블록 556으로 다시 진행하여 선택된 추가 보정 인스턴스에 기초하여 추가 훈련 예(들)를 생성 및 저장한다. 이것은 반복적으로 수행될 수 있고, 선택사항으로서 (이하에서 설명되는) 블록 560과 병렬로 수행될 수도 있다.
블록 560에서, 시스템은 블록 556의 반복을 통해 생성된 훈련 예들에 기초한 훈련에 의해 주어진 신경망 모델의 개정된 버전을 생성한다. 예를 들어, 시스템은, 블록 552의 보정 인스턴스들을 제공한 로봇들에 의해 이용된 주어진 신경망 모델의 동일한 버전, 동일한 모델의 상이한 버전, 또는 상이한(그러나 기능적으로 유사한) 모델과 함께 시작할 수 있다. 일부 구현에서, 시스템은 하나 이상의 기준이 충족될 때까지 훈련에 의해 개정된 버전을 생성한다. 기준은, 예를 들어, 모든 "현재" 훈련 예의 이용, 이용중에 있는 훈련 예들의 적어도 임계량, 달성중에 있는 훈련의 적어도 임계 지속시간 등을 포함할 수 있다.
블록 562에서, 시스템은 주어진 신경망 모델 대신에 이용하기 위한 주어진 신경망 모델의 개정된 버전을 제공한다.
도 6은, 보정 인스턴스(680)에 기초하여 훈련 예들(680A-680N)을 생성하고, 훈련 예들을 이용하여 신경망 모델을 훈련시켜 개정된 신경망 모델(151G)을 생성하는 예를 나타낸다.
도 6의 보정 인스턴스(680)의 구현은 물체의 부정확하게 결정된 분류의 인간 보정에 기초한다. 보정 인스턴스(680)는 센서 데이터 인스턴스들(685A-N)을 포함한다. 인스턴스들(685A-N) 중의 각각의 센서 데이터 인스턴스는 대응하는 시간 동안 센서 데이터(예를 들어, 시각 센서 데이터, 위치 센서 데이터)를 포함한다.
보정 인스턴스(680)는 또한, 부정확한 분류 표시(681), 정확한 분류 표시(682), 물체 ID(683), 및 신경망 ID(684)를 포함한다. 부정확한 분류 표시(681)는, 대응하는 신경망 모델을 이용하여 대응하는 파라미터 모듈에 의해 부정확하게 결정된 물체에 대한 물체 분류를 나타낼 수 있다. 정확한 분류 표시(682)는, 인간 보정에 기초하여 결정될 수 있는 보정 정보의 한 예이다. 예를 들어, 정확한 분류 표시(682)는, 인간 보정의 자연어 사용자 인터페이스 입력에 기초할 수 있고 부정확하게 분류된 물체에 대한 정확한 분류를 나타낸다. 물체 ID(683)는 물체를 식별한다. 예를 들어, 물체 ID(683)는 물체의 자세(들) 및/또는 물체의 또 다른 고유 식별자일 수 있다. 신경망 ID(684)는 물체의 부정확한 분류를 결정하는데 있어서 이용된 신경망을 나타낸다.
수집 엔진(140)은 보정 인스턴스(680)를 이용하여 복수의 훈련 예(680A-680N)를 생성한다. 훈련 예(680A)는 보정 인스턴스(680)의 센서 데이터 인스턴스(685A)에 기초한 입력을 포함한다. 예를 들어, 센서 데이터 인스턴스(685A)는, 시각 센서 데이터가 물체를 포함한다고 결정하는 것에 기초하여(예를 들어, 물체 ID(683)에 의해 표시된 자세를 포착한다는 결정에 기초하여) 선택된 시각 센서 데이터 인스턴스를 포함할 수 있다. 다른 구현들에서, 물체를 포착하는 시각 센서 데이터 인스턴스만이 보정 인스턴스(680)에 제공된다(훈련 예 입력을 생성하는데 이용되는 시각 센서 데이터가 물체를 포함한다는 것을 보장하기 위한 수집 엔진의 필요성을 제거함). 훈련 예(680A)는 또한, 부정확한 분류 표시(681) 및/또는 정확한 분류 표시(682)에 기초한 훈련 예 출력을 포함한다. 예를 들어, 훈련 예 출력은, 다음 중 하나 또는 양쪽 모두를 표시할 수 있다 : 부정확한 분류 표시(681)는 센서 데이터 인스턴스(685A)에서의 물체에 대한 정확한 분류가 아니라는 것; 및 정확한 분류 표시(682)는 센서 데이터 인스턴스(685A)에서의 물체에 대한 정확한 분류라는 것.
훈련 예(680N)는, 보정 인스턴스(680)의 센서 데이터 인스턴스(685N)에 기초한 입력을 포함한다. 예를 들어, 센서 데이터 인스턴스(685N)는 센서 데이터 인스턴스(685A)와는 상이한 시각 센서 데이터 인스턴스를 포함할 수 있다. 예를 들어, 이것은 또한, 물체를 포착할 수도 있지만, 상이한 자세로부터 물체를 포착할 수 있다(즉, 시각 센서는 포착 동안에 물체에 관해 상이한 자세에 있었다). 훈련 예(680N)는 또한, 부정확한 분류 표시(681) 및/또는 정확한 분류 표시(682)에 기초한 훈련 예 출력을 포함한다. 예를 들어, 훈련 예 출력은, 다음 중 하나 또는 양쪽 모두를 표시할 수 있다 : 부정확한 분류 표시(681)는 센서 데이터 인스턴스(685N)에서의 물체에 대한 정확한 분류가 아니라는 것; 및 정확한 분류 표시(682)는 센서 데이터 인스턴스(685N)에서의 물체에 대한 정확한 분류라는 것. 훈련 예(680A)와 훈련 예(680N) 사이의 생략표에 의해 나타낸 바와 같이, 추가 훈련 예들이 보정 인스턴스(680)에 기초하여 생성될 수 있다.
훈련 엔진(145)은, 신경망 ID(684)에 대응하는 신경망 모델을 훈련시키기 위해, 훈련 예들(680A-680N), 및 선택사항으로서 다른 로봇들로부터의 보정 인스턴스들에 기초하여 생성된 추가 훈련 예들을 이용한다. 이러한 훈련을 통해, 개정된 신경망 모델(151G)이 생성되고, 신경망 ID(684)의 신경망 모델 대신에 이용되도록 제공될 수 있다.
도 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)은, 계획 모듈(122), 명령 모듈(123), UI 입력 모듈(124), UI 출력 모듈(125), 보정 모듈(126), 보정 인스턴스 엔진(130), 및/또는 로봇 데이터 엔진(135)을 구현할 수 있다. 또한, 예를 들어, 제어 시스템(702)은 (예를 들어, 네트워크 인터페이스(715)를 통해) 파라미터 모듈들(121A-N) 및/또는 NLP 시스템(133)과 인터페이스할 수 있다. 추가로 또는 대안으로서, 제어 시스템(702)은 하나 이상의 파라미터 모듈(121A-N)을 구현할 수 있고 선택사항으로서 하나 이상의 신경망 모델(150A-N)을 로컬 저장할 수 있다.
도 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 (19)

  1. 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    물체를 향하여 행동을 수행하는 로봇의 움직임 동안 음성 사용자 인터페이스 입력을 수신하는 단계;
    상기 음성 사용자 인터페이스 입력의 자연어 프로세싱에 기초하여, 상기 음성 사용자 인터페이스 입력이 상기 물체를 향한 상기 행동에 대한 보정을 나타내는지 여부를 결정하는 단계;
    상기 음성 사용자 인터페이스 입력이 보정을 나타낸다고 결정하는 것에 응답하여:
    추가 보정 상세사항을 요청하는 사용자 인터페이스 출력을 제공하는 단계;
    상기 사용자 인터페이스 출력을 제공하는 것에 응답하여, 추가 보정 상세사항을 포함하는 추가 사용자 인터페이스 입력을 수신하는 단계; 및
    보정 인스턴스를 생성하는 단계 - 상기 보정 인스턴스는, 각각이 상기 물체를 포착하는 시각 센서 데이터의 복수의 인스턴스와 상기 추가 보정 상세사항을 포함하고, 상기 시각 센서 데이터는 상기 로봇의 시각 센서에 의해 생성됨 - ; 및
    상기 보정 인스턴스를 제공하는 단계 - 상기 보정 인스턴스를 제공하는 단계는 상기 보정 인스턴스에 기초하는 복수의 훈련 예의 생성 및 상기 복수의 훈련 예에 기초하는 모델의 훈련을 유발함 -
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 모델은 머신 러닝 모델(machine learning model)이고, 상기 보정 인스턴스를 제공하는 단계는:
    네트워크 인터페이스를 통해 하나 이상의 원격 컴퓨팅 디바이스로 상기 보정 인스턴스를 전송하는 단계
    를 포함하고, 상기 하나 이상의 원격 컴퓨팅 디바이스는 상기 보정 인스턴스를 사용하여 상기 복수의 훈련 예를 생성하고 상기 복수의 훈련 예에 기초하여 상기 머신 러닝 모델을 훈련시키는, 방법.
  3. 제2항에 있어서,
    상기 복수의 훈련 예, 및
    추가 로봇들로부터의 추가 보정 인스턴스들로부터의 추가 훈련 예들
    에 기초하여 상기 머신 러닝 모델이 훈련된 후 상기 머신 러닝 모델을 상기 네트워크 인터페이스를 통해 수신하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서, 상기 보정 인스턴스는 상기 음성 사용자 인터페이스 입력에 기초하는 보정 정보를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 로봇에 대해 로컬인 로컬 모델에 기초하여 상기 물체의 예측된 분류를 결정하는 단계
    를 더 포함하고,
    상기 로봇에 의해 수행되는 행동은 상기 예측된 분류에 기초하여 수행되고,
    상기 보정 인스턴스를 생성하는 단계는 상기 물체의 상기 예측된 분류를 더 포함하도록 상기 보정 인스턴스를 생성하는 단계를 포함하는 방법.
  6. 제5항에 있어서,
    상기 복수의 훈련 예를 생성하는 단계
    를 더 포함하고, 상기 훈련 예들은 상기 예측된 분류가 정확한 분류가 아니라는 것을 나타내는 훈련 예 출력을 포함하는 네거티브 훈련 예들을 포함하는, 방법.
  7. 제1항에 있어서,
    초기 사용자 인터페이스 입력을 수신하는 단계;
    상기 초기 사용자 인터페이스 입력이 상기 물체를 나타낸다고 결정하는 단계; 및
    상기 초기 사용자 인터페이스 입력이 상기 물체를 나타낸다고 결정한 것에 응답하여 상기 물체를 향하여 상기 행동을 수행하라는 로봇 제어 명령들을 생성하는 단계
    를 더 포함하는 방법.
  8. 제7항에 있어서, 상기 보정 인스턴스는 상기 초기 사용자 인터페이스 입력에 기초하는 보정 정보를 더 포함하는, 방법.
  9. 제1항에 있어서,
    상기 음성 사용자 인터페이스 입력이 상기 보정을 나타낸다고 결정한 것에 응답하여:
    상기 음성 사용자 인터페이스 입력에 기초하여 상기 물체와 연관된 로컬 저장된 파라미터를 조정하는 단계를 더 포함하는 방법.
  10. 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    로봇의 환경 내의 하나 이상의 물체들의 분류를 결정하는 단계;
    사용자에 의해 제공된 초기 사용자 인터페이스 입력을 수신하는 단계;
    상기 초기 사용자 인터페이스 입력이 상기 물체들 중 하나 이상의 분류에 부합한다고 결정하는 단계;
    상기 초기 사용자 인터페이스 입력이 상기 물체들 중 하나 이상의 분류에 부합한다고 결정한 것에 응답하여,
    상기 물체들 중 하나 이상을 향한 행동을 수행하라는 제어 명령들을 상기 로봇의 하나 이상의 액츄에이터에 제공하는 단계 - 상기 행동은 상기 물체들 중 하나 이상을 집는 것을 포함함 - ;
    상기 물체들 중 하나 이상을 향한 상기 행동의 완료를 나타내는 사용자 인터페이스 출력을 제공하는 단계;
    상기 사용자 인터페이스 출력을 제공하는 것에 응답하여, 추가 사용자 인터페이스 입력을 수신하는 단계;
    상기 추가 사용자 인터페이스 입력이 상기 물체들 중 하나 이상을 향한 상기 행동에 대한 보정을 나타낸다고 결정하는 단계;
    상기 추가 사용자 인터페이스 입력이 상기 물체들 중 하나 이상을 향한 상기 행동에 대한 보정을 나타낸다고 결정한 것에 응답하여,
    각각이 상기 물체들 중 하나 이상을 포착하는 시각 센서 데이터의 복수의 인스턴스를 포함하는 보정 인스턴스를 생성하는 단계 - 상기 시각 센서 데이터는 상기 로봇의 시각 센서에 의해 생성됨 - ; 및
    상기 보정 인스턴스를 제공하는 단계 - 상기 보정 인스턴스를 제공하는 단계는 모델을 훈련하기 위한 복수의 훈련 예의 생성을 유발함 -
    를 포함하는 방법.
  11. 제10항에 있어서, 상기 행동에 대한 보정이, 상기 로봇의 환경 내에서 상기 물체들 중 하나 이상이 인식되지 않았다는 것을 나타내고, 상기 방법은:
    상기 추가 사용자 인터페이스 입력을 수신하는 것에 응답하여, 인식되지 않았던 상기 물체들 중 하나 이상의, 상기 로봇의 환경 내에서의 위치를 요청하는 추가 사용자 인터페이스 출력을 제공하는 단계; 및
    상기 추가 사용자 인터페이스 출력을 제공하는 것에 응답하여, 상기 물체들 중 하나 이상이 위치한 곳을 나타내는 추가 사용자 인터페이스 입력을 수신하는 단계
    를 더 포함하는 방법.
  12. 제11항에 있어서,
    인식되지 않았던 상기 물체들 중 하나 이상의, 상기 로봇의 환경 내에서의 위치를 요청하는 상기 추가 사용자 인터페이스 출력을 제공하는 단계는 상기 사용자의 클라이언트 디바이스를 통해 상기 로봇의 환경의 이미지를 렌더링하는 단계를 포함하고,
    상기 추가 사용자 인터페이스 입력을 수신하는 단계는, 상기 사용자의 클라이언트 디바이스에 대한 터치 입력 또는 음성 입력을 통해, 인식되지 않았던 상기 물체들 중 하나 이상에 대한 선택을 렌더링된 이미지로부터 수신하는 단계를 포함하는, 방법.
  13. 제11항에 있어서,
    인식되지 않았던 상기 물체들 중 하나 이상의, 상기 로봇의 환경 내에서의 위치를 요청하는 상기 추가 사용자 인터페이스 출력을 제공하는 단계는 인식되지 않았던 상기 물체들 중 하나 이상에 대한 사용자 제스처를 제공하도록 사용자에게 촉구하는 단계를 포함하고,
    상기 추가 사용자 인터페이스 입력을 수신하는 단계는 적어도 상기 사용자 제스처 및 인식되지 않았던 상기 물체들 중 하나 이상을 포착하는 추가 시각 센서 데이터를 수신하는 단계를 포함하는, 방법.
  14. 제11항에 있어서, 상기 보정 인스턴스는 상기 추가 사용자 인터페이스 입력의 표시를 더 포함하는, 방법.
  15. 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    로봇 작업의 수행 동안:
    입력으로서 센서 데이터를 로봇을 위한 모델에 적용하는 단계 - 상기 센서 데이터는 상기 로봇의 하나 이상의 센서에 기초하여 생성됨 - ;
    상기 센서 데이터에 기초하여 현재 모델에 대해 출력을 생성하는 단계;
    상기 로봇 작업을 촉진하기 위해 상기 로봇의 환경 내의 복수의 물체 중 대응하는 물체를 향한 복수의 로봇 행동에 대한 하나 이상의 파라미터를, 상기 생성된 출력에 기초하여, 결정하는 단계;
    상기 로봇 행동들 각각의 수행 동안:
    상기 환경 내의 상기 물체들 중 대응하는 물체의 분류를 결정하는 단계;
    적어도 상기 환경 내의 상기 물체들 중 대응하는 물체의 분류를 말하는 것을 포함하는 가청 출력을 생성하는 단계; 및
    적어도 상기 환경 내의 상기 물체들 중 대응하는 물체의 분류를 말하는 것을 포함하는 가청 출력을 제공하는 단계;
    상기 로봇 행동들 중 주어진 행동의 수행 동안:
    상기 가청 출력을 제공하는 것에 응답하여, 사용자 인터페이스 입력을 수신하는 단계; 및
    상기 사용자 인터페이스 입력이 상기 물체들 중 대응하는 물체를 향한 상기 로봇 행동들 중 상기 주어진 행동에 대한 보정을 나타낸다고 결정하는 단계;
    상기 사용자 인터페이스 입력이 상기 물체들 중 대응하는 물체를 향한 상기 로봇 행동들 중 상기 주어진 행동에 대한 보정을 나타낸다고 결정한 것에 응답하여:
    적어도, 각각이 상기 로봇 행동들 중 상기 주어진 행동을 위해 상기 물체들 중 대응하는 물체를 포착하는 시각 센서 데이터의 복수의 인스턴스를 포함하는 보정 인스턴스를 생성하는 단계 - 상기 시각 센서 데이터는 상기 로봇의 시각 센서에 의해 생성됨 - ; 및
    상기 모델을 훈련시키기 위한 복수의 훈련 예를 생성하는 데 상기 보정 인스턴스를 이용하는 단계
    를 포함하는 방법.
  16. 제15항에 있어서, 상기 사용자 인터페이스 입력은 상기 환경 내의 상기 물체들 중 대응하는 물체의 분류가 부정확한 분류라고 나타내는, 방법.
  17. 제16항에 있어서, 상기 보정 인스턴스는 상기 환경 내의 상기 물체들 중 대응하는 물체에 대한 상기 부정확한 분류의 표시를 더 포함하는, 방법.
  18. 제15항에 있어서, 상기 모델은 신경망 모델이고, 상기 모델을 훈련하기 위한 상기 복수의 훈련 예를 생성하도록 상기 보정 인스턴스를 이용하는 단계는,
    네트워크 인터페이스를 통해 하나 이상의 원격 컴퓨팅 디바이스로 상기 보정 인스턴스를 전송하는 단계
    를 포함하고, 상기 하나 이상의 원격 컴퓨팅 디바이스는 상기 모델을 훈련하기 위한 상기 복수의 훈련 예를 생성하도록 상기 보정 인스턴스를 이용하는, 방법.
  19. 제18항에 있어서,
    상기 복수의 훈련 예, 및
    추가 로봇들로부터의 추가 보정 인스턴스들로부터의 추가 훈련 예
    에 기초하여 상기 신경망 모델이 훈련된 후 상기 네트워크 인터페이스를 통해 상기 신경망 모델을 수신하는 단계
    를 더 포함하는, 방법.
KR1020217037021A 2017-07-03 2018-07-02 로봇 행동들에 대한 보정들의 결정 및 이용 KR102365465B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/640,914 US10562181B2 (en) 2017-07-03 2017-07-03 Determining and utilizing corrections to robot actions
US15/640,914 2017-07-03
KR1020197038754A KR102327825B1 (ko) 2017-07-03 2018-07-02 로봇 행동들에 대한 보정들의 결정 및 이용
PCT/US2018/040641 WO2019010136A2 (en) 2017-07-03 2018-07-02 DETERMINING AND USING CORRECTIONS FOR ROBOT ACTIONS

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020197038754A Division KR102327825B1 (ko) 2017-07-03 2018-07-02 로봇 행동들에 대한 보정들의 결정 및 이용

Publications (2)

Publication Number Publication Date
KR20210138170A true KR20210138170A (ko) 2021-11-18
KR102365465B1 KR102365465B1 (ko) 2022-02-23

Family

ID=63080513

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197038754A KR102327825B1 (ko) 2017-07-03 2018-07-02 로봇 행동들에 대한 보정들의 결정 및 이용
KR1020217037021A KR102365465B1 (ko) 2017-07-03 2018-07-02 로봇 행동들에 대한 보정들의 결정 및 이용

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020197038754A KR102327825B1 (ko) 2017-07-03 2018-07-02 로봇 행동들에 대한 보정들의 결정 및 이용

Country Status (5)

Country Link
US (4) US10562181B2 (ko)
EP (2) EP3628031B1 (ko)
JP (3) JP6980042B2 (ko)
KR (2) KR102327825B1 (ko)
WO (1) WO2019010136A2 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9358685B2 (en) * 2014-02-03 2016-06-07 Brain Corporation Apparatus and methods for control of robot actions based on corrective user inputs
US10562181B2 (en) 2017-07-03 2020-02-18 X Development Llc Determining and utilizing corrections to robot actions
JP6676030B2 (ja) * 2017-11-20 2020-04-08 株式会社安川電機 把持システム、学習装置、把持方法、及び、モデルの製造方法
US10792809B2 (en) * 2017-12-12 2020-10-06 X Development Llc Robot grip detection using non-contact sensors
US10682774B2 (en) 2017-12-12 2020-06-16 X Development Llc Sensorized robotic gripping device
US10754318B2 (en) * 2017-12-21 2020-08-25 X Development Llc Robot interaction with objects based on semantic information associated with embedding spaces
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)
US11597086B2 (en) 2018-09-13 2023-03-07 The Charles Stark Draper Laboratory, Inc. Food-safe, washable interface for exchanging tools
JP7205752B2 (ja) * 2018-11-09 2023-01-17 オムロン株式会社 ロボット制御装置、ロボット制御方法、及びロボット制御プログラム
US11213946B1 (en) * 2018-12-27 2022-01-04 X Development Llc Mitigating reality gap through optimization of simulated hardware parameter(s) of simulated robot
US11022961B2 (en) * 2019-04-04 2021-06-01 Plus One Robotics, Inc. Industrial robotics systems and methods for continuous and automated learning
CN109807902B (zh) * 2019-04-08 2020-12-08 青岛大学 一种基于反步法的双机械臂力/位模糊混合控制方法
KR20190104483A (ko) * 2019-08-21 2019-09-10 엘지전자 주식회사 로봇 시스템 및 그 제어 방법
US11262887B2 (en) * 2019-09-13 2022-03-01 Toyota Research Institute, Inc. Methods and systems for assigning force vectors to robotic tasks
KR20220109467A (ko) * 2019-12-13 2022-08-04 줌 비디오 커뮤니케이션즈, 인크. 요청 대화에서의 오류 정정 및 추출
DE102020102863A1 (de) 2020-02-05 2021-08-05 Festo Se & Co. Kg Parametrierung einer Komponente in der Automatisierungsanlage
JP7452619B2 (ja) * 2020-02-25 2024-03-19 日本電気株式会社 制御装置、制御方法及びプログラム
EP4114622A1 (en) * 2020-03-06 2023-01-11 Embodied Intelligence Inc. Imaging process for detecting failure modes
CN114648148A (zh) * 2020-12-18 2022-06-21 广东博智林机器人有限公司 机器人的参数预测方法、装置、存储介质和处理器
US20220203547A1 (en) * 2020-12-31 2022-06-30 Plus One Robotics, Inc. System and method for improving automated robotic picking via pick planning and interventional assistance
US11725924B2 (en) * 2021-08-10 2023-08-15 Palo Alto Research Center Incorporated Controlling mechanical systems based on natural language input
US20230278201A1 (en) * 2022-03-04 2023-09-07 Sanctuary Cognitive Systems Corporation Robots, tele-operation systems, computer program products, and methods of operating the same
CN114523478B (zh) * 2022-04-24 2022-06-28 季华实验室 机械臂结构参数的补偿模型获取方法和补偿方法
US20230351217A1 (en) * 2022-04-28 2023-11-02 Theai, Inc. Agent-based training of artificial intelligence character models

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130346348A1 (en) * 2012-06-21 2013-12-26 Rethink Robotics, Inc. Vision-guided robots and methods of training them
US20200215686A1 (en) * 2016-03-03 2020-07-09 Google Llc Deep machine learning methods and apparatus for robotic grasping

Family Cites Families (26)

* 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 脚式移動ロボット及びその動作教示方法
JP4850984B2 (ja) * 2009-12-28 2012-01-11 パナソニック株式会社 動作空間提示装置、動作空間提示方法およびプログラム
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
JP2014106597A (ja) 2012-11-26 2014-06-09 Toyota Motor Corp 自律移動体、物体情報取得装置、および物体情報取得方法
KR102387314B1 (ko) 2013-03-11 2022-04-14 매직 립, 인코포레이티드 증강 및 가상 현실을 위한 시스템 및 방법
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
WO2015071815A1 (en) 2013-11-13 2015-05-21 Koninklijke Philips N.V. Hierarchical self-learning system for computerized clinical diagnostic support
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
US10824958B2 (en) 2014-08-26 2020-11-03 Google Llc Localized learning from a global model
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 トヨタ自動車株式会社 物品搬送用ロボット
US9785866B2 (en) 2015-01-22 2017-10-10 Microsoft Technology Licensing, Llc Optimizing multi-class multimedia data classification using negative data
JP6446126B2 (ja) 2015-04-17 2018-12-26 Cocoro Sb株式会社 処理システム及びプログラム
JP6249247B2 (ja) * 2016-02-29 2017-12-20 ソニー株式会社 制御装置、制御方法、およびプログラム
CA3029968A1 (en) * 2016-07-18 2018-01-25 Lael Odhner Training robotic manipulators
US11176423B2 (en) 2016-10-24 2021-11-16 International Business Machines Corporation Edge-based adaptive machine learning for object recognition
US10360531B1 (en) * 2016-12-19 2019-07-23 Amazon Technologies, Inc. Robot implemented item manipulation
US10562181B2 (en) 2017-07-03 2020-02-18 X Development Llc Determining and utilizing corrections to robot actions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130346348A1 (en) * 2012-06-21 2013-12-26 Rethink Robotics, Inc. Vision-guided robots and methods of training them
US20200215686A1 (en) * 2016-03-03 2020-07-09 Google Llc Deep machine learning methods and apparatus for robotic grasping

Also Published As

Publication number Publication date
EP4219088A1 (en) 2023-08-02
JP7054755B2 (ja) 2022-04-14
US11198217B2 (en) 2021-12-14
KR102365465B1 (ko) 2022-02-23
EP3628031A2 (en) 2020-04-01
KR20200016296A (ko) 2020-02-14
EP3628031B1 (en) 2023-06-07
JP2022101580A (ja) 2022-07-06
JP2022024072A (ja) 2022-02-08
US20230405812A1 (en) 2023-12-21
JP7128377B2 (ja) 2022-08-30
JP6980042B2 (ja) 2021-12-15
WO2019010136A3 (en) 2019-02-21
JP2020526402A (ja) 2020-08-31
US11780083B2 (en) 2023-10-10
WO2019010136A2 (en) 2019-01-10
US10562181B2 (en) 2020-02-18
KR102327825B1 (ko) 2021-11-17
US20190001489A1 (en) 2019-01-03
US20200130176A1 (en) 2020-04-30
US20220055209A1 (en) 2022-02-24

Similar Documents

Publication Publication Date Title
KR102365465B1 (ko) 로봇 행동들에 대한 보정들의 결정 및 이용
US11640517B2 (en) Update of local features model based on correction to robot action
US11724398B2 (en) Efficient robot control based on inputs from remote client devices
US10507577B2 (en) Methods and systems for generating instructions for a robotic system to carry out a task

Legal Events

Date Code Title Description
A107 Divisional application of patent
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant