KR20180114217A - 로봇 파지용 심층 기계 학습 방법 및 장치 - Google Patents

로봇 파지용 심층 기계 학습 방법 및 장치 Download PDF

Info

Publication number
KR20180114217A
KR20180114217A KR1020187028530A KR20187028530A KR20180114217A KR 20180114217 A KR20180114217 A KR 20180114217A KR 1020187028530 A KR1020187028530 A KR 1020187028530A KR 20187028530 A KR20187028530 A KR 20187028530A KR 20180114217 A KR20180114217 A KR 20180114217A
Authority
KR
South Korea
Prior art keywords
end effector
training
neural network
image
robot
Prior art date
Application number
KR1020187028530A
Other languages
English (en)
Other versions
KR102023588B1 (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 KR1020197026856A priority Critical patent/KR102487493B1/ko
Publication of KR20180114217A publication Critical patent/KR20180114217A/ko
Application granted granted Critical
Publication of KR102023588B1 publication Critical patent/KR102023588B1/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
    • 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/1612Programme controls characterised by the hand, wrist, grip 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/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
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • 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/1669Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
    • 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/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
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39509Gripping, grasping, links embrace, encircle, envelop object to grasp

Landscapes

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

Abstract

로봇의 엔드 이펙터에 의한 오브젝트의 조작과 관련된 심층 기계 학습 방법 및 장치. 로봇의 엔드 이펙터에 대한 후보 모션 데이터가 엔드 이펙터에 의한 하나 이상의 오브젝트들의 성공적인 파지를 결과로 할 것이라는 측정치를 예측하기 위해 일부 구현예들은 심층 신경 네트워크를 트레이닝하는 것과 관련된다. 로봇의 파지 엔드 이펙터를 서보제어하여 파지 엔드 이펙터에 의한 오브젝트의 성공적인 파지를 달성하기 위해 일부 구현예들이 트레이닝된 심층 신경 네트워크를 활용하도록 유도된다. 예를 들어, 트레이닝된 심층 신경 네트워크는 로봇의 파지 엔드 이펙터의 포즈를 제어하는 로봇의 하나 이상의 액추에이터들에 대한 모션 제어 명령의 반복적인 업데이트에 활용될 수 있으며, 파지 엔드 이펙터에 의해 시도된 파지를 실시하기 위한 파지 제어 명령들을 언제 생성할지를 결정하기 위해 트레이닝된 심층 신경 네트워크가 활용될 수 있다.

Description

로봇 파지용 심층 기계 학습 방법 및 장치
많은 로봇들이 하나 이상의 엔드 이펙터들을 사용하여 하나 이상의 오브젝트들을 파지하도록 프로그래밍된다. 예를 들어, 로봇은 제1 위치로부터 오브젝트를 픽업하기 위해 "충격식" 파지기(gripper) 또는 "유입식" 파지기 (예를 들어, 핀, 바늘 등을 사용하여 오브젝트를 물리적으로 관통하는 것)과 같은 파지 엔드 이펙터를 활용할 수 있으며, 제2 위치로 오브젝트를 이동시키고, 제2 위치에 오브젝트를 떨어뜨린다. 오브젝트들을 파지할 수 있는 로봇 엔드 이펙터들의 몇 가지 추가 예시들은 (예를 들어, 오브젝트를 픽업하기 위해 흡입 또는 진공을 사용하는) "속박형(astrictive)" 엔드 이펙터들 및 하나 이상의 (예를 들어, 오브젝트를 픽업하기 위해 표면 장력, 결빙 또는 접착제를 사용하는) "인접식(contigutive)" 엔드 이펙터들을 포함한다.
본 명세서는 일반적으로 로봇의 엔드 이펙터에 의한 오브젝트의 조작과 관련된 심층 기계 학습 방법들 및 장치에 관한 것이다. 일부 구현예들은 로봇의 엔드 이펙터에 대한 후보 모션 데이터가 엔드 이펙터에 의해 하나 이상의 오브젝트들을 성공적으로 파지하게 될 확률을 예측하기 위해 컨벌루션 신경 네트워크와 (본 명세서에서는 "CNN"으로 또한 지칭됨) 같은 심층 신경 네트워크를 트레이닝하도록 유도된다. 예를 들어, 일부 구현예들은 트레이닝된 심층 신경 네트워크에 입력으로 적어도: (1) 로봇의 (존재하는 경우) 파지 엔드 이펙터의 후보 모션을 정의하는 후보 모션 벡터 및 (2) 로봇의 작업 공간의 적어도 일부를 캡처하는 이미지를 적용하고; 그리고 상기 적용에 기초하여, 후보 모션 벡터의 성공적인 파지를 결과로 할 확률을 직접적으로 또는 간접적으로 표시하는 측정치를 적어도 생성하게 한다. 예측된 확률은 그 후 파지 엔드 이펙터를 갖는 로봇에 의한 파지 시도들의 서보제어(servo) 수행에 사용될 수 있으며, 그에 따라 로봇이 그 환경 내의 오브젝트들을 성공적으로 파지할 수 있는 능력을 개선한다.
로봇의 파지 엔드 이펙터를 서보제어함으로써 파지 엔드 이펙터에 의한 오브젝트의 성공적인 파지를 달성하기 위해, 일부 구현예들은 트레이닝된 심층 신경 네트워크를 활용하도록 유도된다. 예를 들어, 트레이닝된 심층 신경 네트워크는 로봇의 파지 엔드 이펙터의 포즈를 제어하는 로봇의 하나 이상의 액추에이터들에 대한 모션 제어 명령들의 반복적인 업데이트에 활용될 수 있으며 파지 엔드 이펙터에 의해 시도된 파지를 실시(effectuate)하기 위한 파지 제어 명령들을 언제 생성할지를 결정하기 위해 활용될 수 있다. 다양한 구현예들에서, 파지 엔드 이펙터를 서보제어하는 트레이닝된 심층 신경 네트워크의 활용은 로봇의 교란(perturbation)들에 대한 빠른 피드백 및/또는 환경 오브젝트(들)의 모션 및/또는 부정확한 로봇 구동(들)(actuation)에 대한 견고성을 가능하게 할 수 있다.
일부 구현예들에서, 방법은 로봇의 파지 엔드 이펙터(grasping end effector)를 현재 포즈로부터 추가 포즈로 이동시키기 위해 모션을 정의하는 후보 엔드 이펙터 모션 벡터를 생성하는 단계를 포함한다. 상기 방법은 상기 로봇과 연관된 비전 센서에 의해 캡처된 현재 이미지를 식별하는 단계를 더 포함하며 상기 이미지는 상기 로봇의 환경 내의 적어도 하나의 오브젝트 및 상기 파지 엔드 이펙터를 캡처한다. 상기 방법은 트레이닝된 컨벌루션 신경 네트워크에 입력으로서 상기 현재 이미지 및 상기 후보 엔드 이펙터 모션 벡터를 적용하는 단계 및 상기 트레이닝된 컨벌루션 신경 네트워크를 통해, 상기 모션의 적용으로 상기 오브젝트의 성공적인 파지의 측정치를 생성하는 단계를 더 포함한다. 상기 측정치는 상기 트레이닝된 컨벌루션 신경 네트워크에 상기 이미지 및 상기 엔드 이펙터 모션 벡터의 상기 적용에 기초하여 생성된다. 상기 방법은 선택적으로 상기 측정치에 기초하여 엔드 이펙터 명령을 생성하는 단계 및 상기 엔드 이펙터 명령을 상기 로봇의 하나 이상의 액추에이터(actuator)들에 제공하는 단계를 더 포함한다. 상기 엔드 이펙터 명령은 파지 명령 또는 엔드 이펙터 모션 명령이다.
본 방법 및 본 명세서에 개시된 기술의 다른 구현예들은 각각 선택적으로 다음 구성들 중 하나 이상을 포함할 수 있다.
일부 구현예들에서, 상기 방법은 상기 모션의 적용 없이 상기 오브젝트의 성공적인 파지의 현재 측정치를 결정하는 단계를 더 포함하며 상기 엔드 이펙터 명령을 생성하는 단계는 상기 측정치 및 상기 현재 측정치에 기초한다. 이 구현예들의 일부 버전들에서, 상기 엔드 이펙터 명령은 상기 파지 명령이고, 상기 파지 명령을 생성하는 단계는 상기 현재 측정치에 대한 상기 측정치의 비교가 임계값을 만족하는 것으로 결정함에 응답하는 것이다. 이 구현예들의 일부 다른 버전들에서, 상기 엔드 이펙터 명령은 상기 엔드 이펙터 모션 명령이며, 상기 엔드 이펙터 모션 명령을 생성하는 단계는 상기 후보 엔드 이펙터 모션 벡터에 따르도록(conform) 상기 엔드 이펙터 모션 명령을 생성하는 단계를 포함한다. 이 구현예들의 또 다른 버전들에서, 상기 엔드 이펙터 명령은 상기 엔드 이펙터 모션 명령이고, 상기 엔드 이펙터 모션 명령을 생성하는 단계는 상기 엔드 이펙터 모션 명령을 생성하여 상기 엔드 이펙터에 궤도 보정을 실시(effectuate)하는 단계를 포함한다. 일부 구현예들에서, 상기 모션의 적용 없이 상기 오브젝트의 성공적인 파지의 상기 현재 측정치를 결정하는 단계는: 상기 하나 이상의 프로세서들에 의해, 상기 트레이닝된 컨벌루션 신경 네트워크에 입력으로서 상기 이미지 및 널(null) 엔드 이펙터 모션 벡터를 적용하는 단계; 및 상기 트레이닝된 컨벌루션 신경 네트워크를 통해, 상기 모션의 적용 없이 상기 오브젝트의 성공적인 파지의 상기 현재 측정치를 생성하는 단계를 포함한다.
일부 구현예들에서, 상기 엔드 이펙터 명령은 상기 엔드 이펙터 모션 명령이고 상기 후보 엔드 이펙터 모션 벡터를 따르다. 이 구현예들 중 일부에서는, 상기 엔드 이펙터 모션 명령을 상기 하나 이상의 액추에이터들에 제공하는 단계는 상기 엔드 이펙터를 새로운 포즈로 이동시키며 상기 방법은: 상기 하나 이상의 프로세서들에 의해, 상기 파지 엔드 이펙터를 상기 새로운 포즈로부터 추가 포즈로 이동시키기 위해 새로운 모션을 정의하는 추가 후보 엔드 이펙터 모션 벡터를 생성하는 단계; 상기 하나 이상의 프로세서들에 의해, 상기 로봇과 연관된 비전 센서에 의해 캡처된 새로운 이미지를 식별하는 단계, 상기 새로운 이미지는 상기 새로운 포즈에서 상기 엔드 이펙터를 캠처하고 상기 로봇의 환경 내의 상기 오브젝트들을 캡처하며; 상기 하나 이상의 프로세서들에 의해, 상기 트레이닝된 컨벌루션 신경 네트워크에 입력으로서 상기 새로운 이미지 및 상기 추가 후보 엔드 이펙터 모션 벡터를 적용하는 단계; 상기 트레이닝된 컨벌루션 신경 네트워크를 통해, 상기 새로운 모션의 적용으로 상기 오브젝트의 성공적인 파지의 새로운 측정치를 생성하는 단계, 상기 새로운 측정치는 상기 트레이닝된 컨벌루션 신경 네트워크에 상기 새로운 이미지 및 상기 추가 엔드 이펙터 모션 벡터의 상기 적용에 기초하여 생성되고; 상기 새로운 측정치에 기초하여 새로운 엔드 이펙터 명령을 생성하는 단계, 상기 새로운 엔드 이펙터 명령은 상기 파지 명령 또는 새로운 엔드 이펙터 모션 명령이며; 및 상기 새로운 엔드 이펙터 명령을 상기 로봇의 하나 이상의 액추에이터들에 제공하는 단계를 더 포함한다.
일부 구현예들에서, 상기 트레이닝된 컨벌루션 신경 네트워크에 입력으로서 상기 이미지 및 상기 후보 엔드 이펙터 모션 벡터를 적용하는 단계는: 상기 트레이닝된 컨벌루션 신경 네트워크의 초기 계층에 입력으로서 상기 이미지를 적용하는 단계; 및 상기 트레이닝된 컨벌루션 신경 네트워크의 추가 계층에 상기 후보 엔드 이펙터 모션 벡터를 적용하는 단계를 포함한다. 상기 추가 계층은 상기 초기 계층의 다운스트림일 수 있다. 이 구현예들 중 일부에서는, 상기 후보 엔드 이펙터 모션 벡터를 상기 추가 계층에 적용하는 단계는: 엔드 이펙터 모션 벡터 출력을 생성하기 위해 상기 컨벌루션 신경 네트워크의 완전히 연결된 계층을 통해 상기 엔드 이펙터 모션 벡터를 패싱(pass)하는 단계; 및 상기 엔드 이펙터 모션 벡터 출력을 업스트림 출력과 연접(concatenate)하는 단계를 포함한다. 상기 업스트림은 상기 초기 계층 및 상기 컨벌루션 신경 네트워크의 하나 이상의 중간 계층들로부터의 다운스트림과 상기 추가 계층의 바로 업스트림인 상기 컨벌루션 신경 네트워크의 계층의 바로 업스트림 계층으로부터 온 것이다. 상기 초기 계층은 컨벌루션 계층이고 상기 바로 업스트림 계층은 풀링(pooling) 계층이다.
일부 구현예들에서, 상기 방법은 상기 비전 센서에 의해 캡처된 추가 이미지를 식별하는 단계 및 상기 트레이닝된 컨벌루션 신경 네트워크에 추가 입력으로서 상기 추가 이미지를 적용하는 단계를 더 포함한다. 상기 추가 이미지는 상기 하나 이상의 환경 오브젝트들을 캡처하고 상기 로봇 엔드 이펙터를 생략하거나 상기 이미지 내의 상기 로봇 엔드 이펙터의 것과는 상이한 포즈의 상기 로봇 엔드 이펙터를 포함한다. 이 구현예들 중 일부에서는, 상기 컨벌루션 신경 네트워크에 상기 이미지 및 상기 추가 이미지를 적용하는 단계는 연접된 이미지를 생성하기 위해 상기 이미지와 상기 추가 이미지를 연접하는 단계 및 상기 컨벌루션 신경 네트워크의 초기 계층에 입력으로서 상기 연접된 이미지를 적용하는 단계를 포함한다.
일부 구현예들에서, 상기 후보 엔드 이펙터 모션 벡터를 생성하는 단계는 복수의 후보 엔드 이펙터 모션 벡터들을 생성하는 단계 및 상기 복수의 후보 엔드 이펙터 모션 벡터들로부터 상기 후보 엔드 이펙터 모션 벡터를 선택하기 위해 상기 복수의 후보 엔드 이펙터 모션 벡터들에 대한 크로스-엔트로피 최적화의 하나 이상의 반복(iteration)들을 수행하는 단계를 포함한다.
일부 구현예들에서, 로봇들에 의한 복수의 파지 시도들 동안 상기 하나 이상의 로봇들로부터의 센서 출력에 기초하여 생성된 복수의 트레이닝 예시들을 식별하는 단계를 포함하는 방법이 제공된다. 상기 트레이닝 예시들 각각은 트레이닝 예시 입력과 트레이닝 예시 출력을 포함한다. 상기 트레이닝 예시 입력은: 상기 파지 시도들 중 대응하는 파지 시도 시간의 대응 인스턴스에 대한 이미지, 상기 이미지는 상기 시간의 대응 인스턴스에서의 하나 이상의 환경 오브젝트들 및 로봇 엔드 이펙터를 캡처하며, 및 상기 대응하는 파지 시도를 위해 상기 엔드 이펙터의 모션을 정의하여 시간의 상기 대응 인스턴스에서의 상기 엔드 이펙터의 시간 포즈의 인스턴스로부터 상기 엔드 이펙터의 최종 포즈로 이동 시키기 위해 상기 엔드 이펙터의 모션을 정의하는 엔드 이펙터 모션 벡터를 포함한다. 상기 트레이닝 예시 출력은 상기 대응하는 파지 시도의 성공을 표시하는 파지 성공 라벨을 포함한다. 상기 방법은 상기 트레이닝 예시들에 기초하여 상기 컨벌루션 신경 네트워크를 트레이닝하는 단계를 더 포함한다.
본 방법 및 본 명세서에 개시된 기술의 다른 구현예들은 각각 선택적으로 다음 구성들 중 하나 이상을 포함할 수 있다.
일부 구현예들에서, 상기 트레이닝 예시들 각각의 상기 트레이닝 예시 입력은 상기 대응하는 파지 시도를 위한 추가 이미지를 더 포함한다. 상기 추가 이미지는 상기 하나 이상의 환경 오브젝트들을 캡처하고 상기 로봇 엔드 이펙터를 생략하거나 상기 이미지 내의 상기 로봇 엔드 이펙터의 것과는 상이한 포즈의 상기 로봇 엔드 이펙터를 포함한다. 일부 구현예들에서, 상기 컨벌루션 신경 네트워크를 트레이닝하는 단계는, 상기 컨벌루션 신경 네트워크에, 상기 트레이닝 예시들 중에서 주어진 트레이닝 예시의 상기 트레이닝 예시 입력을 적용하는 단계를 포함한다. 이 구현예들 중 일부에서는, 상기 주어진 트레이닝 예시의 상기 트레이닝 예시 입력을 적용하는 단계는: 연접된 이미지를 생성하기 위해 상기 이미지와 상기 주어진 트레이닝 예시의 상기 추가 이미지를 연접하는 단계; 및 상기 컨벌루션 신경 네트워크의 초기 계층에 입력으로서 상기 연접된 이미지를 적용하는 단계를 포함한다.
일부 구현예들에서, 상기 컨벌루션 신경 네트워크를 트레이닝하는 단계는, 상기 컨벌루션 신경 네트워크에, 상기 트레이닝 예시들 중에서 주어진 트레이닝 예시의 상기 트레이닝 예시 입력을 적용하는 단계를 포함한다. 이 구현예들 중 일부에서는, 상기 주어진 트레이닝 예시의 상기 트레이닝 예시 입력을 적용하는 단계는: 상기 컨벌루션 신경 네트워크의 초기 계층에 입력으로서 상기 주어진 트레이닝 예시의 상기 이미지를 적용하는 단계; 및 상기 컨벌루션 신경 네트워크의 추가 계층에 상기 주어진 트레이닝 예시의 상기 엔드 이펙터 모션 벡터를 적용하는 단계를 포함한다. 상기 추가 계층은 상기 초기 계층의 다운스트림이다. 이 구현예들 중 일부에서는, 상기 추가 계층에 상기 엔드 이펙터 모션 벡터를 적용하는 단계는 엔드 이펙터 모션 벡터 출력을 생성하기 위해 완전히 연결된 계층을 통해 상기 엔드 이펙터 모션 벡터를 패싱(pass)하는 단계 및 상기 엔드 이펙터 모션 벡터 출력을 업스트림 출력과 연접하는 단계를 포함한다. 상기 업스트림은 상기 초기 계층 및 상기 컨벌루션 신경 네트워크의 하나 이상의 중간 계층들로부터의 다운스트림과 상기 추가 계층의 바로 업스트림인 상기 컨벌루션 신경 네트워크의 계층의 바로 업스트림 계층으로부터 온 것이다. 상기 초기 계층은 컨벌루션 계층이고 상기 바로 업스트림 계층은 풀링 계층이다.
일부 구현예들에서, 상기 엔드 이펙터 모션 벡터는 작업 공간 내의 상기 엔드 이펙터의 모션을 정의한다.
일부 구현예들에서, 상기 트레이닝 예시들은: 제1 그룹, 상기 트레이닝 예시들 중 상기 제1 그룹은 제1 로봇에 의한 복수의 상기 파지 시도들 동안 상기 제1 로봇의 복수의 제1 로봇 센서들로부터의 출력에 기초하여 생성되며; 및 제2 그룹을 포함하며, 상기 트레이닝 예시들 중 상기 제2 그룹은 제2 로봇에 의한 복수의 상기 파지 시도들 동안 상기 제2 로봇의 복수의 제2 로봇 센서들로부터의 출력에 기초하여 생성된다. 이 구현예들 중 일부에서는, 상기 제1 로봇 센서들은 상기 제1 그룹의 상기 트레이닝 예시들에 대한 상기 이미지들을 생성하는 제1 비전 센서를 포함하고, 상기 제2 로봇 센서들은 상기 제2 그룹의 트레이닝 예시들에 대한 상기 이미지들을 생성하는 제2 비전 센서를 포함하며, 상기 제1 로봇의 제1베이스에 대한 상기 제1 비전 센서의 제1 포즈는 상기 제2 로봇의 제2베이스에 대한 상기 제2 비전 센서의 제2 포즈와 구별된다.
일부 구현예들에서, 복수의 트레이닝 예시들이 기초로 하는 상기 파지 시도들은 상기 엔드 이펙터의 시작 포즈로부터 상기 엔드 이펙터의 상기 최종 포즈로 상기 엔드 이펙터를 랜덤하게 이동시키는 복수의 랜덤 액추에이터 명령들을 각각 포함하고, 그 후 상기 최종 포즈에서 상기 엔드 이펙터로 파지한다. 이 구현예들 중 일부에서는, 상기 트레이닝된 컨벌루션 신경 네트워크에 기초하여 추가 파지 시도들을 생성하는 단계; 상기 추가 파지 시도들에 기초하여 복수의 추가 트레이닝 예시들을 식별하는 단계; 및 상기 추가 트레이닝 예시들에 기초하여 상기 컨벌루션 네트워크를 추가 트레이닝함으로써 상기 컨벌루션 신경 네트워크를 업데이트하는 단계를 더 포함한다.
일부 구현예들에서, 상기 트레이닝 예시들 각각에 대한 상기 파지 성공 라벨은 성공을 표시하는 제1 값 또는 실패를 표시하는 제2 값 중 하나이다.
일부 구현예들에서, 상기 트레이닝은 상기 복수의 트레이닝 예시들 중 상기 트레이닝 예시 출력에 기초하여 상기 컨벌루션 신경 네트워크 상에서 역전파(backpropagation)를 수행함을 포함한다.
다른 구현예들은 상술한 하나 이상의 방법들과 같은 방법을 수행하기 위해 프로세서 (예를 들어, 중앙 처리 장치(CPU) 또는 그래픽 처리 장치(GPU))에 의해 실행 가능한 명령어들을 저장하는 비 일시적 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 또 다른 구현예는 상술한 방법들 중 하나 이상과 같은 방법을 수행하기 위해 저장된 명령어들 실행하도록 동작하는 하나 이상의 프로세서들을 포함하는 하나 이상의 컴퓨터들 및/또는 하나 이상의 로봇들의 시스템을 포함할 수 있다.
전술한 개념들 및 본 명세서에서 보다 상세하게 기술된 추가 개념들의 모든 조합들은 본 명세서에 개시된 발명의 일부로서 고려될 수 있음을 이해해야한다.예를 들어, 본 개시의 끝 부분에 나타나는 청구된 발명의 모든 조합들은 본 명세서에 개시된 발명의 부분으로 고려된다.
도 1은 파지 시도가 로봇들에 의해 수행될 수 있고, 파지 시도들과 연관된 데이터가 트레이닝 예시들을 생성하기 위해 활용될 수 있으며 컨벌루션 신경 네트워크를 트레이닝하기 위해 트레이닝 예시들이 활용될 수 있는 예시적인 환경을 도시한다.
도 2는 도 1의 로봇들 중 하나와 경로를 따르는 로봇의 파지 엔드 이펙터 이동의 예시를 도시한다.
도 3은 파지 시도들을 수행하고 파지 시도들과 연관된 데이터를 저장하는 예시적인 방법을 도시하는 흐름도이다.
도 4는 로봇들의 파지 시도들과 연관된 데이터에 기초하여 트레이닝 예시들을 생성하는 예시적인 방법을 도시하는 흐름도이다.
도 5는 트레이닝 예시들에 기초하여 컨벌루션 신경 네트워크을 트레이닝하는 예시적인 방법을 도시하는 흐름도이다.
도 6a 및 도 6b는 예시적인 컨벌루션 신경 네트워크의 아키텍처를 도시한다.
도 7a는 트레이닝된 컨벌루션 신경 네트워크를 활용하여 파지 엔드 이펙터를 서보제어하는 예시적인 방법을 도시하는 흐름도이다.
도 7b는 도 7a의 흐름도의 일정 블록들의 일부 구현예들을 도시하는 흐름도이다.
도 8은 로봇의 예시적인 아키텍처를 개략적으로 도시한다.
도 9는 컴퓨터 시스템의 예시적인 아키텍처를 개략적으로 도시한다.
본 명세서에 기술된 기술의 일부 구현예들은 CNN과 같은 심층 신경 네트워크를 트레이닝하는 것에 관한 것으로, 트레이닝된 심층 신경 네트워크를 이용하여 로봇의 파지 엔드 이펙터에 대한 후보 모션 데이터가 엔드 이펙터에 의해 하나 이상의 오브젝트들을 성공적으로 파지할 확률을 표시하는 측정치를 예측할 수 있다. 일부 구현예들에서, 트리에닝된 심층 신경 네트워크는 비전 센서에 의해 생성된 이미지(It)를 수용하고 작업 공간 모션 벡터와 같은 엔드 이펙터 모션 벡터(vt)를 수용한다. 트레이닝된 심층 신경 네트워크에 대한 이미지(It) 및 엔드 이펙터 모션 벡터(vt) 모션 벡터(vt)에 의해 정의된 모션을 구현하여, 후속적으로 파지하는 실행 명령어(들)이 성공적인 파지를 생산할 것이라는 예측 측정치를, 심층 신경 네트워크를 통해, 생산하기 위해 사용될 수 있다. 일부 구현예들은 트레이닝된 심층 신경 네트워크를 활용하여 로봇의 파지 엔드 이펙터를 서보제어함으로써 파지 엔드 이펙터에 의해 오브젝트의 성공적인 파지를 달성하도록 유도된다. 이러한 것들의 추가 설명 및 기술의 다른 구현예들이 아래에 제공된다.
도 1 내지 도 6b를 참조하면, CNN을 트레이닝하는 다양한 구현예들이 기술된다. 도 1은 로봇들 (예를 들어, 로봇들(180A, 180B) 및/또는 다른 로봇들)에 의해 파지 시도들이 수행될 수 있고 파지 시도들과 연관된 데이터가 트레이닝 예시들을 생성하기 위해 활용될 수 있으며 CNN을 트레이닝하기 위해 트레이닝 예시들이 활용될 수 있는 예시적인 환경을 도시한다.
예시 로봇들(180A 및 180B)이 도 1에 도시된다. 로봇들(180A 및 180B)은 원하는 위치들에 파지 엔드 이펙터들(182A 및 182B)을 위치시키기 위해 복수의 잠재적 경로들 중 임의의 경로를 따라 파지 엔드 이펙터들(182A 및 182B)의 트래버스(traversal)를 가능하게하는 다수의 자유도를 갖는 "로봇 팔들"이다. 예를 들어, 도 2를 참조하면, 경로(201)를 따라 엔드 이펙터를 트래버싱하는 로봇(180A)의 예시가 도시되어있다. 도 2는 로봇(180A)의 환영(phantom) 및 비 환영(non-phantom) 이미지를 포함하며, 경로(201)를 따라 트래버싱하는 엔드 이펙터와 로봇(180A)에 의한 일련의 포즈들 중 두 개의 상이한 포즈들을 도시한다. 도 1을 다시 참조하면, 로봇들(180A, 180B)은 각각 대응하는 파지 엔드 이펙터(182A, 182B)의 2개의 대향하는(oppesed) "클로(claw)들"을 더 제어하여 적어도 개방 위치와 폐쇄 위치 (및/또는 선택적으로 복수의 "부분적으로 폐쇄된" 위치들) 사이에서 클로들을 구동(actuate)시킨다.
예시적인 비전 센서들(184A 및 184B)이 도 1에 또한 도시되어있다. 도 1에서, 비전 센서(184A)는 로봇(180A)의 베이스 또는 다른 비유동적(stationary) 기준점에 대해 고정된 포즈로 마운트된다. 비전 센서(184B)는 로봇(180B)의 베이스 또는 다른 비유동적 기준점에 대해 고정된 포즈로 또한 마운트된다. 도 1에 도시된 바와 같이, 로봇(180A)에 대한 비전 센서(184A)의 포즈는 로봇(180B)에 대한 비전 센서(184B)의 포즈와 상이하다. 본 명세서에 기술된 바와 같이, 일부 구현예들에서, 이것은 카메라 교정(calibration)에 강하고 및/또는 카메라 교정과 독립적인 신경 네트워크를 트레이닝 시키는데 활용될 수 있는 다양한 트레이닝 예시들을 생성할 수 있게 하는데 유익할 수 있다. 비전 센서들(184A, 184B)은 센서의 시선(line of sight)에 있는 오브젝트(들)의 형상, 색, 농도(depth) 및/또는 다른 피처들과 관련된 이미지들을 생성할 수 있는 센서들이다. 비전 센서들(184A 및 184B)은 예를 들어, 모노 그래프 카메라들, 스테레오 그래픽 카메라들 및/또는 3D 레이저 스캐너일 수 있다. 3D 레이저 스캐너는 빛을 방출하는 하나 이상의 레이저들 및 방출된 빛의 반사들과 관련된 데이터를 수집하는 하나 이상의 센서들을 포함한다. 3D 레이저 스캐너는 예를 들어, 타임-오브-플라잇(time-of-flight) 3D 레이저 스캐너 또는 삼각 측량 기반의 3D 레이저 스캐너일 수 있으며, PSD(position sensitive detector) 또는 다른 광학 위치 센서를 포함할 수 있다.
비전 센서(184A)는 예시적인 오브젝트들(191A)을 포함하는 작업 공간의 일부와 같이, 로봇(180A)의 작업 공간의 적어도 일부분의 시계(field of view)를 갖는다. 오브젝트들(191A)에 대한 안착면(들)(resting surface)이 도 1에 도시되지 않았지만, 이 오브젝트들은 테이블, 트레이 및/또는 다른 표면(들) 상에 놓일 수 있다. 오브젝트들(191A)은 주걱, 스테이플러 및 연필을 포함한다. 다른 구현예들에서, 보다 많은 오브젝트들, 적은 오브젝트들, 추가의 오브젝트들 및/또는 대안적 오브젝트들이 본 명세서에 기술된 바와 같이 로봇(180A)의 모든 또는 일부의 파지 시도들 동안 제공될 수 있다. 비전 센서(184B)는 예시적인 오브젝트들(191B)을 포함하는 작업 공간의 일부와 같이, 로봇(180B)의 작업 공간의 적어도 일부분의 시계를 갖는다. 오브젝트들(191B)에 대한 안착면(들)은 도 1에 도시되지 않았지만, 이들은 테이블, 트레이 및/또는 다른 표면(들) 상에 놓일 수 있다. 오브젝트들(191B)은 연필, 스테이플러 및 안경을 포함한다. 다른 구현예들에서, 보다 많은 오브젝트들, 적은 오브젝트들, 추가의 오브젝트들 및/또는 대안적 오브젝트들이 본 명세서에 기술된 바와 같이 로봇(180B)의 모든 또는 일부의 파지 시도들 동안 제공될 수 있다.
도 1에는 특정한 로봇들(180A 및 180B)이 도시되어 있지만, 로봇들(180A 및 180B)과 유사한 로봇 팔들, 다른 로봇 팔 형태를 갖는 로봇들, 휴머노이드 형태를 갖는 로봇들, 동물 형태를 갖는 로봇들, 하나 이상의 바퀴들을 통해 이동하는 로봇들 (예를 들어, 자기-균형 로봇들), 잠수정 로봇들, 무인 항공기(“UAV”) 등을 포함하여, 추가 및/또는 대안적인 로봇들이 활용될 수 있다. 또한, 특정한 파지 엔드 이펙터들이 도 1에 도시되어 있지만, (예를 들어, "판들"을 파지하는, 더 많거나 적은 "손가락들"/”클로들”를 갖는) 대안적인 충격식 파지 엔드 이펙터들, “유입식” 파지 엔드 이펙터들, “속박형” 파지 엔드 이펙터들 또는 “인접식” 파지 엔드 이펙터들 또느 비 파지 엔드 에픽터들과 같은 추가 및/또는 대안적인 엔드 이펙터들이 활용될 수 있다. 추가로, 비전 센서들(184A 및 184B)의 특정한 마운팅들이 도 1에 도시되어 있지만, 추가 및/또는 대안적인 마운팅들이 활용될 수 있다. 예를 들어, 일부 구현예들에서, 비전 센서들은 로봇들의 작동 불가능한 컴포넌트들 또는 로봇들의 작동 가능한 컴포넌트들 (예를 들어, 엔드 이펙터 또는 엔드 이펙터에 근접한 컴포넌트)와 같은 로봇들에 직접 마운트될 수 있다. 또한, 예를 들어, 일부 구현예들에서, 비전 센서는 연관 로봇과 분리된 유동적 구조 상에 마운트될 수 있고 및/또는 연관 로못과 분리된 구조 상에 유동적 방식으로 마운트될 수 있다.
로봇들(180A, 180B), 및/또는 다른 로봇들은 많은 양의 파지 시도들을 수행하기 위해 활용될 수 있고, 파지 시도들과 연관된 데이터가 트레이닝 예시들을 생성하기 위해 트레이닝 예시 생성 시스템(110)에 의해 활용될 수 있다. 일부 구현예들에서, 트레이닝 예시 생성 시스템(110)의 모든 또는 양태들은 (예를 들어, 로봇들(180A 및 180B)의 하나 이상의 프로세서들을 통해) 로봇(180A) 및/또는 로봇(180B) 상에 구현될 수 있다. 예를 들어, 로봇들(180A 및 180B)은 트레이닝 예시 생성 시스템(110)의 인스턴스를 각각 포함할 수 있다. 일부 구현예들에서, 트레이닝 예시 생성 시스템(110)의 모든 또는 양태들은 로봇들(180A 및 180B)과는 분리되지만, 네트워크 통신 상태에 있는, 하나 이상의 컴퓨터 시스템들 상에 구현될 수 있다.
로봇(180A, 180B) 및/또는 다른 로봇들에 의한 각각의 파지 시도는 T 개의 개별 시간 단계들 또는 인스턴스들로 구성된다. 각 시간 단계에서, 파지 시도를 수행하는 로봇의 비전 센서에 의해 캡처된 현재 이미지
Figure pct00001
가 저장되고, 엔드 이펙터의 현재 포즈
Figure pct00002
가 또한 저장되며, 로봇은 파지기를 이동할 다음 (변환(translation) 및/또는 회전) 경로를 선택한다. 최종 시간 단계
Figure pct00003
에서, 로봇은 파지기를 구동 (예를 들어 폐쇄)하고 추가적인 데이터를 저장하고 및/또는 파지 성공의 평가가 가능하도록 하나 이상의 추가 액션들을 수행한다. 트레이닝 예시 생성 시스템(110)의 파지 성공 엔진(116)은 파지 성공을 평가하여 파지 성공 라벨
Figure pct00004
을 생성한다.
각각의 파지 시도는
Figure pct00005
Figure pct00006
Figure pct00007
로 표현되는
Figure pct00008
트레이닝 예시들을 결과로 한다. 즉, 각 트레이닝 예시는 적어도 그 시간 단계
Figure pct00009
에서 관찰된 이미지, 그 시간 단계에서의 포즈로부터 궁극적으로 도달된 포즈 (파지 시도의 최종 포즈)까지의 엔드 이펙터 모션 벡터(
Figure pct00010
) 및 파지 시도의 성공 라벨
Figure pct00011
을 포함한다. 각 엔드 이펙터 모션 벡터는 트레이닝 예시 생성 시스템(110)의 엔드 이펙터 모션 벡터 엔진(114)에 의해 결정될 수 있다. 예를 들어, 엔드 이펙터 모션 벡터 엔진(114)은 현재 포즈와 파지 시도의 최종 포즈 사이의 변환을 결정하고 그 변환을 엔드 이펙터 모션 벡터로 사용할 수 있다. 복수의 로봇들의 복수의 파지 시도들에 대한 트레이닝 예시들은 트레이닝 예시 생성 시스템(110)에 의해 트레이닝 예시 데이터베이스(117)에 저장된다.
로봇과 연관된 센서(들)에 의해 생성된 데이터 및/또는 생성된 데이터로부터 도출된 데이터는 로봇과 근거리인 및/또는 로봇과 멀리 떨어진 하나 이상의 비 일시적인 컴퓨터 판독가능 매체에 저장될 수 있다. 일부 구현예들에서, 현재 이미지는 적색 채널, 청색 채널, 녹색 채널 및/또는 농도 채널과 같은 다수의 채널들을 포함할 수 있다. 이미지의 각 채널은 이미지의 픽셀 각각에 대해 0부터 255까지의 값과 같은 이미지의 복수의 픽셀 각각에 대한 값을 정의한다. 일부 구현예들에서, 각 트레이닝 예시는 현재 이미지 및 대응하는 파지 시도에 대한 추가 이미지를 포함할 수 있으며, 추가 이미지는 파지 엔드 이펙터를 포함하지 않거나 상이한 포즈의 (예를 들어, 현재 이미지의 포즈와 중첩되지 않는 포즈) 엔드 이펙터를 포함한다. 예를 들어, 추가 이미지는, 파지 시도를 위한 엔드 이펙터 이동이 시작되기 전 및 파지 엔드 이펙터가 비전 센서의 시야 밖으로 이동될 때까지, 임의의 이전의 파지 시도 후에 캡처될 수 있다. 현재 포즈 및 현재 포즈에서 파지 시도의 최종 포즈까지의 엔드 이펙터 모션 벡터는 작업 공간, 공동 공간 또는 다른 공간에서 표현될 수 있다. 예를 들어, 엔드 이펙터 모션 벡터는 작업 공간에서 5개의 값들로 표현될 수 있다: 3 차원(3D) 변환 벡터를 정의하는 3개의 값들 및 엔드 이펙터의 축에 대한 엔드 이펙터의 방향 변화의 사인-코사인 인코딩을 표현하는 2개의 값들. 일부 구현예들에서, 파지 성공 라벨은 "0/성공적인" 또는 "1/성공적이지 못한" 라벨과 같은 이진 라벨이다. 일부 구현예들에서, 파지 성공 라벨은 0, 1 및 0 과 1 사이의 하나 이상의 값들과 같은 2개 이상의 옵션들 중에서 선택될 수 있다. 예를 들어, "0"은 확정된 "성공적이지 못한 파지"를 표시할 수 있고, "1"은 확정된 성공적인 파지를 표시할 수 있으며, "0.25"는 "거의 성공적이지 못한 파지”를 표시하고 "0.75"는 "거의 성공적인 파지"를 표시할 수 있다.
트레이닝 엔진(120)은 트레이닝 예시 데이터베이스(117)의 트레이닝 예시들에 기초하여 CNN(125) 또는 다른 신경 네트워크를 트레이닝한다. CNN(125)을 트레이닝하는 것은 트레이닝 예시들을 CNN(125)에 적용하여 CNN(125)을 반복적으로 업데이트하는 것을 포함할 수 있다. 예를 들어, 현재 포즈, 추가 이미지 및 현재 포즈로부터 트레이닝 예시들의 파지 시도의 최종 포즈까지의 벡터가 트레이닝 예시 입력으로서 활용될 수 있으며; 파지 성공 라벨은 학습 예시 출력으로서 활용될 수 있다. 트레이닝된 CNN(125)은, 현재의 이미지 (및 적어도 부분적으로 엔드 이펙터를 생략한 이미지와 같은 추가 이미지를 선택적으로), 주어진 엔드 이펙터에 따라 파지기를 이동시키는 것 및 후속적으로 파지하는 것을 고려하여, 성공적인 파지를 생산할 확률을 표시하는 측정치를 예측하도록 트레이닝된다.
도 3은 파지 시도들을 수행하고 파지 시도들과 연관된 데이터를 저장하는 예시적인 방법(300)을 도시하는 흐름도이다. 편의상, 흐름도의 동작들은 동작들을 수행하는 시스템을 참조하여 설명된다. 이 시스템은 로봇(180A, 180B, 840) 및/또는 다른 로봇의 로봇 제어 시스템 및/또는 프로세서와 같은 하나 이상의 로봇 컴포넌트들을 포함할 수 있다. 또한, 방법(300)의 동작들이 특정한 순서로 도시되어 있지만, 이는 제한적인 것이 아니다. 하나 이상의 동작들은 순서가 바뀔 수 있으며, 생략 또는 추가될 수 있다.
블록(352)에서, 시스템은 파지 시도를 시작한다. 블록(354)에서, 시스템은 이미지 내에 엔드 이펙터가 존재하지 않는 환경의 이미지를 저장한다. 예를 들어, 시스템은 파지 엔드 이펙터를 시야 센서의 시야 밖으로 이동시키고 (즉, 환경의 시야를 가리지 않음), 파지 엔드 이펙터가 시야에서 벗어나는 경우 이미지를 캡처할 수 있다. 이미지는 그 후 저장되어 파지 시도와 연관될 수 있다.
블록(356)에서, 시스템은 엔드 이펙터 이동을 결정하고 구현한다. 예를 들어, 시스템은 엔드 이펙터의 포즈를 제어하는 하나 이상의 액추에이터들로 하여금 구동하게 하는 하나 이상의 모션 명령들을 생성할 수 있으며, 그로 인해 엔드 이펙트의 포즈를 변경할 수 있다.
일부 구현예들에서 및/또는 블록(356)의 반복으로, 모션 명령(들)은 엔드 이펙터에 의해 닿을 수 있는 작업 공간, 파지 시도들을 위해 엔드 이펙터가 구속된 제한된 공간 및/또는 엔드 이펙터의 포즈를 제어하는 엑추에이터(들)의 토크 제한들 및/또는 위치에 의해 정의되는 공간과 같은, 주어진 공간 내에서 랜덤일 수 있다. 예를 들어, 신경 네트워크의 초기 트레이닝이 완료되기 전에, 엔드 이펙터 이동을 구현하기 위해 블록(356)에서 시스템에 의해 생성된 모션 명령(들)은 주어진 공간 내에서 랜덤일 수 있다. 본 명세서에 사용된 랜덤은 진정한 랜덤 또는 의사-랜덤(pseudo-random)을 포함할 수 있다.
일부 구현예들에서, 엔드 이펙터 이동을 구현하기 위해 블록(356)에서 시스템에 의해 생성된 모션 명령(들)은 트레이닝된 신경 네트워크의 현재 버전에 적어도 부분적으로 및/또는 다른 기준에 기초할 수 있다. 일부 구현예들에서, 각 파지 시도에 대한 블록(356)의 첫 번째 반복에서, 엔드 이펙터는 블록(354)에서 시야 밖으로 이동되는 것에 기초하여 "위치가 벗어날" 수 있다. 이러한 구현들 중 일부에서, 블록(356)의 첫 번째 반복 전에, 엔드 이펙터는 랜덤하게 이동되거나 또는 "위치로 복귀"될 수 있다. 예를 들어, 엔드 이펙터는 세트 "시작 위치"로 복귀되거나 및/또는 주어진 공간 내에서 랜덤하게 선택된 위치로 이동될 수 있다.
블록(358)에서, 시스템은 (1) 파지 시도의 현재 인스턴스에서의 환경 및 엔드 이펙터를 캡처하는 이미지 및 (2) 현재 인스턴스에서의 엔드 이펙터의 포즈를 저장한다. 예를 들어, 시스템은 로봇과 연관된 비전 센서에 의해 생성된 현재 이미지를 저장하고 이미지를 현재 인스턴스 (예를 들어, 타임스탬프)와 연관시킬 수 있다. 또한, 예를 들어 시스템은 로봇 관절의 하나 이상의 관절 위치 센서들로부터의 데이터에 기초하여 엔드 이펙터의 현재 포즈를 결정할 수 있고 관절의 위치들은 로봇의 포즈에 영향을 미치며, 시스템은 그 포즈를 저장할 수 있다. 시스템은 작업 공간, 관절 공간(joint space) 또는 다른 공간의 엔드 이펙터의 포즈를 결정하고 저장할 수 있다.
블록(360)에서, 시스템은 현재 인스턴스가 파지 시도를위한 최종 인스턴스인지 여부를 결정한다. 일부 구현예들에서, 시스템은 블록(352, 354, 356, 또는 358)에서 인스턴스 카운터를 증분(increment) 시키고 및/또는 시간이 경과함에 따라 시간 카운터를 증분시킬 수 있으며 카운터의 값을 임계값과 비교함에 기초하여 현재 인스턴스가 최종 인스턴스인지를 결정할 수 있다. 예를 들어, 카운터는 시간 카운터일 수 있고 임계값은 3초, 4초, 5초 및/또는 다른 값일 수 있다. 일부 구현예들에서, 임계값은 방법(300)의 하나 이상의 반복들 사이에서 달라질 수 있다.
시스템이 블록(360)에서 현재 인스턴스가 파지 시도를위한 최종 인스턴스가 아니라고 결정하면, 시스템은 다른 엔드 이펙터 이동을 결정하고 구현하는 블록(356)으로 리턴하여, 그 후 현재 인스턴스의 포즈와 이미지를 저장하는 블록(358)으로 진행한다. 주어진 파지 시도에 대해 블록들(356, 358 및 360)의 다중 반복을 통해, 엔드 이펙터의 포즈는 블록(356)의 다중 반복들 및 이들 각각의 인스턴스들에서 저장된 이미지 및 포즈에 의해 변경될 것이다. 많은 구현예들에서, 블록들(356, 358, 360) 및/또는 다른 블록들은 상대적으로 높은 빈도로 수행될 수 있으므로, 각각의 파지 시도에 대해 상대적으로 많은 양의 데이터를 저장한다.
시스템이 블록(360)에서 현재 인스턴스가 파지 시도의 최종 인스턴스라고 결정하면, 시스템은 블록(362)으로 진행하여 엔드 이펙터의 파지기를 구동시킨다. 예를 들어, 충격식 파지기 엔드 이펙터의 경우, 시스템이 하나 이상의 플레이트들, 숫자들 및/또는 다른 부재들을 폐쇄할 수 있다. 예를 들어, 시스템은 부재들이 완전히 폐쇄된 위치에 있거나 부재들과 연관된 토크 센서(들)로 측정된 토크 판독값이 임계값을 만족할 때까지 부재들로 하여금 폐쇄하게 할 수 있다.
블록(364)에서, 시스템은 추가 데이터를 저장하고 선택적으로 하나 이상의 추가 액션들을 수행하여 블록(360)의 파지 성공을 결정할 수 있도록 한다. 일부 구현예들에서, 추가 데이터는 위치 판독, 토크 판독 및/또는 그립핑(gripping) 엔드 이펙터로부터의 다른 판독이다. 예를 들어, 일부 임계값(예를 들어, 1cm)보다 큰 위치 판독은 성공적인 파지를 표시할 수 있다.
일부 구현예들에서, 블록(364)에서 시스템은 추가적으로 및/또는 대안적으로: (1) 엔드 이펙터를 구동 (예를 들어, 폐쇄) 위치로 유지하고 엔드 이펙터 및 엔드 이펙터에 의해 파지될 수 있는 임의의 오브젝트를 이동시키고 (예를 들어, 수직 및/또는 후방으로); (2) 엔드 이펙터가 이동된 후에 원래의 파지 위치를 캡처하는 이미지를 저장하고; (3) 엔드 이펙터로 하여금 엔드 이펙터에 의해 파지되는 임의의 오브젝트를 "떨어뜨리도록" 하며; 그리고 (4) 오브젝트(존재하는 경우)가 떨어진 후 원래의 파지 위치를 캡처하는 이미지를 저장한다. 시스템은 엔드 이펙터 및 오브젝트(존재하는 경우)가 이동된 후에 원래의 파지 위치를 캡처하는 이미지를 저장할 수 있고 오브젝트(존재하는 경우)가 떨어진 후 원래의 파지 위치를 캡처하는 이미지를 저장할 수 있으며 - 그리고 이미지들을 파지 시도와 연관시킨다. 엔드 이펙터와 오브젝트(존재하는 경우)가 이동된 후의 이미지와 오브젝트(존재하는 경우)가 떨어진 후의 이미지를 비교하는 것은 파지가 성공적이었는지 여부를 표시할 수 있다. 예를 들어, 하나의 이미지에는 나타나지만 다른 이미지에는 나타나지 않는 오브젝트는 성공적인 파지를 표시할 수 있다.
블록(366)에서, 시스템은 카운터 (예를 들어, 인스턴스 카운터 및/또는 시간 카운터)를 리셋하고, 블록(352)으로 복귀하여 다른 파지 시도를 시작한다.
일부 구현예들에서, 도 3의 방법(300)은 복수의 로봇들 각각에서 구현될 수 있으며, 로봇들은 방법(300)의 하나 이상의 각각의 (예를 들어, 모두) 반복들 동안 병렬로 선택적으로 동작할 수 있다. 이는 단지 하나의 로봇이 방법(300)을 동작시켰던 것보다 주어진 시간 내에 더 많은 파지 시도들이 달성되도록 할 수 있다. 또한, 복수의 로봇들 중 하나 이상이 로봇과 관련하여 포즈를 갖는 연관된 비전 센서를 포함하며, 그 포즈는 로봇들의 다른 것과 연관된 하나 이상의 비전 센서들의 포즈로부터 고유한 구현예들에서, 복수의 로봇들로부터의 파지 시도들에 기초하여 생성된 트레이닝 예시들은 이들 트레이닝 예시들에 기초하여 트레이닝된 신경 네트워크에서의 비전 센서 포즈에 강건성(robustness)을 제공할 수 있다. 또한, 그립핑 엔드 이펙터 및/또는 복수 로봇들의 다른 하드웨어 컴포넌트들이 상이하거나 및/또는 달라지고 및/또는 상이한 로봇들 (예를 들어, 동일한 제조 및/또는 모델 상이한 제조(들) 및/또는 모델(들))이 상이한 오브젝트들 (예를 들어, 상이한 크기들, 상이한 무게들, 상이한 형태들, 상이한 반투명들, 상이한 재료들의 오브젝트들)과 인터랙팅하는 구현예들에서 및/또는 상이한 환경들 (상이한 표면들, 상이한 조명, 상이한 환경적 장애물들)에서, 복수의 로봇들로부터의 파지 시도에 기초하여 생성된 트레이닝 예시들은 다양한 로봇 및/또는 환경 구성들에 강건성을 제공할 수 있다.
일부 구현예들에서, 주어진 로봇에 의해 닿을 수 있고 파지 시도들이 이루어질 수 있는 오브젝트들은 방법(300)의 상이한 반복들 동안 상이할 수 있다. 예를 들어, 인간 운영자 및/또는 다른 로봇은 로봇의 하나 이상의 파지 시도들 사이에서 로봇의 작업 공간에 오브젝트들을 추가 및/또는 제거할 수 있다. 또한, 예를 들어, 로봇 자체는 그 오브젝트들의 성공적인 파지들 후에 하나 이상의 오브젝트들을 작업 공간 밖으로 떨어뜨릴 수 있다. 이는 트레이닝 데이터의 다양성을 증가시킬 수 있다. 일부 구현예들에서, 조명, 표면(들), 장애물들 등과 같은 환경적 인자들은 방법(300)의 상이한 반복들 동안 추가적으로 및/또는 대안적으로 상이할 수 있으며, 이는 또한 트레이닝 데이터의 다양성을 증가시킬 수 있다.
도 4는 로봇들의 파지 시도들과 연관된 데이터에 기초하여 트레이닝 예시들을 생성하는 예시적인 방법(400)을 도시한 흐름도이다. 편의상, 흐름도의 동작들은 동작들을 수행하는 시스템을 참조하여 설명된다. 이 시스템은 로봇(180A, 180B, 1220)의 로봇 제어 시스템 및/또는 프로세서 및/또는 트레이닝 예시 생성 시스템(110) 및/또는 로봇과 별도로 선택적으로 구현될 수 있는 다른 시스템의 프로세서와 같은, 로봇 및/또는 다른 컴퓨터 시스템의 하나 이상의 컴포넌트들을 포함할 수 있다. 또한, 방법(400)의 동작들이 특정한 순서로 도시되어 있지만, 이는 제한적인 것이 아니다. 하나 이상의 동작들은 순서가 바뀔 수 있으며, 생략 또는 추가될 수 있다.
블록(452)에서, 시스템은 트레이닝 예시 생성을 시작한다. 블록(454)에서, 시스템은 파지 시도를 선택한다. 예를 들어, 시스템은 복수의 저장된 파지 시도들과 연관된 데이터를 포함하는 데이터베이스에 액세스할 수 있고, 저장된 파지 시도들 중 하나를 선택할 수 있다. 선택된 파지 시도는, 예를 들어, 도 3의 방법(300)에 기초하여 생성된 파지 시도일 수 있다.
블록(456)에서, 시스템은 선택된 파지 시도에 대해 저장된 데이터에 기초하여 선택된 파지 시도에 대한 파지 성공 라벨을 결정한다. 예를 들어, 방법(300)의 블록(364)과 관련하여 기술된 바와 같이, 파지 시도에 대한 파지 성공 라벨의 결정을 가능하게 하도록 추가 데이터가 파지 시도를 위해 저장될 수 있다. 저장된 데이터는 하나 이상의 센서들로부터의 데이터를 포함할 수 있으며, 데이터는 파지 시도 동안 및/또는 파지 시도 후에 생성된다.
일 예시로서, 추가 데이터는 위치 판독, 토크 판독 및/또는 그립핑 엔드 이펙터로부터의 다른 판독일 수 있다. 이러한 예시에서, 시스템은 판독(들)에 기초하여 파지 성공 라벨을 결정할 수 있다. 예를 들어, 판독이 위치 판독인 경우, 판독이 일부 임계값(예를 들어, 1cm)보다 크면 시스템은 "성공적인 파지" 라벨을 결정할 수 있고, 판독이 임계값(예를 들어, 1cm)보다 작으면 "성공적이지 못한 파지"라벨을 결정할 수 있다.
다른 예시로서, 추가 데이터는 엔드 이펙터 및 오브젝트(존재하는 경우)가 이동된 후에 원래의 파지 위치를 캡처하는 이미지 및 오브젝트(존재하는 경우)가 떨어졌을 때 원래의 파지 위치를 캡처하는 이미지일 수 있다. 파지 성공 라벨을 결정하기 위해 시스템은 (1) 엔드 이펙터 및 오브젝트(존재하는 경우)가 이동된 후의 이미지를 (2) 오브젝트(존재하는 경우)가 떨어진 후의 이미지와 비교한다. 예를 들어, 시스템은 2개의 이미지의 픽셀들을 비교할 수 있고, 2개의 이미지 사이의 픽셀들이 임계 수보다 더 많이 상이한 경우, 시스템은 "성공적인 파지"라벨을 결정할 수 있다. 또한, 예를 들어, 시스템은 2개의 이미지 각각에서 오브젝트 검출을 수행하고, 엔드 이펙터 및 오브젝트(존재하는 경우)가 이동된 후에 캡처된 이미지에서 검출되지 않았으나, 오브젝트(존재하는 경우)가 떨어진 후에 캡처된 이미지에서 오브젝트가 검출되면 "성공적인 파지"라벨을 결정할 수 있다.
또 다른 예시로서, 추가 데이터는 엔드 이펙터 및 오브젝트(존재하는 경우)가 이동된 후에 원래의 파지 위치를 캡처하는 이미지일 수 있다. 파지 성공 라벨을 결정하기 위해, 시스템은 (1) 엔드 이펙터와 오브젝트(존재하는 경우)가 이동된 후의 이미지와 (2) 파지 시도가 시작되기 전에 취해진 환경의 추가 이미지 (예를 들어, 엔드 이펙터를 생략한 추가 이미지)를 비교할 수 있다.
일부 구현예들에서, 파지 성공 라벨은 "성공적인"/"성공적이지 못한" 라벨과 같은 이진 라벨이다. 일부 구현예들에서, 파지 성공 라벨은 0, 1 및 0 과 1 사이의 하나 이상의 값들과 같은 2개 이상의 옵션들 중에서 선택될 수 있다. 예를 들어, 픽셀 비교 접근법에서, "0"은 확정된 "성공적이지 못한 파지"를 표시할 수 있고 두 이미지들 간의 상이한 픽셀들이 제1 임계 수보다 적은 경우 시스템에 의해 선택될 수 있으며, "0.25"는 "거의 성공적이지 못한 파지”를 표시할 수 있고 상이한 픽셀들의 수가 제1 임계 수에서 보다 큰 제2 임계 수 사이인 경우 시스템에 의해 선택될 수 있으며, "0.75"는 "거의 성공적인 파지"를 표시할 수 있고 상이한 픽셀들의 수가 제2 임계 수 (또는 다른 임계 수)보다 크지만 제3 임계 수보자 작은 경우 시스템에 의해 선택될 수 있으며, "1"은 확정된 성공적인 파지를 표시할 수 있고 상이한 픽셀들의 수가 제3 임계 수와 동일하거나 그 이상인 경우 시스템에 의해 선택될 수 있다.
블록(458)에서, 시스템은 파지 시도에 대한 인스턴스를 선택한다. 예를 들어, 시스템은 타임스탬프 및/또는 데이터와 관련된 다른 경계(demarcation)에 기초하여 인스턴스와 연관된 데이터를 선택할 수 있으며, 상기 경계는 인스턴스를 파지 시도의 다른 인스턴스들과 구별짓는다.
블록(460)에서, 시스템은 인스턴스에서의 엔드 이펙터의 포즈 및 파지 시도의 최종 인스턴스에서의 엔드 이펙터의 포즈에 기초하여 인스턴스에 대한 엔드 이펙터 모션 벡터를 생성한다. 예를 들어, 시스템은 현재 포즈와 파지 시도의 최종 포즈 사이의 변환을 결정하고 그 변환을 최종 이펙터 모션 벡터로 사용할 수 있다. 현재 포즈 및 현재 포즈에서 파지 시도의 최종 포즈까지의 엔드 이펙터 모션 벡터는 작업 공간, 관절 공간 또는 다른 공간에서 표현될 수 있다. 예를 들어, 엔드 이펙터 모션 벡터는 작업 공간에서 5개의 값들로 표현될 수 있다: 3 차원(3D) 변환 벡터를 정의하는 3개의 값들 및 엔드 이펙터의 축에 대한 엔드 이펙터의 방향 변화의 사인-코사인 인코딩을 표현하는 2개의 값들.
블록(462)에서, 시스템은 (1) 인스턴스에 대해 저장된 이미지, (2) 블록(460)에서 인스턴스에 대해 생성된 엔드 이펙터 모션 벡터 및 (3) 블록(456)에서 결정된 파지 성공 라벨을 포함하는 인스턴스에 대한 트레이닝 예시를 생성한다. 일부 구현예들에서, 시스템은 엔드 이펙터를 적어도 부분적으로 생략하고 파지 시도 전에 캡처되었던 것과 같은, 파지 시도에 대해 저장된 추가 이미지를 또한 포함하는 트레이닝 실시예를 생성한다. 이러한 구현예들 중 일부에서, 시스템은 트레이닝 예시에 대한 연접된 이미지를 생성하기 위해 파지 시도에 대한 저장된 추가 이미지와 인스턴스에 대해 저장된 이미지를 연접한다. 연접된 이미지는 인스턴스에 대해 저장된 이미지와 저장된 추가 이미지 둘 모두를 포함한다. 예를 들어, 두 이미지들이 X×Y 픽셀들과 3개의 채널들 (예를 들어, 적색, 청색, 녹색)을 포함하는 경우, 연접된 이미지는 X×Y 픽셀들과 6개의 채널들 (각 이미지에서 3개)을 포함할 수 있다. 본 명세서에 기술된 바와 같이, 트레이닝 예시 입력으로서 현재 포즈, 추가 이미지 및 현재 포즈부터 트레이닝 예시들의 파지 시도의 최종 포즈까지의 벡터가 활용될 수 있으며; 파지 성공 라벨은 트레이닝 예시 출력으로서 활용될 수 있다.
일부 구현예들에서, 블록(462)에서 시스템은 선택적으로 이미지(들)을 프로세싱할 수 있다. 예를 들어, 시스템은 CNN의 입력 계층의 정의된 크기에 맞도록 이미지를 선택적으로 리사이징(resize)할 수 있고, 이미지로부터 하나 이상의 채널들을 제거하고 및/또는 농도 채널(들)에 대한 값들을 정규화할 수 있다 (이미지들이 농도 채널을 포함하는 구현예들에서).
블록(464)에서, 시스템은 선택된 인스턴스가 파지 시도의 최종 인스턴스인지 여부를 결정한다. 시스템이 선택된 인스턴스가 파지 시도의 최종 인스턴스가 아니라고 결정하면, 시스템은 블록(458)으로 리턴하여 다른 인스턴스를 선택한다.
시스템이 선택된 인스턴스가 파지 시도의 최종 인스턴스라고 결정하면, 시스템은 블록(466)으로 진행하여 프로세싱할 추가적인 파지 시도들이 있는지 여부를 결정한다. 시스템이 프로세싱할 추가 파지 시도들이 있음을 결정하면, 시스템은 블록(454)으로 리턴하여 다른 파지 시도를 선택한다. 일부 구현예들에서, 프로세싱할 추가 파지 시도들이 있는지 여부를 결정하는 것은 남아있는 프로세싱되지 않은 파지 시도들이 있는지 여부를 결정하는 것을 포함할 수 있다. 일부 구현예들에서, 프로세싱할 추가 파지 시도들이 있는지 여부를 결정하는 것은 추가적으로 및/또는 대안적으로, 임계 수의 트레이닝 예시들이 이미 생성되었었는지 및/또는 다른 기준이 만족되었었는지를 결정하는 것을 포함할 수 있다.
시스템이 프로세싱할 추가 파지 시도들이 없다고 결정하면, 시스템은 블록(466)으로 진행하고 방법(400)은 종료한다. 방법(400)의 다른 반복이 다시 수행될 수 있다. 예를 들어, 수행되고 있는 임계 수의 추가 파지 시도들에 응답하여 방법(400)이 다시 수행될 수 있다.
명료성을 위해, 방법(300) 및 방법(400)이 본 명세서의 개별 도면에 도시되어 있지만, 방법(400)의 하나 이상의 블록들은 방법(300)의 하나 이상의 블록들을 수행하는 동일한 컴포넌트(들)에 의해 수행될 수 있음이 이해된다. 예를 들어, 방법(300) 및 방법(400)의 블록들 중 하나 이상 (예를 들어, 모두)는 로봇의 프로세서(들)에 의해 수행될 수 있다. 또한, 방법(400)의 하나 이상의 블럭들은 방법(300)의 하나 이상의 블럭들과 조합하여, 또는 그에 앞서서 또는 후속하여 수행될 수 있음이 이해된다.
도 5는 트레이닝 예시들에 기초하여 컨벌루션 신경 네트워크를 트레이닝하는 예시적인 방법(500)을 도시한 흐름도이다. 편의상, 흐름도의 동작들은 동작들을 수행하는 시스템을 참조하여 설명된다. 이 시스템은, 트레이닝 엔진(120)의 프로세서 (예를 들어, GPU) 및/또는 컨벌루션 신경 네트워크 (예를 들어, CNN(125))를 상에서 동작하는 다른 컴퓨터 시스템과 같은, 컴퓨터 시스템의 하나 이상의 컴포넌트들을 포함할 수 있다. 또한, 방법(500)의 동작들이 특정한 순서로 도시되어 있지만, 이는 제한적인 것이 아니다. 하나 이상의 동작들은 순서가 바뀔 수 있으며, 생략 또는 추가될 수 있다.
블록(552)에서, 시스템은 트레이닝을 시작한다. 블록(554)에서, 시스템은 트레이닝 예시를 선택한다. 예를 들어, 시스템은 도 4의 방법(400)에 기초하여 생성된 트레이닝 예시를 선택할 수 있다.
블록(556)에서, 시스템은 트레이닝 예시의 인스턴스에 대한 이미지 및 선택된 트레이닝 예시의 추가 이미지를 CNN의 초기 계층에 적용한다. 예를 들어, 시스템은 CNN의 초기 컨벌루션 계층에 이미지들을 적용할 수 있다. 본 명세서에 기술된 바와 같이, 추가 이미지는 적어도 부분적으로 엔드 이펙터를 생략할 수 있다. 일부 구현예들에서, 시스템은 이미지와 추가 이미지를 연접하고 연접된 이미지를 초기 계층에 적용한다. 일부 다른 구현예들에서, 이미지 및 추가 이미지는 트레이닝 예시에서 이미 연접되어있다.
블록(558)에서, 시스템은 선택된 트레이닝 예시의 엔드 이펙터 모션 벡터를 CNN의 추가 계층에 적용한다. 예를 들어, 시스템은 CNN의 추가 계층에 엔드 이펙터 모션 벡터를 적용할 수 있으며, 추가 계층은 블록(556)에서 이미지들이 적용되는 초기 계층의 다운스트림이다. 일부 구현예들에서, 엔드 이펙터 모션 벡터를 추가 계층에 적용하기 위해, 시스템은 엔드 이펙터 모션 벡터 출력을 생성하기 위해 완전히 연결된 계층을 통해 엔드 이펙터 모션 벡터를 패싱(pass)하여, 엔드 이펙터 모션 벡터 출력을 CNN의 바로 업스트림 계층으로부터의 출력과 연접한다. 바로 업스트림 계층은 엔드 이펙터 모션 벡터가 적용되는 추가 계층의 바로 업스트림이며, 선택적으로, 블록(556)에서 이미지들이 적용되는 초기 계층으로부터 다운스트림인 하나 이상의 계층들이 될 수 있다. 일부 구현예들에서, 초기 계층은 컨벌루션 계층이고, 바로 업스트림 계층은 풀링(pooling) 계층이며 추가 계층은 컨벌루션 계층이다.
블록(560)에서, 시스템은 트레이닝 예시의 파지 성공 라벨에 기초하여 CNN에 대해 역 전파(back propagation)를 수행한다. 블록(562)에서, 시스템은 추가 트레이닝 예시들이 존재하는지 여부를 결정한다. 시스템이 추가 트레이닝 예시들이 있다고 결정하면, 시스템은 블럭(554)으로 리턴하여 다른 트레이닝 예시를 선택한다. 일부 구현예들에서, 추가 트레이닝 예시들이 존재하는지 여부를 결정하는 것은 CNN을 트레이닝하는데 활용되지 않은 나머지 트레이닝 예시들이 존재하는지 여부를 결정하는 것을 포함할 수 있다. 일부 구현예들에서, 추가 트레이닝 예시들이 존재하는지 여부를 결정하는 것은 추가적으로 및/또는 대안적으로, 임계 수의 트레이닝 예시들이 활용되었었는지 및/또는 다른 기준이 만족되었었는지 여부를 결정하는 것을 포함할 수 있다.
시스템이 추가 트레이닝 예시들이 없고 및/또는 일부 다른 기준이 만족되었음을 결정하는 경우, 시스템은 블록(564) 또는 블록(566)으로 진행한다.
블록(564)에서, CNN의 트레이닝이 종료될 수 있다. 트레이닝된 CNN은 그 후 파지 엔드 이펙터에 의한 오브젝트의 성공적인 파지를 달성하기 위해 파지 엔드 이펙터를 서보제어함에 있어 하나 이상의 로봇들에 의해 사용되도록 제공될 수 있다. 예를 들어, 로봇은 도 7a의 방법(700)을 수행함에 있어 트레이닝된 CNN을 활용할 수 있다.
블록(566)에서, 시스템은 트레이닝된 CNN에 기초하여 추가 트레이닝 예시들을 생성하기 위해 트레이닝된 CNN을 추가적으로 및/또는 대안적으로 제공할 수 있다. 예를 들어, 하나 이상의 로봇들은 파지 시도들을 수행함에 있어 트레이닝된 CNN과 추가 트레이닝 예시들을 생성하기 위해 활용된 파지 시도들로부터의 데이터를 활용할 수 있다. 예를 들어, 하나 이상의 로봇들은 도 7a의 방법(700)에 기초하여 파지 시도들을 수행함에 있어 트레이닝된 CNN과 도 4의 방법(400)에 기초하여 추가 트레이닝 예시들을 생성하기 위해 활용된 파지 시도들로부터의 데이터를 활용할 수 있다. 추가 트레이닝 예시들을 생성하기 위해 데이터가 활용되는 로봇들은 실험실/트레이닝 설정의 로봇일 수 있고 및/또는 하나 이상의 소비자들에 의해 실제 사용되는 로봇들일 수 있다.
블록(568)에서, 블록(566)에서 트레이닝된 CNN을 제공함에 응답하여, 시스템은 생성된 추가 트레이닝 예시들에 기초하여 CNN을 업데이트할 수 있다. 예를 들어, 시스템은 추가 트레이닝 예시들에 기초하여 블록들(554, 556, 558 및 560)의 추가 반복들을 수행함으로써 CNN을 업데이트할 수 있다.
블록들(566 및 568) 사이에서 연장되는 화살표로 표시된 바와 같이, 추가 트레이닝 예시들을 생성하기 위해 업데이트된 CNN이 블록(566)에서 다시 제공될 수 있으며 그 트레이닝 예시들은 CNN을 추가로 업데이트하기 위해 블록(568)에서 활용된다. 일부 구현예들에서, 블럭(566)의 미래 반복들과 관련하여 수행되는 파지 시도들은 장래의 반복들 및/또는 트레이닝된 CNN의 활용 없이 수행된 것들보다 일시적으로 더 긴 파지 시도들일 수 있다. 예를 들어, 트레이닝된 CNN의 활용 없이 수행되는 도 3 방법(300)의 구현예들은 시간적으로 가장 짧은 파지 시도를 가질 수 있고, 초기에 트레이닝된 CNN으로 수행된 것들은 시간적으로 더 긴 파지 시도를 가질 수 있으며, 트레이닝된 CNN의 다음 반복으로 수행된 것들이지만 여전히 시간적으로 더 긴 파지 시도들을 가진다. 이는 방법(300)의 선택적 인스턴스 카운터 및/또는 시간 카운터를 통해 선택적으로 구현될 수 있다.
도 6a 및 도 6b는 다양한 구현예들의 CNN(600)의 예시적인 아키텍처를 도시한다. 도 6a 및 도 6b의 CNN(600)은 도 5의 방법(500)에 기초하여 트레이닝될 수 있는 CNN의 예시이다. 도 6a 및 도 6b의 CNN(600)은 트레이닝되면 7a의 방법(700)에 기초하여 파지 엔드 이펙터를 서보제어함에 활용될 수 있는 CNN의 추가 예시이다. 일반적으로, 컨벌루션 신경 네트워크는 입력 계층, 하나 이상의 컨벌루션 계층들, 선택적인 중량 및/또는 다른 계층들을 포함하는 다층 학습 프레임워크이다. 트레이닝 중에, 컨벌루션 신경 네트워크는 피처 표현들의 체계(hierarchy)를 학습하도록 트레이닝된다. 네트워크의 컨벌루션 계층들은 필터들과 컨벌루션되며 선택적으로 풀링 계층들에의해 다운 표본화(down sampling)된다. 일반적으로, 풀링 계층들은 최대, 최소, 및/또는 정규화 샘플링과 같은 하나 이상의 다운 표본화 기능들에 의해 작은 영역에 값들을 모은다(aggregate).
CNN(600)은 컨벌루션 계층인 초기 입력 계층(663)을 포함한다. 일부 구현예들에서, 초기 입력 계층(663)은 스트라이드(stride) 2 및 64개의 필터들을 갖는 6x6 컨벌루션 계층이다. 엔드 이펙터를 있는 이미지(661A) 및 엔드 이펙터가 없는 이미지(661B)가 도 6a에 또한 도시된다. 이미지들(661A 및 661B)은 연접되는 것으로 (각각으로부터 연장하는 병합 라인들에 의해 표현되는) 도시되며 연접된 이미지는 초기 입력 계층(663)에 공급되는 것으로 도시된다. 일부 구현예들에서, 이미지들(661A 및 661B)은 각각 472픽셀 x 472픽셀 x 3채널일 수 있다 (3채널은 농도 채널, 제1 컬러 채널, 제2 컬러 채널, 제3 컬러 채널로부터 선택될 수 있다). 따라서, 연접된 이미지는 472픽셀 x 472픽셀 x 6채널일 수 있다. 상이한 픽셀 크기 또는 더 많거나 적은 채널과 같은 다른 크기들이 사용될 수 있다. 이미지들(661A 및 661B)은 초기 입력 계층(663)에 컨벌루션된다. 초기 입력 계층 및 CNN(600)의 다른 계층들의 피처들에 대한 가중치들은 다수의 트레이닝 예시들에 기초하여 CNN(600) 트레이닝 동안 학습된다.
초기 입력 계층(663)에 후속하여 최대-풀링 계층(664)이 뒤따른다. 일부 구현예들에서, 최대-풀링 계층(664)은 64개의 필터들을 갖는 3 x 3 최대 풀링 계층이다. 최대-풀링 계층(664) 다음에는 6개의 컨벌루션 계층들이 이어지고, 그 중 2개는 도 6a에서 (665 및 666)으로 도시된다. 일부 구현예들에서, 6개의 컨벌루션 계층들은 각각 64개의 필터들을 갖는 5 x 5 컨벌루션 계층들이다. 컨벌루션 계층(666) 다음에는 최대 풀 계층(667)이 뒤따른다. 일부 구현예들에서, 최대-풀링 계층(667)은 64개의 필터들을 갖는 3 x 3 최대 풀링 계층이다.
엔드 이펙터 모션 벡터(662)는 또한 도 6a에 도시된다. 엔드 이펙터 모션 벡터(662)는 (도 6a에 "+"로 표시된 바와 같이) 최대-풀링 계층(667)의 출력과 연접되며 연접된 출력은 컨벌루션 계층(670)에 적용된다(도 6b). 일부 구현예들에서, 엔드 이펙터 모션 벡터(662)를 최대-풀링 계층(667)의 출력과 연접하는 것은 엔드 이펙터 모션 벡터(662)를 완전히 연결된 계층(668)에 의해 프로세싱하는 것을 포함하며, 그 출력은 그 후 타일링(tiling)된 벡터(669)를 통해 공간 차원들에 걸쳐 출력을 타일링함으로써 최대-풀링 계층(667)의 응답 맵의 각 포인트에 포인트 방식(pointwise)으로 추가된다. 다르게 말하면, 엔드 이펙터 모션 벡터(662)는 완전히 연결된 계층(668)을 통과하여, 타일링된 벡터(669)를 통해, 최대-풀링 계층(667)의 응답 맵의 공간 차원들에 걸쳐 복제된다.
이제 도 6b도 돌아가면, 엔드 이펙터 모션 벡터(662)와 최대-풀링 계층(667) 출력의 연접이 컨벌루션 계층(670)에 제공되고, 이어서 5개의 컨벌루션 계층들이 뒤따른다 (이 5개 중 마지막 컨벌루션 계층(671)은 도 6b에 도시되지만, 사이에 오는 4개는 도시되지 않는다). 일부 구현예들에서, 컨벌루션 계층들(670 및 671), 및 사이에 오는 4개의 컨벌루션 계층들은 각각 64개의 필터들을 갖는 3 x 3 컨벌루션 계층들이다.
컨벌루션 계층(671)에 이어서 최대-풀링 계층(672)이 뒤따른다. 일부 구현예들에서, 최대-풀링 계층(672)은 64개의 필터들을 갖는 2 x 2 최대 풀링 계층이다. 최대-풀링 계층(672)에 이어서 3개의 컨벌루션 계층들이 뒤따르며, 그 중 2 개는 도 6a의 (673 및 674)로 도시된다.
CNN(600)의 최종 컨벌루션 계층(674)은 제1 완전 연결 계층(675)에 완전히 연결되고, 차례로, 제1 완전 연결 계층(675)은 제2 완전 연결 계층(676)에 완전히 연결된다. 완전하게 연결된 계층들(675 및 676)은 크기 64의 벡터들과 같은 벡터들일 수 있다. 제2 완전 연결 계층(676)의 출력은 성공적인 파지의 측정치(677)를 생성하는데 활용된다. 예를 들어, 측정치(677)를 생성하고 출력하기 위해 시그모이드(sigmoid)가 활용될 수 있다. CNN(600)을 트레이닝하는 일부 구현예들에서, 에포크(epoch), 학습률, 가중치 감쇠, 드롭아웃(dropout) 확률 및/또는 다른 파라미터들에 대한 다양한 값들이 활용될 수 있다. 일부 구현예들에서, CNN(600)을 트레이닝 및/또는 활용하기 위해 하나 이상의 GPU가 활용될 수 있다. 특정한 컨벌루션 신경 네트워크(600)가 도 6에 도시되어 있지만, 변형이 가능하다. 예를 들어, 더 많거나 적은 컨벌루션 계층들이 제공될 수 있고, 하나 이상의 계층들은 예시들로서 제공되는 것과 다른 크기일 수 있다.
일단 CNN(600) 또는 다른 신경 네트워크가 본 명세서에 기술된 기법들에 따라 트레이닝되면, 파지 엔드 이펙터를 서보제어하기 위해 활용될 수 있다. 도 7a를 참조하면, 파지 엔드 이펙터를 서보제어하기 위해 트레이닝된 컨벌루션 신경 네트워크를 활용하는 예시적인 방법(700)을 도시한 흐름도가 도시되어있다. 편의상, 흐름도의 동작들은 동작들을 수행하는 시스템을 참조하여 설명된다. 이 시스템은 로봇(180A, 180B, 840) 및/또는 다른 로봇의 로봇 제어 시스템 및/또는 프로세서 (예를 들어, CPU 및/또는 GPU)와 같은, 로봇의 하나 이상의 컴포넌트들을 포함할 수 있다. 방법(700)의 하나 이상의 블럭들을 구현함에 있어서, 시스템은 예를 들어, 로봇에 로컬하게 저장될 수 있거나 및/또는 로봇으로부터 멀리 떨어져 저장될 수 있는 트레이닝된 CNN을 통해 동작할 수 있다. 또한, 방법(700)의 동작이 특정한 순서로 도시되어 있지만, 이는 제한적인 것이 아니다. 하나 이상의 동작들은 순서가 바뀔 수 있으며, 생략 또는 추가될 수 있다.
블록(752)에서, 시스템은 후보 엔드 이펙터 모션 벡터를 생성한다. 후보 엔드 이펙터 모션 벡터는 작업 공간, 관절 공간 또는 다른 공간에서 정의될 수 있으며, 트레이닝된 CNN의 입력 파라미터들에 따라 다른 블록들에서 활용될 수 있다.
일부 구현예들에서, 시스템은 후보 엔드 이펙터 모션 벡터를 생성하며, 상기 후보 엔드 이펙터 모션 벡터는 엔드 이펙터에 의해 닿을 수 있는 작업 공간, 파지 시도들을 위해 엔드 이펙터가 구속된 제한된 공간 및/또는 엔드 이펙터의 포즈를 제어하는 엑추에이터(들)의 토크 제한들 및/또는 위치에 의해 정의되는 공간과 같은, 주어진 공간 내에서 랜덤이다.
일부 구현예들에서, 시스템은 후보 엔드 이펙터 모션 벡터들 그룹을 샘플링하고 샘플링된 그룹으로부터 서브그룹을 선택하기 위해 하나 이상의 기법들을 활용할 수 있다. 예를 들어, 시스템은 크로스 엔트로피 방법(CEM)과 같은 최적화 기법을 활용할 수 있다. CEM은 매 반복마다 한 묶음의 N개의 값들을 샘플링하고, 가우스 분포를 이 샘플들의 M <N에 맞추며, 그 후 이 가우스에서 한 묶음의 새로운 N개의 값들을 샘플링하는 파생 없는 최적화 알고리즘이다. 예를 들어, 시스템은 CEM 및 M=64 및 N=6의 값들을 활용할 수 있고, CEM의 3번의 반복을 수행하여 (CEM에 따라) 가장 이용 가능한 후보 엔드 이펙터 모션 벡터를 결정할 수 있다.
일부 구현예들에서, 블록(752)에서 생성될 수 있는 후보 엔드 이펙터 모션 벡터에 하나 이상의 제약들(constraint)이 부과될 수 있다. 예를 들어, CEM 또는 다른 기법으로 평가된 후보 엔드 이펙터 모션들은 제약들에 기초하여 제약될 수 있다. 제약의 한 예시는 파지들이 시도될 수 있는 영역(들) 상의 제약들, 특정한 오브젝트(들) 및/또는 파지들이 시도될 수 있는 특정 오브젝트 분류(들)에 대한 제약들 등을 부과하는 (예를 들어, 컴퓨터 시스템의 사용자 인터페이스 입력 디바이스를 통한) 인간 입력 제약들이다. 제약의 다른 예시는 파지들이 시도될 수 있는 영역(들) 상의 제약들, 특정한 오브젝트(들) 및/또는 파지들이 시도될 수 있는 특정 오브젝트 분류(들)에 대한 제약들 등을 부과하는 컴퓨터 생성 제약들이다. 예를 들어, 오브젝트 분류자는 캡처된 이미지들에 기초하여 하나 이상의 오브젝트들을 분류하고 일정 분류들의 오브젝트들에 대한 파지들을 제한하는 제약들을 부과할 수 있다. 제약의 또 다른 예시들은 예를 들어, 로봇의 작업 공간에 기초한 제약들, 로봇의 관절 제한들, 로봇의 토크 제한들, 충돌 회피 시스템에 의해 제공되는 제약들 및 하나 이상의 오브젝트들과의 충돌을 방지하기 위한 로봇의 이동을 제한하는 제약들 등을 포함한다.
블록(754)에서, 시스템은 엔드 이펙터 및 하나 이상의 환경 오브젝트들을 캡처하는 현재 이미지를 식별한다. 일부 구현예들에서, 시스템은 엔드 이펙터가 적어도 부분적으로 비전 센서의 시야에서 벗어났었을 때 비젼 센서에 의해 캡처되었던 환경 오브젝트들의 추가 이미지와 같은, 엔드 이펙터를 적어도 부분적으로 생략하는 추가 이미지를 또한 식별한다. 일부 구현예들에서, 시스템은 이미지와 추가 이미지를 연접하여 연접된 이미지를 생성한다. 일부 구현예들에서, 시스템은 선택적으로 (예를 들어, CNN의 입력에 맞게) 이미지(들) 및/또는 연접된 이미지의 프로세싱을 수행한다.
블록(756)에서, 시스템은 현재 이미지 및 후보 엔드 이펙터 모션 벡터를 트레이닝된 CNN에 적용한다. 예를 들어, 시스템은 현재 이미지 및 추가 이미지를 포함하는 연접된 이미지를 트레이닝된 CNN의 초기 계층에 적용할 수 있다. 시스템은 후보 엔드 이펙터 모션 벡터를 초기 계층의 다운스트림인 트레이닝된 CNN의 추가 계층에 또한 적용할 수 있다. 일부 구현예들에서, 후보 엔드 이펙터 모션 벡터를 추가 계층에 적용함에 있어서, 시스템은 엔드 이펙터 모션 벡터 출력을 생성하기 위해 CNN의 완전히 연결된 계층을 통해 엔드 이펙터 모션 벡터를 패싱하고 엔드 이펙터 모션 벡터 출력을 CNN의 업스트림 출력과 연접한다. 업스트림 출력은 추가 계층의 바로 업스트림이며 초기 계층 및 CNN의 하나 이상의 중간 계층들부터의 다운스트림인 CNN의 바로 업스트림 계층으로부터의 출력이다.
블록(758)에서, 시스템은, 트레이닝된 CNN을 통해, 엔드 이펙터 모션 벡터에 기초하여 성공적인 파지의 측정치를 생성한다. 상기 측정치는 블록(756)에서 현재 이미지 (및 선택적으로 추가 이미지) 및 후보 엔드 이펙터 모션 벡터를 트레이닝된 CNN에 적용하고 그리고 트레이닝된 CNN의 학습된 가중치들에 기초하여 측정치를 결정함에 기초하여 생성된다.
블록(760)에서, 시스템은 성공적인 파지의 측정치에 기초하여 엔드 이펙터 명령을 생성한다. 예를 들어, 일부 구현예들에서, 시스템은 블록(752)에서 하나 이상의 추가 후보 엔드 이펙터 모션 벡터들을 생성할 수 있고, 블록(756)의 추가 반복들에서 트레이닝된 CNN에 추가 후보 엔드 이펙터 모션 벡터들 및 현재 이미지 (및 선택적으로 추가 이미지)를 적용함으로써 블록(758)의 추가 반복들에서 추가 후보 엔드 이펙터 모션 벡터들에 대한 성공적인 파지의 측정치들을 생성할 수 있다. 블록들(756 및 758)의 추가 반복들은 선택적으로 시스템에 의해 병렬적으로 수행될 수 있다. 이 구현들 중 일부에서, 시스템은 후보 엔드 이펙터 모션 벡터에 대한 측정치 및 추가 후보 엔드 이펙터 모션 벡터들에 대한 측정치들에 기초하여 엔드 이펙터 명령을 생성할 수 있다. 예를 들어, 시스템은 성공적인 파지를 가장 잘 표시하는 상기 측정치로 후보 엔드 이펙터 모션 벡터를 완전히 또는 실질적으로 따르도록 엔드 이펙터 명령을 생성할 수 있다. 예를 들어, 시스템의 로봇의 제어 시스템은 엔드 이펙터 모션 벡터에 기초하여 엔드 이펙터를 이동시키기 위해 로봇의 하나 이상의 액추에이터들을 구동시키는 모션 명령(들)을 생성할 수 있다.
일부 구현예들에서, 새로운 모션 명령들 (예를 들어, 성공적인 파지의 현재 측정치)를 생성하기 위해 후보 엔드 이펙터 모션 벡터가 활용되지 않는다면, 시스템은 성공적인 파지의 현재 측정치에 기초하여 엔드 이펙터 명령을 또한 생성할 수 있다. 예를 들어, 성공적인 파지를 가장 잘 표시하는 후보 엔드 이펙터 모션 벡터의 측정치에 대한 현재 측정 측정치의 하나 이상의 비교들이 임계값을 만족시키지 못하면, 그 후 엔드 이펙터 모션 명령은 엔드 이펙터로 하여금 파지를 시도하게 하는 "파지 명령"이 될 수 있다 (예를 들어, 충격식 그립핑 엔드 이펙터의 가까운 숫자들). 예를 들어, 현재 측정치의 결과를 성공적인 파지를 가장 잘 표시하는 후보 엔드 이펙터 모션 벡터의 측정치로 나눈 결과가 제1 임계값 (예를 들어, 0.9)보다 크거나 같으면, (파지기를 폐쇄하는 것이 그것을 이동시켜 성공적인 파지를 생산하는 것과 거의 같은 경우, 조기에 파지를 멈춘다는 근거하에) 파지 명령이 생성될 수 있다. 또한, 예를 들어, 결과가 제2 임계값 (예를 들어, 0.5)보다 작거나 같으면, 엔드 이펙터 명령은 궤적 보정을 실시하는 모션 명령일 수 있다 (예를 들어, 그립핑 엔드 이펙터를 적어도 X미터 들어올린다) (그립핑 엔드 이펙터는 거의 양호하지 못한 구성으로 위치되고 상대적으로 큰 모션이 필요하다는 근거하에). 또한, 예를 들어, 결과가 제1 및 제2 임계값 사이에 있다면, 성공적인 파지를 가장 잘 표시하는 측청치로 후보 엔드 이펙터 모션 벡터를 실질적으로 또는 완전히 따르는 모션 명령이 생성될 수 있다. 시스템에 의해 생성된 엔드 이펙터 명령은 하나 이상의 명령들의 단일 그룹이거나 연속적인 하나 이상의 명령들의 그룹일 수 있다.
새로운 모션 명령들을 생성하기 위해 후보 엔드 이펙터 모션 벡터가 활용되지 않는 경우, 성공적인 파지의 측정치는 방법(700)의 이전 반복에서 활용된 후보 엔드 이펙터 모션 벡터에 대한 측정치에 기초할 수 있고 및/또는 블록(756)의 추가 반복에서 "널(null)" 모션 벡터 및 현재 이미지를 트레이닝된 CNN에 적용하는 것 및 블록(758)의 추가 반복에 기초하여 측정치를 생성하는 것에 기초할 수 있다.
블록(762)에서, 시스템은 엔드 이펙터 명령이 파지 명령인지 여부를 결정한다. 시스템이 블록(762)에서 엔드 이펙터 명령이 파지 명령임을 결정하면, 시스템은 블록(764)으로 진행하여 파지 명령을 구현한다. 일부 구현예들에서, 시스템은 파지 명령이 (예를 들어, 본 명세서에 기술된 기법들을 사용하여) 성공적인 파지를 결론으로 하는지 여부를 선택적으로 결정할 수 있고, 성공적이지 않으면 시스템은 선택적으로 엔드 이펙터의 포즈를 조정하여 블록(752)으로 리턴한다. 파지가 성공한 경우에도, 시스템은 나중에 다른 오브젝트를 파지하기 위해 블록(752)으로 리턴할 수 있다.
시스템이 블록(762)에서 엔드 이펙터 명령이 파지 명령이 아니라고 결정하면 (예를 들어, 그것은 모션 명령), 시스템은 블록(766)으로 진행하여, 엔드 이펙터 명령을 구현하고, 그 후 블록(752)으로 리턴하여, 다른 후보 엔드 이펙터 모션 벡터를 생성한다. 예를 들어, 블록(766)에서, 시스템은 성공적인 파지를 가장 잘 표시하는 측정치로 후보 엔드 이펙터 모션 벡터를 실질적으로 또는 완전히 따르는 엔드 이펙터 모션 명령을 구현할 수 있다.
많은 구현예들에서, 방법(700)의 블록들은 상대적으로 높은 빈도로 수행될 수 있고, 이로써 엔드 이펙터 명령들의 반복적 업데이트를 가능하게하고 트레이닝된 CNN에 의해 알려진(informed) 궤도를 따라 엔드 이펙터의 서보제어를 가능하게하여 상대적으로 높은 성공적인 파지의 확률로 이끌 수 있다.
도 7b는 도 7a의 흐름도의 일정 블록들의 일부 구현예들을 도시하는 흐름도이다. 특히, 도 7b는 도 7a의 블록들(758 및 760)의 일부 구현예들을 도시하는 흐름도이다.
블록(758A)에서, 시스템은 CNN을 통해, 블록(752)의 후보 엔드 이펙터 모션 벡터에 기초하여 성공적인 파지의 측정치를 생성한다.
블록(758B)에서, 시스템은 엔드 이펙터의 현재 포즈에 기초하여 성공적인 파지의 현재 측정치를 결정한다. 예를 들어, 후보 엔드 이펙터 모션 벡터가 방법(700)의 바로 이전 반복에서 이용된 후보 엔드 이펙터 모션 벡터에 대한 측정치에 기초하여 새로운 모션 명령들을 생성하는데 활용되지 않는다면, 시스템은 성공적인 파지의 현재 측정치를 결정할 수 있다. 또한, 예를 들어, 시스템은 블록(756)의 추가 반복에서 "널" 모션 벡터 및 현재 이미지 (및 선택적으로 추가 이미지)를 트레이닝된 CNN에 적용하고 블록(758)의 추가 반복에 기초하여 측정치를 생성하는 것에 기초하여 현재 측정치를 결정할 수 있다.
블록(760A)에서, 시스템은 블록들(758A 및 758B)의 측정치들을 비교한다. 예를 들어, 시스템은 측정치들을 나누고, 측정치들을 빼거나, 하나 이상의 함수들에 측정치들을 적용함으로써 그것들을 다시 비교할 수 있다.
블록(760B)에서, 시스템은 블록(760A)의 비교에 기초하여 엔드 이펙터 명령을 생성한다. 예를 들어, 블록(758B)의 측정치가 블록(758A)의 측정치로 나눠지고 그 몫이 제1 임계값 (예를 들어, 0.9)보다 크거나 같다면, 그 후 엔드 이펙터 모션 명령은 엔드 이펙터로 하여금 파지를 시도하게 하는 "파지 명령"일 수 있다. 또한, 예를 들어, 블록(758B)의 측정치가 블록(758A)의 측정치로 나눠지고 그 몫이 제2 임계값 (예를 들어, 0.5)보다 작거나 같은 경우, 엔드 이펙터 명령은 궤도 보정을 실행하는 모션 명령일 수 있다. 또한, 예를 들어, 블록(758B)의 측정치가 블록(758A)의 측정치로 나눠지고 몫이 제2 임계값과 제1 임계값 사이에 있는 경우, 후보 엔드 이펙터 모션 벡터를 실질적으로 또는 완전히 따르는 모션 명령이 생성될 수 있다.
본 명세서에서는 CNN을 트레이닝하고 및/또는 엔드 이펙터를 서보제어하도록 CNN을 활용하는 특정한 예시들이 주어진다. 그러나, 일부 구현예들은 특정한 예시들과 다른 추가적인 및/또는 대안적인 피처들을 포함할 수 있다. 예를 들어, 일부 구현예들에서, 로봇의 엔드 이펙터에 대한 후보 모션 데이터가 특정한 분류의 오브젝트들과 같은 (예를 들어, 연필, 필기구, 주걱, 주방기구, 일반적으로 직사각형 구조를 갖는 오브젝트들, 연약한 오브젝트들, 가장 작은 경계가 X와 Y 사이에 있는 오브젝트들 등), 하나 이상의 특정한 오브젝트들의 성공적인 파지를 결과로 할 확률을 표시하는 측정치를 예측하도록 CNN이 트레이닝될 수 있다.
예를 들어, 일부 구현예들에서, 로봇들이 다양한 파지 시도들 도중에 파지할 다른 오브젝트들과 함께, 특정한 분류의 오브젝트들이 포함될 수 있다. (1) 파지가 성공적이었고 (2) 파지가 특정한 분류를 따르는 오브젝트에 대한 것이었던 경우에만 "성공적인 파지"라는 파지 라벨이 발견될 수 있는 트레이닝 예시들이 생성될 수 있다. 오브젝트가 특정한 분류를 따르는지를 결정하는 것은, 예를 들어, 파지 시도에 이어서 파지 엔드 이펙터를 비전 센서로 향하게 (turn)하고, 파지 엔드 이펙터에 의해 파지된 오브젝트(존재하는 경우)의 이미지를 캡처하기 위해 비전 센서를 사용하는 로봇에 기초할 수 있다. 인간 검토자 및/또는 이미지 분류 신경 네트워크 (또는 다른 이미지 분류 시스템)은 그 후 엔드 이펙터에 의해 파지된 오브젝트가 특정한 분류인지 여부를 결정할 수 있으며, 그 결정은 적절한 파지 라벨을 적용하는데 활용된다. 이러한 트레이닝 예시들은 본 명세서에 기술된 바와 같이 CNN을 트레이닝하는데 활용될 수 있으며, 트레이닝 예시들에 의한 트레이닝의 결과로서, 트레이닝된 CNN이 로봇의 파지 엔드 이펙터를 서보제어하기 위해 활용되어, 파지 엔드 이펙터에 의한 특정한 분류의 오브젝트의 성공인 파지가 달성될 수 있다.
도 8은 로봇(840)의 예시적인 아키텍처를 개략적으로 도시한다. 로봇(840)은 로봇 제어 시스템(860), 하나 이상의 동작 컴포넌트들(840a-840n) 및 하나 이상의 센서들(842a-842m)을 포함한다. 센서들(842a-842m)은 예를 들어, 비전 센서들, 광 센서들, 압력 센서들, 압력 파 센서들 (예를 들어, 마이크로폰), 근접 센서들, 가속도계들, 자이로스코프, 온도계들, 기압계들 등을 포함할 수 있다. 센서들(842a-m)는 로봇(840)과 통합되어 도시되어 있지만, 이것은 제한적인 것이 아니다. 일부 구현예들에서, 센서들(842a-m)은 예를 들어, 독립형 유닛들과 같이, 로봇(840) 외부에 위치될 수 있다.
동작 컴포넌트들(840a-840n)은 예를 들어, 하나 이상의 엔드 이펙터들 및/또는 하나 이상의 서보 모터들 또는 로봇의 하나 이상의 컴포넌트들의 이동을 실행하는 다른 액추에이터들을 포함할 수 있다. 예를 들어, 로봇(840)은 다수의 자유도들을 가질 수 있고 각각의 액추에이터는 제어 명령들에 응답하여 하나 이상의 자유도들 내에서 로봇(840)의 구동을 제어할 수 있다. 본 명세서에서 사용된 바와 같이, 액추에이터라는 용어는, 액추에이터와 연관될 수 있으며 수신된 제어 명령들을 액추에이터를 작동하기 위한 하나 이상의 신호들로 변환할 수 있는 임의의 작동기(들)(driver) 외에도, 모션(예를 들어, 모터)을 생성하는 기계 또는 전기 디바이스를 포함한다. 따라서, 액추에이터에 제어 명령을 제공하는 것은 작동기에 제어 명령을 제공함을 포함하며, 상기 작동기는 원하는 모션을 생성하기 위해 제어 명령을 전기 또는 기계 디바이스를 작동하기 위한 적절한 신호들로 변환시킨다.
로봇 제어 시스템(860)은 로봇(840)의 CPU, GPU 및/또는 다른 제어기(들)과 같은 하나 이상의 프로세서들에 구현될 수 있다. 일부 구현예들에서, 로봇(840)은 제어 시스템(860)의 모든 또는 양태들을 포함할 수 있는 "두뇌 박스"를 포함할 수 있다. 예를 들어, 두뇌 박스는 동작 컴포넌트들(840a-n)에 데이터의 실시간 버스트(burst)를 제공할 수 있으며, 실시간 버스트들 각각은 그 중에서도, 하나 이상의 동작 컴포넌트들 각각에 대한 모션 파라미터들(존재하는 경우)을 지시하는, 하나 이상의 제어 명령들의 집합을 포함한다. 일부 구현예들에서, 로봇 제어 시스템(860)은 본 명세서에 기술된 방법들(300, 400, 500 및/또는 700)의 하나 이상의 양태들을 수행할 수 있다.
본 명세서에 기술된 바와 같이, 일부 구현예들에서, 오브젝트를 파지하기 위해 엔드 이펙터를 위치시킴에 있어 제어 시스템(860)에 의해 생성된 제어 명령들의 모든 또는 양태들은, 트레이닝된 CNN과 같이, 트레이닝된 신경 네트워크의 활용에 기초하여 생성된 엔드 이펙터 명령들에 기초할 수 있다. 예를 들어, 센서들(842a-m)의 비전 센서는 현재 이미지 및 추가 이미지를 캡처할 수 있으며, 로봇 제어 시스템(860)은 후보 모션 벡터를 생성할 수 있다. 로봇의 엔드 이펙터의 이동 및/또는 파지를 제어하기 위한 하나 이상의 엔드 이펙터 제어 명령들을 생성하기 위해, 로봇 제어 시스템(860)은 현재 이미지, 추가 이미지 및 후보 모션 벡터를 트레이닝된 CNN에 제공할 수 있다. 비록 제어 시스템(860)이 로봇(840)의 통합된 부분으로서 도 8에 도시되어 있지만, 일부 구현예들에서, 제어 시스템(860)의 모든 또는 양태들은 로봇(840)과는 별개인, 그러나 로봇(840)과 통신하는, 컴포넌트에 구현될 수 있다. 예를 들어, 제어 시스템(860)의 모든 또는 양태들은 컴퓨팅 디바이스(910)와 같은 로봇(840)과 유선 및/또는 무선 통신하는 하나 이상의 컴퓨팅 디바이스들 상에 구현될 수 있다.
도 9는 본 명세서에 기술된 기법들의 하나 이상의 양태들을 수행하기 위해 선택적으로 활용될 수 있는 예시적인 컴퓨팅 디바이스(910)의 블록도이다. 컴퓨팅 디바이스(910)는 전형적으로 버스 서브 시스템(912)을 통해 많은 주변 디바이스들과 통신하는 적어도 하나의 프로세서(914)를 포함한다. 이러한 주변 디바이스들은 예를 들어, 메모리 서브시스템(925) 및 파일 저장 서브시스템(926)을 포함하는 저장 서브시스템(924), 사용자 인터페이스 출력 디바이스(920), 사용자 인터페이스 입력 디바이스(922) 및 네트워크 인터페이스 서브시스템(916)을 포함할 수 있다. 입력 및 출력 디바이스들은 컴퓨팅 디바이스(910)와의 사용자 인터랙션을 허용한다. 네트워크 인터페이스 서브시스템(916)은 외부 네트워크들에 인터페이스를 제공하고 다른 컴퓨팅 디바이스들 내의 대응하는 인터페이스 디바이스들에 결합된다.
사용자 인터페이스 입력 디바이스들(922)은 키보드, 마우스, 트랙볼, 터치패드 또는 그래픽 테블릿과 같은 포인팅 디바이스들, 스캐너, 디스플레이에 통합된 터치스크린, 음성 인식 시스템들과 같은 오디오 입력 디바이스들, 마이크로폰들 및/또는 다른 유형의 입력 디바이스들을 포함할 수 있다. 일반적으로, 용어 "입력 디바이스"의 사용은 정보를 컴퓨팅 디바이스(910)에 또는 통신 네트워크 상에서 입력하는 모든 가능한 유형의 방법들 및 디바이스들을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스들(920)은 디스플레이 서브시스템, 프린터, 팩스 머신, 또는 오디오 출력 디바이스들과 같은 비 시각적 디스플레이들을 포함할 수 있다. 디스플레이 서브시스템은 음극선 관(CRT), 액정 디스플레이(LCD)와 같은 평판 디바이스, 프로젝션 디바이스 또는 시각적 이미지를 생성하기 위한 다른 메커니즘을 포함할 수 있다. 디스플레이 서브시스템은 오디오 출력 디바이스들과 같은 비 시각적 디스플레이를 또한 제공할 수 있다. 일반적으로, 용어 "출력 디바이스"는 사용은 컴퓨팅 디바이스(910)로부터 사용자 또는 다른 기계 또는 컴퓨팅 디바이스로 정보를 출력하는 모든 가능한 유형의 디바이스들 및 방법들을 포함하도록 의도된다.
저장 서브시스템(924)은 본 명세서에 기술된 일부 또는 모든 모듈들의 기능을 제공하는 프로그래밍 및 데이터 구조들을 저장한다. 예를 들어, 저장 서브시스템(924)은 도 3, 도 4, 도 5 및/또는 도 7a 및 도 7b의 방법의 선택된 양태들을 수행하기 위한 로직을 포함할 수 있다.
이 소프트웨어 모듈들은 일반적으로 프로세서(914) 단독으로 또는 다른 프로세서들과 조합하여 실행된다. 저장 서브시스템(924)에서 사용되는 메모리(925)는 프로그램 실행 동안의 명령들 및 데이터의 저장을 위한 주 랜덤 액세스 메모리(RAM)(930) 및 고정 명령들이 저장된 판독 전용 메모리(ROM)(932)를 포함하는 많은 메모리들을 포함할 수 있다. 파일 저장 서브시스템(926)은 프로그램 및 데이터 파일들에 대한 영구 저장소를 제공할 수 있으며, 하드 디스크 드라이브, 연관된 제거 가능한 매체와 함께 플로피 디스크 드라이브, CD-ROM 드라이브, 광 드라이브 또는 제거 가능한 매체 카트리지들을 포함할 수 있다. 일정 구현예들의 기능을 구현하는 모듈들은 저장 서브시스템(924)에 또는 프로세서(들)(914)에 의해 액세스 가능한 다른 기계들 내에 파일 저장 서브시스템(926)에 의해 저장될 수 있다.
버스 서브시스템(912)은 컴퓨팅 디바이스(910)의 서브 시스템들 및 다양한 컴포넌트들이 의도된 바와 같이 서로 통신하게 하는 메커니즘을 제공한다. 버스 서브시스템(912)은 단일 버스로서 개략적으로 도시되어 있지만, 버스 서브시스템의 대안적인 구현예들은 다수의 버스들을 사용할 수 있다.
컴퓨팅 디바이스(910)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜 또는 임의의 다른 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형들일 수 있다. 컴퓨터들 및 네트워크들의 끊임없이 변화하는 특성으로 인해, 도 9에 도시된 컴퓨팅 디바이스(910)의 도시는 단지 일부 구현예들을 예증하는 목적들을 위한 특정 예시로서만 의도된다. 컴퓨팅 디바이스의(910)의 많은 컴포넌트들이 도 9에 도시된 컴퓨팅 디바이스보다 많은 또는 더 적은 컴포넌트들을 갖는 것이 가능하다.
몇몇 구현예들이 본 명세서에 기술되고 도시되었지만, 기능을 수행하고 및/또는 본 명세서에 기술된 하나 이상의 이점들 및 결과들을 획득하기 위한 다양한 다른 수단들 및/또는 구조들이 활용될 수 있으며, 이러한 변형들 및/또는 수정들은 본 명세서에 기술된 구현예들의 범위 내인 것으로 간주된다. 보다 일반적으로, 본 명세서에 기술된 모든 파라미터들, 치수들, 재료들 및 구성들은 예시적인 것이며, 실제 파라미터들, 치수들, 재료들 및/또는 구성들은 특정 용도 또는 그 교시가 사용되는 용도들에 따를 것이다. 통상의 기술자는 본 명세서에서 기술된 특정 구현예들에 대한 많은 균등물들을 인식하거나 또는 일상적인 실험을 사용하여 확인할 수 있을 것이다. 그러므로, 전술한 구현예들은 단지 예시로서 제시되고, 첨부 된 청구항들 및 그 균등 범위 내에서, 구현예들은 구체적으로 설명되고 청구된 것과는 다르게 실시될 수 있음을 이해할 수 있다. 본 개시의 구현예들은 본 명세서에 기술된 각각의 개별적인 구성, 시스템, 물품, 재료, 키트 및/또는 방법에 관한 것이다. 추가로, 그러한 구성들, 시스템들, 물품들, 재료들, 키트들 및/또는 방법들이 상호 불일치하지 않는 경우, 2 이상의 그러한 구성들, 시스템들, 물품들, 재료들, 키트들 및/또는 방법들의 임의의 조합이 본 개시의 범위 내에 포함된다.

Claims (29)

  1. 방법으로서:
    하나 이상의 프로세서들에 의해, 로봇의 파지 엔드 이펙터(grasping end effector)를 현재 포즈로부터 추가 포즈로 이동시키기 위해 모션을 정의하는 후보 엔드 이펙터 모션 벡터를 생성하는 단계;
    상기 하나 이상의 프로세서들에 의해, 상기 로봇과 연관된 비전 센서에 의해 캡처된 현재 이미지를 식별하는 단계, 상기 이미지는 상기 로봇의 환경 내의 적어도 하나의 오브젝트 및 상기 파지 엔드 이펙터를 캡처하고;
    상기 하나 이상의 프로세서들에 의해, 트레이닝된 컨벌루션 신경 네트워크에 입력으로서 상기 현재 이미지 및 상기 후보 엔드 이펙터 모션 벡터를 적용하는 단계;
    상기 트레이닝된 컨벌루션 신경 네트워크를 통해, 상기 모션의 적용으로 상기 오브젝트의 성공적인 파지의 측정치를 생성하는 단계, 상기 측정치는 상기 트레이닝된 컨벌루션 신경 네트워크에 상기 이미지 및 상기 엔드 이펙터 모션 벡터의 상기 적용에 기초하여 생성되고;
    상기 측정치에 기초하여 엔드 이펙터 명령을 생성하는 단계, 상기 엔드 이펙터 명령은 파지 명령 또는 엔드 이펙터 모션 명령이며; 및
    상기 엔드 이펙터 명령을 상기 로봇의 하나 이상의 액추에이터(actuator)들에 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 청구항 1에 있어서,
    상기 하나 이상의 프로세서들에 의해, 상기 모션의 적용 없이 상기 오브젝트의 성공적인 파지의 현재 측정치를 결정하는 단계를 더 포함하며;
    상기 엔드 이펙터 명령을 생성하는 단계는 상기 측정치 및 상기 현재 측정치에 기초하는 것을 특징으로 하는 방법.
  3. 청구항 2에 있어서, 상기 엔드 이펙터 명령은 상기 파지 명령이고, 상기 파지 명령을 생성하는 단계는 상기 현재 측정치에 대한 상기 측정치의 비교가 임계값을 만족하는 것으로 결정함에 응답하는 것임을 특징으로 하는 방법.
  4. 청구항 2에 있어서, 상기 엔드 이펙터 명령은 상기 엔드 이펙터 모션 명령이며, 상기 엔드 이펙터 모션 명령을 생성하는 단계는 상기 후보 엔드 이펙터 모션 벡터에 따르도록(conform) 상기 엔드 이펙터 모션 명령을 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 청구항 2에 있어서, 상기 엔드 이펙터 명령은 상기 엔드 이펙터 모션 명령이고, 상기 엔드 이펙터 모션 명령을 생성하는 단계는 상기 엔드 이펙터 모션 명령을 생성하여 상기 엔드 이펙터에 궤도 보정을 실시(effectuate)하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 청구항 2 내지 청구항 5중 어느 한 항에 있어서, 상기 모션의 적용 없이 상기 오브젝트의 성공적인 파지의 상기 현재 측정치를 결정하는 단계는:
    상기 하나 이상의 프로세서들에 의해, 상기 트레이닝된 컨벌루션 신경 네트워크에 입력으로서 상기 이미지 및 널(null) 엔드 이펙터 모션 벡터를 적용하는 단계; 및
    상기 트레이닝된 컨벌루션 신경 네트워크를 통해, 상기 모션의 적용 없이 상기 오브젝트의 성공적인 파지의 상기 현재 측정치를 생성하는 단계를 포함하며, 상기 현재 측정치는 상기 트레이닝된 컨벌루션 신경 네트워크에 상기 이미지 및 상기 널 엔드 이펙터 모션 벡터의 적용에 기초하여 생성되는 것을 특징으로 하는 방법.
  7. 청구항 1,2 또는 4에 있어서, 상기 엔드 이펙터 명령은 상기 엔드 이펙터 모션 명령이고 상기 후보 엔드 이펙터 모션 벡터를 따르며, 상기 엔드 이펙터 모션 명령을 상기 하나 이상의 액추에이터들에 제공하는 단계는 상기 엔드 이펙터를 새로운 포즈로 이동시키고,
    상기 하나 이상의 프로세서들에 의해, 상기 파지 엔드 이펙터를 새로운 포즈로부터 추가 포즈로 이동시키기 위해 새로운 모션을 정의하는 추가 후보 엔드 이펙터 모션 벡터를 생성하는 단계;
    상기 하나 이상의 프로세서들에 의해, 상기 로봇과 연관된 비전 센서에 의해 캡처된 새로운 이미지를 식별하는 단계, 상기 새로운 이미지는 상기 새로운 포즈에서 상기 엔드 이펙터를 캠처하고 상기 로봇의 환경 내의 상기 오브젝트들을 캡처하며;
    상기 하나 이상의 프로세서들에 의해, 상기 트레이닝된 컨벌루션 신경 네트워크에 입력으로서 상기 새로운 이미지 및 상기 추가 후보 엔드 이펙터 모션 벡터를 적용하는 단계;
    상기 트레이닝된 컨벌루션 신경 네트워크를 통해, 상기 새로운 모션의 적용으로 상기 오브젝트의 성공적인 파지의 새로운 측정치를 생성하는 단계, 상기 새로운 측정치는 상기 트레이닝된 컨벌루션 신경 네트워크에 상기 새로운 이미지 및 상기 추가 엔드 이펙터 모션 벡터의 상기 적용에 기초하여 생성되고;
    상기 새로운 측정치에 기초하여 새로운 엔드 이펙터 명령을 생성하는 단계, 상기 새로운 엔드 이펙터 명령은 상기 파지 명령 또는 새로운 엔드 이펙터 모션 명령이며; 및
    상기 새로운 엔드 이펙터 명령을 상기 로봇의 하나 이상의 액추에이터들에 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 전술한 항들 중 어느 한 항에 있어서, 상기 트레이닝된 컨벌루션 신경 네트워크에 입력으로서 상기 이미지 및 상기 후보 엔드 이펙터 모션 벡터를 적용하는 단계는:
    상기 트레이닝된 컨벌루션 신경 네트워크의 초기 계층에 입력으로서 상기 이미지를 적용하는 단계; 및
    상기 트레이닝된 컨벌루션 신경 네트워크의 추가 계층에 상기 후보 엔드 이펙터 모션 벡터를 적용하는 단계를 포함하며, 상기 추가 계층은 상기 초기 계층의 다운스트림인 것을 특징으로 하는 방법.
  9. 청구항 8에 있어서, 상기 후보 엔드 이펙터 모션 벡터를 상기 추가 계층에 적용하는 단계는:
    엔드 이펙터 모션 벡터 출력을 생성하기 위해 상기 컨벌루션 신경 네트워크의 완전히 연결된 계층을 통해 상기 엔드 이펙터 모션 벡터를 패싱(pass)하는 단계; 및
    상기 엔드 이펙터 모션 벡터 출력을 업스트림 출력과 연접(concatenate)하는 단계를 포함하며, 상기 업스트림은 상기 초기 계층 및 상기 컨벌루션 신경 네트워크의 하나 이상의 중간 계층들로부터의 다운스트림이며 상기 추가 계층의 바로 업스트림인 상기 컨벌루션 신경 네트워크의 계층의 바로 업스트림 계층으로부터 온 것을 특징으로 하는 방법.
  10. 청구항 9에 있어서, 상기 초기 계층은 컨벌루션 계층이고 상기 바로 업스트림 계층은 풀링(pooling) 계층인 것을 특징으로 하는 방법.
  11. 전술한 청구항들 중 어느 한 항에 있어서,
    상기 하나 이상의 프로세서들에 의해, 상기 비전 센서에 의해 캡처된 추가 이미지를 식별하는 단계, 상기 추가 이미지는 상기 하나 이상의 환경 오브젝트들을 캡처하고 상기 로봇 엔드 이펙터를 생략하거나 상기 이미지 내의 상기 로봇 엔드 이펙터의 것과는 상이한 포즈의 상기 로봇 엔드 이펙터를 포함하며; 및
    상기 트레이닝된 컨벌루션 신경 네트워크에 추가 입력으로서 상기 추가 이미지를 적용하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  12. 청구항 11에 있어서, 상기 컨벌루션 신경 네트워크에 상기 이미지 및 상기 추가 이미지를 적용하는 단계는:
    연접된 이미지를 생성하기 위해 상기 이미지와 상기 추가 이미지를 연접하는 단계; 및
    상기 컨벌루션 신경 네트워크의 초기 계층에 입력으로서 상기 연접된 이미지를 적용하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 전술한 청구항들 중 어느 한 항에 있어서, 상기 후보 엔드 이펙터 모션 벡터를 생성하는 단계는:
    복수의 후보 엔드 이펙터 모션 벡터들을 생성하는 단계; 및
    상기 복수의 후보 엔드 이펙터 모션 벡터들로부터 상기 후보 엔드 이펙터 모션 벡터를 선택하기 위해 상기 복수의 후보 엔드 이펙터 모션 벡터들에 대한 크로스-엔트로피 최적화의 하나 이상의 반복(iteration)들을 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 시스템으로서,
    환경을 뷰잉(viewing)하는 비전 센서;
    트레이닝된 컨벌루션 신경 네트워크, 상기 트레이닝된 컨벌루션 신경 네트워크는 하나 이상의 비 일지적인 컴퓨터 판독가능 매체에 저장되며;
    적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는:
    로봇 엔드 이펙터를 현재 포즈로부터 추가 포즈로 이동시키기 위해 모션을 정의하는 후보 엔드 이펙터 모션 벡터를 생성하고;
    상기 트레이닝된 컨벌루션 신경 네트워크에 입력으로서 상기 비전 센서에 의해 캡처된 이미지 및 상기 후보 엔드 이펙터 모션 벡터를 적용하고, 상기 이미지는 오브젝트의 환경 내의 적어도 하나의 오브젝트 및 엔드 이펙터를 캡처하고;
    상기 트레이닝된 컨벌루션 신경 네트워크를 통해, 상기 모션의 적용으로 상기 오브젝트의 성공적인 파지의 측정치를 생성하고, 상기 측정치는 상기 트레이닝된 컨벌루션 신경 네트워크에 상기 이미지 및 상기 엔드 이펙터 모션 벡터의 상기 적용에 기초하여 생성되고;
    상기 측정치에 기초하여 엔드 이펙터 명령을 생성하며, 상기 엔드 이펙터 명령은 파지 명령 또는 엔드 이펙터 모션 명령이며; 그리고
    상기 엔드 이펙터 명령을 상기 로봇의 하나 이상의 액추에이터들에 제공하도록 구성된 것을 특징으로 하는 시스템.
  15. 컨벌루션 신경 네트워크를 트레이닝하는 방법으로서:
    하나 이상의 프로세서들에 의해, 로봇들에 의한 복수의 파지 시도들 동안 상기 하나 이상의 로봇들로부터의 센서 출력에 기초하여 생성된 복수의 트레이닝 예시들을 식별하는 단계,
    상기 트레이닝 예시들 각각은 트레이닝 예시 입력을 포함하고, 상기 트레이닝 예시 입력은:
    상기 파지 시도들 중 대응하는 파지 시도 시간의 대응 인스턴스에 대한 이미지, 상기 이미지는 상기 시간의 대응 인스턴스에서의 하나 이상의 환경 오브젝트들 및 로봇 엔드 이펙터를 캡처하며, 및
    상기 대응하는 파지 시도를 위해 상기 엔드 이펙터의 모션을 정의하여 시간의 상기 대응 인스턴스에서의 상기 엔드 이펙터의 시간 포즈의 인스턴스로부터 상기 엔드 이펙터의 최종 포즈로 이동 시키기 위해 상기 엔드 이펙터의 모션을 정의하는 엔드 이펙터 모션 벡터를 포함하고,
    상기 트레이닝 예시들 각각은 트레이닝 예시 출력을 포함하며, 상기 트레이닝 예시 출력은: 상기 대응하는 파지 시도의 성공을 표시하는 파지 성공 라벨을 포함하고;
    상기 하나 이상의 프로세서들에 의해, 상기 트레이닝 예시들에 기초하여 상기 컨벌루션 신경 네트워크를 트레이닝하는 단계를 포함하는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
  16. 청구항 15에 있어서, 상기 트레이닝 예시들 각각의 상기 트레이닝 예시 입력은:
    상기 대응하는 파지 시도를 위한 추가 이미지를 더 포함하며, 상기 추가 이미지는 상기 하나 이상의 환경 오브젝트들을 캡처하고 상기 로봇 엔드 이펙터를 생략하거나 상기 이미지 내의 상기 로봇 엔드 이펙터의 것과는 상이한 포즈의 상기 로봇 엔드 이펙터를 포함하는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
  17. 청구항 16에 있어서, 상기 추가 이미지는 상기 로봇 엔드 이펙터를 완전히 생략하는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
  18. 청구항 16 또는 청구항 17에 있어서, 상기 컨벌루션 신경 네트워크를 트레이닝하는 단계는, 상기 컨벌루션 신경 네트워크에, 상기 트레이닝 예시들 중에서 주어진 트레이닝 예시의 상기 트레이닝 예시 입력을 적용하는 단계를 포함하며, 상기 주어진 트레이닝 예시의 상기 트레이닝 예시 입력을 적용하는 단계는:
    연접된 이미지를 생성하기 위해 상기 이미지와 상기 주어진 트레이닝 예시의 상기 추가 이미지를 연접하는 단계; 및
    상기 컨벌루션 신경 네트워크의 초기 계층에 입력으로서 상기 연접된 이미지를 적용하는 단계를 포함하는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
  19. 청구항 15 내지 청구항 18 중 어느 한 항에 있어서, 상기 컨벌루션 신경 네트워크를 트레이닝하는 단계는, 상기 컨벌루션 신경 네트워크에, 상기 트레이닝 예시들 중에서 주어진 트레이닝 예시의 상기 트레이닝 예시 입력을 적용하는 단계를 포함하며, 상기 주어진 트레이닝 예시의 상기 트레이닝 예시 입력을 적용하는 단계는:
    상기 컨벌루션 신경 네트워크의 초기 계층에 입력으로서 상기 주어진 트레이닝 예시의 상기 이미지를 적용하는 단계; 및
    상기 컨벌루션 신경 네트워크의 추가 계층에 상기 주어진 트레이닝 예시의 상기 엔드 이펙터 모션 벡터를 적용하는 단계를 포함하며, 상기 추가 계층은 상기 초기 계층의 다운스트림인 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
  20. 청구항 19에 있어서, 상기 추가 계층에 상기 엔드 이펙터 모션 벡터를 적용하는 단계는:
    엔드 이펙터 모션 벡터 출력을 생성하기 위해 완전히 연결된 계층을 통해 상기 엔드 이펙터 모션 벡터를 패싱(pass)하는 단계 및 상기 엔드 이펙터 모션 벡터 출력을 업스트림 출력과 연접하는 단계를 포함하며, 상기 업스트림은 상기 초기 계층 및 상기 컨벌루션 신경 네트워크의 하나 이상의 중간 계층들로부터의 다운스트림이며 상기 추가 계층의 바로 업스트림인 상기 컨벌루션 신경 네트워크의 계층의 바로 업스트림 계층으로부터 온 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
  21. 청구항 20에 있어서, 상기 초기 계층은 컨벌루션 계층이고 상기 바로 업스트림 계층은 풀링 계층인 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
  22. 청구항 15 내지 청구항 21 중 어느 한 항에 있어서, 상기 엔드 이펙터 모션 벡터는 작업 공간 내의 상기 엔드 이펙터의 모션을 정의하는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
  23. 청구항 15 내지 청구항 22 중 어느 한 항에 있어서, 상기 트레이닝 예시들은:
    제1 그룹, 상기 트레이닝 예시들 중 상기 제1 그룹은 제1 로봇에 의한 복수의 상기 파지 시도들 동안 상기 제1 로봇의 복수의 제1 로봇 센서들로부터의 출력에 기초하여 생성되며; 및
    제2 그룹을 포함하며, 상기 트레이닝 예시들 중 상기 제2 그룹은 제2 로봇에 의한 복수의 상기 파지 시도들 동안 상기 제2 로봇의 복수의 제2 로봇 센서들로부터의 출력에 기초하여 생성되는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
  24. 청구항 23에 있어서, 상기 제1 로봇 센서들은 상기 제1 그룹의 상기 트레이닝 예시들에 대한 상기 이미지들을 생성하는 제1 비전 센서를 포함하고, 상기 제2 로봇 센서들은 상기 제2 그룹의 트레이닝 예시들에 대한 상기 이미지들을 생성하는 제2 비전 센서를 포함하며, 상기 제1 로봇의 제1베이스에 대한 상기 제1 비전 센서의 제1 포즈는 상기 제2 로봇의 제2베이스에 대한 상기 제2 비전 센서의 제2 포즈와 구별되는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
  25. 청구항 15 내지 청구항 24 중 어느 한 항에 있어서, 복수의 트레이닝 예시들이 기초로 하는 상기 파지 시도들은 상기 엔드 이펙터의 시작 포즈로부터 상기 엔드 이펙터의 상기 최종 포즈로 상기 엔드 이펙터를 랜덤하게 이동시키는 복수의 랜덤 액추에이터 명령들을 각각 포함하고, 그 후 상기 최종 포즈에서 상기 엔드 이펙터로 파지하는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
  26. 청구항 25에 있어서,
    상기 트레이닝된 컨벌루션 신경 네트워크에 기초하여 추가 파지 시도들을 생성하는 단계;
    상기 추가 파지 시도들에 기초하여 복수의 추가 트레이닝 예시들을 식별하는 단계; 및
    상기 추가 트레이닝 예시들에 기초하여 상기 컨벌루션 네트워크를 추가 트레이닝함으로써 상기 컨벌루션 신경 네트워크를 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
  27. 청구항 15 내지 청구항 26 중 어느 한 항에 있어서, 상기 트레이닝 예시들 각각에 대한 상기 파지 성공 라벨은 성공을 표시하는 제1 값 또는 실패를 표시하는 제2 값 중 하나인 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
  28. 청구항 15 내지 청구항 27 중 어느 한 항에 있어서, 상기 트레이닝은 상기 복수의 트레이닝 예시들 중 상기 트레이닝 예시 출력에 기초하여 상기 컨벌루션 신경 네트워크 상에서 역전파(backpropagation)를 수행함을 포함하는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
  29. 컴퓨터로 판독가능한 명령어들로서, 상기 명령어들은 적어도 하나의 프로세서에 의해 실행시, 상기 적어도 하나의 프로세서로 하여금 청구항 1 내지 청구항 13 및 청구항 15 내지 청구항 28 중 어느 한 방법을 수행하게 하는 것을 특징으로 하는 컴퓨터로 판독가능한 명령어들.
KR1020187028530A 2016-03-03 2016-12-13 로봇 파지용 심층 기계 학습 방법 및 장치 KR102023588B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020197026856A KR102487493B1 (ko) 2016-03-03 2016-12-13 로봇 파지용 심층 기계 학습 방법 및 장치

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662303139P 2016-03-03 2016-03-03
US62/303,139 2016-03-03
US15/377,280 2016-12-13
PCT/US2016/066393 WO2017151206A1 (en) 2016-03-03 2016-12-13 Deep machine learning methods and apparatus for robotic grasping
US15/377,280 US10207402B2 (en) 2016-03-03 2016-12-13 Deep machine learning methods and apparatus for robotic grasping

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020197026856A Division KR102487493B1 (ko) 2016-03-03 2016-12-13 로봇 파지용 심층 기계 학습 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20180114217A true KR20180114217A (ko) 2018-10-17
KR102023588B1 KR102023588B1 (ko) 2019-10-14

Family

ID=59723212

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020187028530A KR102023588B1 (ko) 2016-03-03 2016-12-13 로봇 파지용 심층 기계 학습 방법 및 장치
KR1020197026856A KR102487493B1 (ko) 2016-03-03 2016-12-13 로봇 파지용 심층 기계 학습 방법 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020197026856A KR102487493B1 (ko) 2016-03-03 2016-12-13 로봇 파지용 심층 기계 학습 방법 및 장치

Country Status (8)

Country Link
US (3) US10207402B2 (ko)
EP (2) EP3742347B1 (ko)
JP (2) JP6586532B2 (ko)
KR (2) KR102023588B1 (ko)
CN (2) CN109074513B (ko)
CA (1) CA3016418C (ko)
MX (1) MX2022002983A (ko)
WO (1) WO2017151206A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200059111A (ko) * 2018-11-20 2020-05-28 한양대학교 산학협력단 뉴럴 네트워크를 이용하는 파지 방법, 파지 학습 방법 및 파지 로봇
KR20210053649A (ko) * 2019-11-04 2021-05-12 울산과학기술원 딥 뉴럴 네트워크 구성 방법 및 장치
WO2022086157A1 (ko) * 2020-10-20 2022-04-28 삼성전자주식회사 전자 장치 및 그 제어 방법

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3016418C (en) * 2016-03-03 2020-04-14 Google Llc Deep machine learning methods and apparatus for robotic grasping
CN111832702A (zh) 2016-03-03 2020-10-27 谷歌有限责任公司 用于机器人抓取的深度机器学习方法和装置
US20170277955A1 (en) * 2016-03-23 2017-09-28 Le Holdings (Beijing) Co., Ltd. Video identification method and system
US10058995B1 (en) 2016-07-08 2018-08-28 X Development Llc Operating multiple testing robots based on robot instructions and/or environmental parameters received in a request
US10055667B2 (en) 2016-08-03 2018-08-21 X Development Llc Generating a model for an object encountered by a robot
KR102567525B1 (ko) * 2016-11-17 2023-08-16 삼성전자주식회사 이동 로봇 시스템, 이동 로봇 및 이동 로봇 시스템의 제어 방법
DE112017006758B4 (de) * 2017-02-03 2024-04-25 Ford Global Technologies, Llc Starthilfedrohne
US10546242B2 (en) * 2017-03-03 2020-01-28 General Electric Company Image analysis neural network systems
US11351673B2 (en) 2017-03-06 2022-06-07 Miso Robotics, Inc. Robotic sled-enhanced food preparation system and related methods
WO2018165038A1 (en) 2017-03-06 2018-09-13 Miso Robotics, Inc. Augmented reality-enhanced food preparation system and related methods
US10836525B1 (en) * 2017-03-07 2020-11-17 Amazon Technologies, Inc. Robotic gripper for bagging items
CN111094136B (zh) * 2017-09-20 2022-10-28 麦格纳国际公司 用于制造业用的适应性箱子拾取的***和方法
US10899011B2 (en) * 2018-11-14 2021-01-26 Fetch Robotics, Inc. Method and system for selecting a preferred robotic grasp of an object-of-interest using pairwise ranking
JP6676030B2 (ja) * 2017-11-20 2020-04-08 株式会社安川電機 把持システム、学習装置、把持方法、及び、モデルの製造方法
JP6680750B2 (ja) 2017-11-22 2020-04-15 ファナック株式会社 制御装置及び機械学習装置
JP6737764B2 (ja) 2017-11-24 2020-08-12 ファナック株式会社 ロボットに対して教示操作を行う教示装置
US10108903B1 (en) * 2017-12-08 2018-10-23 Cognitive Systems Corp. Motion detection based on machine learning of wireless signal properties
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
CN108340367A (zh) * 2017-12-13 2018-07-31 深圳市鸿益达供应链科技有限公司 用于机械臂抓取的机器学习方法
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
CN107972036B (zh) * 2017-12-25 2021-04-27 厦门大学嘉庚学院 基于TensorFlow的工业机器人动力学控制***及方法
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)
US11393251B2 (en) 2018-02-09 2022-07-19 Pupil Labs Gmbh Devices, systems and methods for predicting gaze-related parameters
CN108393892B (zh) * 2018-03-05 2020-07-24 厦门大学 一种机器人前馈力矩补偿方法
US11420325B2 (en) * 2018-03-05 2022-08-23 Omron Corporation Method, apparatus and system for controlling a robot, and storage medium
KR101860797B1 (ko) * 2018-03-08 2018-05-25 (주)모던텍 오토 핸들 장치
JP6911798B2 (ja) * 2018-03-15 2021-07-28 オムロン株式会社 ロボットの動作制御装置
CN108714914B (zh) * 2018-03-19 2021-09-07 山东超越数控电子股份有限公司 一种机械臂视觉***
CN110293553B (zh) * 2018-03-21 2021-03-12 北京猎户星空科技有限公司 控制机械臂操作物体的方法、装置及模型训练方法、装置
WO2019183141A1 (en) * 2018-03-21 2019-09-26 Realtime Robotics, Inc. Motion planning of a robot for various environments and tasks and improved operation of same
JP6810087B2 (ja) * 2018-03-29 2021-01-06 ファナック株式会社 機械学習装置、機械学習装置を用いたロボット制御装置及びロボットビジョンシステム、並びに機械学習方法
WO2019204700A1 (en) * 2018-04-19 2019-10-24 University Of South Florida Neonatal pain identification from neonatal facial expressions
US11584016B2 (en) 2018-04-24 2023-02-21 Fanuc Corporation Robot controller and system
JP7154815B2 (ja) * 2018-04-27 2022-10-18 キヤノン株式会社 情報処理装置、制御方法、ロボットシステム、コンピュータプログラム、及び記憶媒体
US10967507B2 (en) * 2018-05-02 2021-04-06 X Development Llc Positioning a robot sensor for object classification
US20210118166A1 (en) * 2019-10-18 2021-04-22 Nvidia Corporation Pose determination using one or more neural networks
WO2019221754A1 (en) * 2018-05-18 2019-11-21 Verb Surgical Inc. System and method for controlling a robotic wrist
JP7008136B2 (ja) * 2018-06-14 2022-01-25 ヤマハ発動機株式会社 機械学習装置及びこれを備えたロボットシステム
US10706499B2 (en) * 2018-06-21 2020-07-07 Canon Kabushiki Kaisha Image processing using an artificial neural network
WO2020008633A1 (ja) * 2018-07-06 2020-01-09 三菱電機株式会社 機械学習装置、数値制御装置、工作機械および機械学習方法
US11167421B2 (en) 2018-08-10 2021-11-09 Miso Robotics, Inc. Robotic kitchen assistant including universal utensil gripping assembly
US10719737B2 (en) 2018-08-23 2020-07-21 Denso International America, Inc. Image classification system for resizing images to maintain aspect ratio information
DE102019122790B4 (de) * 2018-08-24 2021-03-25 Nvidia Corp. Robotersteuerungssystem
US11833681B2 (en) * 2018-08-24 2023-12-05 Nvidia Corporation Robotic control system
US11325252B2 (en) 2018-09-15 2022-05-10 X Development Llc Action prediction networks for robotic grasping
US10611026B1 (en) * 2018-10-16 2020-04-07 University Of South Florida Systems and methods for learning and generating movement policies for a dynamical system
US11007642B2 (en) 2018-10-23 2021-05-18 X Development Llc Machine learning methods and apparatus for automated robotic placement of secured object in appropriate location
US11577401B2 (en) 2018-11-07 2023-02-14 Miso Robotics, Inc. Modular robotic food preparation system and related methods
JP7044047B2 (ja) * 2018-12-14 2022-03-30 トヨタ自動車株式会社 ロボット
WO2020142498A1 (en) * 2018-12-31 2020-07-09 Abb Schweiz Ag Robot having visual memory
WO2020142296A1 (en) * 2019-01-01 2020-07-09 Giant.Ai, Inc. Software compensated robotics
US11312012B2 (en) * 2019-01-01 2022-04-26 Giant Ai, Inc. Software compensated robotics
US11433555B2 (en) * 2019-03-29 2022-09-06 Rios Intelligent Machines, Inc. Robotic gripper with integrated tactile sensor arrays
CN110000785B (zh) * 2019-04-11 2021-12-14 上海交通大学 农业场景无标定机器人运动视觉协同伺服控制方法与设备
CN110238840B (zh) * 2019-04-24 2021-01-29 中山大学 一种基于视觉的机械臂自主抓取方法
JP7263920B2 (ja) * 2019-05-23 2023-04-25 トヨタ自動車株式会社 演算装置、制御プログラム、機械学習器及び把持装置
EP3979896A1 (en) 2019-06-05 2022-04-13 Pupil Labs GmbH Devices, systems and methods for predicting gaze-related parameters
EP3771522A1 (de) * 2019-07-30 2021-02-03 Siemens Aktiengesellschaft Verfahren und manipulationssystem zur manipulation eines objekts durch einen roboter mittels vektorfelder
US20220258355A1 (en) * 2019-08-02 2022-08-18 Dextrous Robotics, Inc. Systems and method for robotics control under contact
NL2023651B1 (en) * 2019-08-16 2021-02-24 Laundry Robotics B V Method and system feeding a flatwork item to a transport conveyor and/or a flatwork treating device
NL2023652B1 (en) * 2019-08-16 2021-03-24 Laundry Robotics B V Method and system for detecting and gripping a second corner of a flatwork item
JP2022544535A (ja) * 2019-08-16 2022-10-19 ランドリー ロボティックス ベスローテン ヴェンノーツハップ フラットワーク物品を搬送コンベア及び/又はフラットワーク処理装置に供給する方法及びシステム
NL2023653B1 (en) * 2019-08-16 2021-03-24 Laundry Robotics B V Method and system for detecting and gripping a corner of a flatwork item
EP3998140A4 (en) 2019-08-28 2022-09-28 Daily Color Inc. ROBOT CONTROL DEVICE
US20220355475A1 (en) * 2019-08-30 2022-11-10 Nec Corporation Information processing device, control method, and storage medium
US11685045B1 (en) * 2019-09-09 2023-06-27 X Development Llc Asynchronous robotic control using most recently selected robotic action data
US20210081791A1 (en) * 2019-09-13 2021-03-18 Osaro Computer-Automated Robot Grasp Depth Estimation
US11571809B1 (en) * 2019-09-15 2023-02-07 X Development Llc Robotic control using value distributions
US20210080970A1 (en) * 2019-09-16 2021-03-18 X Development Llc Using adjustable vision component for on-demand vision data capture of areas along a predicted trajectory of a robot
US11389957B2 (en) * 2019-09-30 2022-07-19 Mitsubishi Electric Research Laboratories, Inc. System and design of derivative-free model learning for robotic systems
US20210101280A1 (en) * 2019-10-02 2021-04-08 Baker Hughes Oilfield Operations, Llc Telemetry harvesting and analysis from extended reality streaming
JP7458741B2 (ja) * 2019-10-21 2024-04-01 キヤノン株式会社 ロボット制御装置及びその制御方法及びプログラム
US20210125052A1 (en) * 2019-10-24 2021-04-29 Nvidia Corporation Reinforcement learning of tactile grasp policies
US11724401B2 (en) * 2019-11-13 2023-08-15 Nvidia Corporation Grasp determination for an object in clutter
US11173610B2 (en) * 2019-11-13 2021-11-16 Vicarious Fpc, Inc. Method and system for robot control using visual feedback
TWI790408B (zh) * 2019-11-19 2023-01-21 財團法人工業技術研究院 抓取裝置及抓取方法
US20210158141A1 (en) * 2019-11-22 2021-05-27 Sony Interactive Entertainment Inc. Control input scheme for machine learning in motion control and physics based animation
US20220189185A1 (en) * 2019-12-09 2022-06-16 Cognex Corporation System and method for applying deep learning tools to machine vision and interface for the same
JP6792230B1 (ja) * 2019-12-12 2020-11-25 株式会社エクサウィザーズ 情報処理装置、方法およびプログラム
CN112989881A (zh) * 2019-12-16 2021-06-18 深圳慧智星晨科技有限公司 一种无监督可迁移的3d视觉物体抓取方法
CN111113416A (zh) * 2019-12-19 2020-05-08 郑州宇恒环保技术有限公司 基于机器视觉的轴承在线检测***
CN111251294A (zh) * 2020-01-14 2020-06-09 北京航空航天大学 一种基于视觉位姿感知和深度强化学习的机器人抓取方法
CN115243842A (zh) * 2020-03-05 2022-10-25 发那科株式会社 机器学习装置
CN111428815B (zh) * 2020-04-16 2022-05-17 重庆理工大学 一种基于Anchor angle机制的机械臂抓取检测方法
JP6854554B1 (ja) * 2020-06-11 2021-04-07 Pst株式会社 情報処理装置、情報処理方法、情報処理システム、及び情報処理プログラム
US11559885B2 (en) * 2020-07-14 2023-01-24 Intrinsic Innovation Llc Method and system for grasping an object
WO2022015807A1 (en) 2020-07-14 2022-01-20 Vicarious Fpc, Inc. Method and system for object grasping
US20220019852A1 (en) 2020-07-14 2022-01-20 Vicarious Fpc, Inc. Method and system for generating training data
WO2022104161A2 (en) * 2020-11-13 2022-05-19 Armstrong Robotics, Inc. System for automated manipulation of objects using a vision-based collision-free motion plan
US20220152825A1 (en) * 2020-11-13 2022-05-19 Armstrong Robotics, Inc. Automated manipulation of objects using a vision-based method for determining collision-free motion planning
CN112847235B (zh) * 2020-12-25 2022-09-09 山东大学 基于深度强化学习的机器人分阶力引导装配方法及***
US11787049B2 (en) * 2021-02-18 2023-10-17 Sanctuary Cognitive Systems Corporation Systems, devices, and methods for training multi-purpose robots
CN113172663A (zh) * 2021-03-24 2021-07-27 深圳先进技术研究院 一种机械手抓取稳定性识别方法、装置和电子设备
CN113103237B (zh) * 2021-04-25 2022-10-04 长春工业大学 一种面向未知环境约束的可重构机械臂控制方法及***
WO2022236227A1 (en) 2021-05-01 2022-11-10 Miso Robotics, Inc. Automated bin system for accepting food items in robotic kitchen workspace and related methods
TWI771004B (zh) * 2021-05-14 2022-07-11 財團法人工業技術研究院 物件姿態估測系統及其執行方法與圖案化使用者介面
CN117813603A (zh) * 2021-06-17 2024-04-02 Abb瑞士股份有限公司 生成用于神经网络的扩充训练数据的***和方法
WO2023084207A1 (en) * 2021-11-09 2023-05-19 Danu Robotics Ltd Robotic system and method for picking and/or sorting objects
WO2023205176A1 (en) 2022-04-18 2023-10-26 Dextrous Robotics, Inc. System and/or method for grasping objects
WO2024025541A1 (en) * 2022-07-28 2024-02-01 Hitachi Vantara Llc Unsupervised multi-target motion profile sequence prediction and optimization
CN116512254B (zh) * 2023-04-11 2024-01-23 中国人民解放军军事科学院国防科技创新研究院 基于方向的机械臂智能控制方法及***、设备、存储介质
CN116604571B (zh) * 2023-07-14 2023-10-27 湖南大学 一种基于深度强化学习的机器人三维测量路径规划方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0780790A (ja) * 1993-09-16 1995-03-28 Fujitsu Ltd 三次元物体把持システム
JP2012524663A (ja) * 2009-04-23 2012-10-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 物体学習ロボットおよび方法
KR20130017123A (ko) * 2011-08-10 2013-02-20 한국생산기술연구원 로봇 파지 지능 학습 지원 시스템 및 방법
KR20140020071A (ko) * 2012-08-07 2014-02-18 삼성전자주식회사 수술 로봇 시스템 및 그 제어방법

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5673367A (en) * 1992-10-01 1997-09-30 Buckley; Theresa M. Method for neural network control of motion using real-time environmental feedback
JPH06314103A (ja) 1993-04-30 1994-11-08 Fujitsu Ltd 制御装置と能動的センシング装置
JP3421608B2 (ja) 1999-04-08 2003-06-30 ファナック株式会社 教示モデル生成装置
DE60130742T2 (de) 2001-05-28 2008-07-17 Honda Research Institute Europe Gmbh Mustererkennung mit hierarchischen Netzen
DE10130485C2 (de) * 2001-06-25 2003-06-26 Robert Riener Programmierbarer Gelenksimulator
WO2003021365A2 (en) * 2001-08-31 2003-03-13 The Board Of Regents Of The University And Community College System, On Behalf Of The University Of Nevada, Reno Coordinated joint motion control system
US7443115B2 (en) * 2002-10-29 2008-10-28 Matsushita Electric Industrial Co., Ltd. Apparatus and method for robot handling control
JP3751309B2 (ja) 2002-12-12 2006-03-01 松下電器産業株式会社 ロボット制御装置
US10589087B2 (en) * 2003-11-26 2020-03-17 Wicab, Inc. Systems and methods for altering brain and body functions and for treating conditions and diseases of the same
US20110020779A1 (en) * 2005-04-25 2011-01-27 University Of Washington Skill evaluation using spherical motion mechanism
US7533071B2 (en) * 2005-06-28 2009-05-12 Neurosciences Research Foundation, Inc. Neural modeling and brain-based devices using special purpose processor
KR101003579B1 (ko) 2006-02-02 2010-12-22 가부시키가이샤 야스카와덴키 로봇 시스템
JP2007245326A (ja) * 2006-02-17 2007-09-27 Toyota Motor Corp ロボットとロボットの制御方法
US20080009771A1 (en) * 2006-03-29 2008-01-10 Joel Perry Exoskeleton
US20090278798A1 (en) * 2006-07-26 2009-11-12 The Research Foundation Of The State University Of New York Active Fingertip-Mounted Object Digitizer
US20100243344A1 (en) * 2006-09-25 2010-09-30 Board Of Trustees Of Leland Stanford Junior University Electromechanically counterbalanced humanoid robotic system
RU2361726C2 (ru) * 2007-02-28 2009-07-20 Общество С Ограниченной Ответственностью "Алгоритм-Робо" Система управления антропоморфным роботом и способ управления
US20090132088A1 (en) 2007-04-24 2009-05-21 Tairob Ltd. Transfer of knowledge from a human skilled worker to an expert machine - the learning process
JP2008296330A (ja) 2007-05-31 2008-12-11 Fanuc Ltd ロボットシミュレーション装置
US7997847B2 (en) * 2007-12-10 2011-08-16 Robotic Systems & Technologies, Inc. Automated robotic system for handling surgical instruments
US8155479B2 (en) * 2008-03-28 2012-04-10 Intuitive Surgical Operations Inc. Automated panning and digital zooming for robotic surgical systems
US9119533B2 (en) * 2008-10-07 2015-09-01 Mc10, Inc. Systems, methods, and devices having stretchable integrated circuitry for sensing and delivering therapy
US8204623B1 (en) * 2009-02-13 2012-06-19 Hrl Laboratories, Llc Planning approach for obstacle avoidance in complex environment using articulated redundant robot arm
WO2011123669A1 (en) * 2010-03-31 2011-10-06 St. Jude Medical, Atrial Fibrillation Division, Inc. Intuitive user interface control for remote catheter navigation and 3d mapping and visualization systems
US20110043537A1 (en) * 2009-08-20 2011-02-24 University Of Washington Visual distortion in a virtual environment to alter or guide path movement
JP4837116B2 (ja) 2010-03-05 2011-12-14 ファナック株式会社 視覚センサを備えたロボットシステム
FI20105732A0 (fi) 2010-06-24 2010-06-24 Zenrobotics Oy Menetelmä fyysisten kappaleiden valitsemiseksi robottijärjestelmässä
WO2012047356A2 (en) * 2010-07-26 2012-04-12 The University Of Vermont Uses of systems with degrees of freedom poised between fully quantum and fully classical states
RU2475290C1 (ru) * 2010-11-17 2013-02-20 Общество С Ограниченной Ответственностью "Айтэм Мультимедиа" Устройство для игр
CN102161198B (zh) * 2011-03-18 2012-09-19 浙江大学 用于三维空间中移动机械臂路径规划的主从式协进化方法
JP5787642B2 (ja) 2011-06-28 2015-09-30 キヤノン株式会社 対象物保持装置、対象物保持装置の制御方法、およびプログラム
US20130041508A1 (en) * 2011-08-12 2013-02-14 Georgia Tech Research Corporation Systems and methods for operating robots using visual servoing
JP2013046937A (ja) 2011-08-29 2013-03-07 Dainippon Screen Mfg Co Ltd 対象物把持装置および対象物把持方法および対象物把持プログラム
JP5623358B2 (ja) * 2011-09-06 2014-11-12 三菱電機株式会社 ワーク取り出し装置
TWI454246B (zh) * 2011-09-30 2014-10-01 Mackay Memorial Hospital Immediate monitoring of the target location of the radiotherapy system
US8386079B1 (en) 2011-10-28 2013-02-26 Google Inc. Systems and methods for determining semantic information associated with objects
JP2013111726A (ja) * 2011-11-30 2013-06-10 Sony Corp ロボット装置及びその制御方法、並びにコンピューター・プログラム
US9014850B2 (en) * 2012-01-13 2015-04-21 Toyota Motor Engineering & Manufacturing North America, Inc. Methods and computer-program products for evaluating grasp patterns, and robots incorporating the same
US9092698B2 (en) * 2012-06-21 2015-07-28 Rethink Robotics, Inc. Vision-guided robots and methods of training them
US20140180479A1 (en) 2012-12-20 2014-06-26 Wal-Mart Stores, Inc. Bagging With Robotic Arm
US9764468B2 (en) 2013-03-15 2017-09-19 Brain Corporation Adaptive predictor apparatus and methods
US20150138078A1 (en) 2013-11-18 2015-05-21 Eyal Krupka Hand pose recognition using boosted look up tables
CN104680508B (zh) 2013-11-29 2018-07-03 华为技术有限公司 卷积神经网络和基于卷积神经网络的目标物体检测方法
US10226869B2 (en) * 2014-03-03 2019-03-12 University Of Washington Haptic virtual fixture tools
US9533413B2 (en) * 2014-03-13 2017-01-03 Brain Corporation Trainable modular robotic apparatus and methods
JP6415066B2 (ja) 2014-03-20 2018-10-31 キヤノン株式会社 情報処理装置、情報処理方法、位置姿勢推定装置、ロボットシステム
JP6364856B2 (ja) 2014-03-25 2018-08-01 セイコーエプソン株式会社 ロボット
US9283676B2 (en) * 2014-06-20 2016-03-15 GM Global Technology Operations LLC Real-time robotic grasp planning
US9978013B2 (en) 2014-07-16 2018-05-22 Deep Learning Analytics, LLC Systems and methods for recognizing objects in radar imagery
US11256982B2 (en) * 2014-07-18 2022-02-22 University Of Southern California Noise-enhanced convolutional neural networks
US9767385B2 (en) * 2014-08-12 2017-09-19 Siemens Healthcare Gmbh Multi-layer aggregation for object detection
US10768708B1 (en) * 2014-08-21 2020-09-08 Ultrahaptics IP Two Limited Systems and methods of interacting with a robotic tool using free-form gestures
US10518409B2 (en) * 2014-09-02 2019-12-31 Mark Oleynik Robotic manipulation methods and systems for executing a domain-specific application in an instrumented environment with electronic minimanipulation libraries
US10754328B2 (en) * 2014-09-05 2020-08-25 Accenture Global Solutions Limited Self-adaptive device intelligence as a service enterprise infrastructure for sensor-rich environments
CA2882968C (en) * 2015-02-23 2023-04-25 Sulfur Heron Cognitive Systems Inc. Facilitating generation of autonomous control information
US10335951B2 (en) 2015-07-29 2019-07-02 Canon Kabushiki Kaisha Information processing apparatus, information processing method, robot control apparatus, and robot system
US9616568B1 (en) 2015-08-25 2017-04-11 X Development Llc Generating a grasp affordance for an object based on a thermal image of the object that is captured following human manipulation of the object
KR101808840B1 (ko) 2015-09-04 2017-12-13 한국전자통신연구원 학습 기반 깊이 정보 추출 방법 및 장치
CN106548127B (zh) 2015-09-18 2022-11-04 松下电器(美国)知识产权公司 图像识别方法
US9689696B1 (en) * 2015-09-22 2017-06-27 X Development Llc Determining handoff checkpoints for low-resolution robot planning
US9662787B1 (en) * 2015-09-25 2017-05-30 Google Inc. Hydraulic pressure variation in a legged robot
US20170106542A1 (en) * 2015-10-16 2017-04-20 Amit Wolf Robot and method of controlling thereof
US9904874B2 (en) 2015-11-05 2018-02-27 Microsoft Technology Licensing, Llc Hardware-efficient deep convolutional neural networks
US9959468B2 (en) 2015-11-06 2018-05-01 The Boeing Company Systems and methods for object tracking and classification
JP2017102671A (ja) 2015-12-01 2017-06-08 キヤノン株式会社 識別装置、調整装置、情報処理方法及びプログラム
US10471594B2 (en) * 2015-12-01 2019-11-12 Kindred Systems Inc. Systems, devices, and methods for the distribution and collection of multimodal data associated with robots
US9799198B2 (en) * 2015-12-18 2017-10-24 General Electric Company System and method for communicating with an operator of the system
US10229324B2 (en) 2015-12-24 2019-03-12 Intel Corporation Video summarization using semantic information
US20170213576A1 (en) 2016-01-22 2017-07-27 Artur Nugumanov Live Comics Capturing Camera
CA3016418C (en) 2016-03-03 2020-04-14 Google Llc Deep machine learning methods and apparatus for robotic grasping

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0780790A (ja) * 1993-09-16 1995-03-28 Fujitsu Ltd 三次元物体把持システム
JP2012524663A (ja) * 2009-04-23 2012-10-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 物体学習ロボットおよび方法
KR20130017123A (ko) * 2011-08-10 2013-02-20 한국생산기술연구원 로봇 파지 지능 학습 지원 시스템 및 방법
KR20140020071A (ko) * 2012-08-07 2014-02-18 삼성전자주식회사 수술 로봇 시스템 및 그 제어방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200059111A (ko) * 2018-11-20 2020-05-28 한양대학교 산학협력단 뉴럴 네트워크를 이용하는 파지 방법, 파지 학습 방법 및 파지 로봇
KR20210053649A (ko) * 2019-11-04 2021-05-12 울산과학기술원 딥 뉴럴 네트워크 구성 방법 및 장치
WO2022086157A1 (ko) * 2020-10-20 2022-04-28 삼성전자주식회사 전자 장치 및 그 제어 방법

