CN110494813B - 基于可构建性分析的规划和调整项目 - Google Patents
基于可构建性分析的规划和调整项目 Download PDFInfo
- Publication number
- CN110494813B CN110494813B CN201880024024.7A CN201880024024A CN110494813B CN 110494813 B CN110494813 B CN 110494813B CN 201880024024 A CN201880024024 A CN 201880024024A CN 110494813 B CN110494813 B CN 110494813B
- Authority
- CN
- China
- Prior art keywords
- product
- sequence
- tasks
- model
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004519 manufacturing process Methods 0.000 claims abstract description 148
- 238000000034 method Methods 0.000 claims abstract description 124
- 230000008569 process Effects 0.000 claims abstract description 61
- 230000004044 response Effects 0.000 claims abstract description 12
- 238000013461 design Methods 0.000 claims description 36
- 238000004088 simulation Methods 0.000 claims description 28
- 238000010276 construction Methods 0.000 claims description 13
- 238000013500 data storage Methods 0.000 claims description 12
- 239000000047 product Substances 0.000 description 255
- 239000012636 effector Substances 0.000 description 34
- 239000000463 material Substances 0.000 description 31
- 238000003860 storage Methods 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 9
- 239000003550 marker Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000005452 bending Methods 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 239000012467 final product Substances 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000000227 grinding Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 2
- 230000010267 cellular communication Effects 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 239000004035 construction material Substances 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000005553 drilling Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 238000003754 machining Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000894007 species Species 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000001931 thermography Methods 0.000 description 2
- 238000003466 welding Methods 0.000 description 2
- 239000002023 wood Substances 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 206010034972 Photosensitivity reaction Diseases 0.000 description 1
- 238000002835 absorbance Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000012152 algorithmic method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000009835 boiling Methods 0.000 description 1
- 239000011449 brick Substances 0.000 description 1
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000007797 corrosion Effects 0.000 description 1
- 238000005260 corrosion Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000008021 deposition Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 239000010985 leather Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000002844 melting Methods 0.000 description 1
- 230000008018 melting Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 238000003801 milling Methods 0.000 description 1
- 239000002991 molded plastic Substances 0.000 description 1
- 238000009740 moulding (composite fabrication) Methods 0.000 description 1
- 230000036211 photosensitivity Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 230000009257 reactivity Effects 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000005476 soldering Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000005507 spraying Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000003746 surface roughness Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001988 toxicity Effects 0.000 description 1
- 231100000419 toxicity Toxicity 0.000 description 1
- 238000002834 transmittance Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total 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/41865—Total 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 job scheduling, process planning, material flow
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/10—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches
- G05B19/102—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches for input of programme steps, i.e. setting up sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total 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/41885—Total 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 modeling, simulation of the manufacturing system
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total 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/4189—Total 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 the transport system
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/35—Nc in input of data, input till input file format
- G05B2219/35193—Manufacturability
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/35—Nc in input of data, input till input file format
- G05B2219/35499—Model of process, machine and parameters
Landscapes
- Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Manipulator (AREA)
- General Factory Administration (AREA)
Abstract
本文公开了一种生产场所自动化过程,包含:生成第一任务序列以根据模型构建产品。该过程还包含使得一个或多个机器人设备通过开始执行第一任务序列来构建产品。此外,在执行第一任务序列期间,执行可构建性分析以确定通过执行第一任务序列来完成产品的可行性。基于分析,确定通过执行第一任务序列来完成产品是不可行的,并且作为响应,生成第二任务序列以根据模型来完成产品。然后,使得一个或多个机器人设备通过开始执行第二任务序列继续构建产品。
Description
技术领域
本公开提供与生产场所中的任务的机器人自动化相关的***和过程,以便构建或组装产品。
背景技术
除非本文另有指示,否则本节中描述的材料不是本申请中权利要求的现有技术,并且不因为被包括在本节中而被承认是现有技术。
自动化制造过程可能包含一个或多个机器人设备的使用,该一个或多个机器人设备可以用于建造输出产品,诸如汽车、墙壁、一件家具或任何数量的其他物理制品。机器人设备可以配备有可以在建造过程期间使用的端部执行器安装的(end-effector-mounted)工具,诸如夹具或钻头。机器人设备可以用指定运动命令序列和用于其他操作的命令序列来编程,以便使得机器人设备完成过程。
发明内容
本公开提供与生产场所中的任务的机器人自动化相关的***和过程,以便构建或组装产品。当正在生产场所执行自动化任务时,本文公开的***和过程可以适应与正在构建的产品的模型(例如,结构)的偏差。例如,生产场所自动化***可以协调任务序列,以便构建最终产品。当***正在构建产品时,***可以执行可构建性分析以检测任何可能阻止***根据模型构建产品的问题。如果该可构建性分析指示使用当前的任务序列,产品不是可构建的,则***可以生成新的任务序列,该新的任务序列允许***继续构建产品而不必改变产品的模型。例如,如果***在构建产品时检测到问题,则***可以生成新的任务序列,该新的任务序列允许***在产品的到目前为止已经构建(即,“竣工”)的部分的基础上构建并且完成产品,以使得产品符合模型的要求。因此,***可以保留在检测到问题之前已经完成的任何工作。
一方面,提供了一种计算机实施方法。该方法包含在构建产品的预构建阶段期间,生成第一任务序列以根据产品的模型来构建产品。该方法还包含在构建阶段期间,使得一个或多个机器人设备通过开始执行第一任务序列来构建产品。此外,该方法包含,在执行第一任务序列期间,执行可构建性分析以确定通过执行第一任务序列来完成产品的可行性。该方法还包含基于分析确定通过执行第一任务序列来完成产品是不可行的。以及响应于确定通过执行第一任务序列来完成产品是不可行的,该方法包含生成第二任务序列以根据模型来完成产品,其中第二任务序列不同于第一任务序列。此外,该方法包含使得一个或多个机器人设备通过开始执行第二任务序列来继续构建产品。
另一方面,提供了一种生产场所自动化***。该***包括一个或多个机器人设备,以及包括一个或多个处理器和一个或多个数据存储设备的控制***。控制***被配置为:接收指令以构建产品,其中,该指令包括对产品的一个或多个约束。控制***还被配置成在预构建阶段期间:(i)确定产品的模型,以及(ii)生成第一任务序列以根据该模型构建产品。此外,控制***被配置为:在构建阶段期间,使得一个或多个机器人设备通过开始执行第一任务序列中的任务来构建产品,和在执行第一任务序列期间,执行第一任务序列的可构建性分析,以确定通过执行第一任务序列来完成产品的可行性。基于该分析,如果完成产品是不可行的,则控制***被配置为生成第二任务序列以根据模型完成产品,其中,第二任务序列不同于第一任务序列,以及使得一个或多个机器人设备通过开始执行第二任务序列来继续构建产品。
在又一方面,提供了一种方法。该方法包含在设计阶段期间,生成产品的第一模型的第一任务序列。该方法还包含在构建阶段期间,使得一个或多个机器人设备通过开始执行第一任务序列来构建产品。该方法还包含在执行第一任务序列期间,执行第一模型的第一可构建性分析,以确定根据第一模型构建产品的可行性,并且基于该分析,确定第二模型。此外,该方法包含使得一个或多个机器人设备根据第二模型继续构建产品。
通过适当结合附图阅读下面的详细描述,这些以及其他方面、优点和替换对于本领域普通技术人员来说将变得显而易见。此外,应当理解,在本发明内容部分和本文件其他地方提供的描述旨在通过示例而非限制的方式来说明所要求保护的主题。
附图说明
图1描绘了根据示例实施例的生产场所。
图2是根据示例实施例的描绘机器人设备控制***的组件的简化框图。
图3是根据示例实施例的描绘构建产品的阶段的流程图。
图4是根据示例实施例的构建产品的阶段的过程的流程图。
图5是根据示例实施例的描绘在设计阶段期间执行的过程的流程图。
图6示出了根据示例实施例的椅子的模板。
图7A描绘了根据示例实施例的对桌子的约束。
图7B、图7C、图7D、图7E和图7F各自根据示例实施例描绘了桌子的设计。
图8A示出了根据示例实施例的树结构。
图8B描绘了根据示例实施例的执行任务的机器人设备。
图9是示出了根据示例实施例的方法的流程图。
图10是示出了根据示例实施例的另一种方法的流程图。
图11示出了根据示例实施例的机器人的视图。
图12是根据示例实施例的描绘机器人设备的组件的简化框图。
图13是根据示例实施例的描绘计算设备的组件的简化框图。
具体实施方式
本文描述了示例方法和***。本文描述的任何示例实施例或特征不一定被解释为比其他实施例或特征更优或更有利。本文描述的示例实施例不意味着是限制性的。很容易理解,所公开的***和方法的某些方面可以以各种各样不同的配置来布置和组合,所有这些都在本文中被考虑。
此外,图中所示的特定布置不应被视为限制性的。应当理解,其他实施例可以包括更多或更少的给定图中所示的每个元件。此外,一些示出的元件可以被组合或省略。再此外,示例实施例可以包括图中未示出的元件。
I.概述
本文公开了一种***,该***可以使任务序列自动化以用于构建产品。该***正在构建的产品可以是离散的产品,或者可以是更大产品或结构的一部分的产品。产品可以由用户设计,用户也可以指定对产品的约束。指定的约束可以是对产品功能性和/或非功能性特征的约束。
该约束也可以是对构建产品的过程的执行约束。特别地,为了构建产品,***可以确定满足约束的产品的模型。然后,***可以确定可以被执行以用于根据模型构建产品的任务序列。
特别地,构建产品可以包含两个阶段。第一阶段是预构建阶段,该预构建阶段包含两个子阶段:设计阶段和模拟阶段。在设计阶段,***可以确定产品的模型,也可以确定任务序列以根据模型构建产品。并且在模拟阶段,***可以,也许通过模拟用以构建产品的任务序列的执行、模拟产品正在被构建时产品的行为(例如,产品的稳定性)和/或模拟产品的中间阶段,来模拟构建产品。构建产品的第二阶段是构建阶段。在构建阶段,***可以执行任务序列,以便构建物理产品。
但是,在任何阶段,都可能出现阻碍***构建产品的错误。特别地,该错误可能使得***构建出偏离所期望的规格的产品。例如,在构建阶段期间,可能出现竣工产品与模型的偏差。这样的偏差可能积累起来以在最终产品中产生不期望的效果(例如,缺陷)。通常,***在预构建阶段和/或构建阶段可能会遇到问题,这些问题可能会在最终产品中产生不期望的效果。
因此,为了避免可能阻碍***构建产品或可能使得***构建出不符合所期望的规格的产品的错误,***可以执行确定构建产品或其某一部分的可行性的可构建性分析。通常,***可以在预构建阶段期间执行预构建可构建性分析,然后可以在构建阶段(例如,在构建的开始和/或构建的中间)执行构建可构建性分析。预构建可构建性分析可以允许***准确有效地确定产品的模型。预构建可构建性分析还可以允许***验证特定的任务序列可以导致产品的成功完成。以及构建可构建性分析可以允许***检测并有效地适应***正在构建产品时可能出现的任何问题或变化。通过检测和适应问题,***可以提高产品是按照所期望的规格构建的可能性。
在一个示例中,在设计阶段,当***正在确定产品的模型时,***可以执行第一可构建性分析。特别地,第一可构建性分析可以确定该模型是否满足对产品的任何约束。如本文所解释的,产品约束定义了包含正在构建的产品的一类产品的特征。例如,对桌子的产品约束可以是桌子具有支撑表面的一个或多个腿或支撑构件,以使得当腿放置在水平地板上时,该表面将是水平的或齐平的。在确定模型之后,第一可构建性分析可以确定该桌子的模型是否描述了满足对最小腿数和顶表面方向的约束以及其他约束的桌子。如果分析确定模型不满足约束,则***可以确定该模型不是可构建的。但是如果模型满足约束,则该分析可以确定该模型是可构建的。
在设计阶段执行的可构建性分析还可以确定模型是否满足对桌子的其他所期望的约束,例如,该其他所期望的约束可以由用户指定。例如,约束可以定义所期望的桌子的特征或属性,诸如桌子的载荷极限、重心、稳定性、应力(例如,弯曲应力)、强度(例如,弯折强度)以及其他特征或属性。在设计阶段期间的可构建性分析也可以确定模型是否满足由约束定义的非功能性特征。例如,***可以确定模型是否满足由约束定义的所期望的美学特征(例如,雕刻作品、固定物等)。
如果可构建性分析确定模型不是可构建的,则***可以确定新的模型,并且还可以对该新的模型执行可构建性分析。这个过程是循环的,以及因此可以重复直到可构建性分析确定了由***可构建的模型。一旦***确定了可构建模型,***可以生成任务序列,该任务序列可以被执行以构建满足可构建模型的产品。在一个实施例中,***可以使用树结构来生成可能的任务序列以构建产品。然后,***可以选择可能的任务序列来构建产品。
一旦选择了任务序列,***可以继续进行到模拟阶段,在此期间***可以模拟任务序列的执行。具体来说,***可以使用***可用的资源来模拟任务的执行。资源可以包括执行任务的可用工人、工人可以用来执行任务的可用工具以及构建产品的可用材料。例如,***可以使用***可用的资源(例如,零件、材料等)来模拟机器人设备执行任务序列。通过使用***可用的资源来模拟任务序列,***可以执行可构建性分析,以确定它是否有资源以根据所确定的模型来构建产品。例如,在模拟期间,该分析可以确定***是否可以访问机器人设备,该机器人设备可以被配置为执行任务序列中的每个任务。举例来说,构建桌子的任务之一可以是打磨任务,并且可构建性分析可以确定***是否包括可以被配置为执行打磨任务的机器人设备。
在模拟阶段期间,***还可以确定该序列中的任务待执行的次序(也称为“操作次序”)。在这样的***中,可构建性分析(在模拟阶段期间)还可以包含确定任务是否可以根据确定的操作次序来执行。在一个示例中,如果任务以确定的次序执行,则分析可以确定产品在构建时是否稳定。在另一个示例中,分析还可以确定在构建产品时是否出现任何冲突。例如,该分析可以确定被分配为执行任务的机器人设备之间是否出现任何时间或空间冲突。在又一示例中,如果产品是使用确定的任务序列来构建的,则分析可以确定执行约束是否得到满足。例如,基于模拟,分析可以确定用以构建产品的估计时间,然后可以确定执行时间是否符合执行约束。
通过在模拟阶段期间执行可构建性分析,***可以确定使用***可用的资源,产品是否是可构建的。如果产品不是可构建的,***可以确定新的任务序列以根据模型构建产品。在一些示例中,***可以测试预定阈值数量的序列,分析确定其中每个序列都不是可构建的。在这些示例中,***可以确定该模型不是可构建的,并且可以返回到设计阶段以确定产品的新模型。相反,如果分析确定使用***的资源,产品是可构建的,则***可以进入构建阶段。
在构建阶段,***可以通过向位于生产场所的机器人设备发送指令以在生产场所构建产品。指令使得机器人设备按照确定的操作次序执行任务。在这个阶段,***可以执行可构建性分析,以确定是否已经出现了任何可能需要***进行调整的问题或变化。具体来说,***可以接收指示生产场所的数据(例如,来自传感器和/或来自机器人设备的反馈),并且分析可以使用该数据来确定是否已经出现了与模型的任何偏差。该分析还可以确定将来是否会出现任何偏差。该分析可以基于生产场所的条件(例如,环境条件、障碍物)、产品的当前状态(例如,已完成的结构和/或已完成的任务的状态)、可用资源、约束的改变(例如,由用户作出的)、以及与设计的偏差(例如,时间延迟或与结构设计的偏差)。如果分析检测到偏差(当前的或者预期的),该分析可能指示产品不是可构建的。
在一个实施例中,响应于确定产品不是可构建的,***可以返回到设计阶段。在设计阶段,***可以使用树结构来生成新的用以构建产品的任务序列,该新的任务序列是待执行的,而不是原始的任务序列。特别地,***可以使用树结构来生成任务序列,该任务序列构建在产品的到目前为止已经构建的部分上。因此,新的任务序列保留了已经执行的工作。保留已经完成的工作可以节省时间和成本。此外,生成新的任务序列可能是有利的,因为生成新的模型可能需要密集的计算能力和大量的时间,这将招致高成本以及导致完成产品的延迟。
II.示例***和方法
A.示例生产场所坐标框架
图1描绘了根据示例实施例的生产场所坐标框架100。该生产场所坐标框架100可以定义对象、机器以及可能的人可能位于其中的物理环境的一部分。生产场所坐标框架100可以采用三维形式,并且可以用于各种目的。例如,生产场所坐标框架100可以被定义为其中正在实行或将要实行建筑物或另一项目的建造的建造场所。如此,生产场所坐标框架100可以包括物理阶段,或者其中物理构建过程在物理世界中在计划或正在发生的阶段。
然而,尽管下面在建造场所的背景中讨论本公开的各个方面,但是示例实施方式不限于建造场所,并且可以扩展到各种其他生产场所坐标框架,诸如零售空间、制造设施、配送设施、办公空间、购物中心、节日场地和/或机场以及其他示例。另外,虽然图1中示出了一个生产场所坐标框架100,但是示例实施方式可以在多个生产场所坐标框架的背景中实行。
如图1所描绘,生产场所坐标框架100包括多个资源。资源可以包括一个或多个角色、设备、硬件组件和/或物理材料。该物理材料可以是建造材料140,其可以是位于建造场所的任何材料或工具。例如,在图1中,建造材料140被描绘为板砖。在示例中,生产场所坐标框架100中的角色可以包括机器人角色和人类角色。人类角色可以有一种或多种技能。例如,人类角色可以是木匠。此外,人类角色可以使用计算设备与机器人角色和机器人设备接口。
工人机器人130可以是被配置为在生产场所坐标框架100内执行任务的机器人设备。在图示的场景中,工人机器人130包括安装在机器人臂上的端部执行器工具。端部执行器工具可以被配置为在工作表面(work surface)上执行任务,诸如钻孔、铣削、切割、焊接、钉扎、铆接、打磨、喷涂、抓持、挤压、蚀刻、雕刻或一般在建筑物的建造期间执行的任何其他任务。此外,工人机器人130的机器人臂可以包括安装架(mount),不同类型的端部执行器可以附接到该安装架。如此,不同的端部执行器可以互换,以使得工人机器人130可以执行不同类型的任务。此外,工人机器人130能够在整个生产场所中移动。例如,如图1所描绘,工人机器人130可以包括轮子。然而,用于提供移动性的其他配置也是可能的(例如,双足设备、四足设备、踏板、轨道等)。
如图1所示,生产场所坐标框架100包括多个塔架标记(pylon marker)104。塔架标记104可以位于生产场所坐标框架100的边界上和/或整个生产场所坐标框架100内,并且可以用于在生产场所坐标框架100内建立三维坐标系102。例如,三维坐标系102可以是具有x轴、y轴和z轴的笛卡尔(Cartesian)坐标系。塔架标记104中的一个可以被指定为坐标系102的原点,并且剩余的塔架标记104可以与原点间隔已知距离。结果,塔架标记104中的每一个可以与坐标系102内的已知(x、y、z)坐标相关联,其中,x-、y-和z-坐标分别对应于沿着x-、y-和z-轴与原点塔架标记的距离。
塔架标记104不一定需要位于生产场所坐标框架100的边界,而是替换地或附加地布置在整个生产场所坐标框架100的各种已知位置。例如,在一些实施例中,塔架标记104可以在整个生产场所中布置成二维或三维网格。然而,其他配置也是可能的,以及塔架标记104可以在生产场所坐标框架100中以任何已知位置的方式布置。
塔架标记104可以是回射的(retroreflective),以使得机器人设备120的激光***可以测量塔架标记104相对于机器人设备120的位置。通过确定具有已知坐标的塔架标记距离机器人设备120的位置,可以导出机器人设备120的坐标。当机器人设备120围绕生产场所坐标框架100移动时,它可以偶尔提供在其激光***和塔架标记104之间的视线。当机器人设备120围绕生产场所坐标框架100移动时,这提供了机器人设备120的位置的更新后的坐标。
除了塔架标记104之外,生产场所坐标框架100可以包括多个附加标记112。标记112可以附接到整个生产场所坐标框架100中的各种目标对象上。例如,如图1所描绘,相应的标记112可以附接到机器人设备120、工人机器人130和/或建造材料140。可以测量标记112的位置以提供与机器人设备120、工人机器人130和/或建造材料140相关联的坐标系102内的坐标。
在一些实施例中,确定生产场所坐标框架100中的目标对象的位置可以不仅仅包含简单地确定三维坐标系内的单个点的位置。例如,在一些实施例中,可以确定一组点的位置来定义目标对象的体积。例如,参考图1,可以确定表示建造材料140体积的三维空间。机器人设备可以确定附接到建造材料140的一组标记112的位置。标记112可以附接到建造材料140的边界或边缘,或者在一些实施例中,标记112可以以任何已知的方式布置在建造材料140上。通过确定布置在建造材料140上的一组标记112的位置,可以确定指示生产场所坐标框架100内建造材料140的形状的三维体积的位置。类似地,通过确定布置在各种目标对象上的多组标记112的位置,可以为移动机器人120、工人机器人130或生产场所坐标框架100中的任何其他对象确定三维体积及其在生产场所坐标框架100中的位置。
在一些实施例中,确定在生产场所坐标框架100中的目标对象的位置可以包括确定目标对象相对于生产场所坐标框架100的姿势。目标对象的姿势可以包括对象的定位和方向的组合。各种过程可以用于确定目标对象的姿势,包括分析方法或几何方法、遗传算法方法和/或基于学习的方法以及其他。
在一些实施例中,当目标对象是机器人设备时,机器人的姿势可以基于其操作状态来确定。机器人设备可以具有导致不同姿势的各种操作状态。控制***可以确定机器人设备的操作状态。假定机器人设备的体积和/或形状已经已知或者已经以其他方式被确定,则控制***可以基于所确定的操作状态来确定机器人设备的姿势。
例如,参考图1,工人机器人130包括机器人臂,该机器人臂可以基于其操作状态以任何数量的姿势来定位。一种操作状态可以包括配置机器人臂以在工作表面上执行任务。然而,操作状态可以包括生产场所坐标框架100中机器人设备的导致相关姿势的任何配置。机器人臂的各种组件的体积和形状是已知的或者已经以其他方式被确定。因此,通过基于工人机器人130的操作状态确定机器人臂的姿势(例如,定位和方向),可以确定表示在生产场所坐标框架100内机器人臂占据的空间的三维体积。
B.示例机器人控制***
图2示出了可以结合本文描述的实施例使用的机器人控制***200的示例配置。机器人控制***200可以被配置为自主、半自主和/或使用(多个)用户提供的指导(direction)操作。机器人控制***200可以负责管理生产场所,诸如建造场所、生产场所、制造场所、检查或质量控制场所等。例如,在建造或制造生产场所,机器人控制***200可以负责协调产品(也可互换地称为“输出产品”)的建造或制造。特别地,这样的机器人控制***可以控制一个或多个机器人设备来建造产品,并且还可以使用一个或多个传感器来监控环境。
如图2所示,机器人设备控制***200包括被配置成控制端部执行器220的机器人设备210。端部执行器220可以是工具端部执行器,其被配置为在工作表面(例如,输出产品的表面)上执行任务,并且可以被安装到机器人设备210的可移动组件,诸如机器人臂。机器人设备210可以位于生产场所(例如,图1所描绘的场所100)内。
根据一个示例,生产场所可以是工厂车间,机器人设备在该工厂车间中将零件安装在装配线上以组装产品(例如桌子、机翼等)。根据另外的示例,生产场所可以是其中机器人设备组合各种零件以建造物理结构而不用装配线的生产场所。在这些示例中,生产场所可以是临时位置,最终的物理结构可以在完成构建时从该临时位置传送(例如,作为产品)到另一位置(例如经销商或顾客位置)。
根据又一个示例,生产场所可以是市政场所,在该市政场所机器人设备用重型建造材料来建造桥梁或道路。根据进一步的示例,生产场所可以是建造场所,在该建造场所中机器人设备用建造材料来建造房屋或建筑物。生产场所也可以是房屋的内部,在房屋的内部机器人设备安装房屋材料来建造房屋的一部分。在这些示例中,最终的物理结构安装在生产场所中。
机器人控制***200还可以包括被配置为提供代表生产场所的环境数据的(多个)局部传感器230和(多个)全局传感器240。例如,(多个)局部传感器230和(多个)全局传感器240可以确定生产场所中各种对象的位置,例如,诸如***正在构建的产品。作为另一个示例,(多个)局部传感器230和(多个)全局传感器240可以向机器人控制***200提供数据,机器人控制***200可以使用该数据来生成生产场所的“世界地图”。该世界地图可以指示生产场所的实时或接近实时的表示。因此,(多个)局部传感器230和(多个)全局传感器240可以向机器人控制***200提供数据,以使得机器人控制***200可以连续地或周期性地更新世界地图。机器人控制***200还可以使用传感器数据和/或世界地图来跟踪生产场所中任务的执行。特别地,机器人控制***200可以跟踪参与任务的任何机器人设备、执行任务中使用的任何材料以及作为执行任务的结果对竣工产品的任何改变。
另外,(多个)局部传感器230可以布置在机器人设备210上或机器人设备210内,并且可以被配置为测量端部执行器220相对于工作表面(例如,正在构建的产品的表面)的位置。(多个)局部传感器230也可以被配置为扫描或捕获工作表面的特征。另一方面,(多个)全局传感器240可以布置在生产场所内,并且可以被配置为测量输出产品相对于生产场所中坐标系的位置。(多个)全局传感器240还可以被配置为测量端部执行器220相对于坐标系或相对于另一个对象的位置(例如,机器人设备的基座的位置)的位置。此外,(多个)全局传感器也可以被配置为测量机器人设备210的位置。
在一个实施例中,(多个)全局传感器240可以包括具有非常高分辨率(例如,百分之一毫米)的激光******。激光******可用于确定生产场所中对象的位置。然而,(多个)全局传感器240不限于激光******,而是可以包括能够捕获位于生产场所中的对象的特征的任何传感器,诸如运动捕获传感器、扫描仪、光检测和测距(light detectionand ranging,LIDAR)传感器、点云传感器、超声波测距传感器、全球定位***(GlobalPositioning System,GPS)接收器、声纳、光学传感器、射频识别(Radio Frequencyidentification,RFID)***、近场通信(Near Field Communication,NFC)芯片、无线传感器、无线电传感器、雷达、照相机(例如,彩色照相机、灰度照相机和/或红外照相机)和/或测距传感器(例如,超声波和/或红外线)以及其他。
并且(多个)局部传感器230可以包括用于提供光流数据的高速照相机或惯性测量单元(inertial measurement unit,IMU)。然而,(多个)局部传感器230不限于高速照相机或IMU,而是可以包括能够测量端部执行器220相对于工作表面的位置或能够捕获工作表面的特征的任何传感器。这样的传感器包括力传感器、接近传感器、运动传感器(例如陀螺仪和/或加速度计)、负载传感器、位置传感器、热成像传感器、深度传感器(例如RGB-D、激光、结构光和/或飞行时间照相机)、超声波测距传感器、红外传感器、光学传感器、射频识别(RFID)***、近场通信(NFC)芯片、无线传感器、光传感器、触摸传感器(例如,电容传感器)、扫描仪、照相机(例如彩色照相机、灰度照相机和/或红外照相机)以及其他。在一些实施例中,端部执行器220相对于工作表面的位置可以使用车轮里程计和/或机器人正向运动学来确定。
此外,(多个)局部传感器230和(多个)全局传感器240可以定位于生产场所内或生产场所附近,以及其他可能的位置。例如,(多个)局部传感器230可以附接到机器人设备210。在一些实施例中,(多个)全局传感器240可以布置在整个生产场所的固定位置,例如,作为专用感测装置。此外,一个示例实施方式还可以使用合并在现有设备中的传感器,诸如移动电话、膝上型电脑和/或平板电脑。这些设备可以由位于生产场所的工人拥有,诸如在建造场所的建造工人。
图2还描绘了可以从(多个)局部传感器230和(多个)全局传感器240接收数据的控制器250。特别地,(多个)局部传感器230和(多个)全局传感器240可以通过通信单元260向控制器250提供传感器数据。通信单元260可以包括有线链路和/或无线链路(例如,使用各种无线发射机和接收机)。有线链路可以包括例如并行总线或串行总线,诸如通用串行总线(Universal Serial Bus,USB)。无线链路可以包括例如蓝牙、IEEE 802.11(IEEE 802.11可以指IEEE 802.11-2007、IEEE 802.11n-2009或任何其他IEEE 802.11修订版)、蜂窝(诸如GSM、GPRS、CDMA、UMTS、EV-DO、WiMAX、HSPDA或LTE)或Zigbee,以及其他可能性。此外,可以使用多种有线和/或无线协议,诸如使用蜂窝通信协议的“3G”或“4G”数据连接(例如,CDMA、GSM或WiMAX以及使用802.11的“WiFi”连接)。
在其他示例中,机器人控制***200可以包括接入点,通过该接入点,(多个)局部传感器230和(多个)全局传感器240和/或控制器250可以与云服务器通信。接入点可以采取各种形式,诸如无线接入点(wireless access point,WAP)或无线路由器的形式。此外,如果使用蜂窝空中接口协议(诸如CDMA或GSM协议)进行连接,则接入点可以是蜂窝网络中的基站,其经由蜂窝网络提供互联网连接。其他示例也是可能的。
控制器250被示为包括一个或多个处理器252、数据存储器(data storage)254、程序指令256、输入/输出单元258和电源262。注意,控制器250仅出于说明目的而示出,因为控制器250可以在不脱离本公开的范围的情况下,包括附加组件和/或移除一个或多个组件。此外,注意控制器250的各种组件可以以任何方式布置和连接。控制器250可以全部或部分合并到机器人设备210中,或者可以采取台式计算机、膝上型计算机、平板电脑、可穿戴计算设备和/或移动电话以及其他可能的形式。
来自一个或多个处理器252的每个处理器可以是通用处理器或专用处理器(例如,数字信号处理器、专用集成电路等)。(多个)处理器252可以被配置为执行计算机可读程序指令256,该计算机可读程序指令256存储在数据存储器254中并且是可执行的,以用于提供本文描述的控制器250的功能。例如,程序指令256可以是可执行的,以用于提供对从(多个)局部传感器230和(多个)全局传感器240接收的传感器数据的处理。
数据存储器254可以包括一个或多个可由(多个)处理器252读取或访问的计算机可读存储介质,或者采用其形式。一个或多个计算机可读存储介质可以包括易失性和/或非易失性存储组件,诸如光、磁、有机或其他存储器或盘存储器,它们可以全部或部分地与(多个)处理器252集成。在一些实施例中,数据存储器254可以使用单个物理设备(例如,一个光、磁、有机或其他存储器或盘存储单元)来实施,而在其他实施例中,数据存储器254可以使用两个或多个物理设备来实施。此外,除了计算机可读程序指令256之外,数据存储器254可以包括诸如诊断数据的附加数据以及其他可能性。此外,控制器250还可以包括被配置为向控制器250的各种组件供电能的电源262。可以使用任何类型的电源,诸如来自电池的直流电或来自主电力的交流电。
图1进一步描述了包括输入/输出单元258的控制器250。输入/输出单元258可以通过显示器向用户输出信息。显示器可以采取任何形式,并且可以被布置成向控制器250的用户投射图像和/或图形。在示例布置中,输入/输出单元258内的投影仪可以被配置为将图像和/或图形的各种投影投射到显示器的表面上。显示器可以包括:不透明或透明的(或半透明的)矩阵显示器,诸如电致发光显示器或液晶显示器,一个或多个用于将图像传送到用户眼睛的波导,或能够将图像传送到用户的其他光学元件。相应的显示器驱动器可以设置在控制器250内,以用于驱动这样的矩阵显示器。显示器的其他布置也是可能的。如此,显示器可以示出图形界面,该图形界面可以提供用户可以通过其与本文公开的***进行交互的应用。
此外,机器人控制***200可以在输入/输出单元258的显示器上显示世界地图。因此,输入/输出单元258可以显示生产场所的实时或接近实时的表示,包括竣工产品。因此,用户可以监控构建或组装输出产品的进度。基于指示生产场所的实时反馈数据(例如,来自(多个)局部传感器230和(多个)全局传感器240的数据),可以更新显示的世界地图以反映生产场所的实时变化。
输入/输出单元258也可以包括任务控件。任务控件可以为用户提供任务执行的实时控制。例如,用户可以提供可以启动、停止、跳过或修改任务的输入。例如,显示在显示器上的图形界面可以包括机器人控制***200将执行的任务的任务队列。图形界面可以允许用户启动、停止、跳过或修改任务。在一些实施方式中,图形界面可以允许用户输入与输出产品相关的参数。图形界面可以允许用户输入与输出产品的各方面相关的参数,包括尺寸、密度、曲率属性、其他几何属性、待使用的材料和/或其他数字输入。
在进一步的示例中,图形界面可以包含构建输出产品的时间线。时间线可以有一个表示当前时间戳的光标,它可以表示构建输出产品过程中的特定时间点。此外,时间线可以包含以特定速度播放整个过程的按钮或者在整个过程中快进或倒带的按钮。时间线可用于控制在显示器内显示生产场所的几何形状和/或其他方面的时间点。此外,时间线可以用于指示特定的时间点,或者用于模拟输出产品,或者用于在软件中可视化生产场所内发生的实际物理构建过程。此外,用户可以经由图形界面修改输出产品的设计。
在一些示例中,显示器可以向用户提供生产场所的多个3D视图,并且可以允许用户改变特定视图的方向和/或缩放。在其他示例中,显示器也可以或替代地呈现生产场所的其他类型的表示,诸如数字表示。在进一步的示例中,可以向用户提供三维(3D)建模图形界面,该界面允许用户改变描述生产场所和/或期望输出产品的、影响生产场所中构建过程的一个或多个变量。
在进一步的示例中,图形界面可以包括描述运行期间过程的各方面的参数。特别地,可以显示描述机器人设备210的特性(诸如机器人设备210的定位、机器人设备210当前使用的物理工具和/或机器人设备210当前在生产场所内沿其操作的轴)的机器人参数。此外,可以显示描述端部执行器220的操作特性的工具参数。例如,可以在示例图形界面中显示供应给主轴(spindle)的功率量或与夹具一起使用的力的量。此外,图形界面可以显示传感器数据。图形界面还可以包含与执行任务的排序和/或执行任务的速度相关的控件。此外,图形界面可以包含与机器人角色相关的控件,诸如机器人定位和诊断。此外,图形界面可以允许控制输出产品的不同性质。在图形界面内,可以提供用于操纵运行期间正在执行的一个或多个任务的控件。例如,用户可以使用触摸输入来与图形交互,以便通过实时或几乎实时地改变计划的任务来修改构建过程。
在一些示例中,图形界面可以包括设备控件,以便选择生产场所内的特定设备。例如,图形界面可以显示生产场所内的机器人角色,并且可以允许选择特定的机器人设备。另外,图形界面可以包括机器人参数,诸如描述机器人设备当前定位的定位信息。在一些示例中,定位可以显示为笛卡尔坐标、机器人轴值或两者。在进一步的示例中,定位信息可以反映机器人角色的端部执行器或安装在机器人端部执行器上的物理工具的定位。
此外,输入/输出单元258可以接收用户输入(例如,来自控制器250的用户)。特别地,输入/输出单元258可以允许与图形界面交互,诸如滚动、提供文本和/或选择应用的各种特征,以及其他可能的交互。输入/输出单元258可以采取各种形式。在一个示例中,输入/输出单元258可以包括定点设备,诸如用于控制图形界面的计算鼠标。然而,如果输入/输出单元258包括触摸屏显示器,则可以接收允许控制图形界面的触摸输入(例如,诸如使用手指或触笔)。在另一个示例中,输入/输出单元258可以包括键盘,该键盘提供对要经由图形界面来显示的数字、字符和/或符号的选择。例如,在输入/输出单元258包括触摸屏显示器的布置中,显示器的部分可以显示键盘。因此,在包括键盘的显示器的部分上的触摸输入可以导致用户输入,诸如对要通过显示器来示出在图形界面上的指定数字、字符和/或符号的选择。在又一个示例中,输入/输出单元258可以包括语音输入设备,该语音输入设备诸如通过麦克风从用户接收音频输入,然后可以使用各种语音识别技术之一将该音频输入翻译为可以通过显示器示出的一个或多个字符。其他示例也是可能的。
C.生产场所自动化***
示例实施例可以提供用于制造、制作和建造生产场所以及其他类型生产场所的生产场所自动化的***和过程。生产场所自动化可以包含使在生产场所中设计和/或构建产品的过程自动化。特别地,生产场所自动化***可以确定产品的模型,然后可以生成任务序列,该任务序列可以被执行以根据模型构建产品。并且任务序列可以由位于生产场所的可用角色来执行。在执行任务时,角色可以利用布置在生产场所内或生产场所附近的可用资源。在一个示例中,任务可以由机器人设备执行,以及因此,产品可以部分地或整个地由机器人设备来构建。
图3示出了根据示例性实施例的构建产品的阶段300。如图3所示,构建产品可以包含三个阶段:设计阶段302、模拟阶段304和构建阶段306。特别地,设计阶段302和模拟阶段304可以包含在构建产品之前执行的过程,因此,设计阶段302和模拟阶段304可以统称为预构建阶段。然而,如下所解释,在构建阶段306已经开始之后,***可以返回到预构建阶段。
此外,阶段300中的每一个阶段可以在用户很少或没有输入的情况下执行。如此,***可以半自主或自主地构建产品。此外,设计阶段302和模拟阶段304可以使用计算设备来执行。在一些示例中,设计阶段302和模拟阶段304可以使用在构建阶段306期间向角色提供指令的相同计算设备来执行。
在一个实施例中,并且如图3所示,生产场所自动化***可以接收输入308。输入308可以从用户接收(例如,经由到计算设备的输入),或者可以从另一个计算设备接收。在示例中,输入308可以指示在生产场所构建或组装产品的指令。如此,响应于接收到输入308,***可以构建或组装产品。特别地,***可以通过执行与阶段300中的每一个阶段相关联的过程来构建产品。如图3所示,响应于接收到输入308,***可以通过执行与设计阶段302相关联的过程来确定产品的设计。
a.设计阶段
图4示出了根据示例性实施例的与构建产品的阶段300中的每一个阶段相关联的过程。如图4所示,在设计阶段302的第一过程402中,***可以被配置为确定产品的模型。输出产品的模型可以是产品的二维(2D)或三维(3D)表示。通常,模型可以指示产品的物理结构将如何配置,以及一旦产品被***构建后将如何运作。该模型还可以指示产品的其他特征,诸如用于构建产品的材料和零件的特性。
在一个实施方式中,***可以通过从***的用户接收模型来确定产品的模型。例如,用户可以设计模型,然后可以将模型作为输入308的一部分。一般,用户可以使用设计软件来开发模型。特别地,设计的模型可以是2D或3D计算机辅助设计(computer-aideddesign,CAD)以及其他类型的模型。例如,在建造生产场所,建筑信息建模(buildinginformation modeling,BIM)可以用于设计和模型建造项目。模型的类型可以取决于诸如产品类型的惯例和/或用户偏好的因素。
在另一个实施方式中,***可以通过从另一个***或设备接收模型来确定产品的模型。例如,响应于接收到输入308,***可以从数据库中检索模型。数据库可以包括各种产品的模型,诸如经常建造或组装的产品。附加地和/或替换地,数据库可以是***可以购买的、存储模型的商业数据库。
在又一个实施方式中,***可以通过生成产品的模型来确定产品的模型。在这种实施方式中,输入308可以指示产品的类型和对产品的一个或多个约束。例如,产品类型和一个或多个约束可以由用户定义。一旦***接收到输入308,***然后可以基于产品类型和约束来生成产品的模型。更具体地,***可以基于产品类型来确定定义产品类型的特性。然后,***可以使用所确定的特性和一个或多个约束来生成模型,以使得该模型满足产品特性和期望的约束。
在一个实施例中,输入308中包括的约束可以定义产品的所期望的高级规格,诸如产品的属(genus)或种(species)。高级规格还可以包括产品中使用的材料、产品的功能性特征、产品的美学特征等。例如,约束可以定义产品参数(例如,尺寸)的最大值和/或最小值。附加地和/或替换地,约束可以指示生产场所中的空间考虑(例如,在哪里构建产品、障碍物的位置等)。附加地和/或替换地,约束可以定义低级规格,该低级规格可以指示对产品组件之间的关系(例如,相对定位)的约束。附加地和/或替换地,约束可以指示产品构建过程中的执行约束。执行约束的示例包括但不限于构建时间、速度、制造方法、效率、成本、材料浪费、使用的资源等。
例如,考虑输入308指示产品类型是椅子。输入308可以包括高级约束,该高级约束指示椅子类型(例如,扶手椅)、在扶手椅中待使用的期望材料、负载支撑约束(例如,最小/最大重量支撑、负载承受表面位置等)、在生产场所的什么地方安装该扶手椅等。然后,基于输入308,***可以生成扶手椅的模型。
图5示出了根据示例性实施例的确定模型的过程402的步骤。如图5所示,第一步骤502可以是对于***而言,确定定义产品的类型(例如,类别)的特性。该特性可以是功能性特性,其定义了什么构成了该产品类型的在结构上合理的结构。该特性也可以是非功能性特性,其定义了该产品类型的美学特征。特性可以在属于该产品类型的所有或部分产品中共享。在示例中,特性可以存储在***可以访问的数据库中。
如图5所示,下一步骤504可以是对于***而言,确定产品的组件。特别地,***可以使用产品类型来确定产品的可能组件。例如,***可以根据数据库确定产品类型中使用的组件。例如,数据库可以包括各种产品类型的模板。模板指示产品类型中可能包括的组件,诸如该产品类型的产品中常见的组件。在一些示例中,模板也可以指示该产品类型的产品中组件的样本布置。
图6示出了根据示例性实施例的扶手椅600的示例模板。如图6所示,模板可以包括扶手椅600的组件,诸如可接受数量的腿和臂。例如,扶手椅600包括四条腿606。模板还可以指定扶手椅600可以包括靠背610、座位604和双臂602。模板还可以指定扶手椅组件的样本布置。例如,如图6所示,模板可以指示腿606中的每一条腿的一端连接到座位604。此外,模板可以指示产品组件之间的可能关系(例如,组件的相对定位)。
另外,模板可以指示扶手椅600的可能特性。如图6所示,模板可以指示扶手椅600的各种组件的尺寸的可接受值的范围。在该示例中,扶手椅600的模板示出了指示座位604高度的高度H1、扶手高度H2、扶手宽度W2、座位宽度W1、靠背高度H3、座位长度L2、扶手长度L1以及其他尺寸。每个值可以指示相应特征的可接受值的范围。该模板也可以指示非功能性特性,诸如可以制造扶手椅600的组件的可接受材料。可以用于扶手椅600的可接受材料的示例包括实木、木板条、填充皮革、填充织物、金属、模制塑料以及其他材料。
返回图5,在***执行确定产品组件的过程504之后,然后***可以执行确定组件中的每一个的模型的过程506。在一个实施方式中,产品类型的模板可以指定每个组件的样本模型,并因此,***可以根据模板确定每个组件的模型。如果***使用样本组件模型,如果必要的话,***可以调整每个组件的模型,以使得每个模型满足对产品的任何约束。
在另一个实施方式中,***可以生成每个组件的模型。在这种实施方式中,***可以使用组件的特性和约束来迭代地生成组件的几何形状。迭代地生成组件的几何形状可以包含***基于组件的特性生成组件的模型,以及然后迭代地调整模型,直到该模型满足对组件的约束。替换地,***可以基于组件的特性生成多个组件的模型,以及然后可以选择满足约束的模型。
如图5所示,在执行过程506之后,然后***可以执行生成产品的模型的过程508。在一个示例中,***可以通过合并产品的每个组件的一个或多个模型(在过程506期间确定的)来迭代地生成一个或多个模型。迭代地生成一个或多个模型可以包含生成一个或多个产品的模型,以使得每个模型包括组件的各种模型的不同排列。此外,在一些示例中,组件的模型可以是离散的,以使得模型可以不包括将一个组件连接到另一个组件的连接器的设计。在这样的示例中,生成产品模型可以包括生成不同组件之间的连接器的设计。附加地和/或替换地,生成产品模型可以包括设计产品的美学特征。
在一个示例中,***可以在自下而上的过程中生成模型。该***可以首先确定如何将两个组件合并在一起。这种步骤可以包括确定组件的功能性特征、两个组件之间的连接器的设计、美学特征等。然后,***可以连接两个组件,并且可以迭代地调整两个组件的模型,直到该模型满足对两个组件的任何约束。接下来,***可以确定如何将另一个组件与这两个组件合并。这种过程可以重复,直到所有组件都被合并到模型中。
一旦***已经生成了产品的模型,则***可以迭代地调整模型,直到模型满足约束。在一个实施例中,迭代调整模型以使得该模型满足约束可以包括调整模型的一个或多个参数。可以调整的参数包括组件的几何形状、组件的尺寸、组件的材料等。只要参数值在产品特性定义的值范围内,***就可以调整这些参数。此外,***可以调整参数,以使得模型满足任何执行约束。如果***不能调整模型以满足约束,则***可以确定该模型不是可构建的,并因此可以丢弃该模型。生成产品的模型的其他方法也是可能的。例如,***可以通过随机和迭代地调整产品的不同组件的参数来生成模型,直到模型满足对模型的约束。
一旦***已经生成了产品的一个或多个模型,***就可以从一个或多个模型中选择模型。在一个示例中,***可以选择最能满足执行约束的模型。例如,执行约束可以指示***应该优化成本的模型。因此,***可以选择具有最小估计成本的模型。在一些示例中,***的用户可以定义要优化的默认执行约束。或者,如果对项目没有执行约束,则***可以选择满足约束的任何模型。执行约束的示例包括优化美学或功能性属性、优化时间、优化精确度以及其他示例。
图7A-图7F示出了执行确定产品的模型的过程402的***的示例。在这种示例中,***的输入308可以指示产品是桌子。并且输入308也可以指示对桌子的期望约束。在一个实施例中,响应于接收到输入308,***可以通过执行确定桌子模型的过程402来开始设计阶段302。特别地,过程402的第一步是确定桌子的产品特性(图5中的步骤502)。在示例中,***可以使用桌子的模板来确定桌子的特性。
图7A示出了根据示例性实施例的示例桌子模板700。该模板可以指示桌子的特性,诸如桌子的不同组件、组件的可能布置、桌子的可能尺寸、可以用来建造桌子的材料以及其他特性。如图7A所示,桌子模板700可以包括由支撑结构支撑的表面702。例如,桌子模板700可以指示桌子的支撑结构是一条或多条腿。
此外,图7A还指示了对桌子的期望约束。例如,约束可以指示桌子的期望尺寸,诸如桌子的最大周长,其在图7A中由最大宽度w1和最大长度l1指示。约束也可以指示桌子的期望高度h1。如上所解释,约束还可以指示桌子的尺寸、用来建造桌子的材料、执行约束、负载约束等。
一旦***已经确定了桌子的特性,***就可以生成桌子的组件中的每一个组件的模型。特别地,***可以使用上述过程生成桌子的组件的一个或多个模型。在这种示例中,桌子的组件是表面702和支撑表面702的结构,以使得当桌子放置在水平表面上时,表面702是水平的或齐平的。并且一旦***已经确定了组件中的每一个组件的一个或多个模型,***就可以使用上述过程生成桌子的一个或多个模型。
图7B-图7F各自示出了根据示例性实施例的由***生成的桌子的模型。特别地,图7B、图7C、图7D、图7E和图7F分别示出了桌子模型704、708、710、712和714。如这些图所示,每个桌子模型满足桌子的特性,因为每个桌子包括表面和支撑结构。此外,如图7B-图7F所示,每个桌子都满足对桌子的约束。例如,每个桌子都在约束指定的最大尺寸范围内。
返回图4,在确定模型的步骤402之后,***可以被配置为执行可构建性分析404。特别地,可构建性分析404可以确定模型是否满足产品约束。例如,对图7A中桌子700的产品约束可以指示桌子的最大周长,如桌子的最大宽度w1和最大长度l1所指示。在这种示例中,可构建性分析404可以确定所生成的模型(例如,图7B-图7F中示出的模型之一)是否描述了满足约束的桌子。如果该分析确定模型不满足该约束,则***可以确定模型不是可构建的。另一方面,如果模型满足约束,则分析可以确定模型是可构建的。
可构建性分析404还可以确定模型是否满足产品的其他功能性特征。例如,功能性特征可以定义产品的属性,诸如载荷极限、重心、稳定性、应力(例如,弯曲应力)、强度(例如,弯折强度)等。可构建性分析404还可以确定模型是否满足由约束定义的非功能性特征。例如,***可以确定模型是否满足由约束定义的美学特征(例如,雕刻作品、固定物等)。基于该分析,***可以确定是否在决定单元406处继续进行。如果模型不是可构建的,则***可以返回步骤402以确定新的模型。如果模型是可构建的,则***可以继续进行到步骤408。
在步骤408中,***可以生成任务序列以根据模型构建产品。任务可以是任何类型的任务,该任务可以被执行且与构建产品相关。任务的示例类型包括建造任务、制造任务、装配任务、加工任务等。此外,任务可能包含与位于生产场所的对象(诸如零件、工具、障碍物等)进行交互。此外,可以使用生产场所中可用的一个或多个工具来执行任务。
在一个实施例中,***可以生成任务序列的排列,该任务序列可以被执行以根据所选择的模型构建产品。在一个示例中,***可以使用树结构来生成任务序列的排列。树结构可以包括根节点和一个或多个最终节点之间的多个节点。节点被布置以使得根节点分支成一个或多个节点,其中每个节点也分支成一个或多个节点。这些节点不断分支成一个或多个节点,直到到达最后一个节点。此外,根节点表示产品的当前状态,并且每个节点可以表示任务。以及最终节点可以指示构建产品的最终任务的完成。
图8A示出了根据示例性实施例的树结构820。如图8A所示,树结构822包括根节点822,其可以指示建筑物和/或生产场所的当前状态。如图8A进一步所示,一个或多个第一步骤可以从根节点分支。在这种示例中,两个可能的第一步骤824和826从根节点822分支。如进一步示出的,三个第二步骤828、830和832从第一步骤824分支,以及三个第二步骤834、836和838从第一步骤826分支。每个节点可以分支成一个或多个节点,直到到达最后一个节点,其中最后一个节点表示最后一步。如图8A所示,在每个第二节点(由椭圆表示)和最终节点840、842、844、846、848和850之间有一个或多个节点。
任务序列的排列可以通过从根节点到最终节点选择连续的节点序列来确定。所选择的节点序列表示构建过程的排列的步骤。例如,如果尚未构建产品的任何部分,则根节点可以指示将在其中构建产品的生产场所的当前状态。以及从根节点分支的节点中所选择的第一节点是用以在生产场所构建产品的任务序列的第一步。然而,如果已经构建了产品的一部分,那么根节点指示产品的已构建部分。以及从根节点分支的节点中所选择的第一节点是在产品的已构建部分的基础上构建的任务序列的第一步。
然后***可以选择满足约束的任务序列的排列。在一个示例中,***可以基于任何指定的执行约束来选择排列。例如,执行约束可以指示***应该优化成本模型。因此,***可以选择具有最小估计成本的任务序列的排列。在一些示例中,***的用户可以定义要优化的默认执行约束。可替换地,如果没有对产品的执行约束,则***可以选择满足约束的任何任务序列的排列。
一旦***已经选择了任务序列的排列,则***可以继续进行到模拟阶段304。在模拟阶段304,***可以在步骤410执行模拟。具体地,为了执行模拟,***可以确定操作次序,其中以该操作次序来执行所选择的任务序列。这可以包括确定每个任务的资源,为相应任务分配必要的资源,以及确定要执行任务的次序。在一些示例中,***可能无法确定任务序列的操作次序,因此,***可以确定不可能执行所选择的任务序列。在这种场景下,***可以确定任务序列的排列是不可行的,并且可以选择该任务序列的不同排列。这个过程可以重复,直到***选择了满足对模型的约束的排列。
一旦***已经确定了操作次序,***就可以模拟任务序列的执行。在模拟期间,***可以执行可构建性分析412,以确定该任务序列是否可以使用***的资源来执行。在一个方面,***可以确定所选择的任务序列是否可以由***可用的机器人设备来执行。在一个示例中,***可以确定所选择的排列的每个任务是否可以由机器人设备来执行。在可构建性分析的另一方面,***可以根据所选择的模型和所选择的任务序列来确定***是否具有用以构建产品的材料和零件。如果***检测到可构建性可能由于任何原因(例如,缺乏资源等)而失败,则***可以返回到生成任务序列的步骤408,以便选择任务序列的不同排列。
此外,在模拟步骤410期间,***可以将所选择的任务序列中的任务分配给生产场所中可用的一个或多个角色。在一个示例中,***可以维护工人时间表,该工人时间表指示位于生产场所的工人(机器人和人类)的时间表。然后,***可以将构建过程的任务分配给生产场所中的可用角色。在一个示例中,***可以将所有任务分配给可用的机器人设备,以使得产品完全由机器人设备构建。分配给机器人设备的任务可以取决于机器人设备的端部执行器的类型。该***可以将任务分配给机器人设备,该机器人设备包括被配置为执行特定任务的端部执行器。例如,包含移动对象的任务可以被分配给包括夹具端部执行器的机器人设备。
b.模拟阶段
一旦任务已经被分配给角色,***可以模拟任务序列。在这个步骤中,***可以模拟角色利用资源在生产场所中执行任务序列中的一个或多个任务。该模拟可以指示生产场所中的机器人设备将如何按照由操作次序指定的次序来执行任务。在一些示例中,模拟可以以与机器人设备在生产场所中执行任务的速度相同的速度来执行。在其他示例中,模拟可以以更快的速度执行。此外,在一些示例中,模拟的表示可以显示在计算设备的显示器上。附加地和/或替换地,模拟可以被记录以用于未来的分析。
此外,可构建性分析412可以确定模拟的机器人设备是否可以使用指定的资源并以由操作次序指示的次序来执行分配给它们的任务。在可构建性分析412的一个方面,***可以确定每个模拟的机器人设备是否能够执行分配给其的任务。在一个示例中,***可以确定每个模拟的机器人设备(被分配了任务)在执行分配给其的任务时是否会遇到问题。例如,可构建性分析可以检测由于机器人设备的运动学限制(例如,关节限制和/或可达性限制)导致的失败或问题。在另一示例中,***可以确定对我们的工人的速度或加速度约束,并且可以识别某些种类的任务(例如,胶沉积工具路径(glue deposition toolpath))是否超过可用机器人设备的能力。
此外,在另一方面,可构建性分析可以检测位于生产场所中的任何对象之间可能出现的任何冲突,诸如执行它们各自任务的机器人设备之间的潜在冲突、机器人设备和生产场所中的对象之间的冲突,以及其他示例。该***还可以确定每个模拟的机器人设备是否能够到达其需要位于的区域,以便执行其被分配的任务。
在可构建性分析412的又一方面,***可以确定模拟的结构在整个产品的建造中是否稳定。在又一方面,***还可以确定***可用的资源是否足以完成项目。在可构建性分析412期间,如果***检测到使用所选择的构建过程(即,所选择的模型和/或所选择的任务序列)设计不是可构建的,则***可以在决定单元414做出决定以返回到生成任务序列的步骤408,以便选择任务序列的不同排列。相反,如果***完成模拟并且没有检测到关于任务序列的任何问题,则***可以在决定单元414做出决定,以继续进行到构建阶段306。
c.构建阶段
在构建步骤416中,***可以通过使得生产场所中的角色执行所选择的任务序列来在生产场所中实施所选择的模型。为了执行任务序列中的步骤,***可以向角色发送指令,该指令使得角色执行分配给它们的任务。例如,当机器人设备被安排为执行任务时,该任务的指令可以被发送到该机器人设备。在另一个示例中,***可以经由计算设备向人类工人发送指令,以及工人可以使用该计算设备来与***接口。
此外,在构建阶段306,***可以生成并维护包括指示生产场所的数据的世界地图。该***可以使用从位于生产场所的设备(例如,图2的全局传感器240和局部传感器230)接收的数据来生成世界地图。世界地图可以包括生产场所中所有角色的概述、角色实行的任务以及生产场所中资源和对象的相关位置。世界地图还可以包括生产场所中每一个资源的描述、位置和数量。例如,世界地图可以包括***可用的每类材料的清单。此外,该***可以至少使用从位于生产场所的设备(例如机器人设备、传感器等)接收的数据来实时动态更新世界地图。如此,世界地图不仅可以定义生产场所的空间特征,还可以包括生产场所的物理细节,诸如生产场所可能实时出现的变化。因此,可以在世界地图和物理世界之间建立实时链接(live link)。
图8B示出了建造桥梁804的机器人设备802的世界地图800。如图8B所示,世界地图800描绘了桥梁804的“竣工”部分808A。还如图8B所示,世界地图还描绘了要构建的桥梁804的一部分的设计的轮廓808。在这个示例中,机器人设备已经开始了构建桥梁的构建阶段。因此,机器人设备802可以执行与任务序列相关联的任务,以使用资源806来构建桥梁804。
在一个实施例中,***可以在构建阶段306期间周期性地或连续地执行可构建性分析418。可构建性分析418根据任务序列和/或模型来分析构建产品的可行性。在示例中,可构建性分析418可以在构建产品之前执行。附加地和/或替换地,可构建性分析418可以在产品正在被构建的同时执行。注意,尽管过程416和过程418在图4中被示为两个分离的过程,但是***可以同时执行该过程。如此,当工人正在执行构建416时,***可以执行可构建性分析418。
在一个实施例中,为了执行可构建性分析418,***可以分析来自世界地图的数据,以检测可能影响构建产品的可行性的任何问题。在一个方面,***可以将产品的竣工部分与产品的模型进行比较。如果***检测到竣工部分与模型的偏差,则***可以确定产品是否仍然满足约束。附加地和/或替换地,***可以确定任务序列中尚未执行的任务是否仍然可以被执行。附加地和/或替换地,***可以确定执行尚未执行的任务是否会进一步加剧(compound)该偏差,以使得最终产品不会满足约束。
例如,***可以分析桥梁项目的世界地图800。例如,也许通过将竣工部分808A的尺寸与模型的相应部分的尺寸进行比较,***可以确定竣工部分808A是否是根据模型构建的。该***还可以确定竣工部分808A的特性,诸如桥梁的承重能力,并且可以将确定的特性与期望的特性进行比较。也许通过确定资源806是否包括用以构建桥梁804所必需的资源,***还可以确定机器人设备802是否可以构建桥梁804的未构建部分。***还可以确定是否可以执行与构建未构建部分808B相关联的任务。例如,***可以确定在构建桥梁804中是否有任何延迟,并且如果有延迟,***是否仍然可以在由约束设定的时限内完成未执行的任务。
***可以分析来自世界地图的、可能影响项目的可构建性的其他数据。在一个示例中,***可以确定生产场所中的资源是否足以完成产品的建造。在另一示例中,***可以检测生产场所中可能干扰任务序列的执行的任何变化或事件。例如,***可以检测生产场所中的条件是否以可能影响构建过程的方式变化(例如,显著的温度变化)。该***还可以检测任何引入生产场所的新障碍物,这些障碍物可能会影响任务序列的执行。
在可构建性分析418的另一方面,***可以接收指示设计和/或约束的变化的输入。以及作为响应,***可以根据设计和/或约束的变化来确定使用所选择的任务序列,产品是否仍然是可构建的。例如,***可以接收指示执行约束的变化的输入。作为响应,***可以确定当前的任务序列是否满足新的执行约束。
如果***确定使用当前任务序列,产品不是可构建的,则***可以确定选择新的任务序列。在一个实施例中,响应于确定产品不是可构建的,***可以在决定单元420检测到错误。然后,***可以返回到生成任务序列的步骤408。在生成任务序列的步骤408,***可以生成新的任务序列。在一个示例中,新的任务序列可以实现与先前任务序列相同的设计,但是可能使用不同的步骤。
在一个实施例中,***可以使用树结构来生成新的任务序列。如上所解释的,树结构的根节点表示项目的当前状态。在这种情况下,产品的竣工部分是项目的当前状态,并因此被表示为根节点。如此,从根节点分支的第一节点表示在产品的已构建部分的基础上构建的第一步。然后,***可以选择从树结构的根节点开始到最终节点结束的任务序列。新任务序列的最终节点可以是与原始任务序列相同的最终节点,也可以是不同的最终节点。通过以这种方式生成新的任务序列,***可以在输出产品的竣工部分上构建,并因此***可以保留已经执行的工作。
为了便于生成新的任务序列,***可以确定在***确定生成新的任务序列之前最后执行的任务。然后,***可以确定与该任务相关联的、构建树中的节点,并且可以将该节点认定为根节点。然后,***可以在根节点和最终节点之间选择连续的节点序列。新的节点序列不同于原始选择的节点序列。一旦生成了新的序列,***就可以执行如图4所示的过程。
在一些示例中,***可以确定原始设计的任务序列无法实现。然后,***可以返回到确定产品的模型的步骤402。在步骤402,***可以选择先前生成的并且满足约束的模型之一。可替换地,***可以生成一个新的模型,该新模型是在产品的竣工部分的基础上构建。一旦生成了新的模型,***就可以执行如上所述的每个阶段的过程。在一些示例中,在***完成设计阶段302的过程之后,可以跳过模拟阶段304并直接移动到构建阶段306。
尽管如此,一旦生成了新的任务序列和/或新的模型,***就可以重新开始构建产品。在一些示例中,如果***在问题实际出现之前检测到潜在问题,则***可以在不停止构建416的情况下调整问题。然而,如果出现的问题影响当前正在执行的任务,则***可以暂停构建416,直到***确定调整。一旦确定了调整,***可以重新开始构建416。
与上述机器人控制***相关的操作可以由一个或多个处理器实施为一种方法。如上所解释,机器人控制***可以操作一个或多个机器人设备。因此,在机器人设备和机器人控制***之间可能存在信号交换。描述机器人控制***操作的示例方法900和1000分别以流程图的形式在图9和图10中示出。
图9示出了根据示例实施例的生产场所自动化***构建输出产品的示例方法900。如框902所示,方法900包含在构建产品的预构建阶段期间,生成第一任务序列以根据产品的模型构建产品。如框904所示,方法900还包含在构建阶段期间,使得一个或多个机器人设备通过开始执行第一任务序列来构建产品。如框906所示,方法900还包含在执行第一任务序列期间,执行可构建性分析,以确定通过执行第一任务序列来完成产品的可行性。
如框908所示,方法900还包含基于分析确定通过执行第一任务序列来完成产品是不可行的。如框910所示,方法900附加地包含响应于确定通过执行第一任务序列来完成产品是不可行的,生成第二任务序列以根据模型来完成产品,其中第二任务序列不同于第一任务序列。如框912所示,方法900又包含使得一个或多个机器人设备通过开始执行第二任务序列来继续构建产品。特别地,***开始执行第二任务序列,而不是执行第一任务序列。此外,这种过程可以是循环的。例如,在执行第二任务序列期间,***可以基于可构建性分析来确定通过执行第二任务序列来完成产品是不可行的。因此,***可以生成第三任务序列。然后,***可以开始执行第三任务序列,而不是执行第二任务序列,依此类推。
图10示出了根据示例实施例的生产场所自动化***构建输出产品的另一示例方法1000。如框1002所示,方法1000包含在预构建阶段期间,生成产品的第一模型的第一任务序列。此外,如框1004所示,方法1000包含,在构建阶段期间,使得一个或多个机器人设备通过开始执行第一任务序列来构建产品。如框1006所示,方法1000还包含在执行第一任务序列期间,执行第一模型的第一可构建性分析,以确定根据第一模型构建产品的可行性。此外,如框1008所示,方法1000包含基于该分析确定第二模型。另外,如框1010所示,方法1000包含使得一个或多个机器人设备根据第二模型继续构建产品。
D.示例机器人设备
图11示出了根据示例实施例的机器人设备。特别地,机器人设备1100可以包括机器人臂1102,该机器人臂1102具有能够装备有一个或多个不同工具、夹具或导向器的端部执行器1104。机器人臂1102能够沿着六个自由度运动,如图11A中A1-A6所描绘。在某些示例中,机器人设备1100还能够沿着一个或多个轴A0运动,诸如沿着允许侧向运动的轨道(未示出)。在某些实施例中,可以给出指令以将端部执行器1104定位在指定位置,并且机器人臂1104沿着A1-A6的定位和/或机器人设备1100沿着一个或多个轴A0的定位可以通过相关控制器的处理来计算。在可替换的实施例中,机器人设备1100和/或机器人臂1102的定位控制可能需要分离的、单独的设定和控制命令。在一些例子中也可以或替代地使用以较少自由度操作的机器人设备。
机器人装置1100可以具有固定的端部执行器,或者可以互换端部执行器。为了交换端部执行器,机器人设备1100可以访问存储在机器人设备1100上或附近的多个端部执行器。多个端部执行器可以包括不同类型的端部执行器,诸如工具端部执行器、夹具端部执行器和导向器端部执行器。如此,具有互换端部执行器能力的机器人设备1100可以被分配需要不同类型端部执行器的不同任务。如本文所解释的,机器人设备1100可以基于分配给机器人设备1100的任务来选择端部执行器。
图12示出了机器人设备1200的示例配置。通常,机器人设备1200可以是任何具有计算能力并利用致动能力和/或发射/生成诸如光和/或声音以及其他物理现象的能力来与其周围环境交互的设备。例如,机器人设备1200可以是仿人机器人、机器人臂或四足机器人以及其他。机器人设备也可以是本领域普通技术人员通常理解为“机器人”的任何设备。机器人设备1200也可以被称为机器人装置、机器人操纵器、机器人客户端或机器人以及其他。
机器人设备1200被示为包括(多个)处理器1202、数据存储器1204、程序指令1206、控制器1208、(多个)传感器1210、(多个)电源1212、(多个)致动器1214和(多个)可移动组件1216。注意,机器人设备1200仅出于说明目的而示出,并且机器人设备1200可以在不脱离本公开的范围的情况下,包括附加组件和/或移除一个或多个组件。此外,注意,机器人设备1200的各种组件可以以任何方式布置和连接。
此外,(多个)处理器252、数据存储器254、程序指令256、(多个)传感器(例如,(多个)局部传感器230和(多个)全局传感器240)和/或电源262的以上描述可以应用于以下与在另一***或布置中使用的相应组件相关的任何讨论。例如,如上所述,图12(以及其他可能的图)示出了处理器、数据存储器、程序指令、传感器和/或电源被合并在另一布置中。因此,这些所讨论的组件可以具有与上面结合图2讨论的相应组件相同或相似的特性(和/或形式)。然而,在不脱离本公开的范围的情况下,所讨论的组件也可以具有其他特性(和/或形式)。
如上所述,机器人设备1200可以包括控制器1208(例如,采取微控制器的形式)。控制器1208可以包括处理单元和数据存储器,并且可以被布置成管理或实行各种操作(例如,单独地或与(多个)处理器1202协作)。因此,该控制器1208可以具有与上述控制器250相同或相似的特性(和/或形式),但是也可以具有其他特性(和/或形式)。因此,在一些实施方式中,控制器250可以作为机器人设备1200的一部分合并,并因此控制器250本身可以是控制器1208。在其他实施方式中,控制器1208可以被包括以作为机器人设备1200的一部分,并且控制器250可以与机器人设备1200分离。不管实施方式如何,这些控制器可以采取各种形式。例如,控制器可以采取芯片组、服务器***、数字信号处理器、可编程逻辑控制器和/或采样数据***以及其他可能的形式。此外,控制器在本文还可以被称为控制***以及其他。
此外,机器人设备1200还可以包括一个或多个致动器1214。致动器是一种可以用来引入机械运动的机构。特别地,致动器可以被配置成将存储的能量转换成一个或多个组件的移动。各种机构可用于为致动器提供动力。例如,致动器可以由化学物质、压缩空气、液压或电力以及其他可能提供动力。利用这种布置,(多个)致动器1214可以引起机器人设备1200的各种(多个)可移动组件1216的移动。(多个)可移动组件1216可以包括附件/构件,诸如机器人臂、机器人腿和/或机器人手以及其他。(多个)可移动组件1216还可以包括可移动基座、轮子和/或端部执行器以及其他。此外,当机器人设备1200包括至少一个端部执行器时,这样的端部执行器可以是工具(例如,螺丝刀、钻头、烙铁或它们的一些组合)和/或夹具以及如上所述的其他工具。
E.示例计算设备
图13是示出包括一个或多个处理器1302、数据存储器1304、程序指令1306、(多个)电源1308、传感器1310、显示器1312和输入法编辑器(Input Method Editor,IME)1314的示例计算设备1300的组件的框图。注意,计算设备1300仅出于说明目的而示出,并且计算设备1300可以在不脱离本公开的范围的情况下,包括附加组件和/或移除一个或多个组件。此外,注意,计算设备1300的各种组件可以以任何方式布置和连接。
显示器1312可以采取任何形式(例如,LED、LCD、OLED等)。此外,显示器1312可以是触摸屏显示器(例如,平板电脑上的触摸屏显示器)。显示器1312可以示出图形用户界面(graphical user interface,GUI),该图形用户界面可以提供用户可以通过其与本文公开的***进行交互的应用。
此外,计算设备1300可以经由IME 1314接收用户输入(例如,来自计算设备1300的用户)。特别地,IME 1314可以允许与GUI的交互,诸如滚动、提供文本和/或选择应用的各种特征,以及其他可能的交互。IME 1314可以采取各种形式。在一个示例中,IME 1314可以是定点设备,诸如用于控制GUI的计算鼠标。然而,如果显示器1312是触摸屏显示器,则可以接收允许控制GUI的用户触摸输入(例如,诸如使用手指或触笔)。在另一示例中,IME 1314可以是文本IME,诸如键盘,其提供对要经由GUI显示的数字、字符和/或符号的选择。
例如,在显示器1312是触摸屏显示器的布置中,显示器1312的部分可以显示IME1314。因此,在显示器1312的包括IME 1314的部分上的触摸输入可以导致用户输入,诸如对要经由显示器1312示出在GUI上的指定数字、字符和/或符号的选择。在又一示例中,IME1314可以是语音IME,该语音IME可以用于接收音频输入(诸如来自用户的、经由计算设备1300的麦克风),然后可以使用各种语音识别技术中的一种将该音频输入翻译为一个或多个字符,而不是经由显示器1312示出的字符。其他示例也是可能的。
计算设备1300还可以包括通信单元1316。通信单元1316可以包括有线链路和/或无线链路(例如,使用各种无线发射机和接收机)。有线链路可以包括例如并行总线或串行总线(诸如通用串行总线(USB))。无线链路可以包括例如蓝牙、IEEE 802.11(IEEE 802.11可以指IEEE 802.11-2007、IEEE802.11n-2009或任何其他IEEE 802.11修订版)、蜂窝(诸如GSM、GPRS、CDMA、UMTS、EV-DO、WiMAX、HSPDA或LTE)或Zigbee,以及其他可能性。此外,可以使用多种有线和/或无线协议,诸如使用蜂窝通信协议的“3G”或“4G”数据连接(例如,CDMA、GSM或WiMAX,以及使用802.11的“WiFi”连接)。
计算设备1300可以与一个或多个传感器耦合,诸如光流传感器、力传感器、接近传感器、运动传感器(例如陀螺仪和/或加速度计)、负载传感器、位置传感器、热成像传感器、深度传感器(例如RGB-D、激光、结构光和/或飞行时间照相机)、超声波测距传感器、红外传感器、光学传感器、射频识别(RFID)***、近场通信(NFC)芯片、无线传感器、光传感器、触摸传感器(例如,电容传感器)、照相机(例如彩色照相机、灰度照相机和/或红外照相机)和/或测距传感器(例如,超声波和/或红外线)以及其他
Ⅲ.附加特征
A.序列化
在示例中,由***生成的各种数据可以被序列化并存储在***的数据存储器中(例如,图13中的数据存储器1304)。例如,***可以使产品模型、用于生成可能的任务序列的树、生产场所的世界地图以及***生成的其他数据序列化。特别地,序列化数据可以允许***暂停构建产品,稍后再重新开始。例如,一旦工作时间结束,构建过程可以暂停,并且可以在工作时间开始时重新开始。一旦构建过程重新开始,***可以检索数据的最后的实例(例如,最后的模型、树结构、世界地图等)。然后,***可以更新数据,以说明(account for)当***被暂停时可能已经发生的任何变化。一旦数据被更新,***就可以执行可构建性分析,以确定模型的最后实例和/或任务序列是否仍然可以被使用。
B.机器学习
除了上述示例,***还可以使用机器学习、统计分析和/或其他分析技术来学习如何定义特定产品。特别地,***可以通过例如从在线目录或其他来源摄取椅子的3D模型,来学习特定产品是什么。那么***可以学习椅子和/或其组件的功能性属性。例如,***可以分析数据,诸如产品的一组属性。例如,该组属性可以指示美学属性,诸如颜色、标记、视觉图案和表面光洁度/纹理,以及其他属性。附加地或替换地,该组执行可以指示机械属性,诸如弯曲强度、脆性、体积模量、摩擦系数、抗压强度、蠕变、弹性、疲劳强度、柔韧性、断裂韧性、硬度、塑性、弹性、剪切强度、刚度、应力/应变属性、表面粗糙度、拉伸强度、韧性、粘度、屈服强度和重量以及其他属性。附加地和/或替换地,该组属性可以指示几何属性,诸如形状、大小、方向、角度等。
附加地或替换地,该组属性可以指示电和/或磁属性,诸如电容、电导率、密度、介电强度、场属性、电感、介电常数和电阻以及其他属性。附加地或替换地,该组属性可以指示化学属性,诸如耐腐蚀性、易燃性、pH、反应性、稳定性、表面能/张力和毒性,以及其他属性。附加地或替换地,该组属性可以指示用于涂覆、切割、钻孔、形成和成形过程、热处理、连接、加工、轧制、砂磨和焊接以及其他技术的制造属性。附加地或替换地,该组属性可以指示光学属性,诸如吸光度、荧光、光敏性、反射率、折射率、散射和透射率以及其他属性。附加地或替换地,该组属性可以指示热属性,诸如沸点、临界点、发射率、熔点、比热、热导率、热扩散率和热膨胀等属性。
例如,***可以通过学习定义椅子的可能的负载支撑约束(例如,人的重量、负载承受表面位置)以及其他特征来学习椅子是什么。然后,这样的***可以根据椅子的定义生成椅子的模型。此外,该***可以接收反馈,该反馈可以用于完善其对特定产品的定义或理解。这样的反馈可以包括来自产品用户的反馈。此外,反馈可以被输入到机器学习模型中,以使得***可以不断地完善其对产品的定义。
IV.结论
本公开不限于本申请中描述的特定实施例,这些实施例旨在说明各个方面。如本领域技术人员显而易见的,在不脱离本公开的精神和范围的情况下,可以进行许多修改和改变。对于本领域技术人员来说,根据前面的描述,除了本文列举的方法和装置之外,本公开范围内的功能等同的方法和装置将是显而易见的。这样的修改和改变旨在落入所附权利要求的范围内。
以上详细描述参考附图描述了所公开的***、设备和方法的各种特征和功能。在附图中,相同的符号一般标识相同的组件,除非上下文另有说明。本文和附图中描述的示例实施例并不意味着限制。在不脱离本文呈现的主题的精神或范围的情况下,可以利用其他实施例,并且可以进行其他改变。很容易理解,如本文通常描述的和在附图中示出的,本公开的各方面可以以各种各样不同的配置进行布置、替换、组合、分离和设计,所有这些都在本文中明确地被考虑。
表示信息处理的框,诸如上述方法的框,可以对应于可以被配置为执行本文描述的方法或技术的指定逻辑功能的电路***。替换地或附加地,表示信息处理的框可以对应于模块、段或程序代码的一部分(包括相关数据)。程序代码可以包括一个或多个可由处理器执行的指令,以用于实施方法或技术中的指定逻辑功能或动作。程序代码和/或相关数据可以存储在任何类型的计算机可读介质上,诸如包括磁盘或硬盘驱动器或其他存储介质的存储设备。
计算机可读介质还可以包括非暂时性计算机可读介质,诸如存储短时间数据的计算机可读介质,如寄存器存储器、处理器高速缓存和随机存取存储器(random accessmemory,RAM)。计算机可读介质还可以包括存储程序代码和/或数据较长时间的非暂时性计算机可读介质,诸如次级或永久长期存储,如只读存储器(read only memory,ROM)、光盘或磁盘、致密盘只读存储器(compact-disc read only memory,CD-ROM)。计算机可读介质也可以是任何其他易失性或非易失性存储***。例如,计算机可读介质可以被认为是计算机可读存储介质,或者是有形存储设备。
此外,表示一个或多个信息传输的框可以对应于同一物理设备中的软件模块和/或硬件模块之间的信息传输。然而,其他信息传输可以在不同物理设备中的软件模块和/或硬件模块之间进行。
图中所示的特定布置不应被视为限制性的。应当理解,其他实施例可以包括更多或更少给定图中所示的每个元件。此外,示出的元件中的一些可以被组合或省略。此外,示例实施例可以包括图中未示出的元件。
虽然本文已经公开了各种方面和实施例,但是其他方面和实施例对于本领域技术人员来说是显而易见的。本文公开的各种方面和实施例是为了说明的目的,而不是为了限制,以及真正的范围由所附权利要求来指示。
Claims (20)
1.一种用于生产场所自动化的计算机实施方法,包括:
接收指令以构建产品,其中,所述指令包括至少一个或多个指定执行约束;
在构建产品的预构建阶段期间,生成第一任务序列以根据产品的模型构建产品,并且第一任务序列满足对构建过程的一个或多个指定执行约束;
在构建阶段期间,使得一个或多个机器人设备通过开始执行第一任务序列来构建产品;
在执行第一任务序列期间,执行可构建性分析以确定通过执行第一任务序列来完成产品的可行性;
基于所述分析,确定通过执行第一任务序列来完成产品是不可行的;
响应于确定通过执行第一任务序列来完成产品是不可行的,生成第二任务序列以根据所述模型完成产品,其中,第二任务序列不同于第一任务序列;和
使得一个或多个机器人设备通过开始执行第二任务序列,来继续构建产品。
2.根据权利要求1所述的计算机实施方法,还包括:
基于所述分析,确定通过执行第一任务序列来完成产品是可行的;和
响应性地,使得一个或多个机器人设备通过继续执行第一任务序列,来继续构建产品。
3.根据权利要求1所述的计算机实施方法,其中,生成第一任务序列包括:
选择树结构的根节点和最终节点之间的节点序列,其中,每个节点与任务中相应的一个任务相关联。
4.根据权利要求3所述的计算机实施方法,其中,生成第二任务序列包括:
确定(i)第一任务序列中的最后执行的任务,以及(ii)与所述最后执行的任务相关联的最后执行的节点;和
选择所述最后执行的节点和第二最终节点之间的一个或多个节点,以使得所选择的节点包括所述最后执行的节点和所述第二最终节点之间的节点序列。
5.根据权利要求1所述的计算机实施方法,其中,执行第一任务序列的可构建性分析包括:
确定第一构建过程不满足指定的执行约束;和
响应性地确定通过执行第一任务序列来完成产品是不可行的。
6.根据权利要求5所述的计算机实施方法,其中,所述指定的执行约束包括以下至少一项:时间、成本和效率。
7.根据权利要求1所述的计算机实施方法,其中,产品正在生产场所中被构建,以及其中,所述方法还包括:
生成生产场所的地图,其中,所述生产场所的地图包括生产场所中可用的一个或多个资源的描述和产品的已构建部分的描述。
8.根据权利要求7所述的计算机实施方法,其中,执行第一任务序列的可构建性分析包括:
基于产品的已构建部分的描述,确定产品的已构建部分和所述模型之间的偏差;
确定所述偏差是否影响完成产品的可行性;和
如果所述偏差影响完成产品的可行性,则确定通过执行第一任务序列中的任务来完成产品是不可行的。
9.根据权利要求7所述的计算机实施方法,其中,执行第一任务序列的可构建性分析包括:
分析所述生产场所的地图;
基于所述分析,确定执行第一任务序列中尚未被执行的任务是不可行的。
10.根据权利要求9所述的计算机实施的方法,其中,分析所述生产场所的地图包括以下至少一项:
检测所述生产场所中阻碍机器人设备执行第一任务序列中的任务的障碍物,以及检测阻碍机器人设备执行第一任务序列中的任务的机器人设备的几何形状。
11.根据权利要求1所述的计算机实施方法,其中,所述方法还包括:
在所述预构建阶段期间,模拟一个或多个机器人设备执行第一任务序列;
在所述模拟期间,执行第一任务序列的模拟可构建性分析,以确定使用所述生产场所中可用的资源来执行第一任务序列的可行性;和
基于所述分析,确定生成新的任务序列。
12.根据权利要求1所述的计算机实施方法,还包括:
在执行第二任务序列期间,执行可构建性分析,以确定通过执行第二任务序列来完成产品的可行性;
基于所述分析,确定通过执行第二任务序列来完成产品是不可行的;
响应性地生成第三任务序列以根据所述模型完成产品,其中,第三任务序列不同于第二任务序列;和
使得一个或多个机器人设备通过开始执行第三任务序列来继续构建产品。
13.一种生产场所自动化***,包括:
一个或多个机器人设备;
一种包括一个或多个处理器和一个或多个数据存储设备的控制***,所述控制***被配置为:
接收指令以构建产品,其中,所述指令包括对产品的至少一个或多个指定执行约束;
在预构建阶段期间:(i)确定产品的模型,以及(ii)生成第一任务序列以根据所述模型构建产品,并且第一任务序列满足对构建过程的一个或多个指定执行约束;
在构建阶段期间,使得一个或多个机器人设备通过开始执行第一任务序列中的任务来构建产品;
在执行第一任务序列期间,执行第一任务序列的可构建性分析,以确定通过执行第一任务序列来完成产品的可行性;
基于所述分析,如果完成产品是不可行的:
生成第二任务序列以根据所述模型完成产品,其中,第二任务序列不同于第一任务序列;和
使得一个或多个机器人设备通过开始执行第二任务序列来继续构建产品。
14.根据权利要求13所述的生产场所自动化***,其中,所述控制***还被配置为:
如果通过执行第一任务序列来完成产品是可行的:
使得一个或多个机器人设备通过执行第一任务序列来继续构建产品。
15.根据权利要求13所述的生产场所自动化***,其中,所述约束包括对产品的模型的设计约束和执行约束。
16.根据权利要求13所述的生产场所自动化***,其中,被配置为生成第一任务序列的所述控制***包括被配置为执行以下过程的控制***:
选择树结构的根节点和第一最终节点之间的节点序列,其中,每个节点与任务中相应的一个任务相关联。
17.根据权利要求16所述的生产场所自动化***,其中,被配置为生成模型的第二任务序列的控制***包括被配置为执行以下过程的控制***:
确定(i)第一任务序列中的最后执行的任务,以及(ii)与所述最后执行的任务相关联的最后执行的节点;和
选择所述最后执行的节点和第二最终节点之间的一个或多个节点,以使得所选择的节点包括所述最后执行的节点和所述第二最终节点之间的节点序列。
18.一种用于生产场所自动化的计算机实施方法,包括:
接收指令以构建产品,其中,所述指令包括至少一个或多个指定执行约束;
在预构建阶段期间,生成产品的第一模型的第一任务序列,并且第一任务序列满足对构建过程的一个或多个指定执行约束;
在构建阶段期间,使得一个或多个机器人设备通过开始执行第一任务序列来构建产品;
在执行第一任务序列期间,执行第一模型的第一可构建性分析,以确定根据第一模型构建产品的可行性;
基于所述分析,确定第二模型;和
使得一个或多个机器人设备根据第二模型继续构建产品。
19.根据权利要求18所述的计算机实施方法,其中,生成第二模型包括生成第二模型的第二任务序列,以及其中,使得一个或多个机器人设备根据第二模型继续构建产品包括使得一个或多个机器人设备执行第二任务序列。
20.根据权利要求18所述的计算机实施方法,其中,执行第一模型的可构建性分析包括:
确定产品的已构建部分和第一模型之间的偏差;
确定所述偏差是否影响完成产品的可行性;和
如果所述偏差影响根据第一模型完成产品的可行性,则确定根据第一模型完成产品是不可行的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/611,777 US20180348742A1 (en) | 2017-06-01 | 2017-06-01 | Planning and Adapting Projects Based on a Buildability Analysis |
US15/611,777 | 2017-06-01 | ||
PCT/US2018/023775 WO2018222252A1 (en) | 2017-06-01 | 2018-03-22 | Planning and adapting projects based on a buildability analysis |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110494813A CN110494813A (zh) | 2019-11-22 |
CN110494813B true CN110494813B (zh) | 2022-08-30 |
Family
ID=64455475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880024024.7A Active CN110494813B (zh) | 2017-06-01 | 2018-03-22 | 基于可构建性分析的规划和调整项目 |
Country Status (7)
Country | Link |
---|---|
US (2) | US20180348742A1 (zh) |
EP (1) | EP3586207B1 (zh) |
JP (1) | JP6895539B2 (zh) |
KR (1) | KR102334995B1 (zh) |
CN (1) | CN110494813B (zh) |
CA (1) | CA3059412C (zh) |
WO (1) | WO2018222252A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104321153B (zh) * | 2012-07-24 | 2016-06-15 | Dic株式会社 | 金属纳米颗粒复合体、金属胶体溶液和它们的制造方法 |
JP6445151B2 (ja) * | 2015-05-22 | 2018-12-26 | 富士フイルム株式会社 | ロボット装置及びロボット装置の移動制御方法 |
US11162241B2 (en) * | 2018-03-27 | 2021-11-02 | Deere & Company | Controlling mobile machines with a robotic attachment |
US10810524B1 (en) * | 2018-05-21 | 2020-10-20 | Amazon Technologies, Inc. | Dynamic resource prediction simulation |
US11747787B2 (en) | 2019-08-30 | 2023-09-05 | Intrinsic Innovation Llc | Combining transformers for robotics planning |
WO2021041960A1 (en) | 2019-08-30 | 2021-03-04 | X Development Llc | Splitting transformers for robotics planning |
US11890758B2 (en) | 2019-08-30 | 2024-02-06 | Intrinsic Innovation Llc | Robot planning from process definition graph |
US11787048B2 (en) | 2019-08-30 | 2023-10-17 | Intrinsic Innovation Llc | Robot planning from process definition graph |
WO2021041938A1 (en) | 2019-08-30 | 2021-03-04 | X Development | Multi-objective robot path planning |
US11745345B2 (en) | 2019-08-30 | 2023-09-05 | Intrinsic Innovation Llc | Planning by work volumes to avoid conflicts |
KR102382749B1 (ko) * | 2019-09-17 | 2022-04-06 | 한국전자기술연구원 | 조립 구조물 지원 장치와 방법 |
US11526823B1 (en) | 2019-12-27 | 2022-12-13 | Intrinsic Innovation Llc | Scheduling resource-constrained actions |
US11511419B2 (en) * | 2020-05-01 | 2022-11-29 | Intrinsic Innovation Llc | Task planning for measurement variances |
EP3926422A1 (en) * | 2020-06-17 | 2021-12-22 | Siemens Aktiengesellschaft | Method for programming at least one machine in an industrial automation system |
CN111764665A (zh) * | 2020-07-10 | 2020-10-13 | 上海雅跃智能科技有限公司 | 一种基于bim的智能爬架与外墙作业机器人*** |
US11763223B1 (en) * | 2022-05-18 | 2023-09-19 | Realization Technologies, Inc | System for generating and maintaining a resource deployment map over a communications network |
CN116540659B (zh) * | 2023-07-04 | 2023-11-10 | 成都飞机工业(集团)有限责任公司 | 一种大型复杂产品车间调度方法、***、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5889926A (en) * | 1994-11-09 | 1999-03-30 | Amada America, Inc. | Method for planning/controlling robot motion |
WO2001016838A2 (en) * | 1999-08-30 | 2001-03-08 | Strategic Simulation Systems, Inc. | Project management, scheduling system and method |
CN102187047A (zh) * | 2007-12-05 | 2011-09-14 | 霍利贝顿能源服务公司 | 改进井具的设计、制造、性能和/或使用的方法和设备 |
CN103249368A (zh) * | 2010-11-11 | 2013-08-14 | 约翰霍普金斯大学 | 人机协作机器人*** |
WO2015113203A1 (en) * | 2014-01-28 | 2015-08-06 | Abb Technology Ltd | Method and apparatus for optimizing performance of robotic cell |
WO2016138242A1 (en) * | 2015-02-25 | 2016-09-01 | Abb Technology Ag | Robotic additive manufacturing apparatuses, systems and methods |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5969973A (en) * | 1994-11-09 | 1999-10-19 | Amada Company, Ltd. | Intelligent system for generating and executing a sheet metal bending plan |
US10110795B2 (en) * | 2002-06-04 | 2018-10-23 | General Electric Company | Video system and method for data communication |
JP2004240659A (ja) * | 2003-02-05 | 2004-08-26 | Hitachi Ltd | 作業指示システム |
JP4319026B2 (ja) * | 2003-12-26 | 2009-08-26 | 株式会社神戸製鋼所 | スケジュール作成方法及びスケジュール作成システム、並びにプログラム |
US8355818B2 (en) * | 2009-09-03 | 2013-01-15 | Battelle Energy Alliance, Llc | Robots, systems, and methods for hazard evaluation and visualization |
US9144904B2 (en) * | 2008-05-21 | 2015-09-29 | Fanuc Robotics America Corporation | Method and system for automatically preventing deadlock in multi-robot systems |
US20100017009A1 (en) * | 2008-06-30 | 2010-01-21 | International Business Machines Corporation | System for monitoring multi-orderable measurement data |
US8560358B2 (en) * | 2008-09-23 | 2013-10-15 | Sap Ag | Collaborative environment to assess, design, and implement product changes |
US8290830B2 (en) * | 2010-04-07 | 2012-10-16 | Siemens Product Lifecycle Management Software Inc. | System and method for visualization and comparison of physical assets using engineering design data |
US8744626B2 (en) * | 2010-05-27 | 2014-06-03 | Deere & Company | Managing autonomous machines across multiple areas |
US8401687B2 (en) * | 2010-11-24 | 2013-03-19 | Sap Ag | Visual assembly tool |
DE102011011542B4 (de) * | 2011-02-17 | 2016-05-25 | Convergent Information Technologies Gmbh | Verfahren zur automatisierten Programmierung und Optimierung von robotischen Arbeitsabläufen |
US20120283863A1 (en) * | 2011-05-02 | 2012-11-08 | Interface Technologies | Resource scheduling and adaptive control software for cutting room operations |
JP5689396B2 (ja) * | 2011-10-06 | 2015-03-25 | 株式会社日立製作所 | 生産計画装置および生産計画方法 |
US9733644B2 (en) * | 2012-07-17 | 2017-08-15 | Elwha Llc | Unmanned device interaction methods and systems |
US20140249882A1 (en) * | 2012-10-19 | 2014-09-04 | The Curators Of The University Of Missouri | System and Method of Stochastic Resource-Constrained Project Scheduling |
US10552774B2 (en) * | 2013-02-11 | 2020-02-04 | Amazon Technologies, Inc. | Cost-minimizing task scheduler |
US20140278712A1 (en) * | 2013-03-15 | 2014-09-18 | Oracle International Corporation | Asset tracking in asset intensive enterprises |
US9387589B2 (en) * | 2014-02-25 | 2016-07-12 | GM Global Technology Operations LLC | Visual debugging of robotic tasks |
US9278449B1 (en) * | 2014-05-21 | 2016-03-08 | Bot & Dolly, Llc | Closed-loop control system for robotic operation |
US20150363513A1 (en) * | 2014-06-13 | 2015-12-17 | Wolfram Alpha Llc | Method and system for designing products |
US9686275B2 (en) * | 2014-07-07 | 2017-06-20 | International Business Machines Corporation | Correlating cognitive biometrics for continuous identify verification |
US9272417B2 (en) * | 2014-07-16 | 2016-03-01 | Google Inc. | Real-time determination of object metrics for trajectory planning |
US9440353B1 (en) * | 2014-12-29 | 2016-09-13 | Google Inc. | Offline determination of robot behavior |
CN104808627A (zh) * | 2015-04-20 | 2015-07-29 | 海安县申菱电器制造有限公司 | 一种离散制造***的车间布局方法 |
WO2016196512A1 (en) | 2015-05-29 | 2016-12-08 | Abb Technology Ag | Method and system for robotic adaptive production |
EP3101566A1 (de) * | 2015-06-05 | 2016-12-07 | Invenio Virtual Technologies GmbH | Verfahren und vorrichtung zum überprüfen der baubarkeit eines virtuellen prototyps |
US11507708B2 (en) | 2015-07-23 | 2022-11-22 | Autodesk, Inc. | System-level approach to goal-driven design |
-
2017
- 2017-06-01 US US15/611,777 patent/US20180348742A1/en not_active Abandoned
-
2018
- 2018-03-22 CA CA3059412A patent/CA3059412C/en active Active
- 2018-03-22 CN CN201880024024.7A patent/CN110494813B/zh active Active
- 2018-03-22 EP EP18809241.5A patent/EP3586207B1/en active Active
- 2018-03-22 JP JP2019554555A patent/JP6895539B2/ja active Active
- 2018-03-22 WO PCT/US2018/023775 patent/WO2018222252A1/en unknown
- 2018-03-22 KR KR1020197029571A patent/KR102334995B1/ko active IP Right Grant
-
2019
- 2019-12-06 US US16/705,445 patent/US11256240B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5889926A (en) * | 1994-11-09 | 1999-03-30 | Amada America, Inc. | Method for planning/controlling robot motion |
WO2001016838A2 (en) * | 1999-08-30 | 2001-03-08 | Strategic Simulation Systems, Inc. | Project management, scheduling system and method |
CN102187047A (zh) * | 2007-12-05 | 2011-09-14 | 霍利贝顿能源服务公司 | 改进井具的设计、制造、性能和/或使用的方法和设备 |
CN103249368A (zh) * | 2010-11-11 | 2013-08-14 | 约翰霍普金斯大学 | 人机协作机器人*** |
WO2015113203A1 (en) * | 2014-01-28 | 2015-08-06 | Abb Technology Ltd | Method and apparatus for optimizing performance of robotic cell |
WO2016138242A1 (en) * | 2015-02-25 | 2016-09-01 | Abb Technology Ag | Robotic additive manufacturing apparatuses, systems and methods |
Also Published As
Publication number | Publication date |
---|---|
JP6895539B2 (ja) | 2021-06-30 |
EP3586207A4 (en) | 2021-01-20 |
KR102334995B1 (ko) | 2021-12-06 |
US11256240B2 (en) | 2022-02-22 |
EP3586207A1 (en) | 2020-01-01 |
US20200174460A1 (en) | 2020-06-04 |
EP3586207B1 (en) | 2023-05-31 |
CA3059412C (en) | 2023-09-26 |
KR20190117812A (ko) | 2019-10-16 |
CA3059412A1 (en) | 2018-12-06 |
WO2018222252A1 (en) | 2018-12-06 |
JP2020522037A (ja) | 2020-07-27 |
CN110494813A (zh) | 2019-11-22 |
US20180348742A1 (en) | 2018-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110494813B (zh) | 基于可构建性分析的规划和调整项目 | |
US10967501B1 (en) | Guide placement by a robotic device | |
US20200218223A1 (en) | Automatic Generation of Toolpaths | |
EP3794314B1 (en) | Robot coordination in a shared workspace | |
EP3166084B1 (en) | Method and system for determining a configuration of a virtual robot in a virtual environment | |
EP3166081A2 (en) | Method and system for positioning a virtual object in a virtual simulation environment | |
Hamid et al. | Virtual reality applications in manufacturing system | |
US20170087722A1 (en) | Method and a Data Processing System for Simulating and Handling of Anti-Collision Management for an Area of a Production Plant | |
EP2923805A2 (en) | Object manipulation driven robot offline programming for multiple robot system | |
Yap et al. | Virtual reality based support system for layout planning and programming of an industrial robotic work cell | |
US11726448B1 (en) | Robotic workspace layout planning | |
Stumm et al. | On-site robotic construction assistance for assembly using a-priori knowledge and human-robot collaboration | |
US11370120B2 (en) | Method and system for teaching a robot in reaching a given target in robot manufacturing | |
Darmoul et al. | Virtual reality for manufacturing: A robotic cell case study | |
KR20230111250A (ko) | 로봇 제어 계획들의 생성 | |
US20220043455A1 (en) | Preparing robotic operating environments for execution of robotic control plans | |
Woller | Automatický návrh trajektorie robotu v robotické buňce | |
Ionescu | Web-based simulation and motion planning for human-robot and multi-robot applications |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220307 Address after: California, USA Applicant after: Insi Innovation Co.,Ltd. Address before: California, USA Applicant before: X Development Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |