KR102044665B1 - 로봇 시스템이 작업을 수행하기 위한 명령어를 생성하기 위한 방법 및 시스템 - Google Patents

로봇 시스템이 작업을 수행하기 위한 명령어를 생성하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR102044665B1
KR102044665B1 KR1020197003059A KR20197003059A KR102044665B1 KR 102044665 B1 KR102044665 B1 KR 102044665B1 KR 1020197003059 A KR1020197003059 A KR 1020197003059A KR 20197003059 A KR20197003059 A KR 20197003059A KR 102044665 B1 KR102044665 B1 KR 102044665B1
Authority
KR
South Korea
Prior art keywords
robotic system
task
instructions
cloud
configuration
Prior art date
Application number
KR1020197003059A
Other languages
English (en)
Other versions
KR20190014586A (ko
Inventor
제임스 조셉 쿠프너
제레드 스티븐 러셀
Original Assignee
엑스 디벨롭먼트 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엑스 디벨롭먼트 엘엘씨 filed Critical 엑스 디벨롭먼트 엘엘씨
Publication of KR20190014586A publication Critical patent/KR20190014586A/ko
Application granted granted Critical
Publication of KR102044665B1 publication Critical patent/KR102044665B1/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/0084Programme-controlled manipulators comprising a plurality of manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • GPHYSICS
    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/46Sensing device
    • Y10S901/47Optical

Landscapes

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

Abstract

예시적인 실시예는 로봇-클라우드 상호작용과 관련될 수 있다. 특히, 클라우드 기반 서비스는 센서 데이터, 작업을 수행하기 위한 명령어에 대한 요청, 및 제1 로봇 시스템의 구성과 관련된 정보를 포함하는 질의를 제1 로봇 시스템으로부터 수신할 수 있다. 그 다음, 클라우드 기반 서비스는 작업을 수행하기 위해 제2 로봇 시스템에 의해 이전에 사용된 절차 및 제2 로봇 시스템의 구성과 관련된 정보를 포함하는 저장된 데이터를 식별할 수 있다. 그 다음, 클라우드 기반 서비스는 센서 데이터, 작업을 수행하기 위해 제2 로봇 시스템에 의해 사용된 절차, 제1 로봇 시스템의 구성과 관련된 정보, 및 제2 로봇 시스템의 구성과 관련된 정보에 적어도 부분적으로 기초하여 제1 로봇 시스템이 작업을 수행하기 위한 명령어를 생성할 수 있다.

Description

로봇 시스템이 작업을 수행하기 위한 명령어를 생성하기 위한 방법 및 시스템{METHODS AND SYSTEMS FOR GENERATING INSTRUCTIONS FOR A ROBOTIC SYSTEM TO CARRY OUT A TASK}
관련 출원의 상호 참조
본 출원은 2014년 7월 24일로 출원된 미국 가출원 제62/028, 389호 및 2015년 7월 21일자로 출원된 미국 특허 출원 제14/804, 621호에 대한 우선권을 주장하며, 그 내용 전체가 본 명세서에 참고로 포함된다.
본 명세서에 달리 지시되지 않는 한, 이 섹션에서 설명된 내용은 본 출원의 청구 범위에 대한 선행 기술이 아니며, 이 섹션에 포함됨으로써 선행 기술로 인정되지 않는다.
클라우드 컴퓨팅은 컴퓨터 네트워크를 통해 계산 리소스를 제공하는 것을 말한다. 기존 컴퓨팅 모델에서는 데이터와 소프트웨어가 모두 사용자의 컴퓨터에 완전히 포함되어 있다. 그러나 클라우드 컴퓨팅에서 사용자의 컴퓨터는 상대적으로 적은 소프트웨어 또는 데이터(예를 들어 아마도 최소한의 운영 체제 및 웹 브라우저)를 포함할 수 있으며 컴퓨터 네트워크에서 발생하는 프로세스의 디스플레이 터미널 역할을 할 수 있다. 클라우드 컴퓨팅 서비스(또는 기존 클라우드 서비스의 집합)에 대해 제공되는 일반적인 약칭은 "클라우드"이다.
클라우드 컴퓨팅은 "클라이언트-서버 컴퓨팅(client-server computing)"으로 지칭되었지만, 일반적인 클라우드 컴퓨팅과 클라이언트-서버 컴퓨팅 사이에는 차이가 있을 수 있다. 예를 들어, 클라이언트-서버 컴퓨팅은 리소스 또는 서비스의 제공자(예컨대, 서버)와 서비스 요청자(예를 들어, 클라이언트) 사이에 작업 또는 작업 부하를 분할하는 분산 애플리케이션 구조를 포함할 수 있다. 클라이언트-서버 컴퓨팅은 일반적으로 서버와 클라이언트 사이에 일대일 관계를 수반하지만, 클라우드 컴퓨팅은 일반 클라이언트가 액세스할 수 있는 일반 서비스를 포함한다(예로서, 일대일 관계 또는 접속이 필요하지 않을 수 있다). 따라서 클라우드 컴퓨팅은 일반적으로 클라이언트-서버 컴퓨팅과 추가 서비스 및 기능을 포함한다.
클라우드 컴퓨팅은 컴퓨팅 리소스(예를 들어, 프로세서, 하드 드라이브 등)의 광대한 네트워크에 액세스하는 사용자의 컴퓨터 상에서 보다 간단한 하드웨어의 사용을 통해 특정 하드웨어 및 소프트웨어 설치 및 유지 보수 작업으로부터 사용자를 자유롭게 할 수 있다. 리소스를 공유하면 개인에게 드는 비용을 줄일 수 있다. 따라서 클라우드에 접속된 임의의 컴퓨터는 동일한 컴퓨팅 능력, 애플리케이션 및 파일 풀에 접속될 수 있다. 사용자는 음악, 사진, 비디오 및 북마크와 같은 개인 파일을 저장하고 액세스하거나 게임을 하거나 DVD 또는 엄지 드라이브와 같은 저장 매체를 물리적으로 휴대하지 않고 원격 서버에서 생산성 애플리케이션을 사용할 수 있다.
일례에서, 사용자는 브라우저를 열고, 사용자로부터 커맨드를 수집하고 커맨드를 서버 상의 커맨드로 해석하기 위한 사용자 인터페이스 소프트웨어를 실행하는 웹 서버의 호스트에 접속할 수 있다. 서버는 컴퓨팅을 처리할 수 있으며, 데이터베이스 서버 또는 파일 서버에서 정보를 저장 또는 회수하고, 갱신된 페이지를 사용자에게 표시할 수 있다. "클라우드 컴퓨팅"을 통해 전 세계에서 여러 서버의 데이터를 동기화할 수 있으므로, 예로서 전 세계의 여러 사용자가 하나의 파일 또는 프로젝트를 공동 작업할 수 있다.
발명의 요약
예시적인 실시예는 환경 인식 및 상호작용을 갖는 로봇 시스템을 지원하기 위한 클라우드 기반 서비스를 포함하는 방법 및 시스템에 관련될 수 있다. 특히, 클라우드 기반 서비스는 통신 네트워크를 통해 로봇 시스템과 상호작용하여 정보를 로봇 시스템에서 수신하고 정보를 로봇 시스템에 전송할 수 있다. 이러한 구성은 로봇 시스템에 의해 특정 업무를 수행하기 위해 로봇 시스템 상의 추가적인 온보드 메모리 및 처리 능력에 대한 필요를 감소(또는 제거)시킬 수 있다. 또한, 클라우드 기반 서비스는 여러 로봇 시스템 간의 데이터 공유를 허용할 수 있다. 또한, 클라우드 기반 서비스는 로봇 시스템이 환경으로부터 정보를 획득함에 따라 지속적으로 갱신될 수 있다.
예를 들어, 로봇 시스템은 클라우드 기반 서비스와 상호작용하여 로봇 시스템이 작업을 수행하게 하는 명령어를 수신할 수 있다. 클라우드 기반 서비스는 다양한 인자를 기반으로 명령어를 생성하기 위해 대규모 시뮬레이션을 수행할 수 있다. 이러한 인자는 특히 로봇 시스템으로부터 수신된 센서 데이터, 작업(또는 유사한 작업)을 수행하기 위해 다른 로봇 시스템에 의해 사용된 이전 절차 및/또는 로봇 시스템의 구성을 포함할 수 있다.
일 양태에서, 방법이 제공된다. 이 방법은 하나 이상의 센서를 갖는 제1 로봇 시스템으로부터 질의를 수신하는 단계를 포함하고, 질의는 하나 이상의 센서로부터 획득된 센서 데이터, 작업을 수행하기 위한 명령어에 대한 요청, 및 제1 로봇 시스템의 구성과 관련된 정보를 포함한다. 이 방법은 또한 작업 또는 유사한 작업을 수행하기 위해 제2 로봇 시스템에 의해 이전에 사용된 절차 및 제2 로봇 시스템의 구성과 관련된 정보를 포함하는 저장된 데이터를 식별하는 단계를 포함한다. 이 방법은 또한 센서 데이터, 작업 또는 유사한 작업을 수행하기 위해 제2 로봇 시스템에 의해 이전에 사용된 절차, 제1 로봇 시스템의 구성과 관련된 정보, 및 제2 로봇 시스템의 구성과 관련된 정보에 적어도 부분적으로 기초하여 제1 로봇 시스템이 작업을 수행하기 위한 명령어를 하나 이상의 프로세서에 의해 생성하는 단계를 포함한다. 이 방법은 또한 생성된 명령어에 기초하여 작업을 수행하기 전에 생성된 명령어 및 온보드 시뮬레이션을 실행하기 위한 커맨드를 제1 로봇 시스템에 전송하는 단계를 포함한다. 이 방법은 또한 제1 로봇 시스템으로부터 온보드 시뮬레이션의 결과를 수신하고, 그에 응답하여, 결과에 기초하여, 생성된 명령어가 작업의 수행에 성공할 가능성에 대한 척도와 관련된 신뢰 척도를 결정하는 단계를 추가로 포함한다. 이 방법은 또한 신뢰 척도가 임계치 아래인 것에 기초하여 제1 로봇 시스템에 의해 작업을 수행하기 위한 갱신된 명령어를 하나 이상의 프로세서에 의해 생성하는 단계를 추가로 포함한다.
다른 양태에서, 비일시적 컴퓨터 판독 가능 매체가 제공된다. 비일시적 컴퓨터 판독 가능 매체는 컴퓨팅 시스템으로 하여금 기능을 수행하게 하기 위해 하나 이상의 프로세서들에 의해 실행 가능한 명령어를 저장한다. 기능은 복수의 센서들을 갖는 제1 로봇 장치로부터 질의를 수신하는 기능을 포함하며, 질의는 복수의 센서들로부터 획득된 센서 데이터, 작업을 수행하기 위한 명령어에 대한 요청 및 제1 로봇 장치의 구성과 관련된 정보를 포함한다. 기능은 또한 작업 또는 유사한 작업을 수행하기 위해 제2 로봇 장치에 의해 이전에 사용된 절차 및 제2 로봇 장치의 구성과 관련된 정보를 포함하는 저장된 데이터를 식별하는 기능을 포함한다. 기능은 또한 센서 데이터, 작업 또는 유사한 작업을 수행하기 위해 제2 로봇 장치에 의해 이전에 사용된 절차, 제1 로봇 장치의 구성과 관련된 정보, 및 제2 로봇 장치의 구성과 관련된 정보에 적어도 부분적으로 기초하여 제1 로봇 장치가 작업을 수행하기 위한 명령어를 생성하는 기능을 포함한다. 기능은 또한 생성된 명령어에 기초하여 작업을 수행하기 전에 생성된 명령어 및 온보드 시뮬레이션을 실행하기 위한 커맨드를 제1 로봇 장치에 전송하는 기능을 포함한다. 기능은 또한 제1 로봇 장치로부터 온보드 시뮬레이션의 결과를 수신하고, 그에 응답하여, 결과에 기초하여, 생성된 명령어가 작업의 수행에 성공할 가능성에 대한 척도와 관련된 신뢰 척도를 결정하는 기능을 추가로 포함한다. 기능은 또한 신뢰 척도가 임계치 아래인 것에 기초하여 제1 로봇 장치에 의해 작업을 수행하기 위한 갱신된 명령어를 생성하는 기능을 추가로 포함한다.
또 다른 양태에서, 제2 방법이 제공된다. 제2 방법은 하나 이상의 센서를 갖는 제1 로봇 시스템으로부터 질의를 수신하는 단계를 포함하고, 질의는 하나 이상의 센서로부터 획득된 센서 데이터, 환경 상호작용을 수행하기 위한 명령어에 대한 요청 및 제1 로봇 시스템의 구성과 관련된 정보를 포함한다. 제2 방법은 또한 환경 상호작용을 수행하기 위해 제2 로봇 시스템에 의해 이전에 사용된 절차 및 제2 로봇 시스템의 구성과 관련된 정보를 포함하는 저장된 데이터를 식별하는 단계를 포함한다. 제2 방법은 또한 센서 데이터, 환경 상호작용을 수행하기 위해 제2 로봇 시스템에 의해 사용된 절차, 제1 로봇 시스템의 구성과 관련된 정보 및 제2 로봇 시스템의 구성과 관련된 정보에 적어도 부분적으로 기초하여 제1 로봇 시스템이 환경 상호작용을 수행하기 위한 명령어를 생성하는 단계를 포함한다. 제2 방법은 또한 신뢰 척도가 임계치를 초과할 때까지 반복 절차를 수행하는 단계를 포함하며, 신뢰 척도는 생성된 명령어가 환경 상호작용의 수행에 성공할 가능성에 대한 척도와 관련되며, 반복 절차의 반복은 생성된 명령어에 기초하여 환경 상호작용을 수행하기 전에 생성된 명령어 및 온보드 시뮬레이션을 실행하기 위한 커맨드를 제1 로봇 시스템에 전송하는 단계를 포함한다. 반복 절차의 반복은 또한 제1 로봇 시스템으로부터 온보드 시뮬레이션의 결과를 수신하고, 그에 응답하여, 결과에 기초하여 신뢰 척도를 결정하는 단계를 포함한다. 반복 절차의 반복은 또한 신뢰 척도가 임계치 아래인 것에 기초하여 제1 로봇 시스템에 의해 환경 상호작용을 수행하기 위한 생성된 명령어를 갱신하는 단계를 포함한다.
이들뿐만 아니라 다른 양태, 장점 및 대안이 적절한 경우에 첨부된 도면을 참조하여 아래의 상세한 설명을 읽음으로써 이 분야의 기술자에게 명백해질 것이다.
도 1은 예시적인 실시예에 따른, 클라우드 기반 컴퓨팅을 위한 예시적인 시스템을 도시한다.
도 2a는 예시적인 실시예에 따른 예시적인 클라이언트 장치를 도시한다.
도 2b는 예시적인 실시예에 따른 로봇의 그래픽 예를 도시한다.
도 2c는 예시적인 실시예에 따른 로봇의 다른 그래픽 예를 도시한다.
도 3은 예시적인 실시예에 따른 개념적 로봇-클라우드 상호작용의 예를 도시한다.
도 4는 예시적인 실시예에 따른, 로봇이 클라우드와 상호작용하고 다른 클라우드 컴퓨팅 장치와 정보를 공유할 수 있는 예시적인 시스템을 도시한다.
도 5는 예시적인 실시예에 따른, 로봇-클라우드 상호작용을 위한 방법을 도시하는 흐름도이다.
도 6은 예시적인 실시예에 따른, 로봇-클라우드 상호작용을 위한 반복 절차를 도시하는 흐름도이다.
예시적인 방법 및 시스템이 여기에 설명된다. "예", "전형적인" 및 "예시적인"이라는 단어는 본 명세서에서 "예, 사례 또는 예시로서 역할하는"을 의미하는 것으로 사용된다는 것을 이해해야 한다. "예", "전형적인" 또는 "예시적인" 것으로 여기에서 설명된 임의의 실시예 또는 특징은 반드시 다른 실시예 또는 특징보다 바람직하거나 유리한 것으로서 해석되지 않아야 한다. 여기에 기술된 예시적인 실시예는 제한하려는 것이 아니다. 본 명세서에 일반적으로 기술되고 도면에 예시된 바와 같은 본 개시의 양태는 다양한 다른 구성으로 배열, 대체, 결합, 분리 및 설계될 수 있음을 쉽게 이해할 수 있으며, 이들 모두는 본 명세서에서 명백하게 고려된다.
I. 개요
본 명세서에 기술된 다양한 실시예에 따르면, 특히, 로봇 클라우드 컴퓨팅을 위한 방법 및 시스템이 있다. 예를 들어, 클라우드 기반 컴퓨팅은 일반적으로 애플리케이션 실행 및 저장이 클라이언트와 서버 장치 사이에 어느 정도 분할될 수 있는 네트워킹 컴퓨터 아키텍처를 나타낸다. 로봇은 컴퓨팅 능력을 갖고 작동 능력(예로서, 전기 기계 능력)으로 그의 주변과 상호작용하는 임의의 장치일 수 있다. 클라이언트 장치는 모듈 형태의 다양한 센서 및 장치를 포함하는 로봇으로 구성될 수 있으며, 필요에 따라 다른 모듈이 로봇에 추가되거나 제거될 수 있다. 일부 예에서, 로봇은 액세서리 또는 로봇의 "뇌"로서 기능하도록 구성될 수 있는, 이동 전화와 같은 제2 장치를 수용하도록 구성될 수 있다.
여기에 설명된 예에서, 로봇은 다른 클라우드 컴퓨팅 장치와 정보를 공유하는 것 등을 위해 임의 수의 동작을 수행하기 위해 클라우드와 상호작용할 수 있다. 예를 들어, 로봇은 물체 인식을 용이하게 하거나, 맵핑 기능을 수행하거나, 내비게이션 기능을 수행하기 위해(예를 들어, 이전에 다른 로봇에 의해 횡단된 맵/내비게이션 경로를 수신하기 위해) 클라우드와 상호작용할 수 있다. 다른 예에서, 로봇은 클라우드와 상호작용하여 영역 내의 물체의 맵핑을 수행하고, 물체의 목록 작성을 수행하며, 로봇에 의한 음성 인식 및/또는 로봇의 제어를 수행할 수 있다. 로봇은 상황 또는 환경 정보에 기초하여 여기에 설명되는 바와 같이 클라우드에 대해 임의의 동작 또는 질의를 수행할 수 있다.
일부 예에서, 로봇의 지식 베이스가 로봇의 보드 상에 저장될 것을 요구하기보다는, 일부 실시예는 로봇이 서버 및/또는 다른 컴퓨팅 장치와 같은 외부 위치에 데이터를 저장하고 액세스할 수 있게 한다. 외부 위치는 하나 이상의 로봇으로부터 데이터 및/또는 요청을 수신할 수 있다. 서버는 하나 이상의 로봇으로부터의 수신된 데이터를 저장하고/하거나 저장된 데이터의 전부 또는 일부를 하나 이상의 로봇에 분배하여 로봇이 명령어 및/또는 데이터를 얻을 수 있는 로봇 사이의 공통 지식베이스를 생성할 수 있다.
일부 실시예에서, 로봇은 로봇이 동작하는 물체 및/또는 영역에 관한 정보를 가질 수 있다. 영역은 맵, 위치 등과 연관될 수 있다. 로봇은 로봇으로부터의 정보와 관련된 물체를 식별하기 위한 물체 인식 시스템을 포함할 수 있는 서버에 영역과 관련된 정보를 전송할 수 있다.
로봇 및/또는 서버는 물체를 결정하고 식별하기 위해 상황 분석을 사용할 수 있다. 예를 들어, 로봇이 사무실에 있다면, 로봇은 물체의 "사무실" 데이터베이스에 액세스하여 인식을 수행할 수 있다. 다른 예로서, 로봇은 환경 인식을 이용하여 동작할 수 있으며, 따라서 로봇은 장면 내의 물체의 목록을 작성할 수 있고, 사용자에 의해 커맨드가 주어지면, 로봇은 장면의 환경에 기초하여 또는 장면 내의 물체와 비교함으로써 콘텐츠를 결정하거나 커맨드의 의미를 해석할 수 있다. 예를 들어, 로봇은 냉장고에서 소다를 회수하기 위한 커맨드를 수신할 수 있다. 로봇은 커맨드를 입력으로서 서버에 전송하거나, 예를 들어 영역의 로봇의 데이터베이스를 선택적으로 사용하여 냉장고 및 소다를 인식할 수 있다. 선택적으로, 로봇은 서버에 커맨드를 전송할 수 있으며, 서버는 냉장고 및 소다를 인식할 수 있다. 실시예에서, 로봇 및/또는 서버는 물체를 인식하기 위해 상황뿐만 아니라 환경 데이터를 사용할 수 있다. 또한, 일단 물체가 인식되면, 서버는 커맨드와 관련된 상호작용을 결정하고, 예를 들어 상호작용을 수행하기 위해 로봇이 실행할 수 있는 하나 이상의 컴퓨터 실행 가능한 명령어를 식별할 수 있다.
II. 로봇-클라우드 상호작용을 위한 예시적인 아키텍처
이제 도면을 참조하면, 도 1은 클라우드 기반 컴퓨팅을 위한 예시적인 시스템(100)이다. 클라우드 기반 컴퓨팅은 일반적으로 애플리케이션 실행 및 저장이 클라이언트 및 서버 장치 간에 어느 정도 분할될 수 있는 네트워킹 컴퓨터 아키텍처를 나타낸다. "클라우드"는 예를 들어 클라이언트 및 서버 장치에 의해 네트워크(예를 들어, 인터넷)를 통해 액세스 가능한 서비스 또는 서비스 그룹을 지칭할 수 있다.
일 실시예에서, 클라우드에 접속된 임의의 컴퓨터는 컴퓨팅 능력, 애플리케이션 및 파일의 동일한 풀에 접속될 수 있다. 따라서, 클라우드 컴퓨팅은 최소한의 관리 노력 또는 서비스 제공자 상호작용으로 제공 및 릴리스될 수 있는 구성 가능한 컴퓨팅 리소스(예를 들어, 네트워크, 서버, 저장소, 애플리케이션 및 서비스)의 공유 풀을 가능하게 한다. 사용자는 음악, 사진, 비디오 및 북마크와 같은 개인 파일을 저장하고 액세스하거나, 게임을 행하거나, 저장 매체를 물리적으로 휴대하지 않고 원격 서버에서 생산성 애플리케이션을 사용할 수 있다.
예를 들어, 주로 클라이언트 기반 또는 서버 기반인 애플리케이션과 대조적으로, 클라우드 기반 애플리케이션은 데이터 및/또는 실행 가능 프로그램 논리의 사본을 원격 서버 장치에 저장할 수 있고, 클라이언트 장치로 하여금 클라이언트 장치에서의 실행을 위해 필요에 따라 이 데이터 및 프로그램 논리 중 적어도 일부를 다운로드하는 것을 가능하게 한다. 일부 예에서, 다운로드된 데이터 및 프로그램 논리는 클라우드 기반 애플리케이션에 액세스하는 특정 클라이언트 장치(예를 들어, 개인용 컴퓨터, 태블릿 또는 이동 전화, 또는 로봇)의 능력에 맞춰질 수 있다. 또한, 클라이언트와 서버 장치 사이의 애플리케이션 실행 및 저장을 분할함으로써 서버 장치에 의해 더 많은 처리가 수행될 수 있으므로, 예로서 서버 장치의 처리 능력 및 성능을 이용할 수 있다.
클라우드 기반 컴퓨팅은 클라우드 기반 애플리케이션에 대한 데이터 및 프로그램 논리가 하나 이상의 클라이언트 장치 및/또는 서버 장치 간에 거의 실시간으로 공유되는 분산 컴퓨팅 아키텍처를 지칭할 수도 있다. 이 데이터 및 프로그램 논리의 일부는 클라우드 기반 애플리케이션에 액세스하는 다양한 클라이언트에 필요에 따라 또는 다른 이유로 동적으로 전달될 수 있다. 아키텍처의 세부 사항은 클라이언트 장치 사용자에게 투명할 수 있다. 따라서 클라우드 기반 애플리케이션에 액세스하는 PC 사용자 또는 로봇 클라이언트 장치는 예로서 PC 또는 로봇이 서버 장치에서 프로그램 논리 및/또는 데이터를 다운로드하거나 PC 또는 로봇이 처리 또는 저장 기능을 서버 장치로 오프로드하는 것을 인식하지 못할 수 있다.
도 1에서, 클라우드(102)는 클라우드 서비스(104), 클라우드 플랫폼(106), 클라우드 기반구조(108) 및 데이터베이스(110)를 포함한다. 클라우드(102)는 더 많거나 적은 구성 요소를 포함할 수 있고, 클라우드 서비스(104), 클라우드 플랫폼(106), 클라우드 기반구조(108) 및 데이터베이스(110) 각각도 다수의 요소를 포함할 수 있다. 따라서, 시스템(100)의 설명되는 기능 중 하나 이상은 추가적인 기능적 또는 물리적 구성 요소로 분할되거나 더 적은 기능적 또는 물리적 구성 요소로 결합될 수 있다. 일부 추가 예에서, 추가적인 기능적 및/또는 물리적 구성 요소가 도 1에 도시된 예들에 추가될 수 있다. 클라우드 컴퓨팅의 전달은 예로서 웹 서비스 및 3층 아키텍처와 같은 애플리케이션 프로그래밍 인터페이스를 통해 서로 통신하는 다수의 클라우드 구성 요소를 포함할 수 있다.
클라우드(102)는 네트워킹 컴퓨터 아키텍처를 나타낼 수 있으며, 일례에서, 클라우드 서비스(104)는 클라이언트 장치로부터의 요청을 처리하기 위한 큐를 나타낸다. 클라우드 플랫폼(106)은 클라우드의 프론트엔드를 포함할 수 있고, 클라우드 서비스(104)에 결합되어 클라이언트 장치와 상호작용하는 기능을 수행할 수 있다. 클라우드 플랫폼(106)은 웹 브라우저와 같은 사용자 인터페이스를 통해 클라우드(102)에 액세스하는 데 사용되는 애플리케이션을 포함할 수 있다. 클라우드 기반구조(108)는 클라우드(102)의 과금 구성 요소의 서비스 애플리케이션을 포함할 수 있고, 따라서 클라우드 서비스(104)와 상호작용할 수 있다. 데이터베이스(110)는 클라우드(102)에 의한 저장 능력을 나타낼 수 있고, 따라서 클라우드 서비스(104), 클라우드 플랫폼(106) 및/또는 기반구조(108) 중 임의의 것에 의해 액세스될 수 있다.
시스템(100)은 클라우드(102)의 구성 요소에 결합되거나 그와 통신할 수 있도록 구성되는 다수의 클라이언트 장치를 포함한다. 예를 들어, 컴퓨터(112), 이동 장치(114), 호스트(116), 및 로봇 클라이언트(118)는 클라우드(102)에 결합된 것으로 도시된다. 물론, 더 많거나 적은 클라이언트 장치가 클라우드(102)에 결합될 수 있다. 또한, 상이한 유형의 클라이언트 장치가 클라우드(102)에 결합될 수 있다. 예를 들어, 임의의 클라이언트 장치는 일반적으로 디스플레이 시스템, 메모리 및 프로세서를 포함할 수 있다.
컴퓨터(112)는 임의 유형의 컴퓨팅 장치(예를 들어, PC, 랩탑 컴퓨터 등)일 수 있고, 이동 장치(114)는 임의 유형의 이동 컴퓨팅 장치(예를 들어, 랩탑, 이동 전화, 셀룰러 전화 등)일 수 있다.
호스트(116)는 클라우드(102)로/로부터 데이터를 송신/수신하도록 구성된 랩탑 컴퓨터, 이동 전화 등을 포함하는 송신기/수신기를 갖는 임의 유형의 컴퓨팅 장치일 수 있다.
로봇 클라이언트(118)는 클라우드(102)에 대한 접속 능력을 가지며 작동 능력(예를 들어, 전기 기계적 능력)을 갖는 임의의 컴퓨팅 장치를 포함할 수 있다. 로봇은 또한 컴퓨팅 장치의 조합일 수 있다. 일부 실시예에서, 로봇(118)은 데이터를 수집하여 클라우드(102)에 데이터를 업로드할 수 있다. 클라우드(102)는 데이터에 대한 계산 또는 분석을 수행하고, 처리된 데이터를 로봇 클라이언트(118)로 반환하도록 구성될 수 있다. 일부 예에서, 도 1에 도시된 바와 같이, 클라우드(102)는 로봇 클라이언트(118)와 함께 위치하지 않는 컴퓨터를 포함할 수 있다. 다른 예에서, 로봇 클라이언트(118)는 처리를 위해 제2 클라이언트(예를 들어, 컴퓨터 112)에 데이터를 전송할 수 있다.
임의의 클라이언트 장치는 추가 구성 요소를 포함할 수 있다. 예를 들어, 로봇 클라이언트(118)는 로봇 클라이언트(118)의 움직임을 측정하기 위해 자이로스코프 또는 가속도계와 같은 하나 이상의 센서를 포함할 수 있다. 다른 센서는 예로서 특히 GPS(Global Positioning System) 수신기, 적외선 센서, 소나, 광센서, 바이오 센서, RFID(Radio Frequency identification) 시스템, NFC(Near Field Communication) 칩, 무선 센서 및/또는 나침반 중 임의의 것을 추가로 포함할 수 있다.
또한, 임의의 클라이언트 장치는 사용자가 장치와 상호작용할 수 있게 하는 통합 사용자 인터페이스(UI)를 포함할 수 있다. 예를 들어, 로봇 클라이언트(118)는 사용자가 입력을 제공할 수 있게 하는 다양한 버튼 및/또는 터치스크린 인터페이스를 포함할 수 있다. 다른 예로서, 로봇 클라이언트 장치(118)는 사용자로부터 음성 커맨드를 수신하도록 구성된 마이크로폰을 포함할 수 있다. 또한, 로봇 클라이언트(118)는 다양한 유형의 사용자 인터페이스 장치가 로봇 클라이언트(118)에 접속될 수 있게 하는 하나 이상의 인터페이스를 포함할 수 있다.
도 1에서, 클라이언트 장치와 클라우드(102) 간의 통신 링크는 직렬 또는 병렬 버스와 같은 유선 접속들을 포함할 수 있다. 통신 링크는 또한 블루투스, IEEE 802.11(IEEE 802.11은 IEEE 802.11-2007, IEEE 802.11n-2009, 또는 임의의 다른 IEEE 802.11 개정안을 나타낼 수 있음), 또는 다른 무선 기반 통신 링크를 포함할 수 있는 링크(120)와 같은 무선 링크일 수 있다.
다른 예에서, 시스템(100)은 클라이언트 장치가 클라우드(102)와 통신할 수 있는 액세스 포인트를 포함할 수 있다. 액세스 포인트는 다양한 형태를 취할 수 있는데, 예를 들어 액세스 포인트는 무선 액세스 포인트(WAP) 또는 무선 라우터의 형태를 취할 수 있다. 다른 예로서, 클라이언트 장치가 CDMA 또는 GSM 프로토콜과 같은 셀룰러 무선 인터페이스 프로토콜을 사용하여 접속하는 경우, 액세스 포인트는 셀룰러 네트워크를 통해 인터넷 접속을 제공하는 셀룰러 네트워크의 기지국일 수 있다.
이와 같이, 클라이언트 장치는 클라이언트 장치가 클라우드(102)(또는 액세스 포인트)에 접속할 수 있는 유선 또는 무선 네트워크 인터페이스를 포함할 수 있다. 예로서, 클라이언트 장치는 특히 802.11, 802.16(WiMAX), LTE, GSM, GPRS, CDMA, EV-DO 및/또는 HSPDA와 같은 하나 이상의 프로토콜을 사용하도록 구성될 수 있다. 또한, 클라이언트 장치는 셀룰러 통신 프로토콜(예를 들어, CDMA, GSM 또는 WiMAX는 물론, 802.11을 사용하는 "WiFi" 접속)을 사용하는 "3G" 또는 "4G" 데이터 접속과 같은 다중 유선 및/또는 무선 프로토콜을 사용하도록 구성될 수 있다. 다른 예도 가능하다.
도 2a는 예시적인 클라이언트 장치(200)를 도시한다. 일례에서, 클라이언트 장치(200)는 로봇으로 구성된다. 일부 예에서, 로봇은 프로세서(202), 메모리 또는 저장소(204) 및 센서(206)와 같은 컴퓨터 하드웨어를 포함할 수 있다. 예를 들어, 로봇 제어기(예를 들어, 프로세서(202), 컴퓨팅 시스템 및 센서(206)는 특정 로봇을 위해 완전히 맞춤 설계될 수 있다. 로봇은 (도 1에 도시된 바와 같이) 링크가 클라우드 서버에 액세스할 수 있는 링크를 가질 수 있다. 유선 링크는 예를 들어 병렬 버스 또는 USB(Universal Serial Bus)와 같은 직렬 버스를 포함할 수 있다. 무선 링크는 많은 가능성 중에서 예를 들어 블루투스, IEEE 802.11, 셀룰러(GSM, CDMA, UMTS, EV-DO, WiMAX 또는 LTE 등), 또는 지그비(Zigbee)를 포함할 수 있다.
일례에서, 저장소(204)는 로봇의 다양한 센서(206)로부터 데이터를 컴파일하고 프로그램 명령어를 저장하는 데 사용될 수 있다. 프로세서(202)는 저장소(204)에 결합될 수 있고, 프로그램 명령어에 기초하여 로봇을 제어하도록 구성될 수 있다. 프로세서(202)는 또한 로봇 상의 다양한 센서(206)로부터의 데이터를 해석할 수 있다. 예시적인 센서는 연기 센서, 광 센서, 무선 센서, 적외선 센서, 마이크, 스피커, 자이로스코프, 가속도계, 카메라, 레이더, 용량 센서 및 터치 센서 등을 포함할 수 있다.
클라이언트 장치(200)는 클라이언트 장치(200)가 그의 환경과 상호작용할 수 있게 하는 구성 요소 또는 장치를 또한 가질 수 있다. 예를 들어, 클라이언트 장치(200)는 클라이언트 장치(200)가 이동하거나 환경과 상호작용할 수 있게 하는 모터, 휠, 이동 가능 아암 등과 같은 기계적 액추에이터(208)를 가질 수 있다.
일부 예에서, 클라이언트 장치(200) 상의 다양한 센서 및 장치는 모듈일 수 있다. 필요에 따라 다른 모듈이 클라이언트 장치(200)에 추가되거나 제거될 수 있다. 예를 들어, 저전력 환경에서, 로봇은 전력 사용을 줄이기 위해 더 적은 모듈을 가질 수 있다. 그러나 필요에 따라 추가 센서를 추가할 수 있다. 예로서, 로봇이 수집할 수 있는 데이터의 양을 늘리기 위해 추가 센서가 추가될 수 있다.
일부 예에서, 클라이언트 장치(200)는 프로세서(202), 저장소(204) 및 센서(206)를 포함하는 장치(210)와 같은 장치를 수용하도록 구성될 수 있다. 예를 들어, 클라이언트 장치(200)는 다수의 기계 액추에이터(예로서, 이동 가능 베이스)를 갖는 로봇일 수 있고, 로봇은 로봇의 "두뇌" 또는 제어 구성 요소로서 기능하는 이동 전화, 스마트폰, 태블릿 컴퓨터 등을 수용하도록 구성될 수 있다. 장치(210)는 로봇의 모듈로 간주될 수 있다. 장치(210)는 로봇에 물리적으로 부착될 수 있다. 예를 들어, 스마트폰은 로봇의 "가슴"에 앉아 상호작용 디스플레이를 형성할 수 있다. 장치(210)는 예를 들어 센서, 무선 링크 및 처리 능력을 가진 로봇을 제공할 수 있다. 장치(210)는 사용자가 자신의 로봇을 위한 새로운 루틴을 클라우드로부터 다운로드할 수 있게 한다. 예를 들어, 세탁소 접기 루틴이 클라우드에 저장될 수 있으며, 사용자는 클라우드에서 루틴을 다운로드하기 위해 스마트폰을 사용하여 이 루틴을 선택할 수 있고, 스마트폰이 로봇에 배치되거나 결합되면, 로봇은 다운로드한 동작을 수행할 수 있다.
일부 예에서, 클라이언트 장치(200)는 추가적인 감지 능력을 제공하기 위해 이동 또는 셀룰러 전화에 결합될 수 있다. 셀룰러 전화는 로봇에 물리적으로 부착되는 것이 아니라, 로봇에 무선으로 결합될 수 있다. 예를 들어, 저렴한 로봇은 인터넷에 대한 직접 접속을 생략할 수 있다. 이 로봇은 인터넷에 액세스할 수 있도록 무선 기술(예로서, 블루투스)을 통해 사용자의 셀룰러 전화에 접속할 수 있다. 로봇은 셀룰러 전화의 다양한 센서 및 통신 수단에 액세스할 수 있다. 로봇은 물리적으로 많은 센서를 로봇에 제공할 필요는 없지만, 로봇은 동일하거나 유사한 기능을 유지할 수 있다.
따라서, 클라이언트 장치(200)는 기계적 로봇 특징을 포함할 수 있고, 장치(210) 내에 포함된 가속도계, 자이로스코프, 나침반, GPS, 카메라, WiFi 접속, 터치 스크린 중 임의의 것과 같은 추가적인 주변 구성 요소를 장치(200)에 제공할 수 있는 장치(210)(예를 들어, 이동 전화, 스마트폰, 태블릿 컴퓨터 등)를 수용하도록 구성될 수 있다.
도 2b는 로봇(212)의 그래픽 예를 도시한다. 도 2b에서, 로봇(212)은 팔, 다리 및 머리를 포함하는 사람의 기계적 형태로서 도시된다. 로봇(212)은 로봇을 동작시키도록 구성될 수 있는 이동 전화와 같은 임의의 수의 모듈 또는 구성 요소를 수용하도록 구성될 수 있다. 이 예에서, 로봇(212)이 클라우드와 통신하여 로봇(212)의 동작/기능을 수행할 수 있게 하는 기능을 기계 로봇(212)에 제공하기 위해 장치(예를 들어, 로봇(212))가 이동 전화(예로서, 장치(210))에 부착될 수 있다. 인터넷에 대한 접속을 갖는 다른 유형의 장치가 로봇(212)에 추가 기능을 제공하기 위해 로봇(212)에 결합될 수 있다. 따라서, 장치(210)는 로봇(212)과 분리될 수 있고, 로봇(212)에 부착되거나 결합될 수 있다.
일례에서, 로봇(212)은 제한된 기계적 기능만을 갖는 장난감일 수 있고, 장치(210)를 로봇(212)에 접속함으로써, 장난감 로봇(212)은 이제 장치(210) 및/또는 클라우드의 도움으로 다수의 기능을 수행할 수 있다. 이러한 방식으로, 로봇(212)(또는 로봇의 구성 요소)은 이동 전화에 부착되어 이동 전화를 서버에 접속되어 로봇의 동작/기능을 수행하는 로봇(예를 들어 다리/팔을 가짐)으로 변환할 수 있다.
장착 가능 장치(210)는 또한 로봇(212)의 런타임 사용을 최대화하도록 구성될 수 있다(예를 들어, 로봇(212)이 사용자로 하여금 장난감을 끄거나 장난감을 내려 놓게 하는 것이 발생한 것을 알 수 있다면, 장치(210)는 그러한 사건에 대응하기 위한 기능을 수행하도록 구성될 수 있다).
도 2c는 로봇(214)의 다른 예를 도시한다. 로봇(214)은 온보드 컴퓨팅 시스템(216), 디스플레이(218), 기계적 액추에이터(220) 및 하나 이상의 센서를 포함한다. 일부 경우에, 온보드 컴퓨팅 시스템(216)은 랩탑 컴퓨터일 수 있으며, 센서에 결합될 수 있다. 센서는 카메라, 적외선 프로젝터 및 기타 동작 감지 또는 시각 감지 요소를 포함할 수 있다. 기계적 액추에이터(220)는 예를 들어 온보드 컴퓨팅 시스템(216) 및 센서가 위치할 수 있는 베이스, 휠 및 모터를 포함할 수 있다.
도 2a-2c에 도시된 로봇들 중 임의의 로봇은 로봇 운영 체제(예를 들어, 로봇의 특정 기능을 위해 설계된 운영 체제)에 따라 동작하도록 구성될 수 있다. 로봇 운영 체제는 로봇 애플리케이션을 가능하게 하는 라이브러리 및 툴(예를 들어, 하드웨어 추상화, 장치 드라이버, 비주얼라이저, 메시지 전달, 패키지 관리 등)을 제공할 수 있다. 로봇 운영 체제의 예는 ROS(로봇 운영 체제), DROS 또는 ARCOS(고급 로봇 제어 운영 체제)와 같은 오픈 소스 소프트웨어, Evolution Robotics® 및 MRDS(Microsoft® Robotics Developer Studio)의 로봇 개발 플랫폼 ESRP와 같은 독점 소프트웨어를 포함하고, 기타 예는 ROSJAVA도 포함할 수 있다. 로봇 운영 체제는 공개 및 가입 기능을 포함할 수 있으며, 머리 추적, 베이스 이동(예를 들어, 속도 제어, 내비게이션 프레임워크) 등과 같은 로봇의 구성 요소를 제어하는 기능을 포함할 수도 있다.
도 3은 개념적 로봇-클라우드 상호작용의 예를 도시한다. 도 2a-2c에 기술되고 도시된 로봇과 같은 로봇은 컴퓨터 네트워크(예를 들어, 클라우드)에 접속할 수 있고, 클라우드에 의해 수행될 처리 또는 데이터를 요청할 수 있다. 일례에서, 로봇은 일반적으로 로봇을 위한 모터 제어를 제공할 수 있는 다수의 센서 및 기계적 액추에이터를 포함할 수 있다. 카메라 피드, 비전 센서 등과 같은 센서의 출력은 클라우드에 제공될 수 있으며, 클라우드는 출력을 처리하여 로봇이 기능을 수행할 수 있도록 한다. 클라우드는 예를 들어 로봇의 위치를 결정하거나, 물체 인식을 수행하거나, 로봇의 내비게이션 경로를 나타내기 위해 카메라 피드를 처리할 수 있다.
도 3은 일반적으로 모터 제어기를 도시하며, 각 모듈은 모터 제어기 입력 또는 로봇으로부터의 데이터를 사용하여 처리를 수행하는 클라우드 상의 컴퓨터 또는 노드를 개념적으로 나타낼 수 있다. 도 3은 또한 일반적으로 센서를 나타내며, 각 모듈은 센서 입력 또는 로봇으로부터의 데이터를 사용하여 처리를 수행하는 클라우드 상의 컴퓨터 또는 노드를 개념적으로 나타낼 수 있다. 도 3은 또한 일반적으로 애플리케이션을 나타내며, 각각의 모듈은 다수의 애플리케이션, 예컨대 내비게이션 애플리케이션, 맵핑 애플리케이션 등의 특정 기능을 수행하는 클라우드 상의 컴퓨터 또는 노드를 개념적으로 나타낼 수 있다. 또한, 도 3은 일반적으로 계획을 도시하며, 각 모듈은 일반적 계획 또는 컴퓨팅 처리와 같은 로봇을 위한 처리를 수행하는 클라우드 상의 컴퓨터 또는 노드를 개념적으로 나타낼 수 있다.
도시된 바와 같이, 모듈 중 임의의 모듈이 상호 접속될 수 있고/있거나 로봇에 대한 특정 출력 또는 기능을 제공하기 위해 서로 데이터 또는 명령어를 수신하도록 통신할 수 있다.
일례에서, 로봇은 데이터 처리를 위해 클라우드에 데이터를 전송할 수 있고, 다른 예에서 로봇은 클라우드로부터 데이터를 수신할 수 있다. 클라우드에서 수신한 데이터는 여러 가지 형태로 존재할 수 있다. 수신된 데이터는 로봇이 클라우드로 보낸 처리된 형태의 데이터일 수 있다. 수신된 데이터는 로봇 이외의 다른 소스에서 온 것일 수도 있다. 예를 들어, 클라우드는 다른 센서, 다른 로봇 및 인터넷에 액세스할 수 있다.
도 4는 로봇이 클라우드와 상호작용하고 다른 클라우드 컴퓨팅 장치와 정보를 공유할 수 있는 예시적인 시스템(400)이다. 시스템(400)은 각각 클라우드(410)에 결합된 (예를 들어, 개념적 그래픽 표현으로서) 로봇(402, 404, 406 및 408)을 도시한다. 각각의 로봇(402, 404, 406 및 408)은 클라우드(410)와 상호작용할 수 있고, 클라우드(410)을 통해 또는 다른 액세스 포인트를 통해 그리고 가능하면 직접적으로(예를 들어, 로봇(406 및 408) 사이에 도시된 바와 같이) 서로 상호작용할 수 있다.
클라우드(410)는 몇몇 로봇으로부터 입력을 수신할 수 있다. 각 로봇의 데이터는 더 큰 데이터 세트로 컴파일될 수 있다. 예를 들어, 로봇(402)은 물체의 사진을 찍어 사진을 클라우드(410)에 업로드할 수 있다. 클라우드(410) 상의 물체 인식 프로그램은 사진에서 물체를 식별하고 인식된 물체에 관한 데이터는 물론, 아마도 위치, 크기, 무게, 컬러 등과 같은 인식된 물체의 다른 특성(예를 들어, 메타 데이터)에 대한 데이터도 클라우드(410)에 접속된 모든 로봇에 제공할 수 있다. 따라서, 모든 로봇은 로봇(402)에 의해 업로드된 사진 내의 물체의 속성을 알 수 있다.
로봇(402, 404, 406 및 408)은 영역 내에서 사람과 함께, 다른 로봇 등과 함께 임의 수의 동작을 수행할 수 있다. 일례로, 각각의 로봇(402, 404, 406 및 408)은 WiFi 또는 다른 네트워크 기반 접속을 가지며, 데이터를 클라우드(410)에 업로드/공개할 것이고, 이어서 임의의 다른 로봇과 공유될 수 있다. 이러한 방식으로, 각각의 로봇(402, 404, 406 및 408)은 서로 경험을 공유하여 학습된 행동을 가능하게 한다. 예를 들어, 로봇(402)은 통로를 가로지르며 장애물을 만날 수 있고 장애물의 위치를 (클라우드(410)을 통해) 다른 로봇(404, 406 및 408)에 알릴 수 있다. 각각의 로봇(402, 404, 406 및 408)은 실시간 최신 데이터에 액세스할 것이다. 다른 예에서, 로봇(404)은 (예로서, 로봇(402, 406 및 408)이 상이한 관점에서 캡처된 물체의 이미지를 갖는 경우) 다양한 뷰를 사용하여 로봇(404)이 물체를 식별하는 것을 돕도록 다른 로봇(402, 406 및 408)이 본 이미지를 나타내는 데이터를 다운로드할 수 있다.
또 다른 예에서, 로봇(408)은 영역의 맵을 작성할 수 있고, 로봇(402)은 맵을 다운로드하여 그 영역의 지식을 가질 수 있다. 유사하게, 로봇(402)은 로봇(408)에 의해 생성된 맵을 영역에 대한 새로운 정보(예를 들어, 복도가 이제 박스 또는 다른 장애물을 가짐)로 갱신하거나, 로봇(408)이 갖지 못했을 수 있는 센서로부터 수집된 새로운 정보로 갱신할 수 있다(예로서, 로봇(402)은 로봇(408)이 온도 센서를 갖지 못한 경우에 온도 데이터를 기록하고 맵에 추가할 수 있다). 일반적으로, 로봇(402, 404, 406 및 408)은 수집된 데이터를 공유하여 더 빠른 적응을 가능하게 하도록 구성될 수 있으며, 따라서 각 로봇(402, 404, 406 및 408)은 이전 로봇의 학습된 경험에 기초할 수 있다.
공유 및 적응 능력은 로봇(402, 404, 406 및 408)으로부터 수신된 다양한 입력/데이터에 기초하는 다양한 응용을 가능하게 한다. 특정 예에서, 로봇이 있었던 곳의 이력에 관한 데이터를 제공하는 것과 같은 물리적 위치의 맵핑이 제공될 수 있다. 로봇(402, 404, 406 및 408)의 맵핑/내비게이션 기능을 용이하게 하기 위해 다른 수 또는 유형의 지시자가 기록될 수 있다(예를 들어, 벽 상의 흠집 마크는 로봇이 나중에 자기 위치를 알기 위해 기록한 후에 의존할 수 있는 많은 단서 중 하나일 수 있다).
일례에서, 클라우드(410)는 물체에 관련된 정보의 데이터베이스(412)를 포함하거나 저장하거나 또는 액세스를 제공할 수 있고, 데이터베이스(412)는 모든 로봇(402, 404, 406 및 408)에 의해 액세스 가능할 수 있다. 데이터베이스(412)는 물체 인식을 수행하기 위해 로봇(402, 404, 406, 408)에 의해 액세스될 수 있는 물체를 식별하는 정보 및 물체의 세부 사항(예로서, 질량, 속성, 형상, 사용법 등, 물체와 관련될 수 있는 임의의 세부 사항)을 포함할 수 있다. 예를 들어, 물체의 사용에 관한 정보는, 예를 들어, 전화, 핸드셋 픽업 방법, 전화 응답 방법, 버튼 위치, 다이얼링 방법 등을 포함할 수 있다.
또한, 데이터베이스(412)는 물체를 구별하는 데 사용될 수 있는 물체에 관한 정보를 포함할 수 있다. 예를 들어, 데이터베이스(412)는 (예를 들어, 컴퓨터와 같은) 물체에 관한 일반적인 정보, 및 추가로 특정 컴퓨터에 관한 정보(예를 들어, 특정 모델의 모델 번호, 세부 사항 또는 기술 사양 등)를 포함할 수 있다. 각각의 물체는 물체 이름, 물체 세부 사항, 물체 구별 특성 등 또는 액세스될 수 있는 물체에 대한 튜플 공간을 포함하는 정보를 데이터베이스(412) 내에 포함할 수 있다. 각각의 물체는 예를 들어, 순서화된 리스트의 정보를 데이터베이스 내에 추가로 포함할 수 있다. 또 다른 예에서, 데이터베이스(412)는 (예를 들어, 특정 물체의 구별을 가능하게 하기 위해) 데이터베이스(412)에서 식별된 물체에 대한 글로벌 고유 식별자(GUID)를 포함할 수 있으며, GUID는 물체를 기술하는 임의의 특성 또는 정보와 연관될 수 있다. 따라서, 로봇은 일반적으로 물체(예를 들어, 야구 대 컴퓨터)를 구별하는 정보를 수신하고 특정 물체(예를 들어, 2개의 상이한 컴퓨터)를 구별할 수 있는 정보를 수신하기 위해 데이터베이스(412)에 액세스하도록 구성될 수 있다.
데이터베이스(412)는 클라우드(410)를 통해 모든 로봇에 의해 액세스 가능할 수 있다(또는 대안으로서 클라우드(410)를 통한 통신 없이 모든 로봇에 의해 직접 액세스 가능함). 따라서, 데이터베이스(412)는 클라우드(410)에 저장된 공유 지식 베이스일 수 있다.
따라서, 일부 예에서, 로봇은 클라우드(410)를 통해 학습된 행동을 공유할 수 있다. 클라우드(410)는 로봇 학습 활동 또는 행동을 저장하는 서버를 가질 수 있으며, 이는 물체 상호작용을 위한 행동 및 휴리스틱의 공유 지식 베이스(예를 들어, 로봇 "앱 스토어")를 초래한다. 특히, 주어진 로봇은 동작을 수행하여 영역의 맵을 구축할 수 있고, 그 다음에 로봇은 데이터를 클라우드(410)에 업로드하여 이 지식을 다른 모든 로봇과 공유할 수 있다. 이 예에서 주어진 로봇의 "의식"의 전달이 한 로봇에서 다른 로봇으로 클라우드(410)을 통해 이루어질 수 있다(예로서, 로봇 "Bob"이 맵을 작성하고, "Bob"의 지식을 다른 로봇이 다운로드하여 맵의 지식을 수신할 수 있다).
따라서, 예로서, 로봇(402, 404, 406 및 408)은 클라우드(410)를 통해 정보를 공유할 수 있고, 데이터베이스(412)에 액세스할 수 있다.
III. 예시적인 로봇-클라우드 상호작용
클라우드 서비스(104)와 같은 클라우드 기반 서비스는 대규모 시뮬레이션을 수행하고, 다양한 작업을 실행하기 위한 명령어를 로봇 시스템에 전송하도록 구성될 수 있다. 작업은 로봇 시스템의 능력에 대한 정보, 센서 데이터 및 특정 작업과 관련된 데이터베이스 내의 정보를 사용하여 광범위한 가능한 입력(예로서, 무차별 강제 검색)에 걸쳐 시뮬레이션될 수 있다. 일반적으로 로봇 시스템은 특정 작업을 수행하도록 사전 구성될 수 있다. 그러나 클라우드 기반 서비스를 사용하면 로봇 시스템이 새로운 작업을 수행하는 방법을 배우고 환경과의 상호작용을 위한 새로운 전략과 접근법을 발견할 수 있다.
도 5는 예시적인 실시예에 따른 방법(500)을 도시하는 흐름도이다. 방법(500)과 같은 예시적인 방법은 클라우드 및/또는 로봇 시스템의 구성 요소 또는 구성 요소들에 의해, 예로서 도 1에 도시된 시스템(100)의 하나 이상의 구성 요소에 의해, 도 2a에 도시된 클라이언트 장치(200)의 하나 이상의 구성 요소에 의해, 도 2b에 도시된 로봇(212)의 하나 이상의 구성 요소에 의해, 도 2c에 도시된 로봇(214)의 하나 이상의 구성 요소에 의해, 도 3에 도시된 개념적 로봇-클라우드 상호작용의 하나 이상의 구성 요소에 의해 그리고 도 4에 도시된 시스템(400)의 하나 이상의 구성 요소에 의해 전체적으로 또는 부분적으로 수행될 수 있다. 그러나, 방법(500)과 같은 예시적인 방법은 본 발명의 범위를 벗어나지 않고 다른 엔티티 또는 엔티티의 조합에 의해(즉, 다른 컴퓨팅 장치 및/또는 컴퓨팅 장치의 조합에 의해) 수행될 수 있다는 것을 이해해야 한다.
블록(502)에 의해 도시된 바와 같이, 방법(500)은 하나 이상의 센서를 갖는 제1 로봇 시스템으로부터 질의를 수신하는 단계를 포함하며, 질의는 하나 이상의 센서로부터 획득된 센서 데이터, 작업을 수행하기 위한 명령어에 대한 요청, 및 제1 로봇 시스템의 구성과 관련된 정보를 포함한다.
일 실시예에서, 제1 로봇 시스템(로봇 장치로도 지칭될 수 있음)은 많은 가능성 가운데 특히 온보드 센서 및 카메라(예로서, 컬러 카메라, 그레이스케일 카메라 및/또는 적외선 카메라), 깊이 센서(예로서, RGB-D, 레이저, 구조화된 광 및/또는 비행 시간 카메라), 동작 검출기(예로서, 관성 측정 장치(IMU) 및/또는 발걸음 또는 휠 주행계), 및 범위 센서(예로서, 초음파 및/또는 적외선)와 같은 다른 장치로부터 데이터를 취득할 수 있다. 온보드 CPU는 취득된 데이터를 처리하여, 데이터를 정제한 다음, 데이터를 클라우드 기반 서비스로 전송되는 질의에 사용되는 배열(예로서, 데이터 패킷)로 집계하고 (예로서, 델타 압축을 사용하여) 압축할 수 있다. 수신되면, 데이터 패킷의 해석이 하나 이상의 프로세서들 사이에 분배될 수 있다. 그 다음에, 하나 이상의 프로세서는 센서에 의해 검출된 데이터(예를 들어, 카메라, 깊이 및/또는 레인징 데이터)를 해석하기 위해 병렬로 동작할 수 있고, 이에 응답하여 검출 결과를 중앙 서버에 전송할 수 있다.
중앙 서버는 하나 이상의 프로세서로부터 수신된 검출 결과를 집계하고 그 결과를 많은 가능성 중에서 물체, 사람, 사운드 및 이미지의 메타 데이터를 포함하는 정보 데이터베이스(예로서, 데이터베이스(110))와 대조할 수 있다. 결과를 정보 데이터베이스와 대조하는 것은 예를 들어 중앙 서버가 가능한 물체/사람에게 신뢰도 값을 할당하여, 제1 로봇 시스템이 환경 내에서 상호작용할 수 있는 가능한 물체/사람의 정렬된 순위 리스트를 산출할 수 있도록 베이지안 확률 기법을 포함할 수 있다. 정렬된 순위 리스트는 가능한 물체/사람과 관련된 메타 데이터(예를 들어, 물체의 기하학적 모델, 물체와 관련된 이력 데이터, 물체의 물질 특성)를 포함할 수 있다. 이러한 구성은 제1 로봇 시스템이 클라우드 서버 상에 위치한 정보 데이터베이스에 대해 환경으로부터의 검출을 상호 참조하게 할 수 있다.
온보드 센서로부터 획득된 데이터에 추가하여, 질의는 제1 로봇 시스템이 (즉, 특정 작업 수행에 의해) 본질적으로 환경과 어떻게 상호작용 하는지를 학습하도록 허용할 수 있는 클라우드 기반 서비스로부터의 명령어에 대한 요청을 포함할 수 있다. 작업을 수행하기 위한 명령어 대한 요청은 많은 예 가운데 물체의 3D 모델에 대한 요청, 물체 파지 전략에 대한 요청, 조작 매뉴얼에 대한 요청, 획득된 이미지에 대한 광학 문자 인식(OCR)에 대한 요청 및 에티켓 팁을 포함할 수 있다.
또한, 질의는 요청을 행하는 로봇 시스템(즉, 제1 로봇 시스템)의 구성에 특정한 정보일 수 있는 로봇-특정 데이터도 포함할 수 있다. 제1 로봇 시스템의 구성과 관련된 이러한 정보는 많은 가운데 온보드 센서, 온보드 프로세서, 온보드 전력 시스템, 제어 시스템 및 엔드 이펙터와 관련된 정보를 포함할 수 있다. 예를 들어, 엔드 이펙터는 그리퍼(gripper) 또는 툴일 수 있다. 그리퍼의 경우, 엔드 이펙터 정보는 많은 가능성 중에서 그리퍼의 유형(예로서, 2 핑거 그리퍼), 그리퍼 모델 및/또는 로봇 시스템 내의 그리퍼 위치를 포함할 수 있다. 툴의 경우에, 엔드 이펙터 정보는 많은 가능성 가운데 툴의 유형 및/또는 툴의 목적(예를 들어, 외과 수술)을 포함할 수 있다. 다른 예도 가능할 수 있다.
블록(504)에 의해 도시된 바와 같이, 방법(500)은 작업 또는 유사한 작업을 수행하기 위해 제2 로봇 시스템에 의해 이전에 사용된 절차 및 제2 로봇 시스템의 구성과 관련된 정보를 포함하는 저장된 데이터를 식별하는 단계를 포함한다.
전술한 바와 같이, 다수의 로봇 시스템(예를 들어, 로봇(402, 404, 406, 408))은 학습된 행동을 가능하게 하기 위해 서로 경험을 공유할 수 있다. 이러한 방식으로, 클라우드 기반 서비스가 작업을 수행하기 위한 명령어에 대한 요청을 해석하면, 클라우드 기반 서비스는 작업(또는 유사한 작업)을 수행하기 위해 제2 로봇 시스템에 의해 이전에 사용된 절차를 식별할 수 있다. 또한, 클라우드 기반 서비스는 제2 로봇 시스템의 구성과 관련된 정보를 식별할 수 있다.
하나의 경우에, 제1 및 제2 로봇 시스템은 동일(예컨대, 동일한 로봇 구성)할 수 있다. 다른 경우에, 제1 및 제2 로봇 시스템은 다를 수 있다. 예를 들어, 로봇 시스템은 많은 가능성 가운데 사용되는 엔드 이펙터의 수, 사용되는 엔드 이펙터의 유형 및/또는 로봇 시스템 구성 내의 엔드 이펙터의 위치에서 다를 수 있다. 다른 예도 가능할 수 있다.
명령어에 대한 요청이 제1 로봇 시스템이 이전에 만나지 않은 물체를 파지하기 위한 명령어에 대한 요청을 포함하는 시나리오를 고려한다. 클라우드 기반 서비스는 먼저 (예를 들어, 대조 기법을 사용하여) 물체가 무엇인지를 결정하고, 많은 가운데 물체의 기하학적 모델, 물체와 관련된 이력 데이터 및/또는 물체의 물질 특성을 획득할 수 있다. 물체가 결정되면, 클라우드 기반 서비스는 문제의 물체를 파지하기 위해 다른 로봇 시스템에 의해 사용되는 데이터베이스(110)에 저장된 하나 이상의 절차를 식별할 수 있다.
하나의 경우에, 클라우드 기반 서비스는 먼저 로봇 시스템 구성에 기초하여 하나 이상의 절차를 식별하려고 시도할 수 있다. 특히, 클라우드 기반 서비스는 제1 로봇 시스템과 동일한(또는 유사한) 구성을 갖는 다른 로봇 시스템을 식별할 수 있고, 이어서 식별된 로봇 시스템 중 임의의 것이 문제의 물체를 이전에 파지했는지를 결정할 수 있다. 클라우드 기반 서비스가 문제의 물체를 이전에 파지한 로봇 시스템을 식별하는 경우, 클라우드 기반 서비스는 많은 가운데 성공률 및 효율 등의 인자를 기반으로 물체를 파지하는 데 사용된 절차를 추가로 정렬할 수 있다.
다른 경우에, 클라우드 기반 서비스는 먼저 로봇 시스템 구성에 관계없이 하나 이상의 절차를 식별하려고 시도할 수 있다. 예를 들어, 클라우드 기반 서비스는 문제의 물체를 파지하는 데 사용되는 데이터베이스(110)에 저장된 임의의 절차를 식별할 수 있다. 이어서, 클라우드 기반 서비스는 식별된 절차를 수행하는 로봇 시스템 중에서 제1 로봇 시스템의 구성과 동일한(또는 유사한) 구성을 갖는 로봇 시스템을 식별할 수 있다. 절차를 식별하기 위해 다른 인자 및 시퀀스를 사용할 수도 있다는 점에 유의한다.
블록 506에 의해 도시된 바와 같이, 방법(500)은 하나 이상의 프로세서에 의해, 센서 데이터, 제2 로봇 시스템에 의해 작업 또는 유사한 작업을 수행하는 데 사용된 절차, 제1 로봇 시스템의 구성과 관련된 정보, 및 제2 로봇 시스템의 구성과 관련된 정보에 적어도 부분적으로 기초하여 제1 로봇 시스템이 작업을 수행하기 위한 명령어를 생성하는 단계를 포함한다.
클라우드 기반 서비스는 제1 로봇 시스템에 의해 요청된 명령어를 생성하기 위해 대규모 시뮬레이션을 수행하도록 구성될 수 있다. 이러한 명령어는 많은 가운데 제1 로봇 시스템으로부터 획득된 센서 데이터, 제2 로봇 시스템에 의해 사용된 식별된 절차, 제1 및 제2 로봇 시스템의 구성과 같은 인자에 기초하여 생성될 수 있다. 명령어는 제1 로봇 시스템에 의해 판독 가능한 포맷으로 생성될 수 있음에 유의해야 한다.
단지 설명의 목적으로, 명령어에 대한 요청이 제1 로봇 시스템이 이전에 만나지 않은 물체를 파지하기 위한 명령어에 대한 요청을 포함하는 시나리오를 다시 고려한다. 클라우드 기반 서비스는 다양한 인자를 기반으로 최적의 파지 전략을 계산할 수 있다. 인자는 예를 들어 물체의 물질 특성 및 제1 로봇 시스템의 엔드 이펙터 성능에 기초하는 마찰의 불확실성을 포함할 수 있다. 인자는 또한 예를 들어 온보드 센서로부터 수신된 물체 위치 데이터뿐만 아니라 로봇 고유 제어 시스템 데이터를 기반으로 하는 동작 전략을 포함할 수 있다. 다른 인자도 가능할 수 있다.
하나의 경우에, 문제의 물체는 (예를 들어, 확실성의 임계치 내에서) 클라우드 기반 서비스에 의해 정확하게 식별될 수 있다. 이 경우에, 전술한 바와 같이, 클라우드 기반 서비스는 물체를 파지하기 위해 다른 로봇 시스템에 의해 사용된 데이터베이스(110)에 저장된 하나 이상의 절차를 식별할 수 있다. 절차 중 하나가 예를 들어 성공률 및 효율을 포함하는 인자에 기초하여 선택될 수 있어서, 제1 로봇 시스템은 물체를 성공적으로 파지할 최고의 가능성을 가질 수 있다.
성공률은 많은 선택 사항 중에서 성공적인 시도 횟수 대 전체 시도 횟수의 비율에 의해 정의될 수 있음에 유의해야 한다. 또한, 효율은 많은 선택 사항 중에서 작업의 성공적인 완료에 대한 지속 시간에 기초하여 정의될 수 있다(즉, 더 짧은 기간이 더 효율적임).
선택된 절차가 제1 로봇 시스템과 동일한 구성을 갖는 로봇 시스템(즉, 제2 로봇 시스템)에 의해 수행된 경우, 클라우드 기반 서비스는 선택된 절차에만 기초하여 명령어를 생성할 수 있다. 즉, 로봇 시스템 구성이 동일하기 때문에, 생성된 명령어는 정확히 동일한 절차를 제공할 수 있다. 그러나, 선택된 절차가 제1 로봇 시스템의 구성과 다른 구성을 갖는 로봇 시스템(즉, 제2 로봇 시스템)에 의해 수행된 경우, 클라우드 기반 서비스는 구성 간의 차이를 평가하고, 차이를 고려하면서 명령어를 생성할 수 있다.
일례에서, 제1 로봇 시스템은 드릴 및 3 핑거 그리퍼를 포함하는 2개의 엔드 이펙터를 구비할 수 있다. 대조적으로, 제2 로봇 시스템은 두 개의 3 핑거 그리퍼를 포함하는 두 개의 엔드 이펙터를 구비하는 것을 제외하고는 제1 로봇 시스템과 동일한 구성을 가질 수 있다. 제2 로봇 시스템이 그의 엔드 이펙터를 모두 사용하여 물체를 파지한 경우, 클라우드 기반 서비스는 엔드 이펙터 간의 차이를 고려하면서 제2 로봇 시스템에 의해 사용된 유사한 절차를 사용하여 제1 로봇 시스템이 물체를 파지하기 위한 명령어를 생성할 수 있다. 특히, 클라우드 기반 서비스는 시뮬레이션을 수행하여 제1 로봇 시스템이 문제의 물체를 파지하기 위해 두 개의 그러한 그리퍼가 아니라 단일의 3 핑거 그리퍼를 어떻게 사용할 수 있는지를 결정할 수 있다. 그러한 시뮬레이션의 결과는, 예를 들어, 제1 로봇 시스템이 제2 로봇 시스템에 의해 사용된 것과 정확히 동일한 절차(예를 들어, 동일한 동작 전략)를 사용할 수 있는 것으로 결정하는 한편, 2개의 3 핑거 그리퍼가 아니라 단일의 3 핑거 그리퍼를 사용하여 물체를 파지하는 데 필요한 상이한 힘을 결정할 수 있다.
일반적으로, 물체를 파지하기 위해 필요한 힘(F)은 물체와 핑거 사이의 마찰 계수(μ), 물체와 접촉하는 그리퍼의 핑거 수(n), 물체의 무게(W) 및 중력에 대한 물체의 이동 방향에 의존하는 중력 곱셈 인자(g)과 같은 여러 인자를 이용하여 결정될 수 있다. 특히, 물체를 잡는 데 필요한 힘(F)은 물체의 무게(W)와 중력 곱셈 계수(g)의 곱을 마찰 계수(μ)와 핑거 수(n)로 나눔으로써 계산될 수 있는데, 즉 F = [W * g]/[μ * n]이다.
이와 같이, 클라우드 기반 서비스는 제1 로봇 시스템에 의해 마주친 환경이 동일한 마찰 계수(μ), 동일한 물체 중량(W), 및 동일한 중력 곱셈 인자(g)를 포함하는 것으로 결정할 수 있다. 그러나 두 개의 3 핑거 그리퍼가 아닌 한 개의 3 핑거 그리퍼를 사용하면 다른 수(n)의 핑거가 물체와 접촉한다. 이 정보가 주어지면 클라우드 기반 서비스는 계산식을 사용하여 6개의 핑거가 아니라 3개의 핑거가 물체와 접촉할 때 물체를 잡는 데 필요한 힘(F)을 계산할 수 있다. 이 경우, 물체에 닿는 핑거의 수(n)가 절반일 때 물체를 잡는 데 필요한 힘(F)은 배가된다. 결과적으로, 클라우드 기반 서비스는 엔드 이펙터 능력의 차이가 주어지면 물체를 잡는 데 필요한 힘을 고려하면서 제2 로봇 시스템에 의해 사용되는 절차에 기초하여 명령어를 생성할 수 있다.
다른 예에서, 로봇 시스템의 구성 사이의 차이는 로봇 시스템이 구비하는 센서의 유형(또는 수)의 차이를 포함할 수 있다. 예를 들어, 제1 로봇 시스템에는 그레이스케일 카메라가 장착될 수 있다. 대조적으로, 제2 로봇에는 컬러 카메라가 장착될 수 있다. 이 경우, 제1 로봇 시스템으로부터 획득된 센서 데이터(예를 들어, 문제의 물체의 이미지 데이터)는 그레이스케일 이미지 데이터를 포함할 수 있고, 제1 로봇 시스템은 그레이스케일 이미지 데이터만을 해석하도록 구성될 수 있다.
클라우드 기반 서비스는 카메라 유형의 차이를 결정할 수 있고 그 차이에 기초하여 명령어를 생성할 수 있다. 특히, 클라우드 기반 서비스는 제2 로봇 시스템에 의해 이전에 사용된 절차를 포함하는 저장된 데이터가 컬러 이미지 데이터(예를 들어, 제2 로봇 시스템에 의해 획득된 바와 같은 물체와 관련된 컬러 이미지 데이터)를 포함하는지를 결정할 수 있다. 저장된 데이터가 그러한 컬러 이미지 데이터를 포함한다고 결정하면, 클라우드 기반 서비스는 생성된 명령어가 제1 로봇 시스템에 의해 판독 가능하고 적절히 운반될 수 있도록 컬러 이미지 데이터를 그레이스케일 이미지로 변환하기 위해 (현재 공지되었거나 장래에 개발될) 다양한 기술을 사용할 수 있다.
다른 예에서, 제1 로봇 시스템은 적외선 범위 센서를 구비할 수 있다. 대조적으로, 제2 로봇 시스템은 초음파 범위 센서를 구비할 수 있다. 이 경우, 제1 로봇 시스템으로부터 획득된 센서 데이터(예를 들어, 문제의 물체의 근접)는 반사된 적외선 광 데이터를 포함할 수 있고, 제1 로봇 시스템은 그러한 적외선 광 데이터만을 해석하도록 구성될 수 있다.
클라우드 기반 서비스는 범위 센서 유형의 차이를 결정할 수 있고 그 차이에 기초하여 명령어를 생성할 수 있다. 특히, 클라우드 기반 서비스는 제2 로봇 시스템에 의해 이전에 사용된 절차를 포함하는 저장된 데이터가 초음파 사운드 데이터(예를 들어, 절차를 수행하는 동안 물체와 제2 로봇 시스템 사이의 거리(들)를 나타냄)하는지를 결정할 수 있다. 클라우드 기반 서비스는 저장된 데이터에 이러한 초음파 사운드 데이터가 포함되어 있다고 결정하면, 초음파 데이터를 범위 데이터(예로서, 특정 거리)로 변환한 다음에 범위 데이터를 해당 적외선 광 데이터로 더 변환할 수 있다. 이러한 방식으로, 생성된 명령어는 제1 로봇 시스템에 의해 판독 가능하고 적절히 수행될 수 있다.
다른 예에서, 로봇 시스템의 구성 간의 차이는 로봇 시스템의 이동 능력의 차이를 포함할 수 있다. 예를 들어, 제1 로봇 시스템은 제1 길이의 로봇 다리 링크를 구비할 수 있다. 대조적으로, 제2 로봇 시스템은 제2 길이(예를 들어, 제1 길이의 2 배)의 로봇 다리 링크가 구비할 수 있다. 이 경우, 길이의 차이로 인해, 제1 로봇 시스템은 동일한 거리를 커버하기 위해 제2 로봇 시스템보다 많은 걸음을 해야 하는 것이 필요할 수 있다.
클라우드 기반 서비스는 로봇 다리 링크의 길이의 차이를 결정할 수 있고, 그 차이에 기초하여 명령어를 생성할 수 있다. 특히, 클라우드 기반 서비스는 제2 로봇 시스템에 의해 이전에 사용된 절차를 포함하는 저장된 데이터가 예를 들어 로봇 시스템에 의해 물체를 재배치하기 위해 취해진 6개의 걸음을 나타내는 데이터를 포함하는지를 결정할 수 있다. 저장된 데이터가 그러한 데이터를 포함한다고 결정하면, 클라우드 기반 서비스는 제2 로봇 시스템에 의해 취해진 걸음의 수를 제1 로봇 시스템이 제2 길이가 제1 길이의 두 배라는 정보가 주어질 경우에 동일 거리를 커버하기 위해 취해야 할 걸음의 수(예를 들어, 12 걸음)로 변환할 수 있다. 이러한 방식으로, 생성된 명령어는 제1 로봇 시스템에 의해 판독 가능하고 적절히 수행될 수 있다. 다른 예도 가능할 수 있다.
일부 예에서, 문제의 물체는 확실성의 임계치 내에서 클라우드 기반 서비스에 의해 정확하게 식별되지 않을 수 있다. 이 경우, 클라우드 기반 서비스는 많은 가능성 중에서 물체의 기하학적 모델 및/또는 물체의 물질 특성의 유사성에 기초하여 유사한 물체를 식별할 수 있다. 유사한 물체가 식별되면, 식별된 유사한 물체와 문제의 물체 간의 차이(예로서, 물체의 무게(W) 및/또는 마찰 계수(μ)의 차이)를 고려하면서 위의 기술을 적용할 수 있다.
위의 기술은 물체 파지 전략으로 제한되지 않고, 로봇 시스템으로부터의 명령어에 대한 임의의 요청과 관련하여 사용될 수 있음을 유의한다. 또한, 클라우드 기반 서비스는 식별된 절차의 임의 조합을 사용하여(즉, 단일의 식별된 절차가 아님) 명령어를 생성할 수 있다는 점에 유의한다.
블록 508에 도시된 바와 같이, 방법(500)은 생성된 명령어에 기초하여 시뮬레이션을 실행하는 단계를 포함한다.
작업을 수행하기 위한 명령어가 생성되면, 클라우드 기반 서비스는 생성된 명령어를 제1 로봇 시스템에 전송할 수 있다. 또한, 클라우드 기반 서비스는 생성된 명령어를 사용하여 온보드 시뮬레이션을 실행하기 위한 요청을 포함하는 커맨드를 제1 로봇 시스템에 보낼 수 있다. 특히 클라우드 기반 서비스는 제1 로봇 시스템이 작업을 수행하기 전에 온보드 시뮬레이션이 실행되도록 요청할 수 있다. 이러한 방식으로, 제1 로봇 시스템은 생성된 명령어가 적절한 것을 검증하기 전에는 작업을 수행하지 않을 것이다.
생성된 명령어 및 커맨드는 동시에 전송될 수 있거나 개별적으로 전송될 수 있음을 주목한다. 또한, 클라우드 기반 서비스는 온보드 시뮬레이션 결과에 대한 요청을 보낼 수도 있다.
온보드 시뮬레이션은 제1 로봇 시스템 상에 위치하는 온보드 컴퓨팅 장치(예컨대, 프로세서(202))에 의해 실행될 수 있다. 예시적인 구현에서, 온보드 시뮬레이션은 생성된 명령어의 전체적인 또는 부분적인 시뮬레이션을 포함할 수 있다. 예를 들어, 제1 로봇 시스템은 온보드 시뮬레이션을 실행하여 문제의 물체를 잡기 위해 물체를 잡는데 데 필요한 계산된 힘(F)을 사용한 결과를 결정(또는 예측)할 수 있다. 온보드 시뮬레이션이 완료되면 온보드 시뮬레이션 결과가 클라우드 기반 서비스에서 읽을 수 있는 형식으로 생성될 수 있다.
일부 구현에서, 클라우드 기반 서비스는 생성된 명령어를 사용하여 온보드 시뮬레이션을 실행하기 위한 요청을 포함하는 커맨드를 제1 로봇 시스템에 전송하지 않을 수 있다. 이 경우에, 클라우드 기반 서비스는 생성된 명령어가 적절한지를 검증하기 위해 그러한 시뮬레이션을 (즉, 제1 로봇 시스템이 작업을 수행하기 전에) 수행할 수 있다. 시뮬레이션 결과를 결정할 때(그리고 선택 사항으로서 후술되는 신뢰 척도 결정을 사용하여), 클라우드 기반 서비스는 작업을 수행하기 위한 명령어를 제1 로봇 시스템에 전송할 수 있다. 다른 구현도 가능할 수 있다.
블록 510에 의해 도시된 바와 같이, 방법(500)은 시뮬레이션의 결과를 획득하고, 그에 응답하여, 결과에 기초하여, 생성된 명령어가 작업의 수행에 성공할 가능성에 대한 척도와 관련된 신뢰 척도를 결정하는 단계를 포함한다.
온보드 시뮬레이션의 결과를 수신하면, 클라우드 기반 서비스는 생성된 명령어가 문제의 작업을 성공적으로 수행할 수 있는 가능성의 척도와 관련된 신뢰 척도를 결정할 수 있다. 예를 들어, 클라우드 기반 서비스는 물체의 성공적인 파지와 관련된 신뢰 척도를 결정할 수 있다. 신뢰 척도를 결정할 때 다양한 인자가 고려될 수 있다.
일례에서, 신뢰 척도는 시뮬레이션 결과와 예상 시뮬레이션 결과의 비교에 기초하여 결정될 수 있다. 예를 들어, 클라우드 기반 서비스는 시뮬레이션을 수행하여 예상 결과를 결정하고 예상 결과와 온보드 시뮬레이션의 실제 결과 간의 차이를 평가할 수 있다(예로서, 시뮬레이션된 효율과 예상된 효율의 비교). 다른 예에서, 신뢰 척도는 시뮬레이션 결과와, 작업 또는 유사한 작업을 수행하기 위해 다른 로봇 시스템에 의해 사용된 절차와 관련된 데이터베이스(110)에 저장된 시뮬레이션 결과의 비교에 기초하여 결정될 수 있다(예로서, 시뮬레이션된 효율과 절차의 평균 효율의 비교). 또 다른 예에서, 신뢰 척도는 온보드 시뮬레이션의 일부로서 (즉, 클라우드 기반 서비스가 아니라) 제1 로봇 시스템에 의해 결정될 수 있다. 다른 예도 가능할 수 있다.
신뢰 척도는 등급(예를 들어, 1 내지 10으로서, 10은 높은 신뢰 척도를 나타내고 1은 낮은 신뢰 척도를 나타냄) 또는 지시자(예를 들어, "높은 신뢰 척도", "평균 신뢰" "또는 "낮은 신뢰"를 나타내는 지시자)의 형태일 수 있다.
블록 512에 도시된 바와 같이, 방법(500)은 하나 이상의 프로세서에 의해, 신뢰 척도가 임계치 아래인 것에 기초하여, 제1 로봇 시스템에 의해 작업을 수행하기 위한 갱신된 명령어를 생성하는 단계를 포함한다.
클라우드 기반 서비스가 신뢰 척도가 임계 척도보다 낮다고 결정하면, 클라우드 기반 서비스는 작업을 수행하기 위한 갱신된 명령어를 생성할 수 있다. 대안으로, 클라우드 기반 서비스는 이전에 생성된 명령어를 갱신할 수 있다. 임계 척도는 미리 결정될 수 있거나, 예를 들어 많은 가능성 중에서 데이터베이스(110)에 저장된 과거 신뢰 척도에 기초하여 연속적으로 갱신될 수 있다.
갱신된 명령어를 생성하는 것은 더 높은 신뢰 척도를 유도할 수 있는 명령어의 변경을 결정하기 위한 클라우드 기반 서비스에 의한 시뮬레이션(예를 들어, 로봇 커맨드에 대한 저장된 명령어 세트로부터의 선택 및/또는 명령어 세트에 대한 제어 루프 파라미터의 조정)을 포함할 수 있다. 예를 들어, 명령어에 대한 요청이 물체를 파지하기 위한 명령어에 대한 요청을 포함하는 시나리오를 다시 참조하면, 온보드 시뮬레이션의 결과는 물체를 잡는 데 필요한 계산된 힘(F)이 물체를 적절히 잡기에 불충분하다는 것을 지시할 수 있다. 특히, 온보드 시뮬레이션의 결과는 계산된 힘을 사용하여 물체를 잡는 제1 로봇 시스템이 물체를 제1 로봇 시스템의 엔드 이펙터에서 미끄러뜨려 바닥으로 떨어뜨릴 수 있음을 지시할 수 있다. 따라서, 클라우드 기반 서비스는 제1 로봇 시스템이 물체를 잡는 데 더 큰 힘을 사용해야 함을 나타내는 갱신된 명령어를 생성할 수 있다.
일례로서, 블록 512에서 명령어를 생성하는 단계는 저장된 명령어 세트를 변경하고/하거나 새로운 명령어를 합성하는 단계를 포함할 수 있다. 예를 들어, 동작 또는 제어 전략의 저장된 라이브러리는 명령어 및/또는 파라미터화된 명령어 템플릿을 포함할 수 있다. 블록 512에서, 이들 명령어가 선택될 수 있고, 파라미터가 변경될 수 있고/있거나, 템플릿이 선택될 수 있고, 파라미터가 설정될 수 있으며, 시뮬레이션 결과가 선택을 비교하고 파라미터를 조절하는 데 사용될 수 있다. 새로운 동작에 대한 명령어는 라이브러리의 여러 명령어 세트(또는 템플릿)를 결합하고 적합성 및 전반적인 강건성을 평가하기 위해 시뮬레이션하여 합성될 수 있다. 명령어는 임의의 다른 적절한 방법으로 생성될 수도 있다.
이어서, 클라우드 기반 서비스는 생성된 갱신된 명령어를 제1 로봇 시스템에 전송할 수 있다. 게다가, 클라우드 기반 서비스는 또한 생성된 갱신된 명령어에 기초하여 다른 온보드 시뮬레이션을 실행하기 위한 다른 커맨드를 보낼 수 있다. 이러한 반복 절차는 도 6의 흐름도(600)에 의해 예시될 수 있다. 흐름도(600)의 일부 단계는 제거될 수 있으며, 여기에 개시된 본 발명의 범위를 벗어나지 않고 다른 단계가 추가될 수 있음에 주목한다. 또한, 흐름도(600)의 다양한 단계는 임의의 순서로 수행될 수 있고 임의의 방식으로 방법(500)의 일부로서 구현될 수 있음에 주목한다. 특히, 흐름도(600)의 단계 602-610은 신뢰 척도가 임계 척도를 초과할 때까지 갱신된 명령어를 생성하기 위해 클라우드 기반 서비스에 의해 수행되는 반복 절차를 나타낸다. 이러한 반복 절차는 방법(500)의 전체적으로 또는 부분적으로 블록 508-512와 관련하여 전술한 절차를 반복하는 형태를 취할 수 있다.
흐름도(600)의 단계 602는 클라우드 기반 서비스가 신뢰 척도를 결정하는 단계를 포함한다. 신뢰 척도의 결정은 방법(500)의 블록 510과 관련하여 전술한 바와 같이 수행될 수 있거나 임의의 다른 방식으로 수행될 수 있다.
흐름도(600)의 단계 604는 신뢰 척도의 결정시에, 클라우드 기반 서비스가 신뢰 척도가 임계 척도보다 큰지를 결정하는 단계를 포함한다. 신뢰 척도가 임계 척도보다 큰지의 결정은 방법(500)의 블록 512와 관련하여 전술한 바와 같이 수행될 수 있거나 임의의 다른 방식으로 수행될 수 있다.
흐름도(600)의 단계 606은 신뢰 척도가 임계 척도 아래인 것으로 결정하면, 클라우드 기반 서비스가 이전에 생성된 명령어를 갱신(또는 갱신된 명령어를 생성)하는 단계를 포함한다. 갱신된 명령어의 생성은 방법(500)의 블록 512와 관련하여 전술한 바와 같이 수행될 수 있거나 임의의 다른 방식으로 수행될 수 있다. 또한, 단계 606은 방법(500)의 블록 506과 관련하여 전술한 바와 같이 명령어를 생성하기 위한 기술 중 임의의 것을 사용하여 수행될 수 있음에 유의한다.
흐름도(600)의 단계 608은 클라우드 기반 서비스가 생성된 명령어를 갱신할 때 (i) 갱신된 생성된 명령어 및 (ii) 다른 온보드 시뮬레이션을 실행하기 위한 커맨드를 로봇 시스템(즉, 제1 로봇 시스템)으로 전송하는 단계를 포함할 수 있다. 또한, 클라우드 기반 서비스는 후속 온보드 시뮬레이션 결과에 대한 요청을 보낼 수도 있다. 그러한 정보를 전송하는 것은 방법(500)의 블록 508과 관련하여 전술한 바와 같이 수행될 수 있거나 임의의 다른 방식으로 수행될 수 있다.
흐름도(600)의 단계 610은 클라우드 기반 서비스가 후속 온보드 시뮬레이션의 결과를 수신하는 단계를 포함한다. 후속 온보드 시뮬레이션의 결과를 수신하는 단계는 방법(500)의 블록 510과 관련하여 전술한 바와 같이 수행될 수 있거나 임의의 다른 방식으로 수행될 수 있다. 결과를 수신하면, 클라우드 기반 서비스는 흐름도(600)의 단계 602를 다시 수행하여 후속 온보드 시뮬레이션의 결과에 기초하여 신뢰 척도를 결정할 수 있다. 신뢰 척도가 결정되면, 클라우드 기반 서비스는 신뢰 척도가 임계 척도를 초과하는지를 결정하기 위해 흐름도(600)의 단계 604를 다시 수행할 수 있다. 신뢰 척도가 임계 척도보다 낮으면, 클라우드 기반 서비스는 다시 흐름도(600)의 단계 606-610을 반복할 수 있다.
단계 602-610을 포함하는 이러한 반복 절차는 신뢰 척도가 임계 척도보다 높아질 때까지 반복될 수 있다. 대안으로, 클라우드 기반 서비스는 제한된 수의 반복(예를 들어, 3번의 반복)을 수행할 수 있다. 제한된 수의 반복을 완료하면 클라우드 기반 서비스는 로봇 시스템에 메시지를 보낼 수 있다. 이러한 메시지는 클라우드 기반 서비스가 작업을 성공적으로 수행할 가능성을 높일 수 있는 명령어를 생성할 수 없다는 지시를 포함할 수 있다. 이 경우, 로봇 시스템은 (생성된 명령어가 의도하지 않은 결과를 초래하지 않는다면) 생성된 명령어를 개의치 않고 사용하도록 지시될 수 있다. 부가적으로 또는 대안으로, 클라우드 기반 서비스는 신뢰 척도가 임계 척도를 초과하게 할 수 있는 명령어를 생성하는 데 필요한 추가 정보(예를 들어, 추가 센서 데이터)에 대한 요청을 로봇 시스템에 전송할 수 있다. 이러한 추가 정보를 수신하면, 클라우드 기반 서비스는 전체적으로 또는 부분적으로 방법(500) 및/또는 흐름도(600)의 기술을 반복하도록 진행할 수 있다.
흐름도(600)의 단계 604를 다시 참조한다. 신뢰 척도가 임계 척도보다 높으면, 클라우드 기반 서비스는 흐름도(600)의 단계 612로 진행할 수 있다. 단계 612는 클라우드 기반 서비스가 확인 메시지를 로봇 시스템으로 전송하는 단계를 포함한다. 확인 메시지는 생성된 명령어가 작업의 성공적인 수행을 가능하게 함을 나타낼 수 있다. 확인 메시지는 또한 로봇 시스템이 생성된 명령어를 사용하여 작업을 수행하는 것을 진행할 수 있다는 지시를 포함할 수 있다. 또한, 단계 614는 클라우드 기반 서비스가 (즉, 로봇 시스템이 작업을 수행하면) 작업의 수행과 관련된 보고에 대한 요청을 전송하는 단계를 포함한다.
하나의 경우에, 그러한 요청은 확인 메시지와 함께 전송될 수 있다(즉, 단계 612 및 614의 결합). 다른 경우에, 이러한 요청은 확인 메시지와 별도로 그리고 로봇 시스템이 작업을 수행하기 전에 전송될 수 있다. 또 다른 경우에, 이러한 요청은 로봇 시스템이 작업을 수행한 후에 전송될 수 있다. 또 다른 경우에, 클라우드 기반 서비스는 단계 614에 지시된 요청을 전송하지 않을 수 있고, 프로세스는 단계 612의 완료시 종료될 수 있다. 다른 경우도 가능할 수 있다.
흐름도(600)의 단계 616은 로봇 시스템으로부터 보고를 수신하면, 보고가 작업의 성공적인 또는 실패한 수행을 나타내는지를 결정하는 단계를 포함한다. 예를 들어, 명령어에 대한 요청이 물체를 파지하기 위한 명령어에 대한 요청을 포함하는 시나리오를 다시 참조하면, 작업의 성공적인 수행은 로봇 시스템이 물체를 성공적으로 파지하는 것을 포함할 수 있다. 대조적으로, 작업의 실패한 수행은 예를 들어 로봇 시스템이 물체를 성공적으로 파지할 수 없었다는 지시를 포함할 수 있다. 보고가 작업의 실패한 수행을 나타내면, 클라우드 기반 서비스는 수신된 보고에 기초하여 생성된 명령어를 갱신하기 위해 단계 606으로 되돌아갈 수 있다. 예를 들어, 보고는 계산된 힘이 물체를 성공적으로 파지하기에 불충분하다는 것을 나타낼 수 있으며, 클라우드 기반 서비스는 계산된 힘을 갱신하여 생성된 명령어를 갱신할 수 있다. 다른 예도 가능할 수 있다.
대안으로, 보고가 작업의 성공적이지 않은 수행을 나타내면, 클라우드 기반 서비스는 로봇 시스템과 통신하여 로봇 시스템에 의해 경험되는 새로운 환경 조건과 관련된 새로운(또는 갱신된) 질의를 수신할 수 있다. 예를 들어, 이것은 물체를 잡으려고 할 때 물체의 위치가 바뀌는 경우에 바람직할 수 있다. 따라서, 많은 가능성 가운데 작업을 수행하기 위한 명령어에 대한 새로운 요청(즉, 물체의 새로운 위치가 주어진 경우의 물체의 파지), 로봇 시스템이 경험하는 새로운 환경 조건을 나타내는 갱신된 센서 데이터 및/또는 로봇 시스템의 구성과 관련된 갱신된 정보(예를 들어, 로봇 팔의 갱신된 위치)를 포함하는 새로운 질의가 필요할 수 있다.
대조적으로, 보고가 작업의 성공적인 수행을 나타내면, 클라우드 기반 서비스는 흐름도(600)의 단계 618로 진행할 수 있다. 단계 618은 수신된 보고 및/또는 생성된 명령어를 데이터베이스(예를 들어, 데이터베이스 110)에 저장하는 단계를 포함한다. 이러한 정보를 데이터베이스에 저장하는 단계는 로봇 시스템 또는 다른 로봇 시스템이 장래에 정보에 액세스하는 것을 허용할 수 있다. 그러면, 로봇 시스템 또는 다른 로봇 시스템은 작업을 반복하고/하거나 새로운 작업을 수행하는 방법을 배우고 환경과의 상호작용을 위한 새로운 전략 및 접근법을 발견하기 위해 여기에 기술된 기술을 사용할 수 있다. 이러한 정보는 다른 로봇 시스템 및/또는 다른 클라이언트 장치에 의해 판독 가능한 하나 이상의 포맷들로 저장될 수 있다는 점에 유의한다.
또한, 흐름도(600)의 단계 620은 클라우드 기반 서비스가 로봇 시스템에 생성된 명령어를 (예를 들어, 메모리 저장소(204)에) 저장하기 위한 지시를 송신하는 단계를 포함한다. 생성된 명령어를 저장하면 로봇 시스템에 의해 생성된 명령어에 보다 신속하게 액세스할 수 있게 된다. 이것은 로봇 시스템이 많은 가능한 환경 중에서 클라우드 기반 서비스와 통신할 수 없는 환경에서 특히 바람직할 수 있다.
단계 618 및 620은 임의의 순서로 발생할 수 있다는 점에 유의한다. 또한, 단계 618 및 620 중 하나 이상이 클라우드 기반 서비스에 의해 수행되지 않을 수 있음에 유의한다. 이 경우, 흐름도(600)에 도시된 프로세스는 단계 616의 완료시에 종료될 수 있다. 다른 경우에, 클라우드 기반 서비스가 단계 618을 수행하지만 단계 620을 수행하지 않으면, 흐름도(600)에 의해 도시된 프로세스는 단계 618의 완료시 종료될 수 있다. 또 다른 경우에, 클라우드 기반 서비스가 단계 620을 수행하지만 단계 618을 수행하지 않으면, 흐름도(600)에 의해 도시된 프로세스는 단계 620의 완료시에 종료될 수 있다. 또 다른 경우에, 도 6에 도시된 바와 같이, 클라우드 기반 서비스가 단계 618 및 620 모두를 수행하는 경우, 흐름도(600)에 의해 도시된 프로세스는 단계 618 및 620의 완료시 종료될 수 있다. 다른 경우 및 예도 가능할 수 있다.
예시적인 구현에서, 클라우드 기반 서비스는 또한 사람-로봇 상호작용과 같은 다른 작업으로 로봇 시스템을 보조할 수 있다. 예를 들어, 위에서 설명된 기술 중 하나 이상을 사용하여 사람 인식 및 상호작용을 위해 하나 이상의 온보드 센서의 데이터를 클라우드 기반 서비스에서 사용할 수 있다. 특히, 클라우드 기반 서비스는 얼굴 검출, 몸짓의 해석, 보행 습관의 평가, 특정 신체 형상의 결정, 사람의 음성 톤의 분석과 같은 기능을 수행할 수 있다. 각 센서로부터 수신된 데이터는 그러한 기능을 수행하기 위해 다르게 가중될 수 있다(예를 들어, 음성 데이터는 다른 센서 데이터에 비해 크게 가중될 수 있다). 또한, 센서 데이터는 집계될 수 있고, 사람 인식에 대한 신뢰 값이 결정되어 로봇 시스템이 사람을 정확하게 인식하고 이에 따라 상호작용할 수 있다.
추가 양태에서, 사람은 로봇 시스템이 데이터베이스(110)에 정보를 저장함으로써 기억할 수 있는 물체/사람에 관한 메타 데이터를 로봇 시스템에 교시할 수 있다. 일례로, 제1 사람이 로봇 시스템을 새로운 사람에게 "소개"할 수 있다. 이에 응답하여, 로봇 시스템은 새로운 사람에 관한 정보(예로서, 얼굴 이미지, 몸짓, 보행 습관, 신체 형상 정보, 음성 톤)를 클라우드 기반 서비스에 보내어 새로운 사람과 관련된 새 레코드가 생성되게 할 수 있다. 다른 예에서, 사람은 환경 내의 새로운 물체를 가리킬 수 있고, 로봇 시스템은 새로운 물체에 관한 정보를 클라우드 기반 서비스에 전송하여 새로운 물체와 관련된 새로운 레코드가 생성되게 할 수 있다.
클라우드 기반 서비스의 데이터베이스에 저장된 임의의 정보는 사람 및 물체 상호작용으로 로봇 시스템을 보조하기 위해 로봇 시스템(또는 다른 로봇 시스템)에 의해 미래에 액세스 가능할 수 있다. 예시적인 환경은 로봇 시스템(예로서, 휴머노이드 로봇)이 노인과 상호작용하는 것을 포함할 수 있다. 노인은 휴머노이드 로봇에게 사진 앨범을 보여줄 수 있으며, 동시에 사진 앨범과 관련된 추억을 설명할 수 있다. 휴머노이드 로봇은 상호작용과 관련된 정보를 데이터베이스에 저장하고, 나중에 예를 들어, 미래의 (예를 들어, 노인과 관련된 다른 사람과의) 상호작용 동안 정보에 액세스할 수 있다. 즉, 로봇 시스템은 클라우드에 저장된 정보를 사용하여 이전에 저장된 정보를 현재 환경 상호작용과 연관시킬 수 있다.
사람-로봇 상호작용의 다른 예시적인 환경은 사람이 로봇 시스템에게 질문을 하는 것을 포함할 수 있고, 로봇 시스템은 그에 응답하여 클라우드 기반 서비스로부터 정보를 요청하고 그 질문에 대한 응답을 제공할 수 있다. 다른 예도 가능할 수 있다.
IV. 결론
본 개시는 본 출원에 설명된 특정 실시예와 관련하여 한정되지 않으며, 이는 다양한 양태의 예시로서 의도된다. 이 분야의 기술자에게 명백한 바와 같이, 많은 수정 및 변경이 본 발명의 사상 및 범위를 벗어나지 않고 이루어질 수 있다. 여기에 열거된 것 이외에, 본 개시의 범위 내에 있는 기능적으로 동등한 방법 및 기기는 전술한 설명으로부터 이 분야의 기술자에게 명백할 것이다. 이러한 수정 및 변경은 첨부된 청구 범위의 범위 내에 속하는 것으로 의도된다.
전술한 설명은 첨부된 도면을 참조하여 개시된 시스템, 장치 및 방법의 다양한 특징 및 기능을 설명한다. 도면에서, 유사한 기호는 일반적으로 상황이 달리 지시하지 않는 한 유사한 구성 요소를 식별한다. 본 명세서 및 도면에 설명된 예시적인 실시예는 제한하려는 것이 아니다. 본 명세서에 제시된 요지의 정신 또는 범위를 벗어나지 않고 다른 실시예가 이용될 수 있고 다른 변경이 이루어질 수 있다. 본 명세서에 일반적으로 기술되고 도면에 예시된 바와 같은 본 개시의 양태는 다양한 다른 구성으로 배열, 대체, 결합, 분리 및 설계될 수 있음을 쉽게 이해할 수 있으며, 이들 모두는 본 명세서에서 명백하게 고려된다.
도면에 도시된 특정 배열은 제한적인 것으로 간주되지 않아야 한다. 다른 실시예는 주어진 도면에 도시된 각 요소를 더 많거나 적게 포함할 수 있음을 이해해야 한다. 또한, 도시된 구성 요소 중 일부는 결합되거나 생략될 수 있다. 또한, 예시적인 실시예는 도면에 도시되지 않은 요소를 포함할 수 있다.
다양한 양태 및 실시예가 본 명세서에 개시되었지만, 다른 양태 및 실시예가 이 분야의 기술자에게 명백할 것이다. 본 명세서에 개시된 다양한 양태 및 실시예는 예시의 목적을 위한 것이고, 제한을 의도하지 않으며, 다음의 청구 범위에 의해 진정한 범위가 지시된다.

Claims (20)

  1. 로봇 시스템이 작업을 수행하기 위한 명령어들을 생성하기 위한 방법으로서,
    제1 로봇 시스템으로부터 하나 이상의 프로세서에 의해, 작업을 수행하기 위한 명령어들에 대한 요청을 수신하는 단계;
    상기 하나 이상의 프로세서에 의해, 상기 작업을 수행하기 위해 제2 로봇 시스템에 의해 이전에 사용된 절차에 적어도 부분적으로 기초하여, 상기 제1 로봇 시스템이 상기 작업을 수행하기 위한 명령어들을 생성하는 단계;
    상기 하나 이상의 프로세서에 의해, 상기 생성된 명령어들이 상기 작업의 성공적인 수행을 가능하게 할지 여부의 결정을 내리는 단계;
    상기 결정이 상기 생성된 명령어들이 상기 작업의 성공적인 수행을 가능하게 한다는 것인 경우, 상기 결정을 내리는 것에 응답하여, 상기 하나 이상의 프로세서에 의해, 상기 제1 로봇 시스템으로 하여금 상기 생성된 명령어들에 따라 상기 작업을 수행하게 하는 단계; 및
    상기 결정이 상기 생성된 명령어들이 상기 작업의 성공적인 수행을 가능하게 하는 것이 아니라는 것인 경우, 상기 결정을 내리는 것에 응답하여, 상기 하나 이상의 프로세서에 의해, 상기 제1 로봇 시스템이 상기 작업을 수행하기 위한 갱신된 명령어들을 생성하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 프로세서에 의해, 상기 제1 로봇 시스템의 하나 이상의 센서로부터 획득된 센서 데이터를 수신하는 단계
    를 더 포함하고, 상기 제1 로봇 시스템이 상기 작업을 수행하기 위한 명령어들을 생성하는 것은 상기 센서 데이터에 추가로 기초하는 방법.
  3. 제1항에 있어서,
    상기 하나 이상의 프로세서에 의해, 상기 제1 로봇 시스템의 구성과 관련된 정보를 수신하는 단계
    를 더 포함하고, 상기 제1 로봇 시스템이 상기 작업을 수행하기 위한 명령어들을 생성하는 것은 상기 제1 로봇 시스템의 구성에 추가로 기초하는 방법.
  4. 제3항에 있어서,
    상기 제2 로봇 시스템의 구성은 상기 제1 로봇 시스템의 구성과 동일한 방법.
  5. 제3항에 있어서,
    상기 제2 로봇 시스템의 구성은 상기 제1 로봇 시스템의 구성과 다른 방법.
  6. 제5항에 있어서,
    상기 제1 로봇 시스템의 구성은 엔드 이펙터들의 제1 세트를 포함하고, 상기 제2 로봇 시스템의 구성은 엔드 이펙터들의 제2 세트를 포함하고, 상기 엔드 이펙터들의 제1 세트는 상기 엔드 이펙터들의 제2 세트와 적어도 부분적으로 다르며,
    상기 방법은 상기 엔드 이펙터들의 제1 세트와 상기 엔드 이펙터들의 제2 세트 사이의 차이를 결정하는 단계를 추가로 포함하며, 상기 제1 로봇 시스템의 구성에 기초하여 상기 명령어들을 생성하는 것은 상기 결정된 차이에 적어도 부분적으로 기초하여 상기 명령어들을 생성하는 것을 포함하는 방법.
  7. 제5항에 있어서,
    상기 제1 로봇 시스템의 구성은 센서들의 제1 세트를 포함하고, 상기 제2 로봇 시스템의 구성은 엔드 센서들의 제2 세트를 포함하고, 상기 센서들의 제1 세트는 상기 센서들의 제2 세트와 적어도 부분적으로 다르고,
    상기 방법은 상기 센서들의 제1 세트와 상기 센서들의 제2 세트 사이의 차이를 결정하는 단계를 추가로 포함하며, 상기 제1 로봇 시스템의 구성에 기초하여 상기 명령어들을 생성하는 것은 상기 결정된 차이에 적어도 부분적으로 기초하여 상기 명령어들을 생성하는 것을 포함하는 방법.
  8. 제5항에 있어서,
    상기 제1 로봇 시스템의 구성은 이동 능력들의 제1 세트를 초래하고, 상기 제2 로봇 시스템의 구성은 이동 능력들의 제2 세트를 초래하고, 상기 이동 능력들의 제1 세트는 상기 이동 능력들의 제2 세트와 적어도 부분적으로 다르고,
    상기 방법은 상기 이동 능력들의 제1 세트와 상기 이동 능력들의 제2 세트 사이의 차이를 결정하는 단계를 추가로 포함하며, 상기 제1 로봇 시스템의 구성에 기초하여 상기 명령어들을 생성하는 것은 상기 결정된 차이에 적어도 부분적으로 기초하여 상기 명령어들을 생성하는 것을 포함하는 방법.
  9. 제1항에 있어서,
    상기 작업은 물체와의 상호작용을 포함하고, 명령어들에 대한 상기 요청은 상기 물체의 인식에 대한 요청, 상기 물체의 3D 모델에 대한 요청 및 상기 물체의 파지 전략에 대한 요청 중 하나 이상을 포함하는 방법.
  10. 제1항에 있어서,
    상기 생성된 명령어들에 기초하여 시뮬레이션을 실행하는 단계를 더 포함하고, 상기 결정을 내리는 것은 적어도 상기 시뮬레이션의 결과들에 기초하는 방법.
  11. 제10항에 있어서,
    상기 시뮬레이션을 실행하는 단계는:
    상기 제1 로봇 시스템으로, 상기 생성된 명령어들과 상기 작업을 수행하기 전에 상기 시뮬레이션을 실행하라는 커맨드를 전송하는 단계; 및
    상기 제1 로봇 시스템으로부터, 상기 시뮬레이션의 상기 결과들을 수신하는 단계
    를 포함하는 방법.
  12. 제1항에 있어서,
    상기 제1 로봇 시스템이 상기 갱신된 명령어들에 따라 상기 작업을 수행한 후, 상기 제1 로봇 시스템으로부터 상기 하나 이상의 프로세서에 의해, 상기 작업의 수행과 관련된 보고를 수신하는 단계
    를 더 포함하는 방법.
  13. 제12항에 있어서,
    상기 수신된 보고가 상기 작업의 성공적인 수행을 지시한다고 결정하는 단계; 및
    상기 수신된 보고가 상기 작업의 성공적인 수행을 지시한다고 결정한 것에 응답하여, 상기 하나 이상의 프로세서에 의해, 적어도 상기 갱신된 명령어들을 데이터베이스에 저장하는 단계
    를 더 포함하는 방법.
  14. 제12항에 있어서,
    상기 수신된 보고가 상기 작업의 성공적인 수행을 지시한다고 결정하는 단계; 및
    상기 수신된 보고가 상기 작업의 성공적인 수행을 지시한다고 결정한 것에 응답하여, 상기 제1 로봇 시스템으로 상기 하나 이상의 프로세서에 의해, 상기 갱신된 명령어들을 상기 제1 로봇 시스템의 메모리 저장소에 저장하기 위한 지시를 전송하는 단계
    를 더 포함하는 방법.
  15. 제12항에 있어서,
    상기 수신된 보고가 상기 작업의 성공적이지 않은 실행을 지시한다고 결정하는 단계; 및
    상기 수신된 보고가 상기 작업의 성공이지 않은 수행을 지시한다고 결정한 것에 응답하여, 상기 하나 이상의 프로세서에 의해, 상기 제1 로봇 시스템이 상기 작업을 수행하기 위한 추가로 갱신된 명령어들을 생성하는 단계
    를 더 포함하고, 상기 추가로 갱신된 명령어들을 생성하는 것은 적어도 상기 수신된 보고에 기초하는 방법.
  16. 제1항에 있어서,
    상기 제1 로봇 시스템이 상기 작업을 수행하기 위한 갱신된 명령어들을 생성하는 것에 응답하여, 상기 하나 이상의 프로세서에 의해, 상기 생성된 갱신된 명령어들이 상기 작업의 성공적인 수행을 가능하게 할지 여부의 추가 결정을 내리는 단계;
    상기 추가 결정이 상기 생성된 갱신된 명령어들이 상기 작업의 성공적인 수행을 가능하게 한다는 것인 경우, 상기 추가 결정을 내리는 것에 응답하여, 상기 하나 이상의 프로세서에 의해, 상기 제1 로봇 시스템으로 하여금 상기 생성된 갱신된 명령어들에 따라 상기 작업을 수행하게 하는 단계; 및
    상기 추가 결정이 상기 생성된 갱신된 명령어들이 상기 작업의 성공적인 수행을 가능하게 하는 것이 아니라는 것인 경우, 상기 추가 결정을 내리는 것에 응답하여, 상기 하나 이상의 프로세서에 의해, 상기 제1 로봇 시스템이 상기 작업을 수행하기 위한 추가로 갱신된 명령어들을 생성하는 단계
    를 더 포함하는 방법.
  17. 하나 이상의 프로세서에 의해 실행 가능한 명령어들을 저장한 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어들은 상기 하나 이상의 프로세서로 하여금:
    제1 로봇 시스템으로부터, 작업을 수행하기 위한 명령어들에 대한 요청을 수신하는 기능;
    상기 작업을 수행하기 위해 제2 로봇 시스템에 의해 이전에 사용된 절차에 적어도 부분적으로 기초하여, 상기 제1 로봇 시스템이 상기 작업을 수행하기 위한 명령어들을 생성하는 기능;
    상기 생성된 명령어들이 상기 작업의 성공적인 수행을 가능하게 할지 여부의 결정을 내리는 기능;
    상기 결정이 상기 생성된 명령어들이 상기 작업의 성공적인 수행을 가능하게 한다는 것인 경우, 상기 결정을 내리는 것에 응답하여, 상기 제1 로봇 시스템으로 하여금 상기 생성된 명령어들에 따라 상기 작업을 수행하게 하는 기능; 및
    상기 결정이 상기 생성된 명령어들이 상기 작업의 성공적인 수행을 가능하게 하는 것이 아니라는 것인 경우, 상기 결정을 내리는 것에 응답하여, 상기 제1 로봇 시스템이 상기 작업을 수행하기 위한 갱신된 명령어들을 생성하는 기능
    을 포함하는 기능들을 수행하게 하는 비일시적 컴퓨터 판독가능 매체.
  18. 제17항에 있어서,
    상기 요청은 상기 제1 로봇 시스템의 제1 구성을 나타내고, 상기 제2 로봇 시스템은 상기 제1 구성과 다른 제2 구성을 가지며, 상기 제1 로봇 시스템이 상기 작업을 수행하기 위한 명령어들을 생성하는 것은 상기 제1 구성 및 상기 제2 구성에 추가로 기초하는 비일시적 컴퓨터 판독가능 매체.
  19. 클라우드-기반 시스템으로서,
    통신 인터페이스; 및
    하나 이상의 서버 장치를 포함하고, 상기 하나 이상의 서버 장치는:
    상기 통신 인터페이스를 통해 제1 로봇 시스템으로부터, 작업을 수행하기 위한 명령어들에 대한 요청을 수신하고;
    상기 작업을 수행하기 위해 제2 로봇 시스템에 의해 이전에 사용된 절차에 적어도 부분적으로 기초하여, 상기 제1 로봇 시스템이 상기 작업을 수행하기 위한 명령어들을 생성하고;
    상기 생성된 명령어들이 상기 작업의 성공적인 수행을 가능하게 할지 여부의 결정을 내리고;
    상기 결정이 상기 생성된 명령어들이 상기 작업의 성공적인 수행을 가능하게 한다는 것인 경우, 상기 결정을 내리는 것에 응답하여, 상기 제1 로봇 시스템으로 하여금 상기 생성된 명령어들에 따라 상기 작업을 수행하게 하고;
    상기 결정이 상기 생성된 명령어들이 상기 작업의 성공적인 수행을 가능하게 하는 것이 아니라는 것인 경우, 상기 결정을 내리는 것에 응답하여, 상기 제1 로봇 시스템이 상기 작업을 수행하기 위한 갱신된 명령어들을 생성
    하도록 구성된, 클라우드-기반 시스템.
  20. 제19항에 있어서,
    상기 요청은 상기 제1 로봇 시스템의 제1 구성을 나타내고, 상기 제2 로봇 시스템은 상기 제1 구성과 다른 제2 구성을 가지며, 상기 제1 로봇 시스템이 상기 작업을 수행하기 위한 명령어들을 생성하는 것은 상기 제1 구성 및 상기 제2 구성에 추가로 기초하는 클라우드-기반 시스템.
KR1020197003059A 2014-07-24 2015-07-23 로봇 시스템이 작업을 수행하기 위한 명령어를 생성하기 위한 방법 및 시스템 KR102044665B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462028389P 2014-07-24 2014-07-24
US62/028,389 2014-07-24
US14/804,621 2015-07-21
US14/804,621 US9802309B2 (en) 2014-07-24 2015-07-21 Methods and systems for generating instructions for a robotic system to carry out a task
PCT/US2015/041704 WO2016014774A1 (en) 2014-07-24 2015-07-23 Methods and systems for generating instructions for a robotic system to carry out a task

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020167036920A Division KR101945772B1 (ko) 2014-07-24 2015-07-23 로봇 시스템이 작업을 수행하기 위한 명령어를 생성하기 위한 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20190014586A KR20190014586A (ko) 2019-02-12
KR102044665B1 true KR102044665B1 (ko) 2019-11-13

Family

ID=53777019

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167036920A KR101945772B1 (ko) 2014-07-24 2015-07-23 로봇 시스템이 작업을 수행하기 위한 명령어를 생성하기 위한 방법 및 시스템
KR1020197003059A KR102044665B1 (ko) 2014-07-24 2015-07-23 로봇 시스템이 작업을 수행하기 위한 명령어를 생성하기 위한 방법 및 시스템

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020167036920A KR101945772B1 (ko) 2014-07-24 2015-07-23 로봇 시스템이 작업을 수행하기 위한 명령어를 생성하기 위한 방법 및 시스템

Country Status (5)

Country Link
US (2) US9802309B2 (ko)
EP (1) EP3172017B1 (ko)
KR (2) KR101945772B1 (ko)
CN (2) CN110232433B (ko)
WO (1) WO2016014774A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230015145A (ko) 2021-07-22 2023-01-31 엘지전자 주식회사 에지 서버 및 클라우드 서버를 포함하는 이종 로봇 시스템 및 그의 제어 방법

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10208947B2 (en) 2014-03-26 2019-02-19 Rockwell Automation Technologies, Inc. Cloud-level analytics for boiler networks
US9614963B2 (en) 2014-03-26 2017-04-04 Rockwell Automation Technologies, Inc. Cloud-based global alarm annunciation system for industrial systems
US10095202B2 (en) 2014-03-26 2018-10-09 Rockwell Automation Technologies, Inc. Multiple controllers configuration management interface for system connectivity
US9838476B2 (en) 2014-03-26 2017-12-05 Rockwell Automation Technologies, Inc. On-premise data collection and ingestion using industrial cloud agents
US9734367B1 (en) 2014-08-25 2017-08-15 Amazon Technologies, Inc. Distinguishing RFID tags using motion data
US9840007B1 (en) * 2014-08-25 2017-12-12 X Development Llc Robotic operation libraries
US10032137B2 (en) 2015-08-31 2018-07-24 Avaya Inc. Communication systems for multi-source robot control
US10350757B2 (en) 2015-08-31 2019-07-16 Avaya Inc. Service robot assessment and operation
US10040201B2 (en) * 2015-08-31 2018-08-07 Avaya Inc. Service robot communication systems and system self-configuration
US10124491B2 (en) 2015-08-31 2018-11-13 Avaya Inc. Operational parameters
CN111832702A (zh) * 2016-03-03 2020-10-27 谷歌有限责任公司 用于机器人抓取的深度机器学习方法和装置
US10814893B2 (en) 2016-03-21 2020-10-27 Ge Global Sourcing Llc Vehicle control system
US10805222B2 (en) * 2017-05-01 2020-10-13 General Electric Company Resilient network configuration for time sensitive traffic
US11072356B2 (en) 2016-06-30 2021-07-27 Transportation Ip Holdings, Llc Vehicle control system
CN105897509B (zh) * 2016-04-08 2020-04-07 上海工程技术大学 一种基于云计算的机器人软件运行及仿真系统
WO2018017616A1 (en) 2016-07-18 2018-01-25 Lael Odhner Assessing robotic grasping
US10259117B2 (en) * 2016-08-02 2019-04-16 At&T Intellectual Property I, L.P. On-demand robot virtualization
EP3484674B1 (en) 2016-08-17 2021-07-07 Siemens Aktiengesellschaft Method and system for preserving privacy for cloud-based manufacturing analysis services
US10764255B2 (en) * 2016-09-21 2020-09-01 Rockwell Automation Technologies, Inc. Secure command execution from a cloud monitoring system to a remote cloud agent
JP2018067100A (ja) * 2016-10-18 2018-04-26 株式会社日立製作所 ロボット対話システム
EP3536467B1 (en) * 2016-11-07 2022-07-20 Soinn Inc. Action transfer device, action transfer method, and non-temporary computer readable medium having action transfer program stored thereon
US10723018B2 (en) * 2016-11-28 2020-07-28 Brain Corporation Systems and methods for remote operating and/or monitoring of a robot
WO2018160267A2 (en) * 2017-02-16 2018-09-07 Indiana University Research And Technology Corporation Cloud based robotic control systems and methods
DE102017103986A1 (de) * 2017-02-27 2018-08-30 Vorwerk & Co. Interholding Gmbh Verfahren zum Betrieb eines sich selbsttätig fortbewegenden Roboters
US10646994B2 (en) * 2017-04-25 2020-05-12 At&T Intellectual Property I, L.P. Robot virtualization leveraging Geo analytics and augmented reality
US11327473B2 (en) 2017-07-11 2022-05-10 Rockwell Automation Technologies, Inc. Dynamically reconfigurable data collection agent for fracking pump asset
CN107471213B (zh) * 2017-08-03 2020-06-19 大陆智源科技(北京)有限公司 一种机器人模拟系统
US10482063B2 (en) 2017-08-14 2019-11-19 Rockwell Automation Technologies, Inc. Modular control manifest generator for cloud automation
US11740624B2 (en) * 2017-08-17 2023-08-29 Sri International Advanced control system with multiple control paradigms
JP2019042856A (ja) * 2017-08-31 2019-03-22 川崎重工業株式会社 ロボット及びロボットの組立性確認方法
US10416660B2 (en) 2017-08-31 2019-09-17 Rockwell Automation Technologies, Inc. Discrete manufacturing hybrid cloud solution architecture
WO2019068319A1 (en) * 2017-10-04 2019-04-11 Telefonaktiebolaget Lm Ericsson (Publ) METHOD AND ARRANGEMENT FOR DETERMINING A TRACK OF A ROBOTIC DEVICE IN A CLOUD
CN107544515A (zh) * 2017-10-10 2018-01-05 苏州中德睿博智能科技有限公司 基于云服务器的多机器人建图导航系统与建图导航方法
EP3476545A1 (en) 2017-10-27 2019-05-01 Creaholic SA Method for operating a computer-based inventory of hardware modules of a robotic system
SE544035C2 (en) 2018-04-04 2021-11-16 Husqvarna Ab Improved maintenance for a robotic working tool
US11040452B2 (en) * 2018-05-29 2021-06-22 Abb Schweiz Ag Depth sensing robotic hand-eye camera using structured light
US11597596B1 (en) * 2018-07-13 2023-03-07 Veena Technologies, Inc. System and method of providing an elevator system for mobile robots
CN112470320A (zh) 2018-07-26 2021-03-09 三井化学株式会社 电池用非水电解液及锂二次电池
JP7479353B2 (ja) * 2018-09-07 2024-05-08 ファナック アメリカ コーポレイション 産業用ロボットのためのゴールデンデータ
CN109270520B (zh) * 2018-10-18 2020-05-19 四川九洲空管科技有限责任公司 基于幅度信息获取二次雷达应答目标身份代码的处理方法
CN111630475B (zh) * 2018-10-19 2024-02-27 深圳配天机器人技术有限公司 控制机器人的方法、服务器、存储介质及云服务平台
US11584020B2 (en) * 2018-12-04 2023-02-21 Cloudminds Robotics Co., Ltd. Human augmented cloud-based robotics intelligence framework and associated methods
US11625806B2 (en) * 2019-01-23 2023-04-11 Qualcomm Incorporated Methods and apparatus for standardized APIs for split rendering
EP3738723A1 (de) 2019-05-17 2020-11-18 Siemens Aktiengesellschaft Verfahren, computer-programm-produkt und robotersteuerung zum kontaktbasierten lokalisieren von bei der manipulation durch roboter bewegbaren objekten sowie roboter
US20220193904A1 (en) * 2019-06-12 2022-06-23 Telefonaktiebolaget Lm Ericsson (Publ) Technique for Determining Control Information to be Wirelessly Transmitted to a Robotic Device
CN112182169A (zh) * 2019-07-01 2021-01-05 北京邮电大学 基于用户属性的社会工程学机器人模拟方法和装置
US11654552B2 (en) * 2019-07-29 2023-05-23 TruPhysics GmbH Backup control based continuous training of robots
CN110427536B (zh) * 2019-08-12 2022-03-04 深圳忆海原识科技有限公司 一种类脑决策与运动控制系统
CA3154470A1 (en) 2019-10-25 2021-04-29 Dexterity, Inc. Robotic system simulation engine
CN111025981A (zh) * 2019-12-19 2020-04-17 华南理工大学 一种基于单片机的物联网掌上电子相册
CN111338670B (zh) * 2020-02-17 2022-11-22 达闼机器人股份有限公司 机器人的固件更新方法、装置、存储介质和机器人
CN111338820B (zh) * 2020-02-24 2024-04-05 京东科技信息技术有限公司 运行方法、客户端及存储介质
US11999066B2 (en) 2020-08-04 2024-06-04 Artificial, Inc. Robotics calibration in a lab environment
KR102442064B1 (ko) * 2020-11-30 2022-09-08 네이버랩스 주식회사 서비스 어플리케이션과 연계하여 서비스를 제공하는 로봇을 제어하는 방법 및 클라우드 서버
US20220203547A1 (en) * 2020-12-31 2022-06-30 Plus One Robotics, Inc. System and method for improving automated robotic picking via pick planning and interventional assistance
KR20230029333A (ko) * 2021-08-24 2023-03-03 주식회사 아이온커뮤니케이션즈 클라우드 로봇 제어 개발을 위한 시뮬레이션 시스템 및 그 방법
CN114536339B (zh) * 2022-03-03 2024-05-31 深圳市大族机器人有限公司 协作机器人的控制方法、装置、协作机器人和存储介质
IT202200014449A1 (it) * 2022-07-08 2024-01-08 Telecom Italia Spa Metodo e sistema per migliorare le capacita' di un robot
CN115755780B (zh) * 2022-08-30 2024-08-09 中国核动力研究设计院 一种核电dcs系统设计中全局搜索方法、系统及存储介质
CN117798914B (zh) * 2023-12-29 2024-08-02 深圳市小全科技文化有限公司 仿生表情机器人通信方法、装置、介质及计算机设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013536095A (ja) 2010-08-24 2013-09-19 中国科学院深▲しん▼先進技術研究院 クラウドロボットシステムおよびその実現方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003035334A1 (fr) * 2001-10-22 2003-05-01 Sony Corporation Appareil robotique et procede de commande pour un tel appareil
WO2004088514A1 (ja) * 2003-03-28 2004-10-14 Sony Corporation 情報提供装置及び方法,並びに情報提供システム
JP4621073B2 (ja) 2005-05-23 2011-01-26 本田技研工業株式会社 ロボット制御装置
JP4792823B2 (ja) * 2005-06-09 2011-10-12 ソニー株式会社 ネットワーク・システム、移動体装置及びその制御方法、並びにコンピュータ・プログラム
JP3946753B2 (ja) * 2005-07-25 2007-07-18 ファナック株式会社 ロボットプログラム評価・修正方法及びロボットプログラム評価・修正装置
JP4989532B2 (ja) 2007-03-30 2012-08-01 成均館大学校産学協力団 移動サービスロボットの中央情報処理システム、移動サービスロボットの情報処理方法及び移動サービスロボットの情報処理方法を記録したコンピュータで読み取り可能な記録媒体
WO2009097336A2 (en) 2008-01-28 2009-08-06 Seegrid Corporation Methods for repurposing temporal-spatial information collected by service robots
CN101953172A (zh) * 2008-02-13 2011-01-19 塞格瑞德公司 分布式多机器人系统
US11461785B2 (en) * 2008-07-10 2022-10-04 Ron M. Redlich System and method to identify, classify and monetize information as an intangible asset and a production model based thereon
CN101413806B (zh) * 2008-11-07 2011-05-25 湖南大学 一种实时数据融合的移动机器人栅格地图创建方法
FR2962048A1 (fr) * 2010-07-02 2012-01-06 Aldebaran Robotics S A Robot humanoide joueur, methode et systeme d'utilisation dudit robot
TW201227190A (en) 2010-12-28 2012-07-01 Hon Hai Prec Ind Co Ltd System and method for controlling robots via cloud computing
US8380349B1 (en) * 2011-05-06 2013-02-19 Google Inc. Methods and systems for providing instructions to a robotic device
US8380652B1 (en) 2011-05-06 2013-02-19 Google Inc. Methods and systems for autonomous robotic decision making
US8447863B1 (en) 2011-05-06 2013-05-21 Google Inc. Systems and methods for object recognition
US8639644B1 (en) 2011-05-06 2014-01-28 Google Inc. Shared robot knowledge base for use with cloud computing system
US20130085602A1 (en) * 2011-10-04 2013-04-04 Hei Tao Fung Office Robot System
US8386079B1 (en) 2011-10-28 2013-02-26 Google Inc. Systems and methods for determining semantic information associated with objects
KR101545146B1 (ko) * 2013-11-28 2015-08-20 한국과학기술정보연구원 클라우드 스토리지 기반 작업 수행 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013536095A (ja) 2010-08-24 2013-09-19 中国科学院深▲しん▼先進技術研究院 クラウドロボットシステムおよびその実現方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230015145A (ko) 2021-07-22 2023-01-31 엘지전자 주식회사 에지 서버 및 클라우드 서버를 포함하는 이종 로봇 시스템 및 그의 제어 방법

Also Published As

Publication number Publication date
EP3172017B1 (en) 2018-12-12
WO2016014774A1 (en) 2016-01-28
US9802309B2 (en) 2017-10-31
US10507577B2 (en) 2019-12-17
US20160023351A1 (en) 2016-01-28
KR20190014586A (ko) 2019-02-12
KR20170015377A (ko) 2017-02-08
EP3172017A1 (en) 2017-05-31
CN110232433A (zh) 2019-09-13
CN110232433B (zh) 2023-08-01
CN106796665B (zh) 2019-06-14
KR101945772B1 (ko) 2019-02-11
US20180056505A1 (en) 2018-03-01
CN106796665A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
KR102044665B1 (ko) 로봇 시스템이 작업을 수행하기 위한 명령어를 생성하기 위한 방법 및 시스템
US9399294B1 (en) Displaying estimated image data in a user interface
US10207407B1 (en) Robotic operation libraries
KR101994574B1 (ko) 로봇 시스템 컴포넌트 사용의 클라우드-기반 분석
US11198217B2 (en) Determining and utilizing corrections to robot actions
US8428777B1 (en) Methods and systems for distributing tasks among robotic devices
US8947522B1 (en) Systems and methods to adjust actions based on latency levels
KR101870067B1 (ko) 로봇 디바이스 동작의 가상 표현을 디스플레이하는 증강 현실을 위한 방법 및 시스템
US8886829B1 (en) Methods and systems for robot cloud computing using slug trails
US8386079B1 (en) Systems and methods for determining semantic information associated with objects
US8374421B1 (en) Methods and systems for extracting still frames from a compressed video
JP6439817B2 (ja) 認識的アフォーダンスに基づくロボットから人間への物体ハンドオーバの適合
US8386078B1 (en) Methods and systems for providing a data library for robotic devices
US8525836B1 (en) Systems and methods for representing information associated with objects in an area
US8525853B1 (en) Methods and systems for generating a layered display of a device
JP7380556B2 (ja) 情報処理装置、情報処理方法及びプログラム
WO2023168335A1 (en) Temporal decoupling in image-based localization at scale

Legal Events

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