CN112088070A - 用于操作机器人系统并执行机器人交互的系统及方法 - Google Patents

用于操作机器人系统并执行机器人交互的系统及方法 Download PDF

Info

Publication number
CN112088070A
CN112088070A CN201880062340.3A CN201880062340A CN112088070A CN 112088070 A CN112088070 A CN 112088070A CN 201880062340 A CN201880062340 A CN 201880062340A CN 112088070 A CN112088070 A CN 112088070A
Authority
CN
China
Prior art keywords
robotic
manipulation
objects
target object
processors
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.)
Pending
Application number
CN201880062340.3A
Other languages
English (en)
Inventor
M.奥利尼克
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of CN112088070A publication Critical patent/CN112088070A/zh
Pending legal-status Critical Current

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/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • 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]
    • G05B19/4183Total 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] characterised by data acquisition, e.g. workpiece identification
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/162Mobile manipulator, movable base with manipulator arm mounted on it
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1669Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31037Compartment, bin, storage vessel sensor to verify correct bin is loaded
    • 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Analysis (AREA)

Abstract

提供了一种用于管理机器人助手的系统和方法。收集与当前环境相对应的环境数据,以基于所收集的环境数据来确定当前环境的类型。检测当前环境中的一个或多个对象。一个或多个对象与当前环境的类型相关联。对于一个或多个对象中的每一个,基于相应对象的类型和当前环境的类型来识别一个或多个交互。下载与一个或多个对象相对应的对象库。对象库包括与相应识别的一个或多个交互相对应的交互数据。在相应的一个或多个对象上执行一个或多个交互的至少一部分。

Description

用于操作机器人系统并执行机器人交互的系统及方法
相关申请的交叉引用
本申请要求以下申请的优先权和利益:2017年7月25日提交的题为“Systems andMethods for Operating Robotic End Effectors”的美国临时申请序列号62/536,625、2017年8月16日提交的题为“Systems and Methods for Operating Robotic EndEffectors”的美国临时申请序列号62/546,022、2017年12月12日提交的题为“Systems andMethods for Operating Robotic End Effectors”的美国临时申请序列号62/597,449、2018年3月27日提交的题为“Systems and Methods for Managing the Operation ofRobotic Assistants and End Effectors and Executing Robotic Interactions”的美国临时申请序列号62/648,711和2018年5月31日提交的题为“Systems and Methods forOperating Robotic End Effectors”的美国临时申请序列号62/678,456,它们的公开内容通过引用整体并入本文。
技术领域
本公开涉及机器人和人工智能(AI)的领域。更具体地,本公开涉及一种计算机化机器人系统,所述机器人系统采用用于将一个或多个对象耦接到机器人系统的耦接设备,以及用于将一个或多个对象与机器人系统锁定的锁定机构。此外,本公开还涉及标记系统与机器人系统的集成,以便抓取一个或多个对象并与之交互。此外,本公开还涉及微操纵的电子库与经变换的机器人指令的集成,以便利用实时电子调整来复现活动、过程和技术。
背景技术
机器人的研发已经进行了几十年,但是其取得的进展大多是在诸如汽车制造自动化的重工业应用或者军事应用当中。尽管已经针对消费者市场设计出了简单的机器人系统,但是到目前为止还尚未看到其在家庭消费机器人领域的广泛应用。随着技术进步和人民收入更高,市场已经成熟到适于为技术进步创造机会以改善人们生活。机器人借助于增强的人工智能以及对操作机器人设备或人形机方面许多形式的人类技能和任务的仿真而不断地改进着自动化技术。
自从二十世纪七十年代首次开发机器人以来,在某些领域用机器人代替人类执行通常由人类执行的任务的想法是一种不断演进的思想。制造业长期以来一直以教导重现(teach-playback)模式使用机器人,其中通过控制台(pendant)或离线固定的轨迹生成和下载对机器人进行教导,其持续复制一些动作而不存在变化或偏差。公司将计算机教导轨迹的预编程轨迹运行以及机器人动作重现运用到诸如搅拌饮料、汽车焊接或喷漆等应用领域。但是,所有这些常规应用均采用意在使机器人只忠实地执行动作命令的1:1计算机对机器人或教导-重现原则,机器人通常是无偏差地遵循所教导的/预先计算的轨迹。
此外,在常规的机器人系统中,一个或多个对象或操纵器或末端执行器直接耦接到机器人系统。在常规系统中,耦接设备的特性通常在于具有稳定性问题,这可能使得机器人系统的操作效率低下或不准确。尽管已经对耦接设备进行了改进以改善耦接的稳定性和准确性,但是这些系统往往笨重且复杂。此外,常规系统中的耦接设备的配置可能需要按照要耦接至机器人系统的一个或多个对象或操纵器或末端执行器的配置来更换或改变整个耦接设备,而这是不受期望的。本公开旨在克服上述的一个或多个限制。
在公开部分的此背景技术中公开的信息仅用于增强对本发明总体背景的理解,并且不应被视为对该信息形成了本领域技术人员已知的现有技术的承认或任何形式的暗示。
发明内容
本公开的实施例涉及用于高速和高保真度操纵操作的多层级机器人系统的方法、计算机程序产品和计算机系统,在一个实施例中,所述机器人系统分为两个由仪器化关节连接和控制器致动的子系统组成的物理和逻辑子系统,包括负责在较大的无约束环境工作空间中以较低的端点精确度进行的操作的较大和较粗略运动的宏观操纵系统,以及负责在较小工作空间中的操作并同时以较高的端点运动精确度与工具和环境进行交互的较小和较精细运动的微观操纵系统,基于通过特定于宏观和微观操纵子系统的双层级数据库提供的微操纵命令来执行微操纵轨迹遵循任务,由专用且单独的分布式处理器和传感器架构支持,所述分布式处理器和传感器架构运行在总体上实时运行的系统上,通过多个特定于传感器、命令和数据库元素的总线接口与所有子系统进行通信。
提供了用于操作通用机器人助手系统的系统和方法。在一些实施例中,一种用于操作机器人助手系统的方法包括:由机器人助手系统中配置的一个或多个处理器从机器人助手系统中配置的一个或多个传感器接收与当前环境相对应的环境数据;由一个或多个处理器基于所收集的环境数据确定当前环境的类型;由一个或多个处理器检测当前环境中的一个或多个对象,其中,一个或多个对象与当前环境的类型相关联;由一个或多个处理器基于一个或多个对象的类型以及当前环境的类型,针对一个或多个对象中的每一个识别一个或多个交互;由一个或多个处理器从与机器人助手系统相关联的远程储存中检索与一个或多个对象相对应的交互数据;以及由一个或多个处理器基于交互数据,在对应的一个或多个对象上执行一个或多个交互。
在一些实施例中,确定当前环境的类型包括:由一个或多个处理器将环境数据发送到与机器人助手系统相关联的远程储存,其中该远程储存包括环境候选库;以及由一个或多个处理器响应于所发送的环境数据,从环境候选库中接收基于环境数据确定的当前环境的类型。
在一些实施例中,一个或多个处理器中的每个处理器通信地连接到与机器人助手系统相关联的中央处理器。
在一些实施例中,环境数据包括当前环境的位置数据和图像数据中的一个或多个。
在一些实施例中,位置数据和图像数据是从一个或多个传感器获得的,其中一个或多个传感器包括导航系统和一个或多个图像捕获设备中的至少一个。
在一些实施例中,基于当前环境的类型、与当前环境相对应的环境数据和对象数据中的至少一个来检测一个或多个对象。
在一些实施例中,从与当前环境的类型相关联的多个对象中检测一个或多个对象,其中从远程储存中检索多个对象。
在一些实施例中,对象数据由包括一个或多个摄像机的一个或多个传感器收集。
在一些实施例中,检测一个或多个对象和一个或多个对象的类型还包括分析一个或多个对象的特征,其中特征包括一个或多个对象的形状、大小、纹理、颜色、状态、材料和姿势中的至少一个。
在一些实施例中,分析一个或多个对象的特征包括检测布置在一个或多个对象的每一个上的一个或多个标记。
在一些实施例中,基于对象的类型和当前环境的类型为一个或多个对象中的每一个识别的一个或多个交互指示将由当前环境中的相应对象执行或在相应对象上执行的一个或多个交互。
在一些实施例中,一个或多个交互中的每一个的交互数据包括将由一个或多个对象或在一个或多个对象上执行的运动序列,以及一个或多个操纵设备相对于对应的一个或多个对象的一个或多个最佳标准位置,该操纵设备被配置为与一个或多个对象进行交互。
在一些实施例中,在对应的一个或多个对象上执行一个或多个交互中的至少一个包括,针对一个或多个交互中的每一个:由一个或多个处理器将一个或多个操纵设备定位在对应的一个或多个对象的附近;由一个或多个处理器识别一个或多个操纵设备相对于对应的一个或多个对象的最佳标准位置,其中最佳标准位置选自一个或多个操纵设备的一个或多个标准位置;由一个或多个处理器使用一种或多种定位技术将一个或多个操纵设备定位在所识别的最佳标准位置处;以及由一个或多个处理器使用一个或多个操纵设备执行在对应的一个或多个对象上/由对应的一个或多个对象执行的一个或多个交互。
在一些实施例中,一种或多种定位技术包括对象模板匹配技术和基于标记的技术中的至少一种,其中,对象模板匹配技术用于标准对象,并且基于标记的技术用于标准对象和非标准对象。
在一些实施例中,使用对象模板匹配技术将一个或多个操纵设备定位在所识别的最佳标准位置处包括:由一个或多个处理器从与机器人助手系统相关联的远程储存中检索目标对象的对象模板,其中该目标对象是当前正在进行一个或多个交互的对象,其中该对象模板包括目标对象的形状、颜色、表面和材料特性中的至少一个;由一个或多个处理器将一个或多个操纵设备定位到目标对象附近的第一位置;由一个或多个处理器从与一个或多个操纵设备相关联的图像捕获设备中的至少一个实时接收目标对象的一个或多个图像,其中一个或多个图像是在一个或多个操纵设备处于第一位置时由图像捕获设备中的至少一个捕获的;由一个或多个处理器将目标对象的对象模板与目标对象的一个或多个图像进行比较;以及由一个或多个处理器执行以下操作中的至少一个:当比较结果不匹配时,基于先前迭代中的一个或多个操纵设备的位置,将一个或多个操纵设备的位置朝着最佳标准位置调整,并重复接收和比较的步骤;或者当比较结果为匹配时,推断一个或多个操纵设备达到最佳标准位置。
在一些实施例中,使用基于标记的技术将一个或多个操纵设备定位在所识别的最佳标准位置包括:检测与目标对象相关联的一个或多个标记;以及基于检测到的与目标对象相关联的一个或多个标记,将一个或多个操纵设备的位置朝着最佳标准位置调整,其中,使用从与一个或多个操纵设备相关联的图像捕获设备中的至少一个接收到的目标对象的实时图像来调整所述位置。
在一些实施例中,所述一个或多个标记包括以下标记中的至少一种:布置在目标对象上的物理标记;和与目标对象上一个或多个点相对应的虚拟标记,其中一个或多个标记使得能够计算一个或多个操纵设备相对于目标对象的位置参数,所述位置参数包括距离、取向、角度和倾斜度。
在一些实施例中,当所述目标对象是标准对象时,与目标对象相关联的一个或多个标记是物理标记,而当目标对象是非标准对象时,与目标对象相关联的一个或多个标记是虚拟标记。
在一些实施例中,一个或多个标记包括布置在目标对象上的物理标记,其中,物理标记是三角形标记,并且其中,调整一个或多个操纵设备的位置包括:由一个或多个处理器将一个或多个操纵设备朝向三角形标记移动,直到该三角形标记的至少一条边具有优选的长度为止;由一个或多个处理器旋转一个或多个操纵设备,直到三角形标记的底部顶点布置在目标对象的实时图像的底部位置为止;由一个或多个处理器沿着目标对象的实时图像的X轴和/或Y轴移位一个或多个操纵设备,直到三角形标记的中心处于目标对象的实时图像的中心位置为止;以及由一个或多个处理器调整一个或多个操纵设备的倾斜度,直到三角形标记的每个角度为以下角度中的至少之一:等于大约60度或等于比在开始调整一个或多个操纵设备的位置之前的角度差更小的、角度之间的预定最大差,其中,达到上述两个条件中的至少一个指示一个或多个操纵设备达到所述最佳标准位置。
在一些实施例中,一个或多个标记包括布置在目标对象上的物理标记,其中,物理标记是棋盘形标记,并且其中,调整一个或多个操纵设备的位置包括:由一个或多个处理器使用棋盘形标记来校准与一个或多个操纵设备相关联的图像捕获设备,其中,所述校准包括相对于棋盘形标记估计图像捕获设备的焦距、主点和失真系数中的至少一个;由一个或多个处理器实时识别目标对象的图像,棋盘形标记中的方形槽的角的图像坐标;由一个或多个处理器基于图像坐标将真实世界坐标分配给实时图像中的方形槽的角中的每个内角;以及由一个或多个处理器基于相对于棋盘形标记的校准、图像坐标和实时坐标,确定一个或多个操纵设备的位置,其中,重复校准、识别、分配和确定的过程,直到一个或多个操纵设备的位置等于最佳标准位置为止。
在一些实施例中,使用形状分析技术、粒子滤波技术和卷积神经网络(CNN)技术中的至少一种,将虚拟标记放置在目标对象上。
在一些实施例中,使用形状分析技术放置虚拟标记包括:由一个或多个处理器从与一个或多个操纵设备相关联的至少一个图像捕获设备接收目标对象的实时图像;当与目标对象的每条边的长度进行比较时,由一个或多个处理器确定目标对象的形状以及目标对象的最长边和最短边;由一个或多个处理器基于目标对象的形状以及目标对象的最长边和最短边确定目标对象的几何中心;以及由一个或多个处理器在目标对象上投影等边三角形,其中等边三角形的每一边等于目标对象的最短边的一半;等边三角形沿目标对象的最长边取向;以及等边三角形的几何中心与目标对象的几何中心重合;以及由一个或多个处理器在等边三角形的每个顶点处放置虚拟标记。
在一些实施例中,使用粒子过滤技术放置虚拟标记包括:由一个或多个处理器从与机器人助手系统相关联的远程储存中检索与目标对象的理想位置相对应的一个或多个理想值;由一个或多个处理器从与一个或多个操纵设备相关联的至少一个图像捕获设备接收目标对象的实时图像;由一个或多个处理器使用实时图像生成目标对象边界内的特殊点(special point);由一个或多个处理器确定在每个特殊点附近的视觉特征的组合的估计值,其中,所述视觉特征包括梯度直方图、空间颜色分布和纹理特征中的至少一个;由一个或多个处理器将每个估计值与一个或多个理想值中的每一个进行比较,以识别相应的近端匹配;以及由一个或多个处理器在目标对象上与每个近端匹配相对应的每个位置处放置虚拟标记。
在一些实施例中,使用CNN技术放置虚拟标记包括:由一个或多个处理器从与通用机器人助手系统相关联的远程储存中存储的库中下载与目标对象相对应的CNN模型;以及基于CNN模型检测目标对象上的位置以放置虚拟标记。
此后,关于厨房环境来解释本公开的各种实施例。然而,这不应被解释为对本公开的限制,因为本公开可以适用于除了厨房环境以外的任何环境。
本申请的实施例涉及带有机器人指令的机器人设备的方法、计算机程序产品和计算机系统,其以基本相同的结果复现食物菜肴,就像是厨师来制备了该食物菜肴一样。在第一实施例中,标准化机器人厨房中的机器人设备包括两个机器臂和手,其按照相同的顺序(或基本相同的顺序)复现厨师的精确动作。两个机器臂和手基于先前记录的厨师制备相同食物菜肴的精确动作的软件文件(菜谱脚本),按照相同的时序(或基本相同的时序)复现这些动作以制备食物菜肴。在第二实施例中,计算机控制的烹饪设备基于先前记录在软件文件中的感测曲线,例如随时间推移的温度,来制备食物菜肴,为此其中厨师用带有传感器的烹饪设备制备相同的食物菜肴,当厨师先前在配备有传感器的烹饪设备上制备食物菜肴时,由计算机记录随时间推移的传感器值。在第三实施例中,厨房设备包括第一实施例中的机器臂和第二实施例中用于制备菜肴的带有传感器的烹饪设备,其将机器臂与一条或多条感测曲线两者结合起来,其中机器臂能够在烹饪处理期间对食物菜肴进行质量检查,质量检查所针对的特性诸如是味道、气味和外观,由此允许对食物菜肴的制备步骤进行任何烹饪调整。在第四实施例中,厨房设备包括采用计算机控制容器和容器标识的食物存放系统,用于存放食材以及为用户提供食材,以遵循厨师的烹饪指令制备食物菜肴。在第五实施例中,机器人烹饪厨房包括具有臂的机器人和厨房设备,其中机器人围绕厨房设备移动,从而通过模仿厨师的精确烹饪动作来制备食物菜肴,其包括对菜谱脚本中定义的制备处理做出可能的实时修改/适应性调节。
一种机器人烹饪引擎包括检测、记录和模仿厨师烹饪活动,控制诸如温度和时间之类的重要参数,以及处理借助于指定用具、设备和工具的执行,由此重现味道与厨师制备的同种菜肴相同的美食菜肴,并且在特定和方便的时间上菜。在一实施例中,机器人烹饪引擎提供机器臂以用于采用相同的食材和技术复现厨师的相同动作,从而制作相同口味的菜肴。
本公开的基础动机的核心在于,在人自然地执行活动的处理中采用传感器对其进行监视,然后能够使用监视传感器、捕获传感器、计算机和软件来生成信息和命令,从而使用一个或多个机器人和/或自动化系统复现人的活动。尽管可以设想多种这样的活动(例如,烹饪、绘画、演奏乐器等),但是本申请的一个方面涉及烹饪膳食;其实质上是机器人膳食制备应用。在仪器化应用特定的设置(本实例中为标准化厨房)中执行对人的监视,并且对人的监视涉及采用传感器和计算机来观察、监视、记录和解释人类厨师的运动和动作,从而开发出对环境中的变化和改变具有鲁棒性的可由机器人执行的命令集,能够允许机器人厨房中的机器人或自动化系统制备出从标准和质量上与人类厨师制备的菜肴相同的菜肴。
多模态感测系统的使用是收集必要的原始数据的手段。能够收集和提供这样的数据的传感器包括环境和几何传感器,例如,二维(摄像机等)和三维(激光、声纳等)传感器,以及人类运动捕获系统(人佩戴的摄像机目标、仪器化外套/外骨架、仪器化手套等),以及在菜谱创建和执行处理中采用的仪器化(传感器)和动力(致动器)设备(仪器化用具、烹饪设备、工具、食材分配器等)。通过一个或多个分布式/中央计算机收集所有这些数据并且通过各种软件处理对其进行处理。算法将对数据进行处理和抽象化,以达到人类和计算机控制的机器人厨房能够理解人类采取的活动、任务、动作、设备、食材以及方法和处理,包括复现特定厨师的关键技能的程度。通过一个或多个软件抽象引擎对原始数据进行处理,从而建立人可读的、并且通过进一步处理机器可理解和执行的菜谱脚本,其清楚说明机器人厨房将执行的特定菜谱的所有步骤的所有动作和活动。这些命令的复杂性范围从控制各个关节到随时间的特定关节运动简档,到与菜谱中的具体步骤相关联的、较低层级运动执行命令嵌入在其中的命令抽象层级。抽象运动命令(例如,“将蛋磕到平底锅里”、“两面烤成金黄色”等)可以从原始数据生成,并且通过大量迭代学习处理精炼和优化,现场和/或离线地执行,从而允许机器人厨房系统成功处理测量不确定性、食材变化等,由此能够基于相当抽象/高层级的命令(例如,“通过把手抓取锅(pot)”、“倒出内容物”、“抓取台面上的汤匙并且对汤进行搅拌”等),使用安装至机器臂和手腕上的带手指的手来实现复杂的(自适应的)微操纵活动。
创建机器可执行命令序列(其现在容纳在允许共享/传输的数字文件内,允许任何机器人厨房执行它们)的能力开辟了随时随地执行菜肴制备步骤的选项。因而,其允许在线买/卖菜谱的选项,允许用户基于每次使用或订购来访问和分发菜谱。
通过机器人厨房执行人类制备的菜肴的复现,其实质上是对人类厨师在菜肴创造处理中采用的仪器化厨房的标准化复制,除了现在是由一组机器臂和手、受计算机监视的和计算机可控制的器具、装置、工具、分配器等执行人的动作之外。因而,菜肴复现的保真度与机器人厨房对人类厨师在制备菜肴时受到观察所处的厨房(及其所有元件和食材)的复制程度密切相关。
广言之,具有由机器人操作系统(ROS)用机器人指令操作的机器人计算机控制器的人形机包括:具有多个电子微操纵库的数据库,每个电子微操纵库包括多个微操纵元素。所述多个电子微操纵库可组合以创建一个或多个机器可执行特定应用指令集,电子微操纵库内的多个微操纵元素可组合以创建一个或多个机器可执行特定应用指令集;机器人结构,具有通过关节连接的(articulated)颈部连接到头部的上身和下身,上身包括躯干、肩膀、臂和手;以及控制系统,通信耦接到所述数据库、传感器系统、传感器数据解释系统、运动规划器、以及致动器和相关联的控制器,所述控制系统执行特定应用指令集以操作所述机器人结构。
此外,本申请的实施例涉及用于执行来自一个或多个微操纵库的机器人指令的机器人设备的方法、计算机程序产品和计算机系统。两种类型的参数,元参数(elementalparameter)和应用参数,影响微操纵的操作。在微操纵的创建阶段,元参数提供测试各种组合、排列、以及自由度以产生成功微操纵的变量。在微操纵的执行阶段,应用参数是可编程的或者可被定制以针对特定应用来调整一个或多个微操纵库,例如食物制备、制作寿司、弹钢琴、绘画、拾取书本、以及其他类型的应用。
微操纵构成一种为人形机器人创建通用的可示例编程的(programmable-by-example)平台的新方法。现有技术大部分需要专家程序员为机器人动作或动作序列的每个步骤细致地开发控制软件。对以上情况的例外是对于很重复的低层级任务,诸如工厂装配等,其中存在模拟学习的雏形。微操纵库提供较高层级的感测和执行(sensing-and-execution)序列的大套件,该序列是用于复杂任务例如烹饪、照顾体弱者、或由下一代人形机器人执行的其它任务等的公共构建块。更具体地,与先前的技术不同,本申请提供以下区别特征。第一,可能非常大的预定义/预学习的感测和行动(sensing-and-action)序列的库被称为微操纵。第二,每个微操纵编码感测和行动序列以良好定义的成功概率(例如,取决于微操纵的复杂度和难度,100%或97%)成功产生期望功能结果(即后置条件)所需的前提条件。第三,每个微操纵参考一组变量,其值可以在执行微操纵动作之前先验地或者通过感测操作来设置。第四,每个微操纵改变表示执行微操纵中的动作序列的功能结果(后置条件)的一组变量的值。第五,可以通过重复观察人类导师(例如专家厨师)来确定感测和行动序列,并且确定可接受的变量值的范围来获取微操纵。第六,微操纵可组成更大的单元以执行端对端(end-to-end)任务,例如制备膳食、或者清洁房间。这些更大的单元是以严格顺序的、并行的或者部分有序的微操纵的多级应用,在部分有序的情形中,一些步骤必须在另一些步骤之前发生,但并不是总体有序的序列(例如,为了制备给定菜肴,需要将三种食材以精确的量组合到混合碗中,然后混合;将每种食材放入碗中的顺序不受约束,但是都必须置于混合之前)。第七,由机器人规划考虑到微操纵组件的前提条件和后置条件来将微操纵组装成端对端任务。第八,基于实例的推理,其中对人或其他机器人执行端对端任务的观察或相同机器人的过去经历可用于获取可重复使用的机器人规划形式的实例(执行端对端任务的具体例子)的库,包括成功的和失败的,成功的用于复现,失败的用于学习需要避免什么。
在本申请的第一方面,机器人设备通过访问一个或多个微操纵库来复现有经验的人类的操作,来执行任务。机器人设备的复现过程模拟人的智能或技巧通过一双手的转移,例如厨师如何使用一双手来制备特定菜肴,或者钢琴家通过他或她的一双手(并且可能还通过脚和身体动作)来演奏大师钢琴曲。在本申请的第二方面,机器人设备包括用于家庭应用的人形机,其中人形被设计为提供可编程或可定制的心理、情感和/或功能舒适的机器人,从而为用户提供快乐。在本申请的第三方面,一个或多个微操纵库作为,第一,一个或多个通用微操纵库以及,第二,一个或多个特定应用微操纵库而被创建和执行。基于元参数和人形机或机器人设备的自由度创建一个或多个通用微操纵库。人形机或机器人设备是可编程的,使得一个或多个通用微操纵库可被编程或定制,以成为根据用户对人形机或机器人设备的操作能力要求具体制定(tailored)了的一个或多个特定应用微操纵库。
本公开的一些实施例涉及与以下能力相关的技术特征:能够通过基于一组计算机编码的机器人移动和动作基元(primitive)自动创建人形机的移动、动作和人形机的行为,来创建复杂的机器人人形机移动、动作、以及与工具和环境的交互。基元由关节自由度的运动/动作定义,其复杂性在简单到复杂的范围,并且其可以按串行/并行方式以任何形式组合。这些动作基元被称为微操纵(MM),每个微操纵都具有旨在实现某个功能的明确按时间索引的命令输入结构、以及输出行为/性能简档(profile)。微操纵可以在从简单(“用1个自由度来索引单个指关节”)到涉及更多(例如“抓住器具”)到甚至更复杂(“抓取刀并且切面包”)到相当抽象(“演奏舒伯特第一号钢琴协奏曲”的第1小节)的范围。
因此,微操纵是基于软件的,类似于具有输入/输出数据文件和子例程的各个程序,其由包含在各运行时源代码内的输入和输出数据集以及固有处理算法和性能描述符表示,源代码在编译时生成目标代码,目标代码可以被编译和收集在各种不同的软件库中,被称为各种微操纵库(MML)的集合。微操纵库可分组为多个群组,无论这些是关联到(i)特定的硬件元件(手指/手、手腕、臂、躯干、脚、腿等)、(ii)行为元素(接触,抓握、握持等)、还是甚至(iii)应用领域(烹饪、绘画、演奏乐器等)。此外,在每个群组中,可以基于与期望的行为复杂度有关的多个层级(从简单到复杂)来安排微操纵库。
因此可以理解的是,微操纵(MM)的概念(定义和关联、度量和控制变量、以及它们的组合和值的使用和修改等)和其通过以几乎无穷的组合使用多个微操纵库的实施,涉及序列和组合中多个层级的一个或多个自由度(致动器控制下的可移动关节)的基本行为(移动和交互)的定义和控制,所述多个层级的范围可以从单个关节(指关节等)到关节组合(手指和手、臂等)到甚至更高自由度的系统(躯干、上身等),所述序列和组合实现自由空间中期望并且成功的移动序列,并且实现与真实世界期望程度的交互,从而能够使机器人系统通过工具、器具和其他物品对周围世界并且与周围世界一起实现期望的功能或输出。
上述定义的示例可包括从(i)用于用手指沿桌子弹开弹子的数字的简单命令序列,(ii)使用器具搅拌锅中的液体,到(iii)在乐器(小提琴、钢琴、竖琴等)上演奏一段音乐。基本概念是微操纵由在连续时间点顺序和并行执行的一组微操纵命令在多个层级上表示,并且一起产生移动和动作/与外界的互动从而达到期望的功能(搅动液体、拉动小提琴上的琴弦等)以实现期望的结果(烹饪意大利面酱、演奏一段巴赫协奏曲等)。
任何低到高微操纵序列的基本元素都包括每个子系统的移动,它们的组合被描述为在致动器驱动下由一个或多个关连关节按所需顺序执行的一组指定位置/速度和力/转矩。执行的保真度通过每个MM序列中描述的闭环行为而得到保证,并且由每个关连关节控制器和更高层级的行为控制器固有的局域和全局控制算法来实施。
上述移动(由关连关节的位置和速度描述)和环境交互(由关节/界面转矩和力描述)的实施通过使计算机重现所有所需变量(位置/速度和力/转矩)的期望值并且将其馈送到控制器系统来实现,控制器系统在每个时间步骤根据时间在每个关节上忠实地实施这些变量。用来确定指定移动/交互的保真度的这些变量及其顺序和反馈环(因此不仅是数据文件,还包括控制程序)都被描述在数据文件中,数据文件组合成多层级的微操纵库,其可以被访问并且按多种方式组合以允许人形机器人执行多个动作,例如烹饪膳食、在钢琴上演奏一段古典音乐、将体弱者抬到床上/床外等。有描述简单的基本移动/交互的微操纵库,其然后被用作更高层级的MML的构建块,更高层级的MML描述更高层级的操纵,例如“抓取”,“提升”,“切”,到更高层级的基元,例如“搅拌锅中的液体”/“用竖琴弦演奏降G大调”,或者甚至高层级的动作,例如“做香料调料”/“绘画乡村布列塔尼夏季风景”/“演奏巴赫的第一号钢琴协奏曲”等。较高层级命令仅是沿公共定时的步骤序列执行的串行/并行的低和中层级微操纵基元序列的组合,其由运行顺序/路径/交互简档的一组规划器与反馈控制器的组合来监视,以确保所需的执行保真度(如在每个微操纵序列内包含的输出数据中定义的那样)。
期望的位置/速度和力/转矩的值以及它们的执行重现序列可以以多种方式实现。一种可行的方式是观察和提炼人执行相同任务的动作和运动,使用专用软件算法从观察数据(视频、传感器、建模软件等)提取作为时间函数的必要变量及其值,并且将它们与各个层级的不同微操纵相关联,从而将所需的微操纵数据(变量,序列等)提炼成各种类型的低到高的微操纵库。该方案将允许计算机程序自动生成微操纵库并且自动地定义所有序列和关联,而无需任何人类参与。
另一种方式是(再次通过采用专用算法的自动计算机控制过程)从在线数据(视频、图片、音声日志等)中学习如何使用已有的低层级微操纵库构建所需顺序的可操作序列以构建正确的序列和组合来生成特定任务的微操纵库。
另一种方式,虽然最肯定的是更低(时间)效率和更低成本效率的,可以是人类程序员组装一组低层级微操纵基元,以在更高层级的微操纵库中创建更高层级的动作/序列集合以实现更复杂的任务序列,其也是由预先存在的较低层级的微操纵库组成的。
对个体变量(意味着在每个增量时间间隔处的关节位置/速度和转矩/力以及它们相关联的增益和组合算法)以及运动/交互序列的修改和改进也是可行的,并且可以以许多不同的方式实现。可以使学习算法监视每个运动/交互序列并且执行简单的变量扰动以确定结果,从而判断是否/如何/何时/修改什么变量和序列以在从低层级到高层级的各种微操纵库的层级实现更高水平的执行保真度。这样的过程将是完全自动的,并且允许跨互连的多个平台交换更新的数据集,从而经由云计算允许大规模并行且基于云的学习。
有利地,标准化机器人厨房中的机器人设备具有通过全球网络和数据库访问制备来自世界各地的种类繁多的美食的能力,与之相比厨师可能只擅长一种烹饪风格。标准化机器人厨房还能够捕获并记录最喜欢的食物菜肴,每当想要享用这种菜肴时机器人设备就可以进行复现,而不需要重复制备相同菜肴的重复劳动过程。
在下面的描述中详细说明了本公开的结构和方法。这一发明内容部分并非旨在对本公开进行界定。本公开由权利要求界定。通过下述描述、所附权利要求和附图,本公开的这些以及其他实施例、特征、方面和优点将变得更好理解。
在一些实施例中,一种电子库存系统,包括:储存单元,其被配置为存储一个或多个对象;在储存单元中配置的一个或多个图像捕获设备,用于:实时捕获一个或多个对象中的每一个的一个或多个图像;和将一个或多个图像中的每一个发送到在储存单元上配置的显示屏和在储存单元中配置的一个或多个嵌入式处理器;在储存单元中配置的一个或多个传感器,用于向与一个或多个对象中的每一个的位置和取向相关联的一个或多个嵌入式处理器中的至少一个提供对应的传感器数据;在所述储存单元中配置的一个或多个光源,用于通过在储存单元中提供均匀的照射,以便于一个或多个图像捕获设备捕获储存单元中的一个或多个对象中的每一个的一个或多个图像;在储存单元中配置的一个或多个嵌入式处理器,其中,一个或多个嵌入式处理器通过通信网络与机器人助手系统的中央处理器交互,所述一个或多个嵌入式处理器被配置为:基于一个或多个图像和传感器数据检测存储在储存单元中的一个或多个对象中的每一个;和实时或周期性地将一个或多个图像和传感器数据发送到中央处理器。
在一些实施例中,一个或多个传感器包括温度传感器、湿度传感器、超声传感器、激光测量传感器和声纳中的至少一个。
在一些实施例中,一个或多个嵌入式处理器通过以下方式检测一个或多个对象中的每一个:检测一个或多个对象的存在/不存在,估计存储在一个或多个对象中的内容物,检测一个或多个对象中的每一个的位置和取向,读取附接于一个或多个对象中的每一个的视觉标记和无线电类型标记中的至少一个,以及读取对象标识符。
在一些实施例中,一个或多个嵌入式处理器基于卷积神经网络(CNN)技术来检测一个或多个对象。
在一些实施例中,储存单元包括固定在所述储存的外表面上的显示屏,被配置为实时显示一个或多个对象的图像和视频以及在一个或多个对象中的每一个上执行的一个或多个交互。
在一些实施例中,显示屏使用户能够可视化和定位存储在储存单元中的一个或多个对象中的每一个,而无需打开储存单元的门。
在一些实施例中,储存单元还配置有电动机设备,以使得能够自动对储存单元的门执行一个或多个动作,其中,一个或多个动作包括以下中的至少一个:打开、关闭、锁定和解锁储存单元的门。
在一些实施例中,储存单元中的一个或多个传感器中的每一个、一个或多个光源中的每一个以及一个或多个图像捕获设备中的每一个电连接到配置在储存单元中的扩展板,其中每个储存单元的扩展板连接到以太网供电(PoE)交换机。
在一些实施例中,储存单元还配置有:风扇块,用于在储存单元内部提供空气循环;以及热电冷却器元件,用于冷却储存单元中的电子组件。
在本公开的一个非限制性实施例中,提供了一种用于将一个或多个对象耦接到机器人系统的耦接设备。该耦接设备包括:限定在机器人系统上的第一耦接构件,和限定在一个或多个对象上的第二耦接构件,并且第二耦接构件能够与第一耦接构件连接。锁定机构限定在第一耦接构件和第二耦接构件中的每一个的接口处,用于将一个或多个对象与机器人系统耦接。
在一个实施例中,第一耦接构件由可连接至机器人系统的第一连接表面和沿其外围限定有多个第一突出部的第一配合表面限定。
在一实施例中,第二耦接构件由可连接至一个或多个对象的第二连接表面和沿其外围限定有多个第二突出部的第二配合表面限定。
在一个实施例中,多个第一突出部和多个第二突出部彼此互补,以便于第一耦接构件与第二耦接构件的耦接。
在一个实施例中,第一连接表面可通过机械装置、机电装置、真空装置和磁性装置中的至少一个连接至机器人系统。
在一个实施例中,选择第一耦接构件和第二耦接构件的材料以便于第一配合表面和第二配合表面之间的相接。
在一个实施例中,第一耦接构件由电磁材料或铁磁材料中的任一种制成。
在一个实施例中,第二耦接构件由铁磁材料或电磁材料中的任一种制成。
在一个实施例中,接口端口限定在第一耦接构件上,并与机器人系统接口,用于机器人系统和第二耦接构件之间的外围连接,以便于通过机器人系统操纵一个或多个对象。
在一实施例中,一个或多个对象中的每一个是厨房用具和厨房工具中的至少一种。
在一个实施例中,在机器人系统上限定至少一个传感器单元,其中至少一个传感器单元被配置为在第一耦接构件与第二耦接构件的耦接期间检测多个第一突出部与多个第二突出部的取向。
在一实施例中,锁定机构包括:限定在第一配合表面上的至少一个凹口和限定在第二配合表面上的至少一个突起。至少一个突起适于与至少一个凹口接合,以将第一配合表面与第二配合表面耦接。
在一实施例中,对应于至少一个凹口的配置而成形至少一个突起。
在一实施例中,锁定机构包括:限定在第二配合表面上的至少一个凹口和限定在第一配合表面上的至少一个突起。至少一个突起适于与所述至少一个凹口接合,以将第一配合表面与第二配合表面耦接。
在一实施例中,至少一个凹口被成形为三角形、圆形和多边形中的至少一种。
在本公开的另一非限制性实施例中,提供了一种用于将一个或多个对象耦接到机器人系统的耦接设备。所述耦接设备包括:限定在机器人系统上的第一耦接构件和限定在一个或多个对象上的第二耦接构件,并且第二耦接构件可与第一耦接构件连接。锁定机构限定在第一耦接构件和第二耦接构件中的每一个的接口处,用于将一个或多个对象与机器人系统耦接。所述锁定机构包括限定在第一耦接表面和第二耦接表面中的任一个上的至少一个三角形凹口和限定在对应的第一耦接构件和第二耦接构件的至少一个三角形突起。至少一个三角形突起适于与至少一个三角形凹口接合,以将第一耦接构件与第二耦接构件耦接。
在本公开的另一非限制性实施例中,提供了一种用于将一个或多个对象耦接到机器人系统的耦接设备。所述耦接设备包括限定在机器人系统上的第一耦接构件和限定在一个或多个对象上的第二耦接构件,并且第二耦接构件可与第一耦接构件连接。锁定机构限定在第一耦接构件和第二耦接构件中的每一个的接口处,用于将一个或多个对象与机器人系统耦接。所述锁定机构包括限定在第一耦接表面和第二耦接表面中的任一个上的至少一个圆形凹口和限定在对应的第一耦接构件和第二耦接构件的至少一个圆形突起。锁定机构适于与至少一个圆形凹口接合,以将第一耦接构件与第二耦接构件耦接。
在本公开的另一非限制性实施例中,提供了一种用于将一个或多个对象耦接到机器人系统的耦接设备。所述耦接设备包括限定在机器人系统上的第一耦接构件和限定在一个或多个对象上的第二耦接构件,并且第二耦接构件可与第一耦接构件连接。锁定机构限定在第一耦接构件和第二耦接构件中的每一个的接口处,用于将一个或多个对象与机器人系统耦接。所述锁定机构包括限定在第一耦接构件和第二耦接构件中的任一个上的至少一个凹口,其中至少一个凹口中的每一个被配置为接纳电磁体。此外,至少一个突起限定在对应的第一耦接构件和第二耦接构件,并适于与至少一个凹口中的电磁体接合,以将第一耦接构件与第二耦接构件耦接。
在一实施例中,至少一个凹口包括沿其外围限定的凹槽。
在一个实施例中,至少一个突起包括销,所述销对应于至少一个凹口中的凹槽的配置而被成形并且适于与凹槽接合,以改善第一耦接构件和第二耦接构件之间的耦接的稳定性。
在一实施例中,提供了一种用于将一个或多个对象稳固到机器人系统的锁定机构。所述锁定机构包括:至少一个第一锁定构件,其固定在机器人系统的操纵器上;和至少一个第二锁定构件,其安装在操纵器上并适于在第一位置和第二位置之间可操作。至少一个致动器配件与至少一个第二锁定构件相关联并且适于在第一位置和第二位置之间操作至少一个第二锁定构件。至少一个致动器从第一位置到第二位置操作至少一个第二锁定构件,以使一个或多个对象中的每一个接合在至少一个第一锁定构件和至少一个第二锁定构件之间,由此使一个或多个对象与机器人系统稳固。
在一个实施例中,至少一个第一锁定构件和至少一个第二锁定构件位于操纵器的同一平面中。
在一个实施例中,至少一个致动器配件被配置为在操纵器的后表面上。
在一个实施例中,至少一个第一锁定构件和至少一个第二锁定构件位于操纵器的前表面上。
在一个实施例中,一个或多个对象中的每一个包括保持部分,所述保持部分沿其外围限定有多个槽,用于与至少一个第一锁定构件和至少一个第二锁定构件接合。
在一个实施例中,多个槽的形状对应于至少一个第一锁定构件和至少一个第二锁定构件的配置。
在一个实施例中,当操纵器靠近一个或多个对象中的每一个的附件时,至少一个致动器配件由机器人系统致动,以将至少一个第二保持构件从第一位置滑动到第二位置。
在一个实施例中,操纵器包括用于在第一位置和第二位置之间引导至少一个第二保持构件中的每一个的导轨。
在一实施例中,至少一个第一保持构件和至少一个第二保持构件是吊钩构件。
在一个实施例中,至少一个致动器配件选自线性致动器和旋转致动器中的至少一种。
在一个实施例中,至少一个致动器配件包括:安装在操纵器上的导螺杆;与机器人系统接口并耦接到导螺杆的电动机,以使导螺杆轴向旋转;以及螺母,其安装在导螺杆上并与至少一个第二保持装置接合。所述螺母被配置为在导螺杆的轴向旋转期间沿导螺杆行进,由此在第一位置和第二位置之间操作至少一个第二保持装置。
在一个实施例中,提供一种导螺杆保持器,用于将导螺杆安装在操纵器上,使得导螺杆沿着操纵器的水平轴线对准。
在一个实施例中,导螺杆包括多个螺纹,所述螺纹的导角在大约6度至大约12度的范围内,以在电动机停止运行时限制螺母的活动。
在一实施例中,螺母经由至少一个支架构件与至少一个第二保持装置接合。
在一个实施例中,螺母被配置为在导螺杆的顺时针旋转期间将至少一个第二保持装置从第一位置滑动到第二位置。
在一个实施例中,螺母被配置为在导螺杆的逆时针旋转期间将至少一个第二保持装置从第二位置滑动到第一位置。
在一个实施例中,螺母被配置为在导螺杆的逆时针旋转期间将至少一个第二保持装置从第一位置滑动到第二位置。
在一个实施例中,螺母被配置为在导螺杆的顺时针旋转期间将至少一个第二保持装置从第二位置滑动到第一位置。
在一个实施例中,经由夹具将电动机支撑到操纵器上。
在一个实施例中,至少一个第二保持装置从操纵器的后表面延伸并在操纵器的前表面上突出,以将其自身定位在与至少一个第一保持装置的平面相同的平面中。
在一个实施例中,至少一个致动器配件包括安装在操纵器上的壳体,所述壳体包括螺线管线圈,被配置为由电源供电。柱塞被容纳在壳体内并且同心地悬挂于螺线管线圈,其中,所述柱塞适于由在通电条件下由螺线管线圈致动。框架构件被安装到柱塞并连接到至少一个第二保持装置。所述框架构件被配置为在螺线管线圈的通电条件期间将柱塞的致动传送到至少一个第二保持装置,由此在第一位置和第二位置之间操作至少一个第二保持装置。
在一个实施例中,用于向螺线管线圈供电的电源选自交流电和直流电中的至少一种。
在一实施例中,提供一种阻尼器构件,一端固定到壳体,而另一端连接到框架构件,以控制框架构件的活动。
在一实施例中,框架构件包括连接至至少一个第二保持装置中的每一个的一个或多个连杆构件。
应理解,上述公开的各个方面和实施例可以彼此任意组合使用。各个方面和实施例中的若干方面和实施例可以被组合以形成本公开的另一实施例。
前述概述仅是说明性的,而绝非旨在以任何方式进行限制。除了上述说明性方面、实施例和特征之外,通过参考附图和以下详细描述,其他方面、实施例和特征将变得显而易见。
在下面的描述中详细说明了本公开的结构和方法。这一发明内容部分并非旨在对本公开进行限定。本公开由权利要求限定。通过下述描述、所附权利要求和附图,本公开的这些以及其他实施例、特征、方面和优点将变得更好理解。
附图说明
本公开的新颖特征和特性在所附权利要求中阐明。然而,当结合附图阅读时,通过参考以下对说明性实施例的详细描述,将最好地理解本公开本身以及优选的使用方式、其进一步目的和优势。现在参考附图仅通过示例的方式描述一个或多个实施例,其中相同的附图标记表示相同的元件,并且其中:
图1是示出根据本公开的具有硬件和软件的总体机器人食物制备厨房的系统图。
图2是示出根据本公开的包括厨师工作室系统和家庭机器人厨房系统的机器人食物烹饪系统的第一实施例的系统图。
图3是示出根据本公开的用于通过复现厨师菜谱的处理、技术和动作而制备菜肴的标准化机器人厨房的一实施例的系统图。
图4是示出根据本公开的与厨师工作室系统和家庭机器人厨房系统中的计算机结合使用的机器人食物制备引擎的一实施例的系统图。
图5A是示出根据本公开的厨师工作室菜谱创建处理的框图;图5B是示出根据本公开的标准化教导/重现机器人厨房的一实施例的框图;图5C是示出根据本公开的菜谱脚本生成和抽象化引擎的一实施例的框图;以及图5D是示出根据本公开的用于标准化机器人厨房中的对象操纵的软件单元的框图。
图6是示出根据本公开的多模态感测和软件引擎架构的框图。
图7A是示出根据本公开的厨师采用的标准化机器人厨房模块的框图;图7B是示出根据本公开的具有一对机器臂和手的标准化机器人厨房模块的框图;图7C是示出根据本公开的由厨师使用的标准化机器人厨房模块的物理布局的一实施例的框图;图7D是示出根据本申请的由一对机器臂和手使用的标准化机器人厨房模块的物理布局的一实施例的框图;图7E是描绘根据本申请的逐步流程和方法的框图,所述逐步流程和方法用于确保在基于标准化机器人厨房执行菜谱脚本的菜谱复现处理中存在有控制或检验点;以及图7F示出用于在厨师工作室、机器人厨房和其他源之间提供便利的基于云的菜谱软件的框图。
图8A是示出根据本公开的厨师活动和机器人镜像活动之间的转换算法模块的一实施例的框图;图8B是示出由厨师佩戴的用于捕获和传输厨师活动的一副具有传感器的手套的框图;图8C是示出根据本公开的基于来自厨师手套的捕获感测数据的机器人烹饪执行的框图;图8D是示出根据本公开的需要被称为阶段的步骤的序列的食物制备处理的顺序图;图8E是示出根据本公开的作为制备食物菜肴的阶段的数量的函数的总体成功概率的曲线图;以及图8F是示出采用多阶段机器人食物制备的菜谱执行的框图,其中所述多阶段食物制备采用微操纵和动作基元(primitive)。
图9A是示出根据本公开的用于检测和移动厨房工具、对象或一件厨房设备的具有触觉振动、声纳和摄像机传感器的机器手和手腕的示例的框图;图9B是示出根据本公开的耦合至一对用于标准化机器人厨房中的操作的机器臂和手的、具有传感器摄像机的云台头的框图;图9C是示出根据本公开的用于标准化机器人厨房内的操作的机器手腕上的传感器摄像机的框图;图9D是示出根据本公开的用于标准化机器人厨房中的操作的机器手上的手内眼(eye-in-hand)的框图;以及图9E是示出根据本申请的机器手中的可形变手掌的各方面的图画示图。
图10是示出根据本公开的用机器人姿势、运动和力对所捕获的厨师活动进行评估的过程的一实施例的流程图。
图11A-11C是示出根据本申请的与具有手掌的机器手一起使用的厨房把手的一实施例的框图。
图12是示出根据本申请的具有触觉传感器和分布式压力传感器的示例机器手的图画示图。
图13是示出根据本申请的厨师在机器人烹饪工作室佩戴的感测服装的示例的图画示图。
图14A-14B是示出根据本公开的用于厨师制备食物的具有传感器的三指触觉手套的一实施例以及具有传感器的三指机器手的示例的图画示图;图14C是示出根据本公开的机器臂和机器手之间的相互作用和交互的一示例的框图;以及图14D是示出根据本公开的采用可附接至炊具头的标准化厨房把手的机器手和可附接至厨房用具的机器臂的框图。
图15A是示出根据本公开的厨师用于执行标准化操作活动的感测手套的框图;以及图15B是示出根据本申请的机器人厨房模块中的标准化操作活动的数据库的框图。
图16A是示出根据本公开的包覆有人工的类似于人的柔软皮肤的手套的每个机器手的示意图;图16B是示出根据本公开的包覆有人工的类似于人的皮肤的手套以基于已经预定义并且储存在库数据库中的微操纵库数据库执行高层级微操纵的机器手的框图;图16C是示出根据本公开的对用于食物制备的操纵动作所做的分类(taxonomy)的一实施例的流程图。
图17是示出根据本公开的创建导致用刀敲裂鸡蛋的微操纵的框图。
图18是示出根据本公开的用于具有实时调整的微操纵的菜谱执行的示例的框图。
图19是示出根据本公开的在标准化厨房模块中捕获厨师的食物制备动作的软件处理的流程图。
图20是示出根据本公开的机器人标准化厨房模块中的机器人设备实施的食物制备的软件处理的流程图。
图21是示出根据本公开的建立、测试、验证和存储用于微操纵系统的各种参数组合的软件处理的一实施例的流程图。
图22是示出根据本公开的分配和利用标准化机器人厨房内的标准化厨房工具、标准化对象和标准化装置的库的处理的流程图。
图23是示出根据本公开的借助于三维建模识别非标准化对象的处理的流程图。
图24是示出根据本公开的用于微操纵的测试和学习的处理的流程图。
图25是示出根据本公开的用于机器臂质量控制和对准功能的处理的流程图。
图26是示出根据本公开的供在标准化机器人厨房中使用的微操纵对象的数据库库(library)结构的表格。
图27是示出根据本公开的供在标准化机器人厨房中使用的标准化对象的数据库库结构的表格。
图28是示出根据本公开的用于进行碗内质量检查的机器人传感器头部的图画示图。
图29是示出根据本公开的用于确定食物新鲜度和质量的检测装置或具有传感器的容器的图画示图。
图30是示出根据本公开的用于确定食物新鲜度和质量的在线分析系统的系统图。
图31是示出根据本公开的带有可编程分配器控制的预填充容器的框图。
图32是示出根据本公开的用于标准化机器人厨房中的食物制备的菜谱结构和过程的框图。
图33是示出根据本公开的具有用于三维跟踪和参考数据生成的增强型传感器的标准化机器人厨房的框图。
图34是示出根据本公开的具有用于创建实时三维模型的多个传感器的标准化机器人厨房的框图。
图35A-35H是示出根据本公开的标准化机器人厨房的各种实施例和特征的框图。
图36A是示出根据本公开的标准化机器人厨房的顶视平面图的框图;以及图36B是示出根据本公开的标准化机器人厨房的透视平面图的框图。
图37是示出根据本公开的具有可伸缩致动器的标准化机器人厨房的框图。
图38是示出根据本公开的与标准化机器人厨房结合使用的可编程存储系统的框图。
图39是示出根据本公开的与标准化机器人厨房结合使用的可编程存储系统的正视图的框图。
图40是示出根据本公开的与标准化机器人厨房结合使用的食材获取容器的正视图的框图。
图41是示出根据本公开的与标准化机器人厨房结合使用的与食材获取容器相关联的食材质量监视仪表板的框图。
图42是示出根据本公开的记录厨师的食物制备处理的一实施例的处理的流程图。
图43是示出根据本公开的机器人设备制备食物菜肴的一实施例的处理的流程图。
图44是示出根据本公开的在机器人获得与厨师相同(或基本相同)的食物菜肴制备结果的处理中的质量和功能调整的一实施例的处理的流程图。
图45是示出根据本公开的机器人厨房通过复现来自机器人厨房中的记录软件文件的厨师活动而制备菜肴的处理中的第一实施例的流程图。
图46是示出根据本公开的机器人厨房中的存储验入(check-in)和识别处理的流程图。
图47是示出根据本公开的机器人厨房中的存储验出(checkout)和烹饪制备处理的流程图。
图48是示出根据本公开的机器人厨房中的自动化烹饪前制备处理的一实施例的流程图。
图49是示出根据本公开的机器人厨房中的菜谱设计和脚本化处理的一实施例的流程图。
图50是示出根据本公开的按照矩形布局配置的机器人餐馆厨房模块的第一实施例的框图,该厨房具有多对机器手以用于同时进行食物制备处理。
图51是示出根据本公开的按照U形布局配置的机器人餐馆厨房模块的第二实施例的框图,该厨房具有多对机器手以用于同时进行食物制备处理。
图52是示出根据本公开的具有感测炊具和曲线的机器人食物制备系统的第二实施例的框图。
图53是示出根据本公开的第二实施例中的机器人食物制备系统的一些物理元件的框图。
图54是示出根据本公开的来自厨师工作室中的感测炊具的不同传感器的具有多个数据点的记录温度曲线的曲线图。
图55是示出根据本公开的来自厨师工作室中的感测炊具的、用于传输给操作控制单元的记录温度和湿度曲线的曲线图。
图56是示出根据本公开的感测炊具的框图,所述感测炊具用于基于来自平底锅上的不同区域的温度曲线的数据进行烹饪。
图57是示出根据本公开的机器人厨房根据在标准化机器人厨房中的一条或多条先前记录的参数曲线来制备菜肴的处理的第二实施例的流程图。
图58示出了根据本公开的厨师工作室中的感测数据捕获过程的一实施例。
图59示出了根据本公开的家庭机器人烹饪处理的过程和流程。第一步骤涉及用户选择菜谱以及获取数字形式的菜谱。
图60是示出根据本公开的具有烹饪操作控制模块以及命令和视觉监视模块的机器人食物制备厨房的第三实施例的框图。
图61是示出根据本公开的具有机器臂和手活动的机器人食物制备厨房的第三实施例的顶视平面图的框图。
图62A是示出根据本公开的采用机器人的机器人食物制备厨房的第四实施例的框图;图62B是示出根据本公开的采用人形机器人的机器人食物制备厨房的第四实施例的顶视平面图的框图;以及图62C是示出根据本公开的采用人形机器人的机器人食物制备厨房的第四实施例的透视平面图的框图。
图63是示出根据本公开的机器人的人类模拟器电子知识产权(IP)库的框图。
图64是示出根据本公开的机器人的人类情感识别引擎的框图。
图65A是示出根据本公开的机器人人类智能引擎的框图;以及图55B是示出根据本公开的机器人人类智能引擎的处理的流程图。
图66A是示出根据本公开的机器人绘画系统的框图;图66B是示出根据本公开的机器人绘画系统的各种部件的框图;以及图66C是示出根据本公开的机器人人类绘画技巧复现引擎的框图。
图67A是示出根据本公开的绘画工作室中对艺术家的记录处理的流程图;以及图67B是示出根据本公开的机器人绘画系统的复现处理的流程图。
图68A是示出根据本公开的音乐家复现引擎的实施例的框图;以及图68B是示出根据本公开的音乐家复现引擎的处理的框图。
图69是示出根据本公开的护理复现引擎的实施例的框图。
图70A-70B是示出根据本公开的护理复现引擎的处理的流程图。
图71是示出根据本公开的具有创建者(creator)记录系统和商业机器人系统的机器人人类技能复现系统的一般适用性(或通用性)的框图。
图72是示出根据本公开的具有各种模块的机器人人类技能复现引擎的软件系统图。
图73是示出根据本公开的机器人人类技能复现系统的一实施例的框图。
图74是示出根据本公开的具有控制点的人形机的框图,所述控制点用于利用标准化操作工具、标准化位置和取向、以及标准化装置来进行技能执行或复现处理。
图75是示出根据本公开的人形机复现程序的简化框图,所述人形机复现程序通过按周期性时间间隔跟踪手套传感器的活动来复现所记录的人类技能活动的过程。
图76是示出根据本公开的创建者活动记录和人形机复现的框图。
图77示出了作为本公开的高层级功能性描述的、用于通用人形机器人的总体机器人控制平台。
图78是示出根据本公开的作为人形机应用任务复现过程的一部分的微操纵库的生成、转移、实施和使用的示意图的框图。
图79是示出根据本公开的基于工作室的和基于机器人的感测数据输入类别和类型的框图。
图80是示出根据本公开的基于物理/系统的微操纵库的基于动作的双臂和躯干拓扑的框图。
图81是示出根据本公开的用于特定任务的动作序列的微操纵库的操纵阶段组合和转换的框图。
图82是示出根据本公开的从工作室数据构建一个或多个微操纵库(通用的和特定任务的)的过程的框图。
图83是示出根据本公开的机器人经由一个或多个微操纵库数据集来执行任务的框图。
图84是示出根据本公开的自动化微操纵参数集构建引擎的示意图的框图。
图85A是示出根据本公开的机器人系统的数据中心视图的框图。
图85B是示出根据本公开的微操纵机器人行为数据的成分、链接和转换中的各种微操纵数据格式的示例的框图。
图86是示出根据本公开的在机器人硬件技术概念、机器人软件技术概念、机器人商业概念和用于承载机器人技术概念的数学算法之间的不同层级双向抽象的框图。
图87A是示出根据本公开的人形机的一实施例的框图;图87B是示出根据本公开的具有陀螺仪和图形数据的人形机实施例的框图;以及图87C是示出根据本公开的人形机上的创建者记录装置的绘画图示,包括身体感测服、臂外骨架(arm exoskeleton)、头套(headgear)和感测手套。
图88是示出根据本公开的机器人人类技能主题的专家微操纵库的框图。
图89是示出根据本公开的用于代替人手技能活动的通用微操纵电子库的创建过程的框图。
图90是示出根据本公开的机器人执行任务的框图,其中机器人用通用微操纵以多个阶段执行任务。
图91是示出根据本公开的在微操纵执行阶段的实时参数调整的框图。
图92是示出根据本公开的用于制作寿司的一组微操纵的框图。
图93是示出根据本公开的用于制作寿司的一组微操纵中的切割鱼肉的第一微操纵的框图。
图94是示出根据本公开的在用于制作寿司的一组微操纵中从容器取出米饭的第二微操纵的框图。
图95是示出根据本公开的在用于制作寿司的一组微操纵中抓取鱼片的第三微操纵的框图。
图96是示出根据本公开的在用于制作寿司的一组微操纵中将米饭和鱼肉固定成期望形状的第四微操纵的框图。
图97是示出根据本公开的在用于制作寿司的一组微操纵中按压鱼肉以包裹(hug)米饭的第五微操纵的框图。
图98是示出根据本公开的以任何顺序或以任何组合并行发生的用于弹钢琴的一组微操纵的框图。
图99出根据本公开的用于弹钢琴的一组微操纵中,并行发生的用于弹钢琴的一组微操纵中的用于右手的第一微操纵和用于左手的第二微操纵的框图。
图100根据本公开的用于弹钢琴的一组微操纵中,并行发生的一组微操纵中的用于右脚的第三微操纵和用于左脚的第四微操纵的框图。
图101是示出根据本公开的用于弹钢琴的一组微操纵中,与一个或多个其他微操纵并行发生的用于移动身体的第五微操纵的框图。
图102是示出根据本公开的以任何顺序或以任何组合并行发生的用于人形机行走的一组微操纵的框图。
图103是示出根据本公开的用于人形机行走的一组微操纵中右腿的迈步(stride)姿势的第一微操纵的框图。
图104是示出根据本公开的用于人形机行走的一组微操纵中右腿的踏步(squash)姿势的第二微操纵的框图。
图105是示出根据本公开的用于人形机行走的一组微操纵中右腿的通过(passing)姿势的第三微操纵的框图。
图106是示出根据本公开的用于人形机行走的一组微操纵中右腿的伸展(stretch)姿势的第四微操纵的框图。
图107是示出根据本公开的用于人形机行走的一组微操纵中左腿的迈步姿势的第五微操纵的框图。
图108是示出根据本公开的具有三维视觉系统的机器人护理模块的框图。
图109是示出根据本公开的具有标准化机柜的机器人护理模块的框图。
图110是示出根据本公开的具有一个或多个标准化存储器、标准化屏幕和标准化机柜的机器人护理模块的框图。
图111是示出根据本公开的具有可伸缩主体的机器人护理模块的框图,所述可伸缩主体具有一对机器臂和一对机器手。
图112是示出根据本公开的机器人护理模块执行各种动作以帮助老年人的第一示例的框图。
图113是示出根据本公开的机器人护理模块装载和卸载轮椅的第二示例的框图。
图114是示出根据本公开的人形机器人充当两个人类源(human source)之间的服务者(facilitator)的图画示图。
图115是示出根据本公开的人形机器人在人A的直接控制下用作人B的治疗师的图画示图。
图116是示出根据本公开的电机相对于机器手和机器臂的安置的第一实施例的框图,所述电机具有移动臂所需的全转矩。
图117是示出根据本公开的电机相对于机器手和机器臂的安置的第二实施例的框图,所述电机具有移动臂所需的减小的转矩。
图118A是示出根据本公开的用于在具有烤箱的机器人厨房中使用的、从悬挂座(overhead mount)延伸的机器臂的主视图的图画示图;以及图118B是示出根据本公开的用于在具有烤箱的机器人厨房中使用的、从悬挂座延伸的机器臂的俯视图的图画示图。
图119是示出根据本公开的用于在具有带搁板的滑动储存库的机器人厨房中使用的、从悬挂座延伸的机器臂的主视图的图画示图。
图120-129是根据本公开的机器人抓取(gripping)选项的各种实施例的图画示图。
图130A-H是示出根据本公开的适于将机器手附接到各种厨房用具和炊具的炊具把手的图画示图。
图131是根据本公开的在机器人厨房中使用的混合器(blender)部分的图画示图。
图132是示出根据本公开的在机器人厨房中使用的各种厨房保持器(holder)的图画示图。
图133A-133C示出根据本公开的机器人执行的样本微操纵,包括机器人制作寿司、机器人弹钢琴、机器人将机器人从第一位置移动到第二位置、机器人从第一位置跳到第二位置、人形机从书架取书、人形机将包从第一位置带到第二位置、机器人打开罐子、以及机器人将食物放入碗中供猫食用。
图134A-134I示出根据本公开的机器人执行的多层级样本微操纵,包括测量、灌洗、补充氧气、维持体温、插入导管、物理治疗、卫生规程、喂食、分析取样、造口和导管护理、伤口护理、以及药物管理方法。
图135示出根据本公开的多层级样本微操纵,其用于机器人执行插管、复苏/心肺复苏、失血补充、止血、气管紧急操作、骨折、以及伤口缝合。
图136示出根据本公开的样本医疗设备和医疗装置的列表。
图137A-137B示出根据本公开的微操纵样本护理服务。
图138示出根据本公开的另一设备列表。
图139描绘了示出根据本公开的构造为宏观操纵/微观操纵的物理层的一个实施例的框图。
图140描绘了根据本公开的宏观操纵子系统和微观操纵子系统内的软件模块/动作层中的主动作块以及专用于每个子系统的相关联微操纵库的逻辑图。
图141描绘了示出根据本公开的宏观操纵和微观操纵物理子系统及其相关联的传感器、致动器和控制器,以及它们与它们各自的高层级和子系统规划器和控制器以及世界与交互感知和建模系统的互连的框图。
图142描绘了根据本公开的示出用于基于感知和模型数据、传感器反馈数据的微操纵和命令以及基于动作基元分量的微操纵命令的多层级生成过程的架构的一个实施例的框图,在将所述分量配备给负责宏观和微观操纵子系统的微操纵任务执行规划器之前对其进行组合和检查。
图143描绘了根据本公开的针对任何机器人系统生成微操纵命令堆栈序列的过程,在这种情况下,该过程被解构为针对已在物理和逻辑上划分为宏观操纵子系统和微观操纵子系统的单个机器人系统生成两个这样的命令序列。
图144描绘了示出根据本公开的构造为宏观操纵/微观操纵的物理层的另一实施例的框图。
图145描绘了根据本公开的示出用于基于感知和模型数据、传感器反馈数据的微操纵和命令以及基于动作基元分量的微操纵命令的多层级生成过程的架构的另一实施例的框图,在将所述分量配备给负责宏观和微观操纵子系统的微操纵任务执行规划器之前对其进行组合和检查。
图146描绘了根据本公开的用于确定用于高保真度控制的系统的宏观/微观逻辑和物理故障的决策结构的一个实施例。
图178A示出了根据示例性环境的AP数据。
图178B示出了根据示例性环境的包括示例性微操纵的表格。
图179示出了根据示例性环境的人形机器人。
图180示出根据示例性环境的包括多个APSB的示例性AP。
图181示出了根据示例性环境的机器人助手系统的轨迹痕迹(trail)。
图182示出了根据示例性环境的时序图。
图183示出了根据示例性环境的在非结构化环境中的对象交互。
图184示出了根据示例性环境的在复杂环境中的规划和执行的时序。
图185示出了根据示例性环境的用于指示总等待时间对约束数量的线性依赖性的图。
图186示出了根据示例性环境的不完整APA的信息流和生成。
图187是示出用于预先规划的解决方案的数据库的写入和读出方案的框图。
图188A是表示标记的示例的图画示图;图188B示出了在计算标记位置时的一些示例数学表示。
图189是示出打开具有一个或多个标记的瓶子的示意图。
图190是示出计算机设备的示例的框图,计算机可执行指令执行本文所讨论的机器人方法并且可以在计算机设备上安装和执行。
图179示出了根据示例性实施例的用于部署机器人助手的机器人操作生态系统。
图180A示出了根据示例性实施例的图179的机器人助手在厨房中的一种配置的前透视图。
图180B示出了根据示例性实施例的图179的机器人助手在实验室中的一种配置的前透视图。
图180C示出了根据示例性实施例的图179的机器人助手在浴室中的一种配置的前透视图。
图180D示出了根据示例性实施例的图179的机器人助手在仓库中的一种配置的前透视图。
图181示出了根据示例性实施例的图179的机器人助手的架构。
图182A示出了根据示例性实施例的包括灯和摄像机的图181的机器人助手的末端执行器。
图182B示出了根据示例性实施例的包括灯和摄像机的图181的机器人助手的末端执行器。
图182C示出了根据示例性实施例的包括灯和摄像机的图181的机器人助手的末端执行器。
图182D示出了根据示例性实施例的包括灯和摄像机的图181的机器人助手的末端执行器。
图182E示出了根据示例性实施例的图181的机器人助手的末端执行器的各种视图。
图182F(1)示出了根据示例性实施例的包括压力传感器的图181的机器人助手的末端执行器。
图182F(2)示出了根据示例性实施例的包括压力传感器的图181的机器人助手的末端执行器。
图182F(3)示出了根据示例性实施例的图182F(2)的机器人助手的末端执行器的手的压力传感器。
图182F(4)示出了根据示例性实施例的图182F(2)的机器人助手的末端执行器的手的感测区域。
图183是示出根据示例性实施例的使用图181的机器人助手执行交互的过程的流程图。
图184是示出根据示例性实施例的图181的生态系统的部分的架构图。
图185示出了根据示例性实施例的图181的机器人助手的通用视觉子系统5002r-5的架构。
图186A示出了根据示例性实施例的使用图185的通用视觉子系统来识别对象的架构。
图186B示出了根据示例性实施例的使用图181的机器人助手来识别环境或工作空间中的对象的过程的序列图。
图187A示出了根据示例性实施例的图181的机器人助手的机器臂和标准对象之间的交互。
图187B示出了根据示例性实施例的图181的机器人助手的机器臂和非标准对象之间的交互。
图187C示出了根据示例性实施例的图181的机器人助手的机器臂和非标准对象之间的交互。
图187D示出了根据示例性实施例的图181的机器人助手的机器臂和非标准对象之间的交互。
图187E示出了根据示例性实施例的图181的机器人助手的机器臂和标准对象之间的交互。
图188示出了根据示例性实施例的使用图181的机器人助手执行交互的过程的流程图。
图188B示出了根据示例性环境的机器人助手系统的完整层次结构或架构。
图188C示出了根据示例性环境的致动器和传感器组、传感器收集器、运动链、处理器系统和中央处理器之间的连接。
图188D示出了根据示例性环境的表示在硬实时环境中的带宽与等待时间之间的连接的方案。
图189A示出了根据示例性实施例的由三个2D二进制代码标记组成的三角形标记。
图189B示出了根据示例性实施例的由三个彩色圆圈形状组成的三角形标记。
图189C示出了根据示例性实施例的由三种颜色的正方形形状组成的三角形标记。
图189D示出了根据示例性实施例的由二进制代码标记和彩色形状标记两者组成的三角形标记。
图190示出了根据示例性实施例的三角形标记。
图191A示出了根据示例性实施例的三角形标记。
图191B示出根据示例性实施例的三角形标记。
图192A示出了根据示例性实施例的三角形标记。
图192B示出了根据示例性实施例的三角形标记。
图192C示出了根据示例性实施例的三角形标记。
图192D示出了根据示例性实施例的三角形标记。
图193A(1)示出了根据示例性实施例的三角形标记。
图193A(1)示出了根据示例性实施例的三角形标记。
图193A(2)示出了根据示例性实施例的三角形标记和ArUco标记。
图193A(3)示出了根据示例性实施例的三角形标记和ArUco标记。
图193B(1)示出了根据示例性实施例的三角形标记。
图193B(2)示出了根据示例性实施例的三角形标记。
图194示出了根据示例性实施例的使用三角形标记的仿射变换。
图195示出了根据示例性实施例的在旋转之前、旋转之后以及在拉伸之后的仿射变换的旋转和拉伸部分的参数。
图196示出了根据示例性实施例的由末端执行器的摄像机对三角形标记的三角形进行的成像。
图197示出了根据示例性实施例的由末端执行器的摄像机对三角形标记进行的成像,以计算所需的摄像机移动。
图198示出了根据示例性实施例的用于从摄像机的相对坐标系转换成绝对坐标系的计算出的角度。
图199示出了根据示例性实施例的一系列点,这些点定义了将由末端执行器与之交互的对象的一部分。
图200示出了根据示例性实施例的示例性方程的参数,该方程用于相对于来自对象轮廓的一系列点中的三个点来找到多边形边的向量并计算它们的长度和随后的边之间的角度。
图201示出根据示例性实施例的由多个弯折组成的弯折序列。
图202A示出了根据示例性实施例的棋盘或棋盘格标记。
图202B示出了根据示例性实施例的由棋盘或棋盘格标记和ArUco标记组成的组合标记。
图203示出了根据示例性实施例的用于执行基于标记的定位的示例性角度、坐标和测量。
图204示出根据示例性实施例的使用特征分析算法识别的非标准对象的示例性特征。
图204B示出了根据示例性环境的机器学习算法的广泛分类。
图204C示出了根据示例性环境的机器学习算法的本质。
图205示出了根据示例性实施例的本地坐标系和全局坐标系上的活动。
图206是根据示例性实施例的机器人助手的嵌入式视觉子系统的系统图。
图207A-图207D示出了根据示例性环境的电子库存系统的储存单元(抽屉)的示例性实施例。
图207E示出根据示例性环境的电子库存系统的储存单元(抽屉)的主要组件的示例方案。
图207F示出了根据示例性环境的储存单元中的一个或多个嵌入式处理器的模块的示例性构造性布置。
图207G示出了根据示例性环境的电子库存系统中的客户端-服务器环境的各种组件。
图208A是根据示例性实施例的计算机控制的厨房的透视图。
图208B是根据示例性实施例的计算机控制的厨房的透视图。
图208C是根据示例性实施例的计算机控制厨房的主视图。
图208D是根据示例性实施例的计算机控制厨房的透视图。
图209是根据示例性实施例的机器人助手的组件的框图。
图209C–图209D示出了根据示例性环境的机器人助手系统的顶层级子系统的三层组成1和组成2。
图800A示出了根据示例性环境的AP数据。
图801示出了根据示例性环境的包括示例性微观操纵的表格。
图802示出了根据示例性环境的人形机器人。
图803示出了根据示例性环境的包括多个APSB的示例性AP。
图804示出了根据示例性环境的机器人助手系统的轨迹痕迹。
图805示出了根据示例性环境的时序图。
图806示出了根据示例性环境的在非结构化环境中的对象交互。
图807示出了根据示例性环境的在复杂环境中的规划和执行的时序。
图808示出了根据示例性环境的用于指示总等待时间对约束数量的线性依赖性的图。
图809示出了根据示例性环境不完整APA的的信息流和生成。
图901示出了根据本公开的实施例的用于将一个或多个对象与机器人系统耦接的耦接设备的分解图。
图902示出了图1a的耦接设备的透视图,其中第一耦接构件和第二耦接构件彼此耦接。
图903a示出了根据本公开的实施例的具有至少一个突起的第一耦接构件的透视图。
图903b示出了根据本公开实施例的具有至少一个凹口的第二耦接构件的透视图。
图903c示出了根据本公开实施例的图903a的第一耦接构件与图903b的第二耦接构件的接合的透视图。
图903d示出了根据本公开实施例的图903a的第一耦接构件与图903b的第二耦接构件耦接的侧视图。图903e示出了根据本公开的实施例的用于仿真的一个或多个对象的透视图。
图903f示出了根据本公开的实施例的图3e的一个或多个对象在不同位置处承受载荷的透视图。图903g示出了根据本公开的实施例的图3e的一个或多个对象在不同位置处承受载荷的俯视图。图904a-904d示出了根据本公开的另一实施例的具有圆形锁定机构的耦接设备的实施例。
图905a-905e示出了根据本公开的另一实施例的具有电磁锁定机构的耦接设备的实施例。
图906a-906e示出了根据本公开实施例的具有第二耦接构件的厨房用具的图示。
图907a-907c示出了根据本公开的实施例的机器人系统与一个或多个对象之间的连接的图画图示。
图908a-908e示出了根据本公开的实施例的以导螺杆配置的锁定机构的图画图示。
图910a-910d示出了根据本公开实施例的用于螺线管线圈配置的锁定机构的力计算的图形表示。
附图仅出于说明的目的描绘了本公开的实施例。本领域技术人员将从以下描述中容易地认识到,在不脱离本文描述的公开原理的情况下,可以采用本文所示的结构和方法的替代实施例。
具体实施方式
将参考图1-910d提供对本发明的结构性实施例和方法的描述。应理解,无意将本发明限制到具体公开的实施例,而是本发明可以采用其他特征、元件、方法和实施例来实践。在各实施例中,通常采用类似的附图标记来表示类似的元件。
下述定义适用于文中描述的元件和步骤。这些术语可类似地进行扩展。
抽象数据——是指对机器运行而言实用的抽象菜谱,其具有机器需要知晓以用于正确运行和重现的很多其他数据元素。这种所谓的元数据或对应于烹饪处理中的特定步骤的附加数据,不管是直接的传感器数据(时钟时间、水温度、摄像机图像、所使用的用具或食材(ingredient)等)还是通过对更大数据集进行解释或抽象化而产生的数据(例如,来自用于提取图像中的对象的位置和类型的激光器的、覆盖有来自摄像机照片的纹理和颜色图的三维范围云等)。元数据都带有时间戳,并且由机器人厨房用于随着其逐步完成菜谱中的步骤序列,在每个时间点上设置、控制和监视所有处理和相关方法以及所需设备。
抽象菜谱——是指对厨师菜谱的表示,人类将其认识为通过如下来表示:使用特定食材,按特定顺序,通过一系列处理和方法以及人类厨师的技巧来进行制备和组合。机器用来以自动化方式运行的抽象菜谱需要不同类型的分类和顺序。尽管所执行的总体步骤与人类厨师采取的步骤相同,但是机器人厨房实用的抽象化菜谱要求额外的元数据作为菜谱中的每一步骤的一部分。这样的元数据包括烹饪时间和诸如温度(及其随时间的变化)、烤箱设置、所采用的工具/设备之类的变量等。基本上,机器可执行的菜谱脚本需要具有所有可能的与时间相关的对于烹饪处理具有重要性的测量变量(所有的都是当人类厨师在厨师工作室内制备菜谱时测得并储存的),这些变量既包括总体的,也包括处于烹饪序列的每个处理步骤内的。因此,抽象菜谱是映射到机器可读的表示或域的烹饪步骤的表示,其通过一组逻辑抽象化步骤将来自人类域的所需处理变为机器可理解且机器可执行域的处理。
加速度——是指机器臂可绕轴或沿短距离上的空间轨迹加速的最大速度变化速率。
精确度——是指机器人能够在怎样的接近程度上达到所命令的位置。精确度由机器人的绝对位置对照命令位置之间的差确定。可以借助于外部感测,例如机器手上的传感器或利用多个(多模)传感器的实时三维模型来对精确度进行改善、调整或校准。
动作基元——在一实施例中,该术语是指不可分的机器人动作,例如,将机器人设备从位置X1移动到位置X2,或者感测用于食物制备的对象的距离而不必获得功能结果。在另一实施例中,该术语是指由用于完成微操纵(mini-manipulation)的一个或多个这样的单元的序列中的不可分机器人动作。这些是同一定义的两个方面。
替代功能动作基元(AFAP)——是指替代功能动作基元,而不是特定功能动作基元,通过更改机器人相对于被操作对象或操作环境的初始参数(包括初始位置、初始取向和/或机器人移动方式以便获得功能结果),以实现该特定功能动作基元的相同功能结果。
自动化剂料(dosage)系统——是指标准化厨房模块中的剂料容器,在其中根据应用释放特定量的食物化学化合物(例如,盐、糖、胡椒粉、香料、任何种类的液体,诸如水、油、香精、番茄酱等)。
自动化存储和输送系统——是指标准化厨房模块中的存储容器,其维持所存储食物的特定温度和湿度;每个存储容器分配有代码(例如,条形码),使机器人厨房能够识别并检索出特定的存储容器将其中存储的食物内容输送到何处。
粗略——指其幅度在特定子系统可达到的最大工作空间维度的75%以内的活动。例如,操纵器臂的粗略活动是指在所有可能的方向上、在机器臂本身的最大三维范围所描述的体积内包含的最大维度的75%以内的任何运动。此外,此类系统的典型运动分辨率(受许多因素影响,诸如传感器分辨率、控制器离散化、机械公差、装配倾斜等)最多为所述最大工作空间维度的1/100至1/200。因此,如果一个人类手臂大小的机器臂可以达到直径6英尺的半球内的任何位置,则在最大范围内其最大可分辨(以及相应地,可控的)运动增量将介于0.072英寸至0.14英寸之间的某些位置。
数据云——是指按照特定间隔收集并且基于多重关系,例如时间、位置等汇总的来自特定空间的基于传感器或数据的数值测量结果(三维激光/声程测量、来自摄像机图像的RGB值等)的集合。
专用——是指仅由特定元件或子系统使用的硬件元件,诸如处理器、传感器、致动器和总线。特别是,宏观和微观操纵系统中的每个子系统都包含利用其自身的处理器、传感器和致动器的元件,这些处理器、传感器和致动器仅负责与它们相关联的硬件元件(肩部、手臂关节、手腕、手指等)的活动。
自由度(“DOF”)——是指机械装置或系统能够按照其移动的定义模式和/或方向。自由度数量等于独立位移或运动方面的总数。对于两个机器臂而言,自由度总数加倍。
直接环境——是指从机器人当前位置可以到达的已定义工作空间。
直接标准环境——是指处于已定义和已知状态的直接环境。
边缘检测——是指能够识别多个对象的边缘的基于软件的计算机程序,所述多个对象可在摄像机的二维图像中重叠,但仍能成功识别其边界以辅助对象识别以及抓取和操纵的规划。
环境——是指机器人可以与之交互或碰撞的任何种类的物理对象的集合,包括结构、可移动对象、其他机器人、人类、工具等。
平衡值——是指诸如机器臂之类的机器人附件的目标位置,在该处作用于该附件上的力处于平衡,即,没有净作用力,因而没有净移动。
执行序列规划器——是指能够为诸如臂、分配器、器具等的能够被计算机控制的一个或多个元件或系统建立运行脚本或命令的序列的基于软件的计算机程序。
精细——是指在微观操纵子系统的三维工作空间的最大维度的75%以内的活动。例如,多指手的工作空间可以描述为三维椭圆或球;最大维度(椭圆的长轴或球的直径)将代表精细运动的最大维度。此外,这样大小的系统的典型运动分辨率(受许多因素影响,诸如传感器分辨率、控制器离散化、机械公差、装配倾斜等)最多为所述最大工作空间维度的1/500至1/1,000。因此,如果人类大小的机器手可以达到直径6英寸的半球内的任何位置,则在最大范围内其最大可分辨(以及相应地,可控的)运动增量将介于0.0125到0.006之间。
食物执行保真度——是指机器人厨房,其旨在通过通过观察、测量和理解人类厨师的步骤、变量、方法和处理,由此尝试模仿其技术和技巧,来复现在厨师工作室中生成的菜谱脚本。通过机器制备的菜肴与人类制备的菜肴的接近程度(通过各种主观元素,例如,一致性、颜色、味道等衡量)衡量菜肴制备的执行与厨师的菜肴制作的接近程度,即保真度。这一概念表明,机器人厨房制备的菜肴与人类厨师制备的菜肴越接近,复现处理的保真度就越高。
食物制备阶段(又称为“烹饪阶段”)——是指一项或多项微操纵(包括动作基元)和用于控制标准化厨房模块中的厨房设备和器具的计算机指令的顺序或并行组合。一个或多个食物制备阶段共同表示特定菜谱的整个食物制备处理。
功能动作基元(FAP)——是指获得必要功能结果的不可分割动作基元。
功能动作基元子块(FAPSB)——是指机器人轨迹、视觉系统命令或用具命令。
几何推理——是指能够采用二维(2D)/三维(3D)表面和/或体积数据对特定体积的实际形状和尺寸做出相关推理的基于软件的计算机程序。确定或利用边界信息的能力还允许对图像或模型中存在的特定几何元件的开始和结束以及数量做出相关推断。
抓取推理——是指能够依赖几何和物理推理来规划机器人末端执行器(夹钳、联杆等)乃至末端执行器所持工具/器具之间的多接触(点/面/体积)交互,从而成功地接触、抓取和保持对象,以便在三维空间内对其进行操纵的基于软件的计算机程序。
硬件自动化装置——是指能够连续执行预编程步骤但不具备对其中的任何步骤加以修改的能力的固定处理装置;这样的装置用于不需要任何调整的重复运动。
食材管理和操纵——是指详细地定义每种食材(包括大小、形状、重量、外形尺寸、特性和属性),与特定食材有关的变量的一项或多项实时调整,其可不同于先前储存的食材细节(例如,鱼片的大小、蛋的外形尺寸等),以及执行对食材的操纵活动的不同阶段当中的处理。
厨房模块(或厨房体积)——是指具有标准化的厨房设备集合、标准化厨房工具集合、标准化厨房把手(handle)集合、以及标准化厨房容器集合的标准化完整厨房模块,其具有预定义的空间和尺寸,用于存储、获取和操作标准化完整厨房模块中的每个厨房元件。厨房模块的一个目标在于对厨房设备、工具、把手、容器等进行尽可能多的预定义,从而为机器臂和机器手的活动提供相对固定的厨房平台。厨师厨房工作室中的厨师和在家使用机器人厨房的人(或餐馆里的人)采用标准化厨房模块来最大化厨房硬件的可预测性,同时将厨师厨房工作室和家庭机器人厨房之间存在差异、变化和偏差的风险降至最低。厨房模块有可能具有不同的实施例,包括独立厨房模块和集成厨房模块。将集成厨房模块匹配到典型房屋的常规厨房区域内。厨房模块至少按照两种模式工作,即,机器人模式和正常(手动)模式。
实时计划——是指在执行之前创建的规划,通常取决于直接环境。
机器学习——是指软件部件或程序基于经验和反馈提高其性能的技术。在机器人中经常采用的一种机器学习是强化学习(reinforcement learning),其中将对符合要求的动作予以奖励,对不合乎要求的动作予以惩罚。另一种是基于实例的学习(case-basedlearning),其中记住先前的解决方案,例如人类教导者或机器人本身的动作序列,连同用于解决方案的任何约束或原因,然后在新设置中应用或重新使用。还有其他种类的机器学习,例如,诱导法和转导法。
微操纵(MM)——一般而言,微操纵是指机器人设备进行的任何数量或组合的并且在不同描述性抽象层级的一个或多个行为或任务执行,所述机器人设备在传感器驱动的计算机控制下执行所命令的运动序列,通过一个或多个基于硬件的元件工作并且由多个层级的一个或多个软件控制器引导,从而实现所需的任务执行性能水平,以获得在可接受的执行保真度阈值内接近最佳水平的结果。可接受的保真度阈值是与任务相关的,因此针对每个任务(也称为“特定领域应用”)被定义。在没有特定任务阈值的情况下,典型的阈值可以是最佳性能的0.001(0.1%)。
·在一实施例中,从机器人技术的角度来看,术语微操纵是指机器人执行任务的行为中良好定义的致动器动作的预编程序列和感测反馈的集合,如性能和执行参数(变量、常量、控制器类型和控制器行为等)定义的那样,其用在一个或多个低到高层级的控制回路中以实现一个或多个致动器的期望的运动/交互行为,从单个致动到串行和/或并行的多致动器协调动作(位置和速度)/交互(力和转矩)的序列,从而以期望的性能量度(metrics)实现特定任务。可以通过串行和/或并行地组合较低层级微操纵行为而以各种方式组合微操纵来以更高的(任务描述)抽象水平实现更高层级的更复杂的特定应用任务行为。
·在另一实施例中,从软件/数学的角度来看,术语微操纵是指在最佳结果的阈值内(阈值的示例如在最佳值的0.1、0.01、0.001或0.0001以内,以0.001作为优选的缺省)实现基本功能结果的一个或多个步骤的组合(或序列)。每一步骤可以是动作基元,对应于感测操作或致动器移动、或另一(更小的)微操纵,类似于计算机程序由基本编码步骤以及可以独立或充当子例程的其他计算机程序构成。例如,微操纵可以是抓住鸡蛋,其由感测鸡蛋的位置和取向,然后伸出机器臂,将机器手指移动为具有正确配置,并且施加正确精巧的力量进行抓取——所有这些基元动作所需的电动机操作构成。另一微操纵可以是用刀打开鸡蛋,包括用一只机器手进行的抓取微操纵,随后是用另一只手抓取刀的微操纵,继而是在预定位置用刀以预定力打破鸡蛋的基元动作。
·高层级特定应用任务行为——是指可以用自然的人类可理解的语言描述的、并且人类可容易地将其识别为完成或实现高层级目标的清楚和必要的步骤的行为。可理解的是,许多其他较低层级的行为和动作/活动需要通过多个单独致动和控制的自由度来产生,一些是串行和并行或者甚至循环形式的,以便成功地实现更高层级的特定任务的目标。因此,较高层级的行为由多个层级的低层级微操纵组成,以便实现更复杂的特定任务的行为。以在竖琴上演奏特定音乐片段的第一小节的第一音符的命令作为示例,假定音符是已知的(即,降G调),但是现在必须进行较低层级的微操纵,其涉及通过多个关节来使特定的手指弯曲,移动整个手或使手掌成形以使手指与正确的弦接触,然后以适当的速度和动作继续进行以通过拨弦/弹弦来实现正确的声调的动作。手指和/或手/手掌的所有这些各个微操纵单独地都可被视为各种低层级的微操纵,因为它们不知道总目标(从特定的乐器提取特定音符)。但是在给定乐器上演奏特定音符以获得所需声音的特定任务动作显然是较高层级的特定应用任务,因为它知道总目标,需要在行为/动作之间相互作用,并且控制成功完成所需要的所有较低层级的微操纵。甚至可以将演奏特定音符定义为总体较高层级特定应用任务行为或命令的较低层级微操纵,拼出整个钢琴协奏曲的演奏,其中演奏各个音符可以各自被视为如作曲家期望的那样根据乐谱构造的低层级微操纵行为。
·低层级微操纵行为——是指作为用于实现更高层级的特定任务的活动/动作或行为的基本构建块所需的且基本的动作。低层级行为块或元素可以以一个或多个串行或并行方式组合以实现更复杂的手段或更高层级的行为。作为示例,在所有手指关节处弯曲单个手指是低层级行为,因为它可以以特定顺序与弯曲同一只手上的所有其他手指相组合,并且
基于接触/力阈值被触发开始/停止以实现更高层级的抓取行为,无论所抓取的是工具还是器具。因此,较高层级的特定任务行为抓取由手上的五根手指中的每根进行的感测数据驱动的低层级行为的串行/并行组合构成。因此,所有行为可被分解为基本的较低层级活动/动作,其在以某种方式组合时实现更高层级的任务行为。低层级行为和高层级行为之间的分解或边界可能有点任意,但是考虑其的一种方式是,人们倾向于在没有太多有意识的思考的情况下进行的、作为人类语言上更任务性的动作(例如“抓取工具”)的一部分的活动或动作或行为(例如,围绕工具/器具弯曲手指直到发生接触并且实现足够的接触力为止),可以并且应当被认为是低层级的。就机器语言执行语言而言,缺乏高层级任务感知的所有致动器特定命令肯定都被认为是低层级行为。
模型元素和分类——是指能够将某一场景内的元素理解为在任务的不同部分使用或需要的项的一个或多个基于软件的计算机程序;诸如用于混合的碗和对进行搅拌的汤匙的需要等。可以将场景或全局模型内的多个元素分为若干组,从而允许更快的规划和任务执行。
运动基元——是指定义详细动作步骤的不同水平/域的运动动作,例如,高层级运动基元是抓取杯子,低层级运动基元是将手腕旋转五度。
多模态感测单元——是指由能够感测和检测多个模式或多个电磁波段或波谱,尤其能够捕获三维位置和/或运动信息的多个传感器构成的感测单元。电磁波谱可以具有从低频到高频的范围,而不必局限于可被人类感知到。额外模式可包括但不限于其他物理感知,例如,触摸、气味等。
轴数量——需要三个轴以达到空间内的任何点。为了对臂的末端(即腕部)的取向进行完全控制,需要三个额外的旋转轴(偏航(yaw)、俯仰(pitch)、滚转(roll))。
参数——是指可取数值或数值范围的变量。三种参数尤其相关:机器人设备的指令中的参数(例如,臂移动的力或距离)、用户可设置的参数(例如,喜欢肉做得更熟一些还是中等熟)、以及厨师定义参数(例如,将烤箱温度设为350F)。
参数调整——是指基于输入改变参数的值的处理。例如,可基于但不限于食材的属性(例如,尺寸、形状、取向)、厨房工具的位置/取向、设备、用具、微操纵的速度和持续时间改变机器人设备的指令的参数。
有效载荷或承载能力——是指机器臂能够对抗重力承载和保持多大重量(甚至对其加速),其为机器臂的端点位置的函数。
物理推理——是指能够依赖几何推理数据并且采用物理信息(密度、纹理、典型几何结构和形状)帮助推理引擎(程序)来更好地模拟对象并且还预测其在现实世界中的行为(尤其是在抓取和/或操纵/处理时)的基于软件的计算机程序。
适当排序——指的是一组连续指令,在我们的情况下即为时间上连续的基于时间的活动指令,将该指令发布给每个操纵子系统中的一个或多个机器人致动元件。“适当排序”的指令集合的含义承载了关于以下的知识:高层级规划器已经创建了所述指令并将它们串联起来放置在一个序列中,以确保每个被寻址子系统中的每个致动元件都将执行所述指令,从而实现适当同步的运动集合,以实现期望的任务执行结果。
预先规划——是指在直接环境中的执行之前制定规划的一种规划类型,其中预先规划数据和直接环境数据一起保存。
原始数据——是指在观察/监视人类厨师制备菜肴时作为厨师工作室菜谱生成处理的一部分收集到的所有测量和推断的感测数据和表示信息。原始数据的范围可以从简单的数据点,例如时钟时间,到烤箱温度(随时间推移的)、摄像机图像、三维激光生成场景表示数据,再到所采用的器具/设备、所采用的工具、所分配的食材(类型和量)以及何时等。将工作室厨房由其内置传感器收集的并按照原始的带时间戳形式存储的所有信息都看作是原始数据。之后,其他软件处理采用原始数据来生成更高层次的理解和菜谱处理理解,将原始数据转化为其他的带时间戳的经处理/解释的数据。
机器人设备——是指机器人传感器和执行器(effector)的集合。执行器包括一个或多个机器臂以及一个或多个机器手,用于标准化机器人厨房中的操作。传感器包括摄像机、距离传感器、以及力传感器(触觉传感器),它们将其信息发送至控制执行器的处理器或处理器集合。
菜谱烹饪过程——是指含有用于可编程硬自动化装置集合的抽象和详细层级的指令的机器人脚本,所述指令允许计算机可控制装置在其环境(例如,充分配备了食材、工具、器具和设备的厨房)内执行有序的操作。
菜谱脚本——是指作为时间序列的菜谱脚本,含有结构以及命令和执行基元(简单到复杂的命令软件)的列表,其在由机器人厨房元件(机器臂、自动化设备、器具、工具等)按照既定顺序执行时,将实现对人类厨师在工作室厨房内制备的相同菜肴的复现和产生。这样的脚本是时间有序的,等同于人类厨师产生该菜肴所采取的顺序,但是其具有适于机器人厨房内的计算机控制元件并被其所理解的表现形式。
菜谱速度执行——是指在通过复现厨师活动进行食物菜肴制备的菜谱步骤执行当中对时间线进行管理,其中菜谱步骤包括标准化食物制备操作(例如,标准化炊具、标准化设备、厨房处理器等)、微操作和对非标准化对象的烹饪。
可重复性——是指机器臂/手能够在多高的精确度上可重复地返回到编程位置的可接受预设裕量。如果控制存储器中的技术规范要求机器手移动到特定X-Y-Z位置并且处于该位置的+/-0.1mm内,那么测量该机器手返回到所教导的预期/命令位置的+/-0.1mm内的可重复性。
机器人菜谱脚本——是指与机器人/硬自动化执行步骤的适当序列有关的计算机生成的机器可理解指令序列,其中,所述步骤用以对菜谱中的所需烹饪步骤进行镜像从而获得就像厨师做出来的那样的相同最终产物。
机器人服装——厨师工作室中采用的外部仪器化装置或衣物,例如,关节外骨架、具有摄像机可跟踪标记的衣物、手套等,其用以监视和跟踪厨师在菜谱烹饪处理的所有方面当中的活动和动作。
场景建模——是指能够查看一个或多个摄像机的视场内的场景并且能够检测和识别出对于特定任务而言重要的对象的基于软件的计算机程序。这些对象可以是预先教导的,和/或可以是计算机库的一部分,其具有已知的物理属性和使用意图。
智能厨房炊具/设备——是指一项厨房炊具(例如,锅或平底锅)或一项厨房设备(例如,烤箱、烤架或龙头),其具有一个或多个传感器并且基于一个或多个图形曲线(例如,温度曲线、湿度曲线等)制备食物菜肴。
软件抽象食物引擎——是指定义为软件环(software loop)或程序的集合的软件引擎,其协调工作从而对输入数据进行处理,并且通过某种形式的文本或图形输出界面创建供其他软件引擎或终端用户使用的特定期望的输出数据集。抽象软件引擎是一种软件程序,其致力于从特定域内的已知源取得巨大量的输入数据(例如,三维范围测量结果,其形成一个或多个传感器检测到的三维测量结果的数据云),之后对所述数据进行处理,从而获得对不同域中的数据的解释(例如,基于具有相同的竖直数据值的数据在数据云中检测并识别出台表面等),从而识别、检测、划分出与三维空间内的对象(例如,台顶、烹饪锅等)相关的数据读数。抽象处理基本定义为从一个域取得大数据集并且推断出在更高级空间内的结构(例如,几何结构)(抽象出数据点),之后对所述推断做进一步抽象,并从抽象数据集中识别出对象(锅等),以识别出图像中的现实世界元素,其然后可被其他软件引擎用来做出附加决策(对关键对象的处理/操纵决策等)。在本申请中“软件抽象引擎”的同义词可以是“软件解释引擎”,乃至“计算机软件处理和解释算法”。
任务推理——是指能够分析任务描述并且将其分解成一系列的多个机器可执行(机器人或硬自动化系统)步骤以实现任务描述中定义的特定最终结果的基于软件的计算机程序。
三维世界对象建模和理解——是指能够采用感测数据建立所有表面和体积的时变三维模型,使得能够检测、识别和分类其中的对象,并且理解它们的用法和意图的基于软件的计算机程序。
转矩向量——是指作用于机器人附件上的扭转力,包括其方向和大小。
体积对象推断(引擎)——是指能够采用几何数据和边缘信息以及其他感测数据(颜色、形状、纹理等)实现对一个或多个对象的三维识别,以辅助对象识别和分类处理的基于软件的计算机程序。
例如,在以下申请中进一步详细描述了机器人助手和/或机器人设备,包括由此进行的交互或微操纵:2015年2月20日提交的题为“Methods and Systems for FoodPreparation in a Robotic Cooking Kitchen”的美国专利申请序列号14/627,900;2015年8月6日提交的题为“Robotic Manipulation Methods and Systems Based onElectronic Mini-Manipulation Libraries”的美国临时申请序列号62/202,030;2015年7月7日提交的题为“Robotic Manipulation Methods and Systems Based on ElectronicMinimanipulation Libraries”的美国临时申请序列号62/189,670;2015年5月27日提交的题为“Robotic Manipulation Methods and Systems Based on ElectronicMinimanipulation Libraries”的美国临时申请序列号62/166,879;2015年5月13日提交的题为“Robotic Manipulation Methods and Systems Based on ElectronicMinimanipulation Libraries”的美国临时申请序列号62/161,125;2015年4月12日提交的题为“Robotic Manipulation Methods and Systems Based on ElectronicMinimanipulation Libraries”的美国临时申请序列号62/146,367;2015年2月16日提交的题为“Method and System for Food Preparation in a Robotic Cooking Kitchen”的美国临时申请序列号62/116,563;2015年2月8日提交的题为“Method and System for FoodPreparation in a Robotic Cooking Kitchen”的美国临时申请序列号62/113,516;2015年1月28日提交的题为“Method and System for Food Preparation in a RoboticCooking Kitchen”的美国临时申请序列号62/109,051;2015年1月16日提交的题为“Methodand System for Robotic Cooking Kitchen”的美国临时申请序列号62/104,680;2014年12月10日提交的题为“Method and System for Robotic Cooking Kitchen”的美国临时申请序列号62/090,310;2014年11月22日提交的题为“Method and System for RoboticCooking Kitchen”的美国临时申请序列号62/083,195;2014年10月31日提交的题为“Method and System for Robotic Cooking Kitchen”的美国临时申请序列号62/073,846;2014年9月26日提交的题为“Method and System for Robotic Cooking Kitchen”的美国临时申请序列号62/055,799;2014年9月2日提交的题为“Method and System forRobotic Cooking Kitchen”的美国临时申请序列号62/044,677;2015年2月16日提交的题为“Method and System for Food Preparation in a Robotic Cooking Kitchen”的美国临时申请序列号62/116,563;2015年2月8日提交的题为“Method and System for FoodPreparation in a Robotic Cooking Kitchen”的美国临时申请序列号62/113,516;2015年1月28日提交的题为“Method and System for Food Preparation in a RoboticCooking Kitchen”的美国临时申请序列号62/109,051;2015年1月16日提交的题为“Methodand System for Robotic Cooking Kitchen”的美国临时申请序列号62/104,680;2014年12月10日提交的题为“Method and System for Robotic Cooking Kitchen”的美国临时申请序列号62/090,310;2014年11月22日提交的题为“Method and System for RoboticCooking Kitchen”的美国临时申请序列号62/083,195;2014年10月31日提交的题为“Method and System for Robotic Cooking Kitchen”的美国临时申请序列号62/073,846;2014年9月26日提交的题为“Method and System for Robotic Cooking Kitchen”的美国临时申请序列号62/055,799;2014年9月2日提交的题为“Method and System forRobotic Cooking Kitchen”的美国临时申请序列号62/044,677;2014年7月15日提交的题为““Method and System for Robotic Cooking Kitchen”的美国临时申请序列号62/024,948;2014年6月18日提交的题为“Method and System for Robotic Cooking Kitchen”的美国临时申请序列号62/013,691;2014年6月17日提交的题为“Method and System forRobotic Cooking Kitchen”的美国临时申请序列号62/013,502;2014年6月17日提交的题为“Method and System for Robotic Cooking Kitchen”的美国临时申请序列号62/013,190;2014年5月8日提交的题为“Method and System for Robotic Cooking Kitchen”的美国临时申请序列号61/990,431;2014年5月1日提交的题为“Method and System forRobotic Cooking Kitchen”的美国临时申请序列号61/987,406;2014年3月16日提交的题为“Method and System for Robotic Cooking Kitchen”的美国临时申请序列号61/953,930;和2014年2月20日提交的题为“Method and System for Robotic Cooking Kitchen”的美国临时申请序列号61/942,559。
有关通过机器人设备和微操纵库进行复现的附加信息,请参见题为“Methods andSystems for Food Preparation in Robotic Cooking Kitchen”的未决的美国非临时专利申请序列号14/627,900,其现为美国专利9,815,191,以及题为“Robotic ManipulationMethods and Systems for Executing a Domain-Specific Application in anInstrumented Environment with Electronic Manipulation Libraries”的未决的美国非临时专利申请序列号14/829,579,它们的公开内容通过引用整体并入本文。有关仪器化环境中的区域特定应用中的容器的附加信息,请参见题为“Robotic ManipulationMethods and Systems for Executing a Domain-Specific Application in anInstrumented Environment with Containers and Electronic ManipulationLibraries”的未决的美国非临时专利申请序列号15/382,369,其公开内容通过引用整体并入本文。
图1是示出具有机器人硬件12和机器人软件14的总体机器人食物制备厨房10的系统图。总体机器人食物制备厨房10包括机器人食物制备硬件12和机器人食物制备软件14,它们共同运转以执行机器人食物制备功能。机器人食物制备硬件12包括控制标准化厨房模块18(其一般在具有一个或多个传感器的仪器化环境中操作)、多模态三维传感器20、机器臂22、机器手24和捕捉手套26的各种操作和移动的计算机16。机器人食物制备软件14与机器人食物制备硬件12一起操作以捕获厨师在食物菜肴的制备处理中的动作,并通过机器臂和机器手复现厨师的动作以获得该食物菜肴的相同或基本相同的结果(例如,品尝起来一样、闻起来一样等),即品尝起来和人类厨师做的相同或基本相同。
机器人食物制备软件14包括多模态三维传感器20、捕获模块28、校准模块30、转换算法模块32、复现模块34、具有三维视觉系统的质量检查模块36、相同结果模块38和学习模块40。捕获模块28随着厨师进行食物菜肴的制备而捕捉厨师的动作。校准模块30在烹饪处理之前、之中和之后对机器臂22和机器手24进行校准。转换算法模块32配置为将来自厨师工作室中收集的厨师活动的记录数据转换为菜谱修改数据(或变换数据)以供在机器人厨房中使用,在机器人厨房中,机器手将复现厨师菜肴的食物制备。复现模块34配置为在机器人厨房内复现厨师的动作。质量检查模块36配置为在食物制备处理当中、食物制备处理之前或之后执行对机器人厨房制备的食物菜肴的质量检查功能。相同结果模块38配置为判断由机器人厨房内的一对机器臂和机器手制备的食物菜肴品尝起来是否与厨师制备的一样或基本一样。学习模块40配置为向操作机器臂和机器手的计算机16提供学习能力。
图2是示出机器人食物烹饪系统的第一实施例的系统图,该系统包括厨师工作室系统和家庭机器人厨房系统,以用于通过复现厨师的菜谱处理和动作来制备菜肴。机器人厨房烹饪系统42包括厨师厨房44(又称为“厨师工作室厨房”),其将一个或多个软件记录菜谱文件46传送给机器人厨房48(又称为“家庭机器人厨房”)。在一实施例中,厨师厨房44和机器人厨房48采用相同的标准化机器人厨房模块50(又称为“机器人厨房模块”、“机器人厨房体积”或者“厨房模块”或“厨房体积”),从而最大化制备食物菜肴的精确复现,这样做可以减少可能在厨师厨房44制备的食物菜肴和机器人厨房46制备的菜肴之间导致偏差的变数。厨师52佩戴机器人手套或服装,其具有外部传感器装置以用于捕获和记录厨师的烹饪动作。标准化机器人厨房50包括用于控制各种计算功能的计算机16,其中计算机16包括存储器52和机器人烹饪引擎(软件)56,存储器52用于存储来自用于捕获厨师动作的手套或服装54的传感器的一个或多个菜谱软件文件。机器人烹饪引擎56包括动作分析以及菜谱抽象化和排序模块58。机器人厨房48通常用一对机器臂和机器手进行自主操作,由任意用户60负责开启机器人厨房46或对其进行编程。机器人厨房48中的计算机16包括用于操作机器臂和机器手的硬自动化模块62以及用于根据软件菜谱(食材、顺序、处理等)文件复现厨师动作的菜谱复现模块64。
标准化机器人厨房50设计为检测、记录和模拟厨师的烹饪动作,控制诸如随时间的温度之类的重要参数以及机器人厨房站中采用指定用具、设备和工具实施的处理执行。厨师厨房44提供计算厨房环境16,其具有带传感器的手套或带传感器的服装以用于记录和捕获厨师50对于具体菜谱在食物制备中的动作。在针对特定菜肴将厨师49的动作和菜谱处理记录到存储器52中的软件菜谱文件中时,将软件菜谱文件从厨师厨房44经由包括连接至因特网的无线网络和/或有线网络的通信网络46传送至机器人厨房48,从而使用户(任选的)60能够购买一个或多个软件菜谱文件,或者用户能够订购厨师厨房44的会员以接收新的软件菜谱文件或者现有软件菜谱文件的定期更新。在家庭住所、餐馆以及其他为用户60建立厨房以供其制备食物的地方,家庭机器人厨房系统48起着机器人计算厨房环境的作用。家庭机器人厨房系统48包括具有一个或多个机器臂和硬自动化装置的机器人烹饪引擎56,其用于基于从厨师工作室系统44接收到的软件菜谱文件复现厨师的烹饪动作、处理和活动。
厨师工作室44和机器人厨房48代表存在着复杂联系的教导重现系统,其具有多个层级的执行保真度。厨师工作室44生成有关如何制备专业烹饪菜肴的高保真处理模型,而机器人厨房48则是用于通过厨师在厨师工作室中工作而建立的菜谱脚本的执行/复现引擎/处理。机器人厨房模块的标准化是提高性能保真度以及成功/保证的手段。
菜谱执行的不同保真度层级取决于厨师工作室44和机器人厨房48之间的传感器和设备(当然除了食材以外)的相关性。可以将保真度定义为在一范围的一端(完美复现/执行)菜肴品尝起来与厨师制备的相同(不可分辨),而在相反端菜肴可能具有一项或多项相当大的或致命的缺陷,其隐含着质量缺陷(烹饪过度的肉或意大利面)、味道缺陷(原料烧糊)、可食性缺陷(不正确的一致性),甚至隐含着健康方面的缺陷(未烹熟的肉,例如鸡肉/猪肉携带着沙门氏菌等)。
具有能够复现出与厨师在厨师工作室烹饪处理中记录的活动和处理类似的活动和处理的相同硬件、传感器和致动系统的机器人厨房更有可能得到更高保真度的结果。这里的含意是设施需要相同,这隐含着成本和体积两方面。但是,仍然可以采用更加标准化的非计算机控制或计算机监视元件(具有传感器的锅、联网用具,例如烤箱等)实施机器人厨房48,其需要基于更多传感器的理解以允许更复杂的运行监视。由于关于关键元素(正确的食材量、烹饪温度等)和处理(在机器人家庭厨房没有混和器的情况下采用搅拌器/捣碎器)的不确定性现在已经增大,所以毫无疑问具有与厨师相同结果的保证将更低。
公开的一重点在于,与机器人厨房耦接的厨师工作室44的概念是一般概念。机器人厨房48的水平是可变的,其从配备有一组臂和环境传感器的家庭厨房一直到工作室厨房的相同复制而不等,在相同复制的情况下一组臂和关节活动、工具、器具和食材供给能够按照几乎无异的方式复制出厨师的菜谱。唯一要满足的变量是最终结果或菜肴的质量水平,所述质量水平是从质量、外观、味道、可食性和健康的角度衡量的。
一种可能的对机器人厨房中的菜谱结果和输入变量之间的这种关联进行数学描述的方法可以通过下面的函数得到最佳描述:
Frecipe-outcome=Fstudio(I,E,P,M,V)+FRobKit(Ef,I,Re,Pmf)
其中,
Fstudio=厨师工作室的菜谱脚本保真度
FRobKit=机器人厨房的菜谱脚本执行
I=食材
E=设备
P=处理
M=方法
V=变量(温度、时间、压力等)
Ef=设备保真度
Re=复现保真度
Pmf=处理监视保真度
上面的公式将机器人制备的菜谱结果与人类厨师制备和上菜的结果的匹配程度(Frecipe-outcome)与厨师工作室44基于所采用的食材(I)、可用于执行厨师的处理(P)的设备(E)以及在烹饪处理中适当捕获所有关键变量(V)的方法(M)正确捕获和表示菜谱的水平(Fstudio)联系起来;并且将该匹配程度与机器人厨房如何能够通过一函数(FRobKit)表示机器人菜谱脚本的复现/执行处理联系了起来,其中该函数主要由下述内容驱动:适当食材(I)的使用、与厨师工作室中的相比机器人厨房中的设备保真度(Ef)水平、在机器人厨房中能够对菜谱脚本进行复现的水平(Re)以及在何种程度上存在监视和执行校正动作从而实现尽可能最高的处理监视保真度(Pmf)的能力和需求。
函数(Fstudio)和(FRobKit)可以是具有常数、变量以及任何形式的算法关系的线性和非线性函数式的任何组合。这两种函数的此类代数表示的示例可以是:
Fstudio=I(fct.sin(Temp))+E(fct.Cooptop1*5)+P(fct.Circle(spoon)+V(fct.0.5*time)
描绘出制备处理的保真度与作为正弦函数的冰箱中食材随时间变化的温度相关,与食材能在特定站台上的灶口上以特定升温速率加热的速度相关,以及与汤匙能够多好地按照具有特定幅度和周期的圆形路径移动有关,还描绘出必须以不低于人类厨师速度的1/2执行所述处理,以保持制备处理的保真度。
FRobKit=Ef,(Cooktop2,Size)+I(1.25*Size+Linear(Temp))+Re(Motion-Profile)+Pmf(Sensor-Suite Correspondence)
描绘出机器人厨房中的复现处理的保真度与特定烹饪区域的用具类型和布局以及加热元件的尺寸有关,与正受烧炙和烹饪的食材的尺寸和温度情况有关(较厚的牛排需要更长的烹饪时间),同时还保留特定步骤(例如,烧炙或慕斯搅打)的任何搅动和浸浴活动的活动简档,还与机器人厨房和厨师工作室内的传感器之间的对应性是否充分高从而能够信任所监视到的传感器数据精确并且详细到了能够在菜谱的所有步骤当中提供机器人厨房内的烹饪处理的适当监视保真度有关。
菜谱的结果不仅是厨师工作室以怎样的保真度捕获人类厨师的烹饪步骤/方法/处理/技巧的函数,还是机器人厨房能够以怎样的保真度执行这些烹饪步骤/方法/处理/技巧的函数,其中,它们当中的每个都具有影响它们相应的子系统性能的关键元素。
图3是示出用于通过在厨师制备食物菜肴的处理中记录厨师的动作并通过机器臂和机器手制备和复现食物菜肴的标准化机器人厨房50的一实施例的系统图。在该上下文中,术语“标准化”(或“标准”)是指部件或特征的规格是预先设置的,下文将对此予以解释。计算机16通信耦接到标准化机器人厨房50中的多个厨房元件,包括三维视觉传感器66、可缩回安全挡板68(例如,玻璃、塑料或其他类型的防护材料)、机器臂70、机器手72、标准化烹饪用具/设备74、具有传感器的标准化炊具76、标准化把手或标准化炊具78、标准化把手和用具80、标准化硬自动化分配器82(又称为“机器人硬自动化模块”)、标准化厨房处理器84、标准化容器86和冰箱88内的标准化食物储存室。
标准化(硬)自动化分配器82是可通过烹饪计算机16编程和/或控制的装置或一系列装置,其用以为烹饪处理馈送或提供预封装(已知)量的关键材料或者提供专用的关键材料用料,例如,所述材料为香料(盐、胡椒粉等)、液体(水、油等)、或者其他干材料(面粉、糖等)。标准化硬自动化分配器82可位于特定站台处或者可以能够通过机器人访问和触发从而根据菜谱序列进行分发。在其他实施例中,可以使机器人硬自动化模块与其他模块、机器臂、或烹饪用具结合或者串行或并行地序列化。在这一实施例中,标准化机器人厨房50包括机器臂70和机器手72,它们由机器人食物制备引擎56根据存储器52中存储的软件菜谱文件加以控制,以用于在菜肴制备中复现厨师的精确动作,由此得到尝起来就像厨师亲手所做的相同味道的菜肴。三维视觉传感器66提供实现对对象的三维建模,提供厨房活动的可视三维模型,以及对厨房体积进行扫描以评估标准化机器人厨房50内的尺寸和对象的能力。可缩回安全玻璃68包括机器人厨房50上的透明材料,其在处于开启状态时使安全玻璃绕机器人厨房伸展以保护周围的人不受机器臂70和机器手72的移动、热水和其他液体、蒸汽、火以及其他危险影响因素的伤害。机器人食物制备引擎56通信耦接至电子存储器52,以检索先前从厨师工作室系统44发送的软件菜谱文件,针对软件菜谱文件,机器人食物制备引擎56配置为执行制备和复现软件菜谱文件中指示的厨师烹饪方法和处理的处理。机器臂70和机器手72的结合用于在菜肴制备处理中复现厨师的精确动作的作用,从而所得食物菜肴具有与厨师制备的相同食物菜肴相同(或基本相同)的味道。标准化烹饪设备74包括被包括为机器人厨房50的一部分的各种烹饪用具46,其包括但不限于炉/感应/灶口(电灶口、天然气灶口、感应灶口)、烤箱、烤架、烹饪蒸箱和微波炉。标准化炊具和传感器76被用作基于炊具上的传感器记录食物制备步骤以及基于具有传感器的炊具烹饪食物菜肴的实施例,带传感器的炊具包括具有传感器的锅、具有传感器的平底锅、具有传感器的烤箱和具有传感器的炭烤架。标准化炊具78包括煎锅、炒锅、烤锅、多锅、烘烤器、铁锅和蒸锅。机器臂70和机器手72在烹饪处理中操作标准化把手和用具80。在一实施例中,机器手72之一配备有标准化把手,其附连至叉头(fork head)、刀头和汤匙头,可以根据需要加以选择。标准化硬自动化分配器82被包括到机器人厨房50中以提供合宜的(既通过机器臂70又通过人的使用)关键性常用/重复食材,该食材是易于度量/按计量分配的或者是预封装的。标准化容器86是在室温下存放食物的储存位置。标准化冰箱容器88是指但不限于带有标识容器的冰箱,其用于存放鱼、肉、蔬菜、水果、牛奶以及其他易腐食品。可以采用容器标识符对标准化容器86或者标准化储存器88中的容器进行编码,机器人食物制备引擎56能够基于容器标识符确定容器内的食物的类型。标准化容器86为诸如盐、胡椒粉、糖、油和其他香料之类的非易腐食品提供存放空间。具有传感器的标准化炊具76和炊具78可以存放在架子上或橱柜内以供机器臂70选择制备菜肴的烹饪工具之用。典型地,将生鱼、生肉和蔬菜预先切好并存放在带标识的标准化储存器88内。厨房工作台面90为机器臂70提供了根据需要处理肉或蔬菜的平台,所述处理可以包括或不包括切或剁动作。厨房龙头92提供了用于在菜肴制备时清洗或清洁所用食物的厨房水槽空间。在机器臂70完成了制备菜肴的菜谱处理并且制备好上菜时,将菜肴放在上菜台90上,其还允许通过用机器臂70调整环境设置来增强就餐环境,例如摆放用具、酒杯,选择与膳食搭配的酒。标准化机器人厨房模块50中的设备的一实施例是一系列专业的设备以提高制备的各种类型的菜肴的普遍吸引力。
标准化机器人厨房模块50以厨房模块50以及厨房模块本身的各种部件的标准化作为一个目标,从而确保厨师厨房44和机器人厨房48两者之间的一致性,由此使菜谱复现的精确度最大化,同时将厨师厨房44和机器人厨房48之间的发生偏离菜谱菜肴的精确复现的风险降至最低。使厨房模块50标准化的一个主要目的是在厨师制备的第一食物菜肴和通过机器人厨房对相同的菜谱处理所做的随后复现之间获得相同的烹饪处理结果(或者相同的菜肴)。在厨师厨房44和机器人厨房48之间构思标准化机器人厨房模块50中的标准化平台具有若干关键的考虑事项:相同的时间线、相同的程序或模式、以及质量检查。厨师在厨师厨房44制备食物菜肴以及机器手在机器人厨房48实施复现处理所采取的标准化机器人厨房50中的相同时间线是指相同的操纵序列、每一操纵的相同起始和结束时间、以及处理操作之间相同的对象移动速度。标准化机器人厨房50中的相同程序或模式是指在每一操纵记录和执行步骤当中对标准化设备的使用和操作。质量检查涉及标准化机器人厨房50中的三维视觉传感器,其对食物制备处理中的每一操纵动作进行实时监视和调整,以校正任何偏差并且避免有瑕疵的结果。标准化机器人厨房模块50的采用降低并且最小化了在厨师制备的食物菜肴和机器人厨房采用机器臂和手制备的食物菜肴之间得不到相同结果的风险。如果没有机器人厨房模块以及机器人厨房模块内的部件的标准化,厨师厨房44和机器人厨房48之间增大的变化将提高在厨师制备的食物菜肴和机器人厨房制备的食物菜肴之间无法得到相同结果的风险,因为对于厨师厨房44和机器人厨房48之间不同的厨房模块、不同的厨房设备、不同的厨房用具、不同的厨房工具和不同的食材,需要更加精细并且复杂的调整算法。
标准化机器人厨房模块50包括很多方面的标准化。第一,标准化机器人厨房模块50包括任何类型的厨房用具、厨房容器、厨房工具和厨房设备的标准化位置和取向(在XYZ坐标面内)(借助于厨房模块和装置位置上的标准化固定孔)。第二,标准化机器人厨房模块50包括标准化烹饪体积尺寸和架构。第三,标准化机器人厨房模块50包括标准化设备组,例如烤箱、炉、洗碗机、龙头等。第四,标准化机器人厨房模块50包括标准化厨房用具、标准化烹饪工具、标准化烹饪装置、标准化容器、以及冰箱中的标准化食物储存器,所述标准化是就形状、尺寸、结构、材料、容量等而言的。第五,在一实施例中,标准化机器人厨房模块50包括用于操纵任何厨房用具、工具、仪器、容器和设备的标准化通用把手,其使机器手能够仅在一个正确的位置上握住标准化通用把手,同时避免任何不适当的抓取或不正确的取向。第六,标准化机器人厨房模块50包括具有操纵库的标准化机器臂和手。第七,标准化机器人厨房模块50包括用于标准化食材操纵的标准化厨房处理器。第八,标准化机器人厨房模块50包括用于建立动态三维视觉数据的标准化三维视觉装置以及其他可能的用于菜谱记录、执行跟踪和质量检查功能的标准传感器。第九,标准化机器人厨房模块50包括特定菜谱执行期间的每种食材的标准化类型、标准化体积、标准化尺寸和标准化重量。
图4是示出与厨师工作室系统44和家庭机器人厨房系统48中的计算机16结合使用的机器人烹饪引擎56(又称为“机器人食物制备引擎”)的一实施例的系统图。其他实施例可具有厨师厨房44和机器人厨房48的机器人烹饪引擎16中的模块的修改、添加或改变。机器人烹饪引擎56包括输入模块50、校准模块94、质量检查模块96、厨师动作记录模块98、炊具传感器数据记录模块100、用于存储软件菜谱文件的存储器模块102、采用所记录的传感器数据生成机器模块特定的顺序操作简档(profile)的菜谱抽象化模块104、厨师动作复现软件模块106、采用一条或多条感测曲线的炊具感测复现模块108、机器人烹饪模块110(计算机控制以操作标准化操作、微操纵和非标准化对象)、实时调整模块112、学习模块114、微操纵库数据库模块116、标准化厨房操作库数据库模块118、以及输出模块120。这些模块经由总线122通信耦接。
输入模块50配置为接收另一计算装置发送的诸如软件菜谱文件之类的任何类型的输入信息。校准模块94配置为用机器臂70、机器手72以及标准化机器人厨房模块50内的其他厨房用具和设备部件校准其自身。质量检查模块96配置为在取得原料食物以用于烹饪时确定生肉、生疏菜、与牛奶有关的食材以及其他原料食物的质量和新鲜度,以及在将食物接收到标准化食物储存器88内时检查原料食物的质量。质量检查模块96还可配置为基于感测进行质量检查,例如基于食物的气味、食物的颜色、食物的味道、以及食物的图像或外观。厨师动作记录模块98配置为记录厨师制备食物菜肴时的顺序和精确动作。炊具传感器数据记录模块100配置为记录来自配备有放到炊具内的不同区域中的传感器的炊具(例如,具有传感器的平底锅、具有传感器的烤架或具有传感器的烤箱)的感测数据,由此生成一条或多条感测曲线。结果是感测曲线的生成,例如温度(和/或湿度)曲线,其反映对于特定菜肴而言烹饪用具随时间的温度波动。存储器模块102配置为用于存储软件菜谱文件的存储位置,所述文件可以是用于厨师菜谱活动的复现的文件或者是包括感测数据曲线的其他类型的软件菜谱文件。菜谱抽象化模块104配置为采用所记录的传感器数据生成机器模块特定的有序操作简档。厨师动作复现模块106配置为基于存储器52内存储的软件菜谱文件复现厨师在菜肴制备时的精确动作。炊具感测复现模块108配置为遵循一条或多条先前记录的感测曲线的特征复现食物菜肴的制备,所述曲线是在厨师49采用具有传感器的标准化炊具76制备菜肴时生成的。机器人烹饪模块110配置为自主控制和运行标准化厨房操作、微操纵、非标准化对象、以及标准化机器人厨房50中的各种厨房工具和设备。实时调整模块112配置为对与特定厨房操作或微操作相关的变量提供实时调整,以生成作为厨师动作的精确复现或感测曲线的精确复现的所得处理。学习模块114配置为向机器人烹饪引擎56提供学习能力,从而优化机器臂70和机器手72对食物菜肴制备的精确复现,就像食物菜肴是厨师做出来的一样,其可以采用诸如基于实例的(机器人)学习的方法。微操纵库数据库模块116配置为存储微操纵的第一数据库的库。标准化厨房操作库数据库模块118配置为存储标准化厨房用具以及如何操作标准化厨房用具的第二数据库的库。输出模块120配置为将输出计算机文件或控制信号发送到机器人烹饪引擎之外。
图5A是示出厨师工作室菜谱创建处理124的框图,其展示了几个主要功能块,它们支持使用扩展多模态感测以建立用于机器人厨房的菜谱指令脚本。来自多个传感器的传感器数据,例如(但不限于)嗅觉126、视频摄像机128、红外扫描仪和测距仪130、立体(乃至三目)摄像机132、触觉手套134、关节式激光扫描仪136、虚拟世界眼镜138、麦克风140或外骨架运动套装142、人语音144、触摸传感器146、乃至其他形式的用户输入148等,被用于通过传感器接口模块150收集数据。数据被获取和过滤152,包括可能的人类用户输入148(例如,厨师;触摸屏和语音输入),之后多个(并行)软件进程利用时间和空间数据生成用于充实机器特定的菜谱创建处理的数据。传感器可以不限于捕获人的位置和/或运动,还可以捕获标准化机器人厨房50内的其他对象的位置、取向和/或运动。
例如,这些各个软件模块(但并非因此仅局限于这些模块)生成的信息可以是(i)厨师位置和烹饪站ID,其通过位置和配置模块154生成,(ii)臂的配置(通过躯干生成),(iii)所运用的工具以及何时、如何运用,(iv)所采用的用具和在站台上的位置,其通过硬件和变量抽象化模块156生成,(v)借助于它们执行的处理,以及(vi)需要监视的变量(温度、盖子y/n,搅拌等),其通过处理模块158生成,(vii)时间(开始/结束,类型)分配,(viii)所应用的处理(搅动,调料调入等)的类型,以及(ix)所添加的食材(类型、量、预备的状态等),其通过烹饪序列和处理抽象化模块160生成。
之后,所有这样的信息用于通过独立模块162建立一组机器特定的(不仅对于机器臂而言,而且还对于食材分配器、工具和用具等而言)菜谱指令,这些指令被组织为所要执行和监视的顺次/并行重叠任务的脚本。该菜谱脚本连同整个原始数据集166存储164在数据存储模块168中,并可由远程机器人烹饪站通过机器人厨房接口模块170访问或者由人类用户172经由图形用户界面(GUI)174访问。
图5B是示出采用教导/重现处理176的标准化厨师工作室44和机器人厨房50的一实施例的框图。教导/重现处理176描述了在厨师实施菜谱执行180的厨师工作室44内捕获厨师的菜谱实施处理/方法/技巧49的步骤,其中厨师采用一组厨师工作室标准化设备72和菜谱所需食材178来创造菜肴,同时被记录和监视182。原始传感器数据在182中被记录(以供重现),并且被处理以生成不同抽象层次的信息(所采用的工具/设备、所采用的技术、开始/结束的时间/温度等),之后用于建立供机器人厨房48执行的菜谱脚本184。机器人厨房48进行菜谱复现处理106,其简档取决于厨房是标准化类型还是非标准化类型,这由处理186进行检查。
机器人厨房的执行依赖于用户可用的厨房类型。如果机器人厨房采用与厨师工作室内相同/等同(至少在功能上)的设备,那么菜谱复现处理主要是采用原始数据并将其作为菜谱脚本执行处理的一部分予以重现的处理。然而,如果该厨房不同于理想的标准化厨房,那么执行引擎将必须依赖于抽象数据以生成厨房特定的执行序列,从而尝试取得一步步类似的结果。
由于烹饪处理通过监视处理194由机器人厨房内的所有传感器单元连续监视,因而不管是正在使用已知的工作室设备196,还是正在使用混合/非典型的非厨师工作室设备198,系统都能够依据菜谱进程检查200按需做出修改。在标准化厨房的一实施例中,通常采用厨师工作室类型的装备通过执行模块188重现原始数据,预计唯独需要做出的调整就是脚本执行处理中的调适202(重复某一步骤,回到某一步骤,使执行慢下来等),因为在教导和重现数据集之间存在一对一对应关系。但是,就非标准化厨房而言,很可能系统必须通过菜谱脚本修改模块204对实际菜谱本身及其执行进行修改和调适,以适应与厨师工作室44中的工具/器具不同的可用工具/器具192或者与菜谱脚本的测量偏差(肉烹饪太慢,锅内的热点烧糊了乳酷面粉糊等)。采用类似的处理206对总体菜谱脚本进程进行监视,所述类似处理可能根据正在使用的是厨房工作室设备208还是混合/非典型厨房设备210而存在差别。
与使用标准化机器人厨房相比,非标准化厨房获得接近人类厨师烹饪菜肴的可能性更低,标准化机器人厨房具有反映工作室厨房内采用的设备和性能的那些设备和性能。当然,最终主观判断是人(或厨师)的品尝、或质量评估212所做的判断,其将得到(主观)质量判断214。
图5C是示出菜谱脚本生成和抽象化引擎的一实施例216的框图,该引擎涉及作为人类厨师完成的厨师工作室菜谱的一部分的菜谱脚本生成处理的结构和流程。第一步骤是将可在厨师工作室44内测量的所有可用数据输入至中央计算机系统并由其进行过滤,并且通过主进程218加上时间戳,不论所述数据是来自厨师的人机工程数据(臂/手位置和速度、触觉手指数据等)、厨房用具(烤箱、冰箱、分配器等)的状态、具体变量(灶口温度、食材温度等)、所采用的器具或工具(锅/平底锅、炒菜铲等),还是多谱感测设备(包括摄像机、激光器、结构性光系统等)收集的二维和三维数据。
数据处理映射算法220采用更为简单(通常为单个单位)的变量判断处理动作正在何处发生(灶口和/或烤箱、冰箱等),向正被使用的任何物品/器具/设备分配使用标签,不论其被断续使用还是连续使用。其使烹饪步骤(烘焙、烧烤、食材添加等)与具体的时间段相关联,并且跟踪何时、何地添加了哪种以及多少食材。之后,使这一(带时间戳的)信息数据集可在菜谱脚本生成处理222中被数据融合处理所用。
数据提取和映射处理224主要致力于取得二维信息(例如,来自单目/单镜头摄像机)并从其提取关键信息。为了从每个连续图像提取重要且更抽象的描述信息,必须向这一数据集应用若干算法处理。这样的处理步骤可包括(但不限于)边缘检测、颜色和纹理映射,之后采用图像当中的畴域知识并结合以从数据简化和抽象处理226提取的对象匹配信息(类型和尺寸)以允许对象(一件设备或食材等)的识别和定位,再次从数据简化和抽象处理226提取出所述识别和定位,从而允许使图像中的状态(以及描述其的所有相关变量)和项目与特定的处理步骤(煎炸、煮沸、切割等)相关联。一旦提取出了这一数据并使之与特定时间点上的特定图像相关,就可以将其传送给菜谱脚本生成处理222,从而制定出菜谱内的序列和步骤。
数据简化和抽象引擎(软件例程组)226旨在简化较大的三维数据集,并由其提取关键的几何信息和相关信息。第一步骤是从大的三维数据点云中仅提取出在特定时间点上对菜谱重要的具体工作空间区域。一旦完成了对所述数据集的剪裁(trim),就可以通过被称为模板匹配的处理识别出关键几何特征。这允许识别出诸如水平台面、圆筒形锅和平底锅、臂和手位置等的项目。一旦在数据集中确定了典型的已知(模板)几何条目,就进行对象识别和匹配处理以区分出所有项目(普通锅对比平底锅等),并关联其正确的外形规格(锅或平底锅的尺寸等)和取向,继而将其置入到正在通过计算机组建的三维世界模型中。之后,所有的该抽象/提取出的信息在被馈送至菜谱脚本生成引擎222之前,还与数据提取和映射引擎224共享。
菜谱脚本生成引擎处理222负责将所有的可用数据和集合融合(混合/组合)成结构化有序烹饪脚本,每一脚本内具有清楚的处理标识符(预备、预煮、油炸、清洗、涂覆等)和处理特定的步骤,其然后可被转化为机器人厨房的机器可执行命令的脚本,这些脚本在处理完成和总烹饪时间以及烹饪处理的基础上同步。数据融合至少涉及但不唯独地局限于取得每个(烹饪)处理步骤的能力,以及采用适当相关的要素(食材、设备等)、将在处理步骤中采用的方法和处理、以及为了检验适当的进度和执行而要保持和检查的相关的关键控制变量(设定的烤箱/灶口温度/设置)和监视变量(水或肉温度等)来填充要执行的步骤的序列。之后,将融合数据结合到结构化有序烹饪脚本中,该脚本将类似于一组最小描述性步骤(近于杂志上的菜谱),但是在流程中的任何一点上都具有与烹饪处理的每一元素(设备、食材、处理、方法、变量等)相关的大得多的变量组。最终步骤是取得这一有序烹饪脚本并将其变换成具有等价结构的有序脚本,其可通过机器人厨房48内的一组机械/机器人/设备来转换。机器人厨房48正是采用这一脚本执行自动化菜谱执行和监视步骤的。
所有原始的(未处理的)和处理了的数据以及相关脚本(既包括结构有序烹饪序列脚本又包括机器可执行烹饪序列脚本)存储到数据和简档存储单元/处理228中并加上时间戳。用户能够通过GUI从这一数据库进行选择并使机器人厨房通过自动化执行和监视引擎230执行所期望的菜谱,其受自己内部的自动化烹饪处理的连续监视,并由其生成对所述脚本的必要调适和修改,所述调适和修改由机器人厨房元件实施,这样做的目的在于获得完整装盘、可供上菜的菜肴。
图5D是示出用于标准化机器人厨房50中的对象操纵(或对象操作(objecthandling))的软件元素的框图,其采用与微操纵步骤耦合或者借助于微操纵步骤的运动复现概念示出机器人脚本的机器人厨房执行的对象操纵部分的结构和流程250。为了使基于机器臂/手的自动化烹饪可行,监视臂和手/手指中的每一单个关节是不够的。在很多情况下只知道手/腕的位置和取向(并且能够复制),但是之后操纵对象(识别位置、取向、姿势、抓取位置、抓取策略和任务执行)需要采用手和手指的局部感测以及习得的行为和策略来成功地完成抓取/操纵任务。这些运动简档(基于传感器的/受传感器驱动的)、行为和序列存储在机器人厨房系统的微小手操纵库软件仓库(repository)中。人类厨师可以穿戴完整的臂外骨架或仪器化/目标适配运动背心,允许计算机通过内置传感器或通过摄像机跟踪来随时确定手和腕部的确切3D位置。即使双手的十个手指都设置了关节仪器(双手超过30个DoF(自由度),很难佩戴和使用,因而不太可能使用),对所有关节位置的简单的基于运动的重现也不能保证成功的(交互式)对象操纵。
微操纵库是命令软件仓库,在该仓库中基于离线学习处理存储运动行为和处理,其中将存储成功完成特定抽象任务(抓取刀,之后切片;抓取汤匙之后搅动;一只手抓锅,之后用另一只手抓取炒菜铲,并将其放到肉的下面,使肉在平底锅内翻面;等等)的臂/腕/手指运动和序列。该仓库被构建为含有手/腕部的成功传感器驱动运动简档和顺序行为的习得序列(有时也包含臂位置校正),从而确保成功地完成以更加抽象的语言(例如,“握刀并将蔬菜切片”、“将鸡蛋打到碗里”、“将平底锅中的肉翻面”等等)描述的对象(器具、设备、工具)和食材操纵任务。学习处理是迭代式的,并且基于来自厨师工作室的厨师教导运动简档的多次尝试,其然后被离线学习算法模块执行和迭代地修改,直到表明获得了令人满意的执行序列为止。意在用所有必要的元素来充实(先验地和离线地)微操纵库(命令软件仓库),从而允许机器人厨房系统能够成功地与所有设备(器具、工具等)和烹饪处理中需处理(超出了仅做分配范畴的步骤)的主要食材进行交互。在人类厨师佩戴的手套具有嵌入的针对手指和手掌的触觉传感器(接近度、触摸、接触位置/力)时,为机器手在各个位置上配备类似类型的传感器,从而允许采用这些传感器的数据建立、修改和调适运动简档,由此成功地执行预期运动简档和处理命令。
下文将进一步详述机器人厨房烹饪处理(用于厨房环境中的对象的交互式操纵和处理的机器人菜谱脚本执行软件模块)的对象操纵部分252。菜谱脚本执行器模块256采用机器人菜谱脚本数据库254(其含有原始形式、抽象烹饪序列形式和机器可执行脚本形式的数据)逐步完成具体的菜谱执行步骤。配置重现模块258选择配置命令,并将其传送至机器臂系统(躯干、臂、腕和手)控制器270,然后所述控制器270控制物理系统模拟所需的配置(关节位置/速度/转矩等)值。
借助于(i)3D世界建模以及(ii)微操纵通过实时处理检验,使得能够忠实地执行正确的环境交互操纵和处理任务的想法成为了可能。通过添加机器人腕和手配置修改器260执行检验和操纵步骤。该软件模块采用来自3D世界配置模拟器262(其在每一采样步骤由多模态传感器单元提供的感测数据建立新的3D世界模型)的数据查实机器人厨房系统和处理的配置与菜谱脚本(数据库)的要求相匹配;不然的话,其将对所命令的系统配置值制定修改以确保成功地完成任务。此外,机器人腕和手配置修改器260还采用来自微操纵运动简档执行器264的配置修改输入命令。馈送至配置修改器260的手/腕(以及可能的臂)配置修改数据是以微操纵运动简档执行器264知道来自258的预期配置重现应是什么为基础,但是之后修改它是基于其3D对象模型库266和来自配置和排序库268(其基于用于所有主要对象操纵和处理步骤的多个迭代式学习步骤而建立)的先验习得(并且存储的)数据。
尽管配置修改器260持续不断地向机器臂系统控制器270馈送经修改的命令配置数据,但是其依赖于处理/操纵检验软件模块272验证不仅所述操作是否正被正确地进行,而且验证是否需要后续操纵/处理。就后一种情况(判定的答案为“否”)而言,配置修改器260向世界模拟器262和微操纵简档执行器264两者重新请求配置修改(针对腕、手/手指以及可能的臂乃至躯干)更新。目标仅是验证已经成功地完成了操纵/处理步骤或序列。处理/操纵检验软件模块272通过采用对菜谱脚本数据库F2和3D世界配置模拟器262的了解检验菜谱脚本执行器256当前命令的烹饪步骤的适当进展而执行这一检查。一旦认为进展成功,那么菜谱脚本索引递增处理274就通知菜谱脚本执行器256进行至菜谱脚本执行中的下一步骤。
图6是示出根据本申请的多模态感测及软件引擎架构300的框图。实现对机器人烹饪脚本的规划、执行和监视的自主烹饪主要特征之一要求采用多模态感测输入302,其被多个软件模块用于生成下述操作所需的数据:(i)理解所述世界,(ii)对场景和材料建模,(iii)规划机器人烹饪序列中的接下来的步骤,(iv)执行所生成的规划,以及(v)对所述执行进行监视,从而检验正确的操作,所有这些步骤都是按照连续/重复的闭环样式进行的。
多模态传感器单元302,包括但不限于视频摄影机304、IR摄像机和测距仪306、立体(乃至三目)摄像机308和多维扫描激光器310,向主软件抽象化引擎312提供多谱感测数据(在数据采集和过滤模块314中进行采集和过滤之后)。在场景理解模块316中采用所述数据执行多个步骤,例如(但不限于),采用叠加的可视及IR谱颜色和纹理视频信息构建场景的高分辨率和较低分辨率(激光器:高分辨率;立体摄像机:较低分辨率)三维表面体积,允许边缘检测和体积对象检测算法来推断场景中有什么元素,允许采用形状/颜色/纹理/一致性映射算法来运行经处理的数据,从而将经处理的信息馈送给厨房烹饪处理设备操纵模块318。在模块318中,采用基于软件的引擎识别厨房工具和用具并三维地定位其位置和取向,以及识别出可识别食物元素(肉、胡萝卜、调味汁、液体等)并为其加上标签,从而生成让计算机构建和理解特定时间点上的完整场景的数据以用于接下来的步骤规划和处理监视。获得这种数据和信息抽象化的引擎包括但不限于抓取推理引擎、机器人运动学和几何推理引擎、物理推理引擎和任务推理引擎。之后,来自引擎316和318两者的输出数据用于馈送给场景模拟器和内容分类器320,其中用运行机器人烹饪脚本执行器所需的所有关键内容建立3D世界模型。一旦理解了所述世界的完整充实模型,就可以将其馈送至运动和操纵规划器322(如果机器臂抓取和操纵是必需的,那么可以采用相同的数据区分和规划食物和厨房物品的抓取和操纵,具体取决于所需的抓取和放置),从而实现对臂和附加的末端执行器(抓取器和多指手)的运动和轨迹的规划。后续执行序列规划器324为所有的个体机器人/自动化厨房元素创建基于任务的命令的适当顺序,之后其将由机器人厨房致动系统326加以使用。在机器人菜谱脚本执行和监视阶段按照连续闭环重复上面的整个序列。
图7A描绘了标准化厨房50,在本实例中,标准化厨房50起着厨师工作室的作用,在该厨房中,人类厨师49在受到多模态传感器系统66监视的同时进行菜谱创造和执行,从而允许创建菜谱脚本。在标准化厨房内包含很多执行菜谱所需的元素,包括主烹饪模块350,其包括诸如用具360、灶口362、厨房水槽358、洗碗机356、桌面搅拌器和混合器(又称为“厨房混合器”)352、烤箱354和冰箱/冷冻器组合单元364之类的设备。
图7B描绘了标准化厨房50,在这一实例中,其被配置为具有双臂机器人系统的标准化机器人厨房,执行菜谱脚本中定义的菜谱复现处理,双臂机器人系统具有竖直可伸缩旋转躯干接头366,其配备有两个臂70以及两只带腕和手指的手72。多模态传感器系统66持续监视菜谱复现处理的多个阶段中的机器人执行烹饪步骤。
图7C描绘了整个菜谱执行处理中通过监视人类厨师49而进行的菜谱脚本创建相关的系统。在厨师工作室模式中使用相同标准化厨房50,其中厨师能够从工作模块的两侧对厨房进行操作。多模态传感器66监视和收集数据,以及通过厨师佩戴的触觉手套370及仪器化炊具372和设备将收集到的所有原始数据无线中继至处理计算机16,以供处理和存储。
图7D描绘了用于通过利用双臂系统复现菜谱脚本19的标准化厨房50所涉及的系统,双臂系统具有可伸缩旋转躯干374,包括两个臂72、两个机器手腕71和两只带有多个手指的手72(嵌入有感测皮肤和点传感器)。在执行菜谱复现处理中的特定步骤时,机器人双臂系统采用仪器化臂和手连同灶口12上的烹饪用具以及仪器化用具和炊具(图像中的平底锅),与此同时通过多模态传感器单元66对此进行连续监视,以确保复现处理的执行尽可能忠实于人类厨师创建的处理。将所有来自多模态传感器66、由躯干74、臂72、腕71和多指手72构成的双臂机器人系统、用具、炊具和器具的数据无线传输至计算机16,在计算机16中通过板上处理单元16对其进行处理,从而对菜谱的复现处理进行比较和跟踪,从而尽可能忠实地遵循先前创建的菜谱脚本19中定义的并且存储在介质18内的标准和步骤。
可以被修改以用于机器人厨房48的一些合适的机器手包括:由位于英国伦敦的Shadow Robot公司设计的Shadow Dexterous手和精简手套件;由位于德国Lauffen/Neckar的SCHUNK GmbH&Co.KG设计的电伺服5指抓取手SVH;以及由位于德国科隆的DLRRoboticsand Mechatronics公司设计的DLR HIT HAND II。
若干机器臂72适于修改以与机器人厨房48一起操作,其包括:位于丹麦Odense S的Universal Robots A/S的UR3机器人和UR5机器人;由位于德国巴伐利亚州奥格斯堡的KUKARobotics设计的具有各种有效载荷的工业机器人;由位于日本北九州的YaskawaMotoman设计的工业机器臂型号。
图7E是描绘逐步流程和方法376的框图,所述流程和方法确保在通过标准化机器人厨房50执行菜谱脚本时在基于菜谱脚本的菜谱复现处理中存在控制和检验点,其将确保对于特定菜肴而言标准化机器人厨房50的执行所获得的烹饪结果将尽可能接近于人类厨师49制备的该种菜肴。采用菜谱脚本所述并且按照烹饪处理380中的顺序步骤执行的菜谱378,机器人厨房50对菜谱的执行的保真度将在很大程度上取决于对下面的主要控制项的考虑。关键控制项包括选择和使用标准化部分的量和形状的高质量预处理食材382的处理;标准化工具和用具以及带有标准化把手的炊具的使用,以确保以已知取向384正确并且安全地抓取;标准化厨房中的标准化设备386(烤箱、混合器、冰箱等),其在比较人类厨师49制备菜肴的厨师工作室厨房和标准化机器人厨房50时尽可能是等同的;菜谱中将使用的食材的位置和放置388;以及最后机器人厨房模块50中的一对机器臂、腕和多指手,传感器持续监视其受计算机控制的动作390以确保特定菜肴的菜谱脚本的复现处理中的每一阶段的每一步骤的成功执行。最后,确保等同结果392的任务是标准化机器人厨房50的最终目标。
图7F是示出用于在厨师工作室、机器人厨房和其他源之间提供便利的基于云的菜谱软件的框图。在操作标准化机器人厨房50的厨师厨房44和操作标准化机器人厨房50的机器人厨房48之间在云计算396上通信、修改和存储各种类型的数据。云计算394提供存储软件文件的中央位置,包括机器人食物制备56的操作,其可以方便地通过厨师厨房44和机器人厨房48之间的网络检索和上传软件文件。厨师厨房44通过有线或无线网络396经由因特网、无线协议、以及诸如蓝牙之类的短距离通信协议通信耦接到云计算395。机器人厨房48通过有线或无线网络397经由因特网、无线协议和诸如蓝牙之类的短距离通信协议通信耦接到云计算395。云计算395包括:用于存储具有动作、菜谱和微操纵的任务库398a的计算机存储位置;具有登录信息、ID和订阅信息的用户简档/数据398b;具有文本、语音媒体等的菜谱元数据398c;具有标准图像、非标准图像、尺寸、重量和取向的对象识别模块398d;用于对象位置、地点和操作环境的导航的环境/仪表地图398e;以及用于存储机器人命令指令、高层级软件文件和低层级软件文件的控制软件文件398f。在另一实施例中,物联网(IoT)设备可被并入以与厨师厨房44、云计算396和机器人厨房48一起操作。
图8A是示出厨师活动和机器人复现活动之间的菜谱转化算法模块400的一实施例的框图。菜谱算法转换模块404将从厨师工作室44中的厨师活动捕获的数据转换为机器可读和机器可执行语言406,用于命令机器臂70和机器手72在机器人厨房48中复现厨师活动制备的食物菜肴。在厨师工作室44中,计算机16基于厨师佩戴的手套26上的传感器捕获和记录厨师的活动,在表格408中通过垂直列中的多个传感器S0、S1、S2、S3、S4、S5、S6……Sn以及水平行中的时间增量t0、t1、t2、t3、t4、t5、t6……tend对此予以表示。在时间t0,计算机16记录来自从多个传感器S0、S1、S2、S3、S4、S5、S6……Sn接收的传感器数据的xyz坐标位置。在时间t1,计算机16记录来自从多个传感器S0、S1、S2、S3、S4、S5、S6……Sn接收的传感器数据的xyz坐标位置。在时间t2,计算机16记录来自从多个传感器S0、S1、S2、S3、S4、S5、S6……Sn接收的传感器数据的xyz坐标位置。持续这一处理直到在时间tend完成了整个食物制备处理为止,每一时间单元t0、t1、t2、t3、t4、t5、t6……tend的持续时间相同。作为捕获和记录传感器数据的结果,表格408按照xyz坐标示出来自手套26中的传感器S0、S1、S2、S3、S4、S5、S6……Sn的任何活动,其将指示某一具体时间的xyz坐标位置与下一具体时间的xyz坐标位置之间的差别。表格408有效地记录了从起始时间t0到结束时间tend在整个食物制备处理中厨师的活动是如何变化的。可以将这一实施例中的举例说明扩展至两只由厨师49佩戴以在制备食物菜肴的同时捕获其活动的带有传感器的手套26。在机器人厨房48中,机器臂70和机器手72复现从厨师工作室44记录继而转换为机器人指令的菜谱,其中机器臂70和机器手72根据时间线416复现厨师49的食物制备。机器臂70和手72以相同的xyz坐标位置、相同的速度以及如时间线416所示从起始时间t0到结束时间tend的相同时间增量执行食物制备。
在一些实施例中,厨师多次执行相同的食物制备操作,产生从一次到下一次变化的传感器读数以及对应的机器人指令中的参数。每一传感器的跨越同一食物菜肴制备的多次重复的一组传感器读数将提供具有平均值、标准偏差值以及最小和最大值的分布。跨越厨师对同一食物菜肴的多次执行的机器人指令(又称为执行器参数)的对应变化也定义具有平均值、标准偏差值以及最小和最大值的分布。可以采用这些分布确定随后的机器人食品制备的保真度(或精确度)。
在一实施例中,由下式给出机器人食物制备操作的估算平均精确度:
Figure BDA0002425066820000641
其中,C表示一组厨师参数(第1到第n),R表示一组机器人设备参数(对应地第1到第n)。求和式中的分子表示机器人参数和厨师参数之间的差(即,误差),分母针对最大差进行归一化。求和式给出了总的归一化累积误差,即
Figure BDA0002425066820000642
乘以1/n给出了平均误差。平均误差的补数对应于平均精确度。
精确度计算的另一版本是对参数进行重要性加权,其中每一系数(每一αi)表示第i个参数的重要性,归一化累积误差为
Figure BDA0002425066820000643
并且通过下式给出估算平均精确度:
Figure BDA0002425066820000651
图8B是示出厨师49佩戴的具有用于捕获和传输厨师活动的传感器的一副手套26a和26b的框图。在这一意在非限制性地呈现一个示例的说明性示例中,右手手套26a包括25个传感器以捕获手套26a上的各个传感器数据点D1、D2、D3、D4、D5、D6、D7、D8、D9、D10、D11、D12、D13、D14、D15、D16、D17、D18、D19、D20、D21、D22、D23、D24、D25,手套26a可以具有任选的电子和机械线路420。左手手套26b包括25个传感器以捕获手套26b上的各个传感器数据点D26、D27、D28、D29、D30、D31、D32、D33、D34、D35、D36、D37、D38、D39、D40、D41、D42、D43、D44、D45、D46、D47、D48、D49、D50,手套26b可以具有任选的电子和机械线路422。
图8C是示出基于来自厨师感测捕获手套26a和26b的捕获感测数据的机器人烹饪执行步骤的框图。在厨师工作室44中,厨师49佩戴具有用于捕获食物制备处理的传感器的手套26a和26b,其中将传感器数据记录到表格430中。在本示例中,厨师49用刀切胡萝卜,其中胡萝卜的每一片大约1厘米厚。厨师49的这些由手套26a、26b记录下来的动作基元可以构成在时隙1、2、3和4发生的微操纵432。菜谱算法转换模块404配置为根据软件表格434将来自厨师工作室44的记录菜谱文件转换成用于操作机器人厨房28中的机器臂70和机器手72的机器人指令。机器臂70和机器手72借助于实现采用刀切割胡萝卜(其中,胡萝卜的每一片约为1厘米厚)的微操纵的控制信号436制备食物菜肴,所述微操纵是在微操纵库116中预先定义的。机器臂70和机器手72借助于相同的xyz坐标438以及来自实时调整装置112的通过建立特定胡萝卜的临时三维模型440而对该胡萝卜的尺寸和形状做出的可能的实时调整进行自主操作。
如图8D所示,烹饪处理需要一系列步骤,其被称为食物制备的多个阶段S1、S2、S3…Sj…Sn,如时间线456所示。这些步骤可能需要严格的线性/有序的顺序,或者一些步骤可以并行执行;不管怎样都具有阶段的集合{S1、S2、…、Si、…、Sn},必须成功地完成所有这些步骤才能获得整体的成功。如果每一阶段的成功概率为P(si),并且存在n个阶段,那么通过每一阶段的成功概率的积估算总体成功概率:
Figure BDA0002425066820000661
本领域技术人员将认识到,即使各个阶段的成功概率相对较高,但是总体成功概率也可能很低。例如,假定有10个阶段,每一阶段的成功概率为90%,那么总体成功概率为(0.9)10=0.28或28%。
制备食物菜肴的阶段包括一个或多个微操纵,其中每一微操纵包括得到明确定义的中间结果的一个或多个机器人动作。例如,切蔬菜可以是一手抓住蔬菜,另一只手抓住刀,并且应用重复的刀移动,直到切完为止构成的微操纵。制备菜肴的阶段可包括一个或多个切菜微操纵。
成功概率公式在阶段层级上和微操纵层级上同样地适用,只要每一微操纵相对于其他微操纵独立即可。
在一实施例中,为了缓解由于潜在的复合误差导致的成功确定性降低的问题,推荐对所有阶段中的大部分或所有微操纵都采用标准化方法。标准化操作是这样的操作,其可被预先编程、预先测试以及必要时预先调整以选择出具有最高成功概率的操作序列。因而,如果通过各个阶段内的微操纵实施的标准化方法的概率非常高,那么由于先前的工作,直到所有的步骤都变得完美并且受到测试,所以制备食物菜肴的总体成功概率也将非常高。例如,重新来看上面的示例,如果每一阶段采用可靠的标准化方法,那么其成功概率为99%(而不是先前示例中的90%),那么总体成功概率为(0.99)10=90.4%,如前一样假设有10个阶段。这明显优于28%的获得总体正确结果的概率。
在另一实施例中,针对每一阶段提供不止一种替代方法,其中如果一种替代方法失败,那么尝试另一种替代方法。这需要动态监视来确定每一阶段的成功或失败,并且还需要制定备选方案的能力。该阶段的成功概率是所有备选方案的失败概率的补数,从数学上表示如下:
Figure BDA0002425066820000662
在上面的表达式中,si是阶段,A(si)是完成si的一组备选方案。给定备选方案的失效概率是该备选方案的成功概率的补数,即,1-P(si|aj),所有备选方案失败的概率是上述公式中的乘积项。因而,不会全部失败的概率是所述乘积的补数。采用有备选方案的方法,能够将总体成功概率估算为具有备选方案的每一阶段的乘积,即:
Figure BDA0002425066820000671
对于这种具有备选方案的方法,如果10个阶段中的每个具有4个备选方案,并且每一阶段的每一备选方案的预期成功概率为90%,那么总体成功概率为(1-(1-(0.9))4)10=0.99或99%,与之对照的是没有备选方案时仅为28%的总体成功概率。具有备选方案的方法将初始问题从一条具有多个故障点(如果任何阶段失败)的阶段链条变换成了没有单一故障点的链条,因为必须所有的备选方案都失败才能导致任何给定阶段的失败,从而提供了更加鲁棒的结果。
在另一实施例中,将包含标准化微操纵的标准化阶段与食物菜肴制备阶段的备选措施两者相结合,从而得到甚至更鲁棒性的性能。在这样的情况下,对应的成功概率可以非常高,即使只有一些阶段或微操纵具有备选方案。
在另一实施例中,只为具有较低成功概率的阶段提供备选方案,以防失败,例如,没有非常可靠的标准化方法的阶段或者具有潜在变化的阶段,例如,依赖于奇怪形状材料的阶段。该实施例降低了向所有阶段提供备选方案的负担。
图8E是示出作为烹饪食物菜肴所需的阶段数(x轴)的函数的总成功概率(y轴)的曲线图,其中第一曲线示出非标准化厨房458,第二曲线459示出标准化厨房50。在该示例中,假设对于非标准化操作而言每一食物制备阶段的个体成功概率为90%,对于标准化预编程阶段而言为99%。那么就前一种情况而言复合误差要严重得多,如曲线458所示,可以比对曲线459。
图8F是示出采用多阶段机器人食物制备的菜谱460的执行的框图,所述多阶段食物制备采用微操纵和动作基元。可以将每一食品菜谱460划分成多个食物制备阶段:第一食物制备阶段S1 470、第二食物制备阶段S2…第n食物制备阶段Sn 490,它们是由机器臂70和机器手72执行的。第一食物制备阶段S1 470包括一个或多个微操纵MM1 471、MM2 472和MM3473。每一微操纵包括一个或多个获得功能结果的动作基元。例如,第一微操纵MM1 471包括第一动作基元AP1 474、第二动作基元AP2 475和第三动作基元AP3 475,其将获得功能结果477。于是,第一阶段S1 470中的一个或多个微操纵MM1471、MM2 472、MM3 473将获得阶段结果479。一个或多个食物制备阶段S1470、第二食物制备阶段S2和第n阶段食物制备阶段Sn490的组合将通过重复在厨师工作室44中记录的厨师49的食物制备处理而生成基本上相同或相同的结果。
预定义微操纵可用于实现每一功能结果(例如,磕开鸡蛋)。每一微操纵包含若干动作基元的集合,这些动作基元一起作用,从而完成所述功能结果。例如,机器人可以开始于将其手移向鸡蛋,触摸鸡蛋以定位其位置,检查其大小,并执行将鸡蛋抓取并提升到已知的预定配置所需的移动和感测动作。
为了便于理解和组织菜谱,可以将多个微操纵汇集成阶段,例如,调制料汁。执行所有微操纵以完成所有阶段的最终结果是每次以一致的结果复现食物菜肴。
图9A是示出具有五个手指和手腕的机器手72的示例的框图,机器手72具有RGB-D传感器、摄像机传感器和声纳传感器能力,用于检测和移动厨房工具、对象或一件厨房设备。机器手72的手掌包含RGB-D传感器500、摄像机传感器或声纳传感器504f。或者,机器手450的手掌既包括摄像机传感器,又包括声纳传感器。RGB-D传感器500或声纳传感器504f能够检测对象的位置、尺寸和形状,以建立对象的三维模型。例如,RGB-D传感器500采用结构化的光来捕获对象的形状,进行三维映射和定位、路径规划、导航、对象识别和人物跟踪。声纳传感器504f采用声波来捕获对象的形状。置于机器人厨房某处(例如,置于轨道上或机器人上)的视频摄像机66与摄像机传感器452和/或声纳传感器454相结合提供了捕获、遵循或指引厨房工具如厨师49使用的那样(如图7A所示)移动的途径。将视频摄像机66设定到相对于机器手72成一定角度并且相距一定距离的位置,因此其将在更高的水平上检视机器手72抓取对象以及机器手是否已经抓取或松开/释放了对象。RGB-D(红光束、绿光束、蓝光束和深度)传感器的适当示例是微软公司的Kinect系统,其以依靠软件运行的RGB摄像机、深度传感器和多阵列麦克风为特征,这些部件将提供全身3D运动捕获、面部识别和语音识别能力。
机器手72具有置于手掌中央或附近的RGB-D传感器500,以检测对象的距离和形状以及对象的距离,并且用于操纵厨房工具。RGB-D传感器500在将机器手72朝对象方向移动并且做出必要的调整以抓取对象的处理中为机器手72提供引导。其次,声纳传感器502f和/或触觉压力传感器放置到机器手72的手掌附近,以检测对象的距离和形状以及后续接触。声纳传感器502f也可引导机器手72朝向对象移动。手中的额外类型的传感器可包括超声波传感器、激光器、射频识别(RFID)传感器以及其他适当的传感器。此外,触觉压力传感器起着反馈机制的作用,以判断机器手72是否继续施加额外的力,从而在具有足够的压力以安全地拿起对象的点上抓取对象。此外,机器手72的手掌中的声纳传感器502f提供触觉感测功能,以抓取和操纵厨房工具。例如,在机器手72抓取刀切牛肉时,能够在刀结束切牛肉时,即在刀没有阻力时,或者在保持住一对象时,通过触觉传感器检测机器手对刀施加的并由此对牛肉施加的压力的值。所分配的压力不仅是为了固定对象,而且还要不对其(例如,鸡蛋)造成破坏。
此外,机器手72上的每一手指具有处于相应的指尖上的触觉振动传感器502a-e和声纳传感器504a-e,如处于拇指指尖上的第一触觉振动传感器502a和第一声纳传感器504a、处于食指指尖上的第二触觉振动传感器502b和第二声纳传感器504b、处于中指指尖上的第三触觉振动传感器502c和第三声纳传感器504c、处于无名指指尖上的第四触觉振动传感器502d和第四声纳传感器504d以及处于小指指尖上的第五触觉振动传感器502e和第五声纳传感器504e所示。触觉振动传感器502a、502b、502c、502d和502e的每者能够通过使振动的形状、频率、幅度、持续时间和方向发生变化而模拟出不同的表面和效果。声纳传感器504a、504b、504c、504d和504e的每者提供对对象的距离和形状的感测能力、对温度或湿度的感测能力、以及反馈能力。额外的声纳传感器504g和504h可放置在机器手72的手腕上。
图9B是示出具有耦合至一对用于标准化机器人厨房中的操作的机器臂和手的传感器摄像机512的云台头510的一实施例的框图。云台头510具有用于监视、捕获或处理标准化机器人厨房50内的信息和三维图像的RGB-D传感器512。云台头510提供独立于臂和传感器运动的良好位置知觉性。云台头510耦合至一对机器臂70和手72,以执行食物制备处理,但是这一对机器臂70和手72可能引起阻挡。在一实施例中,机器人设备包括一个或多个机器臂70以及一个或多个机器手(或机器爪)72。
图9C是示出用于标准化机器人厨房50内的操作的机器手腕73上的传感器摄像机514的框图。传感器摄像机514的一实施例是安装到相应手72的腕部73上的提供彩色图像和深度感知的RGB-D传感器。相应腕部73上的摄像机传感器514的每个受到臂的有限阻挡,但是在机器手72抓取对象时一般不受阻挡。但是,RGB-D传感器514可能受到相应机器手72的阻挡。
图9D是示出用于标准化机器人厨房50中的操作的机器手72上的手内眼518的框图。每只手72具有传感器,例如,RGB-D传感器,从而通过标准化机器人厨房50中的机器手72提供手内眼功能。每只手内的具有RGB-D传感器的手内眼518提供具有相应的机器臂70和相应的机器手72的有限阻挡的高度图像细节。但是,具有手内眼518的机器手72在抓取对象时可能会受阻挡。
将采用特征点相对于固定参照系(reference frame)的位置描述可形变手掌的形状,如图9E所示。每一特征点表示为随时间的x、y、z坐标位置的向量。在厨师佩戴的感测手套上以及机器人佩戴的感测手套上标出特征点位置。还在所述手套上标出参照系,如图9E所示。在手套上相对于参照系的位置定义特征点。
在厨师执行烹饪任务时,通过安装在工作空间内的经校准的摄像机测量特征点。时域内的特征点轨迹用于将厨师活动与机器人活动相匹配,包括使可形变手掌的形状相匹配。还可以采用来自厨师活动的特征点轨迹为机器人可形变手掌设计提供信息,包括可形变手掌表面的形状以及机器手的关节的安置和运动范围。
如图9E所示,实施例中的特征点560由不同区域(手掌的小鱼际隆起534、鱼际隆起532和MCP垫536)中的传感器(例如,霍耳效应传感器)表示。特征点可在其相应位置相对于参照系被识别出来,参照系在本实施方式中为磁体。磁体生成可被传感器读取的磁场。本实施例中的传感器嵌入在手套下面。
图9I示出具有嵌入的传感器以及一个或多个磁体562的机器手72,其可用作替代机制来确定三维形状特征点的位置。一个形状特征点与每个嵌入的传感器相关联。随着手掌关节的移动以及随着手掌表面响应于外加力发生形变,这些形状特征点560的位置将提供有关手掌表面形状的信息。
在传感器信号的基础上确定形状特征点的位置。传感器提供输出,所述输出允许计算附至磁体的参照系中的距离,所述磁体进一步附至机器人或厨师的手。
基于传感器测量结果以及从传感器校准获得的已知参数计算每一形状特征点的三维位置。可形变手掌的形状包括三维形状特征点的向量,所有这些特征点都在固定至机器人或厨师的手的参照坐标系内表达。要想获得有关人手上的常用接触区域以及抓取功能的额外信息,参考Kamakura,Noriko,Michiko Matsuo,Harumi Ishii,Fumiko Mitsuboshi,and Yoriko Miura,″Patterns of static pretension in normal hands.″AmericanJournal of Occupational Therapy34,no.7(1980):437-445,该文献通过整体引用而合并于此。
图10是示出用机器人姿势、运动和力评估厨师运动的捕获的处理560的一实施例的流程图。数据库561存储机器臂72和机器手72的预定义(或预确定的)抓取姿势562和预定义的手运动,根据重要性564对其加权并且用接触点565和所存储的接触力565对其加标签。在操作567,厨师活动记录模块98配置为部分地基于预定义的抓取姿势562和预定义的手运动563捕获厨师制备食物菜肴的运动。在操作568,机器人食物制备引擎56配置为评估机器人设备配置完成姿势、运动和力,继而完成微操纵的能力。接下来,机器人设备配置经历评估机器人设计参数570、调整设计参数以改善评分和性能571、以及修改机器人设备配置572的迭代处理569。
图11A至图11C是示出与具有手掌520的机器手72一起使用的厨房把手580的一实施例的框图。厨房把手580的设计旨在具有通用性(或者标准化),从而使同一厨房把手580能够附接至任何类型的厨房用具或工具,例如,刀、炒菜铲、撇渣器、勺子、漏勺、锅铲等。在图12A-12B中示出厨房把手580的不同立体图。机器手72握住厨房把手580,如图12C所示。在不背离本申请的精神的情况下可以设计其他类型的标准化(或通用)厨房把手。
图12是示出具有触觉传感器602和分布式压力传感器604的示范性机器手600的图画示图。在食物制备处理中,机器人设备75采用机器手的指尖和手掌内的传感器生成的触摸信号在机器人复现一步步活动的同时检测力、温度、湿度和毒性(toxicity),并且将感测到的值与厨师的工作室烹饪程序的触觉简档进行比较。视觉传感器帮助机器人识别周围环境并且采取适当的烹饪动作。机器人设备75分析来自视觉传感器的即时环境图像并将其与厨师工作室烹饪程序的保存图像进行比较,从而做出适当动作以获得等同结果。机器人设备75还采用不同的麦克风来将厨师的指令语言与食物制备处理的本底噪声进行比较,以改善烹饪期间的识别性能。任选地,机器人可以具有电子鼻子(未示出),以检测气味或味道以及环境温度。例如,机器手600能够通过手指和手掌内的触觉传感器生成的表面纹理、温度和重量信号区分出真实的鸡蛋,进而能够施加适当大小的力握住鸡蛋而不将其打破,并且能够通过晃动鸡蛋听其溅泼声、磕开鸡蛋观察蛋黄和蛋白并闻其气味来判断鸡蛋的新鲜程度,由此完成质量检查。之后,机器手600可以采取措施处理掉坏掉的鸡蛋,或者选择新鲜的鸡蛋。手、臂和头上的传感器602和604使机器人能够移动、触摸、看和听,从而采用外部反馈执行食物制备处理,并获得与厨师工作室烹饪结果等同的食物菜肴制备结果。
图13是示出厨师49在标准化机器人厨房50中穿戴的感测服装620的示例的图画示图。在软件文件46记录的食物菜肴的食物制备处理中,厨师49穿戴感测服装620,从而按时间序列实时地捕获厨师的食物制备活动。感测服装620可包括但不限于触觉套装622(示出一整条臂和手部的服装)[在该处没有像这样的附图标记]、触觉手套624、多模态传感器626[无此附图标记]、头部服饰628。具有传感器的触觉套装622能够从厨师的活动捕获数据,并将捕获的数据传输至计算机16,从而记录带时间戳的XYZ坐标系内人的臂70和手/手指72的xyz坐标位置和压力。感测服装620也进行感测,计算机16记录机器人坐标系中人的臂70和手/手指72的位置、速度和力/转矩以及端点接触行为,其具有系统时间戳并与之相关联,由此与采用几何传感器(激光器传感器、3D立体传感器或视频传感器)的标准化机器人厨房50中的相对位置关联起来。具有传感器的触觉手套624用于捕获、记录和保存通过手套624中的触觉传感器检测到的力、温度、湿度和杀菌度信号。头部服饰628包括具有视觉摄像机、声纳、激光器、视频识别(RFID)和一副定制眼镜的反馈装置,它们用于感测、捕获数据并将捕获的数据传输至计算机16,从而记录并存储厨师48在食物制备处理中观察到的图像。此外,头部服饰628还包括用于检测标准化机器人厨房50中的环境温度和嗅觉特征的传感器。此外,头部服饰628还包括音频传感器,用于捕获厨师49听到的音频,例如,油炸、磨碎、切斩等的声音特征。
图14A-14B是示出用于厨师49的食物制备的具有传感器的三指触觉手套630的一实施例以及具有传感器的三指机器手640的示例的屠户示图。文中所示的实施例示出用于食物制备的具有不到五个手指的简化机器手640。对应地,将显著降低简化机器手640的设计当中的复杂性以及简化机器手640的制造成本。在备选实施方式中,具有或者没有相对的拇指的二指抓爪或四指机器手也是可能的。在这一实施例中,厨师手的活动受到三个手指,即拇指、食指和中指的功能的限制,其中每一手指具有用于在力、温度、湿度、毒性或触觉感知方面感测厨师活动数据的传感器632。三指触觉手套630还包括处于三指触觉手套630的手掌区域内的点传感器或分布式压力传感器。将厨师使用拇指、食指和中指在佩戴三指触觉手套630的情况下制备食物菜肴的活动记录到软件文件中。接下来,三指机器手640根据软件菜谱文件复现厨师的活动,软件菜谱文件被转换成机器人指令以用于在监视机器手640的手指上的传感器642b和手掌上的传感器644的同时,控制机器手640的拇指、食指和中指。传感器642包括力、温度、湿度、杀菌度或触觉感传感器,而传感器644可以采用点传感器或分布式压力传感器实现。
图14C是示出机器臂70和机器手72之间的相互作用和交互的一示例的框图。顺应性机器臂750提供较小的有效载荷、较高的安全性、更温和的动作、但是较低的精确度。拟人机器手752提供更高的灵巧度,能够操纵人用工具,更易于重新锁定人手动作,更具顺应性,但是其设计需要更高的复杂性,增加了重量而且生产成本更高。简单的机器手754重量更轻,价格更低,但是其灵巧度较低且不能直接使用人用工具。工业机器臂756更加精确,具有更高的有效载荷能力,但是一般认为其在人的周围是不安全的,有可能施加很大的力并且造成伤害。标准化机器人厨房50的一实施例将采用顺应臂750和拟人手752的第一组合。对于本申请的实施而言,一般不太期望采用其他三种组合。
图14D是示出采用附接至定制炊具头的标准化厨房把手580的机器手72和可固定至厨具的机器臂70的框图。在一种抓取厨具的技术中,机器手72抓取标准化厨房工具580,该工具用于附接至定制炊具头中的任何一者上,图中示出定制炊具头的选择760a、760b、760c、760d、760e以及其它。例如,标准化厨房把手580附着至定制炒菜铲头760e,从而用于对平底锅内的食材进行搅动煎炒。在一实施例中,机器手72只能在一个位置握住标准化厨房把手580,从而将因采用不同方法握住标准化厨房把手580而造成混乱的可能性降至了最低。在另一种抓取厨具的技术中,机器臂具有一个或多个夹持器762,其可固定至厨具,其中机器臂70能够在机器手运动期间在按压厨具762时如果需要的话施加更大的力。
图15A是示出厨师49在制备食物菜肴时用于感测和捕获厨师活动的感测手套680的框图。感测手套680具有处于每个手指上的多个传感器682a、682b、682c、682d、682e以及处于感测手套680的手掌区域中的多个传感器682f、682g。在一实施例中,采用处于软手套内的至少5个压力传感器682a、682b、682c、682d、682e捕获和分析全部手部操纵处理中的厨师活动。将这一实施例中的多个传感器682a、682b、682c、682d、682e、682f和682g嵌入到感测手套680内,但是其能够透过感测手套680的材料受到外部感测。感测手套680可以具有与多个传感器682a、682b、682c、682d、682e、682f、682g相关联的特征点,它们反映感测手套680内的具有各个较高点和较低点的手部曲线(或起伏)。置于机器手72之上的感测手套680由模拟人类皮肤的柔顺性和形状的柔软材料制成。在图9A中能够找到详述机器手72的额外描述。
机器手72包括摄像机传感器684,例如,RGB-D传感器、成像传感器或视觉感测装置,其置于手掌中央或附近,用于检测对象的距离和形状、以及对象的距离,并且用于对厨房工具进行操纵。成像传感器682f在使机器手72朝向对象的方向移动时为机器手72提供引导,并进行必要的调整,以抓取对象。此外,可以将诸如触觉压力传感器之类的声纳传感器置于机器手72的手掌附近,用于检测对象的距离和形状。声纳传感器682f还可以引导机器手72朝向对象移动。每个声纳传感器682a、682b、682c、682d、682e、682f、682g包括超声波传感器、激光器、射频识别(RFID)以及其他适当的传感器。此外,每个声纳传感器682a、682b、682c、682d、682e、682f、682g起着反馈机构的作用,以判断机器手72是否继续施加额外压力,以便在这样的具有足够的抓取和提升对象的压力的点上抓取对象。此外,机器手72的手掌内的声纳传感器682f提供触觉感知功能,以操纵厨房工具。例如,在机器手72抓取刀切牛肉时,机器手72向刀施加继而施加到牛肉上的压力的值允许触觉感受器检测何时刀结束了对牛肉的切割,即,刀何时没有阻力。所分配的压力不仅是为了固定对象,而且还要避免施加的压力过大,例如不使鸡蛋破裂。此外,机器手72的每一手指上具有指尖上的传感器,如拇指指尖上的第一传感器682a、食指指尖上的第二传感器682b、中指指尖上的第三传感器682c、无名指指尖上的第四传感器682d以及小指指尖上的第五传感器682f所示。每个传感器682a、682b、682c、682d、682e提供对对象的距离和形状的感测能力、对温度或湿度的感测能力、以及触觉反馈能力。
手掌内的RGB-D传感器684和声纳传感器682f加上每个手指的指尖上的声纳传感器682a、682b、682c、682d、682e为机器手72提供反馈机制,以作为抓取非标准化对象或非标准化厨房工具的措施。机器手72可以将压力调整到足以抓取并保持非标准化对象的程度。图17B示出根据具体时间间隔存储样本抓取功能692、694、696的程序库690,机器手72能在执行特定抓取功能时从程序库690取出这些功能。图17B是示出标准化机器人厨房模块50中的标准化操作活动的库数据库690的框图。预定义并且存储在库数据库690中的标准化操作活动包括利用运动/交互时间简档698抓取、放置和操作厨房工具或一件厨房设备。
图16A是示出包覆了人工的类似于人的软皮肤手套700的每个机器手72的示意图。人工的类似于人的软皮肤手套700包括多个嵌入式传感器,它们是能透过的,并且对于机器手72而言足以使其执行高层级微操纵。在一实施例中,软皮肤手套700包括十个或更多传感器,以复现手部活动。
图16B是示出包覆着人工的类似于人的皮肤手套的机器手基于微操纵的库数据库720执行高层级微操纵的框图,所述微操纵被预定义且存储在库数据库720内。高层级微操纵涉及需要大量的交互式活动和相互作用力以及对其的控制的动作基元的序列。提供了存储在数据库库720内的三个微操纵的示例。第一个微操纵的示例是采用一双机器手72揉面团722。第二个微操纵的示例是采用一双机器手72制作意大利方饺724。第三个微操纵的示例是采用一双机器手72制作寿司。三个微操纵的示例中的每一个都具有运动/交互时间简档728,将通过计算机16对其予以跟踪。
图16C是示出在揉面740的处理中用于食物制备的操纵动作的分类法的一实施例的简化流程图。揉面740可以是先前在微操纵库数据库中预定义的微操纵。揉面740的处理包括一系列动作(或短的微操纵),其包括抓住面团742,将面团放到表面744上、以及重复揉搓动作直到获得期望的形状746为止。
图17是示出得到“用刀磕开鸡蛋”结果的微操纵的数据库库结构770的示例的框图。打蛋的微操纵770包括:怎样在正确位置握住鸡蛋772,怎样相对于鸡蛋握住刀774,什么是用刀敲击鸡蛋的最佳角度776、以及如何打开破裂的鸡蛋778。对772、774、776和778每个的各种可能参数进行测试,从而找到执行具体动作的最佳方式。例如,在握住鸡蛋772时,对握住鸡蛋的不同位置、取向和方式进行测试,从而找到握住鸡蛋的最佳方式。第二,机器手72从预定位置拿起刀。关于握刀的不同位置、取向和方式对握刀774进行研究,从而找到拿刀的最佳方式。第三,还针对用刀敲击鸡蛋的各种组合对用刀敲击鸡蛋776进行测试,从而找到用刀敲击鸡蛋的最佳方式。随后,将执行用刀敲裂鸡蛋770的微操纵的最佳方式存储到微操纵的库数据库中。所保存的用刀敲裂鸡蛋770的微操纵将包括握住鸡蛋772的最佳方式、握住刀774的最佳方式和用刀敲击鸡蛋776的最佳方式。
为了建立得到用刀敲裂鸡蛋结果的微操纵,必须对多个参数组合进行测试,从而识别出确保获得预期功能结果(使鸡蛋裂开)的一组参数。在这一示例中,参数被识别以确定如何以不捏碎鸡蛋的方式抓取和握住鸡蛋。通过测试选择适当的刀,并找到手指和手掌的适当放置,从而可以握住刀用于敲击。识别将成功破裂鸡蛋的敲击动作。识别使破裂的鸡蛋成功打开的打开动作和/或力。
机器人设备75的教导/学习处理涉及多种重复测试,以识别出获得预期的最终功能结果的必要参数。
可以改变场景来执行这些测试。例如,鸡蛋的大小可以变化。可以改变敲裂鸡蛋的位置。刀可以处于不同的位置。微操纵必须在所有这些变化环境中都取得成功。
一旦完成了学习处理,就将结果存储为已知一起完成预期功能结果的动作基元集合。
图18是示出菜谱执行780的示例的框图,其中通过对非标准对象112进行三维模拟来对微操纵进行实时调整。在菜谱执行780中,机器手72执行用刀敲裂鸡蛋的微操纵770,其中从微操纵库数据库中选择执行敲裂鸡蛋操作772、握刀操作774、用刀敲击鸡蛋操作776和打开破裂的鸡蛋操作778中的每个动作的最佳方式。执行实施每个动作772、774、776、778的最佳方式的处理确保了微操纵770将实现该特定微操纵的相同或基本相同的结果(或其保证)。多模态三维传感器20提供关于一种或多种食材的可能变化(例如,鸡蛋的尺寸和重量)的实时调整能力112。
作为图19中的微操纵的创建和图20中的微操纵的执行之间的操作关系的示例,与“用刀敲裂鸡蛋”微操纵相关联的具体变量包括鸡蛋的初始xyz坐标、鸡蛋的初始取向、鸡蛋的尺寸、鸡蛋的形状、刀的初始xyz坐标、刀的初始取向、磕裂鸡蛋的位置的xyz坐标、速度、以及微操纵的持续时间。因而,在创建阶段定义“用刀敲裂鸡蛋”微操纵的所识别的变量,其中可以在相关微操纵的执行阶段通过机器人食物制备引擎56对这些可识别变量进行调整。
图19是示出在标准化厨房模块中捕获厨师的食物制备活动从而从厨师工作室44生成软件菜谱文件46的软件处理782的流程图。在厨师工作室44中,在步骤784,厨师49设计食物菜谱的不同成分。在步骤786,机器人烹饪引擎56配置为接收厨师49选定的菜谱设计的名称、ID食材和测度输入。在步骤788,厨师49将食物/食材移动到指定的标准化烹饪用具/器具中并且移动到它们的指定位置。例如,厨师49可以挑选两根中等大小的葱和两个中等大小的蒜瓣,并将八个蘑菇放到案板上,并将两块解冻的20cm×30cm的松饼从冷冻室(freezer lock)F02移到冰箱(冰柜)。在步骤790,厨师49戴上捕获手套26或触觉服装622,其具有捕获厨师的动作数据以供传输给计算机16的传感器。在步骤792,厨师49开始履行其从步骤122中选择的菜谱。在步骤794,厨师动作记录模块98配置为捕获并记录厨师的精确动作,包括在标准化机器人厨房50中对厨师臂和手指的力、压力以及xyz位置和取向进行实时测量。除了捕获厨师的动作、压力和位置之外,厨师动作记录模块98配置为记录特定菜谱的整个食物制备处理中的视频(有关菜肴、食材、工艺和交互图像)和声音(人语音、煎炸的嘶嘶声等)。在步骤796,机器人烹饪引擎56配置为存储来自步骤794的捕获数据,其包括来自捕获手套26上的传感器以及多模态三维传感器30的厨师动作。在步骤798,菜谱抽象化软件模块104配置为生成适于机器实施的菜谱脚本。在步骤799,在生成和保存菜谱数据之后,可通过面向位于家庭或餐馆的用户计算机的app商店或市场以及集成在移动装置上机器人烹饪接收app而向用户销售软件菜谱文件46或者供其订购。
图20是示出用于具有机器人设备75的机器人标准化厨房中机器人设备75基于从厨师工作室系统44接收的一个或多个软件菜谱文件22实施食物制备的软件处理的流程图800。在步骤802,用户24通过计算机15选择从厨师工作室44购买或订购的菜谱。在步骤804,家庭机器人厨房48中的机器人食物制备引擎56配置为接收来自输入模块50的对要制备的选定菜谱的输入。在步骤806,家庭机器人厨房48中的机器人食物制备引擎56配置为将选定菜谱上载到具有软件菜谱文件46的存储模块102。在步骤808,家庭机器人厨房48中的机器人食物制备引擎56配置为计算用以完成选定菜谱的食材可用性以及完成菜肴所需的大致烹饪时间。在步骤810,家庭机器人厨房48中的机器人食物制备引擎56配置为分析选定菜谱的先决条件,并且根据选定的菜谱和上菜安排判断是否存在食材的短缺或缺少,或者是否会没有足够的时间最终上菜。如果不满足先决条件,那么在步骤812,家庭机器人厨房48中的机器人食物制备引擎56发出警报,指示应将食材添加到购物清单中,或者提供备选菜谱或上菜安排。但是,如果满足先决条件,那么机器人食物制备引擎56配置为在步骤814中确认菜谱选择。在步骤816,在确认了菜谱选择之后,用户60通过计算机16将食物/食材移动到具体的标准化容器内并且移动到所需位置。在将食材置于指定容器和识别位置之后,家庭机器人厨房48中的机器人食物制备引擎56配置为在步骤818检查是否已经触发了起始时间。正值此际,家庭机器人食物制备引擎56提供第二处理检查,以确保满足了所有先决条件。如果家庭机器人厨房48中的机器人食物制备引擎56没有制备好开始烹饪处理,那么家庭机器人食物制备引擎56继续在步骤820核对先决条件,直到触发了起始时间为止。如果机器人食物制备引擎56制备好了开始烹饪处理,则在步骤822,机器人食物制备引擎56中的原料食物模块96的质量检查被配置为处理选定菜谱的先决条件,并且对照菜谱描述(例如,一块中间切开的牛里脊肉的烧烤)和状况(例如,过期/购买日期、气味、颜色、纹理等)检查每一食材项。在步骤824,机器人食物制备引擎56将时间设定到“0”阶段,将软件菜谱文件46上载到一个或多个机器臂70和机器手72,用于根据软件菜谱文件46复现厨师的烹饪动作以制作选定菜肴。在步骤826,一个或多个机器臂72和手74对食材进行处理,并用与厨师49的臂、手和手指等同的动作,以从厨师动作中捕获和记录的准确压力、精确力、相同的XYZ位置和相同的时间增量执行烹饪方法/技术。在该时间期间,一个或多个机器臂70和手72将烹饪结果与受控数据(例如,温度、重量、损耗等)和媒体数据(例如,颜色、外观、气味、份量等)进行比较,如步骤828所示。在对数据进行了比较之后,机器人设备75(包括机器臂70和机器手72)在步骤830中对结果进行对齐(align)和调整。在步骤832,机器人食物制备引擎56配置为指示机器人设备75将完成的菜肴移到指定的上菜盘内并将其放到柜台上。
图21是示出建立、测试、验证和存储微操纵库数据库840的各种参数组合的软件处理的一实施例的流程图。微操纵库数据库840涉及存储在临时库内的一次性成功测试处理840(例如,握住鸡蛋)以及对微操纵数据库库中的一次性测试结果的组合860(例如,磕开鸡蛋的全部动作)进行测试。在步骤842,计算机16创建具有多个动作基元(或多个分立的菜谱动作)的新的微操纵(例如,磕开鸡蛋)。在步骤844,识别与新的微操纵相关联的对象(例如,鸡蛋和刀)的数量。计算机16在步骤846识别多个分立动作或活动。在步骤848,计算机选择与特定的新微操纵相关联的完全可能范围的关键参数(例如,对象的位置、对象的取向、压力和速度)。在步骤850,对于每一关键参数而言,计算机16测试并验证关键参数的每个值,其将借助于与其他关键参数的所有可能组合(例如,以一位置握住鸡蛋但是测试其他取向)来进行。在步骤852,计算机16配置为判断一组特定的关键参数组合是否产生可靠的结果。可以通过计算机16或人来完成对结果的验证。如果判断结果是否定的,那么计算机16进行至步骤856,从而查看是否还有其他有待于测试的关键参数组合。在步骤858,计算机16在制定下一参数组合时使关键参数递增一,以用于进一步测试和评估下一参数组合。如果步骤852的判断是肯定的,那么计算机16在步骤854将该组成功的关键参数组合存储到临时位置库内。所述临时位置库存储一组或多组成功的关键参数组合(具有最多成功测试或最佳测试或具有最少失败结果)。
在步骤862,计算机16对特定成功参数组合进行X次测试和验证(例如,100次)。在步骤864,计算机16计算特定成功参数组合的重复测试处理中的失败结果的数量。在步骤866,计算机16从临时库中选择下一个一次性成功参数组合,并使处理返回至步骤862,从而对该下一个一次性成功参数组合进行X次测试。如果没有剩余其他的一次性成功参数组合,那么计算机16在步骤868存储产生可靠(或者有保证的)结果的一组或多组参数组合的测试结果。如果存在超过一组可靠的参数组合,那么在步骤870,计算机16确定最佳的或者最优的一组参数组合,并且存储与特定微操纵相关联的最优的一组参数组合,从而在微操纵库数据库中供标准化机器人厨房50中的机器人设备75在菜谱的各个食物制备阶段使用。
图22是示出分配和利用标准化机器人厨房内的标准化厨房工具、标准化对象和标准化设备的库的处理920的流程图。在步骤922,计算机16为每个厨房工具、对象或设备/用具分配代码(或条形码),其预定义了工具、对象或设备的参数,例如其三维位置坐标和取向。这一处理使标准化机器人厨房50内的各种元素标准化,其包括但不限于:标准化厨房设备、标准化厨房工具、标准化刀、标准化叉子、标准化容器、标准化平底锅、标准化器具、标准化工作区、标准化附件以及其他标准化元件。在执行菜谱中的处理步骤时,在步骤924,机器人烹饪引擎配置为在根据具体菜谱的食物制备处理被提示访问厨房工具、对象、设备、用具或用具时指引一个或多个机器手拾取该特定厨房工具、对象、设备、器具或用具。
图23是示出通过三维建模和推理识别非标准对象的处理926的流程图。在步骤928,计算机16通过传感器检测非标准对象,例如,可能具有不同大小、不同外形尺寸和/或不同重量的食材。在步骤930,计算机16用捕获形状、外形尺寸、取向和位置信息的三维建模传感器66来识别非标准对象,并且机器手72进行实时调整以执行适当的食物制备任务(例如,切割或拾取一块牛排)。
图24是示出用于微操纵的测试和学习的处理932的流程图。在步骤934,计算机执行食物制备任务构成分析,其中,对每一烹饪操作(例如,用刀磕开鸡蛋)进行分析、分解并且构造成动作基元或微操纵的序列。在一实施例中,微操纵指的是实现朝向食物菜肴制备中的一具体结果前进的基本功能结果(例如,磕开鸡蛋或切好蔬菜)的一个或多个动作基元的序列。在本实施例中,微操纵可进一步描述为低层级微操纵或高层级微操纵,其中低层级微操纵是指需要极小的相互作用力并且几乎唯独地依赖于使用机器人设备75的动作基元序列,高层级微操纵是指需要大量相互作用和大的相互作用力以及对其的控制的动作基元的序列。处理环936聚焦于微操纵和学习步骤,其包括重复很多次(例如,100次)的测试以确保微操纵的可靠性。在步骤938,机器人食物制备引擎56配置为对执行食物制备阶段或微操纵的所有可能性知识进行评估,其中,关于特定微操纵相关的取向、位置/速度、角度、力、压力和速度对每一微操纵进行测试。微操纵或动作基元可涉及机器手72和标准对象,或者涉及机器手72和非标准对象。在步骤940,机器人食物制备引擎56配置为执行微操纵,并且判断结果是认为成功还是失败。在步骤942,计算机16关于微操纵的失败进行自动分析和推理。例如,多模态传感器可提供有关微操纵的成功或失败的感测反馈数据。在步骤944,计算机16配置为做出实时调整,并且调整微操纵执行处理的参数。在步骤946,计算机16向微操纵库增加有关参数调整的成功或失败的新信息,以作为用于机器人食物制备引擎56的学习机制。
图25是示出机器臂的质量控制和对准功能的处理950的流程图。在步骤952,机器人食物制备引擎56通过输入模块50加载人类厨师复现软件菜谱文件46。例如,软件菜谱文件46将复现来自米其林星级厨师Arnd Beuchel的“维也纳炸肉(Wiener Schnitzel)”食物制备。在步骤954,机器人设备75基于所存储的包含所有动作/活动复现数据的菜谱脚本,以与基于人类厨师在具有标准化设备的标准化厨房模块中制备相同菜谱的动作存储的所记录的菜谱数据相同的步速,用相同的动作(例如,躯干、手、手指的动作)、相同压力、力和xyz位置执行任务。在步骤956,计算机16通过多模态传感器监视食物制备处理,多模态传感器生成提供给抽象化软件的原始数据,在抽象化软件中机器人设备75基于多模态感测数据(视觉、音频以及任何其他感测反馈)对照受控数据比较现实世界输出。在步骤958,计算机16判断受控数据和多模态感测数据之间是否存在任何差异。在步骤960,计算机16分析多模态感测数据是否偏离受控数据。如果存在偏离,则在步骤962,计算机16做出调整,从而对机器臂70、机器手72或其他元件进行重新校准。在步骤964,机器人食物制备引擎16配置为在处理964中通过向知识数据库添加对一个或多个参数值所做的调整来进行学习。在步骤968,计算机16将更新的修订信息存储到知识数据库,其涉及经校正的处理、条件和参数。如果根据步骤958没有偏差差异,那么处理950直接进行至完成执行的步骤970。
图26是示出供标准化机器人厨房使用的微操纵对象的数据库库结构972的一实施例的表格。数据库库结构972示出用于输入和存储特定微操纵的信息的若干字段,包括(1)微操纵的名称、(2)微操纵的分配代码、(3)与微操纵的性能相关联的标准化设备和工具的代码、(4)受操纵的(标准或非标准)对象(食材和工具)的初始位置和取向、(5)用户定义的(或在执行处理中从所记录的菜谱提取的)参数/变量、(6)时间线上的微操纵的机器手动作(用于所有伺服的控制信号)和连接反馈参数(来自任何传感器或视频监视系统)的序列。特定微操纵的参数可能取决于复杂性和执行微操纵所需的对象而有所不同。在该示例中,确定了四个参数:标准化厨房模块的体积内的起始XYZ位置坐标、速度、对象尺寸和对象形状。可以通过非标准参数定义或描述对象尺寸和对象形状。
图27是示出供标准化机器人厨房50中使用的标准对象的数据库库结构974的表格,其包含标准对象的三维模型。标准对象数据库库结构974示出用于存储与标准对象有关的信息的若干字段,包括(1)对象的名称、(2)对象的图像、(3)对象的分配代码、(4)对象在XYZ坐标矩阵内的完整外形尺寸的虚拟3D模型,具有预定义的优选分辨率、(5)对象的虚拟向量模型(如果可得的话)、(6)对象的工作元素的定义和标记(可与手和其他对象接触以供操纵的元素)、以及(7)对于每一具体操纵而言对象的初始标准取向。电子库的样本数据库结构974包含所有标准对象(即,所有厨房设备、厨房工具、厨房用具、容器)的三维模型,其作为总体标准化厨房模块50的一部分。标准对象的三维模型可以由三维摄像机可视地捕捉并且存储在数据库库结构974中供以后使用。
图28示出机器人菜谱脚本复现处理988,其中配备了多模态传感器的头20以及具有拿食材和用具的多指手72的双臂与炊具990相互作用。具有多模态传感器单元的机器人传感器头20用于对两条机器臂工作的三维任务空间持续进行建模和监视,同时还向任务抽象化模块提供数据以识别工具和用具、器具及其内容物和变量,从而允许将它们与烹饪处理序列生成的菜谱步骤进行比较以确保执行是遵循菜谱的计算机存储序列数据进行的。在烹饪处理的重要部分中,机器人传感器头20中的额外传感器用在可听领域中听声音以及用来闻气味。机器手72及其触觉传感器用于适当地操纵相应的食材,例如本实例中的鸡蛋;手指和手掌中的传感器能例如通过表面纹理和重量及其分布检测可用鸡蛋,并且在不打破鸡蛋的情况下握住鸡蛋和设置其取向。多指机器手72还能取来和操纵特定炊具,例如本实例中的碗,并且能够应用适当的动作和力来抓取和操纵烹饪用具(本实例中的搅拌器),从而按照菜谱脚本的规定对食物食材进行正确的处理(例如,磕开鸡蛋,分离蛋黄,搅打蛋清直到获得粘稠成分为止)。
图29描绘了食材储存系统概念1000,其中能够存放任何所需烹饪食材(例如,肉、鱼、禽类、贝类、蔬菜等)的食物储存容器1002配备有传感器以测量和监视相应食材的新鲜度。嵌入在食物储存容器1002中的监视传感器包括但不限于氨传感器1004、易挥发有机化合物传感器1006、容器内温度传感器1008和湿度传感器1010。此外,可以采用由人类厨师或机器臂和手使用的具有一个或多个传感器的手工探头(或检测装置)1012,从而允许对较大食材的体积的内部(例如,肉的内部温度)进行关键测量(例如,温度)。
图30描绘了作为食材新鲜度和质量检查的一部分实施的测量和分析处理1040,食材置于含有传感器和检测装置(例如,温度探头/探针)的食物储存容器1042中以用于在云计算或因特网或计算机网络上的计算机上进行食物新鲜度的在线分析。容器能够通过通信步骤1056在无线数据网络上借助于指定其容器ID的元数据标签1044将其数据集转发至主服务器,所述数据集包括温度数据1046、湿度数据1048、氨水平数据1050、易挥发有机化合物数据1052,在主服务器处食品控制质量引擎对容器数据进行处理。处理步骤1060采用容器特定的数据1044,并将其与认为可接受的数据值和范围进行比较,所述数据值和范围存储于介质1058中并且由数据检索和存储处理1054检索。之后,由一组算法针对食材的适合性做出判定,通过单独的通信处理1062经由数据网络提供实时的食物质量分析结果。之后,在另一处理1064中采用所述质量分析结果,其中所述结果被转发至机器臂,以用于实施进一步的动作,也可以远程显示在屏幕上(例如,智能电话或其他显示器)以供用户决定是在烹饪处理中将该食材用于后续消耗,还是将其作为废品丢弃。
图31描绘了标准化机器人厨房50中采用的具有一个或多个程序分配器控制的预填装食材容器1070的功能和处理步骤,其中不论所述厨房是标准化机器人厨房还是厨师工作室。食材容器1070被设计为具有不同的尺寸1082并且被设计为具有变化的用途,适于适当的储存环境1080以通过冷藏、冷冻、冷却等容纳易腐食物从而获得特定的储存温度范围。此外,预填装食材储存容器1070还被设计为适于不同类型的食材1072,所述容器已被预先加上了标签,并且被预填充有固体(盐、面粉、大米等)、粘性/粘稠(芥末、蛋黄酱、杏仁糖、果子酱等)或液体(水、油、牛奶、料汁等)食材,其中分发处理1074根据食材类型而利用多种不同的应用器件(滴管、滑槽、蠕动给料泵等),借助于运行剂量控制处理1076的剂量控制引擎1084进行准确的计算机可控的分发,确保在正确的时间分发正确量的食材。应指出,菜谱指定的剂量是可通过菜单界面或者甚至通过远程电话应用加以调整的,以适应个人口味或饮食规定(低钠等)。剂量控制引擎1084基于菜谱指定的量执行剂量确定处理1078,通过人工释放命令或者基于分配器的出口点处的特定分配容器的检测通过远程计算机控制来进行分配。
图32是示出用于标准化机器人厨房50中的食物制备的菜谱结构和处理1090的框图。食物制备处理1090示为沿烹饪时间线划分成多个阶段,每一阶段具有针对每一阶段1092、阶段1094、阶段1096和阶段1098的一个或多个原始数据块。数据块可含有若干元素,例如,视频图像、音频记录、文本描述以及形成了控制程序的一部分的机器可读、可理解指令和命令集合。原始数据集合包含在菜谱结构内,并且表示从菜谱复现处理开始到烹饪处理结束沿时间线的每一烹饪阶段或其中的任何子处理,所述时间线被以变化的时长水平和时间顺序划分成许多时间顺序阶段。
图33中的标准化机器人厨房50描绘了使用增强传感器系统1152的可行配置,其表示多模态三维传感器20的一个实施例。增强传感器系统1152示出位于可移动计算机可控线性轨道上的单个增强传感器系统1854,该轨道延伸厨房轴的长度那么长,旨在有效地覆盖标准化厨房的整个可视三维工作空间。标准化机器人厨房50示出置于可移动计算机可控线性轨道上的单个增强传感器系统20,该轨道延伸厨房轴的长度那么长,旨在有效地覆盖标准化厨房的整个可视三维工作空间。
基于机器人厨房某处(例如,在计算机可控轨道上或者在具有臂和手的机器人躯干上)的增强传感器系统1152的适当放置,允许在用于机器特定的菜谱脚本生成的厨师监视期间以及在标准化机器人厨房50中的菜肴复现的各个阶段中对机器人执行步骤的进展以及成功完成进行监视期间,进行3D跟踪和原始数据生成。
图34是示出具有用于食物制备环境的实时三维建模1160的多个摄像机传感器和/或激光器20的标准化厨房模块50的框图。机器人厨房烹饪系统48包括三维电子传感器,其能够为计算机提供实时原始数据,以供建立厨房操作环境的三维模型。实时三维建模处理的一种可行实施方式涉及使用三维激光扫描。实时三维建模的一种替代实施方式是采用一个或多个视频摄像机。第三种方法涉及采用摄像机观察到的投影光图案,即所谓的结构光成像。三维电子传感器对厨房操作环境进行实时扫描,以提供厨房模块中的工作空间的视觉表示(形状和外形尺寸数据)1162。例如,三维电子传感器实时地捕获机器臂/手是否拾取了肉或鱼的三维图像。厨房的三维模型还起着一些“人眼”的作用,用于对抓取对象进行调整,因为一些对象可能具有非标准的外形尺寸。计算机处理系统16生成工作空间内的三维几何形状、机器人运动学(kinematics)、和对象的计算机模型,并且提供控制信号1164回到标准化机器人厨房50。例如,厨房的三维建模能够提供具有期望间隔的三维分辨率网格,例如,在网格点之间具有1厘米的间隔。
标准化机器人厨房50描绘了使用一个或多个增强传感器系统20的另一可行配置。标准化机器人厨房50示出置于沿厨房轴长度的厨房工作表面上方的拐角处的多个增强传感器系统20,其旨在有效地覆盖标准化机器人厨房50的整个可视三维工作空间。
标准化机器人厨房50中的增强传感器系统20的适当放置允许使用视频摄像机、激光器、声纳以及其他二维和三维传感器系统进行三维感测,从而实现对原始数据的收集以辅助产生经处理的数据,由此随着机器臂、手、工具、设备和器具在标准化机器人厨房50中的菜肴复现的多个顺序阶段中涉及不同的步骤而获得它们的形状、位置、取向和活动的实时动态模型。
在每一时间点上收集原始数据,从而允许对原始数据进行处理,以便能够在步骤1162中提取出对于标准化机器人厨房50中的菜肴复现的多个顺序阶段中的不同步骤具有重要性的所有物体的形状、外形尺寸、位置和取向。通过计算机系统对经处理的数据做进一步分析,从而允许标准化机器人厨房的控制器通过修改机器人脚本定义的控制信号来调整机器臂和手的轨迹以及微操纵。考虑到很多变量(食材、温度等)可能发生变化,所以对菜谱脚本执行进而控制信号进行适应性调整对于成功完成特定菜肴的复现的每一阶段是很关键的。在标准化机器人厨房50内执行特定菜肴的复现步骤的处理中,基于关键可测量变量的菜谱脚本执行处理是使用增强(又称为多模态)传感器系统20的关键部分。
图35A是示出机器人厨房原型的示意图。原型厨房包括三层,顶层包括轨道系统1170,一对臂沿其移动以在机器人模式期间制备食物。可收缩机罩1172可对两条机器臂进行评估,当不用于烹饪时或者当厨房设置为手动烹饪模式时使两条机器臂返回到充电座且允许其被储存。中间层包括水槽、炉子、烤架、烤箱和通向食材储存设备的工作台面。中间层还具有计算机监视器以操作设备、选择菜谱、观看视频和文本指令、以及收听音频指令。下层包括用于以最佳条件存放食物/食材的自动容器系统,其有可能根据菜谱需要而将食材自动输送至烹饪体积处。厨房原型还包括烤箱、洗碗机、烹饪工具、附件、炊具摆放柜、抽屉和垃圾箱。
图35B是示出具有透明材料外壳1180的机器人厨房原型的图,该外壳在进行机器人烹饪处理时用作保护机构以防止对周围的人造成可能的伤害。透明材料外壳可由各种透明材料制成,例如玻璃、玻璃纤维、塑料或任何其他适当材料,以用于在机器人厨房50中作为保护屏,将机器臂和手的操作与机器人厨房50外的诸如人之类的外部源屏蔽开。在一示例中,透明材料外壳包括自动玻璃门(或多个门)。如本实施例中所示,自动玻璃门定位成从上往下或从下往上(从底部部分)滑动以在涉及使用机器臂的烹饪处理中出于安全原因而关闭。透明材料外壳的设计可能存在变化,例如,竖直下滑、竖直上滑、水平从左向右滑、水平从右向左滑、或者可以采取允许厨房中的透明材料外壳充当保护机构的任何其他放置方法。
图35C描绘了标准化机器人厨房的实施例,其中台面表面和机罩内面规定的体积具有水平滑动玻璃门1190,其可以手工地或者在计算机控制下左右移动从而将机器臂/手的工作空间与其周围分隔开,由此实现保护站得靠近厨房的人、或者限制污染物进出厨房工作区域、或者甚至允许在封闭体积内的更好气候控制的目的。自动滑动玻璃门左右滑动,从而在涉及使用机器臂的烹饪处理中出于安全的原因关闭。
在图35D中,标准化机器人厨房的实施例包括后挡板区域1220,该区域中安装有具有触摸屏区域的虚拟监视器/显示器,从而允许人按照手动模式对厨房进行操作以与机器人厨房及其元件进行交互。计算机投影图像以及监视投影区域的单独摄像机能够基于投影图像中的位置判断人手及其手指在做出具体选择时处于什么位置,然后系统基于其来相应地采取动作。虚拟触摸屏允许访问标准化机器人厨房50内的设备的所有方面的所有控制和监视功能,检索和存储菜谱,浏览所存储的人类厨师的完整或部分菜谱执行步骤的视频,以及收听与特定菜谱中的特定步骤或操作有关的人类厨师语音描述和指令的可听重放。
图35E描绘了构建到标准化机器人厨房中的单个或一系列机器人硬自动化装置1230。所述一个或多个装置是可编程的并且可由计算机远程控制的,被设计为馈送或提供菜谱复现处理中所需的预包装或预测度的量的专用食材元素,例如香料(盐、胡椒粉等)、液体(水、油等)或者其他干食材(面粉、糖、发酵粉等)。这些机器人自动化装置1230定位成使得其可被机器臂/手容易地拿取到,从而允许它们被机器臂/手或者人类厨师的臂/手所使用,从而基于菜谱脚本中指定的需求来设置和/或触发预定量的选定食材的释放。
图35F描绘了构建到标准化机器人厨房中的单个或一系列机器人硬自动化装置1240。所述一个或多个装置是可编程并且可由计算机远程控制的,被设计为馈送或提供菜谱复现处理中所需的预包装或预测度的量的常用并且重复使用的食材元素,其中剂量控制引擎/系统能够恰好提供适当的量给一件特定的设备,例如碗、锅或平底锅。这些机器人自动化装置1240定位成使得其可被机器臂/手容易地拿取到,从而允许它们被机器臂/手或者人类厨师的臂/手所使用,从而基于菜谱脚本中指定的需求设置和/或触发受剂量引擎控制的选定食材量的释放。食材供给和分配系统的这一实施例可看作是更加经济有效并且具有空间效率的方案,同时还减小了容器操纵复杂性以及机器臂/手的浪费运动时间。
图35G描绘了配备有通风系统1250以及自动烟雾/火苗检测和抑制系统1252的标准化机器人厨房,前者用于在自动化烹饪处理中抽出烟和蒸汽,后者用于熄灭任何有害烟雾和危险火苗的来源,其还允许滑动门的安全玻璃包围标准化机器人厨房50以控制受影响的空间。
图35H描绘了具有仪器化食材质量检查系统1280的标准化厨房,仪器化食材质量检查系统1280包括具有传感器和食物探头的仪器化面板。该区域包括处于后挡板上的能够检测置于该区域内的食材的多个物理和化学特性的传感器,所述特性包括但不限于变质(氨传感器)、温度(热电偶)、挥发性有机化合物(生物质分解散发的)以及湿气/湿度(湿度计)含量。还可以提供采用温度传感器(热电偶)检测装置的食物探头,以供机器臂/手持有来探测特定烹饪食材或元素的内部属性(例如,红肉、禽肉等的内部温度)。
图36A以平面图1290描绘了标准化机器人厨房50的一实施例,应理解,可以按不同的布局布置其中的元素。标准化机器人厨房50被划分为三个层级,即顶层1292-1、柜台层1292-2和下层1292-3。
顶层1292-1含有具有不同单元的多个橱柜型模块,其借助于内置的器具和设备执行特定厨房功能。在最简单的层级上,包含搁板/橱柜储存区域1294、用于储存和访问烹饪工具和器具以及其他烹饪和上菜用具(烹饪、烘焙、装盘等)的橱柜体积1296、用于特定食材(例如,水果和蔬菜等)的存放成熟(storage ripening)橱柜体积1298、用于诸如莴苣和洋葱之类的物品的冷藏储存区1300、用于深度冷冻物品的冷冻储存橱柜体积1302、用于其他食材和很少使用的香料等的另一储存储藏柜1304、以及硬自动化食材分配器1305等。
柜台层1292-2不仅容纳机器臂70,而且还包括上菜柜台1306、具有水槽的柜台区域1308、具有可移除的工作表面(切/斩案板等)的另一柜台区域1310、基于炭的板条式烤架1312、以及用于其他烹饪器具的多用途区域1314,所述其他烹饪器具包括炉、煮锅、蒸锅和炖蛋锅。
下层1292-3容纳组合对流烤箱和微波炉1316、洗碗机1318和较大橱柜体积1320,较大橱柜体积1320保持和存放其他频繁使用的烹饪和烘焙用具以及餐具、包装材料和刀具。
图36B描绘了标准化机器人厨房的透视图50,其在具有x轴1322、y轴1324、z轴1326的xyz坐标系内描绘了顶层1292-1、柜台层1292-2和下层1294-3的位置,从而允许在标准化机器人厨房内为机器臂34的定位提供适当的几何参照。
机器人厨房50的透视图清晰地确定了许多可行布局之一以及在所有三个层级的设备的位置,所述三个层级包括顶层1292-1(储存储藏柜1304、标准化烹饪工具和用具1320、存放成熟区1298、冷藏储存区1300、冷冻储存区1302)、柜台层1292-2(机器臂70、水槽1308、斩/切区1310、炭烤架1312、烹饪器具1314和上菜柜台1306)以及下层(洗碗机1318以及烤箱和微波炉1316)。
图37描绘了标准化机器人厨房50中的可伸缩实物1350的透视布局图,其中一对机器臂、腕和多指手一体地在棱柱式(通过线性分级延伸)可伸缩致动的躯干上沿竖直y轴1351和水平x轴1352移动,以及绕经过其自身躯干的中心线的竖直y轴旋转移动。一个或多个致动器1353嵌入在躯干和上方层级中,以允许线性和旋转运动使机器臂72和机器手70在菜谱脚本描述的菜谱的复现的所有部分当中可移动到标准化机器人厨房中的不同地方。这些多种运动是能够正确地复现在人类厨师烹饪的菜肴创建处理中在厨师工作室厨房设备中观察到的人类厨师49的活动所必需的。在左/右平移台的基部处的伸缩致动器1350上的转动(panning)(旋转)致动器1354允许机器臂70的至少部分旋转,类似于厨师出于灵活或取向原因而转动其肩部或躯干-否则将被限制于在单个平面中烹饪。
图38是示出供标准化机器人厨房50使用的可编程储存系统88的框图。基于可编程储存系统88内的相对xy位置坐标在标准化机器人厨房50中将可编程储存系统88结构化。在本示例中,可编程储存系统88具有二十七个(27;排列成9×3矩阵)储存位置,其具有九列三行。可编程储存系统88能够充当冷冻器位置或冰箱位置。在本实施例中,二十七个可编程储存位置中的每个包括四种类型的传感器:压力传感器1370、湿度传感器1372、温度传感器1374和气味(嗅觉)传感器1376。由于每个储存位置可通过其xy坐标而被识别,所以机器人设备75能够访问选定的可编程储存位置以获得该位置的制备菜肴所需的食物项目。计算机16还能监视每个可编程储存位置的适当温度、适当湿度、适当压力和适当气味简档,以确保对特定食物项目或食材的最佳储存条件进行监视和维持。
图39描绘了容器储存站86的正视图,其中可通过计算机监视和控制温度、湿度和相对氧含量(以及其他室内条件)。该储存容器单元中可包括但不限于食品柜/干储存区域1304、对酒重要的具有可单独控制的温度和湿度的成熟区1298(用于水果/蔬菜)、用于农产品/水果/肉类的低温储存从而优化储藏寿命的冷藏单元1300、以及用于长期储存其他物项(肉、烘焙货品、海鲜、冰激凌等)的冷冻单元1302。
图40描绘了将由人类厨师以及机器臂和多指手访问的食材容器1380的正视图。标准化机器人厨房的这一区块包括但不一定限于包括如下的多个单元:食材质量监视仪表板(显示器)1382、计算机化测量单元1384(包括条形码扫描器、摄像机和刻度)、具有用于食材的验入验出的自动化架式搁板的单独台面1386、以及用于清除适于回收的可回收硬物品(玻璃、铝、金属等)和软物品(食物残余和碎屑等)的回收单元1388。
图41描绘了食材质量监视仪表板1390,其为供人类厨师使用的计算机控制显示器。该显示器允许用户查看对人和机器人烹饪的食材供给和食材质量方面重要的多个项目。这些包括对如下项目的显示:概括有什么可用的食材库存总览1392、所选择的各个食材及其营养成分和相对分布1394、与储存类别(肉、蔬菜等)有关的量和专门储存1396、描绘未到的截止日期以及完成/重新补足日期和物项的时间表1398、用于任何种类的警报(感测到变质、异常温度或故障等)的区域1400、以及语音解释器命令输入的选项1402,从而允许人类用户借助于仪表板1390与计算机化库存系统进行交互。
图42是示出记录厨师的食物制备处理的一实施例的处理1420的一实施例的流程图。在步骤1422,在厨师工作室44中,多模态三维传感器20扫描厨房模块体积以定义其中的标准化厨房设备和所有对象的xyz坐标位置和取向,不论是静态的还是动态的。在步骤1424,多模态三维传感器20扫描厨房模块体积以找到诸如食材之类的非标准化对象的xyz坐标位置。在步骤1426,计算机16创建所有非标准化对象的三维模型,并且将它们的类型和属性(大小、外形尺寸、用法等)存储到计算机的系统存储器中(在计算装置上或者在云计算环境),并且定义非标准化对象的形状、尺寸和类型。在步骤1428,厨师活动记录模块98配置为通过厨师手套感测和捕获在连续时程中厨师的臂、手腕和手的活动(优选根据标准微操纵对厨师的手的活动进行识别和分类)。在步骤1430,计算机16将所感测和捕获的厨师在制备食物菜肴时的活动的数据存储到计算机的存储器储存装置中。
图43是示出机器人设备75制备食物菜肴的一实施例的处理1440的一实施例的流程图。在步骤1442,机器人厨房48中的多模态三维传感器20扫描厨房模块体积以找到非标准化对象(食材等)的xyz位置坐标。在步骤1444,机器人厨房48中的多模态三维传感器20创建在标准化机器人厨房50中检测到的非标准化对象的三维模型,并且将非标准化对象的形状、尺寸和类型存储到计算机存储器中。在步骤1446,机器人烹饪模块110根据转换后的菜谱文件开始菜谱的执行,以相同的步调,采用相同的活动并且用类似的持续时间复现厨师的食物制备处理。在步骤1448,机器人设备75采用一个或多个微操纵以及动作基元的组合执行转换后的菜谱文件的机器人指令,从而使机器人标准化厨房中的机器人设备75制备出就像厨师49亲自制备食物菜肴那样的相同或基本相同的食物菜肴。
图44是示出在机器人相对于厨师获得相同或基本相同的食物菜肴制备结果的处理中质量和功能调整1450的一实施例的处理的流程图。在步骤1452,质量检查模块56配置为通过一个或多个多模态传感器、机器人设备75上的传感器监视和验证机器人设备75的菜谱复现处理,并且采用抽象软件来比较来自机器人设备75的输出数据和来自软件菜谱文件的受控数据,来进行质量检查,软件菜谱文件是通过当执行相同的菜谱时对人类厨师在标准化机器人厨房的厨师工作室版本中执行的烹饪处理进行监视和抽象化而创建的。在步骤1454,机器人食物制备引擎56配置为检测和确定将要求机器人设备75对食物制备处理做出调整的任何差异,例如,至少监视食材的大小、形状或取向的差异。如果存在差异,则机器人食物制备引擎56配置为通过基于原始的和经处理的感测输入数据调整该特定食物菜肴处理步骤的一个或多个参数来对食物制备处理进行修改。在步骤1454,做出对菜谱脚本中所存储的处理变量与所感测和抽象的处理进展之间的可能差异采取行动的判定。如果标准化机器人厨房中的烹饪处理的处理结果与菜谱脚本中对该处理步骤描述的结果等同,那么如菜谱脚本描述的那样继续进行食物制备处理。如果基于原始和经处理的感测输入数据要求对该处理做出修改或调适,那么通过对确保使处理变量顺应菜谱脚本中对该处理步骤描述的那些所需的任何参数进行调整,来执行调适处理1556。在成功结束调适处理1456后,食物制备处理1458如菜谱脚本序列中说明的那样继续进行。
图45是示出机器人厨房通过复现来自机器人厨房中所记录的软件文件的厨师活动来制备菜肴的处理1460的第一实施例的流程图。在步骤1461,用户通过计算机选择特定菜谱以供机器人设备75制备食物菜肴在步骤1462,机器人食物制备引擎56配置为检索所选择菜谱的抽象化菜谱以供食物制备。在步骤1463,机器人食物制备引擎56配置为将所选菜谱脚本上载到计算机存储器中。在步骤1464,机器人食物制备引擎56计算食材可得性和所需烹饪时间。在步骤1465,机器人食物制备引擎56配置为如果根据所选菜谱和上菜时间安排制备菜肴的食材短缺或时间不足时,发出警报或通知。在步骤1466,机器人食物制备引擎56发出警报,以将缺少或不足的食材放到购物清单上,或者选择替代菜谱。在步骤1467,确认用户的菜谱选择。在步骤1468,机器人食物制备引擎56配置为检查是否到了开始制备菜谱的时间。在步骤1469,处理1460暂停,直到到达开始时间。在步骤1470,机器人设备75检查每一食材的新鲜度和状况(例如,购买日、到期日、气味、颜色)。在步骤1471,机器人食物制备引擎56配置为向机器人设备75发送指令,以将食物或食材从标准化容器移到食物制备位置。在步骤1472,机器人食物制备引擎56配置为指示机器人设备75在开始时间“0”通过根据软件菜谱脚本文件复现食物菜肴来开始食物制备。在步骤1473,标准化厨房50中的机器人设备75采用与厨师的臂和手指一样的活动、相同的食材、相同的步调以及相同的标准化厨房设备和工具复现食物菜肴。在步骤1474,机器人设备75在食物制备处理中进行质量检查,以做出任何必要的参数调整。在步骤1475,机器人设备75完成了食物菜肴的复现和制备,因此制备将食物菜肴装盘和上菜。
图46示出储存容器的验入(check-in)和识别处理的处理1480。在步骤1482,用户使用质量监视仪表板选择验入食材。然后在步骤1484,用户在验入站或柜台处扫描食材包装。在步骤1486,机器人烹饪引擎采用来自条形码扫描器、秤、摄像机和激光扫描器的附加数据处理食材特定的数据并且将其映射至其食材和菜谱库,并且分析其任何潜在的过敏影响。基于步骤1488,如果存在过敏可能性,那么在步骤1490系统决定通知用户并且出于安全原因舍弃该食材。如果认为食材可接受,那么在步骤1492系统将其记入日志并且进行确认。在步骤1494,用户可以打开包装(如果还没打开包装),并倒出该物项。在后续步骤1496,该物项被包装(锡箔、真空袋等),并打上具有打印到其上的所有必要食材数据的计算机打印标签,并且基于识别结果移到储存容器和/或储存位置。然后在步骤1498,机器人烹饪引擎更新其内部数据库,并且在其质量监视仪表板中显示可用食材。
图47描绘了从储存器验出(check-out)食材以及烹饪制备处理1500。在第一步骤1502,用户利用质量监视仪表板选择验出食材。在步骤1504,用户基于一个或多个菜谱所需的单个物项选择要验出的物项。然后在步骤1506,计算机化厨房采取行动以将包含选定物项的特定容器从其储存位置移到柜台区域。在用户于步骤1508中拾取了物项的情况下,用户在步骤1510中按很多可行方式(烹饪、丢弃、回收等)中的一种或多种对该物项进行处理,在步骤1512中将剩余物项重新验入回到系统内,其于是结束用户与系统的交互1514。在标准化机器人厨房中的机器臂接收到所检索的食材物项的情况下,执行步骤1516,其中臂和手对照食材物项的标识数据(类型等)和状况(到期日、颜色、气味等)检查容器内的每一食材物项。在质量检查步骤1518,机器人烹饪引擎做出有关可能的物项不匹配或检测到的质量状况的判定。在物项不适当的情况下,步骤1520发送警报给烹饪引擎,使其随后进行适当的操作。如果食材具有可接受的类型和质量,那么机器臂在步骤1522中移动该物项,以供在下一烹饪处理阶段内使用。
图48描绘了自动化烹饪前制备处理1524。在步骤1530,机器人烹饪引擎基于特定菜谱计算裕量和/或浪费的食材材料。接下来在步骤1532,机器人烹饪引擎搜索所有可能的用于采用每种食材执行菜谱的技术和方法。在步骤1534,机器人烹饪引擎针对时间和能耗计算并优化食材使用和方法,尤其是对需要并行多任务处理的菜肴而言。然后,机器人烹饪引擎为所安排的菜肴建立多层级烹饪规划1536,并向机器人厨房系统发送烹饪执行请求。在下一步骤1538中,机器人厨房系统将烹饪处理所需的食材以及烹饪/烘焙用具从其自动化搁架系统移出,并且在步骤1540中对工具和设备进行组装,设立各种工作站。
图49描绘了菜谱设计和脚本建立处理1542。作为第一步骤1544,厨师选择特定菜谱,然后在步骤1546中针对其输入或编辑菜谱数据,包括但不限于名称和其他元数据(背景、技术等)。在步骤1548,厨师基于数据库和相关的库输入或编辑所需食材,并且输入菜谱所需的相应重量/体积/单位的量。在步骤1550中厨师基于数据库和相关库中可用的技术选择菜谱制备中采用的必要技术。在步骤1552,厨师执行类似的选择,但是这次其关注的是执行菜肴的菜谱所需的烹饪和制备方法的选择。之后,结束步骤1554允许系统建立菜谱ID,其对于后续的数据库储存和检索将是有用的。
图50是示出按照矩形布局配置的机器人餐馆厨房模块1676的第一实施例的框图,其具有多对机器手以用于同时进行食物制备处理。除了矩形布局之外,在申请的思想范围内可以构思其他类型的配置布局或对其的修改。本申请的另一实施例围绕着图67所示的专业或餐馆厨房装置中用于多个相继或并行的机器臂和手站点的分级配置。该实施例描绘了更具线性的配置(尽管可采用任何几何布置),示出多个机器臂/手模块,每者专注于创建特定元素、菜肴或菜谱脚本步骤(例如,六对机器臂/手在商业化厨房中发挥不同的作用,例如,副主厨、烤焙厨师、炸/炒厨师、冷盘厨师、糕点师、汤和调味汁厨师等)。该机器人厨房布局使得与任何人的或者相邻臂/手模块之间的访问/交互是沿单个前向表面的。该装置能被计算机控制,由此允许整个多臂/手机器人厨房装置分别执行多个复现烹饪任务,而不管臂/手机器人模块是在顺次执行单个菜谱(来自一个站点的最终产品被提供给下一站点,以用于菜谱脚本中的后续步骤),还是在并行执行多个菜谱/步骤(例如,餐前食物/食材制备,以供在菜肴复现完成期间使用,从而满足高峰时段的时间紧迫性)。
图51是示出按照U形布局配置的机器人餐馆厨房模块1678的第二实施例的框图,该厨房具有多对机器手以供同时进行食物制备处理。本申请的另一实施例围绕着图68所示的专业或餐馆厨房装置中的多个相继或并行的机器臂和手站点的另一分级配置。该实施例描绘了矩形配置(但是可以采用任何几何布置),示出多个机器臂/手模块,其每个专注于创建特定的元素、菜肴或菜谱脚本步骤。该机器人厨房布局使得与任何人或者相邻臂/手模块之间的访问/交互都是沿一组U形向外表面且沿U形的中央部分的,允许臂/手模块在各个菜谱复现阶段内传递给/接触到对面的工作区,并与它们对面的臂/手模块交互。该装置能被计算机控制,由此允许整个多臂/手机器人厨房装置分别执行多个复现烹饪任务,而不管臂/手机器人模块是在顺次执行单个菜谱(来自一个站点的最终产品被沿U形路径提供给下一站点,以用于菜谱脚本中的后续步骤),还是在并行执行多个菜谱/步骤(例如,餐前食物/食材制备,以供在菜肴复现完成期间使用,从而满足高峰时段的时间紧迫性,所制备的食材可能储存在放置于U形厨房的基部的容器或器具(冰箱等)中)。
图52描绘了机器人食物制备系统1680的第二实施例。采用标准化机器人厨房系统50的厨师工作室44包括制备或执行菜谱的人类厨师49,而炊具上的传感器1682则记录随时间推移的变量(温度等)并将变量值作为形成了菜谱脚本原始数据文件的一部分的传感器曲线和参数存储到计算机存储器1684中。来自厨师工作室44的这些存储的感测曲线和参数软件数据(或菜谱)文件基于购买或订购被递送至标准化(远程)机器人厨房1686。家庭安装的标准化机器人厨房50包括用户48和计算机控制系统1688二者,以基于所接收的与测得的感测曲线和参数数据文件对应的原始数据操作自动化和/或机器人厨房设备。
图53描绘了标准化机器人厨房50的第二实施例。运行机器人烹饪(软件)引擎56的计算机16与多个外部装置接口连接,机器人烹饪引擎56包括烹饪操作控制模块1692,其对来自菜谱脚本以及相关存储介质和存储器1684的被记录、分析和抽象的感测数据进行处理,以存储包括感测曲线和参数数据的软件文件。这些外部装置包括但不限于用于输入原始数据的传感器1694、可收缩安全玻璃68、计算机监视和计算机控制的储存单元88、对原料食物质量和供给进行报告的多个传感器198、分配食材的硬自动化模块82、具有食材的标准化容器86、配备传感器的烹饪设备1696、以及配备有传感器的炊具1700。
图54描绘了一组典型的感测曲线220,具有针对数据1 1708、数据21710和数据31712的记录温度简档,每条曲线对应于炊具单元的特定底部区域的三个区带中的每个区带的温度。测量时间单位反映为从开始至结束以分钟计的烹饪时间(自变量),而温度则是以摄氏度为单位测量的(因变量)。
图55描绘了具有所记录的温度1732和湿度1734简档的一组多重感测曲线1730,来自每个传感器的数据被表示为数据1 1708、数据2 1710、直至数据N1712。原始数据流被转发给电子(或计算机)操作控制单元1736并被其处理。测量时间单位反映为从开始至结束以分钟计的烹饪时间(自变量),而温度则是以摄氏度为单位测量的(因变量)。
图56描绘了具有用于实时温度控制的处理装置1700的智能(煎炸)平底锅。电源1750使用三个单独的控制单元(但不必局限于此),包括控制单元11752、控制单元2 1754和控制单元3 1756,从而对一组电感线圈有效地加热。所述控制实际上是(煎炸)平底锅的(三个)区带1702(区带1)、1704(区带2)和1706(区带3)中的每个内的测得温度的函数,其中温度传感器1716-1(传感器1)、1716-3(传感器2)和1716-5(传感器3)通过数据流1708(数据1)、1710(数据2)和1712(数据3)将温度数据无线提供回到操作控制单元274,操作控制单元274又指示电源1750独立地控制单独的区带加热控制单元1752、1754和1756。目标在于实现和复现预期的随时间推移的温度曲线,如在菜肴制备期间人类厨师的特定(煎炸)步骤中记录的感测曲线数据那样。
图57是示出机器人厨房根据标准化机器人厨房中先前记录的一条或多条参数曲线来制备菜肴的处理的第二实施例1900的流程图。在步骤1902,用户通过计算机选择特定菜谱以供机器人设备75制备食物菜肴。在步骤1904,机器人食物制备引擎配置为检索用于食物制备的选定菜谱的抽象菜谱。在步骤1906,机器人食物制备引擎配置为将选定菜谱脚本上载到计算机存储器中。在步骤1908,机器人食物制备引擎计算食材可得性。在步骤1910,机器人食物制备引擎配置为根据选定菜谱和上菜安排评估是否存在制备菜肴所需食材的缺失或不足。机器人食物制备引擎在步骤1912中发出警报以将缺失或不够的食材放到购物清单上,或者选择替代菜谱。在步骤1914中确认用户所做的菜谱选择。在步骤1916,机器人食物制备引擎配置为向用户发出机器人指令,以将食物或食材放到标准化容器内,并将其移到适当的食物制备位置。在步骤1918,为用户提供选择实时视频监视器投影的选项(在专用监视器上或者全息的基于激光的投影上),从而能够视觉观看菜谱复现处理的每个和所有步骤,所述菜谱复现处理是基于被记录并且此时被重放的厨师执行的所有活动和处理的。在步骤1920,机器人食物制备引擎配置为允许用户在其选择的对标准化机器人厨房的计算机化控制系统加电的起始时间“0”开始食物制备。在步骤1922,用户基于监视器/投影屏幕上人类厨师的整个菜谱创建处理的重放执行对厨师的所有动作的复现,由此将半成品移至指定炊具和器具或者中间储存容器,以供后面使用。在步骤1924,标准化厨房中的机器人设备75根据厨师在厨师工作室的标准化机器人厨房中执行菜谱制备处理中的同一步骤时感测到的数据曲线或基于当时记录的烹饪参数执行各个处理步骤。在步骤1926,机器人食物制备的计算机在温度、压力和湿度方面控制所有的炊具和器具设置,从而基于厨师在厨师工作室标准化机器人厨房内制备菜谱时捕获并保存的数据复现在整个烹饪时间所要求的数据曲线。在步骤1928,用户进行所有简单动作以复现厨师的步骤和处理动作,如通过经由监视器或投影屏幕转达给用户的音频和视频指令而显见的那样。在步骤1930,在完成了基于感测曲线或参数集的特定烹饪步骤时,机器人厨房的烹饪引擎向用户发出警报。一旦用户和计算机控制器的交互使得菜谱的所有烹饪步骤都得以完成,机器人烹饪引擎就在步骤1932发送终止复现处理的计算机控制部分的请求。在步骤1934,用户移动所完成的菜谱菜肴,将其装盘并上菜,或者手动地继续任何剩余的烹饪步骤或处理。
图58示出厨师工作室内的感测数据捕获处理1936的一实施例。第一步骤1938是厨师创建或设计菜谱。下一步骤1940要求厨师向机器人烹饪引擎输入菜谱的名称、食材、度量和处理描述。厨师在步骤1942中开始将所有所需食材加载到指定的标准化储存容器、器具内,并选择适当的炊具。下一步骤1944涉及厨师设置起始时间并启动感测和处理系统以记录所有感测到的原始数据并允许对其进行处理。一旦厨师在步骤1946中开始烹饪,所有的嵌入监视传感器单元和器具就向中央计算机系统报告和发送原始数据,从而允许其在整个烹饪处理1948中实时记录所有相关数据。还在步骤1950中将额外的烹饪参数和可听厨师评述记录并存储为原始数据。作为步骤1952的一部分,机器人烹饪模块抽象化(软件)引擎处理所有原始数据,包括二维和三维几何运动以及对象识别数据,以生成机器可读可执行的烹饪脚本。在厨师完成了厨师工作室菜谱创建和烹饪处理之后,机器人烹饪引擎生成模拟可视化程序1954,其复制用于远程标准化机器人厨房系统的后续菜谱复现的活动和媒体数据。在原始的和经处理的数据以及厨师对模拟菜谱执行可视化的确认的基础上,在步骤1956中,针对不同的(移动)操作系统开发并集成硬件特定的应用,并将其提交给在线软件应用商店和/或市场,以供直接的单菜谱用户购买或通过订购模型实施的多菜谱购买。
图59描绘了家庭机器人烹饪处理1960的处理和流程。第一步骤1962涉及用户选择菜谱以及获取数字形式的菜谱。在步骤1964,机器人烹饪引擎接收菜谱脚本,其含有用于烹饪所选菜谱的机器可读命令。在步骤1966,菜谱被上载至机器人烹饪引擎,脚本被置于存储器中。一旦存储,步骤1968就计算必要的食材并确定其可用性。在逻辑检查1970中,系统在步骤1972判断是要警告用户或者发送建议,督促向购物清单添加缺失的物项或者建议替代菜谱以适应可用的食材,还是在有足够的食材可用的情况下继续进行。一旦在步骤1974中检验了食材的可用性,系统就确认菜谱,并在步骤1976中询问用户,从而将所需食材放到指定标准化容器中,所述指定标准化容器位于厨师最初开始菜谱创建处理(在厨师工作室内)时所处的位置处。在步骤1978,提示用户设定烹饪处理的起始时间,并将烹饪系统设置为继续工作。在开动后,机器人烹饪系统根据菜谱脚本数据文件中提供的感测曲线和烹饪参数数据实时地开始烹饪处理的执行1980。在烹饪处理1982中,为了复现最初在厨师工作室菜谱创建处理中捕获并保存的感测曲线和参数数据文件,计算机控制所有的器具和设备。在完成烹饪处理后,机器人烹饪引擎在步骤1984中基于判定已经完成了烹饪处理而发送提醒。接下来,机器人烹饪引擎向计算机控制系统发送终止请求1986以终止整个烹饪处理,并且在步骤1988,用户从柜台上移动菜肴,从而上菜,或者以人工方式继续任何剩余的烹饪步骤。
图60描绘了具有命令、视觉监视模块1990的标准化机器人食物制备厨房系统50的一实施例。计算机16运行机器人烹饪(软件)引擎56,机器人烹饪(软件)引擎56包括对来自菜谱脚本的记录、分析和抽象的感测数据进行处理的烹饪操作控制模块1692、视觉命令监视模块1990、以及用于存储包括感测曲线和参数数据的软件文件的相关储存介质和存储器1684,计算机16与多个外部装置接口连接。这些外部装置包括但不限于仪器化厨房工作柜台90、可伸缩安全玻璃68、仪器化龙头92、具有嵌入式传感器的烹饪器具74、具有嵌入式传感器的炊具1700(存放在搁板上或橱柜内)、标准化容器和食材储存单元78、计算机监视和计算机控制储存单元88、对原料食物质量和供应的处理进行相关报告的多个传感器1694、用于分配食材的硬自动化模块82、以及操作控制模块1692。
图61在透视图中描绘了充分仪器化的机器人厨房2020的实施例。标准化机器人厨房被划分为三个层,即顶层、柜台层和下层,顶和下层包含具有集成安装的传感器1884和计算机控制单元1886的设备和器具,柜台层配备有一个或多个命令和可视监视装置2022。
顶层含有具有不同单元的多个橱柜型模块,其通过内置的器具和设备执行特定的厨房功能。在最简单的层级上,顶层包括用于存放和获取标准化烹饪工具和器具以及其他烹饪和上菜用具(烹饪、烘焙、装盘等)的橱柜体积1296、用于特定食材(例如,水果和蔬菜等)的存放成熟的橱柜体积1298、用于诸如莴苣和洋葱之类的物项的冷藏储存区1300、用于深度冷冻物项的冷冻存放橱柜体积86、以及用于其他食材和很少使用的香料等的另一存放食品柜区1294。顶层内的每个模块含有传感器单元1884,其直接地或者通过一个或多个中央或分布式控制计算机提供数据给一个或多个控制单元1886,以允许计算机控制的操作。
柜台层1292-2不仅容纳有监视传感器1884和控制单元1886,而且还包括可视命令监视装置1316,同时还包括具有水槽和电子龙头的柜台区域1308、具有可移动工作表面(切/斩案板等)的另一柜台区域1310、炭基板条式烤架1312、以及用于其他烹饪器具的多用途区域1314,所述其他烹饪器具包括炉子、煮锅、蒸锅和炖蛋锅。柜台层内的每个模块含有传感器单元1184,其直接地或者通过一个或多个中央或分布式控制计算机提供数据给一个或多个控制单元1186,以允许计算机控制的操作。此外,一个或多个可视命令监视装置(未示出)也设置在柜台层内以用于监视人类厨师在工作室厨房中的以及机器臂或人类用户在标准化机器人厨房中的可视操作,其中数据被馈送给一个或多个中央或分布式计算机以供处理,随后校正性或支持性反馈以及命令被发送回到机器人厨房以用于显示或依照脚本来执行。
下层1292-3容纳组合对流烤箱和微波炉以及蒸锅、炖蛋锅和烤架1316、洗碗机1318、硬自动化控制食材分配器86(未示出)、以及较大橱柜体积1309,较大橱柜体积1309保持和存放其他频繁使用的烹饪和烘焙用具以及餐具、扁平餐具、用具(搅拌器、刀等)和刀具。下部层级内的每个模块含有传感器单元1307,其直接地或者通过一个或多个中央或分布式控制计算机提供数据给一个或多个控制单元376,以允许计算机控制的操作。
图62A描绘了标准化机器人厨房系统48的另一实施例。计算机16运行机器人烹饪(软件)引擎56和用于存储菜谱脚本数据以及感测曲线和参数数据文件的存储器模块52,计算机16与多个外部装置接口连接。这些外部装置包括但不限于仪器化的机器人厨房站2030、仪器化的上菜站2032、仪器化的洗涤清洁站2034、仪器化的炊具2036、计算机监视和计算机控制的烹饪器具2038、专用工具和用具2040、自动化搁板站2042、仪器化的储存站2044、食材取回站2046、用户控制台界面2048、双机器臂70和机器手72、分配食材的硬自动化模块1305、以及可选的厨师记录装置2050。
图62B在平面图中描绘了机器人厨房烹饪系统2060的一实施例,其中人形机2056(或厨师49、家庭烹饪用户或商业用户60)能够通过从机器人厨房模块2058周围接近搁板而从多个侧面(这里示出四个)访问各个烹饪站,其中人形机将在机器人食物制备厨房系统2060周围走动,如图87B所示。中央储存站2062为在不同温度(冷藏/冷冻)保存的各种食物提供不同的储存区域以保持最佳新鲜度,允许从所有侧面访问该储存站。沿当前实施例的方形布置的周边,人形机2052、厨师49或用户60能够访问具有模块的各个烹饪区域,所述模块包括但不限于用于实施菜谱并且对处理进行监督的用户/厨师控制台2064、包括扫描器、摄像机和其他食材表征系统的食材访问站2066、用于炊具/烘焙用具/餐具的自动搁板站2068、至少包括水槽和洗碗机单元的洗涤清洁站2070、用于食物或食材制备当中采用的特定技术所需的专门工具的专门工具和用具站2072、用于使上菜盘温暖或冰冷的保温站2074、以及包括多个器具的烹饪器具站2076,所述器具包括但不限于烤箱、炉子、烤架、蒸锅、炸锅、微波炉、混合器、脱水器等。
图62C描绘了机器人厨房2058的相同实施例的透视图,允许人形机2056(或厨师49、用户60)从至少四个不同侧面获得对多个烹饪站和设备的访问。中央储存站2062为在不同温度(冷藏/冷冻)保存的各种食物提供不同的储存区域以保持最佳新鲜度,允许从所有侧面访问该储存站,并且位于上层。用于炊具/烘焙用具/餐具的自动搁板站2068位于中央储存站2062下面的中间层。在下层处,烹饪站和设备的布置被定位成包括但不限于用于实施菜谱并且对处理进行监督的用户/厨师控制台2064、包括扫描器、摄像机和其他食材表征系统的食材访问站2060、用于炊具/烘焙用具/餐具的自动搁板站2068、至少包括水槽和洗碗机单元的洗涤清洁站2070、用于食物或食材制备当中采用的特定技术所需的专门工具的专门工具和用具站2072、用于使上菜盘温暖或冰冷的保温站2074、以及包括多个器具的烹饪器具站2076,所述器具包括但不限于烤箱、炉子、烤架、蒸锅、炸锅、微波炉、混合器、脱水器等。
图63是示出机器人人类模拟器电子知识产权(IP)库2100的框图。机器人人类模拟器电子IP库2100覆盖机器人设备75用作复现人的特定技能集合的手段的各种构思。更具体而言,包含一双机器手70和机器臂72的机器人设备75用于复现一组具体人类技能。通过某种方式,从人工到智能的转移能利用人的手来捕获,之后机器人设备75复现所记录动作的精确动作,获得相同的结果。机器人人类模拟器电子IP库2100包括机器人人类烹饪技能复现引擎56、机器人人类绘画技能复现引擎2102、机器人人类乐器技能复现引擎2104、机器人人类护理技能复现引擎2106、机器人人类情感识别引擎2108、机器人人类智能复现引擎2110、输入/输出模块2112以及通信模块2114。将关于图89、90、91、92和93描述机器人人类情感识别引擎1358。
图64是示出机器人人类情感(计算机操作的)引擎2108中的机器人人类情感方法250的处理和逻辑流的流程图。在其第一步骤2151,(软件)引擎接收来自与人的感官类似的各种源的感测输入,包括来自周围环境的视觉、可听反馈、触觉和嗅觉传感器数据。在判定步骤2152,做出是否创建运动反射的判定,其要么将导致反射运动2153,要么如果不需要反射运动则执行步骤2154,其中将基于存储在存储器中的信息或模式(pattern)识别具体输入信息或者其模式或组合,其随后被转换为抽象或符号表示。通过基于经验的智能环序列对抽象和/或符号信息进行处理。另一判定步骤2156基于已知的预定义行为模式判断是否应采取运动反应2157,如果否,则进行步骤2158。在步骤2158,通过具有从内部存储器提供的输入的另一层情感和心情反应行为环处理抽象和/或符号信息,其可以是通过学习而形成的。情感被分解为数学形式并编程到机器人中,其具有可被描述的机制和可被度量和分析的量(例如,在捕获面部表情时分析微笑多快形成和持续多久来将真实微笑和礼貌性微笑区分开,或者基于扬声器的音质来检测情感,其中计算机测量语音的音高、能量和音量以及从某一时刻到下一时刻的音量和音高的波动)。因而,将存在某些可识别并且可度量的对情感表达的量度(metrics),其中动物行为或人类说唱声音的这些量度将具有可识别并且可测量的相关情感属性。基于这些可识别可度量的量度,情感引擎能够做出有关采取哪种行为的判定,不管其是预先学习的还是新学习的。在存储器中更新所采取或执行的行为及其实际结果,并将其添加到经验个性和自然行为数据库2160中。在接下来的步骤2161中,经验个性数据被转换为更人类特定的信息,该信息然后允许他或她执行规定的或所导致的运动2162。
图65A描绘了机器人人类智能引擎2250。在复现引擎1360中,存在两个主要的块,包括训练块和应用块,两者均含有多个额外的模块,这些模块通过公共模块间通信总线2252彼此互连。人类智能引擎的训练块进一步包含若干模块,包括但不限于传感器输入模块2522、人类输入刺激模块2254、对输入刺激做出反应的人类智能响应模块2256、智能响应记录模块2258、质量检查模块2260以及学习机模块2262。人类智能引擎的应用块进一步包括若干模块,包括但不限于输入分析模块2264、传感器输入模块2266、响应生成模块2268以及反馈调整模块2270。
图65B描绘了机器人人类智能系统2108的架构。该系统被划分成认知机器人代理和人类技能执行模块。两模块共享感测反馈数据2109以及感测到的运动数据和模型化运动数据。认知机器人代理模块包括但不一定限于表示知识数据库2282的模块,其与调整和修订模块2286互连,两模块均通过学习模块2288来更新。已有知识2290被馈送到执行监视模块2292中,并且已有知识2294被馈送到自动化分析和推理模块2296中,两模块均从人类技能执行模块接收感测反馈数据2109,两者还向学习模块2288提供信息。人类技能执行模块包括控制模块2209和模块2230两者,控制模块2209使其控制信号基于收集和处理多个反馈源(可视的和可听的),模块2230具有利用标准化设备、工具和附件的机器人。
图66A描绘了机器人绘画系统2102的架构。在这一系统中既包括工作室机器人绘画系统2332,又包括商业机器人绘画系统2334,两者通信连接以允许在单件购买的基础上或者在基于订购的支付的基础上将用于机器人绘画的软件程序文件或应用2336从工作室机器人绘画系统2332输送至商业机器人绘画系统2334。工作室机器人绘画系统2332包括(人类)绘画艺术家2337和计算机2338,计算机1443接口连接到运动和动作感测装置以及绘画框架捕获传感器,以捕获和记录艺术家的活动和处理,并将相关软件绘画文件存储到存储器2340中。商业机器人绘画系统2334包括用户2342和计算机2344,计算机2344具有机器人绘画引擎,该引擎能够与机器臂接口连接并且根据软件绘画文件或应用以及用于校准模拟模型的视觉反馈来控制机器臂以重建绘画艺术家2337的活动。
图66B描绘了机器人绘画系统架构2350。该架构包括计算机2374,其与多个外部装置接口连接,所述外部装置包括但不限于运动感测输入装置和触摸框架2354、标准化工作站2356(包括画架2384、洗涤池2360、美工脚架2362、贮存橱2364和材料容器2366(颜料、溶剂等))、以及标准化工具和附件(刷子、颜料等)2368、视觉输入装置(摄像机等)2370、以及一个或多个机器臂70和机器手(或至少一个抓爪)72。
计算机模块2374包括若干模块,所述模块包括但不限于与绘画活动模拟器2378接口连接的机器人绘画引擎2376、基于绘画执行处理的视觉反馈起作用的绘画控制模块2380、用于存储绘画执行程序文件的存储器模块2382、用于学习适当绘画工具的选择和使用的算法2384、以及扩展的模拟验证和校准模块2386。
图66C描绘了机器人人类绘画技能复现引擎2102。在机器人人类绘画技能复现引擎2102中,有多个额外模块,其全部通过公共的模块间通信总线2393彼此互连。复现引擎2102进一步含有若干模块,所述模块包括但不限于输入模块2392、绘画活动记录模块2394、辅助/额外感测数据记录模块2396、绘画活动编程模块2398、含有软件执行处理程序文件的存储器模块2399、基于所记录的传感器数据生成执行命令的执行处理模块2400、含有标准化绘画参数的模块2402、输出模块2404、以及(输出)质量检查模块2403,所有的模块均受到软件维护模块2406的监督。
下面定义美术平台标准化的一实施例。第一,美术平台中的任何种类的美术工具(刷子、颜料、画布等)的标准化位置和取向(xyz)。第二,每一美术平台中的标准化操作体积尺寸和架构。第三,每一美术平台中的标准化美术工具集合。第四,每一美术平台中采用操纵库的标准化机器臂和手。第五,每一美术平台中用于创建动态三维视觉数据以实现绘画记录和执行跟踪以及质量检查功能的标准化三维视觉装置。第六,特定绘画执行处理中所有使用颜料的标准化类型/制造商/品牌。第七,特定绘画执行处理中画布的标准化类型/制造商/品牌。
具有标准化美术平台的一主要目的是实现最初绘画者执行的绘画处理与后来机器人美术平台复现的绘画处理具有相同的结果(即,相同的绘画)。在标准化美术平台的使用当中要强调的几个要点是:(1)绘画者和自动化机器人执行具有相同的时间线(相同的操纵顺序、每一操纵有相同的起始和结束时间、在操纵之间以相同的速度移动对象);以及(2)存在质量检查(3D视觉、传感器)以避免在绘画处理中的每一操纵后产生任何失败结果。因此,如果绘画是在标准化美术平台上完成的,那么将降低不能取得相同结果的风险。如果采用非标准化美术平台,那么其将增大无法取得相同结果的风险(即,无法获得相同的绘画),因为如果在机器人美术平台中未与在绘画者工作室中在相同的体积内用相同的美术工具、颜料或画布执行绘画,那么可能需要调整算法。
图67A描绘了工作室绘画系统和程序商业化处理2410。第一步骤2451是人类绘画艺术家决定要在工作室机器人绘画系统中创作美术作品,其包括确定诸如主题、构成、媒体、工具和设备等问题。艺术家在步骤2452中将所有这些数据输入到机器人绘画引擎中,其后在步骤2453中艺术家根据需要和装置程序中的详细说明设立标准化工作站、工具和设备、附件和材料、以及运动和可视输入装置。艺术家在步骤2454中设置处理的起始点,并打开工作室绘画系统,而后艺术家开始实际绘画步骤2455。在步骤2456中,工作室绘画系统在整个绘画处理中在已知的xyz坐标系中实时地记录艺术家活动的运动和视频。之后,在步骤2457中存储在绘画工作室中收集到的数据,从而允许机器人绘画引擎基于所存储的活动和媒体数据生成模拟程序2458。在步骤2459,所创作绘画的机器人绘画程序文件或应用(app)被开发并被整合以供不同的操作系统和移动系统使用,并且被提交给App商店或其他市场位置以供销售,可以对其进行单次使用购买,也可基于订购来购买。
图67B描绘了机器人绘画引擎的逻辑执行流2460。作为第一步骤,用户在步骤2461选择绘画标题,在步骤2462中机器人绘画引擎接收所述输入。机器人绘画引擎在步骤2463中将绘画执行程序文件上载到板上存储器中,之后进行至步骤2464,计算所需工具和附件。检查步骤2465提供有关是否存在工具或附件和材料的短缺的答案;如果存在短缺,则系统向用户发送警报2466,或者发送购物清单或替代绘画的建议。如果不存在短缺,则引擎在步骤2467中确认选择,允许用户继续到步骤2468,该步骤包括使用绘画执行程序文件中包含的逐步指令设置标准化工作站、运动和视觉输入装置。一旦完成,机器人绘画引擎就执行检查步骤2469以验证适当的设置;如果通过步骤2470检测到错误,那么系统引擎将向用户发送错误警报2472,并且提示用户重新检查设置和校正任何所检测到的缺陷。如果检查通过,没有检测到任何错误,则在步骤2471中引擎将确认所述设置,从而允许其在步骤2473中提示用户设置起始点并对复现以及视觉反馈和控制系统加电。在步骤2474中,(多个)机器臂将执行绘画执行程序文件中指定的步骤,包括如绘画程序执行文件指定的那样以相同步调执行活动以及工具和设备的使用。视觉反馈步骤2475对照定义绘画处理的成功执行及其结果的受控参数数据监视绘画复现处理的执行。机器人绘画引擎还采取模拟模型验证步骤2476,从而提高复现处理的保真度,其目标是使整个复现处理达到如工作室绘画系统捕获和保存的那样相同的最终状态。一旦完成了绘画,就将向用户发送通知2477,包括所应用的材料(颜料、膏糊等)的干燥和固化时间。
图68A描绘了机器人人类乐器技能复现引擎2104。在机器人人类乐器技能复现引擎2104中,有多个附加模块,其全部通过公共的模块间通信总线2478彼此互连。复现引擎进一步包括若干模块,所述模块包括但不限于可听(数字)音频输入模块2480、人类乐器演奏活动记录模块2482、辅助/附加感测数据记录模块2484、乐器演奏活动编程模块2486、含有软件执行处理程序文件的存储器模块2488、基于所记录的传感器数据生成执行命令的执行处理模块2490、含有标准化乐器演奏参数(例如,步调、压力、角度等)的模块2492、输出模块2494、以及(输出)质量检查模块2496,所有模块都受软件维护模块2498监督。
图68B描绘了音乐家复现引擎2104执行的处理和逻辑流。一开始,在步骤2501中用户选择音乐曲目和/或作曲家,之后在步骤2502中询问是由机器人引擎做出所述选择还是通过与人交互做出所述选择。在用户在步骤2503中选择由机器人引擎来选择曲目/作曲家的情况下,引擎2104配置为在步骤2512中采用其自身的创造性解释,从而在步骤2504中向人类用户提供机会向选择处理提供输入。如果人类拒绝提供输入,则机器人音乐家引擎2104被配置为在步骤2519中采用设置,例如,对音调、音高和乐器以及旋律变化的人工输入,在步骤2520中收集所需输入,以在步骤2521中生成并上载所选的乐器演奏执行程序文件,在机器人音乐家引擎在步骤2522中确认了选择后,允许用户在步骤2523中选择偏好的文件。然后在步骤2524中将人类做出的选择作为个人选择存储到个人简档数据库中。如果人类在步骤2513中决定为所述询问提供输入,则用户将能够在步骤2513中向选择处理提供额外的情感输入(面部表情、照片、新闻文章等)。机器人音乐家引擎在步骤2515中接收来自步骤2514的输入,允许其进行至步骤2516,在该步骤中所述引擎执行与所有可用输入数据有关的感情分析,并基于适合人的情感输入数据的情绪和风格上载音乐选择。在机器人音乐家引擎在步骤2517中确认了上载的音乐选择之后,用户可以在步骤2518中选择“开始”按钮以演奏用于该选择的程序文件。
在人类想要密切参与曲目/作曲家选择的情况中,系统在步骤2503中在显示器上向人类提供所选曲目的表演者列表。在步骤25044中,用户选择期望的表演者,即系统在步骤2505中接收到的选择输入。在步骤2506中,机器人音乐家引擎生成并上载乐器演奏执行程序文件,并在步骤2507中进行到比较人类和机器人音乐家对特定乐器的演奏表现之间的潜在限制,由此允许计算潜在表现差距。检查步骤2508判断是否存在差距。如果存在差距,那么系统将在步骤2509中基于用户偏好简档建议其他选择。如果没有表现差距,那么机器人音乐家引擎将在步骤2510中确认所述选择,并允许用户进行至步骤2511,用户可选择“开始”按钮以播放用于该选择的程序文件。
图69描绘了机器人人类护理技能复现引擎2106。在机器人人类护理技能复现引擎2106中,有多个附加模块,其全部通过公共的模块间通信总线2521彼此互连。复现引擎2106进一步包含若干模块,所述模块包括但不限于输入模块2520、护理活动记录模块2522、辅助/附加感测数据记录模块2524、护理活动编程模块2526、含有软件执行处理程序文件的存储器模块2528、基于所记录的传感器数据生成执行指令的执行处理模块2530、含有标准化护理参数的模块2532、输出模块2534、以及(输出)质量检查模块2536,所有模块均受软件维护模块2538监督。
图70A描绘了机器人人类护理系统处理2550。第一步骤2551涉及用户(护理接受者或家属/朋友)为护理接受者建立帐户,提供个人数据(姓名、年龄、ID等)。生物测定数据收集步骤2552涉及收集个人数据,包括面部图像、指纹、语音样本等。之后,用户在步骤2553中输入用于紧急联络的联系信息。机器人引擎在步骤2554中接收所有这些输入数据以建立用户帐户和简档。如果在步骤2555中确定用户未处于远程健康监视程序下,那么作为步骤2561的一部分,机器人引擎将帐户创建确认消息和自行下载手册文件/app发送给用户的平板电脑、TV、智能电话或将来用作基于触摸屏或语音的命令接口的其他装置。如果用户是远程健康监视程序的一部分,那么机器人引擎将在步骤2556中请求准许访问医疗记录。作为步骤2557的一部分,机器人引擎连接用户的医院和医师办公室、实验室以及医疗保险数据库以接收用户的病历、处方、治疗和就诊数据,并生成用于存储在用户特定文件内的医疗护理执行程序。作为下一步骤2558,机器人引擎与用户的任何和所有的可佩戴医疗装置(例如,血压监视器、脉搏和血氧传感器)连接,或甚至与电子控制药物分配系统(无论是口服的还是注射的)连接,从而允许进行连续监视。作为后续步骤,机器人引擎接收到医疗数据文件和感测输入,允许其在步骤2559中生成一个或多个针对该用户帐户的医疗护理执行程序文件。下一步骤2560涉及为用户信息、日常活动、相关参数以及任何过去或将来的医疗事件或预约建立安全的云存储数据空间。如之前在步骤2561中那样,机器人引擎将帐户创建确认消息和自行下载手册文件/app发给用户的平板电脑、TV、智能电话或将来用作基于触摸屏或语音的命令接口的其他装置。
图70B描绘了最初从图70A开始的机器人人类护理系统处理2250的继续,但是其现在涉及用户环境中物理存在的机器人。作为第一步骤2562,用户开启默认配置和位置(例如,充电站)的机器人。在任务2563中,机器人接收用户的基于语音或触摸屏的命令,从而执行一个具体的或一组命令或动作。在步骤2564中,机器人利用用户的语音和面部识别命令及线索、响应或行为,基于与用户的交互执行特定任务和活动,基于某些因素做出判决,所述因素例如为基于对特定或总体情况的了解的任务紧急性或任务优先度。在任务2565中,机器人执行对一个或多个物项的典型取回、抓住和运送,利用对象识别和环境感测、定位以及映射算法来优化沿无障碍路径的活动以完成任务,甚至可充当化身从而为用户提供音频/视频远程会议能力或者可与任何可控家用电器接口连接。在步骤2568,机器人基于感测输入和用户简档数据持续监视用户的医疗状况,并且监视潜在医疗危险状况的可能症状,同时在步骤2570具有将任何可能需要及时处理的状况通知给第一应答者或家属的能力。机器人在步骤2566中持续检查任何开放的或剩余的任务,并且时刻准备着对来自步骤2522的任何用户输入做出反应。
一般而言,可以考虑一种用于机器人系统的运动捕获和分析方法,其包括在人采用工作设备制备产品时通过多个机器人传感器感测人的活动的观测序列;在所述观测序列中检测与在制备产品的每个阶段中实施的活动序列对应的微操纵;将所感测到的观测序列转换为计算机可读指令,其用于对能够执行所述微操纵序列的机器人设备进行控制;至少将用于所述微操纵的指令序列存储到电子媒介上以用于获得所述产品。这可对多种产品重复。用于所述产品的微操纵序列优选存储为电子记录。所述微操纵可以是多阶段处理的抽象部分,例如,切割对象、加热对象(在烤箱内或者在炉子上用油或水加热)等。之后,所述方法还可以包括:将用于所述产品的电子记录传输至能够与人的初始动作对应地复现所存储的微操纵的序列的机器人设备。此外,所述方法还可包括通过机器人设备75执行用于获得该产品的微操纵的指令序列,由此获得基本上与人制备的原始产品一样的结果。
就另一个一般方面而言,可以考虑一种操作机器人设备的方法,包括提供用于标准微操纵的预编程指令的序列,其中,每一微操纵生成产品制备阶段内的至少一个可识别结果;在人采用设备制备产品的同时通过多个机器人传感器感测与人的活动对应的观测序列;在所述观测序列中检测标准微操纵,其中一微操纵对应于一个或多个观测,并且所述微操纵的序列对应于产品的制备;基于用于软件实现的方法将观测序列转变为机器人指令,所述软件实现的方法用于基于所感测的人的活动的序列识别预编程标准微操纵的序列,每个微操纵包含机器人指令的序列,机器人指令包括动态感测操作和机器人动作操作;将微操纵的序列及其对应的机器人指令存储到电子媒介中。优选地,产品的指令序列和对应的微操纵被存储为用于制备该产品的电子记录。这可以针对多种产品重复。所述方法还可以包括将所述指令的序列(优选以电子记录的形式)传输给能够复现和执行机器人指令序列的机器人设备。此外,所述方法还可以包括通过机器人设备执行用于该产品的机器人指令,由此获得基本上与人制备的原始产品一样的结果。在针对多种产品重复所述方法的情况下,所述方法可以额外包括提供一个或多个产品的电子描述的库,其包括产品名称、产品食材以及由所述食材制作产品的方法(例如,菜谱)。
另一个一般化方面提供一种操作机器人设备的方法,其包括接收用于制作产品的指令集,该指令集包括一系列与人的原始动作对应的微操纵的指示,每个指示包括机器人指令的序列,机器人指令包括动态感测操作和机器人动作操作;将所述指令集提供给能够复现所述微操纵的序列的机器人设备;通过机器人设备执行用于所述产品的微操纵的指令的序列,由此获得基本上与人制备的原始产品一样的结果。
可以从不同的角度考虑另一种操作机器人设备的一般化方法,其包括执行用于复现具有多个产品制备活动的菜谱的机器人指令脚本;判断每一制备活动是被识别为标准工具或标准对象的标准抓取动作,标准手操纵动作或对象,还是非标准对象;对于每一制备活动而言,下述操作中的一者或多者:如果制备活动涉及标准对象的标准抓取动作,那么指示机器人烹饪装置访问第一数据库库;如果食物制备活动涉及标准手操纵动作或对象,那么指示机器人烹饪装置访问第二数据库库;如果食物制备活动涉及非标准对象,那么指示机器人烹饪装置建立该非标准对象的三维模型。尤其可以在计算机系统中或者由计算机系统实施所述判断和/或指示步骤。所述计算系统可以具有处理器和存储器。
另一方面可见于一种通过机器人设备75制备产品的方法中,其包括通过由机器人设备75制备产品(例如,食物菜肴)而复现菜谱,所述菜谱被分解为一个或多个制备阶段,每个制备阶段被分解为微操纵和活动基元的序列,每个微操纵被分解为动作基元的序列。优选地,每个微操纵已被(成功地)测试以在考虑到适用对象以及一种或多种适用食材的位置、取向、形状的任何变化的情况下使该微操纵获得最佳结果。
另一方法方面可以在于一种生成菜谱脚本的方法,其包括接收来自诸如厨房环境之类的标准化工作环境模块的环境内的传感器的过滤了的原始数据;由所述过滤了的原始数据生成脚本数据的序列;以及将脚本数据的序列转换为用于制备产品的机器可读和机器可执行命令,所述机器可读和机器可执行命令包括用于控制一对机器臂和手以执行功能的命令。所述功能可以选自包括一个或多个烹饪阶段、一个或多个微操纵以及一个或多个动作基元的组。还可以考虑一种菜谱脚本生成系统,其包括配置为根据该方法操作的硬件和/或软件特征。
就这些方面的任何方面而言,可以考虑下述事项。产品的制备通常采用食材。执行指令通常包括感测产品制备当中采用的食材的属性。产品可以是根据(食物)菜谱(其可以保持在电子描述中)的食物菜肴,人可以是厨师。工作设备可以包括厨房设备。这些方法可以结合文中描述的其他特征中的一者或多者使用。可以结合各个方面的特征之一、所述特征中的不止一个或者所有的特征,从而(例如)使来自某一方面的特征可以与另一方面相结合。每一方面都可以是计算机实现的,并且可以提供一种被配置为在通过计算机或处理器运行时执行每一方法的计算机程序。可以将每一计算机程序存储到计算机可读介质上。附加地或替代地,所述程序可以是部分或完全硬件实现的。可以使各个方面相结合。还可以提供一种被配置为根据联系这些方面中的任何方面描述的方法工作的机器人系统。
在另一方面中,可以提供一种机器人系统,其包括:能够在第一仪器化环境内观测人的运动并生成人运动数据的多模态感测系统;以及通信耦合至多模态感测系统的用于记录从多模态感测系统接收到的人运动数据并对人运动数据进行处理以提取运动基元从而优选使运动基元定义机器人系统的操作的处理器(其可以是计算机)。运动基元可以是微操纵,如文中所述(例如,紧挨着的在先段落当中),并且可以具有标准格式。运动基元可以定义具体类型的动作和某一类型的动作的参数,例如,具有定义的起始点、终点、力和抓握类型的牵拉动作。任选地,还可以提供通信耦合至处理器和/或多模态感测系统的机器人设备。机器人设备可以能够采用运动基元和/或人运动数据在第二仪器化环境内复现所观测到的人的运动。
另一方面,可提供一种机器人系统,其包括:用于接收定义机器人系统的操作的运动基元的处理器(可以是计算机),所述运动基元是基于从人的运动捕获的人运动数据的;以及通信耦合至处理器的能够采用运动基元在仪器化环境内复现人的运动的机器人系统。应理解,还可以使这些方面相结合。
另一方面可见于一种机器人系统中,其包括:第一和第二机器臂;第一和第二机器手,每只手具有耦合至相应的臂的腕,每只手具有手掌和多个关节连接的手指,相应手上的每一关节连接指具有至少一个传感器;以及第一和第二手套,每只覆盖相应手的手套具有多个嵌入的传感器。优选地,所述机器人系统是机器人厨房系统。
在一不同但相关的方面中还可以提供一种运动捕获系统,其包括:标准化工作环境模块,优选为厨房;多个具有配置为物理耦接至人的第一类型传感器和配置为与人分隔开的第二类型传感器的多模态传感器。可以是下述情况中的一种或多种:第一类型的传感器可用于测量人附属肢体的姿势以及感测人附属肢体的运动数据;第二类型的传感器可用于确定环境、对象、活动、以及人附属肢体的位置中的一个或多个的三维配置的空间配准;第二类型的传感器可配置为感测活动数据;标准化工作环境可具有与第二类型的传感器接口连接的连接器;第一类型的传感器和第二类型的传感器测量运动数据和活动数据,并将运动数据和活动数据两者都发送至计算机,从而对其进行存储和处理,以供产品(例如,食物)制备之用。
附加地或替代地,一个方面可以在于包覆有感测手套的机器手,其包括:五个手指;以及连接至五个手指的手掌,所述手掌具有内部关节和处于三个区域内的可形变表面材料;第一可形变区域设置在手掌的桡骨侧并且接近拇指的基部;第二可形变区域设置在手掌的尺骨侧并且与桡骨侧隔开;第三可形变区域设置在手掌上并且跨越各手指的基部延伸。优选地,第一可形变区域、第二可形变区域和第三可形变区域的组合以及内部关节协同工作,以执行微操纵,尤其是用于食物制备的微操纵。
就上述系统、装置或设备方面中的任何方面而言,还可以提供包括用以执行系统的功能的步骤的方法。附加地或替代地,可以在文中相对于其他方面描述的特征中的一者或多者的基础上发现任选的特征。
图71是示出具有创建者记录系统2710和商业机器人系统2720的机器人人类技能复现系统2700的一般适用性(或通用性)的框图。人类技能复现系统2700可用于捕获对象专家或创建者2711的活动或操纵。创建者2711可以是在其相应领域的专家,并且可以是专业人员或已经获得必要技能从而精于诸如烹饪、绘画、医学诊断、或演奏乐器等之类的特定任务的人。创建者记录系统2710包括具有例如运动感测输入之类的感测输入的计算机2712、用于存储复现文件和主题/技能库2714的存储器2713。创建者记录系统2710可以是专用计算机,或者可以是通用计算机,其能够记录和捕获创建者2711的活动,分析这些活动并且将其提炼为可以在计算机2712上处理并且存储在存储器2713中的步骤。传感器可以是能够收集信息以精炼和完善机器人系统执行任务所需的微操纵的任何类型的传感器,诸如视觉、IR、热、接近度、温度、压力、或任何其他类型的传感器。存储器2713可以是任何类型的远程或本地记忆型存储器,并且可以存储在任何类型的存储器系统上,包括磁、光或任何其它已知的电存储系统。存储器2713可以是基于公共或私有云的系统,并且可以在本地提供或由第三方提供。主题/技能库2714可以是先前记录和捕获的微操纵的汇编或集合,并且可以按任何逻辑或关系顺序归类或布置,诸如按任务、机器人组件、或技能等。
商业机器人系统2720包括用户2721、具有机器人执行引擎和微操纵库2723的计算机2722。计算机2722包括通用或专用计算机,并且可以是处理器和/或其他标准计算设备的任何汇集(compilation)。计算机2722包括机器人执行引擎,用于操作诸如臂/手之类的机器人元件或完整的人形机以重新创建由记录系统捕获的活动。计算机2722还可以根据在记录处理期间捕获的程序文件或应用(app)来操作创建者2711的标准化对象(例如,工具和设备)。计算机2722还可以控制和捕获用于模拟模型校准和实时调整的三维模拟反馈。微操纵库2723存储已经经由通信链路2701从创建者记录系统2710下载到商业机器人系统2720的捕获的微操纵。微操纵库2723可以本地存储或远程存储微操纵,并且可以按预定规则或按关系来存储它们。通信链路2701基于购买、下载、或订阅而向商业机器人系统2720传送用于(主题)人类技能的程序文件或应用。操作时,机器人人类技能复现系统2700允许创建者2711执行任务或一系列任务,其被捕获在计算机2712上并且存储在存储器2713中,从而创建微操纵文件或库。然后,微操纵文件可以经由通信链路2701被传送到商业机器人系统2720并且在计算机2722上执行,从而导致一组机器人附件诸如手和臂或人形机复现创建者2711的活动。以这种方式,创建者2711的活动被机器人复现以完成所需任务。
图72是示出具有各种模块的机器人人类技能复现引擎2800的软件系统图。机器人人类技能复现引擎2800可包括输入模块2801、创建者活动记录模块2802、创建者活动编程模块2803、传感器数据记录模块2804、质量检查模块2805、用于存储软件执行处理程序文件的存储器模块2806、可以基于所记录的传感器数据的技能执行处理模块2807、标准技能活动和对象参数捕获模块2808、微操纵活动和对象参数模块2809、维护模块2810和输出模块2811。输入模块2801可包括任何标准输入设备,诸如键盘、鼠标或其他输入设备,并且可用于将信息输入到机器人人类技能复现引擎2800中。当机器人人类技能复现引擎2800正在记录创建者2711的活动或微操纵时,创建者活动记录模块2802记录并捕获创建者2711的所有活动和动作。记录模块2802可以以任何已知格式记录输入,并且可以以小增量移动来解析创建者的活动以构成主要活动。创建者活动记录模块2802可包括硬件或软件,并且可包括任何数量的逻辑电路或其组合。创建者活动编程模块2803允许创建者2711对活动进行编程,而不是允许系统捕获和转录所述活动。创建者活动编程模块2803可允许通过输入指令以及观察创建者2711而获得的捕获参数的输入。创建者活动编程模块2803可包括硬件或软件,并且可利用任何数量的逻辑电路或其组合来实现。传感器数据记录模块2804用于记录在记录处理中捕获的传感器输入数据。传感器数据记录模块2804可包括硬件或软件,并且可以利用任何数量的逻辑电路或其组合来实现。传感器数据记录模块2804可用在创建者2711正在执行正由诸如运动、IR、听觉等一系列传感器监视的任务时。传感器数据记录模块2804记录来自传感器的所有数据,以用于创建正在执行的任务的微操纵。质量检查模块2805可用于监视传入的传感器数据、总体复现引擎的健康状况,传感器或系统的任何其他组件或模块。质量检查模块2805可包括硬件或软件,并且可以利用任何数量的逻辑电路或其组合来实现。存储器模块2806可以是任何类型的存储器元件,并且可用于存储软件执行处理程序文件。其可包括本地或远程存储器,并且可以采用短期、永久或临时记忆储存器。存储器模块2806可利用任何形式的磁、光或机械存储器。技能执行处理模块2807可利用所记录的传感器数据来执行一系列步骤或微操纵,以完成已被机器人复现引擎捕获的任务或任务的一部分。技能执行处理模块2807可包括硬件或软件,并且可以利用任何数量的逻辑电路或其组合来实现。
标准技能活动和对象参数模块2802可以是以软件或硬件实现的模块,并且旨在定义对象的标准活动和/或基本技能。它可包括主题参数,其向机器人复现引擎提供关于标准对象的信息,该信息在机器人处理期间可能需要被使用。它还可以包含与标准技能活动相关的指令和/或信息,其不是任何一个微操纵独有的。维护模块2810可以是用于对系统和机器人复现引擎进行监视和执行日常维护的任何例程或硬件。维护模块2810可允许控制、更新、监视耦合到机器人人类技能复现引擎的任何其它模块或系统并且确定故障。维护模块2810可包括硬件或软件,并且可以利用任何数量的逻辑电路或其组合来实现。输出模块2811允许从机器人人类技能复现引擎2800到任何其他系统组件或模块的通信。输出模块2811可用于将捕获的微操纵导出或传送到商业机器人系统2720,或者可以用于将信息传送到存储器中。输出模块2811可包括硬件或软件,并且可以利用任何数量的逻辑电路或其组合来实现。总线2812耦接机器人人类技能复现引擎内的所有模块,并且可以是并行总线、串行总线、同步或异步总线等。它可以允许使用串行数据、分组数据、或任何其他已知的数据通信方法的任何形式的通信。
微操纵活动和对象参数模块2809可用于对所捕获的微操纵和创建者的活动进行存储和/或分类。它可在用户控制下耦接到复现引擎以及机器人系统。
图102是示出机器人人类技能复现系统2700的一实施例的框图。机器人人类技能复现系统2700包括计算机2712(或计算机2722)、运动感测装置2825、标准对象2826、非标准对象2827。
计算机2712包括机器人人类技能复现引擎2800、活动控制模块2820、存储器2821、技能活动仿真器2822、扩展模拟验证和校准模块2823、以及标准对象算法2824。如图102所示,机器人人类技能复现引擎2800包括若干模块,其使得对创建者2711的运动的捕获能够创建和捕获任务执行期间的微操纵。所捕获的微操纵被从传感器输入数据转换成可用于完成任务的机器人控制库数据,或者可以与其它微操纵串行或并行组合以创建机器臂/手或人形机2830完成任务或任务的一部分所需的输入。
机器人人类技能复现引擎2800耦接到活动控制模块2820,其可用于基于从机器人组件获得的视觉、听觉、触觉或其他反馈来控制或配置各种机器人组件的活动。存储器2821可耦接到计算机2712并且包括用于存储技能执行程序文件的必要的存储器组件。技能执行程序文件包含计算机2712执行一系列指令以使机器人组件完成任务或一系列任务的必要指令。技能活动仿真器2822耦接到机器人人类技能复现引擎2800,并且可用于模拟创建者技能而不需要实际传感器输入。技能活动仿真器2822向机器人人类技能复现引擎2800提供替代输入,以允许创建技能执行程序而无需创建者2711提供传感器输入。扩展模拟验证和校准模块2823可耦接到机器人人类技能复现引擎2800,并且提供扩展的创建者输入并且基于三维模拟和实时反馈提供对机器人活动的实时调整。计算机2712包括标准对象算法2824,其用于控制机器手72/机器臂70或人形机2830以使用标准对象完成任务。标准对象可包括标准工具或器具或标准设备,例如炉子或EKG机器。算法2824被预编译,并且不需要利用机器人人类技能复现的单独训练。
计算机2712耦接到一个或多个运动感测装置2825。运动感测装置2825可以是视觉运动传感器、IR运动传感器、跟踪传感器、激光监视传感器、或任何其他输入或记录装置,其允许计算机2712监视被跟踪设备在三维空间中的位置。运动感测装置2825可包括单个传感器或一系列传感器,其包括单点传感器、成对的发射器和接收器、成对的标记器和传感器、或任何其它类型的空间传感器。机器人人类技能复现系统2700可包括标准对象2826。标准对象2826是在机器人人类技能复现系统2700中在标准取向和位置的任何标准对象。它们可包括标准化工具或具有标准化把手或握把的工具2826-a、标准设备2826-b、或标准化空间2826-c。标准化工具2826-a可以是图12A-12C和图152-162S中所示的那些工具,或者可以是任何标准工具,例如刀、锅、铲子、解剖刀、温度计、小提琴弓、或可以在特定环境中使用的任何其他设备。标准设备2826-b可以是任何标准的厨房设备,例如炉子、烤焙用具、微波炉、搅拌器等,或者可以是任何标准的医疗设备、例如脉搏血氧仪等。空间本身2826-c可以是标准化的,例如厨房模块或创伤模块或恢复模块或钢琴模块。通过利用这些标准工具、设备和空间,机器手/臂或人形机器人可更快速地调整并学习如何在标准化空间内执行其期望的功能。
同样,在机器人人类技能复现系统2700内可以有非标准对象2827。例如,非标准对象可以是诸如肉类和蔬菜等的烹饪食材。这些非标准尺寸、形状和比例的对象可处于标准位置和取向,例如在抽屉或箱内,但是项目本身可以根据项目而变化。
视觉、音频和触觉输入设备2829可耦接到计算机2712,作为机器人人类技能复现系统2700的一部分。视觉、音频和触觉输入设备2829可以是相机、激光器、3D立体光学设备、触觉传感器、质量检测器、或允许计算机21712确定3D空间内的对象类型和位置的任何其他传感器或输入设备。它还可以允许检测对象的表面并且基于触摸、声音、密度或重量来检测对象属性。
机器臂/手或人形机器人2830可直接耦接到计算机2712或者可以通过有线或无线网络连接,并且可以与机器人人类技能复现引擎2800通信。机器臂/手或人形机器人2830能够操纵和复现由创建者2711执行的任何动作或任何算法以用于使用标准对象。
图73是示出具有控制点的人形机2840的框图,其用于使用标准化操作工具、标准化位置和方向以及标准化设备来进行技能执行或复现处理。如图104所示,人形机2840位于作为机器人人类技能复现系统2700的一部分的传感器视野2841内。人形机2840可以佩戴控制点或传感器点的网络,以能够捕获在任务执行期间进行的活动或微操纵。同样在机器人人类技能复现系统2700内的可以有标准工具2843、标准设备2845和非标准对象2842,它们都以标准初始位置和取向2844布置。当执行技能时,在传感器视野2841中记录技能中的每个步骤。从初始位置开始,人形机2840可执行步骤1至步骤n,所有这些步骤都被记录以产生可由一对机器臂或人形机器人实现的可重复结果。通过记录人类创建者在传感器视野2841中的活动,可以将信息转换为一系列个体步骤1-n,或转换为完成任务的事件序列。因为所有标准和非标准对象都定位和取向在标准初始位置,所以复现人类运动的机器人组件能够准确一致地执行所记录的任务。
图75是示出人类或创建者活动与机器人复现活动之间的转换算法模块2880的一实施例的框图。活动复现数据模块2884将记录套件2874中人类活动的捕获数据转换为机器可读机器可执行语言2886,以用于命令机器臂和机器手在机器人人形机复现环境2878中复现人类活动所执行的技能。在记录套件2874中,计算机2812基于人佩戴的手套上的传感器捕获和记录人类活动,在表格2888中,通过垂直列中的多个传感器S0、S1、S2、S3、S4、S5、S6……Sn以及水平行中的时间增量t0、t1、t2、t3、t4、t5、t6……tend来表示。在时间t0,计算机2812记录从多个传感器S0、S1、S2、S3、S4、S5、S6……Sn接收到的传感器数据的xyz坐标位置。在时间t1,计算机2812记录从多个传感器S0、S1、S2、S3、S4、S5、S6……Sn接收到的传感器数据的xyz坐标位置。在时间t2,计算机2812记录从多个传感器S0、S1、S2、S3、S4、S5、S6……Sn接收到的传感器数据的xyz坐标位置。该过程持续到在时间tend完成了整个技能为止。每一时间单元t0、t1、t2、t3、t4、t5、t6……tend的持续时间相同。作为所捕获和记录的传感器数据的结果,表格2888在xyz坐标系中手套中的传感器S0、S1、S2、S3、S4、S5、S6……Sn的任何活动,其将表明某一具体时间的xyz坐标位置与下一具体时间的xyz坐标位置之间的差别。表格2888有效地记录了从起始时间t0到结束时间tend在整个技能中人类活动如何变化。可以将这一实施例中的举例说明扩展至多个传感器,其由人类佩戴以在执行技能时捕获活动。在标准化环境2878中,机器臂和机器手复现来自记录套件2874的所记录的技能,其被转换为机器人指令,机器臂和机器手根据时间线2894复现人类技能。机器臂70和手72以相同的xyz坐标位置、相同的速度以及如时间线2894所示从起始时间t0到结束时间tend相同的时间增量来执行技能。
在一些实施例中,人类多次执行相同的技能,产生从一次到下一次有些变化的传感器读数值以及对应的机器指令中的参数。每一传感器的在技能的多次重复中的传感器读数的集合将提供具有平均值、标准偏差以及最小和最大值的分布。跨人类对相同技能的多次执行的机器人指令(又称为执行器参数)的对应变化也定义具有平均值、标准偏差值以及最小和最大值的分布。可以采用这些分布确定随后的机器人技能的保真度(或精确度)。
在一实施例中,机器人技能操作的估算平均精确度由下式给出:
Figure BDA0002425066820001151
其中,C表示一组人类参数(第1到第n),R表示一组机器人设备75参数(对应地第1到第n)。求和式中的分子表示机器人参数和人类参数之间的差(即,误差),分母针对最大差进行归一化。求和式给出了总的归一化累积误差(即
Figure BDA0002425066820001152
),乘以1/n给出了平均误差。平均误差的补数对应于平均精确度。
精确度计算的另一版本是对参数进行重要性加权,其中每一系数(每一αi)表示第i个参数的重要性,归一化累积误差为
Figure BDA0002425066820001161
并且通过下式给出估算平均精确度:
Figure BDA0002425066820001162
图76是示出基于来自创建者上布置的传感器的捕获感测数据的创建者活动记录和人形机复现的框图。在创建者运动记录套件3000中,创建者可佩戴具有用于捕获技能的传感器的各种身体传感器D1-Dn,其中传感器数据3001记录在表3002中。在此示例中,创建者正在用工具执行任务。由传感器记录下来的创建者的这些动作基元可构成在时隙1、2、3和4发生的微操纵3002。技能活动复现数据模块2884配置为将来自创建者记录套件3000的记录技能文件转换为机器人指令,以用于根据机器人软件指令3004操作机器人人类技能执行部分1063中的机器人组件,诸如机器臂和机器手。机器人组件利用用于用工具执行技能的微操纵的控制信号3006来执行技能,微操纵如来自微操纵库数据库3009的微操纵库116中预定义的那些。机器人组件通过从实时调整装置创建技能的临时三维模型3007来以相同的xyz坐标3005和可能的对技能的实时调整来操作。
为了操作机械机器人机构,例如本申请的实施例中描述的那些,技术人员意识到需要解决很多机械和控制问题,有关机器人的文献恰恰描述了这样做的方法。在机器人系统中建立静态和/或动态稳定性是一个重要考量。尤其是对于机器人操纵而言,动态稳定性是非常期望的特性,其目的在于防止超出预期或编程之外的意外破坏或活动。
图77示出了在本申请的功能的高层级描述水平上用于通用人形机器人的总体机器人控制平台3010。通用通信总线3002用作电子数据导管,包括从内部和外部传感器3014读取、与机器人的当前状态相关的变量及其当前值3016(诸如其移动的公差、其手的准确位置等)、以及诸如机器人在哪里或其需要操纵的对象在哪里之类的环境信息3018。这些输入源使人形机器人知晓其境况并且因此能够执行其任务,从最底层致动器命令3020到来自机器人规划器3022的高层级机器人端对端任务规划,机器人规划器3022可引用组件微操纵3024的大电子库,其然后被解释以确定它们的前提条件是否允许应用,并且被从机器人解释器模块3026转换为机器可执行代码,然后被作为实际命令和感测序列发送到机器人执行模块3028。
除了机器人规划、感测和执行之外,机器人控制平台还可以经由机器人人类接口模块3030通过图标、语言、手势等与人类通信,并且可以通过由微操纵学习模块3032观察人执行与微操纵对应的构建块(building-block)任务并且将多个观察归纳为微操纵,即,具有前置条件和后置条件的可靠可重复的感测动作序列,来学习新的微操纵。
图78是示出用于作为人形机应用任务复现处理的一部分的微操纵的生成、转移、实施和使用的计算机架构3050(或示意图)的框图。本申请涉及软件系统的组合,其包括许多软件引擎和数据集以及库,其在与库和控制器系统组合时产生一种技术方案,该技术方案对基于计算机的任务执行描述进行抽象和重组,以使机器人人形机系统能够复现人类任务并且能够自组装机器人执行序列以完成任何所需的任务序列。本申请的特定元素涉及微操纵(MM)生成器3051,其创建微操纵库(MML),人形机控制器3056可访问微操纵库(MML)以创建由驻留在人形机器人本身上/与之相关的低层级控制器执行的高层级任务执行命令序列。
用于执行微操纵的计算机架构3050包括控制器算法公开及其相关联的控制器增益值和用于任何给定运动/致动单元的位置/速度和力/转矩的指定时间简档、以及低层级(致动器)控制器(由硬件和软件元素二者表示)的组合,低层级控制器实施这些控制算法并且使用传感器反馈来确保包含在相应数据集中的规定动作/交互的简档的保真度。这些也进一步详细描述在下文中,并且在相关联的图107中以适当的颜色代码指示。
微操纵库生成器3051是包括创建微操纵(MM)数据集GG3的多个软件引擎GG2的软件系统,数据集GG3又用于成为一个或多个微操纵库数据库GG4的一部分。
微操纵库生成器3051包含上述软件引擎3052,其利用传感器和空间数据以及更高层级的推理软件模块来生成描述相应操纵任务的参数集,由此允许系统在多个层级构建完整的MM数据集3053。多层级微操纵库(MML)构建器是基于软件模块的,软件模块允许系统将完整的任务动作集分解为串行和并行动作基元的序列,动作基元关于复杂度和抽象度分类为从低层级到高层级。然后,微操纵库数据库构建器使用层级细分来构建完整的微操纵库数据库3054。
前面提到的参数集3053包含多种形式的输入和数据(参数、变量等)以及算法,包括用于特定任务的成功完成的任务性能度量,由人形机致动系统使用的控制算法、以及任务执行序列和相关参数集的细分,其基于所涉及的人形机的物理实体/子系统以及成功执行任务所需的相应操纵阶段。另外,在数据集中包括一组特定人形机的致动器参数以指定所指定的控制算法的控制器增益,以及用于在任务执行中涉及的每个致动装置的运动/速度和力/转矩的时间历史简档。
微操纵库数据库3054包括人形机完成任何特定的低到高层级任务所需的多个低到高层级数据和软件模块。库不仅包含先前生成的MM数据集,而且还包括其他库,例如与动态控制(KDC)、机器视觉(OpenCV)和其他交互/处理间通信库(ROS等)相关的当前已有的控制器功能。人形机控制器3056也是包括高层级控制器软件引擎3057的软件系统,高层级控制器软件引擎3057使用高层级任务执行描述来向低层级控制器3059馈送用于在人形机器人平台上执行和与其一起执行的机器可执行指令。
高层级控制器软件引擎3057构建特定应用的基于任务的机器人指令集,所述指令集继而被馈送到命令定序器软件引擎,命令定序器软件引擎创建用于命令执行器GG8的机器可理解命令和控制序列。软件引擎3052将命令序列分解成运动和动作目标,并且开发执行计划(时间上的和基于性能水平的),从而能够生成时间顺序的运动(位置和速度)和交互(力和转矩)简档,其然后被馈送到低层级控制器3059以用于由受影响的各致动器控制器3060在人形机器人平台上执行,致动器控制器3060又至少包括其各自相应的电机控制器和电源硬件及软件以及反馈传感器。
低层级控制器包含致动器控制器,其使用数字控制器、电子功率驱动器和传感器硬件来向软件算法馈送用于位置/速度和力/转矩的所需设定点,所述控制器的任务是沿带时间戳的序列忠实地复现,依靠反馈传感器信号来确保所需的性能保真度。控制器保持在恒定环路中以确保随时间实现所有设定点,直到完成所需的运动/交互步骤/简档,而较高层级的任务性能保真度也由命令执行器3058中的高层级任务性能监视软件模块监视,这会导致馈送到低层级控制器的高到低运动/交互简档中的潜在修改,以确保任务结果落在所需的性能界限内并满足指定的性能度量。
在教导回放控制器3061中,通过一组运动简档来引导机器人,简档按时间同步方式连续存储,然后低层级控制器通过控制每个致动元件来精确地遵循先前记录的运动简档来“回放”简档。这种类型的控制和实施对于控制机器人来说是必要的,其中一些可商购获得。虽然所描述的本申请利用低层级控制器来在人形机器人上执行机器可读的时间同步的运动/交互简档,但是本申请的实施例涉及比教导-动作(teach-motions)更通用的技术、更自动化且更有能力的过程、更多的复杂性,允许以更高效和更成本有效的方式创建和执行潜在大量的简单到复杂的任务。
图79描绘了将在基于创建者工作室的记录步骤中和在相应任务的机器人执行期间涉及到的、用于基于工作室和基于机器人的传感器数据输入类别和类型的、不同类型的传感器分类3070及其相关联的类型。这些传感器数据集形成了构建微操纵行为库的基础,其通过基于特定数据或用于实现特定数据值以实现期望最终结果的不同控制动作的多回路组合来构建,无论其是非常明确的“子例程”(握住刀、敲击钢琴键、在画布上画条线等)还是更一般的微操纵例程(准备沙拉、演奏舒伯特的第5号钢琴协奏曲、画田园场景等);后者可通过微操纵子例程的多个串行和并行组合的级联来实现。
传感器已经基于其物理位置和需要控制的特定交互部分分为三类。三类传感器(外部3071、内部3073和接口3072)将其数据集馈送到数据套件处理3074中,数据套件处理3074通过适当的通信链路和协议将数据转发到数据处理和/或机器人控制器引擎3075。
外部传感器3071包括通常位于/使用在双臂机器人躯干/人形机外部并且倾向于模拟世界中的个体系统以及双臂躯干/人形机的位置和配置的传感器。用于这种套件的传感器类型将包括简单的接触开关(门等)、用于一维测距的基于电磁(EM)波谱的传感器(IR测距仪等)、用于生成二维信息(形状、位置等)的视频摄像机、以及用于使用双目/三目摄像机、扫描激光器和结构光等生成空间位置和配置信息的三维传感器。
内部传感器3073是双臂躯干/人形机内部的传感器,主要测量内部变量,例如臂/肢体/关节位置和速度、致动器电流和关节笛卡尔力和转矩、触觉变量(声音、温度、味道等)二进制开关(行程限制等)、以及其他特定设备存在开关。其他一维/二维和三维传感器类型(例如手中的)可通过视频摄像机以及甚至内置的光学跟踪器(例如在躯干上安装的传感器头等)测量范围/距离、二维布局。
接口传感器3072是用于在双臂躯干/人形机在其任何任务期间与真实世界交互时提供高速接触和交互动作以及力/转矩信息的那些种类的传感器。这些传感器是关键的传感器,因为它们是关键微操纵子例程动作的操作的组成部分,例如以恰好正确的方式(持续时间、力和速度等)敲击钢琴键或使用手指运动的特定序列抓住刀并且实现安全的抓住以使其取向为能够执行特定任务(切番茄、打蛋、压碎蒜瓣等)。这些传感器(以接近度顺序)可以提供与机器人附件到世界之间的远离(stand-off)/接触距离、恰在接触前可测量的末端执行器和世界之间的相关电容/电感、实际接触的存在和位置及其相关表面属性(电导率、顺应性等)、以及相关交互属性(力、摩擦等)和任何其他重要的触觉变量(声音、热量、气味等)有关的信息。
图80描绘了示出基于系统级微操纵库动作的双臂和躯干拓扑3080的框图,其用于具有通过躯干3110连接的两个独立但相同臂1(3090)和2(3100)的双臂躯干/人形机系统3082。每个臂3090和3100在内部被分成手(3091、3101)和肢关节部分3095、3105。每个手3091、3101又包括一个或多个手指3092和3102、手掌3093和3103、以及手腕3094和3104。每个肢关节部分3095和3105又包括前臂肢3096和3106、肘关节3097和3107、上臂肢3098和3108、以及肩关节3099和3109。
如图BB所示的对物理布局进行分组的好处与以下事实有关:微操纵动作可容易地分为主要由手或肢体/关节的某一部分执行的动作,从而显著减少在学习和回放期间用于控制和调整/优化的参数空间。它是某些子例程或主微操纵动作可映射到其中的物理空间的表示,描述每个微操纵所需的相应变量/参数是微小/必要且足够的。
物理空间域的细分还允许针对特定任务将微操纵动作更简单地细分成一组通用微操纵(子)例程,从而大大简化了使用串行/并行通用微操纵(子)例程的组合来构建更复杂和更高层级复杂微操纵的过程。应注意,对物理域进行细分以容易地生成微操纵动作基元(和/或子例程)仅是允许简化微操纵(子)例程的参数描述以使得可以恰当地构建一组通用和特定任务微操纵(子)例程或动作基元从而建立(一组)完成的动作库的两种互补方案之一。
图81将双臂躯干人形机器人系统3120示为一组操纵功能阶段,其与任何操纵活动相关联,而与要完成的任务无关,用于特定任务动作序列3120的微操纵库操纵阶段组合和转移。
因此,为了构建更复杂和更高层级的一组微操纵运动基元例程以形成一组通用子例程,高级微操纵可被认为是任何操纵的各种阶段之间的转移,从而允许微操纵子例程的简单级联以开发更高层级的微操纵例程(动作基元)。注意,操纵的每个阶段(接近、抓住、操作等)本身是其自身的低层级微操纵,由控制动作和力/转矩相关的一组参数(内部、外部以及界面变量)描述,涉及一个或多个物理域实体[手指、手掌、手腕、肢体、关节(肘部、肩部等)、躯干等]。
双臂系统的臂1 3131可考虑为使用图108定义的外部和内部传感器以实现末端执行器的特定位置3131,在接近特定目标(工具、器具、表面等)之前具有给定配置3132,在接近阶段3133以及在任何抓取阶段3035(如果需要的话)使用接合传感器来引导系统;随后的处理/操作阶段3136允许末端执行器在其抓取时操纵仪器(搅拌、牵引等)。相同的描述适用于可执行类似动作和序列的臂2 3140。
注意,如果微操纵子例程动作失败(例如需要重新抓取),则所有微操纵序列器必须做的是向后跳回到先前阶段并且重复相同动作(如果需要的话,可能用一组修改的参数以确保成功)。更复杂的动作集合,例如用不同的手指弹奏一系列钢琴键,涉及在接近(Approach)阶段3133、3134和接触阶段3134、3144之间的重复跳跃循环,允许在不同的间隔不同的键被触发,具有不同的效果(软/硬,短/长等);移动到钢琴键音阶上的不同八度音将仅需要阶段回退到配置阶段3132以通过平移和/或旋转来重新定位臂或者甚至整个躯干3140以实现不同的臂和躯干取向3151。
臂2 3140可以在动作协调阶段315(例如在乐队指挥的臂和躯干挥动指挥棒的动作期间)、和/或接触和交互控制阶段3153(例如在双臂揉搓在桌子上的面团的动作期间)的引导下,平行地且独立于臂3130或者与臂3130和躯干3150结合并且协调地进行类似的活动。
在图110中描绘的一个方面是,微操纵,从最低层级子例程到更高层级动作基元或更复杂微操纵动作和抽象序列,可以从一组与特定阶段相关的不同动作生成,这些动作又具有清楚且明确定义的参数集(用于测量、控制和通过学习来优化)。较小的参数集允许更容易的调试和确保子例程能工作,并且允许更高层级的微操纵例程完全基于良好定义并且成功的较低层级微操纵子例程。
注意,将微操纵(子)例程不仅耦合到在图110所示的任务动作的特定阶段期间需要监视和控制的一组参数,而且还与图109中细分的特定物理单元(集合)相关联,这允许一组非常强大的表示,以允许生成直观的微操纵动作基元并且将其汇编成一组通用和特定任务的微操纵运动/动作库。
图82描绘了示出作为工作室数据生成、收集和分析处理的一部分,用于通用和特定任务动作基元二者的微操纵库生成过程3160的流程图。该图示出了如何通过一组软件引擎来处理传感器数据以创建一组微操纵库,微操纵库含有参数值、时间历史、命令序列、性能测量和度量等的数据集,从而确保低层级和更高层级的微操纵动作基元实现低到复杂远程机器人任务执行的成功完成。
在更详细的视图中,示出传感器数据如何被过滤并且输入到处理引擎序列中以获得一组通用和特定任务的微操纵动作基元库。图108所示的传感器数据处理3162包括过滤步骤3161和通过相关引擎将其分组3163,其中数据与图109确定的物理系统元件以及图110描述的操纵阶段相关联,甚至潜在地允许用户输入3164,之后通过两个微操纵软件引擎对它们进行处理。
微操纵数据处理和结构化引擎3165基于动作序列的识别3165-1、操纵步骤的分割分组3165-2、以及然后将其抽象成每个微操纵步骤的参数值数据集的抽象步骤3165-3,创建动作基元的临时库,其中动作基元与一组预定义的低层级到高层级运动基元3165-5相关联并且存储在临时库3165-4中。作为示例,处理3165-1可以通过数据集来识别动作序列,该数据集指示与工作室厨师抓取刀并且继续将食物项切割成片相关的对象抓取和重复来回动作。动作序列然后在3165-2中被分解为图109所示的若干物理元件(手指和肢体/关节)的相关动作,其具有用于一个或多个臂和躯干的多个操纵阶段之间的一组转变(例如,控制手指抓取刀,将其正确地定向,平移臂和手以使刀准备切割,在沿切割平面进行切割期间控制接触和相关的力,沿自由空间轨迹将刀复位至切割起点,然后重复切割食物项的接触/力控制/轨迹跟踪过程,该过程被索引以用于实现不同的切片宽度/角度)。然后,在3165-3中提取与操纵阶段的每部分相关联的参数,分配数值,并且与由3165-5提供的具有记忆描述符的特定运动基元相关联,记忆描述符例如为“抓取”、“对准用具”、“切割”、“索引(index-over)”等。
临时库数据3165-4被馈送到学习和调谐引擎3166,其中来自其他多个工作室线程3168的数据被用于提取类似的微操纵动作及其结果3166-1并且比较它们的数据集3166-2,允许以迭代方式使用一种或多种标准机器学习/参数调谐技术在每个微操纵组内进行参数调谐3166-3。另一层级结构化处理3166-4决定将微操纵动作基元分解成通用低层级子例程和由子例程动作基元的序列(串行和并行组合)组成的较高层级微操纵。
然后,接下来的库构建器3167将所有通用微操纵例程组织成具有所有相关联的数据(命令、参数集、以及预期/要求的性能度量)的一组通用多层级微操纵动作基元,作为单个通用微操纵库3167-2的一部分。然后还构建单独且不同的库作为特定任务库3167-1,其允许将一般微操纵动作基元的任何序列分配给特定任务(烹饪、绘画等),允许包括仅与该任务相关的、通过远程机器人系统复现工作室行为所需的特定任务数据集(诸如厨房数据和参数、特定仪器参数等)。
单独的微操纵库访问管理器3169负责核出(check out)适当的库及其相关数据集(参数、时间历史、性能度量等)3169-1以传递到远程机器人复现系统上,并且核入(checkin)基于一个或多个相同/不同的远程机器人系统的学习和优化的微操纵执行的更新的微操纵动作基元(参数,性能度量等)3169-2。这确保了库不断增长,并且被越来越多的远程机器人执行平台优化。
图83描绘了示出远程机器人系统如何利用微操纵库来执行由专家在工作室设置中执行的特定任务(烹饪、绘画等)的远程复现的处理的框图,其中专家的动作被记录、分析并且转换成分层级结构化的微操纵数据集(命令、参数、度量、时间历史等)的机器可执行集合,其在被下载并且被正确解析时,允许机器人系统(在本示例中为双臂躯干/人形机系统)以足够的保真度忠实地复现专家的动作,从而实现与专家在工作室设置中的结果基本相同的最终结果。
在高层次上说,这是通过下载包含机器人系统所需的微操纵数据集的完整集合的任务描述库,并且将其提供给机器人控制器以供执行而实现的。机器人控制器产生由执行模块解释并执行的所需命令和动作序列,同时从整个系统接收反馈,以允许其遵循为关节、肢体位置和速度以及(内部和外部的)力和转矩建立的简档。并行性能监视处理使用任务描述性功能和性能度量来跟踪和处理机器人的动作,以确保所需的任务保真度。允许微操纵学习和调整处理以在特定功能结果不令人满意时取得并且修改任何微操纵参数集,从而使机器人成功地完成每个任务或动作基元。然后,使用更新的参数数据以重新构建修改的微操纵参数集以用于重新执行以及用于更新/重建特定微操纵例程,其被提供回原始库例程作为修改/重新调谐的库,用于其他机器人系统将来使用。系统监视所有微操纵步骤,直到实现最终结果,一旦完成,则退出机器人执行环路,等待进一步的命令或人工输入。
具体来说,上面概述的处理可详细说明为下述序列。通过微操纵库访问管理器3171访问包含通用和特定任务微操纵库二者的微操纵库3170,这确保了用于特定任务的执行和验证临时/最终结果所需的所有必要特定任务数据集3172都是可获得的。数据集至少包括但不限于所有必要的运动/动态和控制参数、相关变量的时间历史、用于性能验证的功能和性能度量和值、以及与当前的特定任务相关的所有微操纵动作库。
所有特定任务数据集3172被馈送到机器人控制器3173。命令定序器3174为总共’i=N’个步骤创建具有分配的索引值’I’的适当的顺序/并行动作序列,并且将每个顺序/并行的动作命令(和数据)序列馈送到命令执行器3175。命令执行器3175获取每个动作序列,又将其解析为用于致动和感测系统的一组高到低命令信号,使这些系统中的每个系统的控制器确保具有所需位置/速度和力/转矩简档的动作简档随时间而被正确地执行。来自(机器人)双臂躯干/人形机系统的传感器反馈数据3176被简档跟踪功能所使用以确保实际值尽可能接近期望/命令值。
单独并行的性能监视处理3177在每个单独微操纵动作的执行期间的所有时间测量功能性能结果,并将其与在3172中提供的特定任务微操纵数据集中提供的、与每个微操纵动作相关联的性能度量进行比较。如果功能结果在所要求的度量值的可接受公差限度内,则通过将微操纵索引值递增到’i++’并且将该值馈送到而且控制返回到命令定序器处理3174,而允许机器人的执行继续,使整个处理在重复循环中继续。然而,如果性能度量不同,导致功能结果值差异大,则执行单独的任务修改器处理3178。
微操纵任务修改器处理3178用于允许修改描述任何一个特定任务微操纵的参数,从而确保任务执行步骤的修改将达到可接受的性能和功能结果。这通过从“违规”的微操纵动作步骤取得参数集,并且使用机器学习领域中常见的用于参数优化的多种技术中的一种或多种来实现,以将特定微操纵步骤或序列MMi重建为修订的微操纵步骤或序列MMi*。然后使用修改的步骤或序列MMi*来重建新的命令序列,其被传递回到命令执行器3175以便重新执行。然后将修改的微操纵步骤或序列MMi*馈送到重建功能块,其重新组装微操纵数据集的最终版本,其导致成功实现所需功能结果,因此其可被传递到任务和参数监视处理3179。
任务和参数监视处理3179负责检查每个微操纵步骤或序列的成功完成以及被认为负责实现所需性能水平和功能结果的最终/适当的微操纵数据集二者。只要任务执行未完成,则控制回到命令定序器3174。一旦整个序列已被成功执行,意味着“i=N”,则处理退出(有可能等待进一步命令或用户输入)。对于每个序列计数器值“I”,监视任务3179还将所有重建微操纵参数集的总和∑(MMi*)返回到微操纵库访问管理器3171,以允许其更新图111所示的远程微操纵库3170中的特定任务库。然后远程库更新其自己的内部特定任务微操纵表示[设置∑(MMi,new)=∑(MMi *)],从而使优化的微操纵库可用于所有未来的机器人系统使用。
图84描绘了示出用于与特定任务相关联的微操纵任务动作基元的自动化微操纵参数集构建引擎3180的框图。它提供了如何基于使用物理系统分组和不同操纵阶段来完成为特定任务的特定微操纵构建(子)例程的处理的图形表示,其中可以使用多个低层级微操纵基元(本质上是包括小且简单的动作以及闭环控制动作的子例程)来建立更高层级的微操纵例程,例如抓取、抓取工具等。该处理产生以多维向量(阵列)存储的参数值的序列(基本上是任务和时间索引的矩阵),其基于简单操纵和步骤/动作的顺序以逐步的方式被应用。实质上,该图描绘了生成微操纵动作序列及其相关参数的示例,反映了包含在图112的微操纵库处理和结构化引擎3160中的动作。
图113所示的示例显示了软件引擎如何分析传感器数据以从特定工作室数据集提取多个步骤的一部分。在该示例中,是抓住器具(例如刀)并行进到切割站以抓取或保持特定食物项(例如一条面包)并且将刀对准以切割(切片)的过程。在步骤1中系统聚焦于臂1,其涉及抓取器具(刀),通过将手配置为用于抓取(1.a.),接近在支架中或在表面上的器具(1.b.),执行一组预定抓取动作(包括未示出但包括在抓取微操纵步骤1.c.中的接触检测和力控制)以获取器具,然后在自由空间中移动手以适当地对准手/腕以进行切割操作。由此,系统能够填充(populate)参数向量(1至5)以用于随后的机器人控制。系统返回到涉及躯干的下一步骤2,包括面向工作(切割)表面(2.a.)、对准双臂系统(2.b.)、返回以进行下一步骤(2.c.)的较低层级微操纵的序列。在下一步骤3中,臂2(没有拿着器具/刀的臂)被命令对准其手(3.a.)以抓取更大对象,接近食物项(3.b.;可能涉及移动所有肢体和关节以及手腕;3.c.),然后移动直到产生接触(3.c.),然后推以用足够的力握住食物项(3.d.),然后对准器具(3.f.)以允许返回(3.g.)之后的切割操作,并且进行到下一步骤(4.等)。
上述示例说明了使用物理实体映射和操纵阶段方案基于简单的子例程动作(其本身也是微操纵)构建微操纵例程的过程,计算机可以使用来自工作室记录过程的外部/内部/接口传感器反馈数据来容易地对其进行区分和参数化。这种用于过程参数的微操纵库建立过程生成完整描述(一组)成功微操纵动作的“参数向量”,参数向量包括传感器数据、关键变量的时间历史、以及性能数据和度量,允许远程机器人复现系统忠实地执行所需任务。该过程也是通用的,因为它对当前任务(烹饪、绘画等)不可知,仅基于一组通用动作和活动基元来构建微操纵活动。可以在任何层级添加简单用户输入和其他预定动作基元描述符以更一般地描述特定动作序列,并允许使其对于未来使用是通用的,或者是任务特定的以用于特殊应用。使微操纵数据集包括参数向量还允许通过学习来持续优化,其中可能对参数进行调整以基于在涉及在一个或多个通用和/或特定任务库中的微操纵例程的应用(和评估)的机器人复现操作期间生成的现场数据来改善特定微操纵的保真度。
图85A是示出机器人架构(或机器人系统)的以数据为中心的视图的框图,中央机器人控制模块包含在中央框中,以便聚焦于数据仓库。中央机器人控制模块3191包含在<填充>中公开的所有处理所需的工作存储器。特别地,中央机器人控制(CentralRoboticControl)确立机器人操作模式,例如,它是从外部教师观察和学习新的微操纵,还是执行任务,还是处于其他不同的处理模式。
工作存储器1 3192包含直到当前的一时间段的所有传感器读数:从几秒到几小时一取决于多大的物理存储器,典型地为约60秒。传感器读数来自机载或机外机器人传感器,可包括来自相机的视频、雷达、声纳、力和压力传感器(触觉)、音频和/或任何其它传感器。传感器读数被隐式或显式地加时间标记或序列标记(后者意味着传感器读数被接收的顺序)。
工作存储器2 3193含有由中央机器人控制生成并且传递给致动器或者列队以在给定时间点或基于触发事件(例如机器人完成先前动作)传递给致动器的所有致动器命令。这些包括所有必要的参数值(例如,移动多远、施加多大的力等)。
第一数据库(数据库1)3194包含机器人已知的所有微操纵(MM)的库,包括每个MM的triple<PRE,ACT,POST>,其中PRE={s1,s2,...,sn}是全局状态的一组项目,其在行为ACT=[a1,a2,...,ak]能发生并且导致POST{p1,p2,...,pm}表示的全局状态的一组改变之前必须为真。在优选实施例中,微操纵被按目的、按其所涉及的传感器和致动器、以及按促成访问和应用的任何其它因素而索引。在优选实施例中,如果执行微操纵,则每个POST结果与获得期望结果的概率相关联。中央机器人控制(Central Robotic Control)访问微操纵库以检索和执行微操纵并对其进行更新,例如,在学习模式中添加新的微操纵。
第二数据库(数据库2)3195包含实例库,每个实例是执行给定任务的微操纵序列,例如制备给定菜肴或从不同空间取出物品。每个实例包含变量(例如,取得什么、行进多远等)和结果(例如,特定实例是否获得期望结果以及离最佳有多远、多快、有或没有副作用等)。中央机器人控制(Central Robotic Control)访问实例库以确定是否有用于当前任务的已知动作序列,并且在执行任务后用结果信息更新实例库。如果在学习模式中,则中央机器人控制添加新实例到实例库中,或者替代地删除无效的实例。
第三数据库(数据库3)3196包含对象存储,其本质上是机器人关于世界中的外部对象所知晓的,并且列出这些对象、它们的类型和它们的属性。例如,刀的类型是“工具”和“器具”,它通常在抽屉中或台面上,它具有一定的尺寸范围,它可以容忍任何抓取力等。鸡蛋的类型是“食物”,它有一定的尺寸范围,它通常在冰箱中,在抓取时它只能承受一定量的力而不破碎等。在形成新的机器人动作规划时查询对象信息,以确定对象属性,识别对象等。当引入新对象时,对象存储也可被更新,并且可以更新其关于现有对象及其参数或参数范围的信息。
第四数据库(数据库4)3197包含关于机器人操作环境的信息,包括机器人位置、环境范围(例如房子中的空间)、它们的物理布局、以及环境中特定对象的位置和数量。每当机器人需要更新对象参数(例如位置、取向)或需要在环境中导航时,将查询数据库4。当对象被移动、消耗或从外部引入新对象时(例如,当人从商店或超市返回时),数据库4被频繁地更新。
图85B是示出微操纵机器人行为数据的成分、链接和转换中的各种微操纵数据格式的示例的框图。关于成分,专用/抽象计算机编程语言的高层级微操纵行为描述是基于使用基本微操纵基元的,基本微操纵基元本身可以由甚至更基本的微操纵描述,以允许从更复杂的行为构建行为。
非常基本的行为的示例可以是“手指弯曲”,其具有与“抓取”相关的动作基元,使所有5根手指绕对象弯曲,并具有称为“取出器具”的高层级行为,涉及臂移动到相应位置并且然后用所有五根手指抓住器具。每个基本行为(包括更基本的行为)具有相关的功能结果以及用于描述和控制每个行为的相关校准变量。
链接允许将行为数据与物理世界数据链接,包括:与物理系统(机器人参数和环境几何等)、用于实现动作的控制器(类型和增益/参数)相关的数据,以及监视和控制所需的传感器数据(视觉、动态/静态测量等),以及其它软件环执行相关处理(通信、错误处理等)。
通过称为致动器控制指令代码转换器和生成器的软件引擎,转换(conversion)从一个或多个数据库获取所有链接的微操纵数据,从而为每个致动器(A1至An)控制器(其本身运行位置/速度和/或力/转矩的高带宽控制环)在每个时段(t1至tm)创建机器可执行(低层级)指令代码,允许机器人系统在一组连续的嵌套环中执行所命令的指令。
图86是示出在机器人硬件技术概念3206、机器人软件技术概念3208、机器人商业概念3202、以及用于承载机器人技术概念的数学算法3204之间的不同层级双向抽象3200的一透视(perspective)的框图。如果本申请的机器人概念被视为垂直和水平概念,则机器人商业概念包括在顶层3202的机器人厨房商业应用、在底层的机器人概念数学算法3204、以及在机器人商业概念3202和数学算法3204之间的机器人硬件技术概念3206和机器人软件技术概念3208。实际而言,如图115所示,机器人硬件技术概念、机器人软件技术概念、数学算法和商业概念中的每个层级双向地与任何层级交互。例如,一种计算机处理器,用于处理来自数据库的软件微操纵,以通过向致动器发送命令指令来控制机器人上的每个机器人元件的移动来实现制备食物的最佳功能结果。贯穿本申请描述了机器人硬件技术概念和机器人软件技术概念的水平透视的细节,例如如图100-114所示。
图87A是示出人形机类型的机器人3220的一实施例的图。人形机器人3220可具有头部3222,头部3222具有用于接收外部环境图像的相机,并且具有检测和探测目标对象位置和移动的能力。人形机器人3220可具有躯干3224,躯干3224上具有身体上的传感器以检测身体角度和运动,其可包括全球定位传感器或其他位置传感器。人形机器人3220可具有一个或多个灵巧手72、手指和手掌,其具有并入手和手指中的各种传感器(激光、立体相机)。手72能够进行精确的保持、抓取、释放、手指按压动作以执行诸如烹饪、乐器演奏、绘画等主题专家人类技能。人形机器人3220可以可选地包括腿部3226,腿部3226上具有致动器以控制操作速度。每个腿部3226可具有多个自由度(DOF)以执行像人一样的行走、跑步和跳跃运动。类似地,人形机器人3220可具有能够移动通过各种地形和环境的足部3228。
另外,人形机器人3220可具有颈部3230,颈部3230具有用于前/后、上/下、左/右和旋转运动的多个DOF。其可以具有:肩部3232,具有用于前/后、旋转运动的多个DOF;肘部,具有用于前/后运动的多个DOF;以及腕部314,具有用于前/后、旋转运动的多个DOF。人形机器人3220可具有:臀部3234,具有用于前/后、左/右和旋转运动的多个DOF;膝部3236,具有用于前/后运动的多个DOF;以及脚踝3236,具有用于前/后和左/右运动的多个DOF。人形机器人3220可容纳电池3238或其它电源,以允许其绕其操作空间无阻碍地移动。电池3238可以是可再充电的,可以是任何类型的电池或其他已知电源。
图87B是示出人形机类型的机器人3220的一实施例的框图,其具有安装在机器人本体中在各个关节处或附近的多个陀螺仪3240。作为方向传感器,可旋转陀螺仪3240示出人形机以高复杂度进行角运动的不同角度,例如弯腰或坐下。该组陀螺仪3240提供了维持整个人形机器人以及人形机器人3220的各部件的动态稳定性的方法和反馈机制。陀螺仪3240可提供实时输出数据,诸如欧拉角、姿态四元数、磁力计、加速度计、陀螺仪数据、GPS高度、位置和速度。
图87C是示出人形机上的创建者记录装置的图,包括身体感测服、臂外骨架、头套和感测手套。为了捕获技能并记录人类创建者的活动,在一实施例中,创建者可穿戴身体感测服或外骨架3250。感测服可包括头饰3252、四肢外骨架(例如臂外骨架3254)、以及手套3256。可以用具有任何数量的传感器和参考点的传感器网络3258覆盖外骨架。只要创建者保持在创建者记录设备3260的视野内,这些传感器和参考点就允许创建者记录设备3260从传感器网络3258捕获创建者活动。具体地,如果创建者在戴着手套3256时移动其手,则3D空间中的位置被多个传感器数据点D1、D2...Dn捕获。由于身体服装3250或头套3252,创建者的活动不限于头部,而是包括整个创建者。以这种方式,每个运动可以被分解并且被分类为作为总体技能的一部分的微操纵。
图88是示出机器人人类技能主题专家电子IP微操纵库2100的框图。主题/技能库2100包括文件或文件夹结构的任何数量的微操纵技能。可以以任何数量的方式来安排库,包括但不限于按技能、职业、分类、环境或任何其它目录或分类法来安排库。它可以使用平面文件(flat file)或以关系方式来分类,可包括无限数量的文件夹、子文件夹以及实际上无限数量的库和微操纵。如图118所示,库包括若干模块IP人类技能复现库56、2102、2104、2106、3270、3272、3274,涵盖诸如人类烹饪技能56,人类绘画技能2102、人类乐器技能2104、人类护理技能2106、人类家政技能3270、以及人类康复/治疗技能3272之类的主题。附加地和/或替代地,机器人人类技能主题电子IP微操纵库2100还可包括基本人类运动技能,例如行走、跑步、跳跃、爬楼梯等。虽然本身不是技能,但是创建基本人类运动微操纵库3274允许人形机器人以更容易更人类化的方式在真实世界环境中起作用和交互。
图89是示出用于替代人手技能活动的通用微操纵的电子库3280的创建过程的框图。在该图示中,关于图119描述了一个通用微操纵3290。微操纵MM1 3292产生用于该特定微操纵的功能结果3294(例如,成功地用第二对象击中第一对象)。每个微操纵可分解为子操纵或步骤,例如,MM1 3292包括一个或多个微操纵(子微操纵),微操纵MM1.1 3296(例如,拾取和保持对象1)、微操纵MM1.2 3310(例如,拾取并保持第二对象)、微操纵MM1.3 3314(例如,用第二对象敲击第一对象)、微操纵MM1.4n 3318(例如,打开第一对象)。可以添加或减去附加子微操纵,其适于实现特定功能结果的特定微操纵。微操纵的定义部分地取决于其如何被定义以及用于定义这样的操纵的粒度(granularity),即,特定微操纵是否体现若干子微操纵,或者特征化为子微操纵的操纵在另一上下文中是否也可定义为更宽的微操纵。每个子微操纵具有相应的功能结果,其中子微操纵MM1.1 3296获得子功能结果3298,子微操纵MM1.2 3310获得子功能结果3312,子微操纵MM1.3 3314获得子功能结果3316,子微操纵MM1.4n 3318获得子功能结果3294。类似地,功能结果的定义部分地取决于其如何被定义,特定功能结果是否体现若干功能结果,或者特征化为子功能结果的结果在另一上下文中是否可被定义为更宽的功能结果。子微操纵MM1.1 3296、子微操纵MM1.2 3310、子微操纵MM1.3 3314、子微操纵MM1.4n 3318一起实现了总体功能结果3294。在一实施例中,总体功能结果3294与和最后的子微操纵3318相关联的功能结果3319相同。
每个微操纵1.1-1.n的各种可能参数被测试以找到执行特定动作的最佳方式。例如,微操纵1.1(MM1.1)可以是持有对象或在钢琴上弹奏和音。对于总体微操纵3290的该步骤,探索完成步骤1.1的各种参数的所有各种子微操纵。也就是说,测试保持对象的不同位置、取向和方式以找到保持对象的最佳方式。在操作期间机器臂、手或人形机如何保持其手指、手掌、腿、或任何其他机器人部件。测试所有各种保持位置和取向。接下来,机器手、臂或人形机可拾取第二对象以完成微操纵1.2。可拾取第二对象,即刀,并且可以测试和探索保持该对象的所有不同位置、取向和方式以找到操作该对象的最佳方式。这样继续下去直到完成微操纵1.n,并且完成用于执行总体微操纵的所有各种排列和组合。结果,执行微操纵3290的最佳方式被存储在分解为子微操纵1.1-1.n的微操纵的库数据库中。于是,所保存的微操纵包括执行期望任务的步骤的最佳方式,即,保持第一对象的最佳方式、保持第二对象的最佳方式、用第二对象敲击第一对象的最佳方式等。这些最佳组合被保存为执行总体微操纵3290的最佳方式。
为了创建导致完成任务的最佳方式的微操纵,测试多个参数组合以识别确保实现期望功能结果的整组参数。机器人设备75的教导/学习过程涉及识别实现期望的最终功能结果的必要参数的多个重复测试。
这些测试可以在变化的场景执行。例如,对象的大小可以变化。在工作空间内发现对象的位置可以变化。第二对象可以在不同位置。微操纵必须在所有这些可变情况下成功。一旦学习过程已经完成,结果就被存储为已知一起完成期望功能结果的动作基元的集合。
图90是示出机器人执行任务3330的框图,其通过用一般微操纵进行多阶段3331-3333执行来进行。如图119所示,当动作计划需要微操纵序列时,在一实施例中,下式给出在实现其期望结果方面机器人计划的估计平均精确度:
Figure BDA0002425066820001321
其中G表示一组目的(或“目标”)参数(第1至第n),P表示一组机器人设备75参数(对应地第1至第n)。求和式中的分子表示机器人参数和目标参数之间的差(即,误差),分母针对最大差进行归一化。求和式给出了总的归一化累积误差,即
Figure BDA0002425066820001322
乘以1/n给出了平均误差。平均误差的补数(即,1减它)对应于平均精确度。
在另一实施例中,精确度计算对参数的相对重要性进行加权,其中每一系数(每一αi)表示第i个参数的重要性,归一化累积误差为
Figure BDA0002425066820001323
并且通过下式给出估算平均精确度:
Figure BDA0002425066820001324
如图90所示,任务3330可被分解成多个阶段,每个阶段需要在下一阶段之前完成。例如,阶段3331必须在进行到阶段3332之前完成阶段结果3331d。附加地和/或替代地,阶段3331和3332可以并行进行。每个微操纵可被分解为一系列动作基元,其可导致功能结果,例如在阶段S1,在进行到第二预定义微操纵3331b(MM1.2)之前,必须完成第一已定义微操纵3331a中的所有动作基元,产生功能结果3331a′。第二预定义微操纵3331b又产生功能结果3331b′,直到实现期望的阶段结果3331d。一旦阶段1完成,任务就可进行到阶段S2 3332。此时,完成阶段S2的动作基元,以此类推,直到完成任务3330。以重复方式执行步骤的能力使得能以可预测和可重复的方式来执行期望的任务。
图91是示出根据本申请的微操纵执行阶段的实时参数调整的框图。特定任务的执行可能需要调整所存储的微操纵以复现实际人类技能和运动。在一实施例中,可能需要实时调整以处理对象中的变化。附加地和/或替代地,可能需要调整以协调左右手、左右臂、或其他机器人部件的移动。此外,需要右手微操纵的对象的变化可能影响左手或手掌所需的微操纵。例如,如果机器手试图剥右手抓住的水果,则左手所需的微操纵将受右手握住的对象的变化的影响。如图120所示,为完成微操纵以实现功能结果的每个参数可能需要不同的用于左手的参数。具体来说,作为第一对象参数的结果,由右手感测到的每个参数变化影响左手使用的参数和左手中的对象的参数。
在一实施例中,为了完成微操纵1.1-1.3以产生功能结果,右手和左手必须感测手或手掌或腿中的对象和对象的状态变化并接收其反馈。该感测到的状态变化可导致对构成微操纵的参数的调整。一个参数中的每个变化可产生每个后续参数和每个随后需要的微操纵的变化,直到实现期望的任务结果。
图92是示出根据本申请的制作寿司的一组微操纵的框图。从图92可以看出,制作手卷寿司的功能结果可分为一系列微操纵3351-3355。每个微操纵可进一步分解为一系列子微操纵。在该实施例中,功能结果需要大约五个微操纵,其又可需要额外的子微操纵。
图93是示出根据本申请的制作寿司的一组微操纵中的第一微操纵切鱼3351的框图。对于每个微操纵3351a和3351b,必须捕获和记录标准对象和非标准对象的时间、位置和地点。任务中的初始捕获值可以在任务过程中被捕获或由创建者定义,或者通过获得实时过程的三维体积扫描来捕获。在图122中,第一微操纵,从容器取出一块鱼并将其放在切菜板上,需要开始时间和位置,开始时间用于左手和右手从容器中取出鱼并将其放置在板上。这需要记录手指位置、压力、取向、以及与其他手指、手掌和其他手的关系以产生协调的动作。这还需要确定标准对象和非标准对象的位置和取向。例如,在本实施例中,鱼片是非标准对象,可具有彼此不同的尺寸、质地、坚实度和重量。其在储存容器或地点内的位置可以变化,因此也是非标准的。标准对象可以是刀,其位置和定位、切菜板、容器及其相应位置。
步骤3351中的第二子微操纵可以是3351b。步骤3351b需要将标准刀具对象定位在正确的取向并且施加正确的压力、抓取和取向以将板上的鱼切片。同时,左手、腿,手掌等需要执行协调步骤以补充和协调子微操纵的完成。所有这些开始位置、时间和其他传感器反馈和信号需要被捕获和优化以确保动作基元的成功实现从而完成子微操纵。
图94-97是示出完成制作寿司任务所需的第二至第五微操纵的框图,微操纵3352a、3352b在图124中,微操纵3353a、3353b在图125中,微操纵3354在图126中,微操纵3355在图127中。根据本申请,完成功能性任务的微操纵可能需要从容器中取米饭、拾取一片鱼,将米饭和鱼固定成期望形状,以及按压鱼以裹住米饭从而制作寿司。
图98是示出用于弹钢琴3360的一组微操纵3361-3365的框图,其可以以任何顺序或以任何组合并行发生以获得功能结果3266。诸如弹钢琴之类的任务可能需要身体、臂、手、手指、腿和脚之间的协调。所有这些微操纵可以单独地、共同地、按顺序、串行和/或并行地执行。
完成该任务所需的微操纵可分解为用于身体和用于每只手和脚的一系列技术。例如,可以有一系列右手微操纵,其根据演奏技术1-n成功地按压和保持一系列钢琴键。类似地,可以有一系列左手微操纵,其根据演奏技术1-n成功地按压和保持一系列钢琴键。还可以有一系列微操纵,其被确定为用右脚或左脚成功地按压钢琴踏板。如本领域技术人员所理解的那样,用于右和左手和脚的每个微操纵可进一步分解成子微操纵以产生期望的功能结果,例如在钢琴上弹奏一首音乐作品。
图99是示出根据本申请的用于弹钢琴的一组微操纵中并行发生以用于弹钢琴的一组微操纵中的、用于右手的第一微操纵3361和用于左手的第二微操纵3362的框图。为了创建用于该行为的微操纵库,捕获每个手指开始和结束其在键上的按压的时间。钢琴键可被定义为标准对象,因为它们不会随事件而变化。另外,每个时间段的多种按压技术(一次按键时间段或保持时间)可定义为特定时间周期,其中时间周期可以是相同的持续时间或不同的持续时间。
图100是示出根据本申请的用于弹钢琴的一组微操纵中并行发生的一组微操纵中的、用于右脚的第三微操纵3363和用于左脚的第四微操纵3364的框图。为了创建用于该行为的微操纵库,捕获每只脚开始和结束其在踏板上的按压的时间。踏板可定义为标准对象。每个时间段的多种按压技术(一次按键时间段或保持时间)可被定义为特定时间周期,其中针对每个动作时间周期可以是相同的持续时间或不同的持续时间。
图101是示出演奏钢琴所需的第五微操纵3365的框图。图131所示的微操纵涉及根据本申请的用于演奏钢琴的一组微操纵中可以与一个或多个其他微操纵并行发生的身体动作。例如,可以捕获身体的初始开始位置和结束位置以及随周期性时间间隔而捕获的中间位置。
图102是示出根据本申请的用于人形机行走的、可以以任何顺序发生或以任何组合并行发生的一组行走微操纵3370的框图。如图132所示的微操纵可分成多个片段。片段3371是迈步,片段3372是踏步,片段3373是通过,片段3374是伸展,片段3375是另一条腿的迈步。每个片段是单独的微操纵,其导致当在不平坦地面、楼梯、坡道或斜坡上行走时人形机不跌倒的功能结果。每个单独的片段或微操纵可通过腿和脚的各个部分在该片段期间如何移动来描述。这些单独的微操纵可以被捕获、编程或教导给人形机,并且每个微操纵可以基于具体环境被优化。在一实施例中,通过监视创建者来捕获微操纵库。在另一实施例中,从一系列命令创建微操纵。
图103是示出根据本申请的用于人形机行走的一组微操纵中用右腿和左腿做出的第一微操纵迈步3371姿势的框图。可以看出,左腿和右腿、膝盖和脚布置在XYZ初始目标位置。该位置可基于脚和地面之间离地面的距离、膝盖相对于地面的角度、以及腿的总高度,这取决于走步技术和任何潜在的障碍。这些初始的启动参数被记录或被捕获以在微操纵开始时用于右和左腿、膝盖和脚。创建微操纵,并且捕获完成微操纵3371的迈步的所有中间位置。可能需要捕获附加信息,例如身体位置、重心和关节矢量,以确保完成微操纵所需的完整数据。
图104是示出根据本申请的用于人形机行走的一组微操纵中用右腿和左腿做出的第二微操纵3372踏步姿势的框图。可以看出,左和右腿、膝盖和脚布置在XYZ初始目标位置。该位置可以基于脚和地面之间离地面的距离、膝盖相对于地面的角度、以及腿的总高度,这取决于走步技术和任何潜在的障碍。这些初始的启动参数被记录或被捕获以在微操纵开始时用于右和左腿、膝盖和脚。创建微操纵,并且捕获完成微操纵3372的踏步的所有中间位置。可能需要捕获附加信息,例如身体位置、重心和关节矢量,以确保完成微操纵所需的完整数据。
图105是示出根据本申请的用于人形机行走的一组微操纵中用右腿和左腿做出的第三微操纵3373通过(passing)姿势的框图。可以看出,左和右腿、膝盖和脚布置在XYZ初始目标位置。该位置可以基于脚和地面之间离地面的距离、膝盖相对于地面的角度、以及腿的总高度,这取决于走步技术和任何潜在的障碍。这些初始的启动参数被记录或被捕获以在微操纵开始时用于右和左腿、膝盖和脚。创建微操纵,并且捕获完成微操纵3373的通过的所有中间位置。可能需要捕获附加信息,例如身体位置、重心和关节矢量,以确保完成微操纵所需的完整数据。
图106是示出根据本申请的用于人形机行走的一组微操纵中用右腿和左腿做出的第四微操纵3374伸展(stretch)姿势的框图。可以看出,左和右腿、膝盖和脚布置在XYZ初始目标位置。该位置可以基于脚和地面之间离地面的距离、膝盖相对于地面的角度、以及腿的总高度,这取决于走步技术和任何潜在的障碍。这些初始的启动参数被记录或被捕获以在微操纵开始时用于右和左腿、膝盖和脚。创建微操纵,并且捕获完成微操纵3374的伸展的所有中间位置。可能需要捕获附加信息,例如身体位置、重心和关节矢量,以确保完成微操纵所需的完整数据。
图107是示出根据本申请的用于人形机行走的一组微操纵中用右腿和左腿做出的第五微操纵3375迈步姿势(用于另一条腿)的框图。可以看出,左和右腿、膝盖和脚布置在XYZ初始目标位置。该位置可以基于脚和地面之间离地面的距离、膝盖相对于地面的角度、以及腿的总高度,这取决于走步技术和任何潜在的障碍。这些初始的启动参数被记录或被捕获以在微操纵开始时用于右和左腿、膝盖和脚。创建微操纵,并且捕获完成微操纵3375的用于另一只脚的迈步的所有中间位置。可能需要捕获附加信息,例如身体位置、重心和关节矢量,以确保完成微操纵所需的完整数据。
图108是示出根据本申请的具有三维视觉系统的机器人护理模块3381的框图。机器人护理模块3381可以是任何维度和尺寸的,并且可以被设计用于单个患者、多个患者、需要重症护理的患者、或需要简单辅助的患者。护理模块3381可以集成到护理设施中,或者可以安装在辅助的起居或家庭中。护理模块3381可包括三维(3D)视觉系统、医疗监视装置、计算机、医疗附件、药物分配器、或任何其他医疗设备或监视设备。护理模块3381可包括用于任何其他医疗设备、监视设备机器人控制设备的其他设备和存储器3382。护理模块3381可容纳一组或多组机器臂和手,或者可包括人形机器人。机器臂可安装在护理模块3381顶部的轨道系统上,或者可从墙壁或地板安装。护理模块3381可包括3D视觉系统3383或可以跟踪和监视模块内的患者和/或机器人活动的任何其他传感器系统。
图109是示出根据本申请的具有标准化机柜3391的机器人护理模块3381的框图。如图138所示,护理模块3381包括3D视觉系统3383,还可包括用于存储具有计算机和/或成像设备的移动医疗车的机柜3391,移动医疗车可被其他标准化实验室或应急预备车替代。机柜3391可用于容纳和储存已被标准化用于机器人用途的其他医疗设备,例如轮椅、步行器、拐杖等。护理模块3381可容纳各种尺寸的标准床,其具有诸如床头控制台3392之类的设备控制台。床头控制台3392可包括标准病房常见的任何附件,包括但不限于医疗气体的直接或间接出口、夜灯、开关、电插座、接地插座、护士呼叫按钮、抽吸设备等。
图110是示出根据本申请的具有一个或多个标准化储存库3402、标准化屏幕3403和标准化衣柜3404的机器人护理模块3381的后视图的框图。另外,图139示出用于机器臂/手移动的轨道系统3401和在手动模式下用于机器臂/手的储存/充电座。轨道系统3401可允许左右前后任何方向的水平移动。它可以是任何类型的轨道或轨迹,并且可容纳一个或多个机器臂和手。轨道系统3401可以有功率和控制信号,并且可包括控制和/或操纵所安装的机器臂所需的布线和其他控制电缆。标准化储存库3402可以是任何尺寸的,并且可以位于模块3381内的任何标准化位置。标准化储存库3402可用于药品、医疗设备和附件,或者可用于其他的患者物品和/或设备。标准化屏幕3403可以是单个或多个多用途屏幕。它可以用于互联网用途、设备监视、娱乐、视频会议等。可以有一个或多个屏幕3403安装在护理模块3381内。标准化衣柜3404可用于容纳患者的个人物品,或者可用于存储医疗或其他应急设备。可选模块3405可以耦接到标准护理模块3381或者与之位于一处,并且可包括机器人或手洗浴室模块、厨房模块、洗浴模块、或者在标准护理套房3381内治疗或容纳患者可能需要的任何其他配置模块。轨道系统3401可连接在模块之间,或者可以是单独的,并且可以允许一个或多个机器臂在模块之间横穿和/或行进。
图111是示出根据本申请的具有带一对机器臂3412和一对机器手3413的伸缩式提升机或机体3411的机器人护理模块3381的框图。机器臂3412通过垂直(上下)和水平(左右)移动的伸缩式升降机3411附接到肩部3414,作为移动机器臂3412和手3413的一种方式。伸缩式升降机3411可随着短管或长管或任何其他轨道系统而移动以用于拓展机器臂和手的长度。臂1402和肩部3414可在护理套件3381内的任何位置之间沿轨道系统3401移动。机器臂3412、手3413可沿轨道3401和升降系统3411移动以接近(access)护理套件3381内的任何点。以这种方式,机器臂和手可以接近床、柜、用于治疗的医疗车或轮椅。机器臂3412和手3413与升降机3411和轨道3401结合可以帮助提升患者坐到座位上或者到达站立位置,或者可以帮助将患者放在轮椅或其他医疗设备中。
图112是示出根据本申请的执行机器人护理模块的用于帮助老年患者的各种动作的第一示例的框图。步骤(a)可以在预定时间发生或可以由患者发起。机器臂3412和机器手3413从指定的标准化位置(例如,储存位置3402)获取药品或其它测试设备。在步骤(b)期间,机器臂3412、手3413和肩部3414经由轨道系统3401移动到床并且到达较低水平,可以转动以面对病床中的患者。在步骤(c)中,机器臂3412和手3413执行编程/所需的向患者给药的微操纵。因为患者可能正在移动而不是标准化的,所以可以利用基于患者、标准/非标准对象位置、取向的3D实时调整以确保结果成功。以这种方式,实时3D视觉系统允许对其他标准化微操纵进行调整。
图113是示出根据本申请的执行机器人护理模块的装载和卸载轮椅的第二示例的框图。在位置(a),机器臂3412和手3413执行从标准对象(例如轮椅)移动和提升老人/患者并将其置于另一标准对象上的微操纵,例如将其放在床上,通过基于患者、标准/非标准对象位置、取向的3D实时调整来确保成功的结果。在步骤(b)期间,在患者被移走之后,机器臂/手/肩可以转动并将轮椅移回到储存柜。另外地和/或替代地,如果存在多于一组臂/手,则当将完成步骤(a)时,步骤(b)可由一组臂/手执行。在步骤(c)期间,机器臂/手打开柜门(标准对象),将轮椅推回柜中并且关闭门。
图114描绘了用作人A 3502和人B 3504之间的促进器(facilitator)的人形机器人3500。在该实施例中,人形机器人充当不在同一地点的人之间的实时通信促进器。在该实施例中,人A3502和人B 3504可以彼此远离地定位。它们可以位于同一建筑物诸如办公楼或医院内的不同房间中,或者可位于不同国家。人A 3502可与人形机器人(未示出)位于同一位置或单独一人。人B3504也可与机器人3500位于同一位置。在人A3502和人B 3504之间的通信期间,人形机器人3500可模仿人A 3502的动作和行为。人A 3502可配备有包含传感器的服装或套装,传感器将人A 3502的动作转换成人形机器人3500的动作。例如,在一实施例中,人A可穿着配备有检测手、躯干、头、腿、臂和脚的运动的传感器的套装。当人B 3504进入远程位置的房间时,人A3502可从就座位置起立并且伸手以与人B 3504握手。人A3502的动作被传感器捕获,信息可通过有线或无线连接传送到耦接至广域网(诸如因特网)的系统。然后,传感器数据可以通过有线或无线连接实时地或接近实时地传送到3500,而不管其相对于人A 3502的物理位置,所接收的传感器数据将在人B3504面前模拟人A 3502的动作。在实施例中,人A 3502和人B 3504可通过人形机器人3500握手。以这种方式,人B3504可通过人形机器人3500的机器手感觉到与人A的手相同的握持定位和对准。如本领域技术人员将理解的那样,人形机器人3500不限于握手,可用于视觉、听觉、演讲或其他运动。它能够以人A 3502与人B 3504一起在房间时人A可完成的任何方式来辅助人B 3504。在一实施例中,人形机器人3500通过用于人B的微操纵来模拟人A 3502的动作以感受人A 3502的感觉。
图115描绘了在人A 3502的直接控制下用作人B 3504的治疗师3508的人形机器人3500。在该实施例中,人形机器人3500基于人A的实际实时的或捕获的动作来充当人B的治疗师。在一实施例中,人A 3502可以是治疗师,人B 3504可以是患者。在一实施例中,人A在佩戴传感器服装时对人B执行治疗疗程。治疗疗程可通过传感器被捕获并且被转换成微操纵库以供随后由人形机器人3500使用。在替代实施例中,人A 3502和人B 3504可以彼此远离地定位。治疗师人A可以在穿着传感器服装时对替代患者或解剖学正确的人形机器人模型执行治疗。人A 3502的动作可由传感器捕获并且经由记录和网络设备3506传送到人形机器人3500。然后将这些捕获和记录的动作传递到人形机器人3500以应用到人B 3504。以此方式,人B可以基于预先记录的由人A执行的治疗疗程或人A 3502远程实时执行的治疗疗程,接收来自人形机器人3500的治疗。人B将通过人形机器人3500的手感觉到与人A 3502(治疗师)的手相同感觉(例如,软抓住的强抓住)。可以安排在不同时间/天(例如,每隔一天)对相同的患者执行治疗,或者也可以安排对不同患者(人C、D)执行治疗,每个患者具有其预先记录的程序文件。在一实施例中,人形机器人3500通过用于人B 3504的微操纵来模拟人A 3502的动作以替代治疗疗程。
图116是示出相对于机器手和臂安置移动臂所需的具有全转矩的电动机的第一实施例的框图,图117是示出相对于机器手和臂安置移动臂所需的具有减小的转矩的电动机的第二实施例的框图。机器人设计中的一个挑战是最小化质量进而重量,特别是在机器人操纵器(机器臂)的末端处,它需要最大的用于移动的力并且在整个系统上产生最大转矩。电动机是操纵器末端处的重量的重要贡献者。公开和设计新的重量轻动力强的电动机是缓解该问题的一种方式。在当前的电动机技术下,另一种优选的方式是改变电机的放置,使得它们尽可能远离末端,但仍向末端处的机器人操纵器传送移动能量。
一实施例要求将控制机器手72的位置的电动机3510不布置在其一般被布置的手附近的手腕处,而是进一步向上布置在机器臂70中,优选地恰在肘部3212下方。在该实施例中,将电动机布置得靠近肘部3212的优点可计算如下,从由手的重量引起的手72上的原始转矩开始。
Toriginal(hand)=(whand+wmotor)dh(hand,elbow)
其中重量wi=gmi(重力常数g乘以对象i的质量),对于垂直角θ,水平距离dh=length(hand,elbow)cosθv。但是,如果电动机布置在远离关节的ε附近,则新的转矩为:
Tnew(hand)=(whand)dh(hand,elbow)+(wmotor)∈h
由于电机3510在肘关节3212旁边,机器臂仅对转矩贡献ε距离,新系统的转矩中手的重量(包括手可能携带的物品)占主导。这种新配置的优点在于,手可以利用相同的电动机提升更大的重量,因为电动机本身对转矩贡献很小。
本领域技术人员将认识到本申请的这个方面的优点,并且还将认识到,需要小的校正因子来考虑用于将电机施加的力传递到手的装置的质量,这种装置可以是一组小的轴。因此,具有这种小的校正因子的完整的新转矩将是:
Figure BDA0002425066820001401
其中轴的重量施加半转矩,因为其重心在手和肘部之间的一半处。通常,轴的重量远小于电动机的重量。
图118A是示出供机器人厨房中使用的从悬挂座延伸的机器臂的图画示图。将理解,机器臂可沿悬挂轨道在任何方向上横越,并且可上升和下降以执行所需微操纵。
图118B是示出供机器人厨房中使用的从悬挂座延伸的机器臂的俯视图画示图。如图118A-118B所示,设备的安置可以是标准化的。具体地,在该实施例中,烤箱1316、炉灶面3520、水槽1308和洗碗机356定位得使机器臂和机器手知道它们在标准化厨房内的准确位置。
图119是示出供机器人厨房中使用的从悬挂座延伸的机器臂的图画示图。在一实施例中,滑动储存隔间可被包括在厨房模块中。如图119所示,“滑动储存器”3524可安装在厨房模块的两侧。在该实施例中,总尺寸保持与图148-150所示的相同。在一实施例中,定制冰箱可安装在这些“滑动储存器”3524之一中。本领域技术人员将理解,存在可以针对任何标准化机器人模块实施的许多布局和许多实施例。这些变化不限于厨房或病人护理设施,也可用于建筑、制造、组装、食品生产等,而不脱离本申请的思想。
图120-129是根据本申请的机器人抓取选项的各种实施例的图画示图。图162A-162H是示出具有适于机器手的标准化手柄的各种炊具用具的图画示图。在一实施例中,厨房把手580被设计成与机器手72一起使用。设置一个或多个脊580-1以允许机器手每次在相同位置抓住标准把手,并且最小化滑动和增强抓力。厨房把手580的设计旨在是通用的(或标准化的),使得相同的把手580可附接到任何类型的厨房用具或其它类型的工具,例如刀、医疗测试探针、螺丝刀、拖把、或机器手可能需要抓取的其它附接件。在不脱离本申请的思想的情况下,可以设计其他类型的标准(或通用)手柄。
图131是在机器人厨房中使用的混合器部分的图画示图。如本领域技术人员将理解的那样,任何数量的工具、设备或器具都可被标准化并且设计为由机器手和机器臂使用和控制以执行任何数量的任务。一旦为任何工具或设备工件的操作创建了微操纵,机器手或臂就可以以相同且可靠的方式重复一致地使用设备。
图132是示出用于在机器人厨房中使用的各种厨房保持器的图画示图。它们中的任何一个或全部可被标准化并且用于在其他环境中使用。将理解,诸如胶带分配器、烧瓶、瓶子、样本罐、绷带容器等之类的医疗设备可被设计和实施为与机器臂和手一起使用。
本申请一实施例示出包括下列特征或组件的通用安卓(android)型机器人设备。机器人软件引擎,诸如机器人食物制备引擎56,配置为在仪器化或标准化环境中复现任何类型的人手动作和产物。从机器人复现得到的产物可以是(1)物理的,例如食品菜肴、绘画、艺术品等,和(2)非物理的,例如机器人设备在乐器上演奏乐曲、医疗保健辅助过程等。
通用安卓型(或其他软件操作系统)机器人设备中的几个重要元素可包括以下中的一些或全部、或与其他特征相组合。首先,机器人操作或仪器化环境操作机器人设备,为创建者和机器人工作室提供标准化(或“标准的”)操作体积维度和架构。第二,机器人操作环境为在环境内操作的任何标准化对象(工具、装置、设备等)提供标准化位置和取向(xyz)。第三,标准化特征延及但不限于标准化辅助成套设备、标准化辅助成套工具和设备、两个标准化机器臂和两个机器手(其非常类似功能性人手,可访问一个或多个微操纵库)、以及用于创建操作体积的动态虚拟三维视觉模型的标准化三维(3D)视觉装置。该数据可用于手动作捕获和功能结果识别。第四,提供具有传感器的手运动手套以捕获创建者的精确动作。第五,机器人操作环境在每个特定(创建者)产品创建和复现过程期间提供所需材料和食材的标准化类型/体积/尺寸/重量。第六,使用一种或多种类型的传感器来捕获和记录用于复现的过程步骤。
机器人操作环境中的软件平台包括以下子程序。当人手戴着具有传感器的手套来提供传感器数据时,软件引擎(例如,机器人食物制备引擎56)在创建过程期间捕获并记录臂和手运动脚本子程序。创建一个或多个微操纵功能库子程序。操作或仪器化环境基于人类(或机器人)在创建过程期间的手运动的时间线来记录三维动态虚拟体积模型子程序。软件引擎被配置为在人手的任务创建期间从库子程序中识别每个功能性微操纵。软件引擎定义人手的每个任务创建的相关微操纵变量(或参数),用于随后由机器人设备进行的复现。软件引擎记录来自操作环境中的传感器的传感器数据,其中可实施质量检查程序以验证在复现创建者的手部动作时机器人执行的准确性。软件引擎包括调整算法子程序,用于适应于任何非标准化情况(例如对象、体积、设备、工具或尺寸),其进行从非标准化参数到标准化参数的转换以便于任务(或产品)创建脚本的执行。软件引擎存储创建者手动作的子程序(或子软件程序)(其反映创建者的知识产权产品),用于生成软件脚本文件以供机器人设备随后复现。软件引擎包括产品或菜谱搜索引擎以有效地定位期望的产品。提供搜索引擎的过滤器以个性化搜索的特定要求。还提供电子商务平台以用于交换、购买和销售在指定网站上可用于商业销售的任何IP脚本(例如,软件菜谱文件)、食材、工具和设备。电子商务平台还提供用于用户交换关于感兴趣的特定产品或感兴趣区域的信息的社交网络页面。
机器人设备复现的一个目的是产生与创建者的手的原始创建相同或基本相同的产品结果,例如,相同的食物菜肴、相同的画、相同的音乐、相同的书法等。操作或仪器化环境中的高度标准化提供了一框架,在最小化创建者的操作环境和机器人设备操作环境之间的差异的同时,在考虑一些附加因素的情况下,机器人设备能够产生与创建者基本相同的结果。复现过程具有相同或基本相同的时间线,优选相同的微操纵顺序、每个微操纵相同的初始开始时间、相同的持续时间和相同的结束时间,同时机器人设备以相同的在微操纵之间移动对象的速度自主地操作。在记录和执行微操纵期间,对标准化厨房和标准化设备使用相同的任务程序或模式。可以使用诸如三维视觉和传感器之类的质量检查机制来最小化或避免任何失败结果,其可以对变量或参数进行调整以适应非标准情况。当机器人设备试图复现创建者的活动以期望获得相同的结果时,省略使用标准化环境(即,创建者的工作室和机器人厨房之间不是相同的厨房体积,不是相同的厨房设备,不是相同的厨房工具,也不是相同的食材)增加了不获得相同结果的风险。
机器人厨房可以在至少两种模式下操作,即计算机模式和手动模式。在手动模式期间,厨房设备包括操作控制台上的按钮(在记录或执行期间,不要求识别数字显示器的信息或不要求通过触摸屏输入任何控制数据以避免任何输入错误)。在触摸屏操作的情况下,机器人厨房可提供用于识别屏幕的当前信息的三维视觉捕获系统,以避免不正确的操作选择。软件引擎可与标准化厨房环境中的不同厨房设备、不同厨房工具和不同厨房装置一起操作。创建者的限制是在传感器手套上产生手动作,其能够由机器人设备执行微操纵来复现。因此,在一实施例中,能够由机器人设备执行的微操纵库(或多个库)用作对创建者运动活动的功能限制。软件引擎创建三维标准化对象的电子库,包括厨房设备、厨房工具、厨房容器、厨房用具等。预先存储的每个三维标准化对象的外形尺寸和特性节省了资源并且减少了从电子库生成对象的三维建模的时间量,而不必实时创建三维建模。在一实施例中,通用安卓型机器人设备能够创建多个功能结果。功能结果从机器人设备的微操纵执行产生成功或最佳结果,例如人形机行走、人形机跑步、人形机跳跃、人形机(或机器人设备)演奏音乐作品、人形机(或机器人设备)绘画、以及人形机(或机器人设备)制作菜肴。微操纵的执行可以顺序地、并行地进行,或者一个先前的微操纵在下一个微操纵开始之前必须完成。为了使人与人形机之间更舒适,人形机将以对周围的人舒适的步伐进行与人相同(或基本相同)的活动。例如,如果一个人喜欢好莱坞演员或模特走路的方式,则人形机可利用展现好莱坞演员(例如安吉丽娜·朱莉)运动特性的微操纵来操作。人形机也可定制有标准化的人类型,包括皮肤外观覆层、男人形机、女人形机、身体、面部特征、以及体形。人形机覆层可利用三维打印技术在家中生产。
人形机的一个示例操作环境是一个人的家:一些环境是固定的,而另一些不是。房屋环境越被标准化,则操作人形机时的风险越小。如果指示人形机拿一本书,其不涉及创建者的知识产权/智力思维(IP),它需要没有IP的功能结果,人形机将浏览预定义的家庭环境,并执行一个或多个微操纵来拿书并把书交给人。先前在人形机进行其初始扫描或执行三维质量检查时,已经在标准化家庭环境中创建了诸如沙发之类一些三维对象。人形机可能需要为人形机未识别或先前未定义的对象创建三维建模。
图166A-166L中的表A示出厨房设备的样品类型,其包括厨房配件、厨房用具、厨房计时器、温度计、香料研磨机、量具、碗、套件、切片和切割产品、刀、开瓶器、支架和保持器、剥皮切割用具、瓶盖、筛子、盐和胡椒粉瓶、洗碗机、餐具配件、装饰品和鸡尾酒、模具、测量容器、厨房剪刀、存储器具、隔热垫、带钩的轨、硅垫、磨碎机、压力机、磨碎机、磨刀器、面包箱、用于酒精的厨房盘、餐具、用于茶、咖啡、甜点等的碗碟、餐具、厨房用具、儿童餐具、成分数据列表、设备数据列表和菜谱数据列表。
图133A-133C示出机器人制作寿司,机器人弹钢琴,机器人通过从第一位置(A位置)移动到第二位置(B位置)来移动机器人,机器人通过从第一位置跑到第二位置、从第一位置跳到第二位置来移动机器人,人形机从书架取书,人形机将袋从第一位置拿到第二位置,机器人打开罐,以及机器人将食物放碗中供猫食用。
图134A-134I示出用于机器人执行测量、灌洗、供氧、体温维持、导管插入、物理治疗、卫生程序、喂食、分析取样、造口和导管护理、伤口护理、以及药品管理方法的样本多层级微操纵。
图135示出用于机器人执行插管、复苏/心肺复苏、失血补充、止血、对气管切开的紧急处理、骨折、以及伤口缝合(拆除缝线)的样本多层级微操纵。图175示出样本医疗装置和医疗设备的列表。
图137A-137B示出具有微操纵的样本护理服务。图138示出另一样本设备列表。
图139描绘了示出根据本公开的构造为宏观操纵/微观操纵的物理层的一个实施例的框图。宏观-微观操纵子系统在逻辑和物理层级上分离的目的是将规划器和控制器上的计算负荷(尤其是对于所需的逆运动学计算)限制在允许系统实时操作的水平上,其中采样率以数百赫兹至数千赫兹为单位进行描述。为了实现这一目的,尤其是对于超出典型6自由度的复杂机器人系统来说(诸如由带有手指的手的手臂、多臂或甚至是移动(经由腿或轮子)人形机器人组成的系统),将系统在物理和逻辑层级两者上划分成子系统是至关重要的,这些子系统具有在专用总线上运行的单独控制器和处理器设备,每个子系统仅负责完整运动链的子部分,同时由能够同步子部分的规划和执行器系统监督来完成一项理想的任务。这只能通过使用具有互连总线的独立分布式处理器和总线架构以及监控规划器和控制器来实现。在我们的情况中,物理和逻辑划分是根据运动链的长度(<6自由度)进行的,并且还基于工作空间的能力和对机器人系统的要求,该机器人系统具有可移动基座以及手臂和手腕(实现6自由度;3个平移和3个旋转),能够在较大的工作空间进行较粗略的运动,并带有附接到其上的末端执行器,该末端执行器在此情况下是多指手和/或工作空间较小但运动分辨率和保真度要高得多的工具。
尽管可以想到一种动态方法,从而使用智能子系统分离规划器在任何所需的时域层级(基于任务或甚至在每个控制器采样步骤)定义宏观/微观操纵子系统,从而提供一个以最佳和最小的计算负荷水平运行的系统,但是这会增加系统的实质复杂性。在我们的实施例中,我们提出整个物理系统先验地逻辑和物理分离成其宏观操纵子系统和微观操纵子系统,每个子系统基于更加真实世界和计算激励的层级来执行它们自己的专用规划和控制任务。所实现的分离允许使用公知的实时逆运动学规划器,以进行所有自由度的自由空间平移和旋转活动,即3个平移(XYZ)和3个旋转(滚转、俯仰、偏航),最多可添加到6个自由度。除此之外,我们还可以使用一个单独的多自由度逆运动学规划器,该规划器解决剩余的操纵元素,即手掌和手指及其附接的工具/器具和器皿,从而将整个逆运动学规划解耦为多个计算可管理处理集合,每个集合都能够为其各自(子)系统的每个系统实时提供解决方案。对于超出固定关节连接系统(即关节连接臂/手系统)的工作空间活动,可以使用单独的规划器,该规划器允许使用粗略定位系统(在我们的情况下为笛卡尔XYZ定位器)来为所述系统提供逆运动学解决方案,其可以将可用工作空间重新定位在手臂/手系统周围(类似于使机器人系统沿导轨移动以到达工作空间中关节连接机器臂无法到达的部分)。
在真实环境中运行的机器人系统已划分成三(3)个单独的物理实体,即(1)关节连接基座,其可能包括(a)上肢(传感器头部)和躯干以及(b)链接的附属肢体,所述附属肢体通常为具有多个不同类型自由度的关节连接串行配置臂(但不一定是);(2)末端执行器,其包括具有各种手臂末端(EoA)工具(诸如手指、对接夹具等)的手腕;以及(3)领域应用本身,诸如完全仪器实验室、浴室或厨房,其中后者将包含烹饪工具、锅/平底锅、用具、食材、用户交互设备等。
典型的操纵系统,特别是那些需要在较大的工作空间上具有相当大的移动性,同时仍然需要可观的端点运动精确度的操纵系统,可以在物理上和逻辑上细分为宏观操纵子系统以及微观操纵子系统620,该宏观操纵子系统包括一个大型工作空间定位器640,其耦接有包括用于粗略运动的多个元件610的关节连接体642,该微观操纵子系统620用于精细运动,这两个子系统物理地接合并与它们在其中操作的环境630交互。
对于较大的工作空间应用来说,其工作空间超出了典型的关节连接机器人系统的工作空间,因此可以通过添加一个定位器(通常在自由空间中)从而允许在XYZ(三个平移坐标)空间中移动来增加系统的范围,如640所描绘的从而允许工作空间重新定位643。这样的定位器可以是能够定位关节连接体642的可移动轮式或腿式基座、高空作业平台,或者简单地是龙门式正交XYZ定位器。针对人形类型配置应用的此类关节连接体642是可能的物理机器人实例之一,所述关节连接体642将描述互连元件610的物理集合,包括上肢617和链接的附属肢体616。宏观操纵子系统610和640中的这些相互链接的元件将由仪器化关节连接和控制器致动的子元件组成,包括充满各种环境感知和建模感测元件的头部611,其连接到仪器化关节连接和控制器致动的肩部躯干612和仪器化关节连接和控制器致动的腰部613。躯干中的肩部可具有连接于其的链接的附属肢体616,诸如一个(典型地为两个)或更多个仪器化关节连接和控制器致动的关节臂614,每个关节臂将附接有仪器化关节连接和控制器致动的手腕618。还可以将诸如一个或多个腿615的移动性元件连接到腰部,以便机器人系统能够在更加扩展的工作空间中操作。
物理附接的微观操纵子系统620被用于需要精细位置和/或速度轨迹运动以及交互力/转矩的高保真度控制的应用中,而宏观操纵子系统610无论是否耦接到定位器640,均无法感测和/或控制特定领域应用所需的水平。通常,微观操纵子系统620附接至仪器化关节连接和控制器致动的手腕618的每个已链接附属肢体616接口安装位置。可以将各种仪器化关节连接和控制器致动的手臂末端(EoA)工具625附接到所述(一个或多个)安装接口。尽管手腕618本身可以是仪器化关节连接和控制器致动的多自由度(DoF)(诸如以滚转/俯仰/偏航的典型三自由度旋转配置)元件,其还是一个安装平台,可以选择在该安装平台上附接高度灵巧的仪器化关节连接和控制器致动的多指手,包括带有手掌的手指622。其他选择还可以包括被动或主动可控的固定接口623,以允许抓取旨在与之配合的专门设计的设备,允许多次在机器人和设备之间进行刚性的机械以及电气(数据、电源等)接口。所描绘的概念不必限于附接带手指的手622或固定设备623的能力,而是可能附接其他设备624,其可以包括刚性地锚定到表面,或者甚至其他设备。
可以形成微观操纵子系统620的一部分的各种末端执行器626允许通过各种设备630在机器人系统和环境/世界638之间进行高保真度交互。交互的类型取决于领域应用639。在领域应用是具有机器人烹饪系统的机器人厨房的情况下,将与诸如烹饪工具631(威士忌、刀子、叉子、匙子、拂子等),包括锅和平底锅632等的器皿,诸如烤箱、电打蛋器或电动刀等的用具633,用以处理和分配的烹饪食材634(诸如香料等)等元素发生交互,并甚至在菜谱中或由于其他操作考虑而需要进行人机交互的情况下与用户635进行潜在的实时交互。
图140描绘了根据本公开的宏观操纵子系统和微观操纵子系统内的软件模块/动作层中的主动作块以及专用于每个子系统的相关联微操纵库的逻辑图。所述软件模块/动作层的架构提供了一个允许包含以下内容的框架:(1)细化的末端执行器感测(用于细化和更准确的真实世界接口感测);(2)引入宏观的(通过或来自关节连接基座的整体感测)和 观的(末端执行器与具体任务/烹饪元素之间的本地具体任务感测)层,以允许基于在粗略操纵和精细操纵(以及相应地定位、力/转矩控制、产品处理和过程监控)之间的物理划分来使用和更新(经由学习)连续的操作库;(3)在宏观和微观层级上的分布式多处理器架构;(4)引入“位置0”概念以用于处理任何环境元素(工具、用具、平底锅等);(5)使用诸如固定元素和标记之类的辅助工具(结构化目标、模板匹配、虚拟标记、RFID/IR/NFC标记等),以提高对接/处理的速度和保真度并改善微操纵;以及(6)用于工具和锅/平底锅以及器具/容器/食材储存和访问的电子库存系统。
宏观/微观区分提供了对微操纵库的类型及其相关描述符的区分,以及基于末端执行器中包含的更加本地化且精确度更高的传感元件来提供改善的和具有更高保真度的学习结果,而不是依靠通常作为关节连接基座的一部分(并安装在其上)的传感器(其用于较大的视野,但由此当其在“产品接口”处(其中烹饪任务主要发生在当其进行决策制定时)监控更精细的活动时分辨率和保真度也较低)。
图140中的总体结构示出了:(a)使用传感元件对周围环境进行成像/绘制,然后(b)基于存储在微操纵库中的基元创建运动规划,该运动规划被(c)转换为可动作的(机器可执行的)(位置/速度和/或力/转矩的)关节/致动器层级命令,以及(d)传感器的反馈回路,用于监控和进行分配的任务,同时(e)还从其执行状态中学习以改进现有的微操作描述符以及相关联的库。详细说明分别在关节连接基座和末端执行器处基于宏观和微观层级感测系统的宏观和微观层级动作。所述感测系统然后执行相同的功能,但是在单独的微操纵数据库中创建和优化描述符和微操纵,这些数据库均被合并为各个系统从中提取的单个数据库。
所述宏观/微观层级的划分还允许:(1)宏观(基座)和微观(末端执行器)层级的感测系统的存在和集成(各种传感元件可能包括摄像机、激光,触觉、任何基于电磁频谱的元件等);(2)在宏观和微观层级上应用各种学习技术,以适应于不同的微操纵库,这些库适合于不同层级的操纵(诸如使用宏观微操纵数据库进行的较为粗略的活动和关节连接基座的姿势摆放,以及使用微观微操纵数据库的各个末端执行器更精细和更高保真度的配置和交互力/转矩),并因此各自具有更好地适用于执行/监控/优化所述描述符及其相应数据库的描述符和传感器;(3)分布式和嵌入式处理器和传感架构,以及实时操作系统和多速总线及储存元件的需求和应用;(3)使用“位置0”方法,无论是借助标记还是固定物,都有助于(可靠且准确地)获取和处理任何所需的工具或器具/锅/平底锅或其他元件;以及(5)仪器化库存系统(用于工具、食材等)和智能器具/容器/食材储存系统的接口。
作为两层级宏观和微观操纵子系统(分别为610和620)之一的多层级机器人操作系统,包括宏观层级关节连接和仪器化大型工作空间的粗略运动关节连接和仪器化基座710,其连接到微观层级精细运动高保真度环境交互仪器化EoA工具子系统720,允许位置和速度运动规划器通过宏观和微观层级(分别为731和732)两者处的微操纵库730提供特定于任务的运动命令。共享反馈数据以及发送和接收运动命令的能力只有通过使用分布式处理器和感测架构750才能实现,该架构经由在多个变速总线接口740上交互的(分布式)实时操作系统来实现的,取得来自高层级规划器760的高层级任务执行命令,其继而被分解为宏观和微观操纵子系统的单独但协调的轨迹。
由仪器化关节连接和控制器致动的关节连接仪器化基座710实例化的宏观操纵子系统610需要多元素链接的操作块711至716集合来恰当地起作用。所述操作块依赖于负责宏观层级处的宏观层级感测和控制任务的单独且不同的处理和通信总线硬件集合。在典型的宏观层级子系统中,所述操作块需要宏观层级命令转换器716的存在,其从库730及其宏观层级微操纵子库731取得微操纵命令,并生成到宏观层级规划模块712的适当排序的机器可读命令集合,其中至少在关节空间和笛卡尔空间中计算每个仪器化和致动的元件所需的运动。所述运动命令被顺序地馈送到执行块713,该执行块713至少在关节空间或笛卡尔空间中控制所有仪器化关节连接和致动的关节,以确保活动在位置/速度和/或转矩/力上跟踪命令的轨迹。反馈感测块714将来自所有传感器的反馈数据提供给执行块713以及环境感知块/模块711以进行进一步处理。不仅提供反馈以允许跟踪变量的内部状态,还提供来自测量周围环境和几何形状的传感器的传感数据的反馈。执行模块713将来自所述模块714的反馈数据用来确保实际值跟踪它们的命令设定点,以及确保环境感知模块711对每个关节连接元件的状态、机器人的整体配置以及机器人在其中运行的周围环境的状态进行成像和绘制、建模和识别。此外,还将所述反馈数据提供给学习模块715,该学习模块715负责跟踪系统的整体性能并将其与已知的所需性能度量进行比较,从而允许一个或多个学习方法开发连续更新的描述符集合,这些描述符集合定义了它们各自的微操作库730中包含的所有微操作,在这种情况下为宏观层级微操作子库731。
在微操纵系统620由仪器化关节连接和控制器致动的关节连接仪器化EoA工具子系统720实例化的情况下,上述逻辑操作块是相似的,除了这些操作仅针对那些形成微操纵子系统620的一部分的那些元件并运行。所述仪器化关节连接和控制器致动的关节连接仪器化EoA工具子系统720需要多元素链接的操作块721至726集合来恰当地起作用。所述操作块依赖于负责微观层级处的微观层级感测和控制任务的单独且不同的处理和通信总线硬件集合。在典型的微观层级子系统中,所述操作块需要微观层级命令转换器726的存在,其从库730及其微观层级微操纵子库732取得微操纵命令,并生成到微观层级规划模块722的适当排序的机器可读命令集合,其中至少在关节空间和笛卡尔空间中计算每个仪器化和致动的元件所需的运动。所述运动命令被顺序地馈送到执行块723,该执行块723至少在关节空间或笛卡尔空间中控制所有仪器化关节连接和致动的关节,以确保活动在位置/速度和/或转矩/力上跟踪命令的轨迹。反馈感测块724将来自所有传感器的反馈数据提供给执行块723以及任务感知块/模块721以进行进一步处理。不仅提供反馈以允许跟踪变量的内部状态,还提供来自测量即时EoA配置/几何形状的传感器的传感数据以及所测量的过程和产品变量(诸如接触力、摩擦力、交互产品状态等)的反馈。执行模块723将来自所述模块724的反馈数据用来确保实际值跟踪它们的命令设定点,以及确保环境感知模块721对每个关节元件的状态、EoA工具的整体配置以及机器人正在运行的环境交互变量的类型和状态,以及与之交互的元件/产品感兴趣的特定变量(例如,绘画期间画笔的鬃毛宽度或一致性以及打蛋的蛋清或煎蛋的烹饪状态)进行成像和绘制、建模和识别。此外,还将所述反馈数据提供给学习模块725,该学习模块725负责跟踪系统的整体性能,并将其与每个任务及其相关联的微操纵命令的已知的所需性能度量进行比较,从而允许一个或多个学习方法开发连续更新的描述符集合,这些描述符集合定义了它们各自的微操作库730中包含的所有微操作,在这种情况下为微观层级微操作子库732。
图141描绘了宏观操纵和微观操纵物理子系统及其相关联的传感器、致动器和控制器,以及它们与它们各自的高层级和子系统规划器和控制器以及世界与交互感知和建模系统的互连,以用于微操纵规划化和执行过程。在每个宏观操纵子系统和微观操纵子系统内固有的硬件系统既通过仪器化关节连接和控制器致动的基座310反映在宏观操纵子系统层级,又通过仪器化关节连接和控制器致动的手臂末端(EoA)工具320子系统反映在微观操纵层级。两者都分别连接到它们的感知和建模系统330和340。
在宏观操纵子系统310的情况下,通过专用传感器总线370与世界感知和建模子系统330建立连接,其中与所述子系统相关联的传感器负责在整个机器人系统周围的世界内感测、建模和识别所述世界和机器人系统本身。然后,原始和处理后的宏观操纵子系统传感器数据通过相同的传感器总线370转发到宏观操纵规划和执行模块350,其中单独的处理器集合负责执行从任务分解模块430接收的任务命令,该任务分解模块430继而通过数据和控制器总线380从高层级微操纵规划器470接收其任务命令,并基于其从世界感知和建模模块330接收的反馈,通过在专用控制器总线360上发送命令来控制宏观操纵子系统310完成所述任务。通过该控制器总线360接收的命令由关节连接和仪器化的基座子系统310内的每个相应硬件模块执行,包括定位器系统313、身体系统312、其上附接的头部系统311以及附属肢体系统314和与其相连的手腕系统315。
定位器系统313对重新定位活动命令到其笛卡尔XYZ定位器313a作出反应,其中基于处理器的集成和专用控制器通过在基于来自其集成传感器的反馈数据的高速闭环中控制致动器来执行所述命令,从而允许将整个机器人系统重新定位到所需的工作空间位置。附接到定位器系统313上的身体系统312(其中附肢系统314附接到身体系统312,以及腕部系统315附接到手臂关节连接系统314a的末端)使用上述相同的架构,其中它们的关节连接子系统312a、314a和315a中的每一个分别向其各自的基于处理器的专用控制器接收单独的命令,以命令其各自的致动器,并通过监视内置的集成传感器来确保遵循恰当的命令,以确保跟踪保真度。头部系统311将活动命令接收到头部关节连接子系统311a,其中基于处理器的集成和专用控制器通过在基于来自其集成传感器的反馈数据的高速闭环中控制致动器来执行所述命令。
对于微观操纵子系统来说架构相似。微观操纵子系统320通过专用传感器总线371与产品和过程建模子系统340通信,其中与所述子系统相关联的传感器负责感测、建模和识别EoA处的即时附近(immediate vicinity),包括交互过程和被处理或操纵的任何产品的状态和进度。然后将原始和处理后的微观操纵子系统传感器数据通过其自身的传感器总线371转发到微观操纵规划和执行模块351,其中单独的处理器集合负责执行从任务分解模块430接收的任务命令,所述任务分解模块430继而通过数据和控制器总线380从高层级微操纵规划器470接收其任务命令,并通过在专用控制器总线361上发送命令,基于其从产品与过程感知和建模模块340中接收的反馈,控制微观操纵子系统320完成所述任务。通过该控制器总线361接收的命令由仪器化EoA工具子系统320中的各个硬件模块(包括手系统323和烹饪系统322)执行。手系统323以其各个基于处理器的专用控制器接收对其手掌和手指关节连接子系统323a的活动命令,命令其各个致动器通过监视内置的集成传感器来确保遵循恰当的命令,以确保跟踪保真度。烹饪系统322包含专门的工具和器具(其可能是完全被动的,没有任何传感器或致动器,或者仅包含感测元件,而没有任何致动元件),负责通过类似的基于处理器的专用控制器执行发给它的命令,所述控制器通过将运动命令发送到其集成致动器来执行基于传感器反馈的高速控制环。此外,代表容器和处理锅/平底锅的器皿子系统322b可以通过内置专用传感器被仪器化以用于各种目的,其也可以通过跨接在手系统323和烹饪系统322之间的公共总线进行控制。
图142描绘了根据本公开的示出用于基于感知和模型数据、传感器反馈数据的微操纵和命令以及基于动作基元分量的微操纵命令的多层级生成过程的架构的一个实施例的框图,在将所述分量配备给负责宏观和微观操纵子系统的微操纵任务执行规划器之前对其进行组合和检查。
高层级执行器500向微操纵序列选择器510提供任务描述,该微操纵序列选择器510选择分别单独到达宏观操纵子系统410和微观操纵子系统420的候选动作基元(基本运动和控制),其中所述分量被处理以产生到微操纵任务执行规划器430的单独命令堆栈,所述命令堆栈通过仿真组合并检查它们的恰当功能性和同步性,然后将它们转发给每个相应的宏观操纵规划器和执行器模块350以及微观操纵规划器和执行器模块351。
在宏观操纵子系统的情况下,用于生成相应的微操纵命令堆栈序列的输入数据包括来自仪器化基座的原始和处理后的传感器反馈数据460、来自世界感知建模器330的环境感知和建模数据450。传入的微操纵分量候选491及其相应的集成描述符被提供给宏观微操纵数据库411,在由其专用的微操纵规划器412对它们进一步处理之前,由类型和序列415对它们进行组织;通过由稍后描述的单独学习过程提供的微操纵候选描述符更新414来生成对所述数据库411的额外输入。所述宏观操纵子系统规划器412还从微操纵进度跟踪器413接收输入,所述跟踪器负责向所述规划系统412提供关于任务执行变量和状态以及观察到的偏差的进度信息。进度跟踪器413通过在比较器中比较包括每个任务执行元件所需的基准性能417的输入与来自仪器化基座的传感反馈数据460(原始和处理后的)以及环境感知和建模数据450,来执行其跟踪过程,这生成了偏差数据416和包括通过由集成学习系统开发的描述符变量和常量修改的性能提高的过程改进数据418,并返回到规划器系统412。
微操纵规划器系统412取得所有这些输入数据流416、418和415,并对这些数据执行一系列步骤,以便获得为宏观操纵子系统开发的任务执行命令492的顺序命令堆栈集合,所述顺序命令堆栈集合在被转换成分别提供给每个宏观操纵子系统和微观操纵子系统以供执行的机器可读微操纵命令470之前,被馈送到微操纵任务执行规划器430以进行额外的检查和组合。微操纵规划器系统412通过步骤集合来生成所述命令序列492,所述步骤集合为包含性而非限制性的,也不必以此顺序,而且还具有可能的内部循环,其通过以下来传递数据:(i)优化器,以消除任何冗余或重叠的任务执行时间线;(ii)可行性评估器,在继续执行下一个子任务之前,根据与每个子任务相关的一组给定指标,验证每个子任务是否已完成;(iii)分解器,以确保在执行时间或任务步骤上不存在间隙,以及最后(iv)组合器,其在将所有命令参数转发给(v)将其映射到宏观操纵子系统硬件的物理配置的微操纵命令生成器之前,验证恰当的任务执行顺序和最终结果。
对于微操纵子系统420的命令堆栈序列的生成来说过程类似,其中一些显著差异在下面的描述中标识出。如上所述,用于生成微操纵子系统的各个微操纵命令堆栈序列的输入数据包括来自EoA工具的原始和处理后的传感器反馈数据490、来自交互感知建模器340的产品过程和建模数据480。将传入的微操纵分量候选492及其相应的集成描述符提供给微观微操纵数据库421,在由其专用的微操纵规划器422对它们进行进一步处理之前,由类型和序列425对它们进行组织;通过由先前和下文再次描述的单独学习过程提供的微操纵候选描述符更新424来生成到所述数据库421的额外输入。所述微操纵子系统规划器422还从微操纵进度跟踪器423接收输入,所述跟踪器负责向所述规划系统422提供关于任务执行变量和状态以及观察到的偏差的进度信息。进度跟踪器423通过在比较器中比较包括每个任务执行元件所需的基准性能427的输入与来自仪器化EoA工具的传感反馈数据490(原始和处理后的)以及产品与过程感知和建模数据480,来执行其跟踪过程,这生成了偏差数据426和包括通过由集成学习系统开发的描述符变量和常量修改的性能提高的过程改进数据428,并返回到规划器系统422。
微操纵规划器系统422取得所有这些输入数据流426、428和425,并对该数据执行一系列步骤,以便获得为微观操纵子系统开发的任务执行命令493的顺序命令堆栈集合,所述顺序命令堆栈集合在被转换成分别提供给每个宏观操纵子系统和微观操纵子系统以供执行的机器可读微操纵命令470之前,被馈送到微操纵任务执行规划器430以进行额外的检查和组合。关于针对412之前概述的宏观操纵子系统规划过程,微操纵规划器系统422通过步骤集合来生成所述命令序列493,所述步骤集合为包含性而非限制性的,也不必以此顺序,而且还具有可能的内部循环,其通过以下来传递数据:(i)优化器,以消除任何冗余或重叠的任务执行时间线;(ii)可行性评估器,在继续执行下一个子任务之前,根据与每个子任务相关的一组给定指标,验证每个子任务是否已完成;(iii)分解器,以确保在执行时间或任务步骤上不存在间隙,以及最后(iv)组合器,其在将所有命令参数转发给(v)将其映射到宏观操纵子系统硬件的物理配置的微操纵命令生成器之前,验证恰当的任务执行顺序和最终结果。
图143描绘了针对任何机器人系统生成微操纵命令堆栈序列的过程,在这种情况下,该过程被解构为针对已在物理和逻辑上划分为宏观操纵子系统和微观操纵子系统的单个机器人系统生成两个这样的命令序列,这提供了图142的替代方法。针对任何机器人系统生成微操纵命令堆栈序列的过程(在这种情况下,在物理和逻辑上划分的宏观操纵子系统和微观操纵子系统分别接收专用的宏观操纵子系统命令序列491和微观操纵子系统命令序列492)需要通过微操作动作基元(AP)分量选择器模块510对高层级任务执行器命令550执行多个处理步骤,并结合利用来自AP储存库520的所有可用动作基元替代(APA)候选540的输入。
AP储存库类似于一个关系数据库,其中与一个单独的任务相关联的被描述为AP1至APn(522、523、526、527)的每个AP(无论描述任务的抽象层级如何)由基本APi子块的集合组成(APSB1至APSBm;522a1->m、523a1->m、526a1->m、527a1->m),可以对其进行组合和串联,以便满足在任一单独的诸如时间、能量、口味、颜色、一致性等之类的物理变量或其组合方面描述任务完成的任务性能标准或指标。因此,任何的任务复杂性可以通过任意数量的AP替代的组合(APAa至APAz;521、525)来描述,其可以导致一个具体任务的成功完成,应充分理解存在不止一个可以满足任务的基准性能要求的APAi,但是可以对其进行描述。
因此在转发潜在可行的AP集合以进行评估之前,微操纵AP分量序列选择器510使用具体的APA选择过程513通过以下步骤从AP储存库520中开发许多潜在的APAa至APAz候选:取得高层级执行器任务指令540,在模块511中对其进行处理以识别必要和足够的子任务序列,并在步骤512中为每个子任务提取总体和子任务性能标准及状态集合。评估过程514沿先前在512中开发的多个独立式或组合指标中的任何一个(包括诸如所需时间、能量消耗、所需工作空间、组件可达性、潜在碰撞等指标),比较每个APAi的总体性能和状态。仅将满足预定性能度量集合的一个APAi转发给规划器515,其中在一个或多个活动空间(诸如关节空间或笛卡尔空间)中生成宏观操纵子系统和微观操纵子系统所需的活动曲线。然后将所述轨迹转发到同步模块516,其中通过将各个轨迹串联成单个整体活动曲线来进一步处理所述轨迹,每个致动的活动在整个执行时间线中以及与其前后活动同步并组合,以进一步允许多臂/肢干机器人附属肢体架构的协调活动。然后将最终的轨迹集合传递到微操纵生成517的最终步骤,其中所述活动被转换成定义机器人系统的微操纵的机器可执行命令堆栈序列。在物理或逻辑分离的情况下,分别为每个子系统生成命令堆栈序列,在这种情况下诸如宏观操纵子系统命令堆栈序列491和微观操纵子系统命令堆栈序列492。
图144描绘了示出根据本公开的构造为宏观操纵/微观操纵的物理层的另一实施例的框图。
在每个宏观操纵子系统和微观操纵子系统内固有的硬件系统既通过仪器化关节连接和控制器致动的基座810反映在宏观操纵子系统层级,又通过仪器化关节连接和控制器致动的人形附属肢体820子系统反映在微观操纵层级。两者都分别连接到它们的感知和建模系统830和840。
在宏观操纵子系统810的情况下,通过专用传感器总线870与世界感知和建模子系统830建立连接,其中与所述子系统相关联的传感器负责在整个机器人系统周围的世界内感测、建模和识别所述世界和机器人系统本身。然后,原始和处理后的宏观操纵子系统传感器数据通过相同的传感器总线870转发到宏观操纵规划和执行模块850,其中单独的处理器集合负责执行从任务分解模块430接收的任务命令,该任务分解模块430继而通过数据和控制器总线880从高层级微操纵规划器470接收其任务命令,并基于其从世界感知和建模模块830接收的反馈,通过在专用控制器总线860上发送命令来控制宏观操纵子系统810完成所述任务。通过该控制器总线860接收的命令由关节连接和仪器化的基座子系统810内的每个相应硬件模块执行,包括定位器系统813、重新定位单运动链系统812,其上附接有中央控制系统811。
定位器系统813对重新定位活动命令到其笛卡尔XYZ定位器313a作出反应,其中基于处理器的集成和专用控制器通过在基于来自其集成传感器的反馈数据的高速闭环中控制致动器来执行所述命令,从而允许将整个机器人系统重新定位到所需的工作空间位置。附接到定位器系统813上的重新定位单运动链系统812使用上述相同的架构,其中它们的关节连接子系统812a和813a中的每一个分别向其各自的基于处理器的专用控制器接收单独的命令,以命令其各自的致动器,并通过监视内置的集成传感器来确保遵循恰当的命令,以确保跟踪保真度。中央控制系统811将活动命令接收到头部关节连接子系统811a,其中基于处理器的集成和专用控制器通过在基于来自其集成传感器的反馈数据的高速闭环中控制致动器来执行所述命令。
对于微观操纵子系统来说架构相似。微观操纵子系统820通过专用传感器总线871与负责产品和过程感知与建模的交互感知和建模器子系统840通信,其中与所述子系统相关联的传感器负责感测、建模和识别EoA处的即时附近(immediate vicinity),包括交互过程和被处理或操纵的任何产品的状态和进度。然后将原始和处理后的微观操纵子系统传感器数据通过其自身的传感器总线871转发到微观操纵规划和执行模块851,其中单独的处理器集合负责执行从微操纵并行任务执行规划器430接收的任务命令,所述微操纵并行任务执行规划器430继而通过数据和控制器总线880从高层级微操纵规划器470接收其任务命令,并通过在专用控制器总线861上发送命令,基于其从交互感知和建模模块840中接收的反馈,控制微观操纵子系统820完成所述任务。通过该控制器总线861接收的命令由仪器化EoA工具子系统820中的各个硬件模块中的每个模块执行,包括一个或多个单运动链系统823,其上附接有手腕系统825,该手腕系统825上继而附接有手/末端执行器系统823,从而允许对其连接的烹饪系统822进行处理。单运动链系统包含诸如一个或多个肢体/腿和/或手臂子系统824a之类的元件,这些元件接收到其各个元件的命令,每个元件都有其各自专用的基于处理器的控制器,命令其各个致动器通过监视内置的集成传感器来确保恰当的命令遵循,以确保跟踪保真度。手腕系统825接收通过单运动链系统824传递的命令,这些命令被转发到其手腕关节连接子系统825a,利用其各个基于处理器的专用控制器命令其各个致动器通过监视内置的集成传感器来确保恰当的命令遵循,以确保跟踪保真度。附接到手腕系统825的手系统823以其各个基于处理器的专用控制器接收对其手掌和手指关节连接子系统823a的活动命令,命令其各个致动器通过监视内置的集成传感器来确保遵循恰当的命令,以确保跟踪保真度。烹饪系统822包含专门的工具和器具子系统822a(其可能是完全被动的,没有任何传感器或致动器,或者仅包含感测元件,而没有任何致动元件),负责通过类似的基于处理器的专用控制器执行发给它的命令,所述控制器通过将运动命令发送到其集成致动器来执行基于传感器反馈的高速控制环。此外,代表容器和处理锅/平底锅的器皿子系统822b可以通过内置专用传感器被仪器化以用于各种目的,其还可以通过从单运动链系统824跨过手腕系统825并向前跨过手/执行器系统823并终止(无论是通过硬件接线还是无线连接类型)在操作对象系统822中的公共总线来控制。
图145描绘了根据本公开的示出用于基于感知和模型数据、传感器反馈数据的微操纵和命令以及基于动作基元分量的微操纵命令的多层级生成过程的架构的另一实施例的框图,在将所述分量配备给负责宏观和微观操纵子系统的微操纵任务执行规划器之前对其进行组合和检查。正如操纵系统的情况一样,尤其是那些需要在较大工作空间上具有相当大的移动性同时仍需要显著的端点运动精确度的操纵系统,如图900中的此替代实施例所示,这些操纵系统可以在物理和逻辑上细分为宏观操纵子系统微观操纵子系统920,该宏观操纵子系统包括大型工作空间定位器940,耦接于包括多个用于粗略运动的元件910的关节连接体942,该微观操纵子系统920用于精细运动,这两个子系统物理相接并与可以包含多个元件930的环境938进行交互。
对于较大的工作空间应用来说,其工作空间超出了典型的关节连接机器人系统的工作空间,因此可以通过添加一个定位器(其通常能够在自由空间中移动)从而允许在XYZ(三个平移坐标)空间中移动来增加系统的范围和操作边界,如940所描绘的从而允许工作空间重新定位943。这样的定位器可以是能够定位关节连接体942的可移动轮式或腿式基座、高空作业平台,或者简单地是龙门式正交XYZ定位器。针对人形类型配置应用的此类关节连接体942是可能的物理机器人实例之一,所述关节连接体942将描述互连元件910的物理集合,包括上肢917和下肢917a。宏观操纵子系统910和940中的这些相互链接的元件中的每一个将由仪器化关节连接和控制器致动的子元件组成,包括充满各种环境感知和建模感测元件的头部911,其连接到仪器化关节连接和控制器致动的肩部躯干912和仪器化关节连接和控制器致动的腰部913。腰部913还可以附接到其移动性元件,诸如一个或多个腿615,或甚至是关节连接的轮子,以便允许机器人系统在更扩展的工作空间中操作。躯干中的肩部可以具有用于运动链中的微操纵子系统元件的附着点,下面将对此进行介绍。
物理附接到宏观操纵子系统910和940的微观操纵子系统920用于需要精细位置和/或速度轨迹运动以及交互力/转矩的高保真度控制的应用中,而宏观操纵子系统910无论是否耦接到定位器940,均无法感测和/或控制特定领域应用所需的水平。微观操纵子系统920由肩部附接的链接附属肢体916组成,诸如一个(典型地为两个)或更多个仪器化关节连接和控制器致动的关节臂914,每个关节臂将附接有仪器化关节连接和控制器致动的手腕918。可以将各种仪器化关节连接和控制器致动的手臂末端(EoA)工具925附接到所述(一个或多个)安装接口。尽管手腕918本身可以是仪器化关节连接和控制器致动的多自由度(DoF;诸如以滚转/俯仰/偏航的典型三自由度旋转配置)元件,其还是一个安装平台,可以选择在该安装平台上附接高度灵巧的仪器化关节连接和控制器致动的多指手,包括带有手掌的手指922。其他选择还可以包括被动或主动可控的固定接口923,以允许抓取旨在与之配合的专门设计的设备,允许多次在机器人和设备之间进行刚性的机械以及电气(数据、电源等)接口。所描绘的概念不必限于附接带手指的手922或固定设备923的能力,而是可能通过包括将它们刚性地锚固到表面或甚至其他设备上的过程来附接其他设备924的能力。
可以形成微观操纵子系统920的一部分的各种末端执行器926允许通过各种设备930在机器人系统和环境/世界98之间进行高保真度交互。交互的类型取决于领域应用939。在领域应用是具有机器人烹饪系统的机器人厨房的情况下,将与诸如烹饪工具931(威士忌、刀子、叉子、匙子、拂子等),包括锅和平底锅932等的器皿,诸如烤箱、电打蛋器或电动刀等的用具933,用以处理和分配的烹饪食材934(诸如香料等)等元素发生交互,并甚至在菜谱中或由于其他操作考虑而需要进行人机交互的情况下与用户935进行潜在的实时交互。
AP执行过程
图178描绘了示出功能动作基元(FAP)的数据结构的框图。由APSB的替代序列(AP替代)组成的功能动作基元按以下方式执行:首先,根据APSB作为其一部分的微操纵(minimanipulation)对APSB进行定制。然后,如果存在,则将用具命令发送到厨房用具。如果APSB指定了机器人活动,则应规划并评估机器人活动的可达性和碰撞,并选择优选的替代序列机器人活动。如果它包含笛卡尔(Cartesian)轨迹,则将对其进行规划,如果可能的话则类似于机器人的当前配置,以便允许平稳转移。在规划的笛卡尔轨迹或关节空间轨迹之间,对运动进行规划以将机器人从其上一个配置移动到以下轨迹的开始。然后,对所选FAP替代中的所有轨迹重复此过程。在计算完所有这些部分规划后,将它们进行串联、后处理,然后发送给机器人以执行,并进行缓存以优化。
为了在非结构化环境中进行可靠而有效的操纵,将对象和机器人带到标准位置,然后在机器人上执行预先计算的活动规划。操纵的重复部分的规划是离线完成的,以便获得更好的质量和立即可用的规划。
功能动作基元(FAP)数据结构
功能动作基元是MM组成的最小构建块。尽管并非所有字段都是必需的,但AP数据结构如图图所示。它们是机器人厨房的简单动作,可以在多个微操纵和菜谱中重复使用。一个AP由多个AP替代(APA)组成,它们代表达到相同最终状态的替代动作。APA根据其优选性(其可以包括执行持续时间、与对象的安全距离、能量使用或其他)进行优先级排序。APA包含AP子块(APSB)的有序列表,这些子块可以是机器人轨迹、视觉系统命令或用具命令。APA中的所有APSB与开始时间戳相关联,该开始时间戳也隐式定义了它们要被执行的顺序、之间可能的中断以及当该定时重叠时同时执行(如后所述)。机器人轨迹可以是关节空间轨迹,该关节空间轨迹定义了所有机器人关节在时间上以及在机器人关节空间中的位置,其也可以是笛卡尔轨迹,该笛卡尔轨迹定义了对象或机器人末端执行器在厨房笛卡尔空间中的位置。
功能动作基元执行
图178中显示了示例微操纵,其包括具有一到三个APSB的五个FAP,指示机器人进行以下操作:
1.获取一个已经装满一些内容物的容器
2.用另一只手拿勺子
3.用勺子移动容器中的内容物,并将其放入锅中
4.把勺子放回去
5.将容器放入水槽
功能动作基元(FAPA)选择
要选择优选的FAPA,将根据按照优先顺序的以下过程准备所有可用的FAPA并测试其可执行性,然后将执行可执行的第一个FAPA。
预处理/后处理
参数
FAP旨在在不同的上下文中可重用,并且它们具有使它们可定制的参数。这些参数的值从使用AP的微操纵中向下传递。在为AP执行过程做准备时,将评估所有参数,并根据它们修改AP的工作副本。所述参数之一是速度因子。它是缩放轨迹速度的一个因子,并且可以通过将所有时间戳乘以它来应用(其与AP的开始有关)。
协调多臂
首先,通过评估FAP的所有FAPSB开始时间戳和持续时间,可以检测到时间重叠,这对于具有笛卡尔轨迹的FAPSB的情况来说,意味着多个臂应同时执行指定的动作。具有指定轨迹的臂称为主动臂,其他称为被动臂。
(一个或多个)被动臂的行为有以下两种简单的可能性:它们可以将其关节保持在相同的关节空间配置中,或者将其各个末端执行器保持在它们各自的笛卡尔姿势(位置和取向)中。如果机器人在基座和任何末端执行器之间的运动链中没有共享的关节,则这两种可能性的行为相同。
除此之外,只要无碰撞,被动臂就可以被允许进行任何活动。执行哪个行为是由FAP数据指定的。指定被动末端执行器保持在其位置的示例动作是在握住锅(被动臂)的同时进行搅拌(主动臂)。通过如上所述使用FAPSB定时信息和(一个或多个)被动臂的简单逻辑行为切换,简化了FAP的创建,并提高了它们的可维护性和可重用性。
如果FAP中随时有多个主动臂,则意味着需要一起规划这些臂的轨迹,然后对于不同数量的主动臂之间的转移,则必须计算运动规划。
将对象轨迹转换为机器人轨迹
如果FAP已为附接到机器人的对象指定了轨迹,则可以通过使用形成已使用抓取的经保存变换或者使用对象与机器人末端执行器之间的上一个已知几何关系,将对象的轨迹转换为末端执行器轨迹(其是运动链的一部分)。这是通过使用链机器人的逆运动学求解器来规划机器人的活动轨迹,其需要一条轨迹定义运动链的一部分的活动。
允许的接触
为了简化真实世界对象的模型,所有模型都是固定的(ridig),而真实对象由于接触力而在彼此接触时会变形。同样由于其他原因,永远无法由模型来完美地代表真实对象。因此,在运动规划或笛卡尔规划中,如果假定多个对象之间发生了接触,例如在抓取一个对象时,规划算法必须忽略指定对象之间的碰撞。
何时允许和禁止接触(对于规划器而言是碰撞)的信息存储在包含各个轨迹的FAPSB中,并且必须在这些轨迹的执行之前和之后将该信息转发给规划器。
抓取状态
如果FAPSB包含有关抓取状态变化的信息,则通过在执行APSB之后从机器人运动链中逻辑上附接或分离对象来实现此变化。此变化将使运动规划器或笛卡尔规划器考虑附接对象的碰撞,并允许系统基于运动链的活动来更新对象的位置。
动态对象属性
FAPSB可以包含有关动态对象属性中的转移的信息。例如,这可以是关于在执行使用水龙头来装水的APSB之后盛有一定量水的容器,或者是关于将锅盖放在锅上方之后具有盖上的锅盖的锅。该信息用于未来的动作,例如用于碰撞检测。
规划
规划是将一个活动的目标或要求变成一系列实现该目标的关节空间配置的过程。在开始任何规划之前,必须更新机器人的内部世界表示,以使其与真实对应物(counterpart)相对应。
运动规划
寻找将机器人从开始配置移动到结束配置而不会发生碰撞的关节空间路径的过程称为“运动规划”。开始配置和结束配置始终包含机器人的所有关节。它是使用一种算法完成的,该算法对关节空间进行采样以查找无碰撞的配置,然后在样本之间生成图形并将其与开始配置和结束配置连接起来。此图形上开始和结束之间的任何路径都是可以满足要求的有效运动规划。
可以在考虑各种约束的同时完成运动规划。所述约束可以包括末端执行器取向约束,以便使容器保持直立状态,而不会使容器内的内容物掉落。在规划器中,通过随机更改其样本配置直至满足约束来实现约束。
在没有任何定时信息的情况下完成运动规划,并使其规划在后处理步骤中可执行。
笛卡尔规划
当机器人要执行笛卡尔活动时,“笛卡尔规划”会生成一个满足该活动的关节空间轨迹。笛卡尔规划的输入是笛卡尔轨迹的列表,每个轨迹用于不同的机器人末端执行器。
可行性检查
在规划一组轨迹之前,先要完成可行性检查。该检查将计算仅通过末端执行器及其静态连接的臂链路的末端执行器姿势的可行性和碰撞。该检查是可执行性的必要标准,并且是检测无法执行的轨迹的快速方法,以使系统跳过当前的AP替代并继续下一个替代。
这通过首先尝试为所有给定的轨迹姿势寻找IK解而不考虑碰撞来实现。如果至少一个姿势不具有IK解,则轨迹不可执行。如果所有姿势都具有对应的IK解,则检查将继续:现在,当且仅当对于所有轨迹姿势来说,末端执行器及其静态连接的臂链路不发生碰撞时,该轨迹才可执行。
伪代码:
Figure BDA0002425066820001621
规划
在规划笛卡尔活动时,通常仅使用机器人自由度的子集。因此,多余的自由度可用于优化活动。由于笛卡尔活动通常是在菜谱的上下文中与其他活动一起执行的,因此所有笛卡尔规划都以类似的配置完成。因为所述活动是由人类记录以使人形机器人执行通常由人类执行的动作,因此所有活动应相似的优选配置被定义为如图179所示的类似人的待机配置。
笛卡尔规划器可以为整个轨迹寻找相似的IK解。关节空间的这种相似性确保了轨迹姿势之间的最小活动。通过使用迭代优化的IK求解器,使用上一个姿势的解决方案来开始搜索每个姿势,可以实现相似性。第一个解基于优选的类似人的配置或由协调规划器的系统(请参阅下一部分)指定的另一配置。这样,IK求解器将在规划整个轨迹时遵循相同的本地最优值。每个IK解都必须无碰撞,并且必须与上一个解相似。如果IK求解器找不到相似的解决方案,则将针对第一个姿势使用不同的配置重新开始搜索。该配置的候选是不同的经保存的、优选的类似人的配置或其随机变化,或者必要时可以是完全随机的配置。对于某些APSB,使用特定于此FAPSB的配置也可能是合适的。
在输入轨迹仅覆盖机器人的一部分的情况下,则为被动臂指定静态配置,并在规划过程中保持该静态配置,或者将另一只臂置于如上所述不会发生碰撞的任何位置。然后,IK求解器仅考虑机器人的主动部分,但是仍然需要对整个机器人进行碰撞检查。
笛卡尔规划以与输入轨迹相同的分辨率和相同的时间信息来完成,并且其规划可能无法立即执行,因为输入轨迹的活动可能太快而使机器人无法跟随。只有后处理步骤(请参见下文)使其可执行。
规划之间的协调
FAPSB通常经由笛卡尔轨迹或关节空间轨迹,仅指定菜谱机器人活动的某些部分。连接由APSB指定的活动的中间活动是隐式的并由“运动规划”来完成。这是为了增加灵活性和可重用性。
图180示出了用于规划协调的示例FAP,其包含多个不同类型的FAPSB。
缩写如下:
·L/R:左臂/右臂的水平通道(lane)
·FAPSB:CT是由APSB要求的笛卡尔轨迹
·FAPSB:JT是APSB的关节空间轨迹
·FAPSB:待机2是单臂规划中自由臂的姿势
·MP是转移运动规划
为了在不同类型的轨迹之间提供平滑的转移,总是首先完成笛卡尔规划,从而尝试寻找一个类似于机器人的当前状态的、具有关节空间解的规划。然后,完成运动规划以将机器人从其当前状态移动到笛卡尔轨迹的开始。
由于首先用所得的关节空间轨迹来处理笛卡尔轨迹,所以始终要完成运动规划以连接这些关节空间轨迹,并且还会生成一个关节空间轨迹。其仅在已经连接了来自AP的关节空间轨迹时才能被跳过(第一个FAP关节空间轨迹的结束配置与第二个AP关节空间轨迹的起始匹配)。
时间参数化
由于所有规划都是在不考虑机器人动态特性的情况下完成的,因此它们可能太快了而不能由机器人执行。因此,在执行之前,会对它们进行处理,并且可能会使用适当的时间参数化算法来降低其部分的速度。
规划缓存(保存和重用)
为了加快未来的规划,将所得的轨迹与环境信息和性能度量一起保存。这包括APSB标识符和版本、厨房和机器人的所有对象位置和模型信息以及模型和状态信息。性能度量可以包括轨迹长度(在关节空间或笛卡尔空间中)、能量使用或类人性。要将缓存的轨迹用于APSB,要么所有保存的环境都必须与当前环境相同,或者需要检查已保存的轨迹在当前环境中是否存在碰撞。
为了以有效的方式检查整个已保存的轨迹与环境的碰撞,计算其边界体积并与之一起保存。这允许实时测试已保存的轨迹的有效性。轨迹痕迹被显示在图181中:轨迹的所有关节空间配置都在一帧中呈现。该痕迹类似于边界体积。
一旦存在一组缓存的规划,对于需要规划的每个新的APSB来说,以降低的性能等级的顺序来检查已保存的轨迹,以便使用最可行的轨迹。
即时规划
作为替代规划和执行的替代方法,一旦对未来环境的了解足够充分,便可以制定规划。系统模拟由某个APSB引起的机器人、对象的移动以及环境变化。这是可能的,因为所有APSB都具有可预测的结果。规划器可以在未来的环境中为随后的APSB制定规划。如果环境以非预期的方式改变,则该规划必定无效。否则可以执行该规划。使用此方法,可以执行APSB序列(以及在扩展AP中)而无需等待规划。
图182描绘了定时图,该定时图示出了执行和规划的序列,其中在执行时完成了规划,除了序列的开始和使规划无效并导致另一次规划尝试的非预期环境变化的一个实例之外。
在标准环境中进行操纵
能够重用缓存的轨迹具有许多优点。由于可以提前完成规划,因此可以使用更多计算上昂贵的算法,并且可以给予足够的时间进行计算,不仅可以可靠地找到所有解,而且可以根据上述性能度量找到最佳解。同样,可以为难以度量化的性能度量或标准(例如美感)手动选择轨迹,并且当不包括规划时更容易确认其可靠性。
可以将许多机器人操纵动作分为:(1)将对象和机器人移动到定义的配置中,以及(2)使用这些对象和配置进行操纵。
值得将规划任务分解为可以通过优化的预先规划来求解的部分和可以通过实时规划求解的部分(在执行之前完成)。
为了能够使用优化的预先规划轨迹,要执行操纵的直接环境必须处于定义的状态(标准直接环境)。这意味着所有可能与机器人碰撞的对象以及所有被操纵或需要操纵的对象都处于与和预先规划的轨迹一起记录的位置相匹配的位置。可以相对于机器人或相对于环境来指定位置。其余环境可以是非标准化的。缓存的轨迹始终与直接环境状态相关联,并且仅在真实状态与保存的状态匹配时才可以重用。
因此,在执行预先规划的操纵之前,必须首先将所有被操纵或与该操纵相关的对象移动到预先规划的操纵所定义的位置和取向。处理的这一部分可能需要实时规划才能将对象从非标准环境移动到标准环境。
图183描绘了在非结构化环境中的对象交互的过程的一个实施例。为了移动不在直接标准环境中的对象,需要使用标准抓取(之前已经测试过的手指关节空间轨迹)来抓取并移动(使用实时运动规划)。如果无法抓住它们(例如,由于处理阻挡),则实时规划并执行非标准移动(其可能包括以某种方式推动对象),然后进行另一次标准抓取和移动尝试。重复此过程,直到对象与机器人具有预期的关系,然后再处理所有其他对象。
在厨房上下文中对此的一个示例是,将食材和工具从储存区域(凌乱、不可预测、经常变化)抓取并移动到工作台表面上以呈定义的姿势,然后将机器人移动到定义的配置,然后执行使用工具来抓取和混合食材的轨迹。
使用这种方法,可以以专用且计算资源密集的方式离线生成用于标准环境的最佳笛卡尔和运动规划,然后将其传输以供机器人使用。数据建模既可以通过保留常规FAP结构并使用规划缓存来实现,也可以通过用预先规划的关节空间轨迹替换FAP中的某些笛卡尔轨迹来实现,包括用以连接AP内部各个APSB的轨迹的关节空间轨迹,以甚至在标准环境中进行操纵时替换实时运动规划的某些部分。在后一种情况下,存在两组FAP:一组具有“源”笛卡尔轨迹以适合规划,而一组具有优化的关节空间轨迹。
可以按每个轨迹或按每个FAPSB来保存真实直接环境与所保存的优化轨迹的直接环境之间的差异的容差,该容差可以使用实验方法确定。
可以扩展使用预先规划的操纵,包括将机器人定位,尤其是沿线性或轴向定位,以便能够在各种位置上执行预先规划的操纵。另一个应用是将人形机器人相对于其他对象(例如,住宅中的窗户)以定义的关系放置,然后开始预先规划的操纵轨迹(例如,清洁窗户)。
时间管理方案
图182描绘了在复杂环境中规划和执行的时间序列的图形表示。本文描述了利用提出的应用的时间管理方案。图182中示出的规划和执行的时间进程代表当所有规划时间都小于前一个APSB的执行时间时的一个优选场景。但是,当逆动力学(IK)问题的复杂性在复杂或变化的环境中发生时,情况可能并非如此。发生这种情况的原因是,当检查笛卡尔轨迹对于更复杂的环境是否可执行时,约束的数量会增加。结果,如图184所示,连续的APSB之间的等待时间变为非零。在一个实施例中,时间管理方案使这些等待时间之和最小。
此外,我们提出时间管理方案不仅必须减少活动执行之间的平均等待时间之和,而且还必须减少总等待时间的可变性。具体而言,这对于其中菜谱设置了操作所需的定时的烹饪过程来说非常重要。因此,我们引入了由烹饪失败概率给出的成本函数,即P(τ>τfailure),其中τ是操作执行的总时间。考虑到概率分布p(τ)由其平均值<τ>和方差
Figure BDA0002425066820001661
决定,并忽略高阶矩
Figure BDA0002425066820001662
Figure BDA0002425066820001663
某些单调递增函数,(例如,如果高阶矩确实消失且p(τ)分布正常,则所述单调递增函数仅是误差函数f(x)=erf(x))。因此,对于时间管理方案来说,当平均值低于失败时间时,减少平均时间及其方差二者是有益的。由于总时间是相应且独立获得的等待和执行时间的总和,因此总平均值和方差是各个平均值和方差的总和。通过减少烹饪失败的可能性,最小化每个单独方案的时间平均值和方差可以提高性能。
为减少不确定性,从而减少规划时间的方差(以及相应地等待时间的方差),我们提出使用执行典型FAP的预先规划和存储的序列的数据集。这些序列事先以强大的计算能力进行了优化,以实现最佳时间性能和任何其他相关标准。本质上,它们的不确定性被减小为零,因此它们对总时间方差的贡献为零。因此,如果时间管理方案找到了一个解,该解使得系统进入从该状态已知达到目标状态的动作序列的预定义状态,并且在烹饪失败时间之前就找到了解,则可以将烹饪失败的可能性降低到零,这是因为其估计时间方差为零。通常,如果预定义序列只是总AP的一部分,那么它仍然不会影响总时间方差,并且会对总执行时间的不确定性产生有益的影响。
为了降低复杂性,从而减少规划时间的平均值(以及相应地等待时间的平均值),我们提出使用约束数量最小的预先规划和存储的配置的数据集。如图185所示,其示出了具有约束的逆运动学的复杂性,如果逆运动学算法的复杂性以及相应地找到可执行解的平均时间随约束数量的增加比线性增长快(这是迄今为止针对所有算法的情况),则我们提出使用FAP替代(FAPA),该FAP替代是使用预先规划的笛卡尔轨迹或关节轨迹以及导致约束消除的对象交互而获得的。如果由于多个约束而无法执行所找到的IK问题的解决方案的序列的笛卡尔轨迹,则方案将实施同时尝试寻找FAPSB,这将导致逐个地或一次多个地消除这些约束。如图8所示,执行一系列FAPSB以连续消除约束将导致总等待时间与约束数量成线性关系,因此在执行AP时为估计的等待时间提供了较低的上限。为了减少该线性曲线的倾斜度,我们提出使用一组预先规划的FAPSB以将机器臂缩回至预设状态之一,并使用另一组预先规划的FAPSB以将可能会阻挡路径的对象从直接环境中消除,从而为IK问题的笛卡尔轨迹解提供了约束。
该方案的逻辑如下,一旦达到寻找解的超时(通常由之前的FAPSB的执行时间来设置)并且未找到可执行轨迹,我们就从不完整的FAPA执行过渡性的FAPSB,这将不会导致目标状态,而是导致具有降低的复杂性的新IK问题。实际上,我们将具有长尾分布和高平均值的未知等待时间换成了在额外的FAPSB上花费的固定时间以及具有较低平均值的新IK问题的未知等待时间。该方案中制定的决策的时间进程在图9中示出,其示出了信息流和不完整的FAPA的生成。在达到超时之前,我们会累积完整的FAPA和不完整的FAPA的集合,当达到超时时,我们根据先前章节中所述的选择标准从适当的APA中选择FAPSB来执行。如果未找到完整的APA,我们从不完整的FAPA集合中选择FAPSB,以避免大量等待时间。从不完整的FAPA中选择FAPSB是由针对IK问题的非可执行解的未实现约束列表驱使的。即,我们优先消除最常不满足并且阻止IK问题的解决方案执行的约束。这种情景的示例会是某个容器阻挡机器臂在其后执行动作的路径的情况,因此,如果在超时之前未找到解,我们将不等待解出现,而是抓住该容器并将其从直接环境中移到其外部的预设位置,即便我们没有获得完整的FAPA来完成FAP。在无法满足的约束列表不可用的情况下,我们会以预先规划的方式减少约束数量,在该方式中一次消除最大数量的约束。这种预先FAPA的示例可以是将对象重新放置到没有其他外部对象的专用区域,或是将机器臂缩回到标准初始位置。
在内部约束和外部约束之间,内部约束是由于机器臂活动的限制而引起的,并且当关节处于复杂位置时它们的作用会增强。因此,典型的约束消除APSB是将机器臂缩回至预设的关节配置之一。外部约束是由于对象位于直接环境中而引起的。典型的约束消除APSB是将对象重新放置到预设位置之一。内部约束和外部约束的分离用于从可执行的完整集合和不完整集合中选择APA。
为了将复杂性降低与不确定性降低相结合以减少总执行时间的平均值和方差,提出了以下预先规划和存储的数据集的结构。可以存储用于操纵列表的IK解的序列以及在专用区域中可执行的每种类型的对象。在该区域中,我们不具有外部对象,并且机器臂处于预定义的标准位置之一。这确保了最少数量的约束。因此,如果不容易获得FAP的直接解,我们将寻找并使用FAPA的解决方案,这会导致将所考虑的对象重新放置到执行操纵的专用区域。这样可以消除大量约束,并允许使用预先计算的序列,从而使执行时间的不确定性最小化。在专用区域中执行操纵后,对象将返回到工作区域以完成FAP。
图187是示出用于预先规划解的数据库的写入和读出方案的框图。为对象库和这些对象的对应操纵创建了预先规划解的数据库。对于每个对象和操纵组合,存储了关节值轨迹的许多解。这些解的不同之处在于机器臂和对象的初始配置。这些数据集可以通过系统地更改和采样机器臂和对象的初始位置和配置的笛卡尔坐标来预先计算。可以通过写入关节值轨迹来更新和扩展此类数据库,以实现成功的实时规划操作。如果寿命规划程序未能在超时之前产生解,由于直接环境中的外部对象,则该方案将通过比较预先存储的关节值轨迹的体积与排除的体积,来尝试寻找一个与当前直接环境满足不碰撞条件的预先存储解。数据库的构造方式是,根据性能度量对预先存储解的数据列表进行排序,以便首先尝试最理想的解决方案。
图188A是示出标记的示例的示意图。放置在末端执行器上的标记使得能够估计其相对于中央摄像机系统的姿势(请参阅“视觉系统概述”一章中有关视觉子系统的类型和功能的更多信息)以及工作空间的原点。这可用于校准和检查末端执行器的定位精确度、损坏或跳动。Moley标记是二进制正方形图案,其中包含徽标和8个点(或其占位符),编码0-255范围内的整数值。每个点在二进制编码的对应位指示1,而没有点则指示0。内部徽标图案是不对称的,因此可以将其用作方向指示符:公司名称易于检测,并指示标记的底面。外部标记边框的四个角用作姿势估计,该估计分为4个步骤:校准摄像机(例如,估计焦距、主点和失真系数)。此步骤执行一次。在立体摄像机的情况下,计算投影矩阵。图188B示出了在计算标记位置时的一些示例数学表示。标记角位于(计算像素位置)来自嵌入式或高架摄像机的分析图像上。对于立体摄像机的情况,角位于左摄像机和右摄像机二者的图像上。已知每个角相对于对象原点的3D真实世界坐标,每个点都应符合方程(针孔摄像机模型)。其中U和V是角的像素坐标,fx、fy、cx、cy是摄像机的焦距和投影中心,X、Y和Z是角在对象坐标系中的真实坐标,以及R、T是未知的对象旋转和平移矩阵,用于指定对象相对于摄像机的位置和取向。通过将每个角的坐标置于公式中,我们可以获得12个方程,并通过使用随机抽样一致性算法(Ransac)或任何类似算法求解它们来找到R和T矩阵。即使旋转矩阵似乎有9个未知数,它的值也取决于3个旋转角度,并且是从3个旋转角度得出的。这意味着,我们只需要通过求解(最小化)12个方程来找到6个未知数(3个角度和3个平移)。对于负责检测工作表面上的对象的高架摄像机系统,由于对象位于已知表面上并因此仅可能具有3个自由度(X、Y和绕Z轴的旋转角度),因此我们可以将未知参数的数量降低到3个。在这种情况下,需要在校准台上计算摄像机相对于表面的位置。对于嵌入式摄像机系统而言,建议使用立体摄像机。在那种情况下,我们对左图像和右图像具有相同的方程,因此可以以更高的精确度找到R和T(使用RANSAC和类似方法或使用三角测量法直接找到)。三角形标记-为了获得更高的精确度,可以将标记分组为复杂的几何结构,例如-三角形。除了提高精确度之外,该方法还使得能够利用更直接的方法进行对象姿势估计并导航至位置0。图189是示出了打开具有一个或多个标记的瓶子的示意图。
机器人操作生态系统
图179示出了根据示例性实施例的机器人操作生态系统5000。如图所示,机器人操作生态系统5000包括机器人辅助环境5002、机器人助手管理系统5004、云计算系统5006和一个或多个第三方系统5008-1、5008-2、...、5008-n(统称为“5008”)。机器人操作生态系统5000还包括网络5010,该网络5010被配置为使得能够在机器人辅助环境5002、机器人助手管理系统5004、云计算系统5006和第三方系统5008中的一个或多个之间进行通信。如本文详细描述的,机器人操作生态系统5000(包括独立和/或共同在其中的系统)被配置为在机器人辅助环境5002内和/或影响机器人辅助环境5002以执行交互,例如,以实现特定目标(例如,目的)。在一些实施例中,目标由一种或多种菜谱构成,所述菜谱由一种或多种交互或操纵构成,如本文中进一步详细描述的。
更具体地,如图179所示,机器人辅助环境5002包括机器人辅助工作空间5002w和机器人助手5002r(在本文也可互换地称为“通用机器人助手”或“机器人”)。机器人助手5002r在环境5002内与机器人辅助工作空间5002w一起操作,以执行交互,并实现目标,如以上所指出的。机器人辅助环境5002可以是可以在其中部署机器人助手5002r的任何真实世界、物理位置、设置、周围环境或区域。例如,在某些实施例中,机器人辅助环境5002可以是厨房,诸如本文所述的机器人厨房和/或厨师厨房之一(例如,图2:机器人厨房48、厨师厨房44)。应理解,机器人辅助环境5002可以是本领域技术人员已知的厨房(例如,完全机器人、部分机器人(例如,机器人助手与人类)和/或人类操作的),这不同于本文描述的厨房。
尽管本文结合一些示例性实施例将机器人厨房称为机器人辅助环境5002的类型,应理解,机器人辅助环境5002可以是本领域技术人员已知的许多其他环境中的任何一种。而且,如本领域技术人员已知的,被配置为机器人辅助环境5002的机器人厨房的功能可以应用到其他这样的环境。
以下表1中示出了其他类型的机器人辅助环境5002的非穷尽性说明性示例。以下表1还示出了经由部署在各个对应类型的机器人辅助环境中的机器人助手5002r执行的交互而实现的目标的示例。
表1
Figure BDA0002425066820001711
机器人辅助环境的其他示例可以包括街道、卧室起居室等。
如上所述,机器人辅助环境5002与工作空间5002w相关联或包括工作空间5002w。尽管结合机器人辅助环境5002仅示出了单个工作空间5002w,但是应理解,机器人辅助环境5002中可以包括多个工作空间5002w。工作空间5002w可以是机器人辅助环境的任何区域、地区或部分,机器人助手5002r可以在工作空间5002w中或与其进行操作(例如,交互、通信等)。例如,在其中机器人辅助环境5002是机器人厨房的一些实施例中,机器人辅助工作空间5002w可以是柜台、烹饪表面或模块、清洗站、储存区域(例如,橱柜)等等。即,机器人辅助工作空间5002w可以指代机器人厨房的各个区域、地区或部分,或者是在物理上或逻辑上彼此耦接或解耦的一组区域、地区或部分。尽管机器人辅助工作空间5002w可以指环境5002的物理地区或部分,但是在一些实施例中,机器人辅助工作空间5002w可以指代和/或包括非有形部分,诸如多个物理部分之间的空间或区域。在一些实施例中,机器人辅助工作空间5002w(和/或机器人辅助环境5002)可以包括远程定位的部分、系统、组件等(例如,云系统、远程储存、远程客户站等)。
机器人辅助工作空间5002w在下面进一步详细描述。尽管如此,在一些实施例中,机器人辅助工作空间5002w(和/或其相应的环境5002)包括一个和多个工作空间(或环境)对象和/或与该对象相关联,该对象可以包括物理部件、组件、仪器、系统、元件等。更具体地,在一些实施例中,对象可以包括至少一个模块、传感器、器具、设备、炉灶台/炊具、水槽、用具(例如,洗碗机、冰箱、搅拌器等)以及本领域技术人员已知的可以被机器人助手5002r使用以实现终点目标(target objective)的其他对象,如本文中进一步详细描述的。应当理解,对象可以被嵌入或内置在工作空间5002w(例如,洗碗机)或环境5002(例如,厨房)中,可以与之可拆卸或可分离(例如,锅、搅拌器),或者可以是完全或部分远离工作空间5002w和/或环境5002(例如,远程储存)。在一些实施例中,机器人辅助工作空间5002w可以是或包括图7A至图7D所示的对象(例如,烹饪模块350、器具360、炉灶面362、厨房水槽358、洗碗机356、台式混合器和搅拌器(也称为“厨房搅拌器”)352、烤箱354和冰箱/冷冻机组合单元364)。以下表2中示出了与环境或工作空间相对应的对象的非穷举说明性示例。
表2
Figure BDA0002425066820001721
Figure BDA0002425066820001731
可以将对象分类为例如静态对象、动态对象、标准对象和/或非标准对象。每个对象的分类会影响机器人助手与对象交互的方式。静态对象是可以与之交互但不能或通常不会移动或在物理上改变的对象。例如,厨房环境中的静态对象可以包括头顶灯、水槽和架子。另一方面,动态对象是可以(或主动)变化或改变(例如,在物理上)的对象。例如,厨房环境中的动态对象可以包括勺子(其可以移动)和水果(可以变化和改变)。
标准对象是通常在大小、材料、格式和/或纹理上没有变化的那些对象;其通常是不可修改的;和/或通常不需要对其进行任何调整即可操纵。厨房环境中标准对象的说明性、非穷举性示例包括盘子、杯子、刀子、烤架、灯、瓶子等。通常启用或配置非标准对象以进行修改;和/或通常不需要检测和/或识别其特征(例如,大小、材料、格式、纹理等)以进行最佳操纵或与之交互。非标准对象的说明性、非穷举性示例包括洗手液、蜡烛、铅笔、食材(例如,糖、油)、农产品和其他植物(例如,草药、西红柿)等。
如本文中进一步详细描述的,机器人辅助工作空间5002w的对象由机器人助手5002r操纵和/或与之交互以实现目标。在一些实施例中,具体环境或环境类型部分地由一组标准和/或非标准对象以及可在该环境类型中的对象上、对该环境类型中的对象或与该环境类型中的对象进行的一组交互来定义,和/或与所述对象和交互相关联。以下表3示出了在环境中和/或定义环境的对象的非穷举性示例,以及可以在其上、与之或对其执行的交互。
表3
Figure BDA0002425066820001732
Figure BDA0002425066820001741
应理解,可以维护和/或存储关于环境、对象和交互和/或上面表3中未示出的其他字段的不同和/或额外数据。在一些实施例中,与具体环境或环境类型有关的数据(例如,模板)包括例如对象(例如,对象模板)和为其配置的交互,其可以存储在机器人辅助环境5002、云计算系统5006、机器人助手管理系统5004和/或一个或多个第三方系统5008的存储器中。每组环境数据都可以存储和/或称为环境库。可以将环境库下载到机器人助手5002r的存储器中,从而使处理器(例如,高层级处理器、低层级处理器)可以控制或命令机器人助手5002r的部件(例如,末端执行器)执行所需的交互。如下面进一步详细描述的,在一些实施例中,在交互之前和/或期间对环境中的对象进行检测、识别、划分和/或分类,以优化交互和总体终点目标的结果。如下面进一步详细描述的,在一些实施例中,对象可以被提供有一个或多个标记,以实现或优化由机器人助手5002r与其进行的交互。
在一些实施例中,为了实现终点目标,在执行被设计来实现目标的交互之前、期间或之后,机器人助手5002r(连同对象、机器人辅助工作空间5002和/或机器人辅助环境)可以与云计算系统5006、机器人助手管理系统5004和/或第三方系统5008经由网络5010进行通信。网络5010可以包括一个或多个网络。网络5010的非限制性示例包括因特网、专用区域网(PAN)、局域网(LAN)、广域网(WAN)、企业专用网络(EPN)、虚拟专用网络(VPN)等。可以使用本领域技术人员已知的各种有线和无线技术、标准和协议来执行经由网络5010的此类通信,包括本领域技术人员已知的Wi-Fi、蓝牙、蜂窝或卫星服务以及短距离和长距离通信。
云计算系统5006是指由生态系统5000的其他系统或设备可访问的共享计算资源和数据构成的基础架构。云计算系统5006的共享计算资源可以包括网络、服务器、存储体,应用、数据和服务。本领域技术人员将理解,云5006中可以包括任何类型的数据和设备。例如,云5006可以存储可以由机器人辅助环境5002(或工作空间5002w、机器人助手5002r等)获得和下载的菜谱或信息库(例如,环境、对象等)。机器人辅助环境5002可以从云计算系统5006请求和/或接收数据或信息。例如,在其中机器人辅助环境5002是机器人厨房的一个示例实施例中,云计算系统5006可以存储(例如,通过或从其他机器人厨房创建和上传的)烹饪菜谱,然后可以下载到环境5002中以执行。
机器人辅助环境5002还可以经由网络5010与机器人助手管理系统5004通信。机器人助手管理系统5004是由机器人辅助管理实体控制或管理的系统或系统集合。这样的实体可以是机器人辅助环境5002或机器人助手5002r的制造商,或者是被配置为例如通过部署更新、扩展、补丁、修复等来提供监督或监管的实体。
第三方系统5008可以是由第三方实体(或个人)管理的任何系统或系统集合,机器人辅助环境5002和/或机器人助手5002r可以与该第三方系统5008通信以实现所需目标。此类第三方实体的非穷举性示例包括开发人员、厨师(例如,对应于厨师工作室厨房)、社交媒体提供商、零售公司、电子商务提供商等。这些实体及其对应的系统5008可用于收集、生成、发送和/或存储数据,诸如社交媒体供稿、产品交付信息、天气、运输状态、插件、小部件、应用以及本领域技术人员已知的其他数据。
机器人助手
如上所述,机器人辅助环境5002包括机器人助手5002r。机器人助手5002r可以部署在各种工作空间5002w(或环境5002)中,并且可以以不同的结构配置来部署。例如,图180A至图180D示出了根据示例性实施例的机器人助手的各种应用的视图。如图180A-180D所示,示出了机器人助手5002r的各种示例性配置,其中机器人助手5002r被部署在厨房工作空间(图180A)、研究室或实验室(图180B)、仓库(图180C)和沐浴室或浴室(图180D)。每个环境都包括机器人助手5002r可以与之交互和/或机器人5002r可以操纵的对象,包括例如碗和盘子、长柄杓、灯泡、烧杯、架子、盒子、浴盆、水龙头和肥皂。
机器人助手5002r可以由单个连续的身体或结构组成,也可以由拆卸的或可拆卸的组件组成。机器人助手5002r还可包括或具有远离机器人助手5002r的其他部分或身体定位的部分。例如,如结合仓库环境5002w-C的图180A中所示,机器人助手5002r可以具有类似于或近似于人体等的单个连续身体(例如,躯干、手臂、头部等)。另一方面,在一些实施例中,机器人助手5002r可以由不类似于人体的、彼此不附接的多个部分构成(例如,独立的机器臂,如分别结合厨房、研究室和沐浴室工作空间5002w-A、5002w-B和5002w-D的图180A中所示),和/或可以在物理上位于机器人辅助环境5002的不同区域。
在一些实施例中,机器人助手5002r可以被配置或编程为仅与特定的机器人辅助环境5002和/或工作空间5002w或在其内工作。例如,机器人助手5002r可以部分地或全部地(例如,固定地、可移动地和/或可消除地)附接到机器人辅助环境5002或在机器人辅助环境5002内。在一些实施例中,如本文所述,机器人助手5002r的部分可以附接或固定至机器人辅助环境5002的一个或多个区域处的轨道、致动器等(例如,图7B、7G)。另一方面,在一些实施例中,机器人助手5002r可以是独立式的,使得它可以根据需要在机器人辅助环境5002内自由、独立地移动,以执行其期望的交互。如本领域技术人员已知的,可以针对或基于诸如要在其中部署机器人助手5002r的机器人辅助环境5002的类型以及将使用机器人助手5002r的交互和目标的因素,来设计机器人助手5002r的配置(例如,附接的、拆卸的、单个或多个不同的部分等)。例如,机器人助手5002r可以被编程或配置为例如在具体类型的环境中或与具体的对象或工作空间集合起作用。可以从任何来源获得用于编程或配置机器人助手5002r的数据或信息库(例如,环境库),包括例如通过从云计算系统5006下载而获得的数据或信息库。以这种方式,机器人助手可以根据需要进行编程和重新编程(或配置和重新配置)。此外,在一些实施例中,在旨在使机器人助手在有限区域内执行交互的环境中,机器人助手5002r可以在位置上被配置为固定或附接至该区域附近,以使得能够执行那些交互。另一方面,如果环境很大和/或环境内的交互发生在环境的不同区域,则可以将机器人助手5002r设计为可围绕该环境自由而独立地移动。
此外,机器人助手5002r的解剖结构和/或结构可以根据其预期目的、目标和/或对应环境而改变和配置。图181示出了根据示例性实施例的机器人助手(例如,机器人助手5002r)的架构。如图所示,机器人助手5002r包括机器人解剖结构5002r-1、处理器5002r-2、存储器5002r-3和传感器5002r-4,现在将分别对其进行详细描述。应当理解,如本领域技术人员所知,解剖部件、处理器、存储器和传感器的数量和类型以及它们之间的连接不限于图181的示例性实施例中所示的那些。相反,可以将数量和类型及其连接配置为最佳或必要的。例如,尽管本文中未示出,倘若这样的配置合适,则解剖结构5002r-1可以包括作为末端执行器的一部分的手指,或者可以仅包括单个末端执行器。如下所述,在一些实施例中,机器人助手5002r的部件或组件协作、合作和/或共同交互以形成机器人助手的子系统,诸如视觉子系统、导航子系统(或“模块”)等等。
示例性机器人解剖结构5002r-1包括头部5002r-1a、躯干5002r-1b、末端执行器5002r-1c、…、和末端执行器5002r-1n。再次,应理解,机器人解剖结构5002r-1的部分的数量和类型以及它们之间的物理和/或逻辑(例如,通信、软件、非有形的)连接可以与所示出的示例不同。在一些实施例中,头部5002r-1a指代机器人助手5002r的上部;躯干5002r-1b指代机器人助手5002r远离头部5002r-1延伸并且末端执行器5002r-1c和5002r-1n连接到其的部分(例如,直接或通过另一部分(例如,臂))。
机器人解剖结构5002r-1的这些部分中的每一个都可以具有或连接到(物理地和/或逻辑地)处理器5002r-2、存储器5002r-3和/或传感器5002r-4(和/或在图181中未示出的如本领域技术人员已知的其他组件、系统、子系统)中的一个或多个。例如,头部可以具有布置在其中的摄像机型传感器(例如5002r-4a),并且该传感器连接到可以存储感测或捕获图像的存储器(例如5002r-3a)。作为另一个示例,躯干5002r-1b可以通信地耦接至驱动机器人助手5002r躯干的角度、旋转、运动等的处理器(例如5002r-2a)。
在一些实施例中,末端执行器5002r-1c和/或5002r-1n(有时在本文中可互换地称为“操纵器”)是指机器人助手5002r中被配置和/或设计为与环境中的对象交互的部分,如以下进一步详细描述的。末端执行器远离躯干5002r-1b延伸和/或布置,并且直接或间接地物理连接到其上。也就是说,在一些实施例中,末端执行器可以指机器人助手5002r中相对于机器人助手5002r的躯干5002r-1b布置在最远位置的一组部分(例如,机器人的肩膀、手臂、手腕、手、手掌、手指、抓爪和/或与其连接的对象)或单个部分(例如,抓爪)。在一些实施例中,末端执行器可以直接连接到躯干5002r-1b,或者可以通过另一部分或部分集合间接连接到躯干5002r-1b,诸如通过不被视为末端执行器一部分的手臂连接到躯干5002r-1b的抓爪型末端执行器5002r-1c。应理解,末端执行器(例如5002r-1c和5002r-1n)的配置(例如,方面、设计、结构、目的、材料、大小、功能等)可以在一个与另一个之间改变为对于每个它们各自的目标而言是最佳或必需的配置,例如,一个末端执行器可以具有五个手指,而另一个末端执行器可以具有两个手指。在一些实施例中,末端执行器是指具有一个或多个机器手指、手掌和手腕的手。
处理器5002r-2a、5002r-2b和5002r-2n(在本文中统称为“5002r-2”)是指物理或逻辑上连接至机器人助手5002r的处理器。例如,处理器5002r-2中的一个可以相对于物理机器人助手5002r和/或其解剖结构5002r-1而远程定位(例如,服务器、云),而处理器5002r-2中的另一个可以嵌入和/或物理地布置在机器人助手5002r和/或其解剖结构5002r-1上或之中。应当理解,尽管在图181中示出了处理器5002r-2位于机器人解剖结构5002r-1的外部,然而该处理器5002r-2可以相对于该解剖结构而内部、外部或远程设置。此外,应当理解,处理器5002r-2可以被配置为驱动和/或操作整个机器人解剖结构和/或其部分或部件,如下面进一步详细描述的。处理器5002r-2可以是或包括中央处理单元(CPU)、图形处理单元(GPU)或本领域技术人员已知的任何类型的处理设备。
在一些实施例中,处理器5002r-2可以包括高层级处理器和/或低层级处理器。出于说明的目的,在图181中,处理器5002r-2a是高层级处理器,并且处理器5002r-2b是低层级处理器。可以将高层级处理器5002r-2a称为或视为机器人助手5002r的主处理器,而将低层级处理器5002r-2b称为或视为对应于机器人助手5002r的具体方面或部分的嵌入式处理器。应当理解,尽管有时结合机器人助手5002r的具体部分(例如,末端执行器)来引用术语“嵌入式处理器”,但是这种低层级的“嵌入式”处理器不需要设置在其相应部分内(例如,末端执行器)。即,驱动或控制末端执行器的嵌入式处理器可以部署在嵌入式处理器上或之中、部署在机器人解剖结构的另一部分上或之中,或者部署在机器人解剖结构的外部。还应该理解,机器人助手5002r可以包括多个主处理器。每个主处理器不需要驱动整个机器人助手,而是可以被配置为监视、监督或管理其他功能、过程或组件(例如,低层级处理器)。
在一些实施例中,高层级处理器5002r-2a可以被配置为例如接收、生成和/或直接执行过程或算法,诸如可以对应于菜谱的算法(例如,交互算法)。例如,在一些实施例中,高层级处理器5002r-2a生成或获得(例如,下载)算法(例如,交互算法)。该算法可以对应于菜谱或过程的一部分或全部。该算法由要被执行以执行交互的命令(或指令)构成。基于该算法,高层级处理器5002r-2a命令或将命令发送到适当的低层级处理器5002r-2b(或多个低层级处理器)。低层级处理器5002r-2b执行从高层级处理器5002r-2a接收或由高层级处理器5002r-2a命令的命令。在一些实施例中,为了执行命令,低层级处理器5002r-2b例如通过使本地驱动器单元操作运动链或其他解剖结构的(一个或多个)部分的组件来控制其对应的(一个或多个)部分,诸如末端执行器。。
在一些实施例中,命令的执行可以由高层级处理器5002r-2a执行或与其结合来执行。因此,与每个处理器5002r-2相对应或由其控制的其他组件或子系统(例如,存储器、传感器)可以被同步或通信地耦接,以在处理器5002r-2之间提供准确而有效的交互。例如,在一些实施例中,存储器5002r-3a和5002r-3b可以分别对应于高层级处理器5002r-2a和低层级处理器5002r-2b。因此,这两个存储器可以相互映射或彼此映射以增强处理。处理器5002r-2还可以共享数据,诸如关于定义机器人辅助工作空间(例如,机器人辅助工作空间5002w)的工作空间模型的信息。这样的信息可以包括例如关于工作空间中的对象的数据,包括它们的位置、大小、类型、材料、重力方向、重量、速度、预期位置等。使用该信息,对应于机器人解剖结构5002r-1的特定部分(例如,末端执行器5002r-1c)的低层级处理器5002r-2b可以例如通过避免碰撞来控制该部分与对象进行更有效的交互或操纵。此外,如本文中进一步详细描述的,工作空间数据(例如,工作空间模型)可以被存储和更新以提供增强的学习能力,用于训练机器人助手5002r执行针对每个对象、交互、条件等的最佳活动。例如,可以(例如,利用由传感器5002r-4获得的数据)生成、更新和/或存储工作空间数据和/或工作空间模型,如本文进一步详细描述的。
如本文所述,工作空间数据(例如,工作空间模型)和/或环境数据(例如,环境库)可以被存储在远程存储器(例如,云计算系统5006)和/或机器人助手5002r的存储器5002r-3之一中。机器人助手5002r的存储器5002r-3包括存储器5002r-3a、5002r-3b和5002r-3n(在本文中统称为“5002r-3”)。这些存储器5002r-3是指物理上或逻辑上连接到机器人助手5002r的存储器。例如,存储器5002r-3中的一个可以相对于物理机器人助手5002r和/或其解剖结构5002r-1远程定位(例如,服务器、云),而存储器5002r-3中的另一个可以嵌入和/或物理地布置在机器人助手5002r和/或其解剖结构5002r-1上或之中。应当理解,尽管在图181中示出了存储器5002r-3在机器人解剖结构5002r-1的外部,但存储器5002r-3可以相对于该解剖结构内部、外部或远程设置。存储器5002r-3可以包括易失性存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、零电容器随机存取存储器(Z-RAM)、高层级随机存取存储器(A-RAM),和/或非易失性存储器(例如,只读存储器(ROM)、闪存、存储设备等),如本领域技术人员已知的那样。
仍然参考图181,传感器5002r-4可以包括被配置为检测或收集信息并将该信息发送到其他组件的任何类型的设备、模块或子系统。非穷尽性、说明性类型的传感器包括被配置为测量温度、光、水位、湿度、速度、压力、湿度、质量、粘度以及本领域技术人员已知的其他类型的数据的设备。在一些实施例中,传感器5002r-4可以包括摄像机。摄像机型传感器可以是二维(2D)摄像机、三维(3D)摄像机、RGB摄像机、立体摄像机、多模式感测设备和/或具有集成灯、结构灯和/或激光传感器的摄像机等等,如本领域技术人员已知的那样。应理解,在一些实施例中,传感器可以包括或具有嵌入其中的多个感测设备或功能。例如,摄像机型传感器不仅可以包括用于静态或动态图像捕获的功能,还可以包括用于测量速度、运动、照明等的功能。而且,诸如摄像机之类的传感器可以具有与其相关联的其他组件和/或特征。如以下进一步详细描述的,机器人助手5002r的一部分(例如,机器臂、末端执行器)可以包括一个或多个传感器以帮助命令的执行,诸如一个或多个具有结构灯的摄像机。
图182A至图182F示出了根据示例性实施例的配备有传感器的机器臂。应当理解,机器人助手5002r的末端执行器可以指手指、抓爪、手、手掌、手腕和/或手臂中的一个或其组合。出于说明的目的,在图182A至182F中,所示的机器臂被认为是末端执行器。
图182A示出了末端执行器5002r-1c的示例性实施例,该末端执行器是机器臂。如图所示,末端执行器5002r-1c包括多个摄像机型传感器,如图182C中更清楚地示出的那样,其可以各自包括内置照明(例如灯、结构灯),以照射相应摄像机的视野。摄像机被配置为最佳地成像或可视化对象,即手动搅拌器。图182A中所示的末端执行器5002r-1c的摄像机包括摄像机5002r-4a和5002r-4b。例如,如图182A所示,可以将摄像机5002r-4a设置在末端执行器5002r-1c的机器手的手掌上。摄像机5002r-4a可用于在执行动作(例如,抓取)时观察或成像位于手掌前面的对象。摄像机5002r-4a的视野(和/或通过其嵌入式灯的照射)被示为视野f-4a。此外,如图182A所示,可以将摄像机5002r-4b设置为(例如,垂直地)远离手腕而突出,并且其定位为观察或成像(和/或照射)对象的另一角度或视角或者手与对象之间的交互区域。摄像机5002r-4b的视野(和/或通过其嵌入式灯的照射)被示为视野f-4b。诸如位于机器人手腕上的摄像机5002r-4b之类的摄像机可以位于可旋转部分或组件上,该部分或组件使摄像机能够相对于手臂、手腕和/或手旋转多达360度。以这种方式,可以根据需要对摄像机5002r-4b进行定位和重新定位,以成像或捕获交互区域和/或对象的期望视角。
图182B示出了末端执行器5002r-1c的示例性实施例,该末端执行器是机器臂。如图所示,末端执行器5002r-1c包括多个摄像机型传感器,所述传感器包括摄像机5002r-4b和5002r-4c。摄像机5002r-4b定位为远离末端执行器5002r-1c的手腕而突出。如上所述,这样的摄像机使得能够从与机器臂的典型或普通结构或解剖结构不同的角度或视角对对象或区域进行成像和/或照射。摄像机5002r-4c位于末端执行器的手腕上。与摄像机5002r-4b相反,摄像机5002r-4c不从手腕突出。摄像机5002r-4c的视野(和/或通过其嵌入式灯的照射)被示为视野f-4c。应当理解,摄像机5002r-4b和5002r-4c提供了额外的成像和照明,这在诸如图182.B所示的手掌(以及相应地其嵌入式摄像机)被其正在抓取的对象阻挡的情况下可能是有用的。
图182C示出了末端执行器5002r-1c的另一示例性实施方式,该末端执行器是机器臂。如图所示,末端执行器包括多个摄像机型传感器,所述传感器包括摄像机5002r-4b和5002r-4c,类似于图182B所示的摄像机。然而,如图182C所示,摄像机5002r-4b可以用于成像和/或照射有时摄像机5002r-4c和/或嵌入在机器手的手掌中的摄像机无法访问的对象或区域,尤其是在机器手正被使用和/或以限制其他摄像机视野的方式倾斜的情况下。图182C中的摄像机5002r-4b的视野(和/或通过其嵌入式灯的照射)被示为视野f-4b。同样如图182C所示,摄像机5002r-4b(和/或本文描述的其他摄像机)的输出包括摄像机(例如,镜头),其在两侧均具有灯(例如,灯,结构灯)。
图182D示出了末端执行器的另一个示例性实施例,该末端执行器是机器臂,其与屏幕或类似用户界面上的按钮交互。
图182E示出了末端执行器5002r-1c(例如,机器臂)的进一步示例,该末端执行器5002r-1c包括定位在机器人手腕和/或手掌上的摄像机型传感器(例如,5002r-4a、5002r-4b、5002r-4c)。如本文所述,摄像机型传感器还可以包括灯或在其中嵌入灯,以照射相应摄像机视野中的区域或对象。如图所示,每个摄像机可以具有不同的视野(例如,f-4a、f-4b和f-4c)以成像和/或照射区域或对象。例如,借助于这种布置,通过避免由不完整或欠佳的成像引起的错误,可以执行最佳的成像和交互,并且可以实现菜谱的更准确执行。
因此,如图182A至182E所示,位于或布置在机器人助手5002r的机器人末端执行器上的手、手腕和/或以其他方式的摄像机型传感器有利于:(1)当对象和机器人助手或机器人末端执行器(或固定在机器人末端执行器中的对象)之间的交互区域不清楚或看不见时,执行观察或成像;以及(2)识别定义了交互过程是成功还是失败的控制点,以执行对最终交互成功的确认等等。
在一些实施例中,传感器5002r-4可以包括压力型传感器。图182F(1)至182F(4)(统称为“182F”)示出了包括压力型传感器的末端执行器5002r-1c(即机器臂)的示例。在图182F(1)中,压力传感器布置在机器臂5002r-1c的手腕上。压力传感器5002r-4d被配置为感测和/或测量多轴(例如,六轴)力和/或转矩。例如,在图182F中,末端执行器5002r-1c的机器手在抓取搅拌器型对象时向下移动。当搅拌器对象接触另一个对象或表面时,如图182F所示,压力传感器5002r-4d可以识别施加到机器手的相反的(例如,向上的)力。如本领域技术人员所公知的,由压力传感器5002r-4d识别的力的大小和方向使机器人助手5002r能够识别在交互期间手和/或其正在与之交互的内容物何时接触和/或到达另一对象或表面。在一些实施例中,可以在末端执行器的机器手的手掌上设置压力传感器和感测区域,如图182F(2)至182F(4)所示。
尽管未结合图181示出,但机器人助手5002r可以包括本领域技术人员已知的其他特征、组件、部分和/或模块。例如,机器人助手5002r和/或其解剖结构5002r-1可包括形成或有助于机器人解剖结构5002r-1的结构的运动链。运动链可以具有任一或多个自由度,并且被配置为允许解剖结构5002r-1的关节和部分提供纯粹的、类似人的活动和旋转。如本领域技术人员所知,运动链可由处理器5002r-2和/或本地驱动器单元驱动或控制,所述处理器和/或本地驱动器单元指示其操作(例如,位置、速度、加速度)。
此外,尽管也未结合图181示出,但在一些实施例中,机器人助手5002r可以被配置为与触摸屏和其他类似技术(例如,触控板、触摸表面)交互。触摸屏和类似的触摸表面是指允许机器人或机器人助手通过在其上执行的触摸或接触操作而与另一系统(例如,计算机)交互的界面。这些界面可以是屏幕或显示器,除了被配置为经由触摸或接触接收输入之外,其还可以显示或输出信息。在一些实施例中,触摸屏或触摸表面可以是电容性的,这意味着它们依靠电特性来检测其上的接触或触摸。即,为了检测接触,电容式触摸屏或表面识别或感测在其上的区域(例如,坐标)处发生的电压变化(例如,下降)。与之关联的计算设备和/或处理器识别与屏幕或表面的接触并且可以执行适当的对应动作。
传统上,人类可以使用例如手指轻松地与电容式屏幕或表面进行交互,其中手指可以将少量电荷传输到触摸屏或表面。其他工具(诸如触控笔和类似的导电设备)也可以被配置为将电荷从用户的手通过触控笔传递到触摸屏。在一些实施例中,机器人助手5002r和/或其末端执行器(例如5002r-1c、5002r-1n)可包括诸如尖端(例如,指尖)之类的端部,其被配置为将电荷传输到电容式触摸屏或表面上。可以例如从被包括在或耦接到机器人助手5002r和/或其末端执行器的电动机电端子、电池或其他电源获得电荷。末端执行器5002r-1c和/或5002r-1n的部分可以由具有导电特性的材料或涂料制成,或以具有导电特性的材料或涂料覆盖,以使电荷从其来源穿过末端执行器及其电容性部分(例如指尖)直至触摸屏或表面上。借助于这种配置,机器人助手5002r可以像人类一样与电容式触摸屏和表面进行交互,所述电容式触摸屏和表面诸如移动设备(例如,iPhone、iPad)、可穿戴设备(例如,iWatch)、膝上型电脑,或任何其他在部署有机器人助手5002r的整个环境5002中提供的触摸屏或触摸表面(例如,在虚拟或计算机控制的厨房的抽屉上提供的屏幕)。
应当理解,机器人助手5002r可以执行命令和指令以执行菜谱的终点目标。可以使用机器人解剖结构5002r-2、处理器5002r-2、存储器5002r-3、传感器5002r-4和/或未在图181中示出的机器人助手5002r的其他软件或硬件组件来执行命令和指令的执行,诸如本文所述的运动链。如本领域技术人员已知的,机器人助手5002r可以与逻辑或物理地连接到其上的其他系统、子系统或组件协作、协调和/或交互,包括云计算系统5006、机器人助手管理系统5004、第三方系统5008和/或机器人辅助环境5002和/或机器人辅助工作空间5002w。
例如,机器人辅助环境5002和/或机器人辅助工作空间5002w可以包括处理器、存储器、传感器及其部分或组件和/或与之相关联,如上所述,其可以与机器人助手5002r通信和/或交互。在一些实施例中,机器人辅助环境5002可以包括一个或多个摄像机作为其传感器的一部分。摄像机可以(1)是本领域技术人员已知的任何类型的摄像机;(2)是固定的或静态的;(3)被配置为在由机器人助手执行的菜谱执行过程中捕获静止或运动图像。所捕获的数据(例如,图像)可以与机器人助手5002r实时共享,以提供更准确的命令执行。在一个说明性实施例中,机器人辅助环境5002的摄像机可以用于识别不能被机器人助手5002r的摄像机容易或有效地成像的对象的一部分的位置。这样,两个像机可以一起工作,以确保最佳地知道对象的位置和其他特性,从而可以执行与该对象的完美或近乎完美的交互。机器人辅助环境5002的其他传感器或组件可以用来实现命令和菜谱的这种最佳执行。
在一些实施例中,机器人助手5002r、机器人辅助工作空间5002w和/或机器人环境5002的方面进行协作以形成子系统或模块,该子系统或模块被配置为将机器人助手5002r定位在期望的位置,扫描环境或工作空间以检测其中的对象及其特性,和/或例如通过与对象进行交互或操纵对象来改变环境或工作空间。这些模块和/或子系统的示例包括导航模块和视觉子系统(例如,通用、嵌入式),下面将对其进行详细描述。
使用机器人助手系统进行交互
如上所述,机器人助手系统5002r可被部署在机器人辅助环境5002内以执行菜谱,该菜谱是被配置为实现期望对象的一系列交互。例如,菜谱可以是在汽车商店中被配置为实现更换轮胎的目标的一系列交互,或者可以是在厨房中实现烹饪所需菜肴的目标的一系列交互。应该理解的是,交互是指由机器人助手5002r对机器人辅助环境5002和/或工作空间5002w中的对象或利用其等等执行的动作或操纵。图183是示出根据示例性实施例的使用机器人助手5002r执行交互的过程的流程图6000。在一些实施例中,机器人助手系统的典型应用可以包括例如以下三个步骤:进入工作空间(厨房、浴室、仓库等),扫描工作空间(检测对象及其属性)以及根据菜谱改变工作空间(操纵对象)。
如图所示,在步骤6052,机器人助手5002r导航到要在其中执行菜谱的期望或目标环境或工作空间。在参考图183描述的示例实施例中,机器人助理5002r导航到机器人家庭型环境5002中的机器人厨房型工作空间5002w。例如,机器人家庭环境5002可以包括多个房间,诸如浴室、客厅和卧室,因此,在步骤6050,机器人助手5002r可以从那些房间之一导航到厨房,以便执行菜谱。在参考图183描述的示例实施例中,机器人助手5002r用于执行烹饪期望菜肴(例如,鸡肉馅饼)的菜谱。
到目标环境5002和工作空间5002w的导航可以由机器人助手本地(例如,经由触摸屏或音频命令)接收的、远程(例如,从客户端系统、第三方系统等)接收的、或从机器人助手的内部处理器接收的命令触发,其识别执行菜谱的需要(例如,根据预定时间表)。响应于这样的触发,机器人助理5002r将其自身移动和/或定位到环境5002内的最佳区域。这样的最佳区域可以是预定或预先配置的位置(例如,位置0,在下面进一步详细描述),其是机器人助手的默认起点。使用默认位置使机器人助手5002r能够具有参考起点,这可以提供更准确的命令执行。
如上所述,机器人助手5002r可以是独立式且可独立移动的结构(例如,车轮上的车身),或是可移动地附接至环境或工作空间的结构(例如,连接至多轨道和致动器系统的机器人部分)。在任何一种结构情况下,机器人助手5002r都可以导航到期望或目标环境。在一些实施例中,机器人助手5002包括导航模块,其可用于导航到环境5002和/或工作空间5002w中的期望位置。
在一些实施例中,导航模块由机器人助手5002r的一个或多个软件和硬件组件构成。例如,可用于导航到环境5002或工作空间5002w中的位置的导航模块采用机器人绘制和导航算法,包括本领域技术人员已知的同步定位和绘制(SLAM)和场景识别(或划分、分类)算法等等,其旨在执行或帮助机器人进行绘制和导航等等。例如,在步骤6050,机器人助手5002r通过执行SLAM算法等来生成或近似得到环境5002的地图,并定位自身(例如,其位置)或规划其在地图中的位置,从而导航至环境5002中的工作空间5002w。此外,使用SLAM算法,导航模块使机器人助手5002r能够相对于或关于环境5002或工作空间5002w内的独特视觉特征来识别其位置,并规划其相对于地图内那些视觉特征的活动。仍然参考步骤6050,除了导航和定位算法之外,机器人助手5002r还可以采用场景识别算法,通过分析检测到的环境图像来识别和/或理解环境5002内的场景或视图,和/或确认机器人助手502r实现或到达其期望位置。
在一些实施例中,可以使用神经网络(例如,卷积神经网络)来训练、执行和重新训练由机器人助手的导航模块执行的绘制、定位和场景识别。可以使用与工作空间5002w和环境5000相对应的示例性或模型工作空间或环境来执行此类神经网络的训练。
应当理解,机器人助手5002r的导航模块可以包括和/或采用机器人助手5002r的传感器5002r-4中的一个或多个,或者环境5002和/或工作空间5002w的传感器,以允许机器人助手5002r导航到期望位置或目标位置。也就是说,例如,导航模块可以使用位置传感器和/或摄像机来例如识别机器人助手5002r的位置,并且还可以使用激光器和/或摄像机来捕获环境“场景”的图像以执行场景识识别。使用该捕获或感测到的数据,机器人助手5002r的导航模块因此可以执行用于将机器人助手5002r导航到环境5002内工作空间5002w中的目标位置的必需算法(例如,SLAM、场景辨识)。
在步骤6052,机器人助手5002r识别工作空间5002w和/或环境5002的具体实例和/或类型,在步骤6050机器人助手导航到该工作空间5002w和/或环境5002以执行菜谱。应当理解,步骤6052的识别可以在步骤6050的导航之前、同时或之后发生。例如,机器人助手5002r可以使用接收或检索的信息来识别工作空间5002w和/或环境5002的实例或类型,以便触发步骤6050的导航。如上所述,这样的信息可以包括从客户端、第三方系统等接收的请求。因此,此类信息可以识别与执行菜谱的请求相关联的工作空间和环境。例如,该请求可以识别工作空间5002w是RoboKitchen型号1000。另一方面,在步骤6050的导航期间或之后,机器人助手可以识别其导航所经过的环境和工作空间是RoboKitchen(型号1000)。如下所述,该信息可以用于更有效地和/或高效地识别机器人助手可以与之交互的对象。
在步骤6054,机器人助手5002r识别环境5002和/或工作空间5002w中的对象,并且因此机器人助手5002r可以与之通信。可以(1)基于在步骤6052识别的环境和工作空间的实例或类型,和/或(2)基于对工作空间5002w的扫描,来执行步骤6054的对象识别。在一些实施例中,在步骤6054中,使用机器人助手5002r的视觉子系统等,诸如通用视觉子系统(在下面进一步详细描述),来执行对象识别。如下面进一步详细描述的,通用视觉子系统可以包括或使用图181中所示的机器人助手5002r的一个或多个组件和/或生态系统5000中示出的其他系统或组件,诸如摄像机和其他传感器、存储和处理器。应当理解,在一些实施例中,基于由通用视觉子系统执行的扫描来执行步骤6054的对象识别,该子系统可以利用已知对象库来更准确和/或高效地识别对象。
根据一个示例性实施例,图184示出了图181中示出的生态系统5000的部分的架构图。更具体地,图184示出了云计算系统5006和机器人助手5002r用于在步骤6054中识别对象等的方面,以及组件和它们之间的交互。如图所示,云计算系统5006可以存储环境(和/或工作空间)的库,例如包括环境5002的库定义。环境5002的库定义(以及在环境的库中定义的任何其他环境)可以包括本领域技术人员已知的描述和/或以其他方式与环境5002相关联的任何数据。例如,结合包括环境5002的定义在内的每个环境定义,云计算系统5006存储已知对象的库(“对象库”)(5006-1)和菜谱的库(“菜谱库”)5006-2。已知对象的库5006-1包括环境5002中标准或通常已知的对象的数据定义。菜谱库包括可以在环境5002中执行或执行的菜谱的数据定义。
仍然参考图184,机器人助手5002r的示例性方面可以包括至少一个摄像机5002r-4a(和/或其他传感器)、通用视觉子系统5002r-5、工作空间模型5002w-1、操纵控制模块5002r-7,和至少一个操纵器(例如,末端执行器)5002r-1c。通用视觉子系统5002r-5(如果在下面进一步详细说明,则对其进行描述)是机器人助手5002r的子系统,该子系统由硬件和/或软件构成,并且被配置为可视化、成像和/或检测工作空间或环境中的对象等等。工作空间模型5002w-1是工作空间5002w的数据定义,其可以由机器人助手5002w实时创建和更新,以便容易地了解和/或理解该工作空间的部件和过程,从而例如进行质量控制。例如,工作空间5002w的数据定义可以包括被标识为存在于环境5002中的对象的数据定义的汇编。操纵控制模块5002r-7可以是被配置为识别要执行的菜谱并生成交互算法的硬件和/或软件的组合,所述算法定义了要命令机器人助手5002r的方式,以便准确且成功地执行菜谱。例如,操纵控制模块5002r-7能够识别可以或应该执行哪些交互,以便尽可能高效且有效地执行菜谱的每个命令。操纵器5002r1-c可以是机器人助手5002r或其解剖结构5002r-1的一部分,诸如末端执行器5002r1-c,其可以用于操纵环境5002中的对象和/或与之交互。操纵器5002r-1c可以包括对应和/或嵌入的视觉子系统5002r-1c-A和/或摄像机(或其他传感器)5002r-1c-B。工作空间5002w也在图184中示出,其为机器人助手5002r要在其中或利用其执行菜谱的工作空间。
仍然参考图183,基于环境5002和/或工作空间5002w的实例/类型,和/或通过扫描工作空间5002w以检测其中的对象,来识别与环境5002和/或工作空间5002w相对应的对象。环境和/或工作空间可以由已知对象组成或包括已知对象,所述已知对象是始终或通常能够在环境5002w或工作空间5002w中找到的那些对象。例如,在厨房类型的环境或工作空间中,刀可以是“已知”对象,这是因为通常在厨房中能够找到一把刀,而如果在厨房中检测到一卷绳子,则由于通常在厨房中找不到它,因此将其视为“未知”对象。因此,在一些实施例中,在步骤6054,机器人助手6054可以识别在环境5002和/或工作空间5002w中已知的对象。
此外,在步骤6054,可以使用机器人助手5002r的通用视觉子系统5002r-5来识别对象,所述子系统用于扫描环境5002和/或工作空间5002w,并识别实际(而不是预期)存在于其中的对象。由通用视觉子系统5002r-5识别出的对象可用于补充和/或进一步缩小“已知”对象列表,如上所述,“已知”对象是基于在步骤6052识别出的环境和/或工作空间的具体实例或类型而被识别出的。即,由通用视觉子系统5002r-5的扫描识别出的对象可以用于通过从已知对象列表中排除在扫描时实际上没有在环境5002和/或工作空间5002w中找到,而是已知和/或预期存在于其中的对象来削减已知对象列表。可替代地,可以通过向已知对象列表添加由通用视觉子系统5002r-5的扫描识别出的任何对象来补充已知对象列表。这样的对象可以是在环境5002和/或工作空间5002w中不期望找到,但是在扫描期间被实际识别出的对象(例如,通过手动插入或引入到环境5002和/或工作空间5002w中)。通过使用这两种技术来识别对象的标识,生成了机器人助手5002r与之交互的最佳对象列表。此外,通过参考预生成的已知对象列表,可以避免或减少由于通用视觉子系统5002r-5的不完整或低于最佳成像而导致的错误(例如,遗漏或误识别的对象)。
如图184所示,通用视觉子系统5002r-5包括或可以使用摄像机5002r-4a(或多个摄像机和/或其他传感器)来捕获图像并由此可视化环境5002和/或工作空间5002w。通用视觉子系统5002r-5可以基于所获得的图像来识别对象,由此确定那些对象实际存在于环境5002和/或工作空间5002w中。现在进一步详细描述通用视觉子系统5002r-5。
图185示出了根据示例性实施例的通用视觉子系统5002r-5的架构。如图所示,通用视觉子系统5002r-5由被配置为提供成像、对象检测和对象分析的模块和组件(例如摄像机)构成,以用于识别环境5002和/或工作空间5002w内的对象的目的。通用视觉子系统5002r-5的模块和系统可以利用存储在云计算系统5006中的已知对象(和表面)的库来更准确或高效地识别对象。可以在工作空间模型5002w-1中存储有关识别出的对象的信息,如上所述,工作空间模型5002w-1是工作空间5002的数据定义。
仍然参考图185,属于或对应于通用视觉子系统5002r-5的模块可以包括:摄像机校准模块5002r-5-1、校正和拼接模块5002r-5-2、标记检测模块5002r-5-3、对象检测模块5002r-5-4、分割模块5002r-5-5、轮廓分析模块5002r-5-6和质量检查模块5002r-5-7。这些模块可以由存储在一个或多个存储器5002r-3中并由机器人助手5002r的一个或多个存储器5002r-2执行的代码、逻辑等等组成。虽然每个模块被配置用于具体目的,但是这些模块被设计为检测对象和/或分析对象,以便提供关于那些对象的信息(例如,特性)。使用所示的摄像机5002r-4执行这些模块的对象检测和/或分析以成像所示的工作空间5002w。
在一些实施例中,图185中所示的摄像机5002r-4可以被视为(专门或非专门地)对应于通用视觉子系统5002r-5的摄像机系统。应该理解的是,尽管图185仅示出了三个摄像机,通用子系统5002r-5和/或摄像机系统可以包括任何数量的摄像机或与之关联。在一些实施例中,摄像机的数量(和其他特性)可以基于工作空间的大小和/或结构。例如,一个3米乘1米的烹饪表面可能需要至少三个安装在工作空间5002w顶面上方1.2米高的摄像机。因此,摄像机5002r-4可以是嵌入在机器人助手5002r中的摄像机和/或逻辑上与其连接的摄像机(例如,与环境5002和/或工作空间5002w相对应的摄像机)。
摄像机系统也可以说是包括所示的结构灯和平滑灯,其可以被内置或嵌入在摄像机5002r-4中或与其分离。应当理解,灯可以被嵌入在机器人助手5002r中或与机器人助手5002r分离(例如,在逻辑上与其连接)。此外,摄像机系统也可以说是包括所示的摄像机校准模块5002r-5-1以及校正和拼接模块5002r-5-2。
图186A示出了根据示例性实施例的用于使用通用视觉子系统5002r-5来识别对象的架构。如图186A所示,诸如机器人助手5002r的处理器5002r-2a之类的CPU处理图183中步骤6054的对象识别的某些功能,包括摄像机校准、图像校正、图像拼接、标记检测、轮廓分析质量(或场景)检查以及工作空间模型的管理。诸如机器人助手5002r的处理器5002r-2b之类的图形处理单元(GPU)处理图183中步骤6054的对象识别的某些功能,包括对象检测和分割。并且,云计算系统5006包括其自身的组件(例如,处理器、存储器)提供对已知对象的库的储存、管理和访问。
图186B示出了根据示例性实施例的用于识别环境或工作空间中的对象(例如,图183,步骤6054)的过程的序列图7000。图186B中所示的示例性过程7000结合本文所描述的其他附图的特征和方面来描述,包括图185,其示出了示例性通用视觉子系统。如图所示,该过程包括由机器人助手5002r的通用视觉子系统5002r-5和云计算系统5006执行的功能。通用视觉子系统5002r-5包括摄像机5002r-4、CPU 5002r-2a和GPU 5002r-2b和/或与之关联。如本文中所讨论的,摄像机可以包括专门对应于机器人助手5002r的摄像机(例如,嵌入在机器人解剖结构5002r-1中的摄像机)。应当理解,通用视觉子系统5002r-5可以包括图186B中未示出的其他设备、组件和/或子系统和/或与之关联。
在步骤7050,使用摄像机5002r-4捕获工作空间5002w的图像以进行校准。在捕获要用于摄像机校准的图像之前,在工作空间5002w的预定位置上设置或提供棋盘格或棋盘图案(或类似物,如本领域技术人员所知的)。可以在装配在工作空间5002w(例如,其顶面)的图案化标记上形成图案。此外,在一些诸如图185中所示的其中通用视觉子系统5002r-5的摄像机系统包括两个或更多个摄像机的实施例中,摄像机5002r-4被布置用于成像,使得邻近(例如,相邻)摄像机的视野重叠,从而允许图案的至少一部分可以对两个摄像机可视。一旦已经将摄像机5002r-4和5002w配置为用于校准,则在步骤7050获得校准图像。在步骤7052,从摄像机向CPU 5002r-2a发送捕获的校准图像和/或使其可用于CPU 5002r-2a。应当理解,在步骤7050中由摄像机5002r-4执行的图像捕获、在步骤7052中将图像发送至CPU5002r-2a以及通过CPU 5002r-2a对摄像机7054进行校准可以以序列步骤执行,或实时执行,使得当摄像机在步骤7050捕获图像时,“实时”发生步骤7054的校准。
继而,在步骤7054,执行摄像机的校准以提供更准确的成像,使得可以执行菜谱命令的最佳和/或完美执行。即,摄像机校准使得能够将从摄像机5002r-4捕获的图像获得的图像坐标更准确地转换为工作空间5002w的或工作空间5002w中的真实世界坐标。在一些实施例中,通用视觉子系统5002r-5的摄像机校准模块5002r-5-2用于校准摄像机5002r-4。如图所示,摄像机校准模块5002r-5-2可以由CPU 5002r-2a驱动。
在一些实施例中,摄像机5002r-4如下进行校准。CPU 5002r-2a检测在步骤7050所捕获的工作空间5002w的图像中的图案(例如,棋盘格)。此外,CPU 5002r-2a在捕获图像中的所检测的图案中定位内角。内角是棋盘格的四个正方形相遇且不形成布置在工作空间5002w上的棋盘格图案的外边界的一部分的角。对于每个识别到的内角,通用视觉子系统5002r-5识别对应的像素坐标。在一些实施例中,像素坐标指的是捕获图像上与每个内角相对应的像素所在的坐标。换句话说,像素坐标指示棋盘格图案的每个内角在由摄像机500r-4捕获的图像中的位置,如在像素阵列中测量的那样。
仍然参考步骤7054的校准,将真实世界坐标分配给棋盘格图案内角的每个识别出的像素坐标。在一些实施例中,可以从另一系统(例如,存储在云计算系统5006中的环境的库)接收相应的真实世界坐标,和/或可以将其输入到机器人设备5002r和/或通用视觉子系统5002r-5。例如,相应的真实世界坐标可以由系统管理员或维护工程师输入。真实世界坐标指示工作空间5002w上的标记的棋盘格图案内角在空间中的真实世界位置。
使用针对棋盘格图案的每个内角计算出的像素坐标和真实世界坐标,通用视觉子系统5002r-5可以为每个摄像机5002r-4生成和/或计算投影矩阵。因此,投影矩阵使通用视觉子系统5002r-5能够将像素坐标转换为真实世界坐标。因此,在由摄像机5002r-4捕获的图像中观察到的对象的像素坐标位置和其他特性可以被转换为真实世界坐标,以便识别对象在真实世界中的位置(与捕获图像中的位置相反)。
如本文所述,机器人助手5002r可以是独立式且可独立移动的系统,或者可以是固定到工作空间5002w和/或环境5002的其他部分的系统。在一些实施例中,机器人助手5002r的某些部件可以是可自由移动,而其他部件固定到工作空间5002w的部分(和/或成为工作空间的一部分)。然而,在固定了通用视觉子系统5002r-5的摄像机系统的一些实施例中,仅执行一次摄像机5002r-4的校准,然后基于该相同的校准再次使用。否则,如果机器人助手5002r和/或其摄像机5002r-4是可移动的,则每当机器人助手5002r和/或其摄像机5002r-4中的任一改变位置时,都要重复进行摄像机校准。
应当理解的是,一旦已经校准了摄像机和/或不再需要使用用于摄像机校准的棋盘格图案(或类似物),则可以从工作空间5002w中消除该图案。尽管在某些情况下,可能希望在执行初始摄像机校准后立即消除棋盘格图案,但在其他情况下,最好将棋盘格标记保留在工作空间5002w上,以便可以更轻松地执行后续摄像机校准。
通过对摄像机5002r-4进行校准,通用视觉子系统5002r-5可以开始更准确地识别对象。为此,在步骤7056,摄像机5002r-4捕获工作空间5002w(和/或环境5002)的图像,并将这些捕获图像发送到CPU 5002r-2a。图像可以是静止图像,和/或由一系列连续图像构成的视频。尽管图186B的序列图7000仅示出了在步骤7056处捕获图像数据的单次发送,但是应当理解,可以顺序地和/或连续地捕获图像并将其发送到CPU 5002r-2a以进行进一步处理(例如,根据步骤7058至7078)。
在步骤7058,由校正和拼接模块5002r-5-2使用CPU 5002r-2a来校正在步骤7056接收的捕获图像。在一些示例实施例中,对由每个摄像机5002r-4捕获的图像进行校正包括消除图像中的失真、补偿每个摄像机的角度以及本领域技术人员已知的其他校正技术。继而,在步骤7060中,通过校正和拼接模块5002r-5-2将从每个摄像机5002r-4捕获的校正图像拼接在一起,以生成工作空间5002w的组合捕获图像(例如,整个工作空间5002w)。然后将组合捕获图像的X轴和Y轴与工作空间5002w的真实世界X轴和Y轴对齐。因此,工作空间5002w的组合图像上的像素坐标(x,y)可以被变换或转换为对应的(x,y)现实世界坐标。在一些实施例中,像素坐标到真实世界坐标的这种转换可以包括使用在摄像机校准过程期间由校准模块5002r-5-2计算的缩放或比例因子来执行计算。
继而,在步骤7062,由校正和拼接模块5002r-5-2生成的组合(例如,拼接)图像与包括对象检测模块5002r-5的其他模块共享(例如,发送、可用)。以通过检测捕获图像内的对象来识别在工作空间5002w和/或环境5002中对象的存在。此外,在步骤7064,云计算系统5006将存储在其中的已知对象和表面的库发送到通用视觉子系统5002r-5,尤其是发送到GPU 5002r-2b。如上所述,发送到通用视觉子系统5002r-5的已知对象和表面的库可以特定于环境5002和/或工作空间5002w的实例或类型,使得仅发送已知或预期将被识别的对象的数据定义。这些库的传输可以由云计算系统5006发起(例如,推送),或者可以响应于来自GPU 5002r-2b和/或通用视觉子系统5002r-5的请求而发送。应当理解,可以以一次或多次传输来执行已知对象的库的传输,每次或所有传输可以紧接在发起步骤7068的对象检测之前或在其之前的任何时间点发生。
在步骤7066,机器人设备5002r的通用视觉子系统5002r-5的GPU 5002r-2b下载对应于与步骤7064相关联的已知对象和表面的经训练的神经网络或类似数学模型(和权重)。通用视觉子系统5002r-5使用这些神经网络来检测或识别对象。如图185所示,此类模型可以包括用于对象检测的神经网络,诸如卷积神经网络(CNN)、快速卷积神经网络(F-CNN)、仅看一次(you only look once,YOLO)神经网络和单发检测器(SSD)神经网络,以及用于图像分割的神经网络(例如,SegNet)。为了最大化神经网络及其在检测对象和执行图像分割中的应用的准确性和效率,通过仅针对工作空间5002w(和/或环境5002)的已知对象和表面进行训练,为工作空间5002w(和/或环境5002)专门配置下载的神经网络。因此,神经网络不需要考虑工作空间5002w(和/或环境5002)未知的对象或表面。也就是说,有针对性或专用的神经网络(例如,仅针对工作空间和/或环境中的已知对象训练的神经网络)可以通过避免考虑和摒除在环境5002和/或工作空间5002w中未知(并因此不太可能出现)的对象的负担,从而提供更快且更简单的对象识别处理。应当理解,可以从云计算系统5006(如图186B所示)或从生态系统5000的另一组件训练和获得神经网络(和/或其他模型)。可替代地,尽管未在图186B中示出,可以由机器人助手5002r本身来训练和维护神经网络(和/或其他模型)。
继而,在步骤7068,对象检测模块5002r-5-4基于或使用接收和经训练的对象检测神经网络(例如,CNN、F-CNN、YOLO、SSD),使用GPU 5002r-2b来检测组合图像中(因此隐式地在真实世界工作空间5002w和/或环境5002中)的对象。在一些实施例中,对象检测包括在组合图像中辨识与在步骤7064接收的已知对象的库中包括的对象相匹配的对象的存在和/或位置。
此外,在步骤7070,分割模块5002r-5-5使用GPU 5002r-2b对组合图像的部分进行分割,并基于或使用经训练的神经网络(诸如在步骤7066接收到的SegNet)将估计的类型或类别分配给该分割部分。应该理解,在步骤7070,工作空间5002w的组合图像被分割成像素,尽管如本领域技术人员已知的,可以使用除像素之外的测量单位来执行分割。仍然参考步骤7070,经训练的神经网络通过确定和/或近似得到每个像素的内容物所对应的类型或类别,来分析组合图像的每个分割部分以便进行划分。例如,可以分析像素数据的内容物或特性,以确定它们是否相似于已知对象(例如,类别:“刀”)。在一些实施例中,如果像素与工作空间的表面最相似,则不能被分类为与已知对象相对应的像素可以被分类为“表面”,和/或如果无法准确分类像素的内容物,则不能被分类为与已知对象相对应的像素可以被分类为“未知”。应当理解,步骤7068和7070的检测和分割可以同时或顺序地执行(以认为最佳的任何顺序)。
继而,在步骤7072,通过GPU 5002r-2b将步骤7068的对象检测结果和步骤7070的分割结果(以及对应的划分)发送给CPU 5002r-2a。基于这些,在步骤7074,通过标记检测模块5002r-5-3和轮廓分析模块5002r-5-6使用CPU 5002r-2a执行对象分析,以识别标记(在下面进一步详细介绍),并计算(或估计)每个对象的形状和姿势等等。
即,在步骤7074,标记检测模块5002r-5-3确定所检测的对象是否包括或带有标记,诸如ArUco或棋盘格/棋盘图案标记。通常来说,标准对象带有标记。如本领域技术人员已知的,可以使用这样的标记来更容易地确定对象的姿势(例如,位置),并使用机器人助手5002r的末端执行器来操纵该对象。但是,可以使用在未配备标记的非标准对象上训练的神经网络和/或模型来分析该类型的非标准对象,以确定它们在工作空间5002w中的姿势,从而允许通用视觉子系统5002r-5可以估计对象的取向和/或位置等等。如上所述,可以从诸如云计算系统5006的其他系统下载和/或以其他方式获得这样的神经网络和模型。在一些实施例中,可以通过使用结构照明来帮助分析对象的姿势,尤其是非标准对象的姿势。即,可以使用与环境5002和/或工作空间5002w的照明相匹配的结构照明来训练神经网络或模型。结构照明强调了对象的方面或部分,从而允许模块5002r-5-3计算对象的位置(和形状,如下所述),以提供对象的最佳取向和定位,以便在其上进行操纵。仍然参考步骤7074,对检测到的对象的分析还可以包括例如使用通用视觉子系统5002r-5的轮廓分析模块5002r-5-6来确定对象的形状。在一些实施例中,轮廓分析包括识别组合图像中的检测对象形状的外部轮廓或边界,其可以使用本领域技术人员已知的各种轮廓分析技术和算法来执行。在步骤7076,质量检查模块5002r-5-7使用CPU 5002r-2a执行质量检查过程,以进一步处理被划分为未知的图像的分割部分。质量检查过程的进一步处理充当回退机制,以提供“未知”分割部分的紧急(last minute)划分。
在步骤7078,使用步骤7074的分析结果和步骤7076的质量检查结果来更新和/或生成与模型5002w相对应的工作空间模型5002w-1。换句话说,与工作空间模型5002w-1相关联地存储识别对象及其形状、位置、分割部分类型以及其他计算或确定的特性的数据。
此外,参考步骤6054,识别对象并下载或以其他方式获得与每个对象相关联的信息并入工作空间模型5002w-1中的过程还可包括下载或获得与每个对象相对应的交互数据。即,如以上结合图186B所描述的,对象检测包括识别环境5002和/或工作空间5002w中存在的对象。另外,针对所识别的对象确定或计算与每个对象相关联的诸如标记信息、形状和姿势之类的特性。检测到的这些对象的存在和特性与工作空间模型5002w-1相关联地存储。此外,机器人助手5002r还可以在工作空间模型5002w-1中与每个检测到的对象相关联地存储从云计算系统5006下载或接收的对象信息。此类信息可以包括未通过机器人助手5002r的通用视觉子系统5002r-5计算或确定的数据。例如,该数据可以包括重量、材料和其他类似的特性,这些特性形成对象的模板或数据定义的一部分。结合每个对象下载到工作空间模型的其他信息是在工作空间5002w和/或环境5002的上下文中,可以由机器人助手5002r对每个检测到的对象执行或利用其执行的交互的数据定义。例如,对于搅拌器类型的对象,搅拌器的对象定义可以包括交互的数据定义,诸如“打开搅拌器”、“关闭搅拌器”、“增加搅拌器的功率”以及其他可以在搅拌器上或使用搅拌器执行的交互。
例如,要在厨房中执行的菜谱可以达到诸如在烤箱中烹饪火鸡的目的或目标。这样的菜谱可以包括以下步骤或由以下步骤构成:将火鸡腌制,将火鸡移至冰箱进行腌制,将火鸡移至烤箱,将火鸡从烤箱中移出等等。构成菜谱的这些步骤由特别制定的(例如,有序的)交互(也可互换地称为“操纵”)列表或集合构成,可以将其称为交互算法。这些交互可以包括例如:按下按钮以启动烤箱,旋转旋钮以将烤箱的温度提高到所需温度,打开烤箱门,抓取放置火鸡的锅并将其移入烤箱,然后关闭烤箱门。这些交互中的每一个都由机器人助手5002r可读和可执行的命令(或指令)列表或集合来定义。例如,打开烤箱的交互可以包括以下有序命令或指令的列表,或由其构成:
将机器人末端执行器的手指移动到真实世界位置(x1,y1),其中(x1,y1)是烤箱“ON”按钮正前方位置的坐标;
将机器人末端执行器的手指向“ON”按钮前进,直到末端执行器的压力传感器感测到X大小的反作用力;
将机器人末端执行器的手指缩回与前面命令中相同的距离。
如下面进一步详细讨论的,这些命令可以与它们将被执行的具体时间相关联和/或可以简单地被安排以指示它们相对于其他命令和/或其他交互(及其相应的定时)将被执行的顺序。下面参考图183的步骤6056和6058更详细地描述交互算法的生成及其执行。尽管如此,为清楚起见,现在描述机器人助手5002r的交互。
如本文所述,机器人助手5002r可以被部署为执行菜谱,以便实现期望的目的或目标,诸如烹饪菜肴、洗衣服、打扫房间、将盒子放在架子上等等。为了执行菜谱,机器人助手5002r使用其末端执行器5002r-1c和5002r-1n执行交互(也称为“操纵”)序列。在一些实施例中,可以基于与之交互的对象(例如,静态对象、动态对象)的类型来对交互进行划分。此外,交互可以划分为抓取交互和非抓取交互。
抓取交互类型的非穷举性示例包括(1)用于操作的抓取,(2)用于操纵的抓取和(3)用于移动的抓取。用于操作的抓取是指机器人助手5002r的一个或多个末端执行器与工作空间5002w(或环境5002)中的对象之间的、目标是对对象或在对象上执行功能的交互。这样的功能可以包括例如抓取对象以便按下对象上的按钮(例如,手持式搅拌器上的ON/OFF电源按钮,手持式搅拌器上的模式/速度按钮)。用于操纵的抓取是指机器人助手5002r的一个或多个末端执行器与工作空间5002w(或环境5002)中的对象之间的、目标是在对象上或对对象执行操纵的交互。这样的操纵可以包括,例如:压缩对象或其一部分;在X、Y或X、Y、Z轴上施加轴向张力;压缩和施加张力;和/或旋转对象。用于移动的抓取是指机器人助手5002r的一个或多个末端执行器与工作空间5002w(或环境5002)中的对象之间的、目标是改变对象位置的交互。也就是说,用于移动的抓取类型的交互旨在将对象从点A移动到点B(以及其他点,如果需要或期望的话),或改变其方向或速度。
另一方面,非抓取交互类型的非穷举性示例包括:(1)无抓取操作(2)无抓取操纵;以及(3)无抓取移动。在无抓取情况下操作对象是指机器人助手5002r的一个或多个末端执行器与工作空间5002w(或环境5002)中的对象之间的、目标是在无需抓取对象的情况下执行功能的交互。这样的功能可以包括例如按下按钮来操作烤箱。在无抓取情况下操纵对象是指机器人助手5002r的一个或多个末端执行器与工作空间5002w(或环境5002)中的对象之间的、目标是在无需抓取对象的情况下执行操纵的交互。这样的功能可以包括例如使用机器手的手掌将对象退回或远离某个位置或位置。在无抓取情况下移动对象是指机器人助手5002r的一个或多个末端执行器与工作空间5002w(或环境5002)中的对象之间的、目标是在无需抓取对象的情况下将对象从点A移动到点B(以及其他点,如果需要或期望的话),或改变其方向或速度的交互。例如,可以使用机器人手的手掌或背面执行这种非抓取移动。
尽管与动态对象的交互也可以划分为抓取和非抓取交互,但是在一些实施例中,相比与静态对象的交互,机器人助手5002r可以不同地处理与动态对象(与静态对象相反)的交互。例如,当执行与动态对象的交互时,机器人助手还会:(1)估计每个对象的运动特性,诸如方向和速度;(2)计算每个对象在每个交互时间点或时刻的预期位置;(3)根据计算出的每个对象的预期位置预先定位其部件或组件(例如,末端执行器、运动链)。因此,在一些实施例中,与动态对象的交互可能比与静态对象的交互更为复杂,因为它们需要与动态对象动态变化的位置(以及其他特性,诸如取向和状态)同步等等。
此外,还可以或可替代地基于对象是标准对象还是非标准对象来划分机器人助手5002r的末端执行器与对象之间的交互。如以上进一步详细讨论的,标准对象是通常不具有变化的特性(例如,大小、材料、格式、纹理等)和/或通常不被修改的那些对象。标准对象的非穷举性、说明性示例包括板、杯、刀、灯、瓶等。非标准对象是那些被认为是“未知”(例如,机器人助手5002r无法识别)和/或通常是可修改、可调整或以其他方式需要识别和检测其特性(例如,大小、材料、格式、纹理等)的对象。非标准对象的非穷举性、说明性示例包括水果、蔬菜、植物等。
图187A至图187E示出了根据示例性实施例的机器臂与对象之间的相互。在图187A中,该交互是将杯子从点A移动到点B的无抓取(非抓取)交互。该交互以机器臂和杯子类型的标准对象的图示序列(对应于运动序列)示出,时间间隔为“时间0”(t0)和“时间4”(t4)之间。机器臂5002r-1c包括机器手,该机器手用于将杯子(例如,杯子的特定点)从时间t0处的起点A移动到时间t4处的终点B。在时间t0,控制机器手放置在用于执行交互的起始位置,该起始位置可以是机器手不接触杯子的位置,并且杯子位于机器手和终点点B之间。继而,在时间t1,例如,通过采用压力传感器指示何时进行接触,来控制机器手接触杯子。继而,在时间t2,机器手开始在点B的方向上向杯子施加力或压力。可以通过配备在机器手或末端执行器上的传感器(例如,压力传感器)来监视和控制由机器手或杯子施加的压力或力。在时间t3,机器手完成杯子到期望位置B点的移动,继而,在时间t4,机器手切断与杯子的接触,使杯子重新定位为目标。
图187B示出了根据示例性实施例的机器臂与非标准对象之间的示例性交互。在图187B中,交互是对作为非标准对象的苹果的抓取交互。抓取交互显示为机器臂和苹果类型的非标准对象的图示序列,时间间隔为“时间0”(t0)和“时间3”(t3)之间。机器臂5002r-1c包括用于抓取苹果的机器手和手指。如上所述,在一些实施例中,与非标准对象的交互可以包括执行交互的不同和/或额外步骤。因此,如图187B所示,在时间t0,将机器手放置在苹果的预定接近度内(但不与苹果接触)的起始位置。通过末端执行器5002r-1c、机器人助手5002r和/或工作空间5002w和环境5002中的一个或多个传感器获得的数据,可以将机器手移动到起始位置。例如,如在时间t0所示,末端执行器5002r-1c包括或在其中已嵌入至少两个摄像机。一个摄像机5002r-4a设置在机器手的手掌上,而另一个摄像机5002r-4b设置在远离机器手腕突出的部分。如上所述,在一些实施例中,布置有摄像机5002r-4b的部分可以相对于手臂或手腕旋转多达360度。这两个摄像机使机器人助手5002r和/或末端执行器5002r-1c可以从不同的视角对要抓取的苹果进行成像或可视化。结果,可以准确地计算苹果在时间t0的位置,以及它的速度和方向(如果/当苹果运动时)。在时间t1,使机器手定位与苹果接触。如本文所述,可以使用例如摄像机型传感器和/或压力型传感器来识别这种接触。继而,在时间t2,机器手沿苹果的方向进一步移动,直到手掌的期望部分与苹果的期望部分接触,以确保最佳抓取。最后,在时间t3,使机器手的机器手指向手掌内移动或向内弯曲至其与苹果充分接触以被认为是成功抓取的位置。如本文所述,可以使用诸如压力传感器之类的传感器来管理和控制手指与苹果接触的移动量,以检测手指向苹果施加了多少力。
类似于图187A和187B,图187C至图187E示出了根据示例性实施例的机器臂与对象之间的示例性交互。具体而言,图187C至187E分别示出了机器臂与生鸡肉、苹果和厨房用具(例如,手动搅拌器)之间的交互。如以上结合图187A和187B所述的,交互被示出为与对应于时间间隔的运动序列相对应的图示序列。
当通过末端执行器执行对象识别并识别出适用于该对象的环境组时,交互列表(已下载到正在操作末端执行器的嵌入式处理器中)缩小为在末端执行器所在的确切环境中可用的可能操作或与对象的可能交互的特定列表。当识别出对象列表(例如所有列表)后,就可以将它们(例如,它们的库)准备好以下载到嵌入式低层级处理器中,这些低层级处理器根据高层级处理器的命令执行或控制末端执行器的实际操作。在一些实施例中,每个末端执行器可以具有其自己的传感器和摄像机,并且可以接收足够的最终数据以执行与对象的交互。
在一些实施例中,(例如,每个末端执行器的)摄像机可以位于或定位在(但不限于):
1.机器人手掌上的摄像机,其可在抓取或动作时帮助观察位于手掌前方的对象。
2.位于机器手的手腕的特殊延长线上的摄像机,其可以以一定角度观察机器手顶部上方的区域。
3.机器手的手腕上垂直于手的摄像机。该摄像机位置有助于观察与诸如搅拌器之类的对象的交互区域,该对象例如由手抓取/保持并指向下方。
4.工作空间天花板上的摄像机(所谓的中央摄像机系统)。该摄像机位置有助于观察整个工作区并更新其虚拟模型,该模型可用于避免碰撞、运动规划等。
在一些实施例中,诸如位于机器手的手腕上的摄像机之类的摄像机被构造为能够旋转多达360度。这使得能够对摄像机进行定位或重新定位,以实现所需的交互区域观察。
此外,位于手和手腕上的摄像机系统可以实现或促进以下操作:(1)在对象与机器人设备或机器人末端执行器(或固定在机器人手/末端执行器中的对象)之间的交互区域随时执行观察;(2)识别控制点,这些控制点定义了交互过程进行得成功或不成功,并有助于执行检查和捕获成功的最终交互阶段处理。
构成并配置为执行交互的命令是根据交互算法执行的。参考图183,在步骤6056,机器人助手5002r生成交互算法,其被配置为成功执行交互。应当理解,机器人设备5002r(例如,使用其高层级处理器)在步骤6056可以根据需要生成一种或多种交互算法来执行菜谱,诸如烹饪菜肴。应当理解,在一些实施例中,交互算法可以由除机器人助手之外的系统或设备生成,并且被发送到机器人助手以执行。交互算法被生成为使得其实现末端执行器与一个或多个对象之间的无误差(或基本上无误差)的交互。为此,基于增强的学习或训练技术,对交互算法进行了明确定义和测试以最大程度地提高其准确性,如下面进一步详细描述的。
仍然参考步骤6056,针对环境5002、工作空间5002w(和其中的识别对象)和机器人助手5002r(包括其部件、组件、子系统等)的实例或类型的具体配置来定制和/或专门制定交互算法。即,因为每个环境、工作空间和机器人设备可以改变(例如,在尺寸、布置、内容物等方面),通常单个交互算法优选地不应由任何机器人助手和/或在任何工作空间或环境中使用来执行给定的交互。例如,在具有比另一个厨房的台面表面更光滑的表面的厨房台面上移动杯子将需要由机器手将不同量的力施加到杯子上,以便将杯子滑动到期望的位置。因此,即使是因为工作空间、环境、机器人设备和其他交互方面的微小差异,也会生成不太理想的交互结果,例如,结果与该交互的预期结果不完全(或基本不完全)匹配。作为一个说明性示例,在某些情况下,用即便比预期或目标热量稍高或稍低的热量来烹饪食材也可能会导致完全不可使用(例如,未完全煮熟、烧焦)的食材。
如上所述,可以生成交互算法以实现由机器人助手5002r最初接收和/或识别的目的或目标。例如,可以由另一系统(例如,客户端系统、第三方系统等)指示机器人助手5002r执行菜谱,诸如烹饪菜肴。或者,机器人助手可以由内部逻辑(例如调度程序)触发以执行菜谱(例如,每个星期二下午5点烹饪一道菜肴;当冰箱和食品储藏室中识别出低的食品杂货计数时,烹饪一道菜肴)。已识别出要执行的菜谱后,在步骤6056,机器人助手5002r可以通过例如针对识别出的环境5002、工作空间5002w和机器人设备5002w(及其部件(例如,关节等))定制通用的菜谱交互算法来生成交互算法。应当理解,因为机器人助手5002r仅下载识别出的对象和/或能够在环境5002和/或工作空间5002w中执行的交互的数据定义,所以机器人助手可以通过不必下载、存储和/或考虑和/或处理大量不适用或不相关的对象和交互来最小化其储存和处理负担。
交互算法由多个命令构成,并且每个命令构成机器人助手5002r的每个部分(例如,关节)的序列坐标。坐标可以包括三个空间坐标(例如,X轴、Y轴和Z轴坐标)和时间坐标。换句话说,命令定义指示机器人助手5002r的每个关节在定义的时间应在的位置(例如,如图187A和187B所示)。可以从或相对于起始坐标或默认坐标开始进行测量,所述坐标指示在时间t0机器人末端执行器的各部分的X轴、Y轴和Z轴位置(有时在本文中称为“位置0”)。应当理解,在一些实施例中,位置0可以是相对于环境、工作空间和/或要与之交互的对象的位置、取向和/或其他特性的位置。因此,在交互算法之前或作为交互算法的初始步骤,会将机器人助手5002r移动到位置0。例如,抓取苹果的交互的一部分可以被定义为命令序列,该命令序列指导机器人多关节手指的每个关节在一段时间内沿内部方向逐渐旋转(相对于位置0和/或先前方向),直到每个手指与苹果进行充分接触为止。在这里,强调与非标准对象(诸如苹果)进行交互的算法比与标准对象(诸如杯子)进行交互的算法更复杂的原因是很有用的。也就是说,与苹果正相反,杯子的形状和其他特性(例如延展性)是已知的,因此可以完美地制定算法,以使机器人助手的手指移动到精确坐标来抓取杯子,而不是依靠其他传感器(例如压力传感器)帮助的估计坐标(例如,基于摄像机成像)来确定何时确实充分抓取了苹果。
如上所述,交互算法被设计为执行无错误(或基本上无错误的交互)。如上所述,由于机器人助手5002r执行的交互有时无法通过监督或人类质量控制来进行帮助,因此算法尽可能精确地执行每个命令是至关重要的。可以通过训练机器人助手执行每个命令和/或交互以达到完美(或尽可能完美)来实现这种精确度。例如,当训练机器人助手5002r执行交互时,诸如按下工作空间5002w中烤箱的“ON”按钮,机器人助手可以重复执行(或尝试执行)该交互所需的每个命令,直到它们执行得充分准确。当机器人助手成功执行了交互的每个命令时,机器人助手的每个部分在每个时间段的基础指令和/或参数(诸如空间坐标(例如X、Y、Z轴))可以被存储和/或用于相应地对机器人助手5002r进行编程。该训练过程可以称为“强化训练”和/或“强化学习”。
强化学习是一种通过测试和学习规划的一次或多次迭代,训练机器人助手5002r(或其他系统或处理器)在无错误的情况下(或基本上无错误的情况下)执行交互的过程。可以执行强化学习过程的测试和学习规划,直到实现并确认交互的可靠性为止。可以在执行交互之前的任何时候由机器人助手5002r执行强化学习。例如,可以在制造机器人助手5002r时、在改变机器人助手5002r的方面时(例如,系统更新)和/或在将机器人助手5002r部署到新的环境5002和/或工作空间5002w时,对机器人助手5002r进行训练。附加地或可替代地,机器人助手5002r可以在其生命周期中被连续训练。应当理解,在一些实施例中,可以专门使用机器人助手5002r来执行机器人助手5002r的训练。在其他情况下,可以在与机器人助手5002r相同的机器人助手上进行训练。在这种情况下,针对机器人助手5002r的类型定制的训练结果或指令可以被发送到机器人助手5002r来执行,从而使得机器人助手5002r不必自己执行训练。
通过执行许多测试交互直到达到预定阈值数量的成功情况或对该交互的执行,来执行针对特定交互的强化训练。应当理解,构成成功情况的数据是固定的(例如,已知的),并且可以在交互之前被预先确定或预设。例如,可以通过将烤箱的电源状态从“OFF”位置变化为“ON”位置来定义开启烤箱的交互成功情况。在训练交互是用于移动的抓取交互的情况下,可以通过对象应移动到的位置、取向等的坐标来定义成功情况。因此,对照这些预定的成功结果标准来测量机器人助手5002r的训练。
训练机器人以实现期望交互的成功情况(例如,执行)可以包括首先通过机器人助手的一个或多个摄像机5002r-4对要与之交互的对象进行成像。在一些实施例中,这包括移动对象或将对象移动到摄像机5002r-4和机器人助手5002r的部分(例如,末端执行器)的期望相对位置,在该位置处对对象进行成像。该期望相对位置有时被称为“测量点”。当对象和/或机器人助手定位于测量点时,摄像机5002r-4可用于从各种角度对对象进行成像。例如,可以从顶部、正面、侧面和/或底部对对象进行成像以产生各种观察帧(例如5帧)。因此,机器人助手5002r迭代地尝试执行交互(或其一部分),直到通过摄像机5002r-4和/或其他传感器测得持续达到该测量点为止,由此指示机器人助手已反复成功地执行了该方面的互动。
例如,为了训练机器人助手抓取苹果,机器人助手5002r尝试使用其末端执行器5002r-1、5002r-1n抓取苹果,并将苹果移至测量点。在每次尝试之后,机器人助手5002r使用其摄像机对对象进行成像,并确定其位置、取向等是否与成功情况的位置、取向等相匹配。如果认为苹果放置、取向或以其他方式不正确,则机器人助手5002r修改其参数,直到将苹果移至与成功情况相匹配的位置、取向等。在某些情况下,训练机器人助手5002r与非标准对象进行交互包括:扫描(例如,对对象进行成像);以及为交互创建规则,包括基于对象的大小和其他特性;并基于对象的大小将其划分为具体类型的交互。
在图183的步骤6058中,机器人助手5002r执行在步骤6056生成的交互算法。图188示出了根据示例性实施例的用于执行交互的过程的流程图。在图188中,单个末端执行器用于执行与单个对象的交互。然而,如本领域技术人员已知的,可以使用机器人助手5002r的一个或多个末端执行器(或其他组件)和一个或多个对象来执行交互。已经生成了交互算法的机器人助手5002r高层级处理器可以识别发起交互所需的各种参数(例如,交互数据)以及其中的每个命令(例如,运动)。这样的参数可以包括机器人助手5002r末端执行器5002r-1c的起始初步位置、位置0、交互ID和对象的近似坐标等等。如上所述,可以基于从与机器人助手5002r相关联的一个或多个摄像机获得的成像来识别对象的坐标。在图188的步骤8050中,高层级处理器将交互数据的全部或部分发送到末端执行器5002r-1c,该末端执行器5002r-1c被识别为执行交互的末端执行器。
继而,在步骤8052,机器人助手5002r末端执行器5002r-1c的嵌入式处理器通过将末端执行器5002r-1c和/或要与之交互的对象定位在相对于彼此的初步位置,使用此信息来发起其交互责任。在一些实施例中,基于在上述对象识别过程期间执行的对象成像,初步位置包括末端执行器被放置在要操纵对象的上方。
在步骤8054,机器人助手将末端执行器定位在位置0(也称为最佳标准位置)。在将末端执行器定位在位置0之前,一个或多个处理器(包括高层级处理器/中央处理器和低层级处理器)会检测环境和环境中存在的对象。因此,最初,一个或多个处理器可以从机器人助手系统(也称为机器人助手)中配置的一个或多个传感器接收与当前环境相对应的环境数据。在一些实施例中,一个或多个传感器中的每个可以与配置在机器人助手系统中的传感器收集器相关联。机器人系统的图示的完整层次结构/架构结构如图188B所示。
如图188B所示,完整的层次结构在最底层包括一组致动器和传感器,它们进一步经由信号总线与传感器收集器相关联。此外,传感器收集器可以经由传感器链路与运动链处理器系统相关联。在一些实施例中,运动链处理器系统可以是处理器组,即,在单个运动链中配置的用于运动链工作的一个或多个处理器。作为示例,机器臂可以被视为一条运动链,并且在运动链中配置的一个或多个处理器中的每个处理器可以统称为运动链处理器系统。此外,如图188B所示,运动链处理器系统可以经由链链路与中央处理器相关联。此后,中央处理器经由通过机器人控制链路进一步连接到远程控制系统。
从上至下,在3维空间中的高层级位移命令被转换为用于移动每个特定运动链(也称为末端执行器/一个或多个操纵设备)、操纵器中的每个链路的指令,最终变为电动机控制信号(目标镜头、光源、激光)。任何子系统都可以理解为硬件-软件单元,其在机械上、结构上、(可选地)在电气和逻辑(接口)上隔离。每个子系统又可以包含单独的组件(外部接口的连接板、硬件加速模块、电源等)。
目的是确定每个子系统的最小要求集:
-接口(逻辑、机械、电气);
-(在每个子系统固有的某些算法基础的框架内的)计算能力;
-子系统的构造和操作特征。
此外,下面更详细地描述层次结构/架构的主要组件。
致动器和传感器组
该子系统包括一组致动器和传感器,其是单个运动链的机械组件集合。它还包括内置在一个或多个操纵设备(也称为操纵器)中的整个物理传感器集合。对于特定类型的操纵器,传感器集合、链路的数量以及子系统接口的机电性质始终是唯一的。
由于不同类型的操纵器可能具有不同的传感器集合(以及该传感器本身-其接口不同),因此可能需要一个隔离操纵器部件特征(电气、机械、逻辑)的组件。传感器收集器利用具体的传感器和嵌入到操纵器中的控制对象来抽象高层子系统的操作。传感器收集器将信号总线转换为上游事件子系统的“标准”流。并且方向相反-其将命令流转换成传感器、电动机、驱动器、灯等总线上的对应控制信号序列。传感器收集器的设计可能始终与具体末端执行器和/或操纵器的类型相对应。
运动链处理器系统
运动链处理器系统(即,一组处理器或一个或多个处理器),被设计来解决控制一个运动链的任务。运动链处理器系统提供来自操纵器摄像机的主要图像处理,识别由中央处理器(后端CV)指定的几何边界内的向量对象。运动链处理器系统使用从中央处理器接收到的标识符数据库,将向量对象识别为“本地”工作空间的可能元素。同样,运动链处理器系统将其本地工作空间与其父代子系统(中央处理器)的“机器人”工作空间同步。
中央处理器
中央处理器通过执行来自远程控制系统的高层级命令或自主执行预加载的脚本,来控制一组运动电路。一个或多个运动链处理器系统可以连接到中央处理器。中央处理器提供了运动稳定性问题的解决方案。中央处理器通过将“本地”工作空间从从属运动链处理器系统同步到其“机器人”工作空间,解决了计算机视觉的前端任务。此外,中央处理器在连接的链控制器上分发低层级CV任务,从而提供对“机器人”工作空间的必要覆盖。此外,中央处理器包括人机界面元素,诸如语音命令、手势的识别,与用户输入/输出设备(键盘、触摸屏等)的接口。
独立式机器人
独立式机器人是一种能够移动的机器人,其包含一定数量的操纵器、对应数量的运动链(与运动链处理器系统),以及一个放置在单个结构中的中央处理器系统的集合,其示出具有三个运动链的变量。
致动器和传感器组、传感器收集器、运动链处理器系统和中央处理器系统之间的连接如图188C所示。
此外,远程控制系统是用于管理通过本地网络或互联网组合的一组独立式机器人的子系统。
在层次结构/架构的每个处理层级上,特定的子系统不仅转换数据,从下到上降低了数据信道的带宽要求,而且显然还延迟了来自传感器(或基于一组传感器的复杂事件)的信息到常规处理路径的传播。对于所提出的架构中的数据路径的总和,延迟的增长的特征在于从传感器到中央处理器系统和远程控制系统的途中传输数据量的减少。同时,由于活动稳定性的任务将在中央处理器层级上解决,因此对于在中央处理器上终止的数据流可能提出严格的实时要求。图188D示出了表示硬实时环境中带宽和等待时间之间的连接的方案。
此外,从连接的运动链处理器系统到中央处理器层级的数据流可以从利用传感器收集器接收的数据以及从操纵器或末端执行器上的物理传感器接收的数据中得出。从物理传感器到中央处理器的延迟可能会有所不同,这是因为传感器收集器所服务的传感器数量不同,或者产生它们自己的独特延迟的接口类型不同。为了促进命令与反馈数据流的通信,来自主要传感器的信息会接收时间戳,并且命令本身也会得到确认。作为层次结构/框架的一部分提到的每个子系统中的每个本地时钟都可以同步。
使用如上所述的架构/层次结构,一个或多个处理器可以经由传感器收集器从机器人助手系统中配置的一个或多个传感器接收与当前环境对应的环境数据。在一些实施例中,环境数据可以包括但不限于当前环境的位置数据和图像数据,其可以从在机器人助手系统中配置的导航系统以及一个或多个图像捕获设备获得。一个或多个处理器可以进一步将环境数据发送到与通用机器人助手系统相关联的远程储存,其中该远程储存包括环境候选的库。此后,一个或多个处理器可以接收基于环境数据从环境候选的库中确定的当前环境类型。此外,一个或多个处理器可以检测当前环境中的一个或多个对象,其中一个或多个对象与当前环境的类型相关联。可以基于当前环境的类型、与当前环境相对应的环境数据以及来自属于当前环境的多个对象的对象数据中的至少一个来检测一个或多个对象。在一些实施例中,可以从与机器人助手系统相关联的远程储存中检索多个对象。一个或多个处理器可以通过分析一个或多个对象的特征,诸如但不限于一个或多个对象的形状、大小、纹理、颜色、状态、材料和姿势,来检测一个或多个对象。
在检测到一个或多个对象和当前环境后,一个或多个处理器可以基于从远程储存中检索到的交互数据来识别与一个或多个对象中的每一个相关联的一个或多个交互。此外,可以基于交互数据在对应的一个或多个对象上执行一个或多个交互。然而,执行一个或多个交互需要由一个或多个对象或在一个或对象上从最佳标准位置(即位置0)开始执行运动序列。因此,最初,一个或多个处理器定位于对应的一个或多个对象附近的一个或多个操纵设备上,然后识别一个或多个操纵设备相对于对应的一个或多个对象的最佳标准位置,其中,最佳标准位置选自一个或多个操纵设备的一个或多个标准位置。在识别出最佳标准位置后,可使用一种或多种定位技术将一个或多个操纵设备定位在识别出的最佳标准位置,在这之后可使用一个或多个操纵设备在对应的一个或多个对象上/通过对应的一个或多个对象执行一个或多个交互。
在一些实施例中,位置0是末端执行器5002r-1c和要与之交互的对象的起始或默认的相对位置和取向。在一些实施例中,位置0可以用作基础或相对点,从该基础或相对点测量在交互过程中执行的每个命令或运动。位置0用于确保在无错误的情况下执行基于先前的可靠训练执行的交互。位置0是对象在交互和操纵过程开始时相对于末端执行器的标准位置和取向。退回(exit)到位置0是指退回到末端执行器和对象之间的一定距离和相对位置,其中机器人设备在该距离和该相对位置下通过强化学习或任何其他学习处理器或系统进行训练以具有与对象的无错误(或基本无错误)交互,并且通过周期性测试规划以确认这些交互的可靠性。
如果速度相同、位置修改相同、交互的对象相同,那么在实现末端执行器和对象之间的标准位置的情况下交互的结果将相同并因此无错误(或基本无错误),其中从该标准位置开始训练机器人设备起始与对象的交互。换句话说,末端执行器和对象之间成功的功能交互取决于对标准位置的调整的实现。为了进一步促进或实现末端执行器和对象之间的无错误(或基本无错误)的、可靠和功能交互,可以将摄像机安装到末端执行器上,以识别位置和对象取向并将其与预期的位置(位置0)进行比较。
如上所述,可以使用一种或多种定位技术将末端执行器5002r-1c(也称为一个或多个操纵设备)定位在位置0。一种或多种定位技术包括对象模板匹配技术和基于标记的技术中的至少一种,其中对象模板匹配技术用于标准对象,而基于标记的技术用于标准和非标准对象。可以使用要与之交互的对象的3D对象模板来执行定位(例如,到位置0)。对象模板是3D对象的形状、颜色、表面、材料和本领域技术人员已知的其他特性的详细数据描述或定义。在一些实施例中,对象模板用于将在步骤8052中定位和取向的、从摄像机(例如,嵌入在末端执行器中或末端执行器的摄像机)获得的对象的图像与存储在3D对象模板中的对象的数据定义进行比较,该3D对象模板指示成功定位在位置0时对象的预期特性。为了详细说明,一个或多个处理器可以从与通用机器人助手系统相关联的远程储存中检索目标对象的对象模板,其中目标对象是当前正在经历一个或多个交互的对象,其中对象模板包括目标对象的形状、颜色、表面和材料特性中的至少一个。此外,一个或多个处理器可将一个或多个操纵设备定位在目标对象附近的第一位置。此后,一个或多个处理器可以从与一个或多个操纵设备相关联的图像捕获设备中的至少一个实时接收目标对象的一个或多个图像,其中,该一个或多个图像在一个或多个操纵设备处于第一位置时通过至少一个图像捕获设备来捕获。此外,一个或多个处理器可以将目标对象的对象模板与目标对象的一个或多个图像进行比较。通过进一步进行比较,一个或多个处理器可执行以下操作中的至少一个:当比较结果不匹配时,基于先前迭代中的一个或多个操纵设备的位置,将一个或多个操纵设备的位置朝着最佳标准位置调整,并重复接收和比较的步骤;或者当比较结果为匹配时,推断一个或多个操纵设备已达到最佳标准位置。
在某些实施例中,对象模板不能或优选地不应用于可修改(和/或不具有已知形状、大小等)的非标准对象。可修改的对象包括在与该对象交互(例如,打开、挤压等)后可以变化其3D形状的对象。不能或优选地不定义为对象模板的其他特殊对象包括玻璃或透明对象、具有反射性表面的对象、形状和大小未标准化的对象、临时对象等。如以下进一步详细描述的,这些特性和特征不容易知道或存储在对象模板中的对象可以使用真实世界(即,物理)标记和/或虚拟标记来进行交互(例如,将其移动到位置0)。在一些实施例中,可以将物理标记布置在目标对象上,而将虚拟标记与目标对象上的一个或多个点相对应,其中一个或多个标记使得能够计算包括一个或多个操纵设备相对于目标对象的距离、取向、角度和倾斜度的位置参数。在一些实施例中,目标对象可以是当前正在经历一个或多个交互的对象。在一些实施例中,当目标对象是标准对象时,与目标对象关联的一个或多个标记是物理标记,而当目标对象是非标准对象时,与目标对象关联的一个或多个标记是虚拟标记。
用于导航到位置0的基于标记的技术使用一个或多个放置在要与之交互和/或移动到位置0的对象上的标记。该标记可以由放置在对象上的一个或多个2D图案构成。因为标记具有末端执行器5002r-1c和/或机器人助手5002r已知的图案,所以可以更容易地检测所述标记,从而可以更高效地计算对象的姿势估计并提高精确度。也就是说,可以使用标记来更可靠、更准确地计算对象与末端执行器和/或其摄像机(在某些实施例中,它构成嵌入式视觉系统(在下面进一步详细描述))之间的取向和距离。放置在一个或多个操纵设备上的标记使得能够估计一个或多个操纵设备相对于通用视觉系统和厨房表面原点的姿势和取向。这可用于校准和检查一个或多个操纵设备的定位精确度、损坏或跳动。然而,放置在一个或多个对象上的标记用于计算一个或多个操纵设备相对于一个或多个对象的姿势和取向,反之亦然。
作为示例,一个或多个标记可以包括但不限于快速响应(QR)码、增强现实(AR)标记、红外(IR)标记、棋盘/棋盘格标记、几何形状和颜色标记及其组合(例如,三角形标记,它由放置在等边三角形顶点中的三个其他标记组成)。标记用于更可靠、更准确地计算对象与嵌入在一个或多个操纵设备中的动态图像捕获设备或静态摄像机之间的取向和距离,该静态摄像机是全局场景视觉系统的一部分。可以使用的标记的类型取决于例如场景、对象类型和结构、照明条件等。不同类型的标记使得能够利用不同用途的计算资源来计算对象的距离和取向。
每种类型的标记都具有针对其选择所考虑的特性,并且这些特性是机器人助手5002r已知的,且可以在操纵过程中加以考虑。这些特性可以包括:取向/对称性;最大视角(可从中检测标记的最大允许角度);对照明变化的容忍度;编码值的能力;检测精确度(例如,以像素为单位);内置校正功能;计算资源等。基于这些,可以选择最佳标记并将其用于环境5002和/或工作空间5002w的特定对象和条件。每种标记都有不同的优势。例如,某些标记是定向的,而有些则不是;某些标记的检测在计算上比其他标记更有效;由于角度和照明条件的容忍度,某些种类的标记的检测更为精确。例如,AR标记是定向的,其编码整数值,并且它们的检测在计算上是有效的。另一方面,棋盘标记通常不定向,并且需要几乎两倍或更多的计算资源才能检测到。但是,棋盘标记可以以更高的精确度(亚像素)定位,并且具有内置的错误纠正功能。此外,IR标记是一种特殊种类的图案,其通过将小的反射点放置在对象的已知点上并在红外照明下可见来实现。结合红外光源和摄像机,反射点可能会起到标记角的作用,并用于姿势估计。
为了确保标记或对象的系统正常工作,可以实现结合不同类型的视觉标记的远程识别技术,诸如射频识别(RFID)和/或近场通信(NFC)。这两种类型的技术的集成解决方案提高了系统和不同环境中对象识别的可靠性。
下面提供了有关各种类型的标记及其特殊性的更多细节。
标记可以改变,并且可以具有不同的类型和配置,以设置到对象的距离和对象的空间取向。基本上,几乎每个具有至少3个尖角和某种内部图案的几何形状都可以用作显式标记。校准的摄像机系统能够使用标记的角之间的已知距离来计算到放置在对象上的标记的距离和姿势。标记中包含的图案可用于滤除错误检测并编码整数对象的标识符(Id)或对象的组ID。除此之外,所包含的几何图案在对象的设计中起着重要作用,并且通常基于公司徽标或符号。高质量标记检测技术的关键特征之一是内部图案的良好设计、内部图案的信息容量以及在各种照明条件和姿势下的鲁棒检测。
在交互过程中,特别是与动态对象的交互过程中,使用标记和标记检测可以提高可靠性,这是因为可以快速检测到标记,因此即使使用次等硬件也可以实时有效地进行姿势估计。在一些实施例中,如在本文详细描述的,在交互期间使用标记包括:在从相关摄像机(例如,在此描述的通用视觉子系统的高架摄像机)获得的图像中的对象上检测标记,其可以用于全局场景监视;在给定的时间段(例如,每10毫秒)计算标记的真实世界坐标;估计对象的轨迹(例如速度和方向);计算对象在未来时刻m的预期位置和姿势;预先将一个或多个操纵设备(也称为末端执行器)移动到估计位置;将末端执行器保持在所需的位置和姿势直到所需的时间;执行实际的交互。因此,标记检测可以使移动对象和末端执行器的位置和姿势同步。
如上所述,可以在对象上设置的一种类型的标记是三角形标记。三角形标记包括放置在等边三角形顶点处的三个可检测标记或图案。图189A示出了根据示例性实施例的由三个2D二进制代码标记(例如,AR标记)构成的三角形标记;图189B示出了根据示例性实施例的由三个彩色圆圈形状构成的三角形标记;图189C示出了根据示例性实施例的由三个彩色正方形形状构成的三角形标记;和图189D示出了根据示例性实施例的由二进制代码标记和彩色形状标记两者构成的三角形标记。在一些实施例中,AR标记和其他二进制标记由具有可识别的边(例如,顶部/底部/左侧/右侧)的可检测黑白图案构成,所述可识别的边编码整数值。这些标记在理想情况下是适当定向的,由于三角形本身是对称的,因此可能需要额外的信息来检测其顶部/底部以适当调整到位置0。彩色形状(例如,圆圈、正方形)标记是另一种选择。每种形状的颜色都可作为三角形顶边和/或底边的标识符(例如,蓝色圆圈表示三角形的底边)。
在一些实施例中,三角形标记被布置和/或应用到对象要与之交互(例如被抓取)的区域。例如,如图189A至189D中所示,将标记放置在手柄部分上以便更容易地检测对象的抓取部分,从而将末端执行器和/或对象定位在位置0。
在一些实施例中,可以如下执行调整末端执行器(例如,至位置0):
一个或多个处理器可以将一个或多个操纵设备移向三角形标记,直到三角形标记的至少一边具有优选的长度(或大小范围、阈值大小)。作为示例,末端执行器可以朝着三角形标记移动或定位,直到通过末端执行器的摄像机捕获的成像观察到的、三角形标记的至少一边测量例如225个像素。
此外,一个或多个处理器可以旋转一个或多个操纵设备,直到三角形标记的底部顶点布置在由一个或多个操纵设备的摄像机捕获的目标对象的实时图像的底部位置为止。
此后,一个或多个处理器可以沿着目标对象的实时图像的X轴和/或Y轴移位一个或多个操纵设备,直到三角形标记的中心定位于由一个或多个操纵设备的摄像机捕获的目标对象的实时图像的中心为止。
最终,调整摄像机相对于三角形标记的角度的倾斜度(例如,通过移动末端执行器和/或移动对象),直到三角形标记的每个角度为以下角度中的至少之一:等于大约60度或等于比在开始调整一个或多个操纵设备的位置之前的角度差更小的、角度之间的预定最大差。在一些实施例中,达到上述两个条件中的至少一个指示该一个或多个操纵设备已经达到最佳标准位置。
可以迭代地执行这些上述步骤,直到三角形的所有角度都等于60度并且三角形的所有边都等于所需或预定大小为止,如通过末端执行器的摄像机所查看到的那样。
继而,一旦摄像机平面和三角形对齐(例如,使它们彼此平行,并且三角形位于摄像机的光轴上),则由末端执行器的摄像机看到的投影三角形也为等边的。这意味着三角形的所有边都彼此相等(或基本相等),并且所有角度都等于(或基本相等)60度。图190示出了根据示例性实施例的三角形标记的成像,其中三角形标记和摄像机平面基本对齐,从而不存在倾斜。更具体地说,在图190中,角度为60、61和59度,而它们各自的顶点测量228、228和225个像素。
当末端执行器识别出摄像机平面和三角形标记之间的倾斜度时,则看出摄像机成像的三角形角度之一大于其他两个角度。该角度差异指示具有明显更大角度的顶点比其他两个角度或顶点更接近或远离摄像机。这可以在图191A和191B中看出,其示出了从两个不同角度或方向成像的相同三角形标记。在图191A中,对三角形标记成像,使得距摄像机最远的顶点被成像为具有最大角度(87度,相对于51度和42度)。在图191B中,对三角形标记进行成像,使得最靠近摄像机的顶点(例如,图191A中的最远顶点)被成像为具有最大角度(86度,相对于46度和48度)。
在一些实施例中,可以使用数学模型来识别和/或计算(例如,在定位期间)三角形标记的顶点位置和移动,该数学模型接收三个轴X、Y和Z作为输入。X和Y是三角形的角度(因此可以根据其来确定第四个角度),以及Z轴是从摄像机到对象的距离。距离是由每个三角形轴的大小来定义和/或计算的。即,与末端执行器的摄像机更接近的三角形会导致成像三角形的较长边。在模型中使用这些假设和信息,可以根据需要移动末端执行器(例如,向前、向后、向左、向右),以便使标记成像中的边相等。
取决于摄像机在各个位置的倾斜度(其随着摄像机向右、向左、向前和/或向后旋转而改变),由摄像机可视的三角形标记的角度也发生变化。摄像机成像的角度越大或变得越大,则距摄像机越远或移动得越远。因为三角形的所有角度的总和始终等于360度,所以机器人助手5002r可以计算或确定摄像机正在观察该三角形的哪些角度,以及这些角度相对于摄像机的位置。这样,末端执行器可以根据其摄像机捕获的图像来计算或识别末端执行器应如何移动(例如,向哪一侧、距离和倾斜)以便到达或达到位置0。当确定成像的三角形标记匹配其两个顶点的角度时,机器人助手可以计算三角形边的倾斜和长度,从而也可以计算从摄像机到三角形标记的距离。结果,机器人助手继而可以沿相反的方向(例如,沿减小角度的方向)移动,以达到末端执行器的位置0。
图192A至图192D示出了根据示例性实施例的通过末端执行器的摄像机成像查看到的布置在对象(例如,平底锅手柄)上的三角形标记。图192A至192D中所示的每个图像都说明了三角形标记的上述特性和原理。例如,图192A和192B示出了当摄像机由前往后或由后往前移动(例如旋转)从而改变其倾斜度时三角形标记的顶点的角度的相对变化。图192C和192D示出了当末端执行器的摄像机左右、由前往后和/或由后往前移动(例如旋转)时,三角形标记的顶点的角度的相对变化。如上所述,这种旋转导致角度受到相应的影响。
在一些实施例中,机器人助手可以通过使用三角形标记的可视和预期坐标来计算末端执行器的所需移位或旋转,以将其定位在诸如位置0的目标位置。为了进行计算,机器人助手考虑两个三角形标记,如图193A(1)至图193A(3)以及图193B(1)和图193B(2)。也就是说,图193A(1)至193A(3)示出了通过摄像机从相同位置(即在摄像机前面距离d0的位置)成像的三角形标记的不同示例性类型。图193A(1)至193A(3)在其中的每个QR码形状之间形成三角形ΔABC。图193B(1)示出了(例如,在执行末端执行器的移动/定位的计算时)由末端执行器的摄像机成像的三角形标记;以及图193B(2)示出了由图193B(1)的三角形标记形成的三角形,即三角形
Figure BDA0002425066820002131
其代表(例如,在计算时)由末端执行器的摄像机成像的标记的三角形。
使用关于三角形ΔABC和
Figure BDA0002425066820002132
的信息,末端执行器和/或机器人助手可以执行图194所示的仿射变换,来计算末端执行器和/或其摄像机所需的移动,以使三角形ΔABC由摄像机替代地可视化为
Figure BDA0002425066820002133
换句话说,机器人助手和/或末端执行器可以计算如何移动末端执行器和/或摄像机,以使成像的三角形可以替代地镜像正如位于摄像机前方距离d0时的三角形,从而指示摄像机已相对于三角形标记正确放置。
为此,机器人助手可以计算图193A(1)的三角形ΔABC的点到图193B(1)(或图193B(2))的三角形
Figure BDA0002425066820002141
的点的仿射变换的参数。这样的仿射变换可以表示为平移和线性变换的组合,例如,如下所示:
Figure BDA0002425066820002142
其中,三角形ΔABC的中心可以表示为:
Figure BDA0002425066820002143
三角形
Figure BDA0002425066820002144
的中心可以表示为:
Figure BDA0002425066820002145
可以假定三角形的中心位于摄像机轴上。
继而,矩阵M的计算如下:
Figure BDA0002425066820002146
Figure BDA0002425066820002147
也就是说,M可以表示为旋转矩阵和拉伸矩阵的组合,这样就形成了一对垂直向量,这些向量在变换后仍保持垂直,如下所示:
Figure BDA0002425066820002148
Figure BDA0002425066820002149
Figure BDA00024250668200021410
的垂直度指示:
Figure BDA00024250668200021411
因此,
Figure BDA00024250668200021412
Figure BDA00024250668200021413
的垂直度指示:
-(M11M12+M21M22)·X2+(M11 2-M12 2+M21 2-M22 2)·xy+(M11M12+M21M22)·y2=0
U=M11M12+M21M22 2V=M11 2-M12 2+M21 2-M22 2
Figure BDA00024250668200021414
继而,在识别出在变换之前和之后保持垂直的两个向量之后,机器人助手和/或末端执行器识别或确定M的参数,包括(1)旋转角度α和拉伸系数:k0和k1,例如如下:
Figure BDA0002425066820002151
图195示出了根据示例性实施例的在旋转之前、旋转之后以及在拉伸之后的仿射变换的旋转和拉伸部分的参数。已识别出仿射变换的参数后,计算出将摄像机放置在所需位置(例如位置0)所需的必要摄像机移动。例如,在一些实施例中,摄像机的旋转可以等于为仿射变换计算出的旋转角度α(如图195所示)。通过k0和k1的拉伸指示三角形和摄像机之间的距离以及其围绕轴的平行于摄像机平面的旋转。在这方面,令
例如,令
ki=min(k0,k1),kj=max(k0,k1)。
然后,
Figure BDA0002425066820002152
是摄像机和三角形之间的当前距离。β是三角形相对于轴
Figure BDA0002425066820002153
的旋转角度,即
Figure BDA0002425066820002154
sin(β)
在某些实施例中,可能无法从初始数据计算sin(β),例如,因为存在两个对应于同一摄像机图像的可能三角形位置,因此只能找到sin(β)的绝对值,而其符号未知。因此,可以如下计算sin(β)。首先,为了减小角度β,末端执行器的摄像机必须沿轴
Figure BDA0002425066820002155
移动,如图196所示,其示出了根据示例性实施例的由末端执行器的摄像机对三角形标记的三角形的成像。
为了到达末端执行器的摄像机相对于对象的目标位置(例如,位置0)所需要的摄像机移动计算如下:
Figure BDA0002425066820002156
为摄像机的当时(then-present)位置,该摄像机沿
Figure BDA0002425066820002157
的方向并相对于其旋转角度ω。在摄像机的相对坐标系中进行进一步的计算,如下所示:
Figure BDA0002425066820002158
其中:
Figure BDA0002425066820002159
并且τ指示对象的实际长度与其在来自摄像机的图像中的尺寸之间的比例系数。
因此,如图197所示,其示出了根据示例性实施例的由末端执行器的摄像机对三角形标记的成像,以计算照摄像机的所需移动
Figure BDA0002425066820002161
由于在某些实施例中,摄像机的移动是基于其自身的相对坐标系计算的,因此可能有必要将摄像机的相对坐标系转换为绝对坐标系。为此,必须按如下所示计算矩阵A,同时记住,已知可以将正交变换表示为相对于X轴和Z轴的三个旋转的组合:
A=Az(ξ)·Ax(ψ)·Az(ω),
其中ψ,ξ,ω是欧拉角(例如ψ是进动角;ξ是章动角;ω是固有旋转角)。
因此,矩阵A的计算如下:
Figure BDA0002425066820002162
Figure BDA0002425066820002163
欧拉角可以通过以下公式计算:
Figure BDA0002425066820002164
图198示出了根据示例性实施例的用于从摄像机的相对坐标系转换成绝对坐标系的计算出的角度。从一个坐标系到另一个坐标系的转换结果可以表示为:
Figure BDA0002425066820002165
在一些实施例中,在本文所述的摄像机或末端执行器的移动计算中(例如,移动摄像机或末端执行器),假定摄像机成像没有像差影响,并且三角形垂直于摄像机轴线的任何移动均不会变化其在成像上的大小。在某些情况下,移动计算算法可以计算摄像机的精确移动,但是以适当的精确度来进行。尽管如此,当摄像机接近目标或所需的摄像机/末端执行器位置时,所描述的算法会迅速减少误差,从而将其对最终定位的影响降到最低。
在某些实施例中,可以通过使用对象自己的轮廓点(或对象一部分的轮廓)来创建三角形标记以与对象一同使用。为此,从机器人助手或末端执行器的传感器(例如,摄像机)接收一系列点的n个点
Figure BDA0002425066820002171
这一系列点定义了对象的轮廓,如图所示。图199示出了根据示例性实施例的一系列点,这些点定义了将由末端执行器与之交互的对象的一部分。应当理解,对象轮廓的形状可以决定使用哪种方法或技术来获得三角形标记。
例如,一种根据对象轮廓计算三角形标记的技术假定:(1)对象是高度平面的,(2)对象的形状不是圆形或椭圆形。由于对象的轮廓具有可从成像的不同查看点区分的多个折弯,因此这些折弯可用作(或基于其)查找多边形边的向量并计算其边长和随后的边之间的角度,例如通过以下等式举例说明:
Figure BDA0002425066820002172
结合图200示出了先前方程的参数,其说明与对象轮廓的一系列点中的三个点相关的参数。由于这些参数是由末端执行器和/或机器人设备计算的,因此可以识别弯曲,如以下顺序所示:
Figure BDA0002425066820002173
Figure BDA0002425066820002177
其中a是定义在计算标记时试图识别的折弯的曲率的参数。当找到折弯时,三角形标记
Figure BDA0002425066820002174
的点是通过在弯折序列中截取边
Figure BDA0002425066820002175
Figure BDA0002425066820002176
来构造的,如图201所示。
如图201所示,单个轮廓可以包括多个弯折。应当理解,轮廓的任何弯折都可以用于计算标记。在一些实施例中,可以优选地使用具有较高曲率的弯折,这是因为可以从不同的摄像机成像角度更容易且高效地识别它们。
在一些实施例中,优选的是从摄像机的视角获得从中分析轮廓点的对象图像以创建标记,在该视角下,当对象放置在平行于对象定位的表面的平面上时,摄像机正在成像或直视该对象。一旦如此定位摄像机,就可以使用轮廓的点序列来创建或识别如本文所述的三角形标记。
在一些实施例中,棋盘标记(也称为棋盘形标记或棋盘格标记)可以用作其他标记的替代(例如,如图202A所示),或者与本文所述的其他标记结合(例如,如图202B所示),以识别对象的位置和其他特性。棋盘标记使摄像机能够以较高的精确度(例如,亚像素)来高效地识别内角。由于棋盘包含许多内角,因此可以使用棋盘结构的知识来补偿检测单个角的不准确性,这至少是因为每个角都应与其他几个角在一条直线上。然而,棋盘标记的一个主要缺点是它是对称的,从而使摄像机难以理解棋盘标记的顶部和底部。因此,如图202B所示,始终应将棋盘标记与其他标记或形状分析结合使用。
在一些实施例中,结合示例性图203,可以如下执行基于棋盘标记的定位:
一个或多个处理器可以使用棋盘标记器来校准与一个或多个操纵设备相关联的图像捕获设备(例如,摄像机),即,对末端执行器的摄像机进行校准。在一些实施例中,校准可以包括但不限于相对于棋盘形标记估计图像捕获设备的焦距、主点和失真系数。在一些实施例中,摄像机校准可以仅执行一次。
一个或多个处理器可以在目标对象的实时图像中识别棋盘标记中的方形槽的角的图像坐标,即,从捕获的图像中定位棋盘标记的内角,对其进行分析以识别其中感兴趣的点,诸如图202A中所示的白点。
此外,一个或多个处理器可以基于图像坐标将真实世界坐标分配给实时图像中的方形槽的角中的每个内角。假设真实世界坐标系的原点在棋盘标记的左上内角处,则棋盘标记的右上角的X坐标和Y坐标可以例如为:(6*单元_大小_毫米,0);棋盘标记左下角的X坐标和Y坐标可以是:(0,2*单元_大小_毫米,0)。因此,将真实世界的坐标分配给每个内角。
基于上述内容,末端执行器和/或机器人助手可以计算或识别以下信息等等,这些信息可与棋盘标记一起用以确定一个或多个操纵设备的位置并导航摄像机和/或一个或多个操纵设备:
摄像机参数(例如,焦距、投影中心、失真系数);
内角的图像上坐标(例如,以像素为单位);
内角的真实世界坐标(例如,以毫米为单位)。
在一些实施例中,真实世界坐标和图像上坐标可以被计算或彼此转换。在一个示例实施例中,这种转换可以表示为:
Figure BDA0002425066820002181
在此示例性表达中,
(u,v):是指图像上坐标(例如,在消除了切向/径向失真之后计算出的坐标);
fx,fy,cx,cy:是指摄像机的焦点和投影中心点;
R和T:是指旋转和平移矩阵,其可以通过将已知坐标放置到方程中并求解它们(例如,使用Ransac)来找到。
一旦知道或识别了R和T,就可以知道或识别摄像机相对于标记位置的位置,其中:(1)T1,T2和T3是左上角棋盘角的X,Y和Z坐标;(2)R11…R33是旋转分量,如下所示:
Figure BDA0002425066820002191
其中:
θ=绕x轴旋转(俯仰)
φ=绕y轴旋转(滚转)
Figure BDA0002425066820002192
在一些实施例中,重复校准、识别、分配和确定的过程,直到一个或多个操纵设备的位置等于最佳标准位置为止。
在一些实施例中,可以将相同的方法应用于在三角形标记的基础上进行定位,因为其顶点也相对于彼此处于固定位置,因此可以作为RT矩阵计算的基础。
仍然参考图188,在步骤8054将末端执行器5002r-1c和/或对象移动到位置0。在一些实施例中,位置0可以是末端执行器相对于要与之交互的对象的起始或默认位置。除了本文所述的其他技术(例如,基于真实世界和虚拟标记的定位、3D对象模板等)或对其进行补充之外,还可以使用特征分析技术来执行将末端执行器移动至位置0的操作。例如,当处理非标准对象时,可以使用特征分析,这是因为在许多情况下,非标准对象不能配备真实世界标记或有形标记(例如,棋盘标记),诸如本文所述的那些标记。因此,诸如形状和/或其他视觉特征之类的非标准对象特征可用于将末端执行器5002r-1c定位在位置0(和/或(例如,利用非标准对象)执行其他操纵)。应当理解,如本领域技术人员所知,本文所述的标记的类型是说明性的而非限制性的,并且可以使用标记的其他形状和类型。
在一些实施例中,可以针对非标准对象执行在步骤8054将末端执行器移动到位置0。在一些实施例中,非标准对象没有或可能不具有放置于其上的标记。因此,可替代地(或附加地),执行形状和视觉特征分析技术。此外,可能不适合3D模板匹配或基于标记的定位的一个或多个对象可以通过智能视觉特征分析进行处理,该分析会产生用于放置“虚拟标记”的坐标。可以进一步考虑使用这些虚拟标记来导航一个或多个操纵设备和/或配置在一个或多个操纵设备中的摄像机以退回到位置0。这种基于虚拟标记的技术可以用于诸如食材的对象和不具有固定形状和大小的其他类型的对象。不同类型的对象具有不同的适合于检测和定位的视觉特征,因此根据对象的类型,存在可以使用的多种类型的分析。
在一些实施例中,基于目标对象的类型,使用形状分析技术、粒子滤波技术和卷积神经网络(CNN)技术中的至少一种将虚拟标记放置在目标对象上。
开发并存储了一种用于对每种非标准对象或对象类型执行特征分析技术的算法。该算法被配置为,例如,通过分析非标准对象(例如,苹果)的一个视觉特征或视觉特征的组合,使用嵌入式摄像机(例如,如图187B所示)来检测图像上的捕获点等等。
为此,机器人助手系统可例如从环境库(例如,存储在云计算系统5006中)获得或下载用于各个对象的特征(例如,形状和视觉特征)分析算法。继而,可以使用(一个或多个)末端执行器的摄像机和/或末端执行器的其他传感器来对对象执行算法。可以将末端执行器使用该算法检测到的点视为虚拟标记,并以与上述结合真实世界标记的方式相同或相似的方式进行定位。图204示出了使用特征分析算法识别的非标准对象(例如,苹果)的特征(例如,形状、坐标)。
在一些实施例中,不适合3D模板匹配或基于标记的定位的、诸如非标准对象之类的对象(例如,食材、具有非固定大小和形状的对象)可以使用智能特征(例如,形状、视觉)分析算法和技术来进行处理或与之交互,该算法和技术会产生“虚拟标记”的坐标(例如,图204),可用于退回到位置0。因为不同类型的对象具有不同的视觉特征从而使它们不同地适合于检测和定位,根据对象的类型而使用多种类型的分析算法(例如,每个对象或对象类型对应一种算法)。
应当理解,虚拟标记可以由对应于对象的多个点构成。测量虚拟标记的点以计算它们的实际或相对特性或特征,所述特性或特征可以相对于彼此和/或相对于其他系统或组件,诸如通过其对虚拟标记进行成像的摄像机。例如,可以经测量或计算的虚拟标记的点或坐标的特征或特性可以包括它们的距离、取向、角度、倾斜度等。基于对虚拟标记特征和特性的测量,可以计算与虚拟标记相关联的对象的实际或相对特性。例如,所测量的虚拟标记的特性使得能够检测其距离、取向、倾斜度以及其他几何和位置数据。
在一些实施例中,基于目标对象的类型,使用形状分析技术、粒子滤波技术和卷积神经网络(CNN)技术中的至少一种将虚拟标记放置在目标对象上。
使用虚拟标记执行对象的视觉或特征分析的一个示例是形状分析技术,如图204所示。在形状分析技术中,最初,一个或多个处理器可以从与一个或多个操纵设备相关联的至少一个图像捕获设备接收目标对象的实时图像。在某些实施例中,形状分析技术包括估计对象的姿势。此外,当与目标对象的每一边的长度相比时,一个或多个处理器可以确定目标对象的形状以及目标对象的最长边和最短边。此后,一个或多个处理器可以基于目标对象的形状、目标对象的最长边和最短边来确定目标对象的几何中心。最后,一个或多个处理器可以在目标对象上投影等边三角形。在一些实施例中,等边三角形的每一边等于目标对象的最短边的一半,沿着目标对象的最长边取向,并且等边三角形的几何中心与目标对象的几何中心重合。一个或多个处理器可以将虚拟标记放置在等边三角形的每个顶点上,这意味着虚拟标记被设置或记录在定位于对象形状中心的等边三角形的顶点上。使用这些虚拟标记和摄像机的固有参数(例如,焦距、失真系数等),可以调整到对象的取向和距离,从而使一个或多个处理器达到位置0。
使用虚拟标记的另一种类型的视觉特征分析可以包括使用视觉特征的组合,诸如在特殊点附近计算出的梯度直方图、空间颜色分布、纹理特征等。每个特殊点都被视为虚拟标记位置的候选。对于每种类型的对象,都会为理想的虚拟标记位置计算出已知的或预定的特征值-也称为“理想值”。因此,一种方法包括识别或查找对象上最匹配“理想值”的位置。最初,一个或多个处理器可以从与机器人助手系统相关联的远程储存中检索与目标对象的理想位置相对应的一个或多个理想值。此外,一个或多个处理器可从与一个或多个操纵设备相关联的至少一个图像捕获设备接收目标对象的实时图像。此后,一个或多个处理器使用实时图像在目标对象的边界内生成特殊点。在生成特殊点时,一个或多个处理器确定在每个特殊点附近的视觉特征的组合的估计值,其中视觉特征可以包括梯度直方图、空间颜色分布和纹理特征中的至少一个。此外,一个或多个处理器可以将每个估计值与一个或多个理想值中的每个进行比较,以识别相应的近端匹配。最后,一个或多个处理器可以将虚拟标记放置在目标对象上与每个近端匹配相对应的每个位置处。
因为在一些实施例中,标记图案包括三角形,所以可能存在至少三个理想值和三个相应的最佳匹配位置,从而形成三角形虚拟标记。
使用虚拟标记的另一种视觉特征分析可以包括使用CNN技术检测任意或非标准对象上的虚拟标记。由于对象可能非常不同,因此可以针对每种类型的对象训练单独的模型。在执行阶段,一个或多个处理器可以从在与机器人助手系统相关联的远程储存中存储的库中下载与目标对象相对应的CNN模型。在下载库之后,一个或多个处理器可以基于CNN模型来检测目标对象上的位置以放置虚拟标记。
这三种方法都提供了位置,这些位置可以像虚拟标记一样进行处理,并可以像在对象上存在的真实标记一样用于定位。
应当理解,在一些实施例中,将末端执行器移动到位置0是末端执行器中的运动链与对象之间的交互的基本任务。这样,如果对象是标准的且环境也是标准的,则所有交互过程都可以是标准的。在这方面,识别并存储对象所在的环境的划分,从而可以实现环境的标准化。例如,可以将搅拌器放置在台上和桌子上,并以机器手(末端执行器)的操作手指放置在搅拌器的操作按钮上的方式,且在这两种情况下,都需要以不同的方式来抓取搅拌器。但是在这两种情况下,都将通过强化学习来训练机器人执行此类交互直到其正确抓取为止。一旦机器人末端执行器正确抓取了搅拌器,就可以将这种活动记录为该特定情况下的标准交互。
在一些实施例中,机器学习算法是假设集合,该假设集合在考虑训练数据之前即被采用并用于查找最优模型。机器学习算法具有3个广泛的类别,如图204B所示—
·监督学习—定义了输入特征和输出标签。
·无监督学习—未标注数据集,并且目的是发现隐藏的关系。
·强化学习—存在某种形式的反馈回路,并需要优化某些参数。
可以通过从将对象放置在操纵器中开始的训练系统来执行学习,然后应该对机器人设备进一步编程,以在某个点(其可以称为“测量点”)将对象带到摄像机系统。在某些实施例中,有必要将对象带到测量点,并从各个角度拍摄初始形状。接下来,教导机器人助手系统应如何抓取或操作特定对象。开发的机器人助手系统允许机器人设备改变抓取算法。每次机器人助手系统进行算法处理时,其都会将对象带到测量点,并检查形式是否匹配,这指示机器人助手系统已学会正确地拿取/抓取对象。这种机器人助手系统使得通过自身来学习和自动学习成为可能。通过具有测量点参数,强化学习系统可以长时间重复抓取一个对象,以尝试在相同的初始位置0正确抓取该对象,从而对活动进行各种修改。但是,它将始终检查将能确定是否属于成功情况的点。图204C示出了示例性机器学习算法的要点。
此外,通过交互的类型对非标准对象进行划分。在一些实施例中,当机器人助手系统正在抓取目标对象以进行移动时,成功情况创建利用了以下过程:扫描对象;创建规则(从整个大小);根据正确的抓取过程将对象划分为几种大小;在训练模式下进行关节活动建立(例如,以不同的方式抓取对象以了解抓取的机理并识别末端执行器的手指应准确定位的位置)。因此,该过程有助于识别对象的哪些大小允许以一种或另一种方式来抓取对象。但是,某些对象的大小可能很大,并且用一个末端执行器可能无法抓取这么大的对象,这意味着应由两个末端执行器来抓取,以免损坏目标对象。优选地应已知对象的一致性,这是因为它会在与对象的交互方面影响末端执行器压缩功能的力。
另外,在完成强化学习后,标准对象可能变为已知对象。机器人助手系统尚未学会与之交互或操作的标准对象被称为未知对象。在学习过程的周期完成后,标准的未知对象将成为标准的已知对象。因此,当人类借助运动捕获、视觉、视觉运动捕获、手套运动捕获和手套上不同类型的传感器向机器展示如何执行交互时,学习的周期从人类对对象的活动开始,。
此外,像位置0一样,强化学习也需要对象的最终取向位置。为了开始与对象进行操作或交互,机器人末端执行器应处于正确的位置,以便能够以正确的角度观察对象。从该最终取向位置开始,末端执行器或操纵器将以特定角度旋转,改变手指的速度和压缩,以学习如何抓取特定大小的对象。例如,可以通过两种方式执行此操作:在人类训练员的帮助下进行手动训练——当从位置0读取对象的形式时,以及系统完全按照所教导的方式抓取对象之后。然而,一个障碍是对象可能略有不同(例如,因为该对象与用于学习过程的对象不同)。在这种情况下,学习正是从这一时刻开始的:需要改变捕获参数,应当验证参数在一定范围内,应将对象带到测量点。最后,如果抓取了对象,则这是成功情况,如果没有抓取到对象,则这不是成功情况。通过搜索这些参数,系统可以找到每个对象的成功情况,并为其抓取、移动、操作或操纵找到正确的算法。
如示例性图205所示,本文描述的活动、交互和/或操纵,可以使用两个坐标系:(1)本地或对象与机器人取向的坐标,其在对象中具有原点或相对点;(2)全局坐标,指的是工作空间坐标系。在一些实施例中,位置0是指末端执行器相对于对象的位置,并因此使用本地坐标系来测量或识别。将操纵记录在本地坐标系中。记录或存储这样的坐标,包括末端执行器相对于对象的轨迹(例如,DX1、DY1、DZ1、Dangle1、DX2、DY2、DZ2……)。每次需要执行操纵时,都会相对于当前对象位置从本地坐标系到全局坐标系进行转换。继而,相对于运动链的当前关节值和工作空间模型,将其转换为关节值的精确序列(例如,以避免碰撞)。在一种情景下,当与对象交互期间同时存在标准对象和非标准对象时,可以训练一个或多个处理器记住末端执行器“围绕”对象的关节/手指的最终位置,以使机器人助手系统能够规划活动,实际上是对末端执行器的所有关节进行运动规划,并且将活动轨迹放在对象的目标点上。记录最终位置有助于优化末端执行器的活动,并通过理解每个关节的最终坐标来训练机器与末端执行器一起工作。
在对象上的末端执行器,实际上是机器人助手系统本身对整个运动链进行运动规划,以实现对象上的所需位置。在这里,关节的数量很重要(2、3或4个手指,平行抓爪,3轴抓爪,机器手),并且取决于抓爪的类型,关节在对象上的位置应根据抓爪的类型而定。实际上,机器人设备正在根据抓爪的类型和N量的交互对对象上的关节位置进行编程。为了将关节放置到对象的正确区域,同时避免与对象处理器发生碰撞,生成了运动链的运动规划。
仍然参考图188,一旦在步骤8054将末端执行器移动到位置0,则在步骤8056,系统确定是否存在必须执行或剩余要执行的交互。如果是,则在步骤8058,机器人助手系统在目标对象上执行一个或多个交互。在一些实施例中,使用属于或通信地耦接到机器人助手的嵌入式视觉子系统来执行通过机器人助手的交互。图206示出了根据示例性实施例的嵌入式视觉子系统。嵌入式VS在对象操纵或交互阶段(例如,步骤8058)上或期间帮助末端执行器或操纵器。如上所述,末端执行器配备有一个或多个嵌入式摄像机、结构化且平滑的灯、CPU和GPU模块。
每次操纵或交互都由固定的运动序列组成,这些运动序列会产生期望的结果(例如,成功点),尤其是当操纵器相对于对象的初始位置与训练过程中的初始位置(“位置0”)相同时。由于可以从各个方向到达一个对象,因此同一操纵有多种变化,针对不同的方向对这些变化进行了训练和记录或存储。每种变化都有其自身的位置0。在执行阶段,中央控制单元分析工作空间模型,并确定哪个方向对要操纵的对象是最佳的,然后基于此选择适当的位置0。有关特定对象类型的信息可以从环境库中下载。继而,所选择的位置0、操纵ID和对象的近似坐标等等将被发送到通用末端执行器(操纵器)。
基于此,可以按以下方式执行交互:
步骤1:使用工作空间模型中的近似坐标,将末端执行器或操纵器预先定位在对象上方;
步骤2:对操纵器进行微调和/或定位到对应位置0;
步骤3:(例如,基于固定的运动序列)执行操纵或交互;
步骤4:验证操纵结果以(例如,检查是否实现成功点),如下面在步骤8060中进一步详细描述的。
在一些实施例中,嵌入式视觉子系统在以上步骤2和/或4帮助末端执行器或一个或多个操纵设备,如以上结合步骤8054(移动到位置0)以及在下文结合步骤8060(验证交互结果)所阐明的。
继而,在步骤8060,一旦已经执行了交互(例如,运动序列),则验证其结果。在一些实施例中,可以以相同的方式来执行与标准对象和非标准对象的交互的验证。例如,可以通过分析从各种嵌入式视觉传感器获得的图像来执行验证。可以使用针对成功操纵和失败操纵的示例训练的卷积神经网络等来执行这样的分析。例如,如果交互或操纵是“启动搅拌器”并且预期结果(例如成功点)是“点亮灯泡”,则针对其中灯泡打开和熄灭的搅拌器图像结合对应的真实结果(ground truth)来训练卷积神经网络。在执行交互期间,中央控制单元可以从环境库中下载相关的神经网络,并将其应用于从嵌入式摄像机获得的图像,从而查明是否实现了成功点(例如,打开灯泡)。可以连续获得失败操纵和成功操纵的图像,并将其发送到中央系统(例如,中央用例实验室)以进行储存、分析和训练。通过针对失败操纵和成功操纵的示例对神经网络进行训练,能够自动找到每种特定对象类型和操纵的独特特征。
由于记录来自一个或多个传感器中的每个传感器的数据和成功点坐标以及人手所有手指的活动,并将这些记录的数据进一步发送到机器人助手系统,因此在一个或多个对象上执行操作的结果逐渐变为预期的成功因子。为了实现成功因子,机器人助手系统中的强化学习系统正在基于来自操作器的原始数据寻找并选择末端执行器对对象的活动的不同组合,以针对使用的特定末端执行器模型(取决于末端执行器的关节位置和自由度数量)优化这些活动。成功点可以是交互的结果,也可以是手指在对象上的位置,这取决于抓爪的类型。成功点用于开始进行强化学习,这使得机器学习如何从整体情况中获得百分之百情况的成功点。
此外,迭代进行步骤8056、8058和8060,直到在步骤8056中确定不存在根据菜谱算法剩余要执行的交互为止。在此处,过程在步骤8062处结束,指示菜谱已完成。
在一些实施例中,机器人辅助环境5002和/或机器人辅助工作空间5002w可包括抽屉系统,该抽屉系统包括用于机器人操作的抽屉。图207A、207B、207C和207D示出了储存单元(抽屉)的示例性实施例,并且现在对其更详细地描述。电子库存系统可以包括一个或多个储存单元。作为示例,储存单元可以是抽屉、架子等,其可以存放一个或多个对象。以下,以单个储存单元来说明电子库存系统。然而,这不应被解释为限制,因为电子库存系统可以包括一个以上的储存单元。在一些实施例中,储存单元可具有可在其上执行一个或多个动作的门。作为示例,一个或多个动作可以包括但不限于打开门、关闭门、锁定门和解锁门。该储存单元通常包括一个或多个图像捕获设备、一个或多个传感器、一个或多个光源以及一个或多个嵌入式处理器。作为示例,一个或多个图像捕获设备可以是安装在储存单元中的摄像机。在一些实施例中,一个或多个图像捕获设备可以实时捕获存放在储存单元中的一个或多个对象中的每一个对象的一个或多个图像。此外,一个或多个图像捕获设备可以将一个或多个图像中的每一个发送到一个或多个嵌入式处理器和显示屏。在一些实施例中,显示屏可以被配置在储存单元的外表面上。在一些实施例中,显示屏可以位于储存单元的前门上。显示屏可以显示从储存单元中配置的一个或多个图像捕获设备接收的一个或多个图像或视频。在一些实施例中,显示屏可以实时地显示由机器人助手系统对存放在储存单元中的一个或多个对象执行的一个或多个交互。在一些实施例中,一个或多个图像捕获设备可以进一步用于许多其他目的。例如,考虑储存单元是抽屉。在一些实施例中,储存单元的构造使用户能够观察到每个储存单元内部存在哪些对象,而无需实际打开储存单元或储存单元的门。而且,储存单元的构造使用户能够在显示屏上可视化机器人助手系统与一个或多个对象的交互,而同时我们也可以看到机器人助手系统。每个显示屏都包括一个地址以及安装在传感器库存中它们自身的对应信息。这样,我们就可以从安装在一个或多个储存单元中的每一个的所有显示屏中获取所有信息。这样的抽屉系统可以识别并提供存放在抽屉中的一个或多个对象中的每一个的观察位置,并在位于门前侧的显示屏上显示一个或多个图像,以用于厨房和抽屉的可用性以及用于快速搜索抽屉中的内容物。可以处理一个或多个图像以通过它们的类型、标题、位置和方位、姿势取向等来识别位于抽屉中的对象。该信息可以存储在虚拟厨房模型中,以使机器人设备系统能够与抽屉中的对象进行交互,或者让人类在确切的抽屉中搜索具体对象。从储存单元中的一个或多个图像捕获设备获得的数据可以实时更新,以允许机器人设备系统能够与储存单元中的一个或多个对象中的任何一个执行无错误的交互,而无论这些对象在何时被放置在储存单元中的何处。
此外,配置在储存单元中的一个或多个传感器向一个或多个嵌入式处理器中的至少一个提供与一个或多个对象中的每一个的位置和取向相关联的对应传感器数据。作为示例,一个或多个传感器可以包括但不限于温度传感器、湿度传感器、超声传感器、激光测量传感器以及声纳(SONAR)。
此外,一个或多个光源可以包括但不限于发光二极管(LED)和灯泡。一个或多个光源被配置为帮助储存单元中的照射,使得一个或多个图像捕获设备可以捕获存放在储存单元中的一个或多个对象的清晰图像。基于一个或多个图像,用户甚至可以在不打开储存单元或储存单元的门的情况下查看储存单元内部的内容。
此外,配置在储存单元中的一个或多个嵌入式处理器通过通信网络与机器人助手系统的中央处理器交互。在一些实施例中,通信网络可以是有线网络、无线网络或有线和无线网络的组合。在一些实施例中,中央处理器可以远程定位或可以在配置了储存单元的环境内配置。一个或多个嵌入式处理器可基于一个或多个图像和传感器数据来检测存放在储存单元中的一个或多个对象中的每一个。此外,一个或多个嵌入式处理器可以被配置为将一个或多个图像和传感器数据发送到中央处理器。在一些实施例中,一个或多个嵌入式处理器可以实时或周期性地发送传感器数据和一个或多个图像。
在一些实施例中,检测一个或多个对象中的每一个可能意味着识别并定位一个或多个对象。此外,检测一个或多个对象中的每一个可以包括:检测一个或多个对象的存在/不存在,估计存放在一个或多个对象中的内容物,检测一个或多个对象中的每一个的位置和取向,读取附属于一个或多个对象中的每一个的视觉标记和无线电类型标记中的至少一个,以及读取对象标识符。在一些实施例中,可以基于CNN或任何其他机器学习分类器(诸如决策树、支持向量机(SVM)等)来检测一个或多个对象的存在/不存在,可以利用其来训练一个或多个嵌入式处理器和中央处理器。在一些实施例中,可以用满储存单元、空储存单元等的示例图像来训练一个或多个嵌入式处理器和中央处理器。此外,通过使用相同的CNN或机器学习技术,一个或多个嵌入式处理器或中央处理器可以估计存放在一个或多个对象中的每一个的内容物。此外,通过在示例图像上进行训练,使用基于区域的CNN检测一个或多个对象中的每一个的位置和取向。可选地,可以使用基于标记的检测技术来细化一个或多个对象的姿势。此外,一个或多个嵌入式处理器可以读取附属于对象的视觉标记、定义的对象ID、对象位置/取向。在一些实施例中,一个或多个嵌入式处理器可以包括检测附属于每个对象的无线电类型标记、定义的对象ID、近似的对象位置/取向。与其他方法相比,上述技术的组合可以通过确认并仔细检查结果来提高电子库存系统的可靠性。在一些实施例中,将一个或多个检测到的对象中的每一个添加到与电子库存系统相关联的电子库存中,其继而与中央处理器共享,从而可以在执行菜谱或在预检查期间容易地找到一个或多个对象。
在一些实施例中,用于储存单元内部的对象检测的CNN不同于用于通用摄像机系统的网络。其被用于(鱼眼式)摄像机和照明条件,特定于储存单元。
此外,在一些实施例中,储存单元可以配有专用电子系统,该专用电子系统允许使用伺服电动机和引导系统在储存单元的门上自动执行一个或多个动作。作为示例,一个或多个动作可以是关闭选项和打开选项。此外,储存单元可以配置有电控锁,该电控锁可以应用于储存单元以锁定和解锁储存单元的门,从而防止未授权的抽屉关闭或打开,或使用户能够编程仅在一天中的许可时刻和时间对许可的食材进行访问。
在一些实施例中,电子库存系统中的每个储存单元由中央处理器远程控制。中央处理器从配置在储存单元中的一个或多个嵌入式处理器接收实时数据,以本地控制储存单元。一个或多个嵌入式处理器中的每一个都可以集成到对等网络中,中央处理器也连接到该对等网络中。中央处理单元经由有线或无线协议与一个或多个嵌入式处理器通信。每个处理器系统管理至少一个盒子。其位于盒子的即时环境中。为了减少在家具或任何适用的储存结构内部执行的电缆数量,一个或多个嵌入式处理器使用电源线和数据线。例如,来自最近的以太网供电(PoE)交换机的一根Cat5e电缆可以连接到每个嵌入式系统。位于一个位置的一组盒子可以由具有PoE功能的“本地”交换机控制,而该交换机继而可以连接到更高等级的交换机等,从而形成数据传输网络的复合体。连接一组盒子的示例在图207E中示出,其示出了储存单元的主组件的示例方案。此外,图207F示出了一个或多个嵌入式处理器的模块的构造性布置的示例。在一些实施例中,处理器可以被嵌入在主处理器或微控制器系统中。在图207F中,存在一个带有盒子的常规路缘石的垂直截面。板堆安装在路缘石的后壁,而传感器、摄像机模块和背光模块放置在刚性支架上的盒子上方。
电子库存系统(也称为数字库存系统)(一种允许在各种储存单元的库存上构建数据的系统,所述储存单元包括盒子、抽屉式盒子、开放式储存架、封闭式储存架、容器、保险箱等)用于存放任何类型的对象,包括以下模块集合:
基板——带有中央处理器、随机存取存储器(RAM)和非易失性存储器的模块;示例性的基板是Beagle Board Black rev.C 1或功能与基板相似的任何处理器板,具有良好的生态系统。
云存储器,包括对象数据库和库存数据库。
扩展板——一种模块,包括用于插入外部模块和传感器的必要连接器、这些模块和传感器的电源和控制电路以及基板的电源。作为示例,扩展板的元件可以包括但不限于PoE分离器、基板电源、触摸屏接口连接器、一个或多个热传感器连接器、一个或多个湿度传感器连接器、热电冷却块电源、热电冷却块连接器、一个或多个风扇连接器、嵌入式通用串行总线(USB)集线器(2-4个端口)、照明模块连接器、照明模块电源、电容式或磁性抽屉接近传感器连接器、门锁连接器和其他所需的传感器和控制设备连接器。在一些实施例中,从构造上来说,扩展板是基板的载体,并且可以包括基板安装所需的连接器,并且还允许将板堆机械地附接在一起。
一个或多个图像捕获设备——包括图像传感器(诸如互补金属氧化物半导体(CMOS)或电荷耦接器件(CCD))的设备,该设备与镜头组合在一起。一个或多个图像捕获设备通过提供电源和控制的电缆连接到扩展板。
一个或多个光源——光源充当一个或多个图像捕获设备的伴随物,其中示例性光源包括闪光照射的LED灯。一个或多个光源通过提供电源和控制的电缆连接到扩展板上。在一些实施例中,基板可以包括光源集合,该光源集合包括:LED灯、结构灯、红外灯、荧光灯和涂料和处于不同光范围但不限于的任何其他光源、电源电路以及控制键。此外,一个或多个光源可以以菊花链的方式连接,从而确保均匀照射储存单元的体积。
一个或多个传感器——例如,一个或多个传感器可以包括但不限于温度传感器、湿度传感器、声纳、激光测量设备、作为红外灯需求馈线(IRDF)的无线电类型标记、近场通信(NFC)检测传感器以及其他类型的传感器,它们能够识别不同的对象及其对应的位置。在一些实施例中,一个或多个传感器可以是任何与UCV兼容的模块,诸如ELP-USB500W02M-L212,从而允许安装可互换的M8/M10镜头3。
嵌入式软件:一个或多个嵌入式处理器可以配置有嵌入式软件,该嵌入式软件一方面允许与连接到扩展板的一个或多个传感器、一个或多个图像捕获设备以及一个或多个光源进行交互,而另一方面允许与运行在中央处理单元(以下称为服务器)上的软件进行交互。在一些实施例中,嵌入式软件可以使一个或多个嵌入式处理器能够:支持足以用于传输控制协议(TCP)/互联网协议(IP)或类似堆栈操作的片上系统(SoC)硬件组件,引导(启动)内置非易失性存储器中的电子库存系统,在中央处理器上进行自我注册,控制储存单元的位置,以自动模式并通过中央处理器的明确请求获得储存单元中内容物的图像,从连接的温度和湿度传感器中累积遥测信息,将累积的遥测信息周期性且明确地发送到中央处理器,服务器可配置的热电冷却器元件控制过程,服务器对盒子锁的远程管理以及其他所需的额外功能。
图207G示出了电子库存系统中的客户端-服务器环境的各种组件。从软件的角度来看,电子库存系统中有许多客户端和服务器。作为示例,一个或多个储存单元或储存单元的网络可以被认为是客户端,而诸如机器人控制服务器、网络时间协议(NTP)服务器等之类的中央处理器模块可以被认为是客户端-服务器环境中的服务器。
诸如图208A至图208D所示的那些示例的计算机控制厨房,可以由本文描述的机器人设备来管理。这样示出的厨房配置使得能够将厨房用具存放在预定的地点,以利于它们可由机器人和人类取得。此外,通过将洗碗机集成到厨房模型中,可以洗涤位于或定位于洗碗机内部的用具和仪器。即,计算机控制的厨房可以包括集成技术,以例如存放用具并提供洗碗能力。
在一些实施例中,储存被设计或配置为供机器人设备最佳使用(例如,而不是供人类使用)。储存可以具有不同的访问方式,例如,从要由机器人访问的烹饪体积的侧面以及从要由人访问的厨房的正面。
如图208A至图208D所示,在一些实施例中,洗碗机中的厨房用具可以被悬挂在专门配置的吊钩/挂钩上。当洗碗机开启时,以不同角度这样定位悬挂在吊钩上的厨房用具并且洗碗机水循环能够有效地洗涤和干燥储存内的用具。洗碗机中的吊钩和搁架的具体系统使得能够保持或维护、洗涤和干燥不同类型的厨房用具,包括例如:烹饪锅、滤网、煎锅等。在一些实施例中,洗碗机中存在用于专门大小材料的盘子或其他用具、锅盖、杯子、勺子、刀子、叉子等的具体位置。
洗碗机的盖门可以作为传统的厨房门以外部方向打开,也可以通过使用电子机构来滑动(例如,向上、下、左右)打开。洗碗机的盖门经过专门配置,并将与洗碗机的储存块相邻,以防止漏水。
在一些实施例中,机器人助手系统可以被配置为与触摸屏和其他类似技术(诸如轨迹板、触摸表面等)交互。触摸屏和类似的触摸表面可以指的是允许机器人助手系统通过在其上执行的触摸或接触来与计算机交互的界面。这些界面可以是显示屏,其除了被配置为经由触摸或接触接收输入之外,还可以如在储存单元显示屏的情况下所阐明那样的显示或输出信息。在一些实施例中,触摸屏或触摸表面可以是电容性的,这意味着它们依靠电性质来检测在其上的接触或触摸。因此,为了检测接触,电容式触摸屏或表面识别或感测在其上的区域(例如,坐标)处发生的电压变化(例如,下降)。计算设备和/或处理器识别与触摸屏或触摸表面的接触并且可以执行适当的对应动作。此外,触摸屏可以具有检测给定显示区域内触摸的能力。触摸屏可以由3个基本元件构成,即传感器、控制器和软件驱动器。触摸屏技术的每种变型都具有其自己独特的特性,并具有各自的优势。作为示例,触摸屏的不同变型可以包括但不限于电阻式触摸屏、电容式触摸屏、表面声波(SAW)触摸屏、红外触摸屏、光学成像触摸屏和声脉冲识别触摸屏。此外,可以从包括在机器人系统和/或末端执行器中的电动机电端子、电池或其他电源获得电荷。末端执行器的部分可以由具有导电性质的材料制成,或用具有导电性质的材料或涂料覆盖,该导电性质使电荷能够从其来源穿过末端执行器及其电容性部分(例如指尖)直到触摸屏或表面。
图209A和209B示出了根据示例性实施例的机器人助手(例如5002r)的组件的框图。如图209A和图209B所示,机器人助手可以包括与或和各种子系统互连的主系统,诸如机器人助手的末端执行器。如图所示,主系统可以包括主处理器、主存储器、静态存储器、视频显示器、连接到网络的网络接口设备、输入设备、光标控制设备、包括存储指令的机器可读介质的驱动单元,以及信号生成设备。主系统的组件可以通过通信总线等进行通信。每个嵌入式子系统可以包括各自的嵌入式处理器、存储指令的主存储器、静态存储器、网络接口设备、输入设备、光标控制设备、具有机器可读介质和指令的驱动单元、信号生成设备以及一个或多个传感器。传感器可以包括运动链触觉变量、二进制开关、奇异变量(singularvariables)、摄像机(3D视频摄像机、视频摄像机、双/三目视频摄像机)、灯、压力传感器、湿度传感器、温度传感器等。子系统的这些组件中的每一个都可以通过通信总线等进行通信。主系统和子系统可以彼此通信,例如以通信数据(例如,用于存储器映射)和/或发送指令)。图9中示出的系统和子系统可以根据需要被配置为执行本文所述的机器人助手处理技术。
较高层级的主处理器(也称为中央处理器)可以将命令发送到较低层级的处理器(在运动链中也称为一个或多个嵌入式处理器)。末端执行器的关节活动由底层级的嵌入式处理器确切或精确地执行。因此,用于交互的最终命令由中央处理器生成,并且命令的直接执行由一个或多个嵌入式处理器执行。低层级处理器的数量可能会改变并且不限于确切数量。末端执行器的直接操作和算法执行由嵌入式处理器和运动链执行。运动链由本地驱动器单元操作,如果需要可以将其切换到主处理器的驱动器单元。嵌入式处理器和主处理器的存储器也可以彼此之间进行映射。在此提供了示出处理器、存储器和其他硬件的详细示例性系统图以及详细说明。一个或多个嵌入式处理器可以利用关于当前执行的命令的状态以及所有引起的变化的信息来实时更新工作空间模型。该信息可以包括但不限于一个或多个对象的状态、姿势(位置和取向)和速度、对于嵌入式摄像机可见或由传感器达到、当前和先前操纵的成功检查结果以及安全检查结果(存在非预期对象、烟雾和火灾检测等)。更新的工作空间模型经由存储器映射或其他机制与中央处理器共享。
此外,在所示的架构中,机械化的复合体被视为分层互连的子系统的集合。在层次结构的每个层级上,对应子系统处理来自底层子系统的输入流,并将处理结果传送到更高的子系统。因此,形成了高层级管线,在该管线的每一级都对数据进行变换,这在理想情况下减少了流量。从图中的数据路径的角度,显示了一种方法——从操纵器传感器到一组机器人的控制中心。该方案可以视为双向数据管线。此外,从下至上,从诸如视频流、温度、湿度、加速度计、电动机力的反馈值等物理环境的传感器,可以将数据转换为向量对象描述符、轨迹和当前操纵器位置。可以将一个或多个对象识别为某个工作空间的参与者:“本地”、“机器人”、“全局”。此外,存在将像素信息简化为向量,将向量简化为对象,将对象简化为工作空间元素等的情况。
此外,除了共享命令外,中央处理器和一个或多个嵌入式处理器还可以共享工作空间模型等,所述工作空间模型可以包含有关一个或多个对象中的每一个的位置、大小和类型,表面材料,重力方向,对象重量,方向,速度,预期位置等。这可以使一个或多个嵌入式处理器能够根据相邻对象的位置和大小(例如,以避免碰撞)、重力方向、重量、表面特性等来规划对当前对象的操纵。
工作空间模型的所有这些信息(例如重力、对象的重量、表面等)都可以用于强化学习,这是训练阶段的一部分,在该阶段中针对任何种类的对象、交互和初始条件学习最佳的机器臂和末端执行器活动。通过这种方式,嵌入式处理器可以基于当前的工作空间模型选择并执行最佳的运动链和末端执行器活动。中央处理器可以使用中央摄像机系统或通过从嵌入式摄像机收集信息来维护最新的工作空间模型。
此外,图209C示出了三层组成1,而图209D示出了三层组成2,其包括诸如中央处理器和运动链处理器系统的顶层级子系统的组成。图209C和图209D中所使用的各种图形符号列在下表1中。
Figure BDA0002425066820002341
表1
此外,图209C和图209D中使用的所有缩写的完整形式列在下表2中。
Figure BDA0002425066820002342
Figure BDA0002425066820002351
表2
宏观-微观操纵子系统的分离
在一些实施例中,宏观-微观操纵子系统在逻辑和物理层级上分离的目的是将规划器和控制器上的计算负荷(尤其是对于所需的逆运动学计算)限制在允许系统实时操作的水平上,其中采样率以数百赫兹至数千赫兹为单位进行描述。为了实现这一目的,尤其是对于超出典型6自由度的复杂机器人系统来说(诸如由带有手指的手的手臂、多臂或甚至是移动(经由腿或轮子)人形机器人组成的系统),将系统在物理和逻辑层级两者上划分成子系统是至关重要的,这些子系统具有在专用总线上运行的单独控制器和处理器设备,每个子系统仅负责完整运动链的子部分,同时由能够同步子部分的规划和执行器系统监督来完成一项理想的任务。这只能通过使用具有互连总线的独立分布式处理器和总线架构以及监控规划器和控制器来实现。在我们的情况中,物理和逻辑划分是根据运动链的长度(<6自由度)进行的,并且还基于工作空间的能力和对机器人系统的要求,该机器人系统具有可移动基座以及手臂和手腕(实现6自由度;3个平移和3个旋转),能够在较大的工作空间进行较粗略的运动,并带有附接到其上的末端执行器,该末端执行器在此情况下是多指手和/或工作空间较小但运动分辨率和保真度要高得多的工具。
尽管可以想到一种动态方法,从而使用智能子系统分离规划器在任何所需的时域层级(基于任务或甚至在每个控制器采样步骤)定义宏观/微观操纵子系统,从而提供一个以最佳和最小的计算负荷水平运行的系统,但是这会增加系统的实质复杂性。在本公开的优选实施例中,将整个物理系统先验地逻辑和物理分离成其宏观操纵子系统和微观操纵子系统,每个子系统基于更加真实世界和计算激励的层级来执行它们自己的专用规划和控制任务。所实现的分离允许使用公知的实时逆运动学规划器,以进行所有自由度的自由空间平移和旋转活动,即3个平移(XYZ)和3个旋转(滚转、俯仰、偏航),最多可添加到6个自由度。除此之外,我们还可以使用一个单独的多自由度逆运动学规划器,该规划器解决剩余的操纵元素,即手掌和手指及其附接的工具/器具和器皿,从而将整个逆运动学规划解耦为多个计算可管理处理集合,每个集合都能够为其各自(子)系统的每个系统实时提供解决方案。对于超出固定关节连接系统(即关节连接臂/手系统)的工作空间活动,可以使用单独的规划器,该规划器允许使用粗略定位系统(在我们的情况下为笛卡尔XYZ定位器)来为所述系统提供逆运动学解决方案,其可以将可用工作空间重新定位在手臂/手系统周围(类似于使机器人系统沿导轨移动以到达工作空间中关节连接机器臂无法到达的部分)。
定义
专用:在前面的描述中,术语“专用”可以指仅由特定元件或子系统使用的硬件元件,诸如处理器、传感器、致动器和总线。特别是,宏观操纵系统和微观操纵系统中的每个子系统都包含利用其自己的处理器、传感器和致动器的元件,其仅负责与它们相关联的硬件元件(肩膀、手臂关节、手腕、手指等)的活动。
适当排序:术语“适当排序”可以指的是一组连续指令,在我们的情况下即为时间上连续的基于时间的活动指令,将该指令发布给每个操纵子系统中的一个或多个机器人致动元件。“适当排序”的指令集合的含义承载了关于以下的知识:高层级规划器已经创建了所述指令并将它们串联起来放置在一个序列中,以确保每个被寻址子系统中的每个致动元件都将执行所述指令,从而实现适当同步的运动集合,以实现期望的任务执行结果。
粗略:幅度在特定子系统可达到的最大工作空间尺寸的75%以内的活动。例如,操纵器手臂的粗略活动是指在所有可能的方向上,通过机器臂本身的最大三维范围所描述的体积内包含的最大尺寸的75%以内的任何运动。此外,此类系统的典型运动分辨率(取决于许多因素,诸如传感器分辨率、控制器离散化、机械公差、装配倾斜度等)最多为所述最大工作空间尺寸的1/100至1/200。因此,如果一个人类手臂大小的机器臂可以到达直径6英尺的半球内的任何位置,则其最大可分辨(以及相应地可控制)运动增量在整个范围内将介于0.072英寸至0.14英寸之间。
精细:在微观操纵子系统的三维工作空间的最大尺寸的75%以内的活动。例如,多指手的工作空间可以描述为三维椭圆或球;最大尺寸(椭圆的长轴或球的直径)将代表精细运动的最大尺寸。此外,这种大小的系统的典型运动分辨率(取决于许多因素,诸如传感器分辨率、控制器离散化、机械公差、装配倾斜度等)最多为所述最大工作空间尺寸的1/500至1/1,000。因此,当人类大小的机器手可以到达直径6英寸的半球中的任何位置时,其最大可分辨(以及相应地可控制)运动增量在整个范围内将介于0.0125英寸至0.006英寸之间。
图600描绘了典型的宏观/微观操纵系统的物理结构。
所提出的在真实环境中运行的机器人系统已划分成三(3)个单独的物理实体,即关节连接基座,其可能包括上肢(传感器头部)和躯干以及链接的附属肢体,所述附属肢体通常为具有多个不同类型自由度的关节连接串行配置臂(但不一定是)。第二,末端执行器,其包括具有各种手臂末端(EoA)工具(诸如手指、对接夹具等)的手腕;以及第三,领域应用本身,诸如完全仪器实验室、浴室或厨房,其中后者将包含烹饪工具、锅/平底锅、用具、食材、用户交互设备等。
典型的操纵系统,特别是那些需要在较大的工作空间上具有相当大的移动性,同时仍然需要可观的端点运动精确度的操纵系统,可以在物理上和逻辑上细分为宏观操纵子系统以及微观操纵子系统620,该宏观操纵子系统包括一个大型工作空间定位器640,其耦接有包括用于粗略运动的多个元件610的关节连接体642,该微观操纵子系统620用于精细运动,这两个子系统物理地接合并与它们在其中操作的环境630交互。
对于较大的工作空间应用来说,其工作空间超出了典型的关节连接机器人系统的工作空间,因此可以通过添加一个定位器(通常在自由空间中)从而允许在XYZ(三个平移坐标)空间中移动来增加系统的范围,如640所描绘的从而允许工作空间重新定位643。这样的定位器可以是能够定位关节连接体642的可移动轮式或腿式基座、高空作业平台,也可以简单地是龙门式正交XYZ定位器。针对人形类型配置应用的此类关节连接体642是可能的物理机器人实例之一,所述关节连接体642将描述互连元件610的物理集合,包括上肢617和链接的附属肢体616。宏观操纵子系统610和640中的这些相互链接的元件将由仪器化关节连接和控制器致动的子元件组成,包括充满各种环境感知和建模感测元件的头部611,其连接到仪器化关节连接和控制器致动的肩部躯干612和仪器化关节连接和控制器致动的腰部613。躯干中的肩部可具有连接于其的链接的附属肢体616,诸如一个(典型地为两个)或更多个仪器化关节连接和控制器致动的关节臂614,每个关节臂将附接有仪器化关节连接和控制器致动的手腕618。还可以将诸如一个或多个腿615的移动性元件连接到腰部,以便机器人系统能够在更加扩展的工作空间中操作。
物理附接的微观操纵子系统620用于需要精细位置和/或速度轨迹运动以及交互力/转矩的高保真度控制的应用中,而宏观操纵子系统610无论是否耦接到定位器640,均无法感测和/或控制特定领域应用所需的水平。通常,微观操纵子系统620附接至仪器化关节连接和控制器致动的手腕618的每个已链接附属肢体616接口安装位置。可以将各种仪器化关节连接和控制器致动的手臂末端(EoA)工具625附接到所述(一个或多个)安装接口。尽管手腕618本身可以是仪器化关节连接和控制器致动的多自由度(DoF)(诸如以滚转/俯仰/偏航的典型三自由度旋转配置)元件,其还是一个安装平台,可以选择在该安装平台上附接高度灵巧的仪器化关节连接和控制器致动的多指手,包括带有手掌的手指622。其他选择还可以包括被动或主动可控的固定接口623,以允许抓取旨在与之配合的专门设计的设备,允许多次在机器人和设备之间进行刚性的机械以及电气(数据、电源等)接口。所描绘的概念不必限于附接带手指的手622或固定设备623的能力,而是可能附接其他设备624,其可以包括刚性地锚定到表面,或者甚至其他设备。
可以形成微观操纵子系统620的一部分的各种末端执行器626允许通过各种设备630在机器人系统和环境/世界638之间进行高保真度交互。交互的类型取决于领域应用639。在领域应用是具有机器人烹饪系统的机器人厨房的情况下,将与诸如烹饪工具631(威士忌、刀子、叉子、匙子、拂子等),包括锅和平底锅632等的器皿,诸如烤箱、电打蛋器或电动刀等的用具633,用以处理和分配的烹饪食材634(诸如香料等)等元素发生交互,并甚至在菜谱中或由于其他操作考虑而需要进行人机交互的情况下与用户635进行潜在的实时交互。
图700描绘了宏观操纵子系统和微观操纵子系统内的主动作块的逻辑图以及专用于每个子系统的相关联微操纵库。
通过采用以下描述的架构,可以将现有的(正在审查中的)专利IP(诸如Moley的微操纵)包含在一个框架中,该框架允许包含细化的末端执行器感测(用于细化和更准确的真实世界接口感测),引入宏观的(通过或来自关节连接基座的整体感测)和微观的(末端执行器与具体任务/烹饪元素之间的本地具体任务感测)层,以允许基于在粗略操纵和精细操纵(以及相应地定位、力/转矩控制、产品处理和过程监控)之间的物理划分来使用和更新(经由学习)连续的微操作库,在宏观和微观层面上采用分布式多处理器架构,引入“位置0”概念以用于处理任何环境元素(工具、用具、平底锅等),使用诸如固定元素和标记之类的辅助工具(结构化目标、模板匹配、虚拟标记、RFID/IR/NFC标记等),以提高对接/处理的速度和保真度并改善微操纵、用于工具和锅/平底锅以及器具/容器/食材储存和访问的电子库存系统。
提供新的宏观/微观区分,从而允许区分微操纵库的类型及其相关描述符,以及基于末端执行器中包含的更加本地化且精确度更高的传感元件来提供改善的和具有更高保真度的学习结果,而不是依靠通常作为关节连接基座的一部分(并安装在其上)的传感器(其用于较大的视野,但由此当其在“产品接口”处(其中烹饪任务主要发生在当其进行决策制定时)监控更精细的活动时分辨率和保真度也较低)。
图700清楚地说明了由以下操作组成的总体结构:(a)使用传感元件对周围环境进行成像/绘制,然后(b)基于存储在微操纵库中的基元创建运动规划,该运动规划被(c)转换为可动作的(机器可执行的)(位置/速度和/或力/转矩的)关节/致动器层级命令,以及(d)传感器的反馈回路,用于监控和进行分配的任务,同时(e)还从其执行状态中学习以改进现有的微操作描述符以及相关联的库,其可能不会变化。
但是,增加的区别是,分别在关节连接基座和末端执行器上具有基于宏观和微观层级感测系统的宏观和微观层级动作。所述感测系统然后执行相同的功能,但是在单独的微操纵数据库中创建和优化描述符和微操纵,这些数据库均被合并为各个系统从中提取的单个数据库。此外,所述宏观/微观层级的划分还使我们能够推动(从而试图保护)
——宏观(基座)和微观(末端执行器)层级的感测系统的存在和集成(各种传感元件可能包括摄像机、激光,触觉、任何基于电磁频谱的元件等),
——在宏观和微观层级上应用各种学习技术,以适应于不同的微操纵库,这些库适合于不同层级的操纵(诸如使用宏观微操纵数据库进行的较为粗略的活动和关节连接基座的姿势摆放,以及使用微观微操纵数据库的各个末端执行器更精细和更高保真度的配置和交互力/转矩),并因此各自具有更好地适用于执行/监控/优化所述描述符及其相应数据库的描述符和传感器,
——分布式和嵌入式处理器和传感架构,以及实时操作系统和多速总线及储存元件的需求和应用,
——使用“位置0”方法,无论是借助标记还是固定物,都有助于(可靠且准确地)获取和处理任何所需的工具或器具/锅/平底锅或其他元件,以及
——仪器化库存系统(用于工具、食材等)和智能器具/容器/食材储存系统的接口。
在图700中,作为两层级宏观和微观操纵子系统(分别为610和620)之一的多层级机器人操作系统,包括宏观层级关节连接和仪器化大型工作空间的粗略运动关节连接和仪器化基座710,其连接到微观层级精细运动高保真度环境交互仪器化EoA工具子系统720,允许位置和速度运动规划器通过宏观和微观层级(分别为731和732)两者处的微操纵库730提供特定于任务的运动命令。共享反馈数据以及发送和接收运动命令的能力只有通过使用分布式处理器和感测架构750才能实现,该架构经由在多个变速总线接口740上交互的(分布式)实时操作系统来实现的,取得来自高层级规划器760的高层级任务执行命令,其继而被分解为宏观和微观操纵子系统的单独但协调的轨迹。
由仪器化关节连接和控制器致动的关节连接仪器化基座710实例化的宏观操纵子系统610需要多元素链接的操作块711至716集合来恰当地起作用。所述操作块依赖于负责宏观层级处的宏观层级感测和控制任务的单独且不同的处理和通信总线硬件集合。在典型的宏观层级子系统中,所述操作块需要宏观层级命令转换器716的存在,其从库730及其宏观层级微操纵子库731取得微操纵命令,并生成到宏观层级规划模块712的适当排序的机器可读命令集合,其中至少在关节空间和笛卡尔空间中计算每个仪器化和致动的元件所需的运动。所述运动命令被顺序地馈送到执行块713,该执行块713至少在关节空间或笛卡尔空间中控制所有仪器化关节连接和致动的关节,以确保活动在位置/速度和/或转矩/力上跟踪命令的轨迹。
反馈感测块714将来自所有传感器的反馈数据提供给执行块713以及环境感知块/模块711以进行进一步处理。不仅提供反馈以允许跟踪变量的内部状态,还提供来自测量周围环境和几何形状的传感器的传感数据的反馈。执行模块713将来自所述模块714的反馈数据用来确保实际值跟踪它们的命令设定点,以及确保环境感知模块711对每个关节连接元件的状态、机器人的整体配置以及机器人在其中运行的周围环境的状态进行成像和绘制、建模和识别。此外,还将所述反馈数据提供给学习模块715,该学习模块715负责跟踪系统的整体性能并将其与已知的所需性能度量进行比较,从而允许一个或多个学习方法开发连续更新的描述符集合,这些描述符集合定义了它们各自的微操作库730中包含的所有微操作,在这种情况下为宏观层级微操作子库731。
在微操纵系统620由仪器化关节连接和控制器致动的关节连接仪器化EoA工具子系统720实例化的情况下,上述逻辑操作块是相似的,除了这些操作仅针对那些形成微操纵子系统620的一部分的那些元件并运行。所述仪器化关节连接和控制器致动的关节连接仪器化EoA工具子系统720需要多元素链接的操作块721至726集合来恰当地起作用。所述操作块依赖于负责微观层级处的微观层级感测和控制任务的单独且不同的处理和通信总线硬件集合。在典型的微观层级子系统中,所述操作块需要微观层级命令转换器726的存在,其从库730及其微观层级微操纵子库732取得微操纵命令,并生成到微观层级规划模块722的适当排序的机器可读命令集合,其中至少在关节空间和笛卡尔空间中计算每个仪器化和致动的元件所需的运动。所述运动命令被顺序地馈送到执行块723,该执行块723至少在关节空间或笛卡尔空间中控制所有仪器化关节连接和致动的关节,以确保活动在位置/速度和/或转矩/力上跟踪命令的轨迹。
反馈感测块724将来自所有传感器的反馈数据提供给执行块723以及任务感知块/模块721以进行进一步处理。不仅提供反馈以允许跟踪变量的内部状态,还提供来自测量即时EoA配置/几何形状的传感器的传感数据以及所测量的过程和产品变量(诸如接触力、摩擦力、交互产品状态等)的反馈。执行模块723将来自所述模块724的反馈数据用来确保实际值跟踪它们的命令设定点,以及确保环境感知模块721对每个关节元件的状态、EoA工具的整体配置以及机器人正在运行的环境交互变量的类型和状态,以及与之交互的元件/产品感兴趣的特定变量(例如,绘画期间画笔的鬃毛宽度或一致性以及打蛋的蛋清或煎蛋的烹饪状态)进行成像和绘制、建模和识别。此外,还将所述反馈数据提供给学习模块725,该学习模块725负责跟踪系统的整体性能,并将其与每个任务及其相关联的微操纵命令的已知的所需性能度量进行比较,从而允许一个或多个学习方法开发连续更新的描述符集合,这些描述符集合定义了它们各自的微操作库730中包含的所有微操作,在这种情况下为微观层级微操作子库732。
图300描绘了宏观和微观操纵物理子系统及其相关联的传感器、致动器和控制器,以及它们与它们各自的高层级和子系统规划器和控制器以及世界与交互感知和建模系统的互连。该图的目的是扩展宏观/微观概念,以显示其如何实现微操纵规划和执行过程。
在每个宏观操纵子系统和微观操纵子系统内固有的硬件系统既通过仪器化关节连接和控制器致动的基座310反映在宏观操纵子系统层级,又通过仪器化关节连接和控制器致动的手臂末端(EoA)工具320子系统反映在微观操纵层级。两者都分别连接到它们的感知和建模系统330和340。
在宏观操纵子系统310的情况下,通过专用传感器总线370与世界感知和建模子系统330建立连接,其中与所述子系统相关联的传感器负责在整个机器人系统周围的世界内感测、建模和识别所述世界和机器人系统本身。然后,原始和处理后的宏观操纵子系统传感器数据通过相同的传感器总线370转发到宏观操纵规划和执行模块350,其中单独的处理器集合负责执行从任务分解模块430接收的任务命令,该任务分解模块430继而通过数据和控制器总线380从高层级微操纵规划器470接收其任务命令,并基于其从世界感知和建模模块330接收的反馈,通过在专用控制器总线360上发送命令来控制宏观操纵子系统310完成所述任务。通过该控制器总线360接收的命令由关节连接和仪器化的基座子系统310内的每个相应硬件模块执行,包括定位器系统313、身体系统312、其上附接的头部系统311以及附属肢体系统314和与其相连的手腕系统315。
定位器系统313对重新定位活动命令到其笛卡尔XYZ定位器313a作出反应,其中基于处理器的集成和专用控制器通过在基于来自其集成传感器的反馈数据的高速闭环中控制致动器来执行所述命令,从而允许将整个机器人系统重新定位到所需的工作空间位置。附接到定位器系统313上的身体系统312(其中附肢系统314附接到身体系统312,以及腕部系统315附接到手臂关节连接系统314a的末端)使用上述相同的架构,其中它们的关节连接子系统312a、314a和315a中的每一个分别向其各自的基于处理器的专用控制器接收单独的命令,以命令其各自的致动器,并通过监视内置的集成传感器来确保遵循恰当的命令,以确保跟踪保真度。头部系统311将活动命令接收到头部关节连接子系统311a,其中基于处理器的集成和专用控制器通过在基于来自其集成传感器的反馈数据的高速闭环中控制致动器来执行所述命令。
对于微观操纵子系统来说架构相似。微观操纵子系统320通过专用传感器总线371与产品和过程建模子系统340通信,其中与所述子系统相关联的传感器负责感测、建模和识别EoA处的即时附近(immediate vicinity),包括交互过程和被处理或操纵的任何产品的状态和进度。然后将原始和处理后的微观操纵子系统传感器数据通过其自身的传感器总线371转发到微观操纵规划和执行模块351,其中单独的处理器集合负责执行从任务分解模块430接收的任务命令,所述任务分解模块430继而通过数据和控制器总线380从高层级微操纵规划器470接收其任务命令,并通过在专用控制器总线361上发送命令,基于其从产品与过程感知和建模模块340中接收的反馈,控制微观操纵子系统320完成所述任务。通过该控制器总线361接收的命令由仪器化EoA工具子系统320中的各个硬件模块(包括手系统323和烹饪系统322)执行。手系统323以其各个基于处理器的专用控制器接收对其手掌和手指关节连接子系统323a的活动命令,命令其各个致动器通过监视内置的集成传感器来确保遵循恰当的命令,以确保跟踪保真度。烹饪系统322包含专门的工具和器具(其可能是完全被动的,没有任何传感器或致动器,或者仅包含感测元件,而没有任何致动元件),负责通过类似的基于处理器的专用控制器执行发给它的命令,所述控制器通过将运动命令发送到其集成致动器来执行基于传感器反馈的高速控制环。此外,代表容器和处理锅/平底锅的器皿子系统322b可以通过内置专用传感器被仪器化以用于各种目的,其也可以通过跨接在手系统323和烹饪系统322之间的公共总线进行控制。
图400提供了一个示意图,其说明了如何基于感知和模型数据、传感器反馈数据生成微操纵命令以及基于动作基元分量的微操纵命令,并在将所述分量配备给负责宏观和微观操纵子系统的微操纵任务执行规划器之前对其进行组合和检查。该图的目的是说明基于微型操纵库提供的命令结构,为宏观操纵子系统和微观操纵子系统生成微操纵命令的过程。
高层级执行器500向微操纵序列选择器510提供任务描述,该微操纵序列选择器510选择分别单独到达宏观操纵子系统410和微观操纵子系统420的候选动作基元(基本运动和控制),其中所述分量被处理以产生到微操纵任务执行规划器430的单独命令堆栈,所述命令堆栈通过仿真组合并检查它们的恰当功能性和同步性,然后将它们转发给每个相应的宏观操纵规划器和执行器模块350以及微观操纵规划器和执行器模块351。
在宏观操纵子系统的情况下,用于生成相应的微操纵命令堆栈序列的输入数据包括来自仪器化基座的原始和处理后的传感器反馈数据460、来自世界感知建模器330的环境感知和建模数据450。传入的微操纵分量候选491及其相应的集成描述符被提供给宏观微操纵数据库411,在由其专用的微操纵规划器412对它们进一步处理之前,由类型和序列415对它们进行组织;通过由稍后描述的单独学习过程提供的微操纵候选描述符更新414来生成对所述数据库411的额外输入。所述宏观操纵子系统规划器412还从微操纵进度跟踪器413接收输入,所述跟踪器负责向所述规划系统412提供关于任务执行变量和状态以及观察到的偏差的进度信息。进度跟踪器413通过在比较器中比较包括每个任务执行元件所需的基准性能417的输入与来自仪器化基座的传感反馈数据460(原始和处理后的)以及环境感知和建模数据450,来执行其跟踪过程,这生成了偏差数据416和包括通过由集成学习系统开发的描述符变量和常量修改的性能提高的过程改进数据418,并返回到规划器系统412。
微操纵规划器系统412取得所有这些输入数据流416、418和415,并对这些数据执行一系列步骤,以便获得为宏观操纵子系统开发的任务执行命令492的顺序命令堆栈集合,所述顺序命令堆栈集合在被转换成分别提供给每个宏观操纵子系统和微观操纵子系统以供执行的机器可读微操纵命令470之前,被馈送到微操纵任务执行规划器430以进行额外的检查和组合。微操纵规划器系统412通过步骤集合来生成所述命令序列492,所述步骤集合为包含性而非限制性的,也不必以此顺序,而且还具有可能的内部循环,其通过以下元素来传递数据:(i)优化器,以消除任何冗余或重叠的任务执行时间线;(ii)可行性评估器,在继续执行下一个子任务之前,根据与每个子任务相关的一组给定指标,验证每个子任务是否已完成;(iii)分解器,以确保在执行时间或任务步骤上不存在间隙,以及最后(iv)组合器,其在将所有命令参数转发给(v)将其映射到宏观操纵子系统硬件的物理配置的微操纵命令生成器之前,验证恰当的任务执行顺序和最终结果。
对于微操纵子系统420的命令堆栈序列的生成来说过程类似,其中一些显著差异在下面的描述中标识出。如上所述,用于生成微操纵子系统的各个微操纵命令堆栈序列的输入数据包括来自EoA工具的原始和处理后的传感器反馈数据490、来自交互感知建模器340的产品过程和建模数据480。将传入的微操纵分量候选492及其相应的集成描述符提供给微观微操纵数据库421,在由其专用的微操纵规划器422对它们进行进一步处理之前,由类型和序列425对它们进行组织;通过由先前和下文再次描述的单独学习过程提供的微操纵候选描述符更新424来生成到所述数据库421的额外输入。所述微操纵子系统规划器422还从微操纵进度跟踪器423接收输入,所述跟踪器负责向所述规划系统422提供关于任务执行变量和状态以及观察到的偏差的进度信息。进度跟踪器423通过在比较器中比较包括每个任务执行元件所需的基准性能427的输入与来自仪器化EoA工具的传感反馈数据490(原始和处理后的)以及产品与过程感知和建模数据480,来执行其跟踪过程,这生成了偏差数据426和包括通过由集成学习系统开发的描述符变量和常量修改的性能提高的过程改进数据428,并返回到规划器系统422。
微操纵规划器系统422取得所有这些输入数据流426、428和425,并对该数据执行一系列步骤,以便获得为微观操纵子系统开发的任务执行命令493的顺序命令堆栈集合,所述顺序命令堆栈集合在被转换成分别提供给每个宏观操纵子系统和微观操纵子系统以供执行的机器可读微操纵命令470之前,被馈送到微操纵任务执行规划器430以进行额外的检查和组合。关于针对412之前概述的宏观操纵子系统规划过程,微操纵规划器系统422通过步骤集合来生成所述命令序列493,所述步骤集合为包含性而非限制性的,也不必以此顺序,而且还具有可能的内部循环,其通过以下元素来传递数据:(i)优化器,以消除任何冗余或重叠的任务执行时间线;(ii)可行性评估器,在继续执行下一个子任务之前,根据与每个子任务相关的一组给定指标,验证每个子任务是否已完成;(iii)分解器,以确保在执行时间或任务步骤上不存在间隙,以及最后(iv)组合器,其在将所有命令参数转发给(v)将其映射到宏观操纵子系统硬件的物理配置的微操纵命令生成器之前,验证恰当的任务执行顺序和最终结果。
图500描绘了针对任何机器人系统生成微操纵命令堆栈序列的过程,在这种情况下,该过程被解构为针对单个机器人系统生成两个这样的命令序列,该机器人系统已在物理和逻辑上划分为宏观操纵子系统和微观操纵子系统。
针对任何机器人系统生成微操纵命令堆栈序列的过程(在这种情况下,在物理和逻辑上划分的宏观操纵子系统和微观操纵子系统分别接收专用的宏观操纵子系统命令序列491和微观操纵子系统命令序列492)需要通过微操作动作基元(AP)分量选择器模块510对高层级任务执行器命令550执行多个处理步骤,并结合利用来自AP储存库520的所有可用动作基元替代(APA)候选540的输入。
AP储存库类似于一个关系数据库,其中与一个单独的任务相关联的被描述为AP1至APn(522、523、526、527)的每个AP(无论描述任务的抽象层级如何)由基本APi子块的集合组成(APSB1至APSBm;522a1->m、523a1->m、526a1->m、527a1->m),可以对其进行组合和串联,以便满足在任一单独的诸如时间、能量、口味、颜色、一致性等之类的物理变量或其组合方面描述任务完成的任务性能标准或指标。因此,任何的任务复杂性可以通过任意数量的AP替代的组合(APAa至APAz;521、525)来描述,其可以导致一个具体任务的成功完成,应充分理解存在不止一个可以满足任务的基准性能要求的APAi,但是可以对其进行描述。
因此在转发潜在可行的AP集合以进行评估之前,微操纵AP分量序列选择器510使用具体的APA选择过程613通过以下步骤从AP储存库520中开发许多潜在的APAa至APAz候选:取得高层级执行器任务指令540,在模块511中对其进行处理以识别必要和足够的子任务序列,并在步骤512中为每个子任务提取总体和子任务性能标准及状态集合。评估过程514沿先前在512中开发的多个独立式或组合指标中的任何一个(包括诸如所需时间、能量消耗、所需工作空间、组件可达性、潜在碰撞等指标),比较每个APAi的总体性能和状态。仅将满足预定性能度量集合的一个APAi转发给规划器515,其中在一个或多个活动空间(诸如关节空间或笛卡尔空间)中生成宏观操纵子系统和微观操纵子系统所需的活动曲线。然后将所述轨迹转发到同步模块516,其中通过将各个轨迹串联成单个整体活动曲线来进一步处理所述轨迹,每个致动的活动在整个执行时间线中以及与其前后活动同步并组合,以进一步允许多臂/肢干机器人附属肢体架构的协调活动。然后将最终的轨迹集合传递到微操纵生成517的最终步骤,其中所述活动被转换成定义机器人系统的微操纵的机器可执行命令堆栈序列。在物理或逻辑分离的情况下,分别为每个子系统生成命令堆栈序列,在这种情况下诸如宏观操纵子系统命令堆栈序列491和微观操纵子系统命令堆栈序列492。
在一些实施例中,公开了一种用于高速和高保真度操纵操作的多层级机器人系统,其分为两个由仪器化关节连接和控制器致动的子系统组成的物理和逻辑子系统,各自包括负责在较大的无约束环境工作空间中以较低的端点精确度进行的操作的较大和较粗略运动的宏观操纵系统,以及负责在较小工作空间中的操作并同时以较高的端点运动精确度与工具和环境进行交互的较小和较精细运动的微观操纵系统,它们各自基于通过特定于宏观和微观操纵子系统的双层级数据库提供的微操纵命令来执行微操纵轨迹遵循任务,并各自由专用且单独的分布式处理器和传感器架构支持,运行在总体上实时运行的系统上,通过多个特定于传感器、命令和数据库元素的总线接口与所有子系统进行通信。
在一些实施例中,宏观操纵子系统包含通过一个或多个专用接口总线互连的专用传感器、致动器和处理器,包括:
用于感知周围环境的传感器套件,其包括对所述环境进行成像和绘制以及对所述环境中的元素进行建模,并识别所述元素,
基于由专用宏观层级微操纵库提供的微操纵命令,在关节空间和/或笛卡尔空间中的一个或多个中执行与宏观操纵子系统有关的运动规划,
通过在关节致动器层级上基于位置或速度或关节或力的控制来执行所述命令,以及
将传感数据提供回宏观操纵控制和感知子系统,
同时还监视所有过程,以允许学习算法基于诸如执行时间、能量消耗、避免碰撞、避免奇点和工作空间可达性等标准对微操纵宏观层级命令库进行改进,以改善未来的性能。
在一些实施例中,微观操纵子系统包含通过一个或多个专用接口总线互连的专用传感器、致动器和处理器,包括用于感知即时环境的传感器套件,其包括对所述环境进行成像和绘制以及对所述环境中的元素进行建模,并识别所述元素,尤其是其与微观操纵系统和相关工具在与环境本身接触期间的交互变量有关,
基于由专用的微观层级微操纵库提供的微操纵命令,在关节空间和/或笛卡尔空间中的一个或多个中执行与微观操纵子系统有关的运动规划,
通过在关节致动器层级上基于位置或速度或关节或力的控制来执行所述命令,以及
将传感数据提供回微观操纵控制和感知子系统,
同时还监视所有过程,以允许学习算法基于诸如执行时间、能量消耗、避免碰撞、避免奇点和工作空间可达性等标准对微操纵微观层级命令库进行改进,以改善未来的性能。
在一些实施例中,机器人烹饪系统至少被配置为一个双层级物理和逻辑宏观操纵和微观操纵系统,其能够通过仪器化关节连接和控制器致动的子系统进行独立和协调的任务运动,
其中宏观操纵系统被用于使用其自身专用的感测、定位和运动执行子系统在自由空间中对整个机器人配件进行粗略定位,
其上附接有一个或多个相应的微观操纵子系统,用于本地感测、精细定位和与环境交互的末端执行器的运动执行,
其中宏观操纵系统和微观操纵系统两者各自配置有它们自身单独且专用的总线,用于感测、数据通信以及利用它们的相关处理器对相关致动器进行控制,
其中宏观操纵系统和微观操纵系统中的每一个从它们专用的规划器接收基于单独的微操纵命令的运动和行为命令,并且
其中每个规划器都从中央规划器接收与协调的时间进度和过程进度相关的微操纵命令。
在某些实施例中,宏观操纵系统包括大型工作空间平移笛卡尔空间定位器,以及附接的身体系统,该身体系统由一个连接到肩部的传感器头部和躯干构成,所述躯干具有一个或多个关节连接的多关节操纵器臂,每个臂都有一个附接于其上的手腕,该手腕能够经由至少通过一个或多个专用控制器接口的专用传感器和致动器来定位一个或多个微观操纵子系统。
在一些实施例中,微操纵系统包括至少一个连接到其上的手掌和灵巧的多指手臂末端执行器,用于经由至少通过一个或多个控制器接口的专用传感器和致动器,来处理器具和工具以及在菜肴制备烹饪的任何阶段所需的任何器皿。
在一些实施例中,其中一组腿或轮子附接到腰部,该腰部附接到宏观操纵系统,以用于较大的工作空间活动。
在一些实施例中,向负责感知宏观操纵子系统自由空间环境以及整个机器人系统姿势的世界感知和建模系统提供传感器反馈数据。
在一些实施例中,通过一个或多个专用接口总线将所述世界感知反馈和模型数据提供给在一个或多个独立式且单独的处理器上运行的专用宏观操纵规划、执行和跟踪模块。
在一些实施例中,可以从单独的独立式任务分解和规划模块提供宏观操纵运动命令。
在一些实施例中,规划系统生成微操纵命令堆栈序列,被配置为对整个机器人系统执行规划动作,从而组合并协调来自宏观规划器和微观规划器的单独规划的微操纵,
其中所述宏观操纵规划器为宏观操纵子系统规划并生成与时间进度和过程进度相关的微操纵,并且
其中所述微观操纵规划器为微观操纵子系统规划并生成与时间进度和过程进度相关的微操纵。
在一些实施例中,每个子系统规划器可以包括用于宏观操纵任务的任务进度跟踪模块、微操纵规划模块和微操纵数据库。
在一些实施例中,任务进度跟踪模块可以包括:进度比较器模块,其结合所有相关传感器反馈数据,跟踪命令的和实际的任务进度、模型和环境数据以及产品和过程模型数据之间的差异;以及学习模块,其创建并跟踪对所述微操纵的描述符中的偏差造成影响的变化,以用于对相应数据库的潜在未来升级。
在一些实施例中,微操纵规划系统模块基于步骤集合来生成微操纵命令,所述步骤集合使用来自数据库的微操纵命令,随后对该微操纵命令进行适用性评估,将其解析为应用于单个可移动组件,并在空间中进行组合以获得平滑的运动曲线,并针对最佳定时进行优化,随后将其转换为机器可读的微操纵命令集合,所述命令集合被配置为命令堆栈序列。
在一些实施例中,可以通过以下过程来生成用于宏观或微观操纵子系统中的一个或两者的微操纵命令:
接收高层级任务执行命令,以及
从动作基元储存库中选择替代动作基元集合,基于对应用重要的预定标准集合来对其进行评估和选择以实现命令的任务,所述标准集合描述了所需的入口边界条件以及最低必要出口边界条件,从而定义了在任务开始和完成时的成功任务完成状态。
在一些实施例中,用于宏观或微观操纵子系统中的一个或两者的微操纵命令生成的过程包括:
接收高层级任务执行命令,
识别将被映射到适用的机器人子系统的各个子任务,
为上述每个子任务生成单独的性能标准和可测量的成功最终状态标准,
独立或组合选择最合适的动作基元候选中的一个或多个,
评估这些动作基元替代以最大化或最小化诸如执行时间、能量消耗、机器人可达性、碰撞避免或任何其他任务关键标准之类的测量,
在一个或多个运动空间(包括关节空间和笛卡尔空间)中生成宏观和/或微观操纵子系统轨迹中的一个或两者,
同步所述轨迹,以实现路径连续性、路径片段平滑度、片段内时间戳同步以及多臂机器人子系统之间的协调,以及
为宏观和/或微观操纵子系统中的一个或两者生成机器可执行命令序列堆栈。
在一些实施例中,接收在微操纵进度跟踪和性能学习过程期间生成的微操纵描述符更新的步骤可能涉及:
提取与具体的微操纵及其相关的动作基元有关的常量和变量,
为每个受影响的动作基元分配每个变量和常量的变化,以及
将更新提供回动作基元储存库,以允许在所述储存库或数据库中记录和实施每个更新。
动作基元(AP)执行过程
由动作基元子块(APSB)的替代序列(AP替代)组成的AP可以通过以下方式执行:首先,根据APSB作为其一部分的微操纵对APSB进行定制。然后,如果存在,则将用具命令发送到厨房用具。如果APSB指定了机器人活动,则规划并评估机器人活动的可达性和碰撞,并选择优选的替代顺序机器人活动。如果机器人活动包含笛卡尔(Cartesian)轨迹,则将对其进行规划,如果可能的话则类似于机器人的当前配置,以便允许平稳转移。在规划的笛卡尔轨迹或关节空间轨迹之间,对运动进行规划以将机器人从其上一个配置移动到以下轨迹的开始。然后,对所选AP替代中的所有轨迹重复此过程。在计算完所有这些部分规划后,将它们进行串联、后处理,然后发送给机器人以执行,并进行缓存以优化。
为了在非结构化环境中进行可靠而有效的操纵,将对象和机器人带到标准位置,然后在机器人上执行预先计算的活动规划。在一些实施例中,操纵的重复部分的规划是离线完成的,以便获得更好的质量和立即可用的规划。
AP数据结构
AP是微操纵(MM)组成的最小构建块。尽管并非所有字段都是必需的,但AP数据结构如图800A所示,并且AP数据结构的图例在图800B中示出。它们是机器人厨房的简单动作,可以在多个MM和菜谱中重复使用。一个AP可以包括多个AP替代(APA),它们代表达到相同最终状态的替代动作。APA根据其优选性(其可以包括执行持续时间、与对象的安全距离、能量使用或其他)进行优先级排序。APA包含AP子块(APSB)的有序列表,这些子块是机器人轨迹、视觉系统命令或用具命令。APA中的所有APSB与开始时间戳相关联,该开始时间戳也隐式定义了它们要被执行的顺序、之间可能的中断以及当该定时重叠时同时执行(如后所述)。机器人轨迹可以是关节空间轨迹,该关节空间轨迹定义了所有机器人关节在时间上以及在机器人关节空间中的位置,其也可以是笛卡尔轨迹,该笛卡尔轨迹定义了对象或机器人末端执行器在厨房笛卡尔空间中的位置。
AP执行
本节介绍单个AP的执行。图801中呈现的表中显示了一个示例MM,其包括具有一到三个APSB的五个AP。APSB可以指示机器人进行以下动作:
——获取一个已经装满一些内容物的容器
——用另一只手拿勺子
——用勺子移动容器中的内容物,将它们放入锅中
——把勺子放回去;以及
——将容器放入水槽
AP替代选择
要选择优选的APA,可以根据按照优先顺序的以下过程准备所有可用的APA并测试其可执行性,并且将执行可执行的第一个APA。
预处理/后处理
参数
AP旨在在不同的上下文中可重用,并且它们具有使它们可定制的参数。这些参数的值从使用AP的MM中向下传递。在为AP执行过程做准备时,将评估所有参数,并根据它们修改AP的工作副本。所述参数之一是速度因子。速度因子是缩放轨迹速度,并且可以通过将所有时间戳乘以它来应用(其与AP的开始有关)。
协调多臂
首先,通过评估AP的所有APSB开始时间戳和持续时间,检测到时间重叠,这对于具有笛卡尔轨迹的APSB的情况来说,意味着多个臂应同时执行指定的动作。具有指定轨迹的臂称为主动臂,其他称为被动臂。(一个或多个)被动臂的行为有以下两种简单的可能性:被动臂可以将其关节保持在相同的关节空间配置中,或者将其各个末端执行器保持在它们各自的笛卡尔姿势(位置和取向)中。如果机器人在基座和任何末端执行器之间的运动链中没有共享的关节,则这两种可能性的行为相同。然而,只要活动无碰撞,被动臂就可以被允许进行任何活动。此外,被动臂执行哪个行为是由AP数据指定的。指定被动末端执行器保持在其位置的示例动作是在握住锅(被动臂)的同时进行搅拌(主动臂)。
通过如上所述使用APSB定时信息和(一个或多个)被动臂的简单逻辑行为切换,简化了FAP的创建,并提高了它们的可维护性和可重用性。如果AP中随时有多个主动臂,则意味着需要一起规划这些臂的轨迹,然后对于不同数量的主动臂之间的转移,则必须计算运动规划。
将对象轨迹转换为机器人轨迹
如果AP已为附接到机器人的对象指定了轨迹,则可以通过使用形成已使用抓取的经保存变换或者使用对象与机器人末端执行器之间的上一个已知几何关系,将对象的轨迹转换为末端执行器轨迹(其是运动链的一部分)。这是通过使用链机器人的逆运动学求解器来规划机器人的活动轨迹,其需要一条轨迹定义运动链的一部分的活动。
允许的接触
为了简化真实世界对象的模型,所有模型都是固定的(ridig),而真实对象由于接触力而在彼此接触时会变形。此外,由于其他原因,永远无法由模型来完美地代表真实对象。因此,在执行运动规划或笛卡尔规划,并假定多个对象彼此接触时,例如在抓取一个对象时,规划算法必须忽略指定对象之间的碰撞。何时允许和禁止接触(对于规划器而言是碰撞)的信息存储在包含各个轨迹的APSB中,并且必须在这些轨迹的执行之前和之后将该信息转发给规划器。
抓取状态
如果APSB包含有关抓取状态变化的信息,则通过在执行APSB之后从机器人运动链中逻辑上附接或分离对象来实现此变化。此变化将使运动规划器或笛卡尔规划器考虑附接对象的碰撞,并允许系统基于运动链的活动来更新对象的位置。
动态对象属性
APSB可以包含有关动态对象属性中的转移的信息。例如,这可以是关于在执行使用水龙头来装水的APSB之后盛有一定量水的容器,或者是关于将锅盖放在锅上方之后具有盖上的锅盖的锅。该信息用于未来的动作,例如用于碰撞检测。
规划
规划是将一个活动的目的或要求变成一系列实现该目的的关节空间配置的过程。在开始任何规划之前,必须更新机器人的内部世界表示,以使其与真实对应物相对应。
运动规划
寻找将机器人从开始配置移动到结束配置而不会发生碰撞的关节空间路径的过程称为“运动规划”。开始配置和结束配置始终包含机器人的所有关节。它是使用一种算法完成的,该算法对关节空间进行采样以查找无碰撞的配置,然后在样本之间生成图形并将其与开始配置和结束配置连接起来。此图形上开始和结束之间的任何路径都是满足要求的有效运动规划。可以在考虑各种约束的同时完成运动规划。所述约束可以包括末端执行器取向约束,以便使容器保持直立状态,而不会使容器内的内容物掉落。在规划器中,通过随机更改其样本配置直至满足约束来实现约束。在一些实施例中,在没有任何定时信息的情况下完成运动规划,并使其规划在后处理步骤中可执行,如后续章节中所解释的。
笛卡尔规划
当机器人要执行笛卡尔活动时,笛卡尔规划会生成一个满足该活动的关节空间轨迹。笛卡尔规划的输入是笛卡尔轨迹的列表,每个轨迹用于不同的机器人末端执行器。
可行性检查
在规划一组轨迹之前,先要完成可行性检查。该检查将计算仅通过末端执行器及其静态连接的臂链路的末端执行器姿势的可行性和碰撞。该检查是可执行性的必要标准,并且是检测无法执行的轨迹的快速方法,以使系统跳过当前的AP替代并继续下一个替代。这通过首先尝试为所有给定的轨迹姿势寻找IK解而不考虑碰撞来实现。如果至少一个姿势不具有IK解,则轨迹不可执行。如果所有姿势都具有对应的IK解,则检查将继续:现在,当且仅当对于所有轨迹姿势来说,末端执行器及其静态连接的臂链路不发生碰撞时,该轨迹才可执行。
伪代码:
Figure BDA0002425066820002541
规划
在规划笛卡尔活动时,通常仅使用机器人自由度的子集。因此,多余的自由度可用于优化活动。由于笛卡尔活动通常是在菜谱的上下文中与其他活动一起执行的,因此所有笛卡尔规划都以类似的配置完成。因为活动是由人类记录以使人形机器人执行通常由人类执行的动作,因此所有活动应相似的优选配置被定义为如图802所示的类似人的待机配置。
笛卡尔规划器可以为整个轨迹寻找相似的IK解。关节空间的这种相似性确保了轨迹姿势之间的最小活动。通过使用迭代优化的IK求解器,使用上一个姿势的解决方案来开始搜索每个姿势,可以实现相似性。第一个解基于优选的类似人的配置或由协调规划器的系统(请参阅下一部分)指定的另一配置。这样,IK求解器将在规划整个轨迹时遵循相同的本地最优值。每个IK解都必须无碰撞,并且必须与上一个解相似。如果IK求解器找不到相似的解决方案,则将针对第一个姿势使用不同的配置重新开始搜索。该配置的候选是不同的经保存的、优选的类似人的配置或其随机变化,或者必要时可以是完全随机的配置。
对于某些APSB,使用特定于此APSB的配置也可能是合适的。在输入轨迹仅覆盖机器人的一部分的情况下,则为被动臂指定静态配置,并在规划过程中保持该静态配置,或者将另一只臂置于如上所述不会发生碰撞的任何位置。然后,IK求解器仅考虑机器人的主动部分,但是仍然需要对整个机器人进行碰撞检查。
笛卡尔规划以与输入轨迹相同的分辨率和相同的时间信息来完成,并且其规划可能无法立即执行,因为输入轨迹的活动可能太快而使机器人无法跟随。只有后处理步骤(请参见下文)使其可执行。
规划之间的协调
APSB通常经由笛卡尔轨迹或关节空间轨迹,仅指定菜谱机器人活动的某些部分。连接由APSB指定的活动的中间活动是隐式的并由“运动规划”来完成。这是为了增加灵活性和可重用性。
图803示出了示例AP,其包括多个不同类型的APSB。在图803中示出的示例AP使用的缩写如下:
·L/R:左臂/右臂的水平通道(lane)
·FAPSB:CT是由APSB要求的笛卡尔轨迹
·FAPSB:JT是APSB的关节空间轨迹
·FAPSB:待机2是单臂规划中自由臂的姿势
·MP是转移运动规划
为了在不同种类的轨迹之间提供平滑的转移,总是首先完成笛卡尔规划,从而尝试寻找一个类似于机器人的当前状态的、具有关节空间解的规划。然后,完成运动规划以将机器人从其当前状态移动到笛卡尔轨迹的开始。由于首先用所得的关节空间轨迹来处理笛卡尔轨迹,所以始终要完成运动规划以连接这些关节空间轨迹,并且还会生成一个关节空间轨迹。其仅在已经连接了来自AP的关节空间轨迹时才能被跳过(第一个AP关节空间轨迹的结束配置与第二个AP关节空间轨迹的起始匹配)。
时间参数化
由于所有规划都是在不考虑机器人动态特性的情况下完成的,因此它们可能太快了而不能由机器人执行。因此,在执行之前,会对它们进行处理,并且可能会使用适当的时间参数化算法来降低其部分的速度。
规划缓存(保存和重用)
为了加快未来的规划,将所得的轨迹与环境信息和性能度量一起保存。这包括APSB标识符和版本、厨房和机器人的所有对象位置和模型信息以及模型和状态信息。性能度量可以包括轨迹长度(在关节空间或笛卡尔空间中)、能量使用或类人性。要将缓存的轨迹用于APSB,要么所有保存的环境都必须与当前环境相同,或者需要检查已保存的轨迹在当前环境中是否存在碰撞。
为了以有效的方式检查整个已保存的轨迹与环境的碰撞,计算其边界体积并与之一起保存。这允许实时测试已保存的轨迹的有效性。轨迹痕迹在图804中显示:轨迹的所有关节空间配置都在一帧中呈现。该痕迹类似于边界体积。一旦存在一组缓存的规划,对于需要规划的每个新的APSB来说,以降低的性能等级的顺序来检查已保存的轨迹,以便使用最可行的轨迹。
即时规划
可替代地,取代规划和执行,一旦对未来环境的了解足够充分,便可以制定规划。系统模拟由某个APSB引起的机器人、对象的移动以及环境变化。这是可能的,因为所有APSB都具有可预测的结果。规划器可以在该未来的环境中为跟随的APSB制定规划。如果环境以非预期的方式改变,则该规划必定无效。否则可以执行该规划。使用此方法,可以执行APSB序列(以及在扩展AP中)而无需等待规划。
图805中的定时图示出了执行和规划的序列,其中在执行时完成了规划,除了序列的开始和使规划无效并导致另一次规划尝试的非预期环境变化的一个实例之外。
在标准环境中进行操纵
在一些实施例中,能够重用缓存的轨迹具有许多优点。由于可以提前完成规划,因此可以使用更多计算上昂贵的算法,并且可以给予足够的时间进行计算,不仅可以可靠地找到所有解,而且可以根据上述性能度量找到最佳解。同样,可以为难以度量化的性能度量或标准(例如美感)手动选择轨迹,并且当不包括规划时更容易确认其可靠性。
可以将许多机器人操纵动作分为:
1.将对象和机器人移动到定义的配置中;以及
2.使用这些对象和配置进行操纵。
因此,值得将规划任务分解为可以利用优化的预先规划来求解的部分和可以利用实时规划求解的部分(其在执行之前被完成)。然而,为了使用优化的预先规划轨迹,要执行操纵的直接环境必须处于定义的状态(标准直接环境)。这意味着所有可能与机器人碰撞的对象以及所有被操纵或需要操纵的对象都处于与和预先规划的轨迹一起记录的位置相匹配的位置。可以相对于机器人或相对于环境来指定位置。其余环境可以是非标准化的。缓存的轨迹始终与直接环境状态相关联,并且仅在真实状态与保存的状态匹配时才可以重用。因此,在执行预先规划的操纵之前,必须首先将所有被操纵或与该操纵相关的对象移动到预先规划的操纵所定义的位置和取向。处理的这一部分可能需要实时规划才能将对象从非标准环境移动到标准环境。
图806示出在非结构化环境中的对象交互。为了移动不在直接标准环境中的对象,需要使用标准抓取(之前已经测试过的手指关节空间轨迹)来抓取并移动(使用实时运动规划)。如果无法抓住它们(例如,由于处理阻挡),则实时规划并执行非标准移动(其可能包括以某种方式推动对象),然后进行另一次标准抓取和移动尝试。重复此过程,直到对象与机器人具有预期的关系,然后再处理所有其他对象。在厨房上下文中对此场景的一个示例可以是,将食材和工具从储存区域(凌乱、不可预测、经常变化)抓取并移动到工作台表面上以呈定义的姿势,然后将机器人移动到定义的配置,然后执行使用工具来抓取和混合食材的轨迹。
使用这种方法,可以以专用且计算资源密集的方式离线生成用于标准环境的最佳笛卡尔和运动规划,然后将其传送以供机器人助手系统使用。数据建模既可以通过保留常规AP结构并使用规划缓存来实现,也可以通过用预先规划的关节空间轨迹替换AP中的某些笛卡尔轨迹来实现,包括用以连接AP内部各个APSB的轨迹的关节空间轨迹,以甚至在标准环境中进行操纵时替换实时运动规划的某些部分。在后一种情况下,存在两组AP:一组具有“源”笛卡尔轨迹以适合规划,而一组具有优化的关节空间轨迹。
可以按每个轨迹或按每个APSB来保存真实直接环境与所保存的优化轨迹的直接环境之间的差异的容差,该容差可以使用实验方法确定。可以扩展使用预先规划的操纵,以包括将机器人定位,尤其是沿线性或轴向定位,以便能够在各种位置上执行预先规划的操纵。另一个应用是将人形机器人相对于其他对象(例如,住宅中的窗户)以定义的关系放置,然后开始预先规划的操纵轨迹(例如,清洁窗户)。
时间管理方案
在一些实施例中,这里描述了利用提出的应用的时间管理方案。图5中示出的规划和执行的时间进程代表当所有规划时间都小于前一个APSB的执行时间时的一个理想情况的场景。但是,当逆动力学(IK)问题的复杂性在复杂或变化的环境中发生时,情况可能并非如此。发生这种情况的原因是,当检查笛卡尔轨迹对于更复杂的环境是否可执行时,约束的数量会增加。结果,如图807所示,连续的APSB之间的等待时间变为非零。图807示出了在复杂环境中的规划和执行的时间序列。因此,需要使这些等待时间之和最小化的时间管理方案。此外,目标在于,时间管理方案不仅必须减少活动执行之间的平均等待时间之和,而且还必须减少总等待时间的可变性。具体而言,这对于其中菜谱设置了操作所需的定时的烹饪过程来说非常重要。
因此,引入了由烹饪失败概率给出的成本函数,即P(τ>τ_failure),其中τ是操作执行的总时间。考虑到概率分布p(τ)由其平均值<τ>和方差
Figure BDA0002425066820002581
决定,并忽略高阶矩
Figure BDA0002425066820002582
某些单调递增函数,(例如,如果高阶矩确实消失且p(τ)分布正常,则所述单调递增函数仅是误差函数f(x)=erf(x))。因此,对于时间管理方案来说,当平均值低于失败时间时,减少平均时间及其方差二者是有益的。由于总时间是相应且独立获得的等待和执行时间的总和,因此总平均值和方差是各个平均值和方差的总和。因此,通过减少烹饪失败的可能性,最小化每个单独方案的时间平均值和方差可以提高性能。
为减少不确定性,从而减少规划时间的方差(以及相应地等待时间的方差),我们提出使用执行典型FAP的预先规划和存储的序列的数据集。这些序列事先以强大的计算能力进行了优化,以实现最佳时间性能和任何其他相关标准。本质上,它们的不确定性被减小为零,因此它们对总时间方差的贡献为零。因此,如果时间管理方案找到了一个解,该解使得系统进入从其已知达到目标状态的动作序列的预定义状态,并且在烹饪失败时间之前就找到了解,则可以将烹饪失败的可能性降低到零,这是因为其估计的时间方差为零。通常,如果预定义序列只是总AP的一部分,那么它仍然不会影响总时间方差,并且会对总执行时间的不确定性产生有益的影响。
此外,为了降低复杂性,从而减少规划时间的平均值(以及相应地减少等待时间的平均值),可以使用约束数量最小的预先规划和存储的配置的数据集。如果逆运动学算法的复杂性以及相应地找到可执行解的平均时间随约束数量的增加比线性增长快(这是迄今为止针对所有算法的情况),则我们提出使用APA,该APA是使用预先规划的笛卡尔轨迹或关节轨迹以及导致约束消除的对象交互而获得的。如果由于多个约束而无法执行所找到的IK问题的解决方案的序列的笛卡尔轨迹,则方案将实施同时尝试寻找APSB,这将导致逐个地或一次多个地消除这些约束。如图808所示,执行APSB序列以连续消除约束将导致总等待时间与约束数量成线性关系,因此在执行AP时为估计的等待时间提供了较低的上限。为了减少该线性曲线的倾斜度,我们提出使用一组预先规划的APSB以将机器臂缩回至预设状态之一,并使用另一组预先规划的APSB以将可能阻挡路径的对象从直接环境中消除,从而为IK问题的笛卡尔轨迹解提供了约束。
该方案的逻辑如下,一旦达到寻找解的超时(通常由之前的APSB的执行时间来设置)并且未找到可执行轨迹,我们就从不完整的APA执行过渡性的APSB,这将不会导致目标状态,而是导致具有降低的复杂性的新IK问题。实际上,我们将具有长尾分布和高平均值的未知等待时间换成了在额外的APSB上花费的固定时间以及具有较低平均值的新IK问题的未知等待时间。该方案中制定的决策的时间进程在图809中示出。该图809示出了信息流和不完整的APA的生成。
在达到超时之前,我们会累积完整的APA和不完整的APA的集合,当达到超时时,我们根据先前章节中所述的选择标准从适当的APA中选择APSB来执行。如果未找到完整的APA,我们从不完整的APA集合中选择APSB,以避免大量等待时间。从不完整的APA中选择APSB是由针对IK问题的非可执行解的未实现约束列表驱使的。即,我们优先消除最常不满足并且阻止IK问题的解决方案执行的约束。这种情景的示例会是某个容器阻挡机器臂在其后执行动作的路径的情况,因此,如果在超时之前未找到解,我们将不等待解出现,而是抓住该容器并将其从直接环境中移到其外部的预设位置,即便我们没有获得完整的APA来完成AP。在无法满足的约束列表不可用的情况下,我们会以预先规划的方式减少约束数量,在该方式中我们一次消除最大数量的约束。这种预先APA的示例可以是将对象重新放置到没有其他外部对象的专用区域,或是将机器臂缩回到标准初始位置。
此外,本公开在内部约束和外部约束之间进行区分。在一些实施例中,内部约束是由于机器臂活动的限制而引起的,并且当关节处于复杂位置时它们的作用会增强。因此,典型的约束消除APSB是将机器臂缩回至预设的关节配置之一。外部约束是由于对象位于直接环境中而引起的。典型的约束消除APSB是将对象重新放置到预设位置之一。内部约束和外部约束的分离用于从可执行的完整集合和不完整集合中选择APA。
为了将复杂性降低与不确定性降低相结合以减少总执行时间的平均值和方差两者,我们提出了以下预先规划和存储的数据集的结构。可以存储用于操纵列表的IK解的序列以及在专用区域中可执行的每种类型的对象。在该区域中,我们不具有外部对象,并且机器臂处于预定义的标准位置之一。这确保了最少数量的约束。因此,如果不容易获得AP的直接解,我们将寻找并使用APA的解决方案,这会导致将所考虑的对象重新放置到执行操纵的专用区域。这样可以导致消除大量约束,并允许使用预先计算的序列,从而使执行时间的不确定性最小化。在专用区域中执行操纵后,对象将返回到工作区域以完成AP。
在一些实施例中,时间管理系统通过使等待时间的平均值和方差最小化来使未能满足时间期限要求的可能性最小化,包括:预定义的状态列表和对应的操作列表,用以在预定义状态下执行操作的预先计算和存储的IK解的优化序列集合,朝向目标状态和预定义状态集合的AP和APA(笛卡尔轨迹或IK解的序列)的并行搜索及生成,基于对应APA的性能度量在可执行的APA或AP之中进行的APSB选择。
在一些实施例中,可以通过使用预定义和预先计算的状态和解来最小化等待时间的平均值和方差,在以动作序列来执行,从初始状态到执行存储的序列的预定义状态,然后返回到目标状态的情况下,所述状态和解对总时间方差的贡献为零。
在一些实施例中,选择具有最少数量的约束的预定义状态,根据经验获得的列表可以包括但不限于:
预定义状态:对象由机器人保持在标准化位置中的专用区域中。当由于碰撞和空间不足而无法在对象的位置执行动作时将使用这些状态,并因此首先执行到专用空间的重定位。
预定义状态:机器臂(及其关节)处于标准初始配置。在当前的关节配置具有复杂的结构并由于机器臂的内部碰撞而阻止执行时,将使用这些状态,因此在用以执行动作的新的尝试之前要完成机器臂的缩回;以及
预定义状态:外部对象由机器人保持在专用区域中。当外部对象阻挡路径并在找到的不可执行轨迹上发生碰撞时,将使用这些状态,在返回主序列之前执行将对象抓取和重定位到储存区域的操作。
在一些实施例中,APSB选择方案执行以下选择序列:
如果在超时的情况下发现一个或几个可执行AP或APA,则根据性能度量进行选择,所述性能度量基于但不限于总执行时间、能量消耗、美观等;以及
如果在超时的情况下找到了无法执行的解决方案,则在导致从当前状态进入预定义状态之一的不完整APA中进行选择,即使到目标状态的完整序列未知;以及
根据性能度量加上通过不完整APA消除的约束数量,可以完成在不完整APA集合之中的APSB选择。优先选择消除最大数量约束的不完整APA
在本公开的一个示例性实施例中,图901示出了用于将一个或多个对象2与机器人系统耦接的耦接设备1。耦接设备1包括:限定在机器人系统上的第一耦接构件3a和限定在一个或多个对象2上的第二耦接构件4a。第二耦接构件4a适于可与第一耦接构件3a连接。
第一耦接构件3a可包括第一连接表面3b,用于将第一耦接构件3a与机器人系统连接。第一连接表面3b可配置有第一附接装置(在附图中未示出),用于将第一耦接构件3a与机器人系统连接。第一附接装置可以确保机器人系统在经由耦接设备1与一个或多个对象2耦接时能够高效地保持和操纵一个或多个对象2。第一耦接构件3a还包括第一配合表面,该第一配合表面具有在其外围上限定的多个第一突出部。所述多个第一突出部被配置为与第二耦接构件4a接合,以将第一耦接构件3a与第二耦接构件4a耦接。
此外,第二耦接构件4a可以包括第二连接表面4b,用于将第二耦接构件4a与一个或多个对象2连接[如图906a至图906d所示]。第二连接表面4b可配置有第二附接装置(图中未示出),用于将第二耦接构件4a与一个或多个对象2连接。第二附接装置可确保一个或多个对象2在与第一耦接构件3a耦接时能够高效地保持和操纵一个或多个对象2。第二耦接构件4a还包括第二配合表面4c,该第二配合表面4c具有在其外围上限定的多个第二突出部4d。所述多个第二突出部4d的配置可以与多个第一突出部互补,以便于接合。因此,多个第二突出部4d与多个第一突出部接合,用于将第一耦接构件3a与第二耦接构件4a耦接。
在一个实施例中,多个第一突出部可以被成形为,使得第一配合表面的外围被加工以形成波峰和波谷轮廓。在另一个实施例中,多个第一突出部可以被成形为,使得第一配合表面的外围被加工以形成凸形或凹形中的至少一个。在另一个实施例中,多个第一突出部可以被成形为,沿着外围形成波浪形轮廓或起伏。
在一个实施例中,多个第二突出部4d可以被成形为,使得第二配合表面4c的外围被加工以形成与多个第一突出部的配置相对应的波峰和波谷轮廓。换句话说,多个第二突出部4d在多个第一突出部中的对应波峰区域中包括波谷区域,反之亦然,以促进接合。在另一个实施例中,多个第二突出部4d可以被成形为,使得第二配合表面4c的外围被加工以形成与多个第一突出部的配置相对应的凸形或凹形中的至少一个。在另一个实施例中,多个第二突出部4d可以被成形为,使得第二配合表面4c的外围可以被成形为形成与多个第一突出部的配置相对应的波浪形轮廓或起伏。
在一个实施例中,第一连接表面3b通过诸如但不限于机械装置和非机械装置之类的装置连接至机器人系统。在一个实施例中,按照可行性和要求,用于第一连接表面3b和第二连接表面4b的机械连接装置选自磁性装置、卡扣配合布置、螺栓螺母布置、插塞插座1006b装置、真空致动装置或任何其他装置中的至少一个。
在一个实施例中,第一连接表面3b可以被配置为与机器人系统的配置相对应,使得在连接时,第一连接表面3b与机器人系统齐平。
在一个实施例中,第一连接表面3b是第一耦接构件3a的后表面,而第一配合表面是第一耦接构件3a的前表面。
在一个实施例中,第一连接表面3b被配置为与机器人系统的机器臂连接。
在一个实施例中,按照设计的可行性和要求,第一连接表面3b经由机械装置或机电装置或任何其他装置中的至少一个连接至机器人系统。
在一个实施例中,按照设计的可行性和要求,第一耦接构件3a和第二耦接构件4a被配置为圆柱形轮廓、矩形轮廓、圆形轮廓、弯曲轮廓或任何其他轮廓中的至少一个。
在一个实施例中,按照设计的可行性和要求,第一耦接构件3a和第二耦接构件4a的横截面选自矩形横截面、圆形横截面、正方形横截面或任何其他横截面中的至少一个。
参照图902,锁定机构5被配置在第一耦接构件3a和第二耦接构件4a的接口处,使得一个或多个对象2耦接至机器人系统。锁定机构5被配置为在接口处提供额外稳定性,由此改善第一耦接构件3a和第二耦接构件4a之间的耦接。锁定机构5还确保在操作机器人系统时作用在耦接设备1上的侧向载荷的额外稳定性。
锁定机构5包括在第一配合表面和第二配合表面4c中的任一个上的至少一个凹口5a[在图903b中示出]。可以在第一配合表面和第二配合表面4c中的任一个的中央区域上限定至少一个凹口5a。锁定机构5还包括至少一个突起5b,其对应于至少一个凹口5a的位置而限定。换句话说,当至少一个凹口5a被配置为在第一配合表面上时,至少一个突起5b被配置为在第二配合表面4c上,反之亦然。至少一个突起5b也可以定位于第一配合表面和第二配合表面4c中的任一个的中央区域上。至少一个凹口5a和至少一个突起5b的配置还确保了第一耦接构件3a和第二耦接构件4a以最佳取向耦接,使得以最佳力固定一个或多个对象2。
在一个实施例中,按照设计的可行性和要求,至少一个凹口5a在预定位置处配置在第一耦接构件3a和第二耦接构件4a中的任一个上。换句话说,在不妨碍至少一个凹口5a与至少一个突起5b的可接入性的情况下,可以在第一耦接构件3a或第二耦接构件4a上的任何位置处设置至少一个凹口5a。在另一实施例中,按照设计的可行性和要求,至少一个凹口5a的形状选自三角形、圆形、矩形或任何其他几何形状中的至少一种。
在一个实施例中,可以在第一耦接构件3a和第二耦接构件4a中的任一个上加工预定几何形状的至少一个凹口5a。在另一个实施例中,具有至少一个凹口5a的次级附接件可以被附接到第一耦接构件3a或第二耦接构件4a,以在第一耦接构件3a和第二耦接构件4a中的任一个上配置至少一个凹口5a。
在一个实施例中,按照设计的可行性和要求,至少一个突起5b在预定位置处配置在第一耦接构件3a和第二耦接构件4a中的任一个上。换句话说,在不妨碍至少一个突起5b与至少一个凹口5a的可接入性的情况下,可以在第一耦接构件3a或第二耦接构件4a上的任何位置处设置至少一个突起5b。在另一实施例中,按照设计的可行性和要求,至少一个突起5b的形状对应于至少一个凹口5a的配置。在另一实施例中,至少一个突起5b的形状选自三角形、圆形、矩形或任何其他几何形状中的至少一种。
在一个实施例中,可以在第一耦接构件3a和第二耦接构件4a中的任一个上加工预定几何形状的至少一个突起5b。在另一个实施例中,具有至少一个突起5b的次级附接件可以被附接到第一耦接构件3a或第二耦接构件4a,以在第一耦接构件3a和第二耦接构件4a中的任一个上配置至少一个突起5b。
在一个实施例中,按照设计的可行性和要求,可以在第一耦接构件3a和第二耦接构件4a两者上设置至少一个凹口5a和至少一个突起5b的组合[如图905d所示]。换句话说,可以在第一耦接构件3a和至少一个第二耦接构件4a上设置至少一个凹口5a和至少一个突起5b的组合,以促进更好的耦接特性。
再次参考图2,可以在机器人系统和第一连接表面3b的连接接口处设置至少一个传感器6。至少一个传感器6可以适于在耦接期间识别和确定第一配合表面与第二配合表面4c的取向。因此,防止了第一配合表面和第二配合表面4c之间的接合未对准或错位。在示例性实施例中,对于波峰和波谷形状的第一配合表面和对应的第二配合表面4c,至少一个传感器被配置为使第一配合表面的波谷与第二配合表面4c的波峰匹配,以便有效地接合和耦接。至少一个传感器6还被配置为在耦接期间监视至少一个凹口5a和至少一个突起5b的取向,由此防止在接合和耦接期间至少一个凹口5a与至少一个突起5b未对准。
在一个实施例中,至少一个传感器6可以与一个或多个处理器或控制单元接口,以便在接合期间发送与第一耦接构件3a相对于第二耦接构件4a的取向有关的信号。一个或多个处理器或控制单元可以基于从至少一个传感器6接收的用于适当的取向和位置的反馈来合适地操作第一耦接构件3a。在一个实施例中,按照可行性和要求,一个或多个处理器或控制单元可以沿着不同的一个或多个轴旋转或致动第一耦接构件3a。
在一个实施例中,至少一个传感器6选自包括压电传感器、霍尔效应传感器、红外传感器或用于确定第一耦接构件3a相对于第二耦接构件4a的位置和取向的目的的任何其他传感器的组。
在一个实施例中,第一耦接构件3a可以经由机电装置、机械装置、真空装置或磁性装置中的至少一个连接至机器人系统,诸如机器臂。在示例性实施例中,第一耦接构件3a与机器人系统之间的机械连接装置可以选自卡扣配合布置、螺纹布置、扭锁布置或符合设计的可行性和要求的任何其他装置中的至少一种。
在一个实施例中,第二耦接构件4a可以经由机电装置、机械装置、真空装置或磁性装置中的至少一个连接至一个或多个对象2。在示例性实施例中,第二耦接构件4a与一个或多个对象2之间的机械连接装置可以选自卡扣配合布置、螺纹布置、扭锁布置或符合设计的可行性和要求的任何其他装置中的至少一种。
在一个实施例中,接口端口7[如图7a-7c所示]被限定在第一耦接构件3a上并且与机器人系统接口。接口端口7提供第二耦接构件4a与机器人系统之间的外围连接,以促进机器人系统对一个或多个对象2的操纵。
在一个实施例中,一个或多个对象2可以选自厨房用具、家用用具、车间用具、工业用具或符合用户要求的任何其他用具中的至少一种。
在一个实施例中,机器人系统可以选自商业机器人系统和工业机器人系统中的至少一种。在另一个实施例中,商用机器人系统可以选自家用机器人系统、现场机器人系统、医疗机器人系统和自主机器人系统中的至少一种。
在本公开的一个示例性实施例中的图3a-3e示出了耦接设备1,其由锁定机构5限定,该锁定机构5具有三角形配置的至少一个凹口5a和至少一个突起5b[也被称为三角形配置的锁定机构5]。
如图903a所示,耦接设备1包括第一耦接构件3a,该第一耦接构件3a为圆柱形并且横截面为圆形。第一耦接构件3a具有可连接至机器人系统的第一连接表面3b,以及具有多个第一突出部的第一配合表面。多个第一突出部被配置为关于轴线A-A’对称,在轴线A-A’的任一侧上仅形成一个波谷区域。所述波谷区域可以形成为,使得所述多个第一突出部中的一个突出部小于所述多个第一突出部中的其他突出部。第一配合表面还包括三角形配置的至少一个突起5b,该至少一个突起5b限定在其中央部分并延伸预定距离。此外,至少一个突起5b被配置为具有对应于将被抓取和操纵的一个或多个对象2的预定厚度。至少一个突起5b的厚度固有地提供了在机器人系统的操作期间处理一个或多个对象2所需的侧向载荷稳定性。因此,基于侧向载荷稳定性要求,考虑至少一个突起5b的最佳厚度。第一耦接构件3a还可以包括中央槽,作为至少一个传感器6在接合期间确定第一耦接构件3a相对于第二耦接构件4a的位置的设置。
参照图903b,示出了耦接设备1的第二耦接构件4a。与第一耦接构件3a的配置相对应地选择第二耦接构件4a。即,第二耦接构件4a为圆柱形并且横截面为圆形,与第一耦接构件3a的尺寸相对应。第二耦接构件4a具有可连接至一个或多个对象2的第二连接表面4b,以及具有多个第二突出部4d的第二配合表面4c。多个第二突出部4d被配置为关于轴线A-A’对称,在轴线A-A’的任一侧上仅形成一个波峰区域。所述波峰区域可以形成为,使得所述多个第一突出部中的一个突出部小于所述多个第一突出部中的其他突出部。此外,与第一耦接构件3a中的波谷区域的配置相对应地选择第二耦接构件4a中的波峰区域的配置,由此确保接合后的关节齐平。第二配合表面4c还包括三角形配置的至少一个凹口5a,该至少一个凹口5a限定在其中央部分中并延伸预定距离。至少一个凹口5a被配置为对应于至少一个突起5b的配置,以在接合时形成齐平关节。此外,至少一个凹口5a可以被配置为具有对应于至少一个突起5b的延伸的预定深度。可以选择至少一个凹口5a的深度,使得在机器人系统的操作期间,第二耦接构件4a的总体强度特性保持为用于处理一个或多个对象2的最佳特性。因此,基于第二耦接构件4a的整体性和强度特性,考虑至少一个凹口5a的最佳深度。第二耦接构件4a还可以包括中央切口,该中央切口可以用作至少一个传感器6在接合期间确定第二耦接构件4a相对于第一耦接构件3a的位置的标记或指示。
在一个实施例中,至少一个突起5b的延伸小于多个第一突出部的延伸,因此确保仅当多个第一突出部与多个第二突出部接合时,至少一个突起5b与至少一个凹口5a接合。
在一个实施例中,第一耦接构件3a由选自包括铁磁材料或非铁磁材料的的组的材料制成。
在一个实施例中,第二耦接构件4a由选自包括铁磁材料或非铁磁材料的的组的材料制成。
参照图903c,示出了连接到机器臂的第一耦接构件3a和连接到一个或多个对象2的第二耦接构件4a之间的接合。机器人系统中的一个或多个处理器致动第一耦接构件3a以在工作空间中致动,并定位第二耦接构件4a。在定位时,设置在第一耦接构件3a中的至少一个传感器6确定多个第一突出部相对于多个第二突出部4d的取向。至少一个传感器6在确定了第一耦接构件3a与第二耦接构件4a之间的最佳取向时,将反馈信号发送至一个或多个处理器,以进一步操作第一耦接构件3a。因此,一个或多个处理器确保第一耦接构件3a和第二耦接构件4a之间的接合[如图903d所示]。
参照图903e,其中,为仿真而创建的一个或多个对象2经由耦接设备1附接到机器人系统,用于在机器人系统的操作期间确定耦接的稳定性和强度。在与机器人系统进行附接后,将力施加到一个或多个对象2上,以确定耦接强度[如图903f和903g所示]。
按照图3g中提到的方向,将力施加到一个或多个对象2上,其中每个字母表示力作用的方向。下文描述作用在一个或多个对象2上的力。
字母 力的方向
L
R
U
D
MF 中前
MB 中后
MU 中上
基于上述力的方向,下表1表示利用三角形配置的锁定机构5的力测试。
Figure BDA0002425066820002671
Figure BDA0002425066820002681
上表1中提到的数字对应于机器人系统无法保持的一个或多个对象上的力的方向。然而,下表2示出了对经由常规耦接设备1连接到机器人系统的一个或多个对象2的力测试的结果。
Figure BDA0002425066820002682
从表2可以看出,与传统的耦接设备相比,显然以三角形配置提供锁定机构5已显著提高了耦接设备1的稳定性和强度。因此,通过以三角形配置将锁定机构5并入,可以更有效地处理一个或多个对象2。
在本公开的一个示例性实施例中的图4a至图4d示出了耦接设备1,该耦接设备由锁定机构5限定,该锁定机构5具有圆形配置的至少一个凹口5a和至少一个突起5b[也称为圆形配置的锁定机构5]。
如图904a所示,耦接设备1包括第一耦接构件3a,该第一耦接构件3a为圆柱形并且具有圆形横截面。第一耦接构件3a具有可连接至机器人系统的第一连接表面3b,以及具有多个第一突出部的第一配合表面。多个第一突出部被配置为关于平面B-B’对称[其中平面B-B’垂直于轴线A-A’],在平面B-B’的任一侧仅形成一个波谷区域。所述波谷区域可以形成为,使得所述多个第一突出部中的一个突出部小于所述多个第一突出部中的其他突出部。第一配合表面还包括圆形配置的至少一个突起5b,该至少一个突起5b限定在其中央部分并延伸预定距离。第一耦接构件3a还包括中央槽,用于容纳至少一个传感器6以在接合期间确定第一耦接构件3a相对于第二耦接构件4a的位置。
参照图904b,示出了耦接设备1的第二耦接构件4a。与第一耦接构件3a的配置相对应地选择第二耦接构件4a。即,第二耦接构件4a为圆柱形并且横截面为圆形,与第一耦接构件3a的尺寸相对应。第二耦接构件4a具有可连接至一个或多个对象2的第二连接表面4b,以及具有多个第二突出部4d的第二配合表面4c。多个第二突出部4d被配置为关于轴线A-A’对称,在轴线A-A’的任一侧上仅形成一个波峰区域。所述波峰区域可以形成为,使得所述多个第一突出部中的一个突出部小于所述多个第一突出部中的其他突出部。此外,与第一耦接构件3a中的波谷区域的配置相对应地选择第二耦接构件4a中的波峰区域的配置,由此确保接合后的关节齐平。第二配合表面4c还包括圆形配置的至少一个凹口5a,该至少一个凹口5a限定在其中央部分中并延伸预定距离。第二耦接构件4a还可以包括中央切口,该中央切口可以用作至少一个传感器6在接合期间确定第二耦接构件4a相对于第一耦接构件3a的位置的标记或指示。
参照图904c,示出了连接到机器臂的第一耦接构件3a和连接到一个或多个对象2的第二耦接构件4a之间的接合。机器人系统中的一个或多个处理器致动第一耦接构件3a以在工作空间中致动,并定位第二耦接构件4a。在定位时,设置在第一耦接构件3a中的至少一个传感器6确定多个第一突出部相对于多个第二突出部4d的取向。至少一个传感器6在确定了第一耦接构件3a与第二耦接构件4a之间的最佳取向时,将反馈信号发送至一个或多个处理器,以进一步操作第一耦接构件3a。因此,一个或多个处理器确保第一耦接构件3a和第二耦接构件4a之间的接合[如图904d所示]。
此外,经由图4a-4d所示的耦接设备1对与机器人系统附接的一个或多个对象2[如图3e所示]进行载荷测试,以确定机器人系统的操作期间耦接的稳定性和强度。在与机器人系统进行附接后,将力施加到一个或多个对象2上,以确定耦接强度[如图3f和3g所示]。
下表3表示利用圆形配置的锁定机构5的力测试。
Figure BDA0002425066820002691
Figure BDA0002425066820002701
上表3中提到的数字对应于机器人系统无法保持的一个或多个对象2上的力的方向。
从表3可以看出,与传统的耦接设备相比,显然以圆形配置提供锁定机构5已显著提高了耦接设备1的稳定性和强度。因此,通过以圆形配置将锁定机构5并入,可以更有效地处理一个或多个对象2。然而,与三角形配置的锁定机构5相比,圆形配置的锁定机构5可能不那么稳定和刚性。
在本公开的一个示例性实施例中的图5a至图5e示出了耦接设备1,该耦接设备由锁定机构5限定,该锁定机构5具有圆形配置的至少一个凹口5a和至少一个突起5b的组合[也称为电磁体配置的锁定机构5]。
如图905a所示,耦接设备1包括第一耦接构件3a,该第一耦接构件3a为圆柱形并且具有圆形横截面。第一耦接构件3a具有可连接至机器人系统的第一连接表面3b,以及具有多个第一突出部的第一配合表面。多个第一突出部被配置为关于平面B-B’对称[其中平面B-B’垂直于轴线A-A’],在平面B-B’的任一侧仅形成一个波谷区域。所述波谷区域可以形成为,使得所述多个第一突出部中的一个突出部小于所述多个第一突出部中的其他突出部。第一配合表面还包括圆形配置的至少一个突起5b,该至少一个突起5b限定在其中央部分并延伸预定距离。第一耦接构件3a还包括被配置为接纳电磁体的两个槽8。所述电磁体被配置为经由接口端口7与机器人系统接口,使得机器人系统可以按照需要为电磁体供电。此外,槽1003c中的一个槽中的电磁体可以定位在比另一个电磁体更高的高度处,从而形成阶梯状的轮廓[如图905b所示]。此外,至少一个传感器6设置在两个槽8中的一个槽内,用于在接合期间确定第一耦接构件3a相对于第二耦接构件4a的位置。
参照图905b,示出了耦接设备1的第二耦接构件4a。与第一耦接构件3a的配置相对应地选择第二耦接构件4a。即,第二耦接构件4a为圆柱形并且横截面为圆形,与第一耦接构件3a的尺寸相对应。第二耦接构件4a具有可连接至一个或多个对象2的第二连接表面4b,以及具有多个第二突出部4d的第二配合表面4c。多个第二突出部4d被配置为关于平面B-B’对称,在平面B-B’的任一侧上仅形成一个波峰区域。所述波峰区域可以形成为,使得所述多个第一突出部中的一个突出部小于所述多个第一突出部中的其他突出部。此外,与第一耦接构件3a中的波谷区域的配置相对应地选择第二耦接构件4a中的波峰区域的配置,由此确保接合后的关节齐平。第二配合表面4c还包括圆形配置并且对应于电磁体定位的两个凹口。所述凹口被配置为接纳电磁体以进行接合和耦接。所述凹口还可以包括中央切口,该中央切口可以用作至少一个传感器6在接合期间确定第二耦接构件4a相对于第一耦接构件3a的位置的标记或指示。
参照图905c,第二耦接构件4a的凹口中的一个凹口可以包括缝9,使得电磁体一旦插入这些凹口中即可与缝9接合,以改善与第二耦接构件4a的接合。在一个实施例中,缝9也可以被配置在第一耦接构件3a中。
参照图905d,示出了连接到机器臂的第一耦接构件3a和连接到一个或多个对象2的第二耦接构件4a之间的接合。机器人系统中的一个或多个处理器致动第一耦接构件3a以在工作空间中致动,并定位第二耦接构件4a。在定位时,设置在第一耦接构件3a中的至少一个传感器6确定多个第一突出部相对于多个第二突出部4d的取向。至少一个传感器6在确定了第一耦接构件3a与第二耦接构件4a之间的最佳取向时,将反馈信号发送至一个或多个处理器,以进一步操作第一耦接构件3a。在这一阶段,一个或多个处理器可以基于锁定一个或多个对象2所需的锁定力来选择性地致动电磁体。因此,一个或多个处理器确保了第一耦接构件3a和第二耦接构件4a之间的接合。[如图5e所示]。
此外,经由图5a-5e所示的耦接设备1对与机器人系统附接的一个或多个对象2[如图3e所示]进行载荷测试,以确定机器人系统的操作期间耦接的稳定性和强度。在与机器人系统进行附接后,将力施加到一个或多个对象2上,以确定耦接强度[如图3f和3g所示]。
下表4表示利用电磁体配置的锁定机构5的力测试。
Figure BDA0002425066820002711
上表4中提到的数字对应于机器人系统无法保持的一个或多个对象2上的力的方向。
从表4可以看出,与传统的耦接设备相比,显然以电磁体配置提供锁定机构5已显著提高了耦接设备1的稳定性和强度。此外,耦接设备1的此配置相比圆形配置和三角形配置具有更高的稳定性。
在本公开的一个示例性实施例中,图6a-6d示出了连接到一个或多个对象2的第二耦接构件4a。在一个实施例中,一个或多个对象2是厨房用具,诸如搅拌器、勺子、器具等等。
如图中所示,第二耦接构件4a可位于一个或多个对象2上,使得其不会妨碍用户手动使用一个或多个对象2。同时,一旦耦接,第二耦接构件4a的位置还可以使机器人系统能够有效地操纵一个或多个对象2。因此,第二耦接构件4a在一个或多个对象2上的位置在其对机器人系统和用户两者的实用性中起着至关重要的作用。
在一个示例性实施例中,如图906a所示,第二耦接构件4a位于搅拌器的长度的中央区域。此位置确保用户可以手动操作搅拌器,并且还可以连接到机器人系统进行操作。用于图6b-6d所示的一个或多个对象2的第二耦接构件4a的位置以与搅拌器相同的方式考虑。
在本公开的一个示例性实施例中的图908a-908f示出了用于将一个或多个对象2固定到机器人系统的锁定机构5。锁定机构5包括固定在机器人系统的操纵器上的至少一个第一锁定构件1000和安装在操纵器上的至少一个第二锁定构件1001。至少一个第一锁定构件1000和至少一个第二锁定构件1001位于同一平面上,用于固定一个或多个对象2。至少一个第二锁定构件1001位于限定在操纵器上的导轨中,用于通过至少一个致动器1003配件在第一位置1001a和第二位置1001b之间滑动。至少一个致动器1003配件被配置为从第一位置1001a至第二位置1001b操作至少一个第二锁定构件1001,以在至少一个第一锁定构件1000与至少一个第二锁定构件1001之间接合一个或多个对象2,以便固定一个或多个对象2。至少一个第一锁定构件1000和至少一个第二锁定构件1001被配置为与限定在一个或多个对象2上的用于结合的多个槽1003c接合。(如图908b所示)。
在一个实施例中,至少一个第二锁定构件1001被致动以朝着至少一个第一锁定构件1000滑动,同时在第一位置1001a至第二位置1001b之间操作。
在一实施例中,至少一个致动器1003配件可以与一个或多个处理器相关联。一个或多个处理器可以被配置为致动至少一个致动器1003,以在第一位置1001a和第二位置1001b之间操作至少一个第二锁定构件1001。在另一实施例中,一个或多个处理器可被配置为当操纵器靠近要固定的一个或多个对象2的附近时致动至少一个致动器1003。
在一个实施例中,与至少一个第一锁定构件1000和第二锁定构件的配置相对应地选择在一个或多个槽1003c上限定的多个槽1003c。
在一个实施例中,多个槽1003c被配置为,使得在接合期间作用在至少一个第一锁定构件1000和第二锁定构件上的摩擦力最小。为了使摩擦力最小,多个槽1003c可以设置有诸如圆角或倒角的特征或减轻接合摩擦力的任何其他特征。
在一个实施例中,基于至少一个第一锁定构件1000和第二锁定构件行进的强度和平滑度,多个槽1003c可以被配置为具有预定的滑动角。
在一个实施例中,如以下表5所示,基于各种因素考虑了多个槽1003c的预定滑动角。
因子 小滑动角 大滑动角
锁定系统的强度
移动的平滑度
器具中所需的孔大小
机器手上的挂钩的大小
电动机1003d的功率要求 小功率 大功率
误差容限(距离/范围)
锁定时间
在一个实施例中,至少一个致动器1003配件包括由电动机1003d操作的导螺杆和安装在导螺杆上的螺母。由夹具支撑的电动机1003d耦接至导螺杆,并且因此在导螺杆旋转时,螺母被配置为沿导螺杆滑动。螺母固定地连接到至少一个第二锁定构件1001,使得当电动机1003d旋转导螺杆时,至少一个第二锁定构件1001与螺母一起操作。电动机1003d可以与机器人系统的一个或多个处理器相关联。因此,一个或多个处理器按照至少一个第二锁定构件1001的活动要求来控制导螺杆的旋转。相应地,至少一个第二锁定构件1001在第一位置1001a和位置1001b之间操作。
在一个实施例中,导螺杆可以与操纵器的水平轴线同轴地安装。在另一个实施例中,可以按照至少一个第二锁定构件1001在第一位置1001a和第二位置1001b之间的滑动活动要求,将导螺杆安装在操纵器上,以固定一个或多个对象2。
在一个实施例中,可以提供导螺杆保持器以将导螺杆支撑在操纵器上。
在一个实施例中,导螺杆保持器包括多个螺纹,这些螺纹的导角被选择为当电动机1003d停止运行时限制螺母的活动。
在一个实施例中,一个或多个处理器被配置为在对准至少一个第一锁定构件1000和至少一个第二锁定构件1001中的任一个时致动电动机1003d。在一个实施例中,多个槽1003c可包括用于在接合期间确定一个或多个对象2的位置的指示装置或标记。在另一实施例中,多个槽1003c中的指示设备或标记可以使一个或多个处理器能够在接合之前将至少一个第一锁定构件和第二锁定构件中的任一个与多个槽1003c对准。
在一个实施例中,电动机1003d由选自交流电源或直流电源中的至少一个的电源供电,以便旋转导螺杆。
在一个示例性实施例中,操作导螺杆所需的转矩计算如下:
基于所需的力、螺杆的摩擦力和螺纹的导程/螺距,计算出6毫米(mm)螺杆的转矩如下:
转矩(上升)=F*dm/2*(L+u*PI*dm)/(PI*dm-u*L)………(等式1)
=20N*6mm/2*(1mm+0.2*PI*6mm)/(PI*6mm-0.2*1mm)=必须在螺杆端部施加13.5N*mm的转矩才能在螺母上施加20N的力
用于计算所需转矩的等式如下:
Figure BDA0002425066820002751
Figure BDA0002425066820002752
T–转矩
F–螺杆上的载荷
dm–螺杆直径
μ–摩擦系数
(以下根据表1)
l–导程/螺距
Φ-摩擦角
λ–导角
在另一个实施例中,按照设计的可行性和要求,用于导螺杆和螺母材料的材料选自包括钢、不锈钢、青铜、黄铜、铸铁等的组。
在示例性实施例中,如下计算导螺杆旋转:
对于至少一个第二锁定构件1001的每秒1毫米的速度,导螺杆的旋转可通过以下方式计算:
V=L*Rps……(等式2)
其中:
V–吊钩的速度
L–螺纹的导程/螺距
Rps-(螺杆的)每秒转数
因此:10毫米/秒(mm/sec)=1mm*Rps
Rps=(10mm/sec)/1mm
Rps=10/sec
换句话说,导螺杆需要每秒10转,才能以每秒10毫米的速度移动至少一个第二锁定构件1001。
因此,电动机1003d将必须使螺杆的旋转速度为600rpm(10rps*60秒),才能实现使吊钩的速度等于每秒10毫米。
在一个实施例中,至少一个致动器1003配件可以包括安装在操纵器上的壳体1004a。壳体1004a包括螺线管线圈1004b,并由电源供电。柱塞1004c容纳在壳体1004a内,并同心地悬挂在螺线管线圈1004b上。柱塞1004c适于由在通电条件下的螺线管线圈1004b致动。此外,框架构件1004d从柱塞1004c延伸,以连接到至少一个第二锁定装置。因此,框架构件1004d被配置为将柱塞1004c的致动传送到至少一个第二锁定装置,并由此在第一位置1001a和第二位置1001b之间操作至少一个第二锁定装置。
在一个实施例中,可以设置阻尼器构件,使得阻尼器构件的一端可以固定到壳体1004a,而另一端可以连接到框架构件1004d。该配置确保当螺线管线圈1004b断电时框架构件1004d返回到初始位置。因此,使得框架构件1004d和至少一个第二锁定构件1001能够在第一位置1001a和第二位置1001b之间平滑地平移。
在一实施例中,框架构件1004d包括连接至至少一个第二锁定构件1001的一个或多个连杆1005构件,用于将柱塞1004c的致动传送至至少一个第二锁定构件1001。
在一个实施例中,螺线管线圈1004b由选自交流电源或直流电源中的至少一个的电源供电,以旋转导螺杆。
在一个实施例中,至少一个第一锁定构件和第二锁定构件是吊钩构件。
在一实施例中,设置在操纵器中的至少一个传感器6被配置为检测一个或多个对象2与操纵器的固定和不固定条件。
在一个实施例中,至少一个第一锁定构件1000和至少一个第二锁定构件1001两者都可以相对于彼此滑动以固定一个或多个对象2。换句话说,代替仅移动至少一个第二锁定构件1001,至少一个第一锁定构件1000也可以可滑动地操作以固定一个或多个对象2。
在一实施例中,多个槽1003c设置在一个或多个对象2上,对应于一个或多个对象2需要用操纵器固定的方位和位置。在一示例性实施例中,如果一个或多个对象2需要垂直放置[如图908a所示],则可以沿着一个或多个对象2的保持器部分的长度设置多个槽1003c。因此,确保操纵器仅固定一个或多个对象2的保持器部分。
在一个实施例中,按照设计的可行性和要求,螺线管配件可以选自拉式螺线管致动器或推式螺线管致动器中的至少一种。
在一实施例中,多个槽1003c被定位为,使得不限制一个或多个对象2的手动操作。
在一个实施例中,以下提到与由螺线管线圈1004b生成的力有关的计算:
直流螺线管的力和响应时间都直接受到瓦数的影响。由于直流功率=电压x电流,因此增加或减少电压或电流(安培)将增加或减少力和响应时间。
但是,增加电流会导致温度升高,并显着降低磁力(与增加占空比类似的效果)。
在冲程(stroke)开始时,磁力非常低,而在冲程结束时,磁力则非常高(如下面螺线管特性示例中所示)。例如,在50%的占空比下,等于5毫米的冲程处的磁力可能比冲程结束时的磁力低5至20倍(如图910a-910c所示)。
螺线管的力与冲程(气隙“g”)的平方成反比。当气隙加倍时,力将变为四分之一。
根据以下等式,直流螺线管的磁场衰减与距离的平方成正比。因此,螺线管的力不是线性的,并且从冲程开始时的小的力增加到冲程结束时的非常大的力。
Figure BDA0002425066820002771
其中:
F=螺线管的力,以牛顿为单位
I=电流,以安培为单位
N=匝数(接线)
g=冲程/气隙的长度,以米为单位
A=面积,以平方米(m2)为单位
4xPIx10-7=磁常数
这意味着如果电流(I)、面积(A)和匝数(N)恒定,则力(F)与气隙的平方成反比。
在示例性实施例中,电流(I=4安培)、匝数(N=500)和面积(A=49平方毫米=7毫米*7毫米)恒定。右侧的表1显示了不同冲程/气隙“g”(实际上是柱塞1004c的位置)的结果。力的计算公式如下:
Figure BDA0002425066820002772
当冲程增加时,力(F)迅速减小。力(F)与气隙的平方成反比。其在力/冲程图中显示为双曲线[如图910d所示]。
当冲程加倍时,力变为四分之一:
10毫米冲程=>1.2牛顿力
20毫米冲程=>0.3牛顿力
长冲程时力接近于零。
在本公开的一个示例性实施例中的图11a-11e示出了用于一个或多个对象2的壁锁定机构1006。壁锁定机构1006包括用于容纳一个或多个对象2的开口1006a。开口1006a延伸到插座1006b,其被配置为保持固定在一个或多个对象2上的壁装支架1007的一部分。此外,开口1006a处设置有止动件,该止动件与壁的表面平行延伸并被配置为将壁装支架1007的一部分锁定到插座1006b中(如图911d所示)。
在一实施例中,为了存放一个或多个对象2,机器人系统适于靠近壁锁定机构1006并使一个或多个对象2以预定角度取向以插入一个或多个对象2的壁装支架1007。在这一阶段,机器人系统适当地倾斜一个或多个对象2,以将壁装支架1007锁定到开口1006a中。
在一个实施例中,开口1006a、插座1006b和止动件可以被配置为对应于被提供给一个或多个支架的壁装支架1007的配置。
在一个实施例中,壁锁定机构1006可以被配置为直接接收和存放一个或多个对象2。
在一实施例中,可以在插座1006b中提供磁体,以向一个或多个对象2提供额外的锁定力。
在一个实施例中,磁体可以设置在壁装支架1007上,或者可以直接安装在一个或多个对象2上,以便固定到壁锁定机构1006上。
在一个实施例中,在厨房环境、结构化环境或非结构化环境中的至少一种中限定壁装机构。
图1xx是示出如3624所示的计算机设备的示例的框图,可以在该计算机设备上安装和运行用于执行本文所讨论的方法的计算机可执行指令。如上所述,结合本公开讨论的各种基于计算机的设备可以共享相似的属性。每个计算机设备或计算机16能够执行一组指令,以使计算机设备执行本文所讨论的方法中的任何一个或多个。计算机设备16可以代表任何或整个服务器,或任何网络中间设备。此外,虽然仅示出了单个机器,但是术语“机器”也应被理解为包括单独地或共同地执行一组(或多组)指令以执行本文讨论的任何一个或多个方法的机器的任何集合。示例计算机系统3624包括处理器3626(例如,中央处理单元(CPU)、图形处理单元(GPU)或两者)、主存储器3628和静态存储器3630,它们经由总线3632彼此通信。计算机系统3624还可包括视频显示单元3634(例如,液晶显示器(LCD))。计算机系统3624还包括字母数字输入设备3636(例如,键盘)、光标控制设备3638(例如,鼠标)、磁盘驱动器单元3640、信号生成设备3642(例如,扬声器)和网络接口设备3648。
磁盘驱动器单元3640包括机器可读介质244,在该机器可读介质244上存储体现本文描述的方法或功能中的任何一个或多个的一组或多组指令(例如,软件3646)。软件3646还可以完全或至少部分地驻留在主存储器3644内和/或在计算机系统3624执行其期间的处理器3626内、主存储器3628以及构成机器可读介质的处理器3626的指令存储部分。可以经由网络接口设备3648通过网络3650进一步发送或接收软件3646。
虽然在示例实施例中将机器可读介质3644示为单个介质,但是术语“机器可读介质”应理解为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的缓存和服务器)。术语“机器可读介质”也应被理解为包括能够存储一组指令的任何有形介质,所述指令由机器执行并且使机器执行本公开的任何一个或多个方法。因此,术语“机器可读介质”应被理解为包括但不限于固态存储器以及光和磁介质。
一般来说,机器人控制平台包括:一个或多个机器人传感器;一个或多个机器人致动器;机械机器人结构,至少包括在关节连接的颈部上的安装有传感器的机器人头部、具有致动器和力传感器的两个机器臂;微操纵的电子库数据库,其通信耦接到机械机器人结构,每个微操纵包括用于实现预定功能结果的一系列步骤,每个步骤包括感测操作或参数化的致动器操作;以及机器人规划模块,通信耦接到机械机器人结构和电子库数据库,配置为组合多个微操纵以实现一个或多个具体领域应用;机器人解释器模块,通信耦接到机械机器人结构和电子库数据库,配置为从微操纵库读取微操纵步骤并转换为机器代码;以及机器人执行模块,通信耦接到机械机器人结构和电子库数据库,被配置为用于由机器人平台执行微操纵步骤以完成与微操纵步骤相关联的功能结果。
另一广义方面提供一种具有由机器人操作系统(ROS)利用机器人指令操作的机器人计算机控制器的人形机,包括:具有多个电子微操纵库的数据库,每个电子微操纵库包括多个微操纵元素,多个电子微操纵库可组合以创建一个或多个机器可执行特定应用指令集,电子微操纵库内的多个微操纵元素可组合以创建一个或多个机器可执行特定应用指令集;机器人结构,具有通过关节连接的颈部连接到头部的上身和下身,上身包括躯干、肩膀、臂和手;以及控制系统,通信耦接到数据库、传感系统、传感器数据解释系统、运动规划器、以及致动器和相关联的控制器,控制系统执行特定应用指令集以操作机器人结构。
另一广义的通过使用一个或多个控制器、一个或多个传感器、以及一个或多个致动器来操作机器人结构以完成一个或多个任务的计算机实施的方法包括:提供具有多个电子微操纵库的数据库,每个电子微操纵库包括多个微操纵元素,多个电子微操纵库可组合以创建一个或多个机器可执行特定任务指令集,电子微操纵库中的多个微操纵元素可组合以创建一个或多个机器可执行特定任务指令集;执行特定任务指令集以使机器人结构执行被命令的任务,机器人结构具有通过关节连接的颈部连接到头部的上身,上身包括躯干、肩膀、臂和手;向机器人结构的一个或多个物理部分发送用于位置、速度、力和转矩的时间索引的高层级命令;以及从一个或多个传感器接收传感数据,用于与时间索引的高层级命令一起作为因素来考虑以生成用以控制机器人结构的一个或多个物理部分的低层级命令。
另一广义的用于生成和执行机器人的机器人任务的计算机实施的方法包括:生成与参数微操纵(MM)数据集组合的多个微操纵,每个微操纵与至少一个特定参数MM数据集相关联,该MM数据集定义与每个微操纵相关联的所需常量、变量和时间顺序简档;生成具有多个电子微操纵库的数据库,多个电子微操纵库具有MM数据集、MM命令序列、一个或多个控制库、一个或多个机器视觉库、以及一个或多个进程间通信库;由高层级控制器执行高层级机器人指令,以便通过选择、分组和组织来自数据库的多个电子微操纵库由此生成特定任务命令指令集,来执行特定机器人任务,执行步骤包括:将与特定任务命令指令集相关联的高层级命令序列分解成用于机器人的每个致动器的一个或多个单独的机器可执行命令序列;以及通过低层级控制器执行低层级机器人指令,以便执行用于机器人的每个致动器的单独的机器可执行命令序列,单独的机器可执行命令序列共同地操作机器人上的致动器以执行特定机器人任务。
一种广义的用于控制机器人设备的计算机实施的方法包括:组成一个或多个微操纵行为数据,每个微操纵行为数据包括用于构建一个或多个更复杂行为的一个或多个基本微操纵基元,每个微操纵行为数据具有用于描述和控制每个微操纵行为数据的相关功能结果和关联校准变量;将一个或多个行为数据链接到来自一个或多个数据库的物理环境数据以生成链接的微操纵数据,物理环境数据包括物理系统数据、实现机器人活动的控制器数据、以及用于监视和控制机器人设备75的传感数据;以及将来自一个或多个数据库的链接的微操纵(高层级)数据转换成每个时段(t1至tm)用于每个致动器(A1至An,)控制器的机器可执行(低层级)指令代码,以发送命令到机器人设备,以便在一组连续的嵌套环中执行一个或多个所命令的指令。
就这些方面中的任何方面而言,可以考虑下述事项。产品的制备通常采用食材。执行指令通常包括感测产品制备当中采用的食材的属性。产品可以是根据(食物)菜谱(其可以保存在电子说明书中)的食物菜肴,而人可以是厨师。工作设备可以包括厨房设备。这些方法可以结合文中描述的其他特征中的一者或多者使用。可以组合各个方面的特征中的一个、多个或者全部特征,从而例如使来自某一方面的特征可以与另一方面相结合。每一方面都可以是计算机实现的,并且可以提供被配置为在由计算机或处理器运行时执行每一方法的计算机程序。可以将每一计算机程序存储到计算机可读介质上。附加地或替代地,所述程序可以是部分或完全硬件实现的。可以使各个方面相结合。还可以提供一种被配置为根据联系这些方面中的任何方面来描述的方法运行的机器人系统。
在另一方面中,可以提供一种机器人系统,其包括:能够在第一仪器化环境中观察人的运动并生成人运动数据的多模态感测系统;以及通信耦接至多模态感测系统的处理器(其可以是计算机),所述处理器用于记录从多模态感测系统接收到的人运动数据并对人运动数据进行处理以提取运动基元,从而优选使运动基元定义机器人系统的操作。运动基元可以是微操纵,如文中所述(例如,紧挨着的在先段落当中),并且可以具有标准格式。运动基元可以定义动作的具体类型和某一类型动作的参数,例如,具有定义的起始点、终点、力和抓取类型的牵拉动作。任选地,还可以提供通信耦接至处理器和/或多模态感测系统的机器人设备。机器人设备可以能够使用运动基元和/或人运动数据在第二仪器化环境内复现所观察到的人的运动。
就另一方面而言,可以提供一种机器人系统,其包括:用于接收定义机器人系统的操作的运动基元的处理器(其可以是计算机),所述运动基元是基于从人的运动捕获的人运动数据;以及通信耦接至处理器的机器人系统,其能够使用运动基元在仪器化环境内复现人的运动。应理解,还可以使这些方面相结合。
另一方面可见于一种机器人系统中,其包括:第一和第二机器臂;第一和第二机器手,每只手具有耦接至相应臂的手腕,每只手具有手掌和多个关节连接的手指,相应手上的每一关节连接的手指具有至少一个传感器;以及第一和第二手套,每只覆盖相应手的手套具有多个嵌入式传感器。优选地,所述机器人系统是机器人厨房系统。
在一不同但相关的方面中还可以提供一种运动捕获系统,其包括:标准化工作环境模块,优选为厨房;多个多模态传感器,具有被配置为物理耦接至人的第一类型传感器和被配置为与人分离的第二类型传感器。其可以是下述情况中的一种或多种:第一类型传感器可用于测量人附属肢体的姿势以及感测人附属肢体的运动数据;第二类型传感器可用于确定环境、对象、活动、以及人附属肢体的位置中的一个或多个的三维配置的空间配准;第二类型传感器可配置为感测活动数据;标准化工作环境可具有与第二类型传感器接口的连接器;第一类型传感器和第二类型传感器测量运动数据和活动数据,并将运动数据和活动数据两者都发送至计算机,从而对其进行存储和处理,以供产品(例如,食物)制备之用。
附加地或替代地,一个方面可以在于包覆有感测手套的机器手,其包括:五个手指;以及连接至五个手指的手掌,所述手掌具有内部关节和处于三个区域内的可形变表面材料;第一可形变区域,设置在手掌的桡骨侧并且接近拇指的基部;第二可形变区域,设置在手掌的尺骨侧并且与桡骨侧隔开;第三可形变区域,设置在手掌上并且跨越各手指的基部延伸。优选地,第一可形变区域、第二可形变区域和第三可形变区域的组合以及内部关节协同工作,以执行微操纵,尤其是用于食物制备的微操纵。
一种用于高速和高保真度操纵操作的多层级机器人系统,该系统分为两个由仪器化关节连接和控制器致动的子系统组成的物理和逻辑子系统,各自包括负责在较大的无约束环境工作空间中以较低的端点精确度进行的操作的较大和较粗略运动的宏观操纵系统,以及负责在较小工作空间中的操作并同时以较高的端点运动精确度与工具和环境进行交互的较小和较精细运动的微观操纵系统,它们各自基于通过特定于宏观操纵子系统和微观操纵子系统的双层级数据库提供的微操纵命令来执行微操纵轨迹遵循任务,并各自由专用且单独的分布式处理器和传感器架构支持,所述分布式处理器和传感器架构运行在总体上实时运行的系统上,通过多个特定于传感器、命令和数据库元素的总线接口与所有子系统进行通信。本公开的机器人系统涉及,其中宏观操纵子系统包含通过一个或多个专用接口总线互连的专用传感器、致动器和处理器,包括:用于感知周围环境的传感器套件,其包括对所述环境中的元素进行成像和绘制以及对所述环境中的元素进行建模,并识别所述元素,基于由专用宏观层级微操纵库提供的微操纵命令,在关节空间和/或笛卡尔空间中的一个或多个中执行与宏观操纵子系统有关的运动规划,通过在关节致动器层级上基于位置或速度或关节或力的控制来执行所述命令,以及将传感数据提供回宏观操纵控制和感知子系统,同时还监视所有过程,以允许学习算法基于诸如执行时间、能量消耗、避免碰撞、避免奇点和工作空间可达性等标准对微操纵宏观层级命令库进行改进,以改善未来的性能。本公开的机器人系统涉及,其中微观操纵子系统包含通过一个或多个专用接口总线互连的专用传感器、致动器和处理器,包括用于感知即时环境的传感器套件,其包括对所述环境中的元素进行成像和绘制以及对所述环境中的元素进行建模,并识别所述元素,尤其是在与环境本身接触期间其与微观操纵系统和相关工具之间的交互变量有关,基于由专用的微观层级微操纵库提供的微操纵命令,在关节空间和/或笛卡尔空间中的一个或多个中执行与微观操纵子系统有关的运动规划,通过在关节致动器层级上基于位置或速度或关节或力的控制来执行所述命令,以及将传感数据提供回微观操纵控制和感知子系统,同时还监视所有过程,以允许学习算法基于诸如执行时间、能量消耗、避免碰撞、避免奇点和工作空间可达性等标准对微操纵微观层级命令库进行改进,以改善未来的性能。
一种机器人烹饪系统,至少被配置为一个双层级物理和逻辑宏观操纵和微观操纵系统,其能够通过仪器化关节连接和控制器致动的子系统进行独立和协调的任务运动,其中宏观操纵系统被用于使用其自身专用的感测、定位和运动执行子系统在自由空间中对整个机器人配件进行粗略定位,其上附接有一个或多个相应的微观操纵子系统,用于本地感测、精细定位和与环境交互的末端执行器的运动执行,其中宏观操纵系统和微观操纵系统两者各自配置有它们自身单独且专用的总线,用于感测、数据通信以及利用它们的相关处理器对相关致动器进行控制,其中宏观操纵系统和微观操纵系统中的每一个从它们专用的规划器接收基于单独的微操纵命令的运动和行为命令,每个规划器从中央规划器接收与协调的时间进度和过程进度相关的微操纵命令。与宏观操纵系统有关的系统包括大型工作空间平移笛卡尔空间定位器,以及附接的身体系统,该身体系统由连接到肩部的传感器头部和躯干构成,所述躯干具有一个或多个关节连接的多关节操纵器臂,每个臂都有一个附接于其上的手腕,该手腕能够经由通过至少一个或多个专用控制器接口的专用传感器和致动器来定位一个或多个微观操纵子系统。与微操纵系统有关的系统包括至少一个连接到其上的手掌和灵巧的多指手臂末端执行器,用于经由至少通过一个或多个控制器接口的专用传感器和致动器,来处理器具和工具以及在菜肴制备烹饪的任何阶段所需的任何器皿。该系统涉及其中一组腿或轮子附接到腰部,该腰部附接到宏观操纵系统,以用于较大的工作空间活动。该系统向负责感知宏观操纵子系统自由空间环境以及整个机器人系统姿势的世界感知和建模系统提供传感器反馈数据。该系统通过一个或多个专用接口总线将所述世界感知反馈和模型数据提供给在一个或多个独立式且单独的处理器上运行的专用宏观操纵规划器。该规划系统涉及从单独的独立式任务分解和规划模块向其提供宏观操纵运动命令。该系统向负责感知微观操纵子系统自由空间环境以及整个机器人系统姿势的世界感知和建模系统提供传感器反馈数据。该系统通过一个或多个专用接口总线将所述世界感知反馈和模型数据提供给在一个或多个独立式且单独的处理器上运行的专用微观操纵规划、执行和跟踪模块。该规划系统从单独的独立式任务分解和规划模块向其提供微观操纵运动命令。
一种规划系统,其生成微操纵命令堆栈序列,被配置为对整个机器人系统执行规划动作,从而组合并协调来自宏观规划器和微观规划器的单独规划的微操纵,其中所述宏观操纵规划器为宏观操纵子系统规划并生成与时间进度和过程进度相关的微操纵,其中所述微观操纵规划器为微观操纵子系统规划并生成与时间进度和过程进度相关的微操纵。根据权利要求14的每个子系统规划器包括用于宏观操纵任务的任务进度跟踪模块、微操纵规划模块和微操纵数据库。任务进度跟踪模块包括:进度比较器模块,其结合所有相关传感器反馈数据,跟踪命令的和实际的任务进度、模型和环境数据以及产品和过程模型数据之间的差异;以及学习模块,其创建并跟踪对所述微操纵的描述符中的偏差造成影响的变化,以用于对相应数据库的潜在未来升级。微操纵规划系统模块基于步骤集合来生成微操纵命令,所述步骤集合使用来自数据库的微操纵命令,随后对该微操纵命令进行适用性评估,将其解析为应用于单个可移动组件,在空间中进行组合以获得平滑的运动曲线,并针对最佳定时进行优化,随后将其转换为机器可读的微操纵命令集合,所述命令集合被配置为命令堆栈序列。
一种用于生成用于宏观操纵子系统或微观操纵子系统中的一个或两者的微操纵命令的方法,通过以下的过程来实现:接收高层级任务执行命令,包括从动作基元储存库中选择替代动作基元集合,基于对应用重要的预定标准集合来对其进行评估和选择以实现命令的任务,所述标准集合描述了所需的入口边界条件以及最低必要出口边界条件,从而定义了在任务开始和完成时的成功任务完成状态。用于宏观或微观操纵子系统中的一个或两者的微操纵命令生成的方法包括:接收高层级任务执行命令,识别将被映射到适用的机器人子系统的各个子任务,为上述每个子任务生成单独的性能标准和可测量的成功最终状态标准,选择最合适的动作基元候选的独立或组合中的一个或多个,评估这些动作基元替代以最大化或最小化诸如执行时间、能量消耗、机器人可达性、碰撞避免或任何其他任务关键标准之类的测量,在一个或多个运动空间(包括关节空间和笛卡尔空间)中生成宏观和/或微观操纵子系统轨迹中的一个或两者,同步所述轨迹,以实现路径连续性、路径片段平滑度、片段内时间戳同步以及多臂机器人子系统之间的协调,以及为宏观和/或微观操纵子系统中的一个或两者生成机器可执行命令序列堆栈。该方法包括接收在微操纵进度跟踪和性能学习过程期间生成的微操纵描述符更新的步骤,其涉及:提取与具体的微操纵及其相关的动作基元有关的常量和变量,为每个受影响的动作基元分配每个变量和常量的变化,以及将更新提供回动作基元储存库,以允许在所述储存库或数据库中记录和实施每个更新。
就上述系统、设备或装置方面中的任何方面而言,还可以提供包括用以执行系统的功能的步骤的方法。附加地或替代地,可以在本文中相对于其他方面描述的特征中的任何一者或多者的基础上发现任选的特征。
已经关于可能的实施例尤其详细地描述了本公开。本领域技术人员将认识到可以通过其他实施例实践本公开。组件的具体命名、术语的大小写、属性、数据结构或者任何其他的程序设计或结构方面都不具有强制性或者重要性,并且实施本公开的机制或其特征可以具有不同的名称、形式或协议。可以经由硬件和软件的组合(如所描述的)、完全通过硬件元素或者完全通过软件元素实施所述系统。本文中描述的各种系统组件之间的功能的具体划分只是示范性的,而非强制性的;相反,可以通过多个组件执行单个系统组件执行的功能,或者可以通过单个组件执行多个组件执行的功能。
在各实施例中,可以将本公开单独地或者组合地实现为用于执行上文描述的技术的系统或方法。还提供了文中描述的任何具体特征的组合,尽管未对该组合予以明确的描述。在另一实施例中,可以将本公开实现为计算机程序产品,其包括计算机可读存储介质和编码到所述介质上的计算机程序代码,所述代码用于使计算设备内的处理器或者其他电子设备执行上述技术。
如本文使用的,对“一实施例”或“实施例”的任何提及都表示将结合实施例描述的特定特征、结构或特性包括在本公开的至少一个实施例中。在本说明书中的不同位置出现的“在一实施例中”这一短语未必都是指同一实施例。
上文的一些部分是通过计算机存储器中对数据比特进行的操作的算法和符号表示呈现的。这些算法描述和表示是数据处理领域的技术人员用于将其工作的实质最为有效地传达给其他本领域技术人员的手段。这里将算法一般性地看作是导致预期结果的自洽的步骤(指令)的序列。所述步骤是需要对物理量进行实际操纵的步骤。这些量通常但未必一定采取能够受到存储、转移、合并、比较、变换以及其他操纵的电、磁或光信号的形式。有时这些信号主要是出于常用的原因便于被称为比特、值、元素、符号、字符、项、数字等。此外,有时还方便地将某些需要物理量的实际操纵的步骤安排称为模块或代码装置,而不失一般性。
但是应记住,所有的这些和类似术语都将与适当的物理量相关,其只是应用于这些量的方便标签。除非从下述讨论中明显地看出了另行的明确指定,否则应当认识到在整个说明书中,采用诸如“处理”或“计算”或“运算”或“显示”或“确定”等的词语所做的讨论是指计算机系统或类似电子计算模块和/或设备的操作和处理,其将对被表示为所述计算机系统的存储器或寄存器或者其他这样的信息存储器、传输或显示装置内的物理(电子)量的数据进行操纵和变换。
本公开的某些方面包括采取算法形式的文中描述的过程步骤和指令。应指出,公开请的过程步骤和指令可以实现在软件、固件和/或硬件当中,在通过软件实施时,其能够被下载,从而保存在各种操作系统使用的不同平台上并从所述平台对其进行操作。
本公开还涉及一种用于执行文中的操作的设备。这一设备可以是针对所需的目的而专门构造的,或者其可以包括由存储在计算机内的计算机程序有选择地激活或重新配置的通用计算机。这样的计算机程序可以存储在有形计算机可读存储介质中,例如,所述计算机可读存储介质可以是但不限于包括软盘、光盘、CD-ROM、磁光盘在内的任何类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光卡、专用集成电路或者任何类型的适于存储电子指令的介质,它们当中的每者均耦接至计算机系统总线。此外,本说明书中引述的计算机和/或其他电子设备可以包括单个处理器或者可以是采用提高计算能力的多处理器设计的架构。
文中呈现的算法和显示并不与任何特定的计算机、虚拟化系统或其他装置存在固有的关联。也可以将各种通用系统与根据本文教导的程序一起使用,或者系统可以证明,构建所需的更为专门的装置来执行期望的方法步骤是方便的。通过文中提供的描述,这些各种各样的系统所需的结构将变得显而易见。此外,未参照任何特定的编程语言描述本公开。要认识到,可以使用各种编程语言来实现文中描述的本公开的教导,并且上文提及的任何具体措辞都是出于公开本公开的实现及最佳方式的目的。
在各实施例中,可以将本申请实现为用于控制计算机系统、计算设备或其他电子设备的软件、硬件和/或其他元件,或者它们的任何组合或多重设置。根据本领域公知的技术,这样的电子设备可以包括(例如)处理器、输入设备(诸如,键盘、鼠标、触控板、跟踪板、操纵杆、轨迹球、传声器和/或它们的任何组合)、输出设备(诸如,屏幕、扬声器等)、存储器、长期存储器(诸如,磁存储器、光存储器等)和/或网络连接。这样的电子设备可以是便携式的或者非便携式的。可以用于实施本公开的电子设备的示例包括移动电话、个人数字助理、智能电话、信息亭、台式计算机、膝上型电脑、消费电子装置、电视、机顶盒等。实施本公开的电子设备可以采用的操作系统可以是(例如)可从加利福尼亚库佩蒂诺的苹果公司获得的iOS、可从加利福尼亚山景城的谷歌公司获得的Android、可从华盛顿雷蒙德的微软公司获得的Microsoft Windows 7、可从加利福尼亚桑尼维尔的Palm公司获得的webOS或者任何其他适于在所述设备上使用的操作系统。在一些实施例中,用于实施本公开的电子设备包括用于通过一个或多个网络通信的功能,例如,所述网络包括蜂窝电话网、无线网络和/或诸如以太网的计算机网络。
可以使用表述“耦接”和“连接”及其派生词描述一些实施例。应理解,这些术语并非意在彼此同义。例如,可以在采用词语“连接”指示两个或更多元件相互直接物理或电接触的情况下描述一些实施例。在另一示例中,例如,可以在采用词语“耦接”指示两个或更多元件直接物理或电接触的情况下描述一些实施例。不过,术语“耦接”也可以表示两个或更多元件彼此不直接接触,但仍然彼此协作或交互作用。实施例不限于这种语境。
文中采用的词语“包括”、“包括”、“包含”、包含”、“具有”、“具有”或者它们的任何其他变型意思是非排他性地包含。例如,包括一系列元素的过程、方法、物品或装置未必仅局限于这些元素,而是可以包括其他未明确列举的或者这样的过程、方法、物品或装置所固有的元素。此外,除非做出明确的相反陈述,否则“或”是指包含性的或而非排他性的或。例如,条件A或B可由下面的任何一项满足:A为真(或存在)并且B为假(或者不存在)、A为假(或不存在)并且B为真(或存在)、以及A和B均为真(或存在)。
文中采用的词“一”或“一个”定义为一个或不止一个。文中采用的词“多个”定义为两个或不止两个。文中采用的词“另一个”定义为至少第二个或更多。
普通技术人员在开发文中描述的方法和系统的过程中将不需要额外的说明,但是通过查验相关领域的标准化参考著作可以找到一些有可能对这些方法和系统的准备有帮助的指导。
尽管已经联系有限数量的实施例描述了本申请,但是得益于上文的描述的本领域技术人员将认识到在不背离文中描述的本公开的范围的情况下可以设计出其他实施例。应指出,说明书中采用的措辞主要是出于易读性和指导目的而加以选择的,选择其的目的并非在于勾勒或者限制发明主题。不应将使用的术语推断为使本公开局限于说明书和权利要求中所公开的具体实施例,而是应当将这些术语视为包含落在下文阐述的权利要求的范围内的所有方法和系统。相应地,本公开不受本公开的限定,相反其范围完全由下述权利要求决定。

Claims (127)

1.一种用于高速和高保真度操纵操作的多层级机器人系统,该系统分为两个由仪器化关节连接和控制器致动的子系统组成的物理和逻辑子系统,各自包括:
a.较大和较粗略运动的宏观操纵系统,其负责在较大的无约束环境工作空间中以较低的端点精确度进行的操作,以及
b.较小和较精细运动的微观操纵系统,其负责在较小工作空间中的操作并同时以较高的端点运动精确度与工具和环境进行交互,
c.各自基于通过特定于宏观操纵子系统和微观操纵子系统的双层级数据库提供的微操纵命令来执行微操纵轨迹遵循任务,
d.各自由专用且单独的分布式处理器和传感器架构支持,所述分布式处理器和传感器架构运行在总体上实时运行的系统上,通过多个特定于传感器、命令和数据库元素的总线接口与所有子系统进行通信。
2.根据权利要求1所述的机器人系统,其中,所述宏观操纵子系统包含其通过一个或多个专用接口总线互连的专用传感器、致动器和处理器,包括
a.用于感知周围环境的传感器套件,其包括对所述环境中的元素进行成像和绘制以及对所述环境中的元素进行建模,并识别所述元素,
b.基于由专用宏观层级微操纵库提供的微操纵命令,在关节空间和/或笛卡尔空间中的一个或多个中执行与宏观操纵子系统有关的运动规划,
c.通过在关节致动器层级上基于位置或速度或关节或力的控制来执行所述命令,以及
d.将传感数据提供回宏观操纵控制和感知子系统,
e.同时还监视所有过程,以允许学习算法基于诸如执行时间、能量消耗、避免碰撞、避免奇点和工作空间可达性的标准对微操纵宏观层级命令库进行改进,以改善未来的性能。
3.根据权利要求1所述的机器人系统,其中,所述微观操纵子系统包含其通过一个或多个专用接口总线互连的专用传感器、致动器和处理器,包括
a.用于感知即时环境的传感器套件,其包括对所述环境中的元素进行成像和绘制以及对所述环境中的元素进行建模,并识别所述元素,尤其是在与环境本身接触期间其与微观操纵系统和相关工具之间的交互变量有关,
b.基于由专用微观层级微操纵库提供的微操纵命令,在关节空间和/或笛卡尔空间中的一个或多个中执行与微观操纵子系统有关的运动规划,
c.通过在关节致动器层级上基于位置或速度或关节或力的控制来执行所述命令,以及
d.将传感数据提供回微观操纵控制和感知子系统,
e.同时还监视所有过程,以允许学习算法基于诸如执行时间、能量消耗、避免碰撞、避免奇点和工作空间可达性的标准对微操纵微观层级命令库进行改进,以改善未来的性能。
4.一种机器人烹饪系统,其至少被配置为一个双层级物理和逻辑宏观操纵和微观操纵系统,能够通过仪器化关节连接和控制器致动的子系统进行独立和协调的任务运动,
a.其中宏观操纵系统被用于使用其自身专用的感测、定位和运动执行子系统在自由空间中对整个机器人配件进行粗略定位,
b.其上附接有一个或多个相应的微观操纵子系统,用于本地感测、精细定位和与环境交互的末端执行器的运动执行,
c.宏观操纵系统和微观操纵系统两者各自配置有它们自身单独且专用的总线,用于感测、数据通信以及利用它们的相关处理器对相关致动器进行控制,
d.宏观操纵系统和微观操纵系统中的每一个从它们专用的规划器接收基于单独的微操纵命令的运动和行为命令,
e.每个规划器从中央规划器接收与协调的时间进度和过程进度相关的微操纵命令。
5.根据权利要求4所述的系统,其中,所述宏观操纵系统包括大型工作空间平移笛卡尔空间定位器,以及附接的身体系统,该身体系统由连接到肩部的传感器头部和躯干构成,所述躯干具有一个或多个关节连接的多关节操纵器臂,每个臂都有一个附接于其上的手腕,该手腕能够经由通过至少一个或多个专用控制器接口的专用传感器和致动器来定位一个或多个微观操纵子系统。
6.根据权利要求4所述的系统,其中,所述微操纵系统包括至少一个连接到其上的手掌和灵巧的多指手臂末端执行器,用于经由至少通过一个或多个控制器接口的专用传感器和致动器,来处理器具和工具以及在菜肴制备烹饪的任何阶段所需的任何器皿。
7.根据权利要求5所述的系统,其中一组腿或轮子附接到腰部,该腰部附接到所述宏观操纵系统,以用于较大的工作空间活动。
8.根据权利要求5所述的系统,还向负责感知宏观操纵子系统自由空间环境以及整个机器人系统姿势的世界感知和建模系统提供传感器反馈数据。
9.根据权利要求9所述的系统,其中,通过一个或多个专用接口总线将所述世界感知反馈和模型数据提供给在一个或多个独立式且单独的处理器上运行的专用宏观操纵规划、执行和跟踪模块。
10.根据权利要求9所述的规划系统,其中,从单独的独立式任务分解和规划模块向其提供宏观操纵运动命令。
11.根据权利要求5所述的系统,还向负责感知微观操纵子系统自由空间环境以及整个机器人系统姿势的世界感知和建模系统提供传感器反馈数据。
12.根据权利要求11所述的系统,其中,还通过一个或多个专用接口总线将所述世界感知反馈和模型数据提供给在一个或多个独立式且单独的处理器上运行的专用微观操纵规划、执行和跟踪模块。
13.根据权利要求11所述的计划系统,其中,从单独的独立式任务分解和规划模块向其提供微观操纵运动命令。
14.一种规划系统,其生成微操纵命令堆栈序列,被配置为对整个机器人系统执行规划动作,从而组合并协调来自宏观规划器和微观规划器的单独规划的微操纵,
a.其中所述宏观操纵规划器为宏观操纵子系统规划并生成与时间进度和过程进度相关的微操纵,
b.其中所述微观操纵规划器为微观操纵子系统规划并生成与时间进度和过程进度相关的微操纵。
15.根据权利要求14所述的每个子系统规划器,包括用于宏观操纵任务的任务进度跟踪模块、微操纵规划模块和微操纵数据库。
16.根据权利要求15所述的任务进度跟踪模块,包括:进度比较器模块,其结合所有相关传感器反馈数据,跟踪命令的和实际的任务进度、模型和环境数据以及产品和过程模型数据之间的差异;以及学习模块,其创建并跟踪对所述微操纵的描述符中的偏差造成影响的变化,以用于对相应数据库的潜在未来升级。
17.根据权利要求15所述的微操纵规划系统模块,其基于步骤集合来生成微操纵命令,所述步骤集合使用来自数据库的微操纵命令,随后对该微操纵命令进行适用性评估,将其解析为应用于单个可移动组件,在空间中进行组合以获得平滑的运动曲线,并针对最佳定时进行优化,随后将其转换为机器可读的微操纵命令集合,所述命令集合被配置为命令堆栈序列。
18.一种用于生成用于宏观操纵子系统或微观操纵子系统中的一个或两者的微操纵命令的方法,通过以下的过程来实现:
a.接收高层级任务执行命令,以及
b.从动作基元储存库中选择替代动作基元集合,基于对应用重要的预定标准集合来对其进行评估和选择以实现命令的任务,所述标准集合描述了所需的入口边界条件以及最低必要出口边界条件,从而定义了在任务开始和完成时的成功任务完成状态。
19.根据权利要求18所述的方法,其中,针对所述宏观操纵子系统或微观操纵子系统一个或两者的微型操纵命令生成的过程包括:
a.接收高层级任务执行命令,
b.识别将被映射到适用的机器人子系统的各个子任务,
c.为上述每个子任务生成单独的性能标准和可测量的成功最终状态标准,
d.选择最合适的动作基元候选的独立或组合中的一个或多个,
e.评估这些动作基元替代以最大化或最小化诸如执行时间、能量消耗、机器人可达性、碰撞避免或任何其他任务关键标准的测量,
f.在一个或多个运动空间中生成宏观和/或微观操纵子系统轨迹中的一个或两者,所述运动空间包括关节空间和笛卡尔空间,
g.同步所述轨迹,以实现路径连续性、路径片段平滑度、片段内时间戳同步以及多臂机器人子系统之间的协调,以及
h.为宏观和/或微观操纵子系统中的一个或两者生成机器可执行命令序列堆栈。
20.根据权利要求18所述的方法,还包括接收在微操纵进度跟踪和性能学习过程期间生成的微操纵描述符更新的步骤,涉及:
a.提取与具体的微操纵及其相关的动作基元有关的常量和变量,
b.为每个受影响的动作基元分配每个变量和常量的变化,以及
c.将更新提供回动作基元储存库,以允许在所述储存库或数据库中记录和实施所述更新中的每一个。
21.一种操作机器人助手系统的方法,所述方法包括:
由机器人助手系统中配置的一个或多个处理器从机器人助手系统中配置的一个或多个传感器接收与当前环境相对应的环境数据;
由所述一个或多个处理器基于所收集的环境数据确定当前环境的类型;
由所述一个或多个处理器检测当前环境中的一个或多个对象,其中,所述一个或多个对象与当前环境的类型相关联;
由所述一个或多个处理器基于所述一个或多个对象的类型以及当前环境的类型,针对所述一个或多个对象中的每一个识别一个或多个交互;
由所述一个或多个处理器从与所述机器人助手系统相关联的远程储存中检索与所述一个或多个对象相对应的交互数据;以及
由所述一个或多个处理器基于所述交互数据,在对应的一个或多个对象上执行所述一个或多个交互。
22.根据权利要求21所述的方法,其中,确定当前环境的类型包括:
由所述一个或多个处理器将环境数据发送到与所述机器人助手系统相关联的远程储存,其中该远程储存包括环境候选库;以及
由所述一个或多个处理器从所述环境候选库中接收基于环境数据确定的当前环境的类型。
23.根据权利要求22所述的方法,其中,所述环境数据包括当前环境的位置数据和图像数据中的一个或多个。
24.根据权利要求23所述的方法,其中,所述位置数据和所述图像数据是从一个或多个传感器获得的,其中,所述一个或多个传感器包括导航系统和一个或多个图像捕获设备中的至少一个。
25.根据权利要求21所述的方法,其中,基于所述当前环境的类型、与所述当前环境相对应的环境数据和对象数据中的至少一个来检测所述一个或多个对象。
26.根据权利要求25所述的方法,其中,从与所述当前环境的类型相关联的多个对象中检测所述一个或多个对象,其中,从与所述机器人助手系统相关联的远程储存中检索所述多个对象。
27.根据权利要求25所述的方法,其中,所述对象数据由包括图像捕获设备的所述一个或多个传感器收集。
28.根据权利要求21所述的方法,其中检测所述一个或多个对象和所述一个或多个对象的类型还包括分析所述一个或多个对象的特征,其中所述特征包括所述一个或多个对象的形状、大小、纹理、颜色、状态、材料和姿势中的至少一个。
29.根据权利要求28所述的方法,其中分析所述一个或多个对象的特征还包括检测布置在所述一个或多个对象中的每一个上的一个或多个标记。
30.根据权利要求21所述的方法,其中,基于所述对象的类型和所述当前环境的类型为所述一个或多个对象中的每一个识别的所述一个或多个交互指示将由所述当前环境中的相应对象执行或在相应对象上执行的一个或多个交互。
31.根据权利要求21所述的方法,其中,所述一个或多个交互中的每一个的交互数据包括将由所述一个或多个对象或在所述一个或多个对象上执行的运动序列,以及一个或多个操纵设备相对于对应的一个或多个对象的一个或多个最佳标准位置,所述操纵设备被配置为与所述一个或多个对象进行交互。
32.根据权利要求21所述的方法,其中,在对应的一个或多个对象上执行所述一个或多个交互中的至少一个包括,针对所述一个或多个交互中的每一个:
由所述一个或多个处理器将一个或多个操纵设备定位在所述对应的一个或多个对象的附近;
由所述一个或多个处理器识别所述一个或多个操纵设备相对于所述对应的一个或多个对象的最佳标准位置,其中所述最佳标准位置选自所述一个或多个操纵设备的一个或多个标准位置;
由所述一个或多个处理器使用一种或多种定位技术将所述一个或多个操纵设备定位在所识别的最佳标准位置处;以及
由所述一个或多个处理器使用所述一个或多个操纵设备执行在所述对应的一个或多个对象上/由所述对应的一个或多个对象执行的所述一个或多个交互。
33.根据权利要求32所述的方法,其中,所述一种或多种定位技术包括对象模板匹配技术和基于标记的技术中的至少一种,其中,所述对象模板匹配技术用于标准对象,并且所述基于标记的技术用于标准对象和非标准对象。
34.根据权利要求33所述的方法,其中,使用所述对象模板匹配技术将一个或多个操纵设备定位在所识别的最佳标准位置处包括:
由所述一个或多个处理器从与所述机器人助手系统相关联的远程储存中检索目标对象的对象模板,其中该目标对象是当前正在进行一个或多个交互的对象,其中该对象模板包括目标对象的形状、颜色、表面和材料特性中的至少一个;
由所述一个或多个处理器将所述一个或多个操纵设备定位到目标对象附近的第一位置;
由所述一个或多个处理器从与所述一个或多个操纵设备相关联的图像捕获设备中的至少一个实时接收目标对象的一个或多个图像,其中所述一个或多个图像是在所述一个或多个操纵设备处于第一位置时由所述图像捕获设备中的至少一个捕获的;
由一个或多个处理器将目标对象的对象模板与目标对象的所述一个或多个图像进行比较;以及
由所述一个或多个处理器执行以下操作中的至少一个:
当所述比较结果不匹配时,基于先前迭代中的所述一个或多个操纵设备的位置,将所述一个或多个操纵设备的位置朝着所述最佳标准位置调整,并重复接收和比较的步骤;或者
当所述比较结果为匹配时,推断所述一个或多个操纵设备达到所述最佳标准位置。
35.根据权利要求33所述的方法,其中使用基于标记的技术将所述一个或多个操纵设备定位在所识别的最佳标准位置包括:
检测与目标对象相关联的一个或多个标记;以及
基于检测到的与目标对象相关联的一个或多个标记,将所述一个或多个操纵设备的位置朝着所述最佳标准位置调整,其中,使用从与所述一个或多个操纵设备相关联的所述图像捕获设备中的至少一个接收到的目标对象的实时图像来调整所述位置。
36.根据权利要求35所述的方法,其中,所述一个或多个标记包括以下标记中的至少一种:
布置在目标对象上的物理标记;和
与目标对象上一个或多个点相对应的虚拟标记,其中所述一个或多个标记使得能够计算所述一个或多个操纵设备相对于目标对象的位置参数,所述位置参数包括距离、取向、角度和倾斜度。
37.根据权利要求36所述的方法,其中,当所述目标对象是标准对象时,与所述目标对象相关联的所述一个或多个标记是物理标记,而当所述目标对象是非标准对象时,与所述目标对象相关联的所述一个或多个标记是虚拟标记。
38.根据权利要求36所述的方法,其中,所述一个或多个标记包括布置在所述目标对象上的所述物理标记,其中,所述物理标记是三角形标记,并且其中,调整所述一个或多个操纵设备的位置包括:
由所述一个或多个处理器将一个或多个操纵设备朝向所述三角形标记移动,直到该三角形标记的至少一条边具有优选的长度为止;
由所述一个或多个处理器旋转所述一个或多个操纵设备,直到所述三角形标记的底部顶点布置在目标对象的实时图像的底部位置为止;
由所述一个或多个处理器沿着目标对象的实时图像的X轴和/或Y轴移位所述一个或多个操纵设备,直到所述三角形标记的中心处于目标对象的实时图像的中心位置为止;以及
由所述一个或多个处理器调整所述一个或多个操纵设备的倾斜度,直到所述三角形标记的每个角度为以下角度中的至少之一:等于大约60度或等于比在开始调整所述一个或多个操纵设备的位置之前的角度差更小的、角度之间的预定最大差,其中,达到上述两个条件中的至少一个指示所述一个或多个操纵设备达到所述最佳标准位置。
39.根据权利要求36所述的方法,其中,所述一个或多个标记包括布置在所述目标对象上的所述物理标记,其中,所述物理标记是棋盘形标记,并且其中,调整所述一个或多个操纵设备的位置包括:
由所述一个或多个处理器使用所述棋盘形标记来校准与一个或多个操纵设备相关联的图像捕获设备,其中,所述校准包括相对于所述棋盘形标记估计所述图像捕获设备的焦距、主点和失真系数中的至少一个;
由所述一个或多个处理器实时识别目标对象的图像,所述棋盘形标记中的方形槽的角的图像坐标;
由所述一个或多个处理器基于所述图像坐标将真实世界坐标分配给实时图像中的所述方形槽的角中的每个内角;以及
由所述一个或多个处理器基于相对于所述棋盘形标记的所述校准、图像坐标和实时坐标,确定所述一个或多个操纵设备的位置,其中,重复校准、识别、分配和确定的过程,直到所述一个或多个操纵设备的位置等于所述最佳标准位置为止。
40.根据权利要求36所述的方法,其中,使用形状分析技术、粒子滤波技术和卷积神经网络(CNN)技术中的至少一种,将所述虚拟标记放置在目标对象上。
41.根据权利要求40所述的方法,其中,使用形状分析技术放置所述虚拟标记包括:
由所述一个或多个处理器从与所述一个或多个操纵设备相关联的至少一个图像捕获设备接收目标对象的实时图像;
当与目标对象的每条边的长度进行比较时,由所述一个或多个处理器确定目标对象的形状以及目标对象的最长边和最短边;
由所述一个或多个处理器基于目标对象的形状以及目标对象的最长边和最短边确定目标对象的几何中心;以及
由所述一个或多个处理器在目标对象上投影等边三角形,其中
所述等边三角形的每一边等于目标对象的最短边的一半;
所述等边三角形沿目标对象的最长边取向;和
所述等边三角形的几何中心与目标对象的几何中心重合;以及
由所述一个或多个处理器在所述等边三角形的每个顶点处放置所述虚拟标记。
42.根据权利要求40所述的方法,其中,使用粒子过滤技术放置所述虚拟标记包括:
由所述一个或多个处理器从与所述机器人助手系统相关联的远程储存中检索与目标对象的理想位置相对应的一个或多个理想值;
由所述一个或多个处理器从与一个或多个操纵设备相关联的至少一个图像捕获设备接收目标对象的实时图像;
由所述一个或多个处理器使用所述实时图像生成目标对象边界内的特殊点;
由所述一个或多个处理器确定在每个特殊点附近的视觉特征的组合的估计值,其中,所述视觉特征包括梯度直方图、空间颜色分布和纹理特征中的至少一个;
由所述一个或多个处理器将每个估计值与一个或多个理想值中的每一个进行比较,以识别相应的近端匹配;以及
由所述一个或多个处理器在与每个近端匹配相对应的目标对象上的每个位置处放置所述虚拟标记。
43.根据权利要求40所述的方法,其中,使用所述CNN技术放置所述虚拟标记包括:
由所述一个或多个处理器从与机器人助手系统相关联的远程储存中存储的库中下载与目标对象相对应的CNN模型;以及
基于所述CNN模型检测目标对象上的位置以放置所述虚拟标记。
44.根据权利要求42所述的方法,其中,执行所述一个或多个交互还包括:对于所述一个或多个交互中的每一个,在对相应对象执行所述动作序列之后,验证相应交互的结果。
45.根据权利要求44所述的方法,其中,验证所述相应交互的结果包括:
在相应对象上执行所述运动序列之后,由所述一个或多个处理器接收相应对象的特征数据,其中,所捕获的相应对象的特征数据包括在执行了所述运动序列之后处于实际状态的相应对象的图像;以及
由所述一个或多个处理器将所捕获的特征数据与相应交互的成功情况数据进行比较,其中,从与所述机器人助手系统相关联的远程储存中检索所述成功情况数据。
46.根据权利要求45所述的方法,其中,所述成功情况数据包括在执行了所述运动序列之后处于预期成功状态的相应对象的图像。
47.一种机器人助手系统,包括:
一个或多个处理器,可操作为:
从机器人助手系统中配置的一个或多个传感器接收与当前环境相对应的环境数据;
基于所收集的环境数据确定当前环境的类型;
检测当前环境中的一个或多个对象,其中,所述一个或多个对象与当前环境的类型相关联;
基于所述一个或多个对象的类型以及当前环境的类型,针对所述一个或多个对象中的每一个识别一个或多个交互;
从与所述机器人助手系统相关联的远程储存中检索与所述一个或多个对象相对应的交互数据;以及
基于所述交互数据,在对应的一个或多个对象上执行所述一个或多个交互。
48.根据权利要求47所述的机器人助手系统,其中,所述一个或多个处理器通过以下方式确定所述当前环境的类型:
将环境数据发送到与所述机器人助手系统相关联的远程储存,其中该远程储存包括环境候选库;以及
从所述环境候选库中接收基于环境数据确定的当前环境的类型。
49.根据权利要求48所述的机器人助手系统,其中,所述环境数据包括当前环境的位置数据和图像数据中的一个或多个。
50.根据权利要求49所述的机器人助手系统,其中,所述一个或多个处理器从一个或多个传感器获得所述位置数据和所述图像数据,其中,所述一个或多个传感器包括导航系统和一个或多个图像捕获设备中的至少一个。
51.根据权利要求47所述的机器人助手系统,其中,基于所述当前环境的类型、与所述当前环境相对应的环境数据和对象数据中的至少一个来检测所述一个或多个对象。
52.根据权利要求51所述的机器人助手系统,其中,所述一个或多个处理器从与所述当前环境的类型相关联的多个对象中检测所述一个或多个对象,其中,从与所述机器人助手系统相关联的远程储存中检索所述多个对象。
53.根据权利要求51所述的机器人助手系统,其中,所述一个或多个处理器通过包括图像捕获设备的所述一个或多个传感器收集所述对象数据。
54.根据权利要求47所述的机器人助手系统,其中,所述一个或多个处理器通过分析所述一个或多个对象的特征来检测所述一个或多个对象以及所述一个或多个对象的类型,其中所述特征包括所述一个或多个对象的形状、大小、纹理、颜色、状态、材料和姿势中的至少一个。
55.根据权利要求54所述的机器人助手系统,其中,所述一个或多个处理器通过检测布置在所述一个或多个对象中的每一个上的一个或多个标记,来分析所述一个或多个对象的特征。
56.根据权利要求47所述的机器人助手系统,其中,基于所述对象的类型和所述当前环境的类型为所述一个或多个对象中的每一个识别的所述一个或多个交互,指示将由所述当前环境中的相应对象执行或在相应对象上执行的一个或多个交互。
57.根据权利要求47所述的机器人助手系统,其中,所述一个或多个交互中的每一个的交互数据包括将由所述一个或多个对象或在所述一个或多个对象上执行的运动序列,以及一个或多个操纵设备相对于对应的一个或多个对象的一个或多个最佳标准位置,所述操纵设备被配置为与所述一个或多个对象进行交互。
58.根据权利要求47所述的机器人助手系统,其中,所述一个或多个处理器通过以下方式在对应的一个或多个对象上执行所述一个或多个交互中的至少一个:
将一个或多个操纵设备定位在所述对应的一个或多个对象的附近;
识别所述一个或多个操纵设备相对于所述对应的一个或多个对象的最佳标准位置,其中所述最佳标准位置选自所述一个或多个操纵设备的一个或多个标准位置;
使用一种或多种定位技术将所述一个或多个操纵设备定位在所识别的最佳标准位置处;以及
使用所述一个或多个操纵设备执行在所述对应的一个或多个对象上/由所述对应的一个或多个对象执行的所述一个或多个交互。
59.根据权利要求58所述的机器人助手系统,其中,所述一种或多种定位技术包括对象模板匹配技术和基于标记的技术中的至少一种,其中,所述对象模板匹配技术用于标准对象,并且所述基于标记的技术用于标准对象和非标准对象。
60.根据权利要求59所述的机器人助手系统,其中,所述一个或多个处理器使用所述对象模板匹配技术通过以下步骤将所述一个或多个操纵设备定位在所识别的最佳标准位置:
从与所述机器人助手系统相关联的远程储存中检索目标对象的对象模板,其中该目标对象是当前正在进行一个或多个交互的对象,其中该对象模板包括目标对象的形状、颜色、表面和材料特性中的至少一个;
将所述一个或多个操纵设备定位到目标对象附近的第一位置;
从与所述一个或多个操纵设备相关联的图像捕获设备中的至少一个实时接收目标对象的一个或多个图像,其中所述一个或多个图像是在所述一个或多个操纵设备处于第一位置时由所述图像捕获设备中的至少一个捕获的;
将目标对象的对象模板与目标对象的所述一个或多个图像进行比较;以及
执行以下操作中的至少一个:
当所述比较结果不匹配时,基于先前迭代中的所述一个或多个操纵设备的位置,将所述一个或多个操纵设备的位置朝着所述最佳标准位置调整,并重复接收和比较的步骤;或者
当所述比较结果为匹配时,推断所述一个或多个操纵设备达到所述最佳标准位置。
61.根据权利要求59所述的机器人助手系统,其中,所述一个或多个处理器通过以下方式使用基于标记的技术将所述一个或多个操纵设备定位在所识别的最佳标准位置:
检测与目标对象相关联的一个或多个标记;以及
基于检测到的与目标对象相关联的一个或多个标记,将所述一个或多个操纵设备的位置朝着所述最佳标准位置调整,其中,使用从与所述一个或多个操纵设备相关联的所述图像捕获设备中的至少一个接收到的目标对象的实时图像来调整所述位置。
62.根据权利要求61所述的机器人助手系统,其中,所述一个或多个标记包括以下标记中的至少一种:
布置在目标对象上的物理标记;和
与目标对象上一个或多个点相对应的虚拟标记,其中所述一个或多个标记使得能够计算所述一个或多个操纵设备相对于目标对象的位置参数,所述位置参数包括距离、取向、角度和倾斜度。
63.根据权利要求62所述的机器人助手系统,其中,当所述目标对象是标准对象时,与所述目标对象相关联的所述一个或多个标记是物理标记,而当所述目标对象是非标准对象时,与所述目标对象相关联的所述一个或多个标记是虚拟标记。
64.根据权利要求62所述的机器人助手系统,其中,所述一个或多个标记包括布置在所述目标对象上的所述物理标记,其中,所述物理标记是三角形标记,并且其中,所述一个或多个处理器通过以下方式调整所述一个或多个操纵设备的位置:
将一个或多个操纵设备朝向所述三角形标记移动,直到该三角形标记的至少一条边具有优选的长度为止;
旋转所述一个或多个操纵设备,直到所述三角形标记的底部顶点布置在目标对象的实时图像的底部位置为止;
沿着目标对象的实时图像的X轴和/或Y轴移位所述一个或多个操纵设备,直到所述三角形标记的中心处于目标对象的实时图像的中心位置为止;以及
调整所述一个或多个操纵设备的倾斜度,直到所述三角形标记的每个角度为以下角度中的至少之一:等于大约60度或等于比在开始调整所述一个或多个操纵设备的位置之前的角度差更小的、角度之间的预定最大差,其中,达到上述两个条件中的至少一个指示所述一个或多个操纵设备达到所述最佳标准位置。
65.根据权利要求62所述的机器人助手系统,其中,所述一个或多个标记包括布置在所述目标对象上的所述物理标记,其中,所述物理标记是棋盘形标记,并且其中,所述一个或多个处理器通过以下方式调整所述一个或多个操纵设备的位置:
使用所述棋盘形标记来校准与一个或多个操纵设备相关联的图像捕获设备,其中,所述校准包括相对于所述棋盘形标记估计所述图像捕获设备的焦距、主点和失真系数中的至少一个;
在目标对象的实时图像中识别所述棋盘形标记中的方形槽的角的图像坐标;
基于所述图像坐标将真实世界坐标分配给实时图像中的所述方形槽的角中的每个内角;以及
基于相对于所述棋盘形标记的所述校准、图像坐标和实时坐标,确定所述一个或多个操纵设备的位置,其中,重复校准、识别、分配和确定的过程,直到所述一个或多个操纵设备的位置等于所述最佳标准位置为止。
66.根据权利要求62所述的机器人助手系统,其中,所述一个或多个处理器使用形状分析技术、粒子滤波技术和卷积神经网络(CNN)技术中的至少一种,将所述虚拟标记放置在目标对象上。
67.根据权利要求66所述的机器人助手系统,其中,所述一个或多个处理器通过以下方式使用形状分析技术放置所述虚拟标记:
从与所述一个或多个操纵设备相关联的至少一个图像捕获设备接收目标对象的实时图像;
当与目标对象的每条边的长度进行比较时,确定目标对象的形状以及目标对象的最长边和最短边;
基于目标对象的形状以及目标对象的最长边和最短边确定目标对象的几何中心;以及
在目标对象上投影等边三角形,其中
所述等边三角形的每一边等于目标对象的最短边的一半;
所述等边三角形沿目标对象的最长边取向;和
所述等边三角形的几何中心与目标对象的几何中心重合;以及
在所述等边三角形的每个顶点处放置所述虚拟标记。
68.根据权利要求66所述的机器人助手系统,其中,所述一个或多个处理器通过以下方式使用粒子过滤技术放置所述虚拟标记:
从与所述机器人助手系统相关联的远程储存中检索与目标对象的理想位置相对应的一个或多个理想值;
从与一个或多个操纵设备相关联的至少一个图像捕获设备接收目标对象的实时图像;
使用所述实时图像生成目标对象边界内的特殊点;
确定在每个特殊点附近的视觉特征的组合的估计值,其中,所述视觉特征包括梯度直方图、空间颜色分布和纹理特征中的至少一个;
将每个估计值与一个或多个理想值中的每一个进行比较,以识别相应的近端匹配;以及
在与每个近端匹配相对应的目标对象上的每个位置处放置所述虚拟标记。
69.根据权利要求66所述的机器人助手系统,其中,所述一个或多个处理器通过以下方式使用所述CNN技术放置所述虚拟标记:
从与机器人助手系统相关联的远程储存中储存的库中下载与目标对象相对应的CNN模型;以及
基于所述CNN模型检测目标对象上的位置以放置所述虚拟标记。
70.根据权利要求68所述的机器人助手系统,其中,所述一个或多个处理器通过以下方式执行所述一个或多个交互:在对相应对象执行所述动作序列之后,验证相应交互的结果。
71.根据权利要求70所述的机器人助手系统,其中,所述一个或多个处理器通过以下方式验证所述相应交互的结果:
在相应对象上执行所述运动序列之后接收相应对象的特征数据,其中,所捕获的相应对象的特征数据包括在执行了所述运动序列之后处于实际状态的相应对象的图像;以及
将所捕获的特征数据与相应交互的成功情况数据进行比较,其中,从与所述机器人助手系统相关联的远程储存中检索所述成功情况数据。
72.根据权利要求71所述的机器人助手系统,其中,所述成功情况数据包括在执行了所述运动序列之后处于预期成功状态的相应对象的图像。
73.一种电子库存系统,包括:
储存单元,其被配置为存储一个或多个对象;
在所述储存单元中配置的一个或多个图像捕获设备,用于:
实时捕获所述一个或多个对象中的每一个的一个或多个图像;和
将所述一个或多个图像中的每一个发送到在所述储存单元上配置的显示屏和在所述储存单元中配置的一个或多个嵌入式处理器;
在所述储存单元中配置的一个或多个传感器,用于向与所述一个或多个对象中的每一个的位置和取向相关联的所述一个或多个嵌入式处理器中的至少一个提供对应的传感器数据;
在所述储存单元中配置的一个或多个光源,用于通过在所述储存单元中提供均匀的照射,以便于所述一个或多个图像捕获设备捕获所述储存单元中的所述一个或多个对象中的每一个的一个或多个图像;
在所述储存单元中配置的一个或多个嵌入式处理器,其中,所述一个或多个嵌入式处理器通过通信网络与所述机器人助手系统的中央处理器交互,所述一个或多个嵌入式处理器被配置为:
基于所述一个或多个图像和所述传感器数据检测存储在所述储存单元中的所述一个或多个对象中的每一个;和
实时或周期性地将所述一个或多个图像和所述传感器数据发送到所述中央处理器。
74.根据权利要求73所述的电子库存系统,其中,所述一个或多个传感器包括温度传感器、湿度传感器、超声传感器、激光测量传感器和声纳中的至少一个。
75.根据权利要求73所述的电子库存系统,其中,所述一个或多个嵌入式处理器通过以下方式检测所述一个或多个对象中的每一个:检测所述一个或多个对象的存在/不存在,估计存储在所述一个或多个对象中的内容物,检测所述一个或多个对象中的每一个的位置和取向,读取附接于所述一个或多个对象中的每一个的视觉标记和无线电类型标记中的至少一个,以及读取对象标识符。
76.根据权利要求75所述的电子库存系统,其中,所述一个或多个嵌入式处理器基于卷积神经网络(CNN)技术来检测所述一个或多个对象。
77.根据权利要求73所述的电子库存系统,还包括固定在所述储存的外表面上的显示屏,被配置为实时显示所述一个或多个对象的图像和视频以及在所述一个或多个对象中的每一个上执行的一个或多个交互。
78.根据权利要求77所述的电子库存系统,其中,所述显示屏使用户能够可视化和定位存储在所述储存单元中的所述一个或多个对象中的每一个,而无需打开所述储存单元的门。
79.根据权利要求73所述的电子库存系统,其中,所述储存单元还配置有电动机设备,以使得能够自动对所述储存单元的门执行一个或多个动作,其中,所述一个或多个动作包括以下中的至少一个:打开、关闭、锁定和解锁所述储存单元的门。
80.根据权利要求73所述的电子库存系统,其中,所述一个或多个传感器中的每一个、所述一个或多个光源中的每一个以及所述一个或多个图像捕获设备中的每一个电连接到配置在所述储存单元中的扩展板,其中每个储存单元的扩展板连接到以太网供电(PoE)交换机。
81.根据权利要求73所述的电子库存系统,其中,所述储存单元还配置有:风扇块,用于在所述储存单元内部提供空气循环;以及热电冷却器元件,用于冷却所述储存单元中的电子组件。
82.一种用于将一个或多个对象耦接到机器人系统的耦接设备,所述耦接设备包括:
限定在所述机器人系统上的第一耦接构件;
限定在所述一个或多个对象上的第二耦接构件,并且能够与所述第一耦接构件连接,以及
限定在所述第一耦接构件和所述第二耦接构件中的每一个的接口处的锁定机构,用于将所述一个或多个对象与所述机器人系统耦接。
83.根据权利要求82所述的耦接设备,其中,所述第一耦接构件由可连接至所述机器人系统的第一连接表面和沿其外围限定有多个第一突出部的第一配合表面限定。
84.根据权利要求82所述的耦接设备,其中,所述第二耦接构件由可连接至所述一个或多个对象的第二连接表面和沿其外围限定有多个第二突出部的第二配合表面限定。
85.根据前述权利要求中任一项所述的耦接设备,其中,所述多个第一突出部和所述多个第二突出部彼此互补,以便于所述第一耦接构件与所述第二耦接构件的耦接。
86.根据权利要求82所述的耦接设备,其中,所述第一连接表面可通过机械装置、机电装置、真空装置和磁性装置中的至少一个连接至所述机器人系统。
87.根据权利要求82所述的耦接设备,其中,所述第二连接表面可通过所述机械装置、所述机电装置、所述真空装置和所述磁性装置中的至少一个连接至所述一个或多个对象。
88.根据权利要求82所述的耦接设备,其中,选择所述第一耦接构件和所述第二耦接构件的材料以便于所述第一配合表面和所述第二配合表面之间的耦接。
89.根据权利要求82所述的耦接设备,其中,所述第一耦接构件由电磁材料或铁磁材料中的任一种制成。
90.根据权利要求82所述的耦接设备,其中,所述第二耦接构件由铁磁材料或电磁材料中的任一种制成。
91.根据权利要求82所述的耦接设备,包括接口端口,所述接口端口限定在所述第一耦接构件上,并与所述机器人系统接口,用于所述机器人系统和所述第二耦接构件之间的外围连接,以便于通过所述机器人系统操纵所述一个或多个对象。
92.根据权利要求82所述的耦接设备,其中,所述一个或多个对象中的每一个是厨房用具和厨房工具中的至少一种。
93.根据权利要求82所述的耦接设备,包括在所述机器人系统上限定的至少一个传感器单元,其中所述至少一个传感器单元被配置为在所述第一耦接构件与所述第二耦接构件的耦接期间检测所述多个第一突出部与所述多个第二突出部的取向。
94.根据前述权利要求中任一项所述的耦接设备,其中,所述锁定机构包括:
限定在所述第一配合表面上的至少一个凹口;和
限定在所述第二配合表面上的至少一个突起,并适于与所述至少一个凹口接合,以将所述第一配合表面与所述第二配合表面耦接。
95.根据权利要求94所述的耦接设备,其中,根据所述至少一个凹口的对应配置而配置所述至少一个突起。
96.根据前述权利要求中任一项所述的耦接设备,其中,所述锁定机构包括:
限定在所述第二配合表面上的至少一个凹口;和
限定在所述第一配合表面上的至少一个突起,并适于与所述至少一个凹口接合,以将所述第一配合表面与所述第二配合表面耦接。
97.根据前述权利要求中任一项所述的耦接设备,其中,所述至少一个凹口被配置为三角形、圆形和多边形中的至少一种。
98.一种用于将一个或多个对象耦接到机器人系统的耦接设备,所述耦接设备包括:
限定在所述机器人系统上的第一耦接构件;
限定在所述一个或多个对象上的第二耦接构件,并且可与所述第一耦接构件连接,以及
限定在所述第一耦接构件和所述第二耦接构件中的每一个的接口处的锁定机构,用于将所述一个或多个对象与所述机器人系统耦接,
其中,所述锁定机构包括:
限定在所述第一耦接表面和所述第二耦接表面中的任一个上的至少一个三角形凹口;和
限定在对应的第一耦接构件和第二耦接构件的至少一个三角形突起,并适于与所述至少一个三角形凹口接合,以将所述第一耦接构件与所述第二耦接构件耦接。
99.一种用于将一个或多个对象耦接到机器人系统的耦接设备,所述耦接设备包括:
限定在所述机器人系统上的第一耦接构件;
限定在所述一个或多个对象上的第二耦接构件,并且可与所述第一耦接构件连接,以及
限定在所述第一耦接构件和所述第二耦接构件中的每一个的接口处的锁定机构,用于将所述一个或多个对象与所述机器人系统耦接,
其中,所述锁定机构包括:
限定在所述第一耦接表面和所述第二耦接表面中的任一个上的至少一个圆形凹口;和
限定在对应的第一耦接构件和第二耦接构件的至少一个圆形突起,并适于与所述至少一个圆形凹口接合,以将所述第一耦接构件与所述第二耦接构件耦接。
100.一种用于将一个或多个对象耦接到机器人系统的耦接设备,所述耦接设备包括:
限定在所述机器人系统上的第一耦接构件;
限定在所述一个或多个对象上的第二耦接构件,并且可与所述第一耦接构件连接,以及
限定在所述第一耦接构件和所述第二耦接构件中的每一个的接口处的锁定机构,用于将所述一个或多个对象与所述机器人系统耦接,
其中,所述锁定机构包括:
限定在所述第一耦接构件和所述第二耦接构件中的任一个上的至少一个凹口,其中所述至少一个凹口中的每一个被配置为接纳电磁体;和
限定在对应的第一耦接构件和第二耦接构件的至少一个突起,并适于与至少一个凹口中的所述电磁体接合,以将所述第一耦接构件与所述第二耦接构件耦接。
101.根据权利要求100所述的耦接设备,其中,所述至少一个突起由铁磁材料制成,用于与所述至少一个凹口中的所述电磁体相接。
102.根据前述权利要求中任一项所述的耦接设备,其中,所述至少一个凹口包括沿其外围限定的凹槽。
103.根据前述权利要求中任一项所述的耦接设备,其中,所述至少一个突起包括销,所述销被配置为对应于所述至少一个凹口中的所述凹槽的配置并且适于与所述凹槽接合,以改善对所述第一耦接构件和所述第二耦接构件之间的耦接接合的锁定。
104.一种用于将一个或多个对象稳固到机器人系统的锁定机构,所述锁定机构包括:
至少一个第一锁定构件,其固定在所述机器人系统的操纵器上;
至少一个第二锁定构件,其安装在所述操纵器上并适于在第一位置和第二位置之间可操作;以及
至少一个致动器配件,其与所述至少一个第二锁定构件相关联并且适于在所述第一位置和所述第二位置之间操作所述至少一个第二锁定构件,
其中,所述至少一个致动器从所述第一位置到所述第二位置操作所述至少一个第二锁定构件,以使所述一个或多个对象中的每一个接合在所述至少一个第一锁定构件和所述至少一个第二锁定构件之间,由此使所述一个或多个对象与所述机器人系统稳固。
105.根据权利要求104所述的锁定机构,其中,所述至少一个第一锁定构件和所述至少一个第二锁定构件位于所述操纵器的同一平面中。
106.根据权利要求104所述的锁定机构,其中,所述至少一个致动器配件被配置为在所述操纵器的后表面上。
107.根据权利要求104所述的锁定机构,其中,所述至少一个第一锁定构件和所述至少一个第二锁定构件位于所述操纵器的前表面上。
108.根据权利要求104所述的锁定机构,其中,所述一个或多个对象中的每一个包括保持部分,所述保持部分沿其外围限定有多个槽,用于与所述至少一个第一锁定构件和所述至少一个第二锁定构件接合。
109.根据权利要求105所述的锁定机构,其中,所述多个槽的形状对应于所述至少一个第一锁定构件和所述至少一个第二锁定构件的配置。
110.根据权利要求104所述的锁定机构,其中,当所述操纵器靠近所述一个或多个对象中的每一个时,所述至少一个致动器配件由所述机器人系统致动,以将所述至少一个第二保持构件从所述第一位置滑动到所述第二位置。
111.根据权利要求104所述的锁定机构,其中,所述操纵器包括用于在所述第一位置和所述第二位置之间引导所述至少一个第二保持构件中的每一个的导轨。
112.根据权利要求104所述的锁定机构,其中,所述至少一个第一保持构件和所述至少一个第二保持构件是吊钩构件。
113.根据权利要求104所述的锁定机构,其中,所述至少一个致动器配件选自线性致动器和旋转致动器中的至少一种。
114.根据权利要求104所述的锁定机构,其中,所述至少一个致动器配件包括:
安装在所述操纵器上的导螺杆;
与所述机器人系统接口并耦接到所述导螺杆的电动机,以使所述导螺杆轴向旋转;以及
螺母,其安装在所述导螺杆上并与至少一个第二保持装置接合,
其中,所述螺母被配置为在所述导螺杆的轴向旋转期间沿所述导螺杆行进,由此在所述第一位置和所述第二位置之间操作所述至少一个第二保持装置;
115.根据权利要求114所述的锁定机构,包括导螺杆保持器,用于将所述导螺杆安装在所述操纵器上,使得所述导螺杆沿着所述操纵器的水平轴线对准。
116.根据权利要求114所述的锁定机构,其中,所述导螺杆包括多个螺纹,所述螺纹的导角在大约6度至大约12度的范围内,以在所述电动机停止运行时限制螺母的活动。
117.根据权利要求114所述的锁定机构,其中,所述螺母经由至少一个支架构件与所述至少一个第二保持装置接合。
118.根据权利要求114所述的锁定机构,其中,所述螺母被配置为在所述导螺杆的顺时针旋转期间将所述至少一个第二保持装置从所述第一位置滑动到所述第二位置。
119.根据权利要求114所述的锁定机构,其中,所述螺母被配置为在所述导螺杆的逆时针旋转期间将所述至少一个第二保持装置从所述第二位置滑动到所述第一位置。
120.根据权利要求114所述的锁定机构,其中,所述螺母被配置为在所述导螺杆的逆时针旋转期间将所述至少一个第二保持装置从所述第一位置滑动到所述第二位置。
121.根据权利要求114所述的锁定机构,其中,所述螺母被配置为在所述导螺杆的顺时针旋转期间将所述至少一个第二保持装置从所述第二位置滑动到所述第一位置。
122.根据权利要求114所述的锁定机构,其中,经由夹具将所述电动机支撑到所述操纵器上。
123.根据权利要求114所述的锁定机构,其中,所述至少一个第二保持装置从所述操纵器的后表面延伸并在所述操纵器的前表面上突出,以将其自身定位在与所述至少一个第一保持装置的平面相同的平面中。
124.根据权利要求104所述的锁定机构,其中,所述至少一个致动器配件包括:
安装在所述操纵器上的壳体,所述壳体包括螺线管线圈,被配置为由电源供电;
柱塞,其容纳在壳体内并且同心地悬挂于所述螺线管线圈,其中,所述柱塞适于由在通电条件下由所述螺线管线圈致动;以及
框架构件,其安装到所述柱塞并连接到所述至少一个第二保持装置,
其中,所述框架构件被配置为在所述螺线管线圈的通电条件期间将所述柱塞的致动传送到所述至少一个第二保持装置,由此在所述第一位置和所述第二位置之间操作所述至少一个第二保持装置。
125.根据权利要求124所述的锁定机构,其中,用于向所述螺线管线圈供电的电源选自交流电和直流电中的至少一种。
126.根据权利要求124所述的锁定机构,包括阻尼器构件,该阻尼器构件具有固定到所述壳体的一端,以及连接到所述框架构件的另一端,以控制所述框架构件的活动。
127.根据权利要求124所述的锁定机构,其中,所述框架构件包括连接至所述至少一个第二保持装置中的每一个的一个或多个连杆构件。
CN201880062340.3A 2017-07-25 2018-07-25 用于操作机器人系统并执行机器人交互的系统及方法 Pending CN112088070A (zh)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201762536625P 2017-07-25 2017-07-25
US62/536,625 2017-07-25
US201762546022P 2017-08-16 2017-08-16
US62/546,022 2017-08-16
US201762597449P 2017-12-12 2017-12-12
US62/597,449 2017-12-12
US201862648711P 2018-03-27 2018-03-27
US62/648,711 2018-03-27
US201862678456P 2018-05-31 2018-05-31
US62/678,456 2018-05-31
PCT/IB2018/000949 WO2019021058A2 (en) 2017-07-25 2018-07-25 SYSTEMS AND METHODS FOR OPERATING A ROBOTIC SYSTEM AND EXECUTING ROBOTIC INTERACTIONS

Publications (1)

Publication Number Publication Date
CN112088070A true CN112088070A (zh) 2020-12-15

Family

ID=63762562

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880062340.3A Pending CN112088070A (zh) 2017-07-25 2018-07-25 用于操作机器人系统并执行机器人交互的系统及方法

Country Status (7)

Country Link
US (1) US11345040B2 (zh)
EP (1) EP3658340A2 (zh)
CN (1) CN112088070A (zh)
AU (1) AU2018306475A1 (zh)
CA (1) CA3071332A1 (zh)
SG (1) SG11202000652SA (zh)
WO (1) WO2019021058A2 (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190053862A1 (en) * 2016-09-27 2019-02-21 Brainlab Ag Efficient positioning of a mechatronic arm
CN112668190A (zh) * 2020-12-30 2021-04-16 长安大学 一种三指灵巧手控制器构建方法、系统、设备及存储介质
CN112819003A (zh) * 2021-04-19 2021-05-18 北京妙医佳健康科技集团有限公司 一种提升体检报告ocr识别准确率的方法及装置
CN113246134A (zh) * 2021-05-31 2021-08-13 上海思岚科技有限公司 机器人运动行为控制方法、设备及计算机可读介质
CN113297115A (zh) * 2021-04-09 2021-08-24 上海联影微电子科技有限公司 数据传输方法、装置、计算机设备和存储介质
CN113341864A (zh) * 2021-06-07 2021-09-03 重庆高新技术产业研究院有限责任公司 一种基于plc的控制相似性可逆向逻辑系统及其分析方法
CN113593119A (zh) * 2021-08-06 2021-11-02 许华文 一种基于物联网的售卖装置及其使用方法
CN113751330A (zh) * 2021-01-18 2021-12-07 北京京东乾石科技有限公司 物品分拣方法、系统、设备和存储介质
CN113903114A (zh) * 2021-09-14 2022-01-07 合肥佳讯科技有限公司 一种危险品作业场所人员监管方法及系统
CN113985815A (zh) * 2021-09-17 2022-01-28 上海三一重机股份有限公司 录制回放方法、系统、设备及作业机械
US20220092709A1 (en) * 2020-01-01 2022-03-24 Rockspoon, Inc. System and method for dynamic dining party group management
CN114721555A (zh) * 2022-03-16 2022-07-08 科派斯顿(深圳)科技有限公司 一种红外触摸屏安全系统及方法
CN114780441A (zh) * 2022-06-21 2022-07-22 南京争锋信息科技有限公司 一种真实用户智能感知系统中用例的智能策略抓取方法
CN115328117A (zh) * 2022-07-15 2022-11-11 大理大学 基于强化学习的蛋白质动态配体通道最优路径分析方法
CN116117826A (zh) * 2023-04-12 2023-05-16 佛山科学技术学院 基于仿射变换与行为树的机器人任务规划方法及系统
CN116160457A (zh) * 2023-04-21 2023-05-26 北京远鉴信息技术有限公司 一种机械手臂的控制系统、方法、电子设备及存储介质
TWI811867B (zh) * 2021-11-26 2023-08-11 台達電子工業股份有限公司 基於超音波識別的物體拾取系統及其方法
CN117021117A (zh) * 2023-10-08 2023-11-10 电子科技大学 一种基于混合现实的移动机器人人机交互与定位方法

Families Citing this family (173)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9460633B2 (en) * 2012-04-16 2016-10-04 Eugenio Minvielle Conditioner with sensors for nutritional substances
US9373085B1 (en) 2012-05-15 2016-06-21 Vicarious Fpc, Inc. System and method for a recursive cortical network
US10225352B2 (en) * 2013-12-20 2019-03-05 Sony Corporation Work sessions
US10758379B2 (en) 2016-05-25 2020-09-01 Scott MANDELBAUM Systems and methods for fine motor control of fingers on a prosthetic hand to emulate a natural stroke
WO2018140475A1 (en) * 2017-01-27 2018-08-02 Lonza Limited Dynamically controlling an automated system
CN110494900A (zh) * 2017-02-07 2019-11-22 韦奥机器人股份有限公司 工作空间安全监控和设备控制
US11117262B2 (en) * 2017-08-01 2021-09-14 eBots Inc. Intelligent robots
DE112018002565B4 (de) * 2017-08-10 2021-07-01 Robert Bosch Gmbh System und Verfahren zum direkten Anlernen eines Roboters
WO2019050878A2 (en) * 2017-09-06 2019-03-14 Covidien Lp SCALE OF LIMITS OF SURGICAL ROBOTS
JP7087316B2 (ja) * 2017-09-27 2022-06-21 オムロン株式会社 情報処理装置、情報処理方法およびプログラム
US10943585B2 (en) 2017-10-19 2021-03-09 Daring Solutions, LLC Cooking management system with wireless active voice engine server
JP7199073B2 (ja) * 2017-10-20 2023-01-05 株式会社キーレックス 垂直多関節ロボットの教示データ作成システム
US10866652B2 (en) * 2017-11-13 2020-12-15 Samsung Electronics Co., Ltd. System and method for distributed device tracking
US10800040B1 (en) 2017-12-14 2020-10-13 Amazon Technologies, Inc. Simulation-real world feedback loop for learning robotic control policies
US10792810B1 (en) * 2017-12-14 2020-10-06 Amazon Technologies, Inc. Artificial intelligence system for learning robotic control policies
US10926408B1 (en) 2018-01-12 2021-02-23 Amazon Technologies, Inc. Artificial intelligence system for efficiently learning robotic control policies
TWI725875B (zh) * 2018-01-16 2021-04-21 美商伊路米納有限公司 結構照明成像系統和使用結構化光來創建高解析度圖像的方法
WO2019146201A1 (ja) * 2018-01-23 2019-08-01 ソニー株式会社 情報処理装置、情報処理方法及び情報処理システム
JP7035555B2 (ja) * 2018-01-23 2022-03-15 セイコーエプソン株式会社 教示装置、及びシステム
US20210030201A1 (en) * 2018-02-08 2021-02-04 Collin Arumai Harinath MENDONS JEYASEELAN A device for automating cooking of a recipe
FR3080926B1 (fr) * 2018-05-04 2020-04-24 Spoon Procede de commande d'une pluralite d'effecteurs d'un robot
JP7052546B2 (ja) * 2018-05-11 2022-04-12 トヨタ自動車株式会社 自律移動システム、自律移動体、充電ドック、制御方法、及びプログラム
KR101956504B1 (ko) * 2018-06-14 2019-03-08 강의혁 로봇 시뮬레이터를 제공하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
US11407111B2 (en) * 2018-06-27 2022-08-09 Abb Schweiz Ag Method and system to generate a 3D model for a robot scene
US11100367B2 (en) * 2018-07-12 2021-08-24 EMC IP Holding Company LLC Dynamic digital information retrieval implemented via artificial intelligence
US11285607B2 (en) * 2018-07-13 2022-03-29 Massachusetts Institute Of Technology Systems and methods for distributed training and management of AI-powered robots using teleoperation via virtual spaces
JP2020024582A (ja) 2018-08-07 2020-02-13 キヤノン株式会社 画像処理装置及びその制御方法、並びにプログラム
JP7112278B2 (ja) * 2018-08-07 2022-08-03 キヤノン株式会社 画像処理装置及びその制御方法、並びにプログラム
US10969763B2 (en) * 2018-08-07 2021-04-06 Embodied, Inc. Systems and methods to adapt and optimize human-machine interaction using multimodal user-feedback
US11002529B2 (en) 2018-08-16 2021-05-11 Mitutoyo Corporation Robot system with supplementary metrology position determination system
US11745354B2 (en) 2018-08-16 2023-09-05 Mitutoyo Corporation Supplementary metrology position coordinates determination system including an alignment sensor for use with a robot
US10871366B2 (en) * 2018-08-16 2020-12-22 Mitutoyo Corporation Supplementary metrology position coordinates determination system for use with a robot
US11341826B1 (en) * 2018-08-21 2022-05-24 Meta Platforms, Inc. Apparatus, system, and method for robotic sensing for haptic feedback
US11633860B2 (en) * 2018-09-05 2023-04-25 Intrinsic Innovation Llc Method and system for machine concept understanding
US11597084B2 (en) 2018-09-13 2023-03-07 The Charles Stark Draper Laboratory, Inc. Controlling robot torque and velocity based on context
US10913156B2 (en) 2018-09-24 2021-02-09 Mitutoyo Corporation Robot system with end tool metrology position coordinates determination system
US11890747B2 (en) 2018-09-26 2024-02-06 Disney Enterprises, Inc. Interactive autonomous robot configured with in-character safety response protocols
WO2020069493A1 (en) * 2018-09-28 2020-04-02 Osirius Group, Llc System for simulating an output in a virtual reality environment
US11292133B2 (en) * 2018-09-28 2022-04-05 Intel Corporation Methods and apparatus to train interdependent autonomous machines
WO2020075368A1 (ja) * 2018-10-09 2020-04-16 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
US20200117788A1 (en) * 2018-10-11 2020-04-16 Ncr Corporation Gesture Based Authentication for Payment in Virtual Reality
US20210391051A1 (en) * 2018-10-12 2021-12-16 Sony Corporation Information processing apparatus, information processing method, and program
US11557297B2 (en) 2018-11-09 2023-01-17 Embodied, Inc. Systems and methods for adaptive human-machine interaction and automatic behavioral assessment
EP3742883B1 (en) 2018-11-13 2022-08-17 Mycionics Inc. System and method for autonomous harvesting of mushrooms
JP7389116B2 (ja) * 2018-11-15 2023-11-29 マジック リープ, インコーポレイテッド 深層ニューラルネットワーク姿勢推定システム
US11336662B2 (en) * 2018-11-21 2022-05-17 Abb Schweiz Ag Technologies for detecting abnormal activities in an electric vehicle charging station
TWI696529B (zh) * 2018-11-30 2020-06-21 財團法人金屬工業研究發展中心 自動定位方法以及自動控制裝置
US11052541B1 (en) * 2018-12-05 2021-07-06 Facebook, Inc. Autonomous robot telerobotic interface
KR102619004B1 (ko) * 2018-12-14 2023-12-29 삼성전자 주식회사 로봇 장치 및 로봇의 작업 기술을 학습하는 방법
JP7128736B2 (ja) * 2018-12-27 2022-08-31 川崎重工業株式会社 ロボット制御装置、ロボットシステム及びロボット制御方法
EP3674984B1 (en) * 2018-12-29 2024-05-15 Dassault Systèmes Set of neural networks
US11854433B2 (en) * 2019-02-04 2023-12-26 Pearson Education, Inc. Systems and methods for item response modelling of digital assessments
US11423035B2 (en) 2019-02-04 2022-08-23 Pearson Education, Inc. Scoring system for digital assessment quality with harmonic averaging
DE102019201526A1 (de) * 2019-02-06 2020-08-06 Ford Global Technologies, Llc Verfahren und System zum Erfassen und Messen der Position eines Bauteils gegenüber einer Referenzposition sowie der Verschiebung und der Verdrehung eines sich relativ zu einem Bezugssystem bewegenden Bauteils
DE112019006888T5 (de) * 2019-02-20 2021-11-11 Panasonic Intellectual Property Management Co., Ltd. Bereitschaftspositions-Bestimmungsvorrichtung und Bereitschaftspositions-Bestimmungsverfahren
US11023763B2 (en) * 2019-03-19 2021-06-01 Boston Dynamics, Inc. Detecting boxes
US10906184B2 (en) 2019-03-29 2021-02-02 Mujin, Inc. Method and control system for verifying and updating camera calibration for robot control
US10399227B1 (en) 2019-03-29 2019-09-03 Mujin, Inc. Method and control system for verifying and updating camera calibration for robot control
US11004247B2 (en) 2019-04-02 2021-05-11 Adobe Inc. Path-constrained drawing with visual properties based on drawing tool
US11559900B2 (en) * 2019-04-05 2023-01-24 Rmi Systems, devices, components, and methods for a compact robotic gripper with palm-mounted sensing, grasping, and computing devices and components
CN110000785B (zh) * 2019-04-11 2021-12-14 上海交通大学 农业场景无标定机器人运动视觉协同伺服控制方法与设备
US12008702B2 (en) * 2019-04-22 2024-06-11 Sony Group Corporation Information processing device, information processing method, and program
US11366437B2 (en) * 2019-05-17 2022-06-21 Samarth Mahapatra System and method for optimal food cooking or heating operations
JP7263920B2 (ja) * 2019-05-23 2023-04-25 トヨタ自動車株式会社 演算装置、制御プログラム、機械学習器及び把持装置
JP7331462B2 (ja) * 2019-05-24 2023-08-23 京セラドキュメントソリューションズ株式会社 ロボットシステム、ロボット制御方法及び電子装置
CN110962146B (zh) * 2019-05-29 2023-05-09 博睿科有限公司 机器人设备的操纵系统和方法
CN110087220A (zh) * 2019-05-29 2019-08-02 上海驰盈机电自动化技术有限公司 一种多机器人通信及远程控制系统
JP2020196060A (ja) * 2019-05-31 2020-12-10 セイコーエプソン株式会社 教示方法
US11883963B2 (en) * 2019-06-03 2024-01-30 Cushybots Corporation Robotic platform for interactive play using a telepresence robot surrogate
CN110390328B (zh) * 2019-06-28 2022-11-22 联想(北京)有限公司 一种信息处理方法及设备
US11195270B2 (en) * 2019-07-19 2021-12-07 Becton Dickinson Rowa Germany Gmbh Measuring and verifying drug portions
US11694432B2 (en) * 2019-07-23 2023-07-04 Toyota Research Institute, Inc. System and method for augmenting a visual output from a robotic device
US11738447B2 (en) * 2019-07-29 2023-08-29 Nimble Robotics, Inc. Storage systems and methods for robotic picking
US11724880B2 (en) 2019-07-29 2023-08-15 Nimble Robotics, Inc. Storage systems and methods for robotic picking
US11200456B2 (en) * 2019-07-31 2021-12-14 GE Precision Healthcare LLC Systems and methods for generating augmented training data for machine learning models
JP7343329B2 (ja) * 2019-08-05 2023-09-12 ファナック株式会社 ワーク選定及びロボット作業を同時に行うロボット制御システム
WO2021030536A1 (en) 2019-08-13 2021-02-18 Duluth Medical Technologies Inc. Robotic surgical methods and apparatuses
US11504845B2 (en) * 2019-08-14 2022-11-22 Google Llc Reconfigurable robotic manufacturing cells
DE102019121889B3 (de) * 2019-08-14 2020-11-19 Robominds GmbH Automatisierungssystem und Verfahren zur Handhabung von Produkten
US11915041B1 (en) * 2019-09-12 2024-02-27 Neureality Ltd. Method and system for sequencing artificial intelligence (AI) jobs for execution at AI accelerators
US11958183B2 (en) * 2019-09-19 2024-04-16 The Research Foundation For The State University Of New York Negotiation-based human-robot collaboration via augmented reality
US20210086364A1 (en) * 2019-09-20 2021-03-25 Nvidia Corporation Vision-based teleoperation of dexterous robotic system
CN112580795B (zh) * 2019-09-29 2024-09-06 华为技术有限公司 一种神经网络的获取方法以及相关设备
US11389968B2 (en) * 2019-10-02 2022-07-19 Toyota Research Institute, Inc. Systems and methods for determining pose of objects held by flexible end effectors
FR3102259B1 (fr) * 2019-10-17 2023-01-20 Amadeus Sas Surveillance d’un environnement de serveur d’applications distribué
US11651249B2 (en) * 2019-10-22 2023-05-16 EMC IP Holding Company LLC Determining similarity between time series using machine learning techniques
US11839986B2 (en) * 2019-10-25 2023-12-12 Ocado Innovation Limited Systems and methods for active perception and coordination between robotic vision systems and manipulators
WO2021097487A1 (en) 2019-11-12 2021-05-20 Bright Machines, Inc. A software defined manufacturing/assembly system
CN112894794B (zh) * 2019-11-19 2022-08-05 深圳市优必选科技股份有限公司 人体手臂动作模仿方法、装置、终端设备及存储介质
CN111127497B (zh) * 2019-12-11 2023-08-04 深圳市优必选科技股份有限公司 一种机器人及其爬楼控制方法和装置
US11537209B2 (en) 2019-12-17 2022-12-27 Activision Publishing, Inc. Systems and methods for guiding actors using a motion capture reference system
CN113052517A (zh) * 2019-12-26 2021-06-29 北京极智嘉科技股份有限公司 取货机器人、取货方法、计算机可读存储介质
CN114902169A (zh) * 2019-12-30 2022-08-12 Oppo广东移动通信有限公司 一种设备管理方法及装置
US11687778B2 (en) 2020-01-06 2023-06-27 The Research Foundation For The State University Of New York Fakecatcher: detection of synthetic portrait videos using biological signals
WO2021141050A1 (ja) * 2020-01-08 2021-07-15 ファナック株式会社 ロボットプログラミング装置
JP7358994B2 (ja) * 2020-01-08 2023-10-11 オムロン株式会社 ロボット制御装置、ロボット制御システム、ロボット制御方法及びロボット制御プログラム
US11263818B2 (en) * 2020-02-24 2022-03-01 Palo Alto Research Center Incorporated Augmented reality system using visual object recognition and stored geometry to create and render virtual objects
CN111369626B (zh) * 2020-03-04 2023-05-16 刘东威 基于深度学习的无标志点上肢运动分析方法及系统
JP2023518071A (ja) * 2020-03-18 2023-04-27 リアルタイム ロボティクス, インコーポレーテッド ロボットの動作計画に有用なロボット操作環境のデジタル表現
CN113496240A (zh) * 2020-04-02 2021-10-12 山西农业大学 基于YoLov3网络对显微镜下的谷子检测方法
BR112022019271A2 (pt) 2020-04-22 2022-11-16 Univ Florida Estrutura baseada em nuvem para processar, analisar e visualizar dados de geração de imagem
US11826908B2 (en) 2020-04-27 2023-11-28 Scalable Robotics Inc. Process agnostic robot teaching using 3D scans
US11325256B2 (en) * 2020-05-04 2022-05-10 Intrinsic Innovation Llc Trajectory planning for path-based applications
WO2021236942A1 (en) * 2020-05-21 2021-11-25 Blue Hill Tech, Inc. System and method for robotic food and beverage preparation using computer vision
CN111815706B (zh) * 2020-06-23 2023-10-27 熵智科技(深圳)有限公司 面向单品类拆垛的视觉识别方法、装置、设备及介质
US11412133B1 (en) * 2020-06-26 2022-08-09 Amazon Technologies, Inc. Autonomously motile device with computer vision
US20220004814A1 (en) * 2020-07-02 2022-01-06 Accenture Global Solutions Limited Agent environment co-creation
US20220004944A1 (en) * 2020-07-06 2022-01-06 Grokit Data, Inc. Automation system and method
CN111797775A (zh) * 2020-07-07 2020-10-20 云知声智能科技股份有限公司 形象设计的推荐方法、设备和智能镜
US20230280835A1 (en) * 2020-07-10 2023-09-07 Arizona Board Of Regents On Behalf Of Arizona State University System including a device for personalized hand gesture monitoring
US20220016779A1 (en) * 2020-07-15 2022-01-20 The Board Of Trustees Of The University Of Illinois Autonomous Robot Packaging of Arbitrary Objects
US11597078B2 (en) * 2020-07-28 2023-03-07 Nvidia Corporation Machine learning control of object handovers
CN111881261A (zh) * 2020-08-04 2020-11-03 胡瑞艇 一种物联网多点应答互动智能机器人系统
US11654566B2 (en) * 2020-08-12 2023-05-23 General Electric Company Robotic activity decomposition
CN111930104B (zh) * 2020-08-18 2023-02-03 云南电网有限责任公司德宏供电局 基于油槽的便携式温控器校验系统
CN111913184A (zh) * 2020-09-01 2020-11-10 江苏普达迪泰科技有限公司 一种具有高密度点云的数据采集功能的激光雷达
US11712797B2 (en) * 2020-09-11 2023-08-01 Fanuc Corporation Dual hand detection in teaching from demonstration
US20220080581A1 (en) * 2020-09-11 2022-03-17 Fanuc Corporation Dual arm robot teaching from dual hand human demonstration
JP2022052112A (ja) * 2020-09-23 2022-04-04 セイコーエプソン株式会社 画像認識方法およびロボットシステム
EP3974936B1 (de) * 2020-09-25 2023-06-07 Sick Ag Konfigurieren einer visualisierungsvorrichtung für einen maschinenbereich
WO2022072887A1 (en) * 2020-10-02 2022-04-07 Building Machines, Inc. Systems and methods for precise and dynamic positioning over volumes
US20230324423A1 (en) * 2020-11-03 2023-10-12 Siemens Healthcare Diagnostics Inc. Diagnostic laboratory systems, analyzer instruments, and control methods
CN112621743B (zh) * 2020-11-19 2022-11-25 深圳众为兴技术股份有限公司 机器人及其相机固定于末端的手眼标定方法及存储介质
CN112738022B (zh) * 2020-12-07 2022-05-03 浙江工业大学 一种针对机器人操作系统ros消息的攻击方法
US20220204100A1 (en) * 2020-12-31 2022-06-30 Sarcos Corp. Coupleable, Unmanned Ground Vehicles with Coordinated Control
CN112859847B (zh) * 2021-01-06 2022-04-01 大连理工大学 一种通行方向限制下的多机器人协同路径规划方法
CN112965372B (zh) * 2021-02-01 2022-04-01 中国科学院自动化研究所 基于强化学习的微零件精密装配方法、装置和系统
US20220269254A1 (en) * 2021-02-25 2022-08-25 Nanotronics Imaging, Inc. Imitation Learning in a Manufacturing Environment
US11544923B2 (en) 2021-03-12 2023-01-03 Agot Co. Image-based kitchen tracking system with order accuracy management
US20220289502A1 (en) * 2021-03-15 2022-09-15 Dexterity, Inc. Adaptive robotic singulation system
CN116981547A (zh) * 2021-03-16 2023-10-31 Abb瑞士股份有限公司 机器人控制方法和机器人控制系统
JP2022146417A (ja) * 2021-03-22 2022-10-05 本田技研工業株式会社 制御装置、ロボットシステム、制御方法、および、プログラム
WO2022201198A1 (en) * 2021-03-24 2022-09-29 Rn Chidakashi Technologies Pvt Ltd Artificially intelligent perceptive entertainment companion system
WO2022201204A1 (en) * 2021-03-25 2022-09-29 Rn Chidakashi Technologies Pvt Ltd Automatic evaluation system for evaluating functionality of one or more components in a robot
US11833691B2 (en) * 2021-03-30 2023-12-05 Samsung Electronics Co., Ltd. Hybrid robotic motion planning system using machine learning and parametric trajectories
WO2022212916A1 (en) * 2021-04-01 2022-10-06 Giant.Ai, Inc. Hybrid computing architectures with specialized processors to encode/decode latent representations for controlling dynamic mechanical systems
TWI812078B (zh) * 2021-05-14 2023-08-11 台達電子工業股份有限公司 雙臂機器人組裝系統
US12066834B2 (en) 2021-05-17 2024-08-20 House of Design LLC Systems and methods to accomplish a physical process
CN113436251B (zh) * 2021-06-24 2024-01-09 东北大学 一种基于改进的yolo6d算法的位姿估计系统及方法
US11943565B2 (en) * 2021-07-12 2024-03-26 Milestone Systems A/S Computer implemented method and apparatus for operating a video management system
CN113467465B (zh) * 2021-07-22 2023-08-04 福州大学 一种面向机器人系统的人在回路决策建模与控制方法
CA3170186A1 (en) * 2021-08-13 2023-02-13 Sanctuary Cognitive Systems Corporation Multi-purpose robots and computer program products, and methods for operating the same
US11422632B1 (en) 2021-08-27 2022-08-23 Andrew Flessas System and method for precise multi-dimensional movement of haptic stimulator
EP4399672A2 (en) * 2021-09-07 2024-07-17 Scalable Robotics Inc. System and method for teaching a robot program
TWI782709B (zh) * 2021-09-16 2022-11-01 財團法人金屬工業研究發展中心 手術機械臂控制系統以及手術機械臂控制方法
CN113986431B (zh) * 2021-10-27 2024-02-02 武汉戴维南科技有限公司 一种机器人自动生产线可视化调试方法及系统
CN114022705B (zh) * 2021-10-29 2023-08-04 电子科技大学 一种基于场景复杂度预分类的自适应目标检测方法
CN113923420B (zh) * 2021-11-18 2024-05-28 京东方科技集团股份有限公司 区域调整方法和装置、摄像头和存储介质
US20230162374A1 (en) * 2021-11-19 2023-05-25 Shenzhen Deeproute.Ai Co., Ltd Method for forecasting motion trajectory, storage medium, and computer device
TW202321002A (zh) * 2021-11-19 2023-06-01 正崴精密工業股份有限公司 多軸機械手臂智慧避障方法
US12115670B2 (en) * 2021-12-15 2024-10-15 Intrinsic Innovation Llc Equipment specific motion plan generation for robotic skill adaptation
US20230191605A1 (en) * 2021-12-17 2023-06-22 Nvidia Corporation Neural networks to generate robotic task demonstrations
US20230191615A1 (en) * 2021-12-17 2023-06-22 Chef Robotics, Inc. System and/or method of cooperative dynamic insertion scheduling of independent agents
AU2022439107A1 (en) 2022-02-01 2024-09-19 Landscan Llc Systems and methods for multispectral landscape mapping
CN114493457B (zh) * 2022-02-11 2023-03-28 常州刘国钧高等职业技术学校 一种自动化立体仓储的智能控制方法及系统
CA3191854A1 (en) * 2022-03-04 2023-09-04 Sanctuary Cognitive Systems Corporation Robots, tele-operation systems, computer program products, and methods of operating the same
US11717974B1 (en) * 2022-06-10 2023-08-08 Sanctuary Cognitive Systems Corporation Haptic photogrammetry in robots and methods for operating the same
CN115008466A (zh) * 2022-07-01 2022-09-06 北京东土科技股份有限公司 一种演奏机器人控制系统
CN115179295B (zh) * 2022-08-04 2024-05-24 电子科技大学 一种多欧拉-拉格朗日系统鲁棒二分一致性跟踪控制方法
WO2024110977A1 (en) * 2022-11-21 2024-05-30 Ssi Ip Holdings Inc. Pre-operative planning for a multi-arm robotic surgical system
CN115565324A (zh) * 2022-11-24 2023-01-03 北京数字绿土科技股份有限公司 一种电力线的防外破监控方法和系统
CN115741713B (zh) * 2022-11-25 2024-08-13 中冶赛迪工程技术股份有限公司 一种机器人作业状态确定方法、装置、设备及介质
US20240181647A1 (en) * 2022-12-06 2024-06-06 Sanctuary Cognitive Systems Corporation Systems, methods, and control modules for controlling end effectors of robot systems
US11931894B1 (en) * 2023-01-30 2024-03-19 Sanctuary Cognitive Systems Corporation Robot systems, methods, control modules, and computer program products that leverage large language models
US20240300115A1 (en) * 2023-03-07 2024-09-12 Sanctuary Cognitive Systems Corporation Systems, methods, and control modules for controlling states of robot systems
US20240326254A1 (en) * 2023-03-28 2024-10-03 Intel Corporation Camera and end-effector planning for visual servoing
CN116901055B (zh) * 2023-05-19 2024-04-19 兰州大学 仿人手交互控制方法和装置、电子设备及存储介质
CN116309590B (zh) * 2023-05-22 2023-08-04 四川新迎顺信息技术股份有限公司 一种基于人工智能的视觉计算方法、系统、电子设备和介质
CN117032262B (zh) * 2023-09-12 2024-03-19 南栖仙策(南京)科技有限公司 机器控制方法、装置、电子设备及存储介质
CN117170982B (zh) * 2023-11-02 2024-02-13 建信金融科技有限责任公司 人机检测方法、装置、电子设备和计算机可读介质
CN117323227B (zh) * 2023-12-01 2024-02-09 哈尔滨商业大学 一种一体式中药粉碎炒药装置
CN117649608B (zh) * 2024-01-29 2024-03-29 阿坝州林业和草原科学技术研究所 基于遥感监测的松材线虫病识别系统及方法
CN118544359B (zh) * 2024-07-24 2024-10-15 纳博特南京科技有限公司 基于拖动控制的协作机器人交互控制方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0667215A1 (fr) * 1994-01-28 1995-08-16 Thomson Broadband Systems Procédé d'asservissement d'un robot dans l'espace à trois dimensions et robot évoluant dans un tel espace
US20120249800A1 (en) * 2011-03-31 2012-10-04 Flir Systems Ab Sequential marker placer
US20130184870A1 (en) * 2012-01-13 2013-07-18 Yasuhiro Ota Methods and computer-program products for generating grasp patterns for use by a robot
US20130245824A1 (en) * 2012-03-15 2013-09-19 Gm Global Technology Opeations Llc Method and system for training a robot using human-assisted task demonstration
US20130345875A1 (en) * 2012-06-21 2013-12-26 Rethink Robotics, Inc. Training and operating industrial robots
US8984136B1 (en) * 2011-05-06 2015-03-17 Google Inc. Systems and methods for object recognition
WO2015125017A2 (en) * 2014-02-20 2015-08-27 Mark Oleynik Methods and systems for food preparation in a robotic cooking kitchen
US20150314440A1 (en) * 2014-04-30 2015-11-05 Coleman P. Parker Robotic Control System Using Virtual Reality Input
US20170113342A1 (en) * 2015-10-21 2017-04-27 F Robotics Acquisitions Ltd. Domestic Robotic System
US20170203434A1 (en) * 2016-01-14 2017-07-20 Seiko Epson Corporation Robot and robot system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007055203A1 (de) * 2007-11-19 2009-05-20 Kuka Roboter Gmbh Einen Roboter aufweisende Vorrichtung, medizinischer Arbeitsplatz und Verfahren zum Registrieren eines Objekts
US8511964B2 (en) 2009-09-22 2013-08-20 GM Global Technology Operations LLC Humanoid robot
FI20105732A0 (fi) * 2010-06-24 2010-06-24 Zenrobotics Oy Menetelmä fyysisten kappaleiden valitsemiseksi robottijärjestelmässä
US10025984B2 (en) * 2016-07-18 2018-07-17 X Development Llc Delegation of object and pose detection
US10131051B1 (en) * 2016-08-12 2018-11-20 Amazon Technologies, Inc. Anticipation-based robotic object grasping
WO2018050307A1 (en) * 2016-09-13 2018-03-22 Abb Schweiz Ag Method of programming an industrial robot
EP3409230B1 (de) * 2017-05-31 2019-05-22 Siemens Healthcare GmbH Bewegen eines roboterarms

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0667215A1 (fr) * 1994-01-28 1995-08-16 Thomson Broadband Systems Procédé d'asservissement d'un robot dans l'espace à trois dimensions et robot évoluant dans un tel espace
US20120249800A1 (en) * 2011-03-31 2012-10-04 Flir Systems Ab Sequential marker placer
US8984136B1 (en) * 2011-05-06 2015-03-17 Google Inc. Systems and methods for object recognition
US20130184870A1 (en) * 2012-01-13 2013-07-18 Yasuhiro Ota Methods and computer-program products for generating grasp patterns for use by a robot
US9014857B2 (en) * 2012-01-13 2015-04-21 Toyota Motor Engineering & Manufacturing North America, Inc. Methods and computer-program products for generating grasp patterns for use by a robot
US20130245824A1 (en) * 2012-03-15 2013-09-19 Gm Global Technology Opeations Llc Method and system for training a robot using human-assisted task demonstration
US20130345875A1 (en) * 2012-06-21 2013-12-26 Rethink Robotics, Inc. Training and operating industrial robots
WO2015125017A2 (en) * 2014-02-20 2015-08-27 Mark Oleynik Methods and systems for food preparation in a robotic cooking kitchen
US20150314440A1 (en) * 2014-04-30 2015-11-05 Coleman P. Parker Robotic Control System Using Virtual Reality Input
US20170113342A1 (en) * 2015-10-21 2017-04-27 F Robotics Acquisitions Ltd. Domestic Robotic System
US20170203434A1 (en) * 2016-01-14 2017-07-20 Seiko Epson Corporation Robot and robot system

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11642182B2 (en) * 2016-09-27 2023-05-09 Brainlab Ag Efficient positioning of a mechatronic arm
US12114944B2 (en) 2016-09-27 2024-10-15 Brainlab Ag Efficient positioning of a mechatronic arm
US20190053862A1 (en) * 2016-09-27 2019-02-21 Brainlab Ag Efficient positioning of a mechatronic arm
US20220092709A1 (en) * 2020-01-01 2022-03-24 Rockspoon, Inc. System and method for dynamic dining party group management
US11816746B2 (en) * 2020-01-01 2023-11-14 Rockspoon, Inc System and method for dynamic dining party group management
CN112668190A (zh) * 2020-12-30 2021-04-16 长安大学 一种三指灵巧手控制器构建方法、系统、设备及存储介质
CN112668190B (zh) * 2020-12-30 2024-03-15 长安大学 一种三指灵巧手控制器构建方法、系统、设备及存储介质
CN113751330A (zh) * 2021-01-18 2021-12-07 北京京东乾石科技有限公司 物品分拣方法、系统、设备和存储介质
CN113751330B (zh) * 2021-01-18 2023-06-23 北京京东乾石科技有限公司 物品分拣方法、系统、设备和存储介质
CN113297115A (zh) * 2021-04-09 2021-08-24 上海联影微电子科技有限公司 数据传输方法、装置、计算机设备和存储介质
CN113297115B (zh) * 2021-04-09 2023-03-24 上海联影微电子科技有限公司 数据传输方法、装置、计算机设备和存储介质
CN112819003B (zh) * 2021-04-19 2021-08-27 北京妙医佳健康科技集团有限公司 一种提升体检报告ocr识别准确率的方法及装置
CN112819003A (zh) * 2021-04-19 2021-05-18 北京妙医佳健康科技集团有限公司 一种提升体检报告ocr识别准确率的方法及装置
CN113246134A (zh) * 2021-05-31 2021-08-13 上海思岚科技有限公司 机器人运动行为控制方法、设备及计算机可读介质
CN113341864A (zh) * 2021-06-07 2021-09-03 重庆高新技术产业研究院有限责任公司 一种基于plc的控制相似性可逆向逻辑系统及其分析方法
CN113593119A (zh) * 2021-08-06 2021-11-02 许华文 一种基于物联网的售卖装置及其使用方法
CN113903114A (zh) * 2021-09-14 2022-01-07 合肥佳讯科技有限公司 一种危险品作业场所人员监管方法及系统
CN113985815A (zh) * 2021-09-17 2022-01-28 上海三一重机股份有限公司 录制回放方法、系统、设备及作业机械
TWI811867B (zh) * 2021-11-26 2023-08-11 台達電子工業股份有限公司 基於超音波識別的物體拾取系統及其方法
CN114721555A (zh) * 2022-03-16 2022-07-08 科派斯顿(深圳)科技有限公司 一种红外触摸屏安全系统及方法
CN114780441B (zh) * 2022-06-21 2022-10-04 南京争锋信息科技有限公司 一种真实用户智能感知系统中用例的智能策略抓取方法
CN114780441A (zh) * 2022-06-21 2022-07-22 南京争锋信息科技有限公司 一种真实用户智能感知系统中用例的智能策略抓取方法
CN115328117A (zh) * 2022-07-15 2022-11-11 大理大学 基于强化学习的蛋白质动态配体通道最优路径分析方法
CN116117826A (zh) * 2023-04-12 2023-05-16 佛山科学技术学院 基于仿射变换与行为树的机器人任务规划方法及系统
CN116160457A (zh) * 2023-04-21 2023-05-26 北京远鉴信息技术有限公司 一种机械手臂的控制系统、方法、电子设备及存储介质
CN117021117A (zh) * 2023-10-08 2023-11-10 电子科技大学 一种基于混合现实的移动机器人人机交互与定位方法
CN117021117B (zh) * 2023-10-08 2023-12-15 电子科技大学 一种基于混合现实的移动机器人人机交互与定位方法

Also Published As

Publication number Publication date
US11345040B2 (en) 2022-05-31
SG11202000652SA (en) 2020-02-27
WO2019021058A3 (en) 2019-05-02
CA3071332A1 (en) 2019-01-31
WO2019021058A2 (en) 2019-01-31
AU2018306475A1 (en) 2020-03-05
EP3658340A2 (en) 2020-06-03
US20190291277A1 (en) 2019-09-26

Similar Documents

Publication Publication Date Title
US11345040B2 (en) Systems and methods for operating a robotic system and executing robotic interactions
AU2020226988B2 (en) Robotic manipulation methods and systems for executing a domain-specific application in an instrumented environment with electronic minimanipulation libraries
CN108778634B (zh) 包括机器人、存放装置及其容器的机器人厨房
US20230031545A1 (en) Robotic kitchen systems and methods in an instrumented environment with electronic cooking libraries
EP3107429B1 (en) Methods and systems for food preparation in a robotic cooking kitchen
US20210387350A1 (en) Robotic kitchen hub systems and methods for minimanipulation library adjustments and calibrations of multi-functional robotic platforms for commercial and residential enviornments with artificial intelligence and machine learning
EP4099880A1 (en) Robotic kitchen hub systems and methods for minimanipulation library
WO2022074448A1 (en) Robotic kitchen hub systems and methods for minimanipulation library adjustments and calibrations of multi-functional robotic platforms for commercial and residential environments with artificial intelligence and machine learning

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