CN110232433B - 生成用于机器人***的指令以执行任务的方法和*** - Google Patents

生成用于机器人***的指令以执行任务的方法和*** Download PDF

Info

Publication number
CN110232433B
CN110232433B CN201910422651.2A CN201910422651A CN110232433B CN 110232433 B CN110232433 B CN 110232433B CN 201910422651 A CN201910422651 A CN 201910422651A CN 110232433 B CN110232433 B CN 110232433B
Authority
CN
China
Prior art keywords
robotic system
task
instructions
cloud
perform
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201910422651.2A
Other languages
English (en)
Other versions
CN110232433A (zh
Inventor
J.J.库夫纳
J.S.拉塞尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
X Development LLC
Original Assignee
X Development LLC
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 X Development LLC filed Critical X Development LLC
Priority to CN201910422651.2A priority Critical patent/CN110232433B/zh
Publication of CN110232433A publication Critical patent/CN110232433A/zh
Application granted granted Critical
Publication of CN110232433B publication Critical patent/CN110232433B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/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]
    • 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)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Manipulator (AREA)

Abstract

示例实施例可涉及机器人—云交互。特别地,基于云的服务可以从包括从第一机器人***接收查询,所述查询包括传感器数据、对执行任务的指令的请求、以及与第一机器人***的配置相关联的信息。基于云的服务可以识别存储的数据,存储的数据包括之前由第二机器人***使用以执行任务的程序、以及与第二机器人***的配置相关联的信息。然后,基于云的服务可以至少部分地基于传感器数据、由第二机器人***使用以执行任务的程序、与第一机器人***的配置相关联的信息、以及与第二机器人***的配置相关联的信息,生成用于第一机器人***的指令,以执行任务。

Description

生成用于机器人***的指令以执行任务的方法和***
本申请是申请日为2015年7月23日、申请号为201580036290.8、发明名称为“生成用于机器人***的指令以执行任务的方法和***”的发明专利申请的分案申请。
相关交叉引用
本申请要求于2014年7月24日提交的美国临时申请No.62/028,389和于2015年7月21日提交的美国专利申请No.14/804,621的优先权,其内容通过引用整体并入本文。
技术领域
本申请涉及用于控制机器人的方法和***,并且特别地涉及生成用于机器人***的指令以执行任务的方法和***。
背景技术
除非本文另有说明,本章节中描述的材料不是本申请中的权利要求的现有技术,并且不会因为被包括在本章节而被承认为现有技术。
云计算是指经由计算机网络提供的计算资源。在计算的传统模型中,数据和软件两者都完全地包括在用户的计算机上。然而,在云计算中,用户的计算机可以包括相对少的软件或数据(例如,可能是最小的操作***和WEB浏览器),且可以用作在计算机的网络上发生的过程的显示终端。为云计算服务(或甚至现有云服务的聚合)提供的通用简写是“云”。
云计算已经被称为“客户端—服务器计算”,然而,在通常的云计算和客户端—服务器计算之间可能存在区别。例如,客户端—服务器计算可能包括分布式应用结构,其在资源或服务的提供者(例如,服务器)和服务请求者(例如,客户端)之间划分任务或工作负荷。客户端—服务器计算通常涉及服务器与客户端之间的一对一关系,而云计算包括可以由通用客户端访问的通用服务(例如,可以不需要一对一关系或连接)。从而,云计算通常包括客户端—服务器计算,以及附加的服务和功能。
云计算可以通过使用用户的计算机上的更简单的硬件,其访问计算资源(例如,处理器、硬盘驱动器,等等)的庞大网络,使用户免于某些硬件和软件安装和维护任务。资源的共享可以降低个人的成本。因此,连接到云的任何计算机可以连接到计算能力、应用和文件的相同的池(pool)。用户可以在远程服务器上存储和访问个人文件(例如,音乐、图片、视频和书签),或者玩游戏或使用生产力应用,而不是物理地携带存储介质,例如,DVD或拇指驱动器。
在一个示例中,用户可以打开浏览器并连接到WEB服务器的主机,其运行用户界面软件,以从用户收集命令并将命令解释为服务器上的命令。服务器可以处理计算,并且可以存储或取回来自数据库服务器或文件服务器的信息,并向用户显示更新的页面。通过“云计算”,跨多个服务器的数据可以在世界各地同步,例如,允许世界各地的多个用户在一个文件或项目上进行协作工作。
发明内容
示例实施例可以涉及方法和***,所述方法和***涉及基于云的服务,用于辅助机器人***的环境感知和交互。特别地,基于云的服务可以经由通信网络与机器人***交互,以从机器人***接收信息以及向机器人***发送信息。这样的配置可以减少(或消除)对机器人***上的附加机上(on-board)存储器和处理能力的需要,以便由机器人***执行某些任务。此外,基于云的服务可以允许在多个机器人***之间的数据共享。另外,当机器人***从环境获得信息时,基于云的服务可以被连续地更新。
例如,机器人***可以与基于云的服务交互,以接收允许机器人***执行任务的指令。基于云的服务可以进行大规模的仿真,以基于各种因素生成指令。这些因素可以包括从机器人***接收的传感器数据、由其他机器人***使用以执行任务(或类似的任务)的之前的程序、和/或机器人***的配置、以及其他。
在一个方面,提供了一种方法。所述方法涉及从具有一个或多个传感器的第一机器人***接收查询,其中查询包括从一个或多个传感器获得的传感器数据、对执行任务的指令的请求、以及与第一机器人***的配置相关联的信息。方法还涉及识别存储的数据,存储的数据包括之前由第二机器人***使用以执行任务或类似的任务的程序、以及与第二机器人***的配置相关联的信息。方法还涉及,至少部分地基于传感器数据、由第二机器人***使用以执行任务或类似的任务的程序、与第一机器人***的配置相关联的信息、以及与第二机器人***的配置相关联的信息,由一个或多个处理器生成用于第一机器人***的指令,以执行任务。方法还涉及,基于生成的指令,在执行任务之前,向第一机器人***发送生成的指令和运行机上仿真的命令。方法还涉及,从第一机器人***接收机上仿真的结果,并基于结果响应地确定置信度量,置信度量与生成的指令允许成功执行任务的度量相关。方法还涉及,基于置信度量低于阈值,由一个或多个处理器生成更新的指令,以由第一机器人***执行任务。
在另一方面,提供了一种非临时性(non-transitory)计算机可读介质。所述非临时性计算机可读介质在其中存储有指令,指令可由一个或多个处理器运行以使得计算***执行功能。所述功能包括:从具有多个传感器的第一机器人装置接收查询,其中查询包括从所述多个传感器获得的传感器数据、对执行任务的指令的请求、以及与第一机器人装置的配置相关联的信息。功能还包括识别存储的数据,存储的数据包括之前由第二机器人装置使用以执行任务或类似的任务的程序、以及与第二机器人装置的配置相关联的信息。功能还包括:至少部分地基于传感器数据、由第二机器人装置使用以执行任务或所述类似的任务的程序、与第一机器人装置的配置相关联的信息、以及与第二机器人装置的配置相关联的信息,生成用于第一机器人装置的指令,以执行任务。功能还包括:基于生成的指令,在执行任务之前,向第一机器人装置发送生成的指令和运行机上仿真的命令。功能还包括:从第一机器人装置接收机上仿真的结果,并基于结果响应地确定置信度量,置信度量与生成的指令允许成功执行任务的度量相关。功能还包括:基于置信度量低于阈值,生成更新的指令,以由第一机器人装置执行任务。
在又一方面,提供了第二方法。所述第二方法涉及,从具有一个或多个传感器的第一机器人***接收查询,其中查询包括从一个或多个传感器获得的传感器数据、对执行环境交互的指令的请求、以及与第一机器人***的配置相关联的信息。第二方法还涉及识别存储的数据,存储的数据包括之前由第二机器人***使用以执行环境交互的程序、以及与第二机器人***的配置相关联的信息。第二方法还涉及,至少部分地基于传感器数据、由第二机器人***使用以执行环境交互的程序、与第一机器人***的配置相关联的信息、以及与第二机器人***的配置相关联的信息,生成用于第一机器人***的指令,以执行环境交互。第二方法还涉及进行迭代程序,直到置信度量高于阈值,其中置信度量与生成的指令允许成功执行环境交互的度量相关,且其中迭代程序的迭代包括:基于生成的指令,在执行环境交互之前,向第一机器人***发送生成的指令和运行机上仿真的命令。迭代程序的迭代还包括:从第一机器人***接收机上仿真的结果,并基于结果响应地确定置信度量。迭代程序的迭代还包括:基于置信度量低于阈值,更新生成的指令,以由第一机器人***执行环境交互。
通过阅读下面的详细描述并且适当地参考附图,这些方面以及其他方面、优点和替代对于本领域的普通技术人员将变得显而易见。
附图说明
图1图示了根据示例实施例的用于基于云的计算的示例***。
图2A图示了根据示例实施例的示例客户端装置。
图2B图示了根据示例实施例的机器人的图例。
图2C图示了根据示例实施例的机器人的另一图例。
图3图示了根据示例实施例的概念性机器人—云交互的示例。
图4图示了根据示例实施例的示例***,其中,机器人可以与云进行交互,并与其他云装置共享信息。
图5是图示了根据示例实施例的用于机器人—云交互的方法的流程图。
图6是图示了根据示例实施例的用于机器人—云交互的迭代程序的流程图。
具体实施方式
本文描述了示例方法和***。应当理解,在本文中使用“示例”、“示范性”和“说明性”意味着“用作示例、范例和说明”。在本文中描述为“示例”、“示范性”、“说明性”的实施例或特征不一定解释为相比其他实施例或特征优选的或有利的。本文所述的示例实施例不意味着限制性的。将容易地理解,本公开的方面(如本文一般性地解释的,且在附图中图示的)可以以各种各样的不同的配置来布置、替换、组合、分离和设计,所有这些都可在本文中明确地设想。
I.概览
根据本文描述的各种实施例,尤其是用于机器人云计算的方法和***。在这些示例中,基于云的计算通常是指联网的计算机架构,其中应用程序执行和存储可以在一定程度上在客户端和服务器装置之间划分。机器人可以是具有计算能力并且利用致动能力(例如,机电能力)与其周围环境进行交互的任何装置。客户端装置可以配置为包括模块形式的各种传感器和装置的机器人,且根据需要,可以从机器人添加或移除不同的模块。在一些示例中,机器人可以配置为接收第二装置,例如,移动电话,其可以配置为用作机器人的附件或“大脑”。
在本文所述的示例中,机器人可以与云交互,以执行任何数量的动作,例如,与其他云计算装置共享信息。在示例中,机器人可以与云交互,以便于对象识别、执行地图功能、或执行导航功能(即,接收由另一机器人之前经过的地图/导航路径)。在其他示例中,机器人可以与云交互,以执行对象在区域中的映射、执行对象的清单、以及通过机器人和/或通过机器人的控制来执行语音识别。机器人可以基于情景或情境信息来对云执行本文所述的任何动作或查询。
在一些示例中,不需要将机器人的知识库存储在机器人上,一些实施例使得机器人能够在外部位置(例如,在服务器和/或其他计算装置上)存储和访问数据。外部位置可以从一个或多个机器人接收数据和/或请求。服务器可以存储来自一个或多个机器人的接收数据,和/或将所有的或部分的存储的数据分发给一个或多个机器人,从而在机器人之间创建共同的知识库,机器人可以在此处获得指令和/或数据。
在一些实施例中,机器人可以具有与对象和/或机器人在其中操作的区域相关的信息。区域可以与地图、位置等相关联。机器人可以向服务器发送与区域相关的信息,服务器可以包括对象识别***,以识别与来自机器人的信息相关联的对象。
机器人和/或服务器可以使用情景分析来确定和识别对象。例如,如果机器人在办公室中,则机器人可以访问对象的“办公室”数据库以执行识别。作为另一示例,机器人可以利用情境感知来操作,使得机器人可以对场景中的对象列清单,且如果给出用户的命令,则机器人可以基于场景的情况或通过比较场景中的对象来确定内容或解释命令的含义。例如,机器人可以接收从冰箱取回苏打水的命令。例如,机器人可以将命令作为输入发送到服务器,或可以可选地使用机器人的区域的数据库来识别冰箱和苏打水。可选地,机器人可以将命令发送到服务器,服务器可以识别冰箱和苏打水。在实施例中,机器人和/或服务器可以使用情景以及情境数据来识别对象。此外,举例来说,一旦对象被识别,则服务器可以确定与命令相关联的交互,并识别机器人可以运行以执行交互的一个或多个计算机可执行指令。
II.用于机器人—云交互的示例架构
现在参考附图,图1是用于基于云的计算的示例***100。基于云的计算通常是指联网的计算机架构,其中应用程序执行和存储可以在一定程度上在客户端和服务器装置之间划分。“云”可以指例如由客户端和服务器装置在网络(例如,互联网)上可访问的服务或一组服务。
在一个示例中,连接到云的计算机可以连接到计算能力、应用和文件的池。因此,云计算使得可配置的计算资源(例如,网络、服务器、存储、应用和服务)的共享池成为可能,其能够以最小的管理努力或服务提供商交互来供应和发布。用户可以在远程服务器上存储和访问个人文件(例如,音乐、图片、视频和书签),或者玩游戏或使用生产力应用,而不是物理地携带存储介质。
作为示例,与主要基于客户端或基于服务器的应用相反,基于云的应用可以将数据和/或可运行程序逻辑的副本存储在远程服务器装置处,同时允许客户端装置根据需要下载该数据和程序逻辑中的至少一些,以在客户端装置处运行。在一些示例中,下载的数据和程序逻辑可以被定制为访问基于云的应用的特定客户端装置(例如,个人计算机、平板电脑、或移动电话、或机器人)的能力。此外,在客户端和服务器装置之间划分应用运行和存储,这允许由服务器装置执行更多的处理,从而利用例如服务器装置的处理能力和性能。
基于云的计算还可以指分布式计算架构,其中用于基于云的应用的数据和程序逻辑在近似实时的基础上在一个或多个客户端装置和/或服务器装置之间共享。该数据和程序逻辑的部分可以根据需要或以其他方式被动态地传送到访问基于云的应用的各种客户端。架构的细节对客户端装置的用户可以是透明的。因此,举例来说,访问基于云的应用的PC用户或机器人客户端装置可能不知道PC或机器人从服务器装置下载程序逻辑和/或数据,或者PC或机器人将处理或存储功能卸载到服务器装置。
在图1中,云102包括云服务104、云平台106、云基础结构108、以及数据库110。云102可以包括更多或更少的部件,且云服务104、云平台106、云基础结构108和数据库110中的每一个也可以包括多个元件。因此,***100的一个或多个所述功能可以被划分为附加的功能部件或物理部件,或者组合成更少的功能部件或物理部件。在另一些示例中,附加的功能部件和/或物理部件可以被添加到图1所示的示例。云计算的传送可以涉及通过应用编程接口(例如,WEB服务或三层架构)彼此通信的多个云部件。
云102可以代表联网的计算机架构,且在一个示例中,云服务104代表用于处理来自客户端装置的请求的队列。云平台106可以包括云的前端,且可以联接到云服务104,以执行与客户端装置交互的功能。云平台106可以包括用于经由用户接口(诸如,WEB浏览器)来访问云102的应用。云基础结构108可以包括云102的计费部件的服务应用,且从而可以与云服务104交互。数据库110可以代表云102的存储能力,且从而可以由云服务104、云平台106、和/或云基础结构108中的任何一个访问。
***100包括多个客户端装置,其联接到云102的部件,或者配置为能够与云102的部件通信。例如,计算机112、移动装置114、主机116和机器人客户端118被示出为联接到云102。当然,更多或更少的客户端装置可以联接到云102。此外,不同类型的客户端装置可以联接到云102。例如,任一个客户端装置通常可以包括显示***、存储器和处理器。
计算机112可以是任何类型的计算装置(例如,PC、笔记本电脑,等等),且移动装置114可以是任何类型的移动计算装置(例如,笔记本电脑、移动电话、蜂窝电话,等等)。
主机116可以是具有发送器/接收器的任何类型的计算装置,包括笔记本电脑、移动电话,等等,其配置为向云102发送数据/从云102接收数据。
机器人客户端118可以包括具有到云102的连接能力并且具有致动能力(例如,机电能力)的任何计算装置。机器人还可以是计算装置的组合。在一些示例中,机器人118可以收集数据并将数据上传到云102。云102可以配置为对数据进行计算或分析,并将处理的数据返回到机器人客户端118。在一些示例中,如图1所示,云102可以包括不与机器人客户端118同地协作的计算机。在其他示例中,机器人客户端118可以向第二客户端(例如,计算机112)发送数据,以进行处理。
客户端装置中的任一个可以包括附加的部件。例如,机器人客户端118可以包括一个或多个传感器,例如,陀螺仪或加速度计,以测量机器人客户端118的移动。其他传感器还可以例如包括全球定位***(GPS)接收器、红外传感器、声纳、光传感器、生物传感器、射频识别(RFID)***、近场通信(NFC)芯片、无线传感器、和/或罗盘中的任一个、以及其他。
此外,任一个客户端装置可以包括集成的用户接口(UI),其允许用户与装置交互。例如,机器人客户端118可以包括允许用户提供输入的各种按钮和/或触摸屏界面。作为另一示例,机器人客户端装置118可以包括麦克风,其配置为从用户接收语音命令。另外,机器人客户端118可以包括一个或多个接口,其允许各种类型的用户接口连接到机器人客户端118。
在图1中,客户端装置和云102之间的通信链路可以包括有线连接,例如,串行或并行总线。通信链路也可以是无线链路,例如,链路120,其可以是蓝牙、IEEE 802.11(IEEE802.11可以指IEEE 802.11-2007、IEEE 802.11n-2009,或任何其他IEEE 802.11版本)、或者其他基于无线的通信链路。
在其他示例中,***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、存储器(memory)或存储体(storage)204、以及传感器206。例如,机器人控制器(例如,处理器202、计算***、以及传感器206)全部为特定的机器人定制设计。机器人可以具有链路,通过该链路可以访问云服务器(如图1)。有线链路可以例如包括并行总线、或诸如通用串行总线(USB)的串行总线。无线链路可以例如包括蓝牙、IEEE 802.11、蜂窝(例如,GSM、CDMA、UMTS、EV-DO、WiMAX或LTE)、或无线个域网(Zigbee)、以及其他可能性。
在一个示例中,存储体204可以用于编译来自机器人的各种传感器206的数据,并存储程序指令。处理器202可以联接到存储体204,且可以配置为基于程序指令来控制机器人。处理器202还能够解译来自机器人上的各种传感器206的数据。示例的传感器可以包括烟雾传感器、光传感器、无线电传感器、红外传感器、麦克风、扬声器、陀螺仪、加速度计、相机、雷达,电容传感器和触摸传感器,等等。
客户端装置200还可以具有允许客户端装置200与其环境进行交互的部件或装置。例如,客户端装置200可以具有机械致动器208,例如,电机、轮、可移动臂等等,其使得客户端装置200能够移动或与环境交互。
在一些示例中,客户端装置200上的各种传感器和装置可以是模块。根据需要,可以从客户端装置200添加或移除不同的模块。例如,在低功率情况下,机器人可具有较少的模块以减少功率使用。然而,可以根据需要添加额外的传感器。例如,为了增加机器人能够收集的数据量,可添加额外的传感器。
在一些示例中,客户端装置200可以配置为接收装置,例如,装置210,其包括处理器202、存储体204和传感器206。例如,客户端装置200可以是具有多个机械致动器(例如,可移动基部)的机器人,且机器人可以配置为接收移动电话、智能电话、平板计算机,等等,以作为机器人的“大脑”或控制部件。装置210可以视为机器人的模块。装置210可以物理地附接至机器人。例如,智能电话可以坐在机器人的“胸部”上,并形成交互式显示。装置210可以例如向机器人提供传感器、无线链路和处理能力。装置210可以允许用户从云为他或她的机器人下载新例程。例如,衣物折叠例程可以存储在云上,并且用户能够使用智能电话从云下载例程来选择该例程,并且当智能电话被放置或联接到机器人时,机器人将能够执行下载的动作。
在一些示例中,客户端装置200可以联接至移动电话或蜂窝电话,以提供附加的感测能力。蜂窝电话可以非物理地附接到机器人,而是可以无线地联接到机器人。例如,低成本的机器人可以省略到互联网的直接连接。该机器人能够经由无线技术(例如,蓝牙)连接到用户的蜂窝电话,以能够访问互连网。机器人能够访问蜂窝电话的各种传感器和通信装置。机器人可以不需要许多传感器以物理地设置在机器人上,然而,机器人能够保持相同或类似的功能。
因此,客户端装置200可以包括机械机器人特征,且可以配置为接收装置210(例如,移动电话、智能电话、平板电脑,等等),其可以向装置200提供附加的***部件,例如,包括在装置210内的加速度计、陀螺仪、罗盘、GPS、相机、WiFi连接、触摸屏等中的任何一个。
图2B图示了机器人212的图例。在图2B中,机器人212被示出为包括臂部、腿部和头部的人的机械形式。机器人212可以配置为接收任何数量的模块或部件,例如,移动电话,其可以配置为操作机器人。在该示例中,装置(例如,机器人212)可以附接到移动电话(例如,装置210),以向机械机器人212提供功能,所述功能使得机器人212能够与云通信,以引起机器人212的操作/功能。具有到互连网的连接的其他类型的设备可以联接到机器人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的机器人发平台ESRP、以及MRDS(/>Robotics Developer Studio),且其它示例还可以包括ROSJAVA。机器人操作***可以包括发布和订阅功能,且还可以包括控制机器人部件的功能,例如头部跟踪、基部移动(例如,速度控制、导航框架),等等。
图3图示了概念性机器人—云交互的示例。机器人(例如,图2A-2C中所描述和图示的)可以连接到电脑的网络(例如,云),且可以请求由云执行的数据或处理。在一个示例中,机器人可以包括多个传感器和机械致动器,其可以基本上提供机器人的电机控制。传感器的输出,例如,相机馈送、视觉传感器等可以提供给云,云可以处理输出以使机器人能够执行功能。云可以处理相机馈送,例如,以确定机器人的位置、执行对象识别、或指示机器人的导航路径。
图3一般性地示出了电机控制器,其中每个模块可以概念性地代表云上的计算机或节点,其使用电机控制器输入或来自机器人的数据执行处理。图3还一般性地示出了传感器,其中每个模块可以概念性地代表云上的计算机或节点,其使用传感器输入或来自机器人的数据执行处理。图3还一般性地示出了应用,其中每个模块可以概念性地代表云上的计算机或节点,其执行多个应用的特定功能,例如,导航应用、地图应用,等等。此外,图3还一般性地示出了计划,其中每个模块可以概念性地代表云上的计算机或节点,其执行用于机器人的处理,例如,一般计划或计算处理。
如图所示,任何模块可以互连和/或可以通信,以从彼此接收数据或指令,从而为机器人提供特定的输出或功能。
在一个示例中,机器人可以将数据发送到云以进行数据处理,且在另一示例中,机器人可以从云接收数据。从云接收的数据可以是多种不同的形式。接收的数据可以是机器人发送到云的数据的处理的形式。接收的数据还可以来自机器人以外的源。例如,云可以访问其他传感器、其他机器人和互联网。
图4是示例***400,其中机器人可以与云交互,或与其他云计算装置共享信息。***400示出了机器人402、404、406和408(例如,如概念性图形表示),其每一个联接到云410。每个机器人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可能没有的新信息(例如,如果机器人408没有温度传感器,则机器人402可以记录并添加温度数据到地图)。总的来说,机器人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可以与描述对象的任何特性或信息相关联。因此,机器人可以配置为访问数据库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涉及从具有一个或多个传感器的第一机器人***接收查询,其中查询包括从一个或多个传感器获得的传感器数据、对执行任务的指令的请求、以及与第一机器人***的配置相关联的信息。
在示例实施例中,第一机器人***(也可以称为机器人装置)可以从机上传感器以及其他装置获取数据,例如,相机(例如,彩色相机、灰度相机和/或红外相机)、深度传感器(例如,RGB-D、激光、结构光,和/或飞行时间相机)、运动检测器(例如,惯性测量单元(IMU),和/或脚踏或轮里程计)、以及范围传感器(例如,超声波和/或红外),以及其他可能性。获取的数据可以由机上CPU处理以精炼数据,并随后将数据聚合并压缩(例如,使用增量压缩)成用于发送到基于云的服务的查询(例如,数据分组)的布置。一旦被接收,数据分组的解释可以分布在一个或多个处理器之中。然后,一个或多个处理器可以并行工作,以解释由传感器检测的数据(例如,相机、深度、和/或范围数据),并响应地将检测结果发送到中央服务器。
中央服务器可以聚合从一个或多个处理器接收的检测结果,并且将结果针对包括对象、人、声音和图像、以及其他可能性的元数据的信息的数据库(例如,数据库110)进行匹配。针对信息的数据库的匹配结果可以涉及贝叶斯概率技术,使得中央处理器可以例如向可能的对象/人分配置信度值,从而产生第一机器人***可能在环境中与之交互的可能对象/人的分类的排序列表。分类的排序列表可以包括与可能的对象/人相关联的元数据(例如,对象的几何模型、与对象相关联的历史数据、对象的材料属性)。这样的配置可以允许第一机器人***针对位于云服务器上的信息的数据库交叉引用来自环境的检测。
除了从机上传感器获得的数据以外,查询还可以包括对来自基于云的服务的指令的请求,其可以允许第一机器人***基本上习得如何与环境交互(即,通过执行特定的任务)。对执行任务的指令的请求可以包括:对于对象的3D模型的请求、对于对象抓取策略的请求、对于操作手册的请求、对获得的图像的光学字符识别(OCR)的请求、以及对礼仪提示的请求、以及其他示例。
此外,查询还可以包括机器人专用数据,其可以是专用于做出请求的机器人***(即,第一机器人***)的配置的信息。与第一机器人***的配置相关联的这种信息可以包括与以下相关的信息:机上传感器、机上处理器、机上电力***、控制***和末端执行器,以及其他。例如,末端执行器可以是夹具或工具。在夹具的情况下,末端执行器信息可以包括夹具的类型(例如,两指夹具)、夹具的型号、和/或夹具在机器人***中的位置,以及其他可能性。在工具的情况下,末端执行器信息可以包括工具的类型和/或工具的用途(例如,外科手术),以及其他可能性。其他示例也是可能的。
如图框504所示,方法500涉及识别存储的数据,其包括由第二机器人***之前使用的以执行任务或类似的任务的程序、以及与第二机器人***的配置相关联的信息。
如上所述,多个机器人***(例如,机器人402、404、406和408)可以彼此共享经验,以允许学习的行为。按照这种方式,一旦基于云的服务具有对执行任务的指令的解释的请求,基于云的服务可以识别之前由第二机器人***使用以执行任务(或类似的任务)的程序。此外,基于云的服务可以识别与第二机器人***的配置相关联的信息。
在一种情况下,第一机器人***和第二机器人***可以相同的(例如,相同的机器人配置)。在另一种情况下,第一机器人***和第二机器人***可以是不同的。例如,机器人***可以在以下方面不同:所使用的末端执行器的数量、所使用的末端执行器的类型、和/或末端执行器在机器人***配置中的位置,以及其他可能性。其他示例也是可能的。
考虑这样一种场景,其中对指令的请求涉及请求指令以抓取第一机器人***之前没有遇到的对象。基于云的服务可以首先确定对象是什么(例如,使用匹配技术)并获得对象的几何模型、与对象相关联的历史数据、和/或对象的材料属性、以及其他。一旦确定了对象,基于云的服务可以识别存储在数据库110中的由其他机器人***使用的一个或多个程序,以抓取所讨论的对象。
在一种情况下,基于云的服务可以首先基于机器人***配置;的尝试识别一个或多个程序。特别地,基于云的服务可以识别具有与第一机器人***相同的(或类似的)配置的其他机器人***,并随后确定是否有任何被识别的机器人***之前已经抓取了所讨论的对象。如果基于云的服务识别了之前已经抓取了所讨论的对象的机器人***,则基于云的服务可以基于一些因素来对用于抓取对象的程序进行分类,例如,成功率和效率、以及其他。
在另一种情况下,基于云的服务可以首先尝试识别一个或多个程序,而无论机器人***配置。例如,基于云的服务可以识别存储在数据库110中的用于抓取所讨论的对象的任何程序。随后,基于云的服务可以在执行识别的程序的机器人***之中识别具有与第一机器人***的配置相同的(或相似的)配置的机器人***。请注意,其他因素和序列也可以用于识别程序。
如图框506所示,方法500涉及至少部分地基于传感器数据、由第二机器人***使用以执行任务或相似的任务的程序、与第一机器人***的配置相关联的信息、以及与第二机器人***的配置相关联的信息,由一个或多个处理器生成用于第一机器人***执行任务的指令。
基于云的服务可以配置为进行大规模的仿真,以便生成由第一机器人***请求的指令。这些指令可以基于以下因素来生成:例如,从第一机器人***获得的传感器数据、由第二机器人***使用的识别的程序、第一机器人***和第二机器人***的配置、以及其他。请注意,指令可以生成为由第一机器人***可读取的格式。
仅为了解释的目的,再次考虑以下情景,其中对指令的请求涉及对抓取第一机器人***之前没有遇到的对象的指令的请求。基于云的服务可以基于各种因素来计算最佳的抓取策略。因素可以例如涉及,基于对象的材料性质的摩擦的不确定性、以及第一机器人***的末端执行器能力。因素还可以例如涉及,基于从机上传感器接收的对象位置数据以及机器人专用控制***数据的运动策略。其他因素也是可能的。
在一种情况下,所讨论的对象可以由基于云的服务被正确地识别(例如,在确定性的阈值内)。在这种情况下,如上文所述,基于云的服务可以识别存储在数据库110中的、由其他机器人***使用以抓取对象的一个或多个程序。可以基于例如包括成功率和效率的因素来选择程序中的一个,使得为第一机器人***提供成功抓取对象的最高可能性。
请注意,成功率可以由成功的尝试次数与总尝试次数的比率以及其他选项来定义。此外,请注意,效率可以基于成功完成任务的持续时间(即,更短的持续时间是更有效率的)以及其他选项来定义。
如果所选择的程序由具有与第一机器人***的配置相同的机器人***(即,第二机器人***)来执行,则基于云的服务可以仅基于所选择的程序来执行指令。即是说,生成的指令可以提供完全相同的程序,这是因为机器人***配置是相同的。然而,如果所选择的程序由具有与第一机器人***的配置不同的机器人***(即,第二机器人***)来执行,则基于云的服务可以评估配置之间的差异,并且在生成指令时将差异纳入考虑。
在一个示例中,第一机器人***可以配备有包括钻头和三指夹具的两个末端执行器。与之相反,第二机器人***可以具有与第一机器人***相同的配置,除了配备有包括两个三指夹具的两个末端执行器。如果第二机器人***使用其两个末端执行器来抓取对象,则基于云的服务可以生成指令,以使第一机器人***使用第二机器人***所使用的类似的程序来抓取对象,同时将末端执行器之间的差异纳入考虑。特别地,基于云的服务可以进行模拟,以确定第一机器人***可以如何使用单个三指夹具,而不是两个这样的夹具以抓取到所讨论的对象上。这样的仿真的结果可以例如确定,第一机器人***可以使用与第二机器人***所使用的完全相同的程序(例如,相同的运动策略),同时确定在使用三指夹具而不是两指夹具时,抓取对象所需要的不同的力。
通常,抓取对象所需要的力(F)可以使用若干因素来确定,例如:对象和手指之间的摩擦系数(μ)、夹具接触对象的指的数量(n)、对象的重量(W)、以及取决于对象相对于重力的移动方向的重力倍数因子(g)。特别地,可以通过将物体的重量(W)和重力倍数因子(g)的乘积除以摩擦系数(μ)和指的数量(n)的乘积来计算抓取对象所需的力(F)。即,F=[W*g]/[μ*n]。
因此,基于云的服务可以确定第一机器人***遇到的情况涉及相同的摩擦系数(μ)、相同的物体重量(W)和相同的重力倍数因子(g)。然而,使用单个三指夹具而不是两个三指夹具导致接触对象的指的不同数量(n)。给定这个信息,基于云的服务可以使用计算公式来计算,当三个指接触对象而不是六个指时,抓取对象(F)所需的力。在这种情况下,当接触对象的指的数量(n)被减半时,抓取对象(F)所需的力加倍。结果,然后,基于云的服务可以基于由第二机器人***使用的程序来生成指令,同时在末端执行器能力方面的给定差异的情况下,将抓取对象所需的力纳入考虑。
在另一示例中,机器人***的配置之间的差异可以涉及机器人***所配备的传感器的类型(或数量)的差异。例如,第一机器人***可以配置有灰度相机。与之相反,第二机器人可以配备有彩色相机。在这种情况下,第一机器人***获得的传感器数据(例如,所讨论的对象的图像数据)可以包括灰度图像数据,并且第一机器人***可以配置为仅解释灰度图像数据。
基于云的服务可以确定相机类型的差异,且可以基于差异生产指令。特别地,基于云的服务可以确定,包括由第二机器人***之前使用的程序的存储的数据包括彩色图像数据(例如,与由第二机器人***获得的对象相关联的彩色图像数据)。当确定存储的数据包括含这样的彩色图像数据时,基于云的服务可以使用各种技术(目前已知的或未来开发的),将彩色图像数据转换为灰度图像,使得生成的指令可由第一机器人***读取、并且适当地执行。
在另一种情况下,第一机器人***可以配置由红外距离传感器。与之相反,第二机器人***可以配备有超声波距离传感器。在这种情况下,从第一机器人***获得的传感器数据(例如,所讨论的对象的接近度)可以包括反射的红外光数据,且第一机器人***可以配置为仅解释这样的红外光数据。
基于云的服务可以确定范围传感器类型的差异,并且可以基于差异生成指令。特别地,基于云的服务可以确定,包括由第二机器人***之前使用的程序的存储的数据包括超声声音数据(例如,表示在执行程序时,对象和第二机器人***之间的(多个)距离)。当确定存储的数据包括这样的超声声音数据时,基于云的服务可以将超声声音数据转换为范围数据(例如,特定距离),然后进一步将范围数据转换为相对应的红外光数据。按照这种方式,生成的指令可由第一机器人***读取、并且适当地执行。
在另一个示例中,机器人***的配置之间的差异可能涉及机器人***的移动能力的差异。例如,第一机器人***可以配备有第一长度的机器人腿部链带(links)。与之相反,第二机器人***可以配置由第二长度(例如,两倍于第一长度)的机器人腿部链带。在这种情况下,由于长度的差异,第一机器人***可以需要比第二机器人***采取更多的步骤,以覆盖相同的距离。
基于云的服务可以确定机器人腿部链带的长度的差异,并且可以基于差异生成指令。特别地,基于云的服务可以确定,包括由第二机器人***之前使用的程序的存储的数据包括例如代表由机器人***所采取的重新定位对象的六个步骤。当确定存储的数据包括这样的数据时,在给定第二长度是第一长度的两倍的信息的情况下,基于云的服务可以将第二机器人***采取的步骤的数量转换为第一机器人***需要采取的步骤的数量(例如,十二个步骤)以覆盖相同距离。按照这种方式,生成的指令可由第一机器人***读取、并且适当地执行。其他示例也是可能的。
在一些情况下,基于云的服务可能无法在确定性的阈值内正确地识别出所讨论的对象。在这种情况下,基于云的服务可以基于对象的几何模型和/或对象的材料属性的相似性、以及其他可能性来识别类似的对象。一旦已经识别了类似的对象,可以应用上述技术,同时将识别的类似的对象和所讨论的对象之间的差异纳入考虑(例如,对象(W)的重量的差异和/或摩擦系数(μ)的差异)。
请注意,上述技术不限于对象抓取策略,并且可以在对来自机器人***的指令的任何请求的情景中使用。此外,请注意,基于云的服务可以使用识别的程序的任何组合(即,而不是单个的识别的程序)来生成指令。
如图框508所示,方法500涉及基于生成的指令来运行仿真。
一旦已经生成执行任务的指令,基于云的服务可以向第一机器人***发送生成的指令。此外,基于云的服务可以向第一机器人***发送指令,包括使用生成的指令执行机上仿真的请求。特别地,基于云的服务可以请求在第一机器人***执行任务之前运行机上仿真。按照这种方式,在验证生成的指令是适当的之前,第一机器人***将不会执行任务。
请注意,生成的指令和命令可以同时发送,或者可以单独发送。此外,请注意,基于云的服务也可以发送对机上仿真的结果的请求。
机上仿真可以由位于第一机器人***上的机上计算装置(例如,处理器202)运行。在示例实施方式中,机上仿真可以全部或部分地涉及生成的指令的仿真。例如,第一机器人***可以运行机上仿真以确定(或预测)使用计算的抓取对象所需的力(F)的结果,以便抓取所讨论的对象。当完成机上仿真时,可以将机上仿真的结果生成为可由基于云的服务读取的格式。
在一些实施方式中,基于云的服务可以不向第一机器人***发送包括使用生成的指令执行机上仿真的请求的命令。在这种情况下,基于云的服务可以进行这样的仿真(即,在第一机器人***执行任务之前),以便验证生成的指令是适当的。当确定仿真的结果(且可选地使用下面讨论的置信度量确定)时,基于云的服务可以向第一机器人***发送指令以执行任务。其他实施方式也是可能的。
如图框510所示,方法500涉及获得仿真的结果,并且基于结果响应地确定置信度量,所述置信度量与生成的指令允许成功执行任务的度量相关。
当接收机上仿真的结果时,基于云的服务可以确定置信度量,所述置信度量与生成的指令允许成功执行所讨论的任务的可能性的度量相关。例如,基于云的服务可以确定与成功抓取对象相关联的置信度量。可以考虑各种因素以确定置信度量。
在一个示例中,可以基于仿真结果与预期的仿真结果的比较来确定置信度量。例如,基于云的服务可以进行仿真,以确定预期的结果,并评估预期的结果和机上仿真的实际结果之间的差异(例如,比较仿真的效率和预期的效率)。在另一示例中,可以基于仿真结果与存储在数据库110中的由其他机器人***用于执行任务或类似的任务的程序相关联的仿真结果的比较来确定置信度量(例如,比较仿真效率和程序的平均效率)。在又一示例中,可以由作为机上仿真的一部分的第一机器人***(即,不是基于云的服务)来确定置信度量。其他示例也是可能的。
请注意,置信度量可以是评级(例如,在1-10之间,其中10指示高置信度量,1指示低置信度量),或指示符(例如,代表“高置信度”、“平均置信度”、或“低置信度”的指示符),以及其他可能性。
由图框512所示,方法500涉及,基于置信度量低于阈值,由一个或多个处理器来生成由第一机器人***执行任务的更新的指令。
如果基于云的服务确定置信度量低于阈值度量,则基于云的服务可以生成更新的指令以执行任务。替代地,基于云的服务可以更新之前生成的指令。阈值度量可以是预定的,或可以基于例如存储在数据库110中的历史置信度度量连续地更新,以及其他可能性。
生成更新的指令可以涉及由基于云的服务的仿真(例如,从用于机器人命令的一组存储的指令中选择,和/或调整用于指令集的控制环路参数),其可能导致更高的置信度量。例如,返回参考对指令的请求涉及对抓取对象的指令的请求的场景,机上仿真的结果可以指示计算的抓取对象所需的力(F)不足以适当地抓取对象。特别地,机上仿真的结果可以指示第一机器人***使用计算的力抓取到对象上可能导致对象滑离第一机器人***的末端执行器并且落地。因此,基于云的服务可以生成更新的指令,其指示第一机器人***应该使用更大的力来抓取物体。
作为一个示例,在图框512生成指令可以包括改变一组存储的指令和/或合成新的指令。例如,运动或控制策略的存储库可以包括指令和/或参数化的指令模板。在图框512,可以选择那些指令并且改变参数,和/或可以选择模板并设定参数,其中仿真结果用于比较选择和调整参数。用于新运动的指令可以通过组合来自库的多组指令(或模板)并模拟以评估适合性和总体鲁棒性(robust)来合成。也可以以任何其它合适的方式生成指令。
随后,基于云的服务可以将生成的更新的指令发送到第一机器人***。此外,基于云的服务还可以基于生成的更新的指令发送另一个命令来执行另一个机上仿真。这样的迭代程序可以由图6的流程图600示出。请注意,在不脱离本文所公开的本发明的范围的情况下,可以去除流程图600的一些步骤,并且可以添加其他步骤。此外,请注意,流程图600的各个步骤可以以任何顺序执行,并且可以以任何方式实现为方法500的一部分。特别地,流程图600的步骤602-610示出了由基于云的服务进行的迭代程序以产生更新的指令,直到置信度量高于阈值度量。这样的迭代程序可以全部或部分地采取上面结合方法500的图框508-512讨论的重复程序的形式。
流程图600的步骤602涉及基于云的服务确定置信度量。可以如上面结合方法500的图框510所讨论的那样来执行置位度量的确定,或者可以以任何其他方式来执行。
流程图600的步骤604涉及,当确定置信度量时,基于云的服务确定置信度量是否高于阈值度量。可以如上面结合方法500的图框512所讨论的那样来执行置信度量是否高于阈值度量的确定,或者可以以任何其它方式来执行。
流程图600的步骤606涉及,当确定置信度量低于阈值度量时,基于云的服务更新之前生成的指令(或生成更新的指令)。可以如上面结合方法500的图框512所讨论的那样来执行更新的指令的生成,或者可以以任何其它方式来执行。另外,请注意,可以如上面结合方法500的图框506所讨论的那样使用任何用于生成指令的技术来执行步骤606。
流程图600的步骤608涉及,当更新生成的指令时,基于云的服务将以下发送到机器人***(即,第一机器人***):(i)更新的生成的指令,以及(ii)运行另一机上仿真的命令。此外,基于云的服务还可以发送对后续的机上仿真的结果的请求。可以如上面结合方法500的图框508所讨论的那样来执行发送这样的信息,或者可以以任何其它方式来执行。
流程图600的步骤610涉及基于云的服务接收随后的机上仿真的结果。可以如上面结合方法500的图框510所讨论的那样来执行接收随后的机上仿真的结果,或者可以以任何其它方式来执行。当接收结果时,基于云的服务可以再次执行流程图600的步骤602,以基于随后的机上仿真的结果确定置信度量。一旦确定了置信度量,基于云的服务可以再次执行流程图600的步骤604,以确定置信度量是否高于阈值度量。如果置信度量低于阈值度量,基于云的服务可以再次重复流程图600的步骤606-610。
涉及步骤602-610的这种迭代程序可以重复,直到置信度量高于阈值度量。替代地,基于云的服务可以进行有限次数的迭代(例如,三次迭代)。当完成有限次数的迭代时,基于云的服务向机器人***发送消息。这样的消息可以包括这样的指示,即基于云的服务不能生成允许成功执行任务的更高可能性的指令。在这种情况下,不管如何,机器人***可以被指导使用生成的指令(假定所生成的指令不会导致意外的结果)。附加地或替代地,基于云的服务可以向机器人***发送对附加的信息(例如,附加的传感器数据)的请求,需要所述附加的信息以生成可能导致置信度量高于阈值度量的指令。当接收这样的附加的信息时,基于云的服务全部或部分地进行为重复方法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中来记住它。在一个示例中,第一人可以将机器人***“介绍”给新人。响应地,机器人***可以向基于云的服务发送关于新人的信息(例如,面部图像、手势、行走习惯、身形信息、语音),从而创建与新人相关联的新记录。在另一示例中,人可以指向环境中的新对象,并且机器人***可以将关于新对象的信息发送到基于云的服务,从而创建与新对象相关联的新记录。
存储在基于云的服务的数据库中的任何信息可以在未来由机器人***(或其他机器人***)访问,以辅助机器人***与人和对象的交互。示例情况可能涉及与老年人交互的机器人***(例如,人形机器人)。老年人可以向人形机器人展现相册,并且可以同时描述与相册相关联的记忆。人形机器人可以将与交互相关联的信息存储在数据库中,并在之后访问该信息,例如,在未来的交互期间(例如,与和该老年人相关的另一个人)。换言之,机器人***可以使用存储在云中的信息,使之前存储的信息与当前的环境交互相关联。
人—机交互的另一个示例情况可能涉及,人向机器人***询问问题,机器人***可以响应地从基于云的服务请求信息,并提供问题的答案。其他示例也是可能的。
IV.结论
本公开不限于本申请中所述的特定实施例的方面,其旨在作为各个方面的说明。在不脱离其精神和范围的情况下,可以进行许多修改和变化,这对于本领域技术人员是显而易见的。根据前面的描述,除了本文列举的那些之外,在本公开的范围内的功能等同的方法和装置对于本领域技术人员将是显而易见的。这样的修改和变化旨在落入所附权利要求的范围内。
以上详细的描述参考附图描述了所公开的***、装置和方法的各种特征和功能。在附图中,类似的附图标记通常标识相似的部件,除非上下文另有规定。本文所述和附图中的示例实施例不意味着限制性的。在不脱离本文提出的主题的精神或范围的情况下,可以利用其他实施例,并且可以进行其他改变。将容易地理解,如本文一般性描述和在附图中图示出的,本公开的方面可以以各种各样的不同配置来布、替换、组合、分离和设计,所有这些都被可以在本文明确地设想。
附图中所示的特定布置不应被视为限制性的。应当理解,其他实施例可以包括给定附图中示出的更多或更少的各个元件。另外,图示的元件中的一些可以组合或省略。另外,示例实施例可以包括在附图中未图示的元件。
虽然本文已经公开了各种方面和实施例,但是其他方面和实施例对于本领域技术人员将是显而易见的。本文公开的各种方面和实施例是为了说明的目的,而不意在限制,真正的范围由所附权利要求来指示。