Also Published As

Publication number Publication date
CN111230871A (zh) 2020-06-05
KR102023588B1 (ko) 2019-10-14
CA3016418C (en) 2020-04-14
JP2019508273A (ja) 2019-03-28
KR20190108191A (ko) 2019-09-23
US20170252922A1 (en) 2017-09-07
EP3742347B1 (en) 2022-11-02
KR102487493B1 (ko) 2023-01-11
US11548145B2 (en) 2023-01-10
US10946515B2 (en) 2021-03-16
WO2017151206A1 (en) 2017-09-08
EP3405910A1 (en) 2018-11-28
BR112018067482A2 (pt) 2019-01-02
CA3016418A1 (en) 2017-09-08
CN109074513A (zh) 2018-12-21
US20210162590A1 (en) 2021-06-03
US10207402B2 (en) 2019-02-19
EP3405910B1 (en) 2020-11-25
US20190283245A1 (en) 2019-09-19
EP3742347A1 (en) 2020-11-25
JP2019217632A (ja) 2019-12-26
MX2022002983A (es) 2022-04-06
CN109074513B (zh) 2020-02-18
CN111230871B (zh) 2023-04-07
JP6586532B2 (ja) 2019-10-02
JP6921151B2 (ja) 2021-08-18

Similar Documents

Publication Publication Date Title
US11548145B2 (en) Deep machine learning methods and apparatus for robotic grasping
US11045949B2 (en) Deep machine learning methods and apparatus for robotic grasping
US11554483B2 (en) Robotic grasping prediction using neural networks and geometry aware object representation
US11717959B2 (en) Machine learning methods and apparatus for semantic robotic grasping

Legal Events

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