KR20180114217A - 로봇 파지용 심층 기계 학습 방법 및 장치 - Google Patents
로봇 파지용 심층 기계 학습 방법 및 장치 Download PDFInfo
- 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
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1612—Programme controls characterised by the hand, wrist, grip control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1669—Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme 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/1697—Vision controlled systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/0265—Adaptive 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/027—Adaptive 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G06N3/0454—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39509—Gripping, 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는 컴퓨터 시스템의 예시적인 아키텍처를 개략적으로 도시한다.
도 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 개의 개별 시간 단계들 또는 인스턴스들로 구성된다. 각 시간 단계에서, 파지 시도를 수행하는 로봇의 비전 센서에 의해 캡처된 현재 이미지가 저장되고, 엔드 이펙터의 현재 포즈가 또한 저장되며, 로봇은 파지기를 이동할 다음 (변환(translation) 및/또는 회전) 경로를 선택한다. 최종 시간 단계 에서, 로봇은 파지기를 구동 (예를 들어 폐쇄)하고 추가적인 데이터를 저장하고 및/또는 파지 성공의 평가가 가능하도록 하나 이상의 추가 액션들을 수행한다. 트레이닝 예시 생성 시스템(110)의 파지 성공 엔진(116)은 파지 성공을 평가하여 파지 성공 라벨을 생성한다.
각각의 파지 시도는 로 표현되는 트레이닝 예시들을 결과로 한다. 즉, 각 트레이닝 예시는 적어도 그 시간 단계에서 관찰된 이미지, 그 시간 단계에서의 포즈로부터 궁극적으로 도달된 포즈 (파지 시도의 최종 포즈)까지의 엔드 이펙터 모션 벡터() 및 파지 시도의 성공 라벨을 포함한다. 각 엔드 이펙터 모션 벡터는 트레이닝 예시 생성 시스템(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)
- 방법으로서:
하나 이상의 프로세서들에 의해, 로봇의 파지 엔드 이펙터(grasping end effector)를 현재 포즈로부터 추가 포즈로 이동시키기 위해 모션을 정의하는 후보 엔드 이펙터 모션 벡터를 생성하는 단계;
상기 하나 이상의 프로세서들에 의해, 상기 로봇과 연관된 비전 센서에 의해 캡처된 현재 이미지를 식별하는 단계, 상기 이미지는 상기 로봇의 환경 내의 적어도 하나의 오브젝트 및 상기 파지 엔드 이펙터를 캡처하고;
상기 하나 이상의 프로세서들에 의해, 트레이닝된 컨벌루션 신경 네트워크에 입력으로서 상기 현재 이미지 및 상기 후보 엔드 이펙터 모션 벡터를 적용하는 단계;
상기 트레이닝된 컨벌루션 신경 네트워크를 통해, 상기 모션의 적용으로 상기 오브젝트의 성공적인 파지의 측정치를 생성하는 단계, 상기 측정치는 상기 트레이닝된 컨벌루션 신경 네트워크에 상기 이미지 및 상기 엔드 이펙터 모션 벡터의 상기 적용에 기초하여 생성되고;
상기 측정치에 기초하여 엔드 이펙터 명령을 생성하는 단계, 상기 엔드 이펙터 명령은 파지 명령 또는 엔드 이펙터 모션 명령이며; 및
상기 엔드 이펙터 명령을 상기 로봇의 하나 이상의 액추에이터(actuator)들에 제공하는 단계를 포함하는 것을 특징으로 하는 방법. - 청구항 1에 있어서,
상기 하나 이상의 프로세서들에 의해, 상기 모션의 적용 없이 상기 오브젝트의 성공적인 파지의 현재 측정치를 결정하는 단계를 더 포함하며;
상기 엔드 이펙터 명령을 생성하는 단계는 상기 측정치 및 상기 현재 측정치에 기초하는 것을 특징으로 하는 방법. - 청구항 2에 있어서, 상기 엔드 이펙터 명령은 상기 파지 명령이고, 상기 파지 명령을 생성하는 단계는 상기 현재 측정치에 대한 상기 측정치의 비교가 임계값을 만족하는 것으로 결정함에 응답하는 것임을 특징으로 하는 방법.
- 청구항 2에 있어서, 상기 엔드 이펙터 명령은 상기 엔드 이펙터 모션 명령이며, 상기 엔드 이펙터 모션 명령을 생성하는 단계는 상기 후보 엔드 이펙터 모션 벡터에 따르도록(conform) 상기 엔드 이펙터 모션 명령을 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
- 청구항 2에 있어서, 상기 엔드 이펙터 명령은 상기 엔드 이펙터 모션 명령이고, 상기 엔드 이펙터 모션 명령을 생성하는 단계는 상기 엔드 이펙터 모션 명령을 생성하여 상기 엔드 이펙터에 궤도 보정을 실시(effectuate)하는 단계를 포함하는 것을 특징으로 하는 방법.
- 청구항 2 내지 청구항 5중 어느 한 항에 있어서, 상기 모션의 적용 없이 상기 오브젝트의 성공적인 파지의 상기 현재 측정치를 결정하는 단계는:
상기 하나 이상의 프로세서들에 의해, 상기 트레이닝된 컨벌루션 신경 네트워크에 입력으로서 상기 이미지 및 널(null) 엔드 이펙터 모션 벡터를 적용하는 단계; 및
상기 트레이닝된 컨벌루션 신경 네트워크를 통해, 상기 모션의 적용 없이 상기 오브젝트의 성공적인 파지의 상기 현재 측정치를 생성하는 단계를 포함하며, 상기 현재 측정치는 상기 트레이닝된 컨벌루션 신경 네트워크에 상기 이미지 및 상기 널 엔드 이펙터 모션 벡터의 적용에 기초하여 생성되는 것을 특징으로 하는 방법. - 청구항 1,2 또는 4에 있어서, 상기 엔드 이펙터 명령은 상기 엔드 이펙터 모션 명령이고 상기 후보 엔드 이펙터 모션 벡터를 따르며, 상기 엔드 이펙터 모션 명령을 상기 하나 이상의 액추에이터들에 제공하는 단계는 상기 엔드 이펙터를 새로운 포즈로 이동시키고,
상기 하나 이상의 프로세서들에 의해, 상기 파지 엔드 이펙터를 새로운 포즈로부터 추가 포즈로 이동시키기 위해 새로운 모션을 정의하는 추가 후보 엔드 이펙터 모션 벡터를 생성하는 단계;
상기 하나 이상의 프로세서들에 의해, 상기 로봇과 연관된 비전 센서에 의해 캡처된 새로운 이미지를 식별하는 단계, 상기 새로운 이미지는 상기 새로운 포즈에서 상기 엔드 이펙터를 캠처하고 상기 로봇의 환경 내의 상기 오브젝트들을 캡처하며;
상기 하나 이상의 프로세서들에 의해, 상기 트레이닝된 컨벌루션 신경 네트워크에 입력으로서 상기 새로운 이미지 및 상기 추가 후보 엔드 이펙터 모션 벡터를 적용하는 단계;
상기 트레이닝된 컨벌루션 신경 네트워크를 통해, 상기 새로운 모션의 적용으로 상기 오브젝트의 성공적인 파지의 새로운 측정치를 생성하는 단계, 상기 새로운 측정치는 상기 트레이닝된 컨벌루션 신경 네트워크에 상기 새로운 이미지 및 상기 추가 엔드 이펙터 모션 벡터의 상기 적용에 기초하여 생성되고;
상기 새로운 측정치에 기초하여 새로운 엔드 이펙터 명령을 생성하는 단계, 상기 새로운 엔드 이펙터 명령은 상기 파지 명령 또는 새로운 엔드 이펙터 모션 명령이며; 및
상기 새로운 엔드 이펙터 명령을 상기 로봇의 하나 이상의 액추에이터들에 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 전술한 항들 중 어느 한 항에 있어서, 상기 트레이닝된 컨벌루션 신경 네트워크에 입력으로서 상기 이미지 및 상기 후보 엔드 이펙터 모션 벡터를 적용하는 단계는:
상기 트레이닝된 컨벌루션 신경 네트워크의 초기 계층에 입력으로서 상기 이미지를 적용하는 단계; 및
상기 트레이닝된 컨벌루션 신경 네트워크의 추가 계층에 상기 후보 엔드 이펙터 모션 벡터를 적용하는 단계를 포함하며, 상기 추가 계층은 상기 초기 계층의 다운스트림인 것을 특징으로 하는 방법. - 청구항 8에 있어서, 상기 후보 엔드 이펙터 모션 벡터를 상기 추가 계층에 적용하는 단계는:
엔드 이펙터 모션 벡터 출력을 생성하기 위해 상기 컨벌루션 신경 네트워크의 완전히 연결된 계층을 통해 상기 엔드 이펙터 모션 벡터를 패싱(pass)하는 단계; 및
상기 엔드 이펙터 모션 벡터 출력을 업스트림 출력과 연접(concatenate)하는 단계를 포함하며, 상기 업스트림은 상기 초기 계층 및 상기 컨벌루션 신경 네트워크의 하나 이상의 중간 계층들로부터의 다운스트림이며 상기 추가 계층의 바로 업스트림인 상기 컨벌루션 신경 네트워크의 계층의 바로 업스트림 계층으로부터 온 것을 특징으로 하는 방법. - 청구항 9에 있어서, 상기 초기 계층은 컨벌루션 계층이고 상기 바로 업스트림 계층은 풀링(pooling) 계층인 것을 특징으로 하는 방법.
- 전술한 청구항들 중 어느 한 항에 있어서,
상기 하나 이상의 프로세서들에 의해, 상기 비전 센서에 의해 캡처된 추가 이미지를 식별하는 단계, 상기 추가 이미지는 상기 하나 이상의 환경 오브젝트들을 캡처하고 상기 로봇 엔드 이펙터를 생략하거나 상기 이미지 내의 상기 로봇 엔드 이펙터의 것과는 상이한 포즈의 상기 로봇 엔드 이펙터를 포함하며; 및
상기 트레이닝된 컨벌루션 신경 네트워크에 추가 입력으로서 상기 추가 이미지를 적용하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 청구항 11에 있어서, 상기 컨벌루션 신경 네트워크에 상기 이미지 및 상기 추가 이미지를 적용하는 단계는:
연접된 이미지를 생성하기 위해 상기 이미지와 상기 추가 이미지를 연접하는 단계; 및
상기 컨벌루션 신경 네트워크의 초기 계층에 입력으로서 상기 연접된 이미지를 적용하는 단계를 포함하는 것을 특징으로 하는 방법. - 전술한 청구항들 중 어느 한 항에 있어서, 상기 후보 엔드 이펙터 모션 벡터를 생성하는 단계는:
복수의 후보 엔드 이펙터 모션 벡터들을 생성하는 단계; 및
상기 복수의 후보 엔드 이펙터 모션 벡터들로부터 상기 후보 엔드 이펙터 모션 벡터를 선택하기 위해 상기 복수의 후보 엔드 이펙터 모션 벡터들에 대한 크로스-엔트로피 최적화의 하나 이상의 반복(iteration)들을 수행하는 단계를 포함하는 것을 특징으로 하는 방법. - 시스템으로서,
환경을 뷰잉(viewing)하는 비전 센서;
트레이닝된 컨벌루션 신경 네트워크, 상기 트레이닝된 컨벌루션 신경 네트워크는 하나 이상의 비 일지적인 컴퓨터 판독가능 매체에 저장되며;
적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는:
로봇 엔드 이펙터를 현재 포즈로부터 추가 포즈로 이동시키기 위해 모션을 정의하는 후보 엔드 이펙터 모션 벡터를 생성하고;
상기 트레이닝된 컨벌루션 신경 네트워크에 입력으로서 상기 비전 센서에 의해 캡처된 이미지 및 상기 후보 엔드 이펙터 모션 벡터를 적용하고, 상기 이미지는 오브젝트의 환경 내의 적어도 하나의 오브젝트 및 엔드 이펙터를 캡처하고;
상기 트레이닝된 컨벌루션 신경 네트워크를 통해, 상기 모션의 적용으로 상기 오브젝트의 성공적인 파지의 측정치를 생성하고, 상기 측정치는 상기 트레이닝된 컨벌루션 신경 네트워크에 상기 이미지 및 상기 엔드 이펙터 모션 벡터의 상기 적용에 기초하여 생성되고;
상기 측정치에 기초하여 엔드 이펙터 명령을 생성하며, 상기 엔드 이펙터 명령은 파지 명령 또는 엔드 이펙터 모션 명령이며; 그리고
상기 엔드 이펙터 명령을 상기 로봇의 하나 이상의 액추에이터들에 제공하도록 구성된 것을 특징으로 하는 시스템. - 컨벌루션 신경 네트워크를 트레이닝하는 방법으로서:
하나 이상의 프로세서들에 의해, 로봇들에 의한 복수의 파지 시도들 동안 상기 하나 이상의 로봇들로부터의 센서 출력에 기초하여 생성된 복수의 트레이닝 예시들을 식별하는 단계,
상기 트레이닝 예시들 각각은 트레이닝 예시 입력을 포함하고, 상기 트레이닝 예시 입력은:
상기 파지 시도들 중 대응하는 파지 시도 시간의 대응 인스턴스에 대한 이미지, 상기 이미지는 상기 시간의 대응 인스턴스에서의 하나 이상의 환경 오브젝트들 및 로봇 엔드 이펙터를 캡처하며, 및
상기 대응하는 파지 시도를 위해 상기 엔드 이펙터의 모션을 정의하여 시간의 상기 대응 인스턴스에서의 상기 엔드 이펙터의 시간 포즈의 인스턴스로부터 상기 엔드 이펙터의 최종 포즈로 이동 시키기 위해 상기 엔드 이펙터의 모션을 정의하는 엔드 이펙터 모션 벡터를 포함하고,
상기 트레이닝 예시들 각각은 트레이닝 예시 출력을 포함하며, 상기 트레이닝 예시 출력은: 상기 대응하는 파지 시도의 성공을 표시하는 파지 성공 라벨을 포함하고;
상기 하나 이상의 프로세서들에 의해, 상기 트레이닝 예시들에 기초하여 상기 컨벌루션 신경 네트워크를 트레이닝하는 단계를 포함하는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법. - 청구항 15에 있어서, 상기 트레이닝 예시들 각각의 상기 트레이닝 예시 입력은:
상기 대응하는 파지 시도를 위한 추가 이미지를 더 포함하며, 상기 추가 이미지는 상기 하나 이상의 환경 오브젝트들을 캡처하고 상기 로봇 엔드 이펙터를 생략하거나 상기 이미지 내의 상기 로봇 엔드 이펙터의 것과는 상이한 포즈의 상기 로봇 엔드 이펙터를 포함하는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법. - 청구항 16에 있어서, 상기 추가 이미지는 상기 로봇 엔드 이펙터를 완전히 생략하는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
- 청구항 16 또는 청구항 17에 있어서, 상기 컨벌루션 신경 네트워크를 트레이닝하는 단계는, 상기 컨벌루션 신경 네트워크에, 상기 트레이닝 예시들 중에서 주어진 트레이닝 예시의 상기 트레이닝 예시 입력을 적용하는 단계를 포함하며, 상기 주어진 트레이닝 예시의 상기 트레이닝 예시 입력을 적용하는 단계는:
연접된 이미지를 생성하기 위해 상기 이미지와 상기 주어진 트레이닝 예시의 상기 추가 이미지를 연접하는 단계; 및
상기 컨벌루션 신경 네트워크의 초기 계층에 입력으로서 상기 연접된 이미지를 적용하는 단계를 포함하는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법. - 청구항 15 내지 청구항 18 중 어느 한 항에 있어서, 상기 컨벌루션 신경 네트워크를 트레이닝하는 단계는, 상기 컨벌루션 신경 네트워크에, 상기 트레이닝 예시들 중에서 주어진 트레이닝 예시의 상기 트레이닝 예시 입력을 적용하는 단계를 포함하며, 상기 주어진 트레이닝 예시의 상기 트레이닝 예시 입력을 적용하는 단계는:
상기 컨벌루션 신경 네트워크의 초기 계층에 입력으로서 상기 주어진 트레이닝 예시의 상기 이미지를 적용하는 단계; 및
상기 컨벌루션 신경 네트워크의 추가 계층에 상기 주어진 트레이닝 예시의 상기 엔드 이펙터 모션 벡터를 적용하는 단계를 포함하며, 상기 추가 계층은 상기 초기 계층의 다운스트림인 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법. - 청구항 19에 있어서, 상기 추가 계층에 상기 엔드 이펙터 모션 벡터를 적용하는 단계는:
엔드 이펙터 모션 벡터 출력을 생성하기 위해 완전히 연결된 계층을 통해 상기 엔드 이펙터 모션 벡터를 패싱(pass)하는 단계 및 상기 엔드 이펙터 모션 벡터 출력을 업스트림 출력과 연접하는 단계를 포함하며, 상기 업스트림은 상기 초기 계층 및 상기 컨벌루션 신경 네트워크의 하나 이상의 중간 계층들로부터의 다운스트림이며 상기 추가 계층의 바로 업스트림인 상기 컨벌루션 신경 네트워크의 계층의 바로 업스트림 계층으로부터 온 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법. - 청구항 20에 있어서, 상기 초기 계층은 컨벌루션 계층이고 상기 바로 업스트림 계층은 풀링 계층인 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
- 청구항 15 내지 청구항 21 중 어느 한 항에 있어서, 상기 엔드 이펙터 모션 벡터는 작업 공간 내의 상기 엔드 이펙터의 모션을 정의하는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
- 청구항 15 내지 청구항 22 중 어느 한 항에 있어서, 상기 트레이닝 예시들은:
제1 그룹, 상기 트레이닝 예시들 중 상기 제1 그룹은 제1 로봇에 의한 복수의 상기 파지 시도들 동안 상기 제1 로봇의 복수의 제1 로봇 센서들로부터의 출력에 기초하여 생성되며; 및
제2 그룹을 포함하며, 상기 트레이닝 예시들 중 상기 제2 그룹은 제2 로봇에 의한 복수의 상기 파지 시도들 동안 상기 제2 로봇의 복수의 제2 로봇 센서들로부터의 출력에 기초하여 생성되는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법. - 청구항 23에 있어서, 상기 제1 로봇 센서들은 상기 제1 그룹의 상기 트레이닝 예시들에 대한 상기 이미지들을 생성하는 제1 비전 센서를 포함하고, 상기 제2 로봇 센서들은 상기 제2 그룹의 트레이닝 예시들에 대한 상기 이미지들을 생성하는 제2 비전 센서를 포함하며, 상기 제1 로봇의 제1베이스에 대한 상기 제1 비전 센서의 제1 포즈는 상기 제2 로봇의 제2베이스에 대한 상기 제2 비전 센서의 제2 포즈와 구별되는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
- 청구항 15 내지 청구항 24 중 어느 한 항에 있어서, 복수의 트레이닝 예시들이 기초로 하는 상기 파지 시도들은 상기 엔드 이펙터의 시작 포즈로부터 상기 엔드 이펙터의 상기 최종 포즈로 상기 엔드 이펙터를 랜덤하게 이동시키는 복수의 랜덤 액추에이터 명령들을 각각 포함하고, 그 후 상기 최종 포즈에서 상기 엔드 이펙터로 파지하는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
- 청구항 25에 있어서,
상기 트레이닝된 컨벌루션 신경 네트워크에 기초하여 추가 파지 시도들을 생성하는 단계;
상기 추가 파지 시도들에 기초하여 복수의 추가 트레이닝 예시들을 식별하는 단계; 및
상기 추가 트레이닝 예시들에 기초하여 상기 컨벌루션 네트워크를 추가 트레이닝함으로써 상기 컨벌루션 신경 네트워크를 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법. - 청구항 15 내지 청구항 26 중 어느 한 항에 있어서, 상기 트레이닝 예시들 각각에 대한 상기 파지 성공 라벨은 성공을 표시하는 제1 값 또는 실패를 표시하는 제2 값 중 하나인 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
- 청구항 15 내지 청구항 27 중 어느 한 항에 있어서, 상기 트레이닝은 상기 복수의 트레이닝 예시들 중 상기 트레이닝 예시 출력에 기초하여 상기 컨벌루션 신경 네트워크 상에서 역전파(backpropagation)를 수행함을 포함하는 것을 특징으로 하는 컨벌루션 신경 네트워크를 트레이닝하는 방법.
- 컴퓨터로 판독가능한 명령어들로서, 상기 명령어들은 적어도 하나의 프로세서에 의해 실행시, 상기 적어도 하나의 프로세서로 하여금 청구항 1 내지 청구항 13 및 청구항 15 내지 청구항 28 중 어느 한 방법을 수행하게 하는 것을 특징으로 하는 컴퓨터로 판독가능한 명령어들.
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)
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)
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)
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)
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 |
-
2016
- 2016-12-13 CA CA3016418A patent/CA3016418C/en active Active
- 2016-12-13 CN CN201680083745.6A patent/CN109074513B/zh active Active
- 2016-12-13 KR KR1020187028530A patent/KR102023588B1/ko active IP Right Grant
- 2016-12-13 KR KR1020197026856A patent/KR102487493B1/ko active IP Right Grant
- 2016-12-13 WO PCT/US2016/066393 patent/WO2017151206A1/en active Application Filing
- 2016-12-13 JP JP2018545901A patent/JP6586532B2/ja active Active
- 2016-12-13 EP EP20186567.2A patent/EP3742347B1/en active Active
- 2016-12-13 US US15/377,280 patent/US10207402B2/en active Active
- 2016-12-13 EP EP16822854.2A patent/EP3405910B1/en active Active
- 2016-12-13 CN CN202010074457.2A patent/CN111230871B/zh active Active
-
2018
- 2018-08-31 MX MX2022002983A patent/MX2022002983A/es unknown
- 2018-12-27 US US16/234,272 patent/US10946515B2/en active Active
-
2019
- 2019-09-06 JP JP2019163134A patent/JP6921151B2/ja active Active
-
2021
- 2021-02-10 US US17/172,666 patent/US11548145B2/en active Active
Patent Citations (4)
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)
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 |