Claims (20)

1.一种用于控制机器人的方法,包括:
由来自第一机器人***的一个或多个处理器接收对执行任务的指令的请求;
至少部分地基于先前由第二机器人***使用以执行所述任务或类似任务的程序,由所述一个或多个处理器生成用于第一机器人***执行所述任务的指令,其中,所述指令基于(i)第一机器人***和第二机器人***之间的差异或(ii)任务和类似任务之间的差异中的一个或多个,使第二机器人***先前使用的程序适应于第一机器人***;
由一个或多个处理器执行由第一机器人***执行指令的仿真;
由所述一个或多个处理器基于所述仿真确定指示所述指令是否允许由第一机器人***成功执行所述任务的置信度量;
响应于置信度量指示指令不允许所述任务的成功执行:(i)由一个或多个处理器基于仿真来修改指令,(ii)由一个或多个处理器执行经修改的指令的执行的更新仿真,以及(iii)由一个或多个处理器基于更新仿真来更新所述置信度量;和
响应于置信度量指示经修改的指令允许成功执行所述任务,由所述一个或多个处理器使第一机器人***根据经修改的指令执行所述任务。
2.根据权利要求1所述的方法,其中,所述请求包括从第一机器人***的一个或多个传感器获得的传感器数据,并且其中,生成用于第一机器人***执行所述任务的所述指令还基于所述传感器数据。
3.根据权利要求1所述的方法,其中所述请求指示第一机器人***的配置,并且其中,生成用于第一机器人***执行所述任务的所述指令还基于第一机器人***的配置。
4.根据权利要求3所述的方法,其中,第二机器人***的配置与第一机器人***的配置相同。
5.根据权利要求3所述的方法,其中,第二机器人***的配置与第一机器人***的配置不同。
6.根据权利要求5所述的方法,其中第一机器人***的配置包括第一组末端执行器,其中第二机器人***的配置包括第二组末端执行器,其中第一组末端执行器与第二组末端执行器至少部分地不同,并且其中生成用于第一机器人***执行所述任务的所述指令还包括:
基于第一组末端执行器和第二组末端执行器确定第一机器人***和第二机器人***之间的差异,
其中,基于第一机器人***的配置生成指令包括至少部分地基于所确定的差异来生成指令。
7.根据权利要求5所述的方法,其中第一机器人***的配置包括第一组传感器,其中第二机器人***的配置包括第二组传感器,并且其中第一组传感器至少部分地与第二组传感器不同,并且其中生成用于第一机器人***执行所述任务的所述指令还包括:
基于第一组传感器和第二组传感器确定第一机器人***和第二机器人***之间的差异。
8.根据权利要求5所述的方法,其中第一机器人***的配置产生第一组移动能力,其中第二机器人***的配置产生第二组移动能力,其中第一组移动能力与第二组移动能力至少部分地不同,并且其中生成用于第一机器人***执行所述任务的所述指令还包括:
基于第一组运动能力和第二组运动能力确定第一机器人***和第二机器人***之间的差异。
9.根据权利要求1所述的方法,其中所述任务包括与对象的交互,并且其中对所述指令的请求包括以下中的一个或多个:用于识别所述对象的请求、对于所述对象的3D模型的请求、以及对于抓取所述对象的策略的请求。
10.根据权利要求1所述的方法,其中执行所述仿真包括:
在执行所述任务之前,向第一机器人***发送所述指令的至少一部分和执行所述仿真的至少一部分的命令;以及
从第一机器人***接收所述仿真的至少一部分的结果。
11.根据权利要求1所述的方法,还包括:
在第一机器人***根据经修改的指令执行所述任务之后,由所述一个或多个处理器从第一机器人***接收与所述任务的执行有关的报告。
12.根据权利要求11所述的方法,还包括:
确定接收到的报告指示所述任务的成功执行;以及
响应于确定接收到的报告指示所述任务的成功执行,由所述一个或多个处理器至少将经修改的指令存储在数据库中。
13.根据权利要求11所述的方法,还包括:
确定接收到的报告指示所述任务的成功执行;以及
响应于确定接收到的报告指示所述任务的成功执行,由所述一个或多个处理器向第一机器人***发送将经修改的指令存储在第一机器人***的存储器存储体中的指示。
14.根据权利要求11所述的方法,还包括:
确定接收到的报告指示所述任务的不成功执行;以及
响应于确定接收到的报告指示所述任务的不成功执行,由所述一个或多个处理器生成用于第一机器人***执行所述任务的更新的指令,
其中,生成更新的指令至少基于接收到的报告。
15.根据权利要求1所述的方法,其中确定所述置信度量包括:
获得不同于第一机器人***的至少一个机器人***执行任务或类似任务的一个或多个程序的性能的一个或多个先前仿真的第一结果;和
将(i)第一机器人***执行指令的仿真的第二结果与(ii)第一结果进行比较,以确定所述置信度量。
16.一种具有存储于其中的指令的非暂时性计算机可读介质,所述指令可由一个或多个处理器执行以使所述一个或多个处理器执行包括以下操作的功能:
从第一机器人***接收对执行任务的指令的请求;
至少部分地基于先前由第二机器人***使用以执行所述任务或类似任务的程序,生成用于第一机器人***执行所述任务的所述指令,其中,所述指令基于(i)第一机器人***和第二机器人***之间的差异或(ii)任务和类似任务之间的差异中的一个或多个,使第二机器人***先前使用的程序适应于第一机器人***;
执行由第一机器人***执行指令的仿真;
基于所述仿真确定指示所述指令是否允许由第一机器人***成功执行所述任务的置信度量;
响应于置信度量指示指令不允许所述任务的成功执行:(i)基于仿真来修改所述指令,(ii)执行经修改的指令的执行的更新仿真,以及(iii)基于更新仿真来更新所述置信度量;和
响应于置信度量指示经修改的指令允许成功执行所述任务,使第一机器人***根据经修改的指令执行所述任务。
17.根据权利要求16所述的非暂时性计算机可读介质,其中,所述请求指示第一机器人***的第一配置,其中第二机器人***具有与第一配置不同的第二配置,并且其中生成用于第一机器人***执行所述任务的所述指令还基于第一和第二配置。
18.根据权利要求16所述的非暂时性计算机可读介质,其中,确定所述置信度量包括:
获得不同于第一机器人***的至少一个机器人***执行任务或类似任务的一个或多个程序的性能的一个或多个先前仿真的第一结果;和
将(i)第一机器人***执行指令的仿真的第二结果与(ii)第一结果进行比较,以确定所述置信度量。
19.一种基于云的***,包括:
通信接口;以及
一个或多个服务器设备,被配置为:
经由所述通信接口从第一机器人***接收对执行任务的指令的请求;
至少部分地基于先前由第二机器人***使用以执行所述任务或类似任务的程序,生成用于第一机器人***执行所述任务的所述指令,其中,所述指令基于(i)第一机器人***和第二机器人***之间的差异或(ii)任务和类似任务之间的差异中的一个或多个,使第二机器人***先前使用的程序适应于第一机器人***;
执行由第一机器人***执行指令的仿真;
基于所述仿真确定指示所述指令是否允许由第一机器人***成功执行任务的置信度量;
响应于置信度量指示指令不允许所述任务的成功执行:(i)基于仿真来修改所述指令,(ii)执行经修改的指令的执行的更新仿真,以及(iii)基于更新仿真来更新所述置信度量;和
响应于置信度量指示经修改的指令允许成功执行所述任务,使第一机器人***根据经修改的指令执行所述任务。
20.根据权利要求19所述的基于云的***,其中,所述请求指示第一机器人***的第一配置,其中,第二机器人***具有与第一配置不同的第二配置,并且其中生成用于第一机器人***执行所述任务的指令还基于第一和第二配置。
CN201910422651.2A 2014-07-24 2015-07-23 生成用于机器人***的指令以执行任务的方法和*** Active CN110232433B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910422651.2A CN110232433B (zh) 2014-07-24 2015-07-23 生成用于机器人***的指令以执行任务的方法和***

Applications Claiming Priority (7)

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
CN201910422651.2A CN110232433B (zh) 2014-07-24 2015-07-23 生成用于机器人***的指令以执行任务的方法和***
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
CN201580036290.8A CN106796665B (zh) 2014-07-24 2015-07-23 生成用于机器人***的指令以执行任务的方法和***

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201580036290.8A Division CN106796665B (zh) 2014-07-24 2015-07-23 生成用于机器人***的指令以执行任务的方法和***

Publications (2)

Publication Number Publication Date
CN110232433A CN110232433A (zh) 2019-09-13
CN110232433B true CN110232433B (zh) 2023-08-01

Family

ID=53777019

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201580036290.8A Active CN106796665B (zh) 2014-07-24 2015-07-23 生成用于机器人***的指令以执行任务的方法和***
CN201910422651.2A Active CN110232433B (zh) 2014-07-24 2015-07-23 生成用于机器人***的指令以执行任务的方法和***

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201580036290.8A Active CN106796665B (zh) 2014-07-24 2015-07-23 生成用于机器人***的指令以执行任务的方法和***

Country Status (5)

Country Link
US (2) US9802309B2 (zh)
EP (1) EP3172017B1 (zh)
KR (2) KR101945772B1 (zh)
CN (2) CN106796665B (zh)
WO (1) WO2016014774A1 (zh)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9614963B2 (en) 2014-03-26 2017-04-04 Rockwell Automation Technologies, Inc. Cloud-based global alarm annunciation system for industrial systems
US10208947B2 (en) 2014-03-26 2019-02-19 Rockwell Automation Technologies, Inc. Cloud-level analytics for boiler networks
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
US9489655B1 (en) 2014-08-25 2016-11-08 Amazon Technologies, Inc. Distinguishing RFID tags using motion data
US9840007B1 (en) * 2014-08-25 2017-12-12 X Development Llc Robotic operation libraries
US10350757B2 (en) 2015-08-31 2019-07-16 Avaya Inc. Service robot assessment and operation
US10124491B2 (en) 2015-08-31 2018-11-13 Avaya Inc. Operational parameters
US10040201B2 (en) * 2015-08-31 2018-08-07 Avaya Inc. Service robot communication systems and system self-configuration
US10032137B2 (en) 2015-08-31 2018-07-24 Avaya Inc. Communication systems for multi-source robot control
CN111832702A (zh) * 2016-03-03 2020-10-27 谷歌有限责任公司 用于机器人抓取的深度机器学习方法和装置
US10805222B2 (en) * 2017-05-01 2020-10-13 General Electric Company Resilient network configuration for time sensitive traffic
US10814893B2 (en) 2016-03-21 2020-10-27 Ge Global Sourcing Llc Vehicle control system
US11072356B2 (en) 2016-06-30 2021-07-27 Transportation Ip Holdings, Llc Vehicle control system
CN105897509B (zh) * 2016-04-08 2020-04-07 上海工程技术大学 一种基于云计算的机器人软件运行及仿真***
US11338436B2 (en) 2016-07-18 2022-05-24 RightHand Robotics, Inc. Assessing robotic grasping
US10259117B2 (en) * 2016-08-02 2019-04-16 At&T Intellectual Property I, L.P. On-demand robot virtualization
CN110325327B (zh) * 2016-08-17 2022-08-16 西门子股份公司 用于分析物体的几何属性的***
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
WO2019035997A1 (en) * 2017-08-17 2019-02-21 Sri International ADVANCED CONTROL SYSTEM HAVING MULTIPLE CONTROL PARADIGMS
US10416660B2 (en) 2017-08-31 2019-09-17 Rockwell Automation Technologies, Inc. Discrete manufacturing hybrid cloud solution architecture
JP2019042856A (ja) * 2017-08-31 2019-03-22 川崎重工業株式会社 ロボット及びロボットの組立性確認方法
EP3691839A1 (en) * 2017-10-04 2020-08-12 Telefonaktiebolaget LM Ericsson (publ) Method and arrangement for determination of a trajectory for a robot 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
EP3808007A1 (en) * 2018-06-12 2021-04-21 Telefonaktiebolaget Lm Ericsson (Publ) Technique for robotic device control
US11597596B1 (en) * 2018-07-13 2023-03-07 Veena Technologies, Inc. System and method of providing an elevator system for mobile robots
DE112019004497T5 (de) * 2018-09-07 2021-07-22 Fanuc America Corporation Golden data für industrieroboter
CN109270520B (zh) * 2018-10-18 2020-05-19 四川九洲空管科技有限责任公司 基于幅度信息获取二次雷达应答目标身份代码的处理方法
WO2020077631A1 (zh) * 2018-10-19 2020-04-23 深圳配天智能技术研究院有限公司 控制机器人的方法、服务器、存储介质及云服务平台
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
US11163960B2 (en) * 2019-04-18 2021-11-02 International Business Machines Corporation Automatic semantic analysis and comparison of chatbot capabilities
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
WO2020249202A1 (en) * 2019-06-12 2020-12-17 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 深圳忆海原识科技有限公司 一种类脑决策与运动控制***
KR20220069078A (ko) * 2019-10-25 2022-05-26 덱스테러티, 인크. 로봇 시스템 시뮬레이션 엔진
CN111025981A (zh) * 2019-12-19 2020-04-17 华南理工大学 一种基于单片机的物联网掌上电子相册
CN111338670B (zh) * 2020-02-17 2022-11-22 达闼机器人股份有限公司 机器人的固件更新方法、装置、存储介质和机器人
CN111338820B (zh) * 2020-02-24 2024-04-05 京东科技信息技术有限公司 运行方法、客户端及存储介质
US11958198B2 (en) 2020-08-04 2024-04-16 Artificial, Inc. Predictive instruction text with virtual lab representation highlighting
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
KR20230015145A (ko) 2021-07-22 2023-01-31 엘지전자 주식회사 에지 서버 및 클라우드 서버를 포함하는 이종 로봇 시스템 및 그의 제어 방법
KR20230029333A (ko) * 2021-08-24 2023-03-03 주식회사 아이온커뮤니케이션즈 클라우드 로봇 제어 개발을 위한 시뮬레이션 시스템 및 그 방법
CN114536339B (zh) * 2022-03-03 2024-05-31 深圳市大族机器人有限公司 协作机器人的控制方法、装置、协作机器人和存储介质
WO2024008853A1 (en) * 2022-07-08 2024-01-11 Telecom Italia S.P.A. Method and system for enhancing robot capabilities
CN115755780A (zh) * 2022-08-30 2023-03-07 中国核动力研究设计院 一种核电dcs***设计中全局搜索方法、***及存储介质
CN117798914A (zh) * 2023-12-29 2024-04-02 深圳市小全科技文化有限公司 仿生表情机器人通信方法、装置、介质及计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060195598A1 (en) * 2003-03-28 2006-08-31 Masahiro Fujita Information providing device,method, and information providing system
US20070021868A1 (en) * 2005-07-25 2007-01-25 Fanuc Ltd. Method of evaluating and correcting robot program and device for evaluating and correcting robot program
US8380349B1 (en) * 2011-05-06 2013-02-19 Google Inc. Methods and systems for providing instructions to a robotic device
US20130085602A1 (en) * 2011-10-04 2013-04-04 Hei Tao Fung Office Robot System

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1304177C (zh) * 2001-10-22 2007-03-14 索尼公司 机器人装置及其控制方法
JP4621073B2 (ja) 2005-05-23 2011-01-26 本田技研工業株式会社 ロボット制御装置
JP4792823B2 (ja) * 2005-06-09 2011-10-12 ソニー株式会社 ネットワーク・システム、移動体装置及びその制御方法、並びにコンピュータ・プログラム
US8214079B2 (en) 2007-03-30 2012-07-03 Sungkyunkwan University Foundation For Corporate Collaboration Central information processing system and method for service robot having layered information structure according to recognition and reasoning level
US8433442B2 (en) 2008-01-28 2013-04-30 Seegrid Corporation Methods for repurposing temporal-spatial information collected by service robots
JP5469097B2 (ja) * 2008-02-13 2014-04-09 シーグリッド コーポレーション 分散型マルチロボット・システム
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
CN101973031B (zh) 2010-08-24 2013-07-24 中国科学院深圳先进技术研究院 云机器人***及实现方法
TW201227190A (en) 2010-12-28 2012-07-01 Hon Hai Prec Ind Co Ltd System and method for controlling robots via cloud computing
US8639644B1 (en) 2011-05-06 2014-01-28 Google Inc. Shared robot knowledge base for use with cloud computing system
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
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060195598A1 (en) * 2003-03-28 2006-08-31 Masahiro Fujita Information providing device,method, and information providing system
US20070021868A1 (en) * 2005-07-25 2007-01-25 Fanuc Ltd. Method of evaluating and correcting robot program and device for evaluating and correcting robot program
US8380349B1 (en) * 2011-05-06 2013-02-19 Google Inc. Methods and systems for providing instructions to a robotic device
US20130085602A1 (en) * 2011-10-04 2013-04-04 Hei Tao Fung Office Robot System

Also Published As

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

Similar Documents

Publication Publication Date Title
CN110232433B (zh) 生成用于机器人***的指令以执行任务的方法和***
KR102327825B1 (ko) 로봇 행동들에 대한 보정들의 결정 및 이용
JP6439817B2 (ja) 認識的アフォーダンスに基づくロボットから人間への物体ハンドオーバの適合
US10168690B2 (en) Methods and systems for multirobotic management
US10207407B1 (en) Robotic operation libraries
US8386079B1 (en) Systems and methods for determining semantic information associated with objects
US8452451B1 (en) Methods and systems for robotic command language
KR101994574B1 (ko) 로봇 시스템 컴포넌트 사용의 클라우드-기반 분석
US8374421B1 (en) Methods and systems for extracting still frames from a compressed video
JP6927938B2 (ja) クラウドサービスシステムを組み込んだロボットシステム
US8380652B1 (en) Methods and systems for autonomous robotic decision making
US8428777B1 (en) Methods and systems for distributing tasks among robotic devices
US8996429B1 (en) Methods and systems for robot personality development
US9399294B1 (en) Displaying estimated image data in a user interface
US10726335B2 (en) Generating compressed representation neural networks having high degree of accuracy
US8321221B2 (en) Speech communication system and method, and robot apparatus
US8525836B1 (en) Systems and methods for representing information associated with objects in an area
JP7380556B2 (ja) 情報処理装置、情報処理方法及びプログラム
JPWO2020153038A1 (ja) 情報処理装置、および情報処理方法
Sawyer Incorporating Novel Sensors for Reading Human Health State and Motion Intent Into Real-Time Computing Systems
WO2023168334A1 (en) Data retention in image-based localization at scale
Gatto Castro A Cloud based Reinforcement Learning Framework for humanoid grasping

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant