本申请要求于2014年5月21日提交标题为“Systems and Methods for Time-Based Parallel Robotic Operation”的美国临时专利申请序列号62/001,521的优先权,其通过引用而结合于此如同其全部内容在本说明书中陈述一样。
具体实施方式
这里描述示例性方法和系统。这里描述的任何示例性实施例或特征不是必须解释为在其它实施例或特征上优选或有利的。这里描述的示例性实施例不意味着是限制。容易理解,所公开的系统和方法的某些方面可在广泛种类的不同配置中设置和结合,其全部在这里明确地预期。
此外,图中示出的特定设置方案不应看作限制。应理解,其它实施例可包括或多或少的给定附图中示出的每个元件。此外,某些示出的元件可结合或省略。再次,示例性实施例可包括图中没有示出的元件。
I.概述
示例性系统和方法可帮助提供工作单元内的机器人装置的并行操作,例如被控制以制造输出产品的工业机器人。机器人操作的序列,包括机器人运动和工具动作,可首先提供为对应于工作单元内的不同机器人装置。在某些情形下,这些序列可由来自软件创建环境的用户产生。在其它示例中,用于单个机器人的序列可事先编程且保存用于后面执行。机器人操作的序列可表示机器人装置的终端执行器在工作单元内行进通过的目标位置的序列(例如,六个自由度的位置)。在示例内,机器人操作的序列可参考全局时间线转换成时基序列以允许工作单元内的并行执行。
在进一步示例中,用于机器人装置的时基操作序列可指示机器人装置之一的终端执行器沿着全局时间线在时间戳上的位置。在某些情况下,特定时间间隔可分开连续的时间戳。例如,在一个示例中,每个机器人装置的位置可确定为沿着时间线的每12毫秒。在其它示例中,可采用不同的时间解析度,可取决于适当的硬件或特定工作单元内的通信系统。
在另外的示例中,用于机器人装置的时基操作序列可包括来自用于机器人装置的对应的操作序列的目标位置。例如,目标位置可限定机器人装置跟随的通过工作单元的运动路径(例如,在加工过程期间)。时基序列可包括目标位置以便引起机器人装置运动通过相同的运动路径。
在进一步示例中,机器人装置的其它位置在确定机器人装置的时间基序列中可插入在连续目标位置之间。例如,12毫秒的时间间隔可用于时间基序列,但是机器人装置的操作序列可仅包括机器人装置大约每秒可到达的目标位置。在这样的示例中,在连续目标位置之间可确定位置以便为机器人装置提供更光滑的运动路径。例如,取代运动通过连接连续目标位置的直线,可采用连续的曲线。在另外的示例中,可选择位置以便最小化机器人装置从一个目标位置到达相邻一个行进所需的时间量。
在进一步示例中,可预测由工作单元内多个机器人装置并行执行机器人操作导致的可能的冲突。例如,用于几个机器人装置的时基操作序列可同步到具有特定时间步解析度的共同时钟。因此,工作单元内每个机器人装置的位置可沿着全局时间线在时间步上确定且用于确定何时冲突可能发生。在检测到可能的冲突时,时基操作序列的一个或多个可被修改,以便允许没有冲突的并行执行。
在某些示例中,时基操作序列可修改以在努力最小化完成过程(例如,制造过程)所需的时间量的同时避免冲突。在一个示例中,机器人装置的一个或多个的操作速度可沿着全局时间线在一个或多个点修改。例如,特定机器人可变慢以便避免与工作单元中的第二动作机器人冲突。在进一步示例中,有关全局时间线的速度曲线可努力为机器人装置的每一个确定以允许机器人装置尽快共同操作,同时避免工作单元中的任何冲突。
在其它示例中,一个或多个时基操作序列也同样可以修改或替代以按照其它方式避免冲突。例如,可插入操作以引起装置的一个或多个保持在工作单元内的位置持续全局时间线内的特定时间长度。例如,第一机器人可被命令为保持位置,直到第二机器人完成通过工作单元的特定运动。在另外的示例中,时基操作序列内的目标位置之间的位置可确定为避免冲突,独立于时间修改或与时间修改相结合。例如,第一机器人可被命令以在另一个机器人占据的区域周围移动以达到特定的目标位置。
在进一步示例中,用于机器人装置的操作序列可包括对应于每个机器人操作序列内的操作的同步点,其必须在任何机器人可连续执行操作前到达。例如,同步点可用于保证工作单元内同步操作没有冲突发生。通过转换到时基操作序列,在某些示例中,某些同步点可能没有必要避免冲突。替代地,冲突检测可根据机器人装置沿着全局时间线在时间步上的位置进行。然而,在某些示例中,特定的操作可能仍然需要以时间基模式同步。例如,两个机器人装置可在工作空间内的特定部件上操作(例如,第一机器人装置可将螺钉插入在由第二机器人装置保持的板中)。在这样的示例中,这些同步点可识别为在时间基模式中要求同步的锚定点,而其它的同步点可在转换到时间基模式时被去除。
下面将描述示例性系统,包括各种软件和硬件部件。应理解,在一些实施例中,可替代系统,例如,可省略特定的部件、结合部件和/或增加附加部件,也同样可采用所公开的方法。
II.示例性控制系统
示例性实施例可提供在制造和加工工业中使用的多轴机器人系统的运动计划和控制。示例性设计生产系统可允许用户利用传播到由一个或多个机器人装置采用一个或多个工具制造的产品的效果,改变在前端上描述输出产品的参数。在某些实施例中,用户可提供有允许机器人施动者的配置使用不同的工具集自动化构建过程的图形界面。在进一步示例中,机器人的运动可抽象化,从而用户不必为了控制构建过程而编程具体的机器人指令(例如,运动指令或工具指令)。因此,用户可在没有特定类型机器人指令的具体知识的情况下设计构建过程。另外,用户可提供有一个或多个界面,以允许在制造过程内、在离线运动编程期间和/或在运行期间变化具体机器人操作上的控制量。
在进一步示例中,用户可提供有三维(3D)模型图形界面,以允许用户改变描述在物理世界中影响构建过程的物理工作单元和/或所希望输出产品的一个或多个变量。另外,用户界面可提供抽象方法以将物理物体数字表示为软件环境内的节点。特别是,用户经验可使用户从能以很多不同方式配置和结合的工具阵列选择以控制物理工作单元内的不同类型的机器人施动者和硬件部件。
在进一步示例中,物理工作单元可包括其上计划物理构建过程或在物理世界上发生的物理阶段或多个物理阶段。在某些实施例中,物理工作单元可包括各种不同的机器人施动者和其它硬件部件以及在构建过程中可能使用的物理材料。在进一步示例中,物理工作单元可包含工具架和/或自动工具更换装置。在另外的示例中,物理工作单元可包含一个或多个不同类型的传感器。再者,物理工作单元可包括任何数量的不同尺度,包括用于特定构建活动的平台。
应理解,本公开不是要按照本申请中描述的特定实施例来限制,其旨在对各方面的说明。这里描述了示例性制造系统的众多部件。也预期仅包含这些部件的某些或这些部件的任何组合的系统。在不脱离所公开系统和方法的精神和范围的情况下,可进行很多的修改和变化。除了这里列举的那些外,本公开范围内的功能上等同的方法和设备对本领域的技术人员来说是显而易见的。
示例性实施例可涉及制造控制系统的使用,以产生在构建过程期间机器人手臂的自动编程。图1描述了示例性制造控制系统100。制造控制系统100可为制造环境的一部分,其用于控制一个或多个机器人装置以使用一个或多个工具加工某些输出产品。制造控制系统100可包括主控制10、输入和反馈系统20、系统装置40和安全系统90。从最基本的角度看,制造控制系统100可在输入系统20通过主控制10给系统装置40之一提供指令时运行。
在一个潜在实施例中,作为制造控制系统100的一部分,输入和反馈系统20可包括数据库22、主输入24、软件控制26和独立手动控制28。作为输入和反馈系统20的部分,数据库22可操作以提供一套定时和位置数据以指挥系统装置40内的装置施动者42、44的全部或部分。两个装置施动者42、44示出在图1中,但是任何数量的装置施动者可用在制造控制系统100内。作为选择,数据库22可保存通过与装置施动者42、44的操作和功能相关的手动或单个运动或数据输入产生的数据。数据库22也可保存与装置施动者42、44独立产生的数据,例如采用软件控制26的软件建模特征创建的数据。
主输入24可为作用为操作与制造控制系统100执行的特定构建过程相关的所有装置施动者42、44的任何装置。主输入24可通过发送输入控制信号到主控制10而运行。主控制10然后可采用来自主输入24的信号以发送单个控制信号到操作为用于特定制造过程的装置施动者42、44的多个机器人施动者。在一个潜在实施例中,装置施动者42、44的每个单个装置可在从主输入24接收信号时从主控制10提供控制信号,包括使未操作为用于制造过程的特定部分的装置施动者42、44的装置保持现状或不动作状态的信号。在选择性实施例中,连接为制造控制系统100部分的装置施动者42、44的一部分可不从主控制被发送任何信号,作为用于制造过程的特定部分的运动控制系统100操作的部分。
在某些实施例中,在通过主控制10给多个装置施动者42、44发送控制信号中,软件控制26可用作主输入24的替代者。作为选择,软件控制26可控制装置施动者42、44当中的单个装置以控制单个装置的特定操作。在其它潜在实施例中,软件控制26功能为对代表物理工作单元的虚拟模拟环境内的装置施动者42、44的单个装置的行为建模。在这样的实施例中,软件控制26可包含用于单个装置的软件模型,其允许为装置创建控制信号而不实际发送信号到装置。控制信号然后可保存在软件控制26中、在数据库22中、在作为主控制10一部分的计算机存储器部件内、或者在计算机存储器内,该计算机存储器是为其创建控制的装置施动者42、44的装置的一部分。在控制信号由软件控制26创建且传播到适当的存储位置后,来自软件控制26或来自主输入24的主控制信号可激活单个装置的控制信号以与其它装置施动者42、44协同动作。
在进一步示例中,装置施动者42、44的某些装置可另外具有独立的手动控制28。如上面有关软件控制26所描述,用于单个装置的控制信号可在软件建模中创建。另外或替代,装置可具有独立手动控制28,可用于操作装置施动者42、44的装置。在为整个制造过程创建一套指令时,独立手动控制28可随时间给出记录到数据库22或主控制10的存储装置的输入指令。在采用独立手动控制28创建一套指令期间,独立手动控制28可直接与装置施动者42、44的相关装置通信。作为选择,独立手动控制28可给主控制10发送控制信号,其然后将该信号传送到装置施动者42、44的相关装置。
控制信号然后可从独立手动控制28(例如,分开的用户界面)的信号或从由相关装置的操作创建的测量反馈读数的任何一个创建。另外,尽管在很多情形下,可能优选使独立手动控制28在实时的控制信号创建期间实际控制相关的装置,但是控制信号可替代为在不控制装置的情况下创建。例如,如果输入信号期待特定的时间标记,则独立手动控制28可独立于相关装置而操作,并且可记录该控制操作。因此,来自独立手动控制的用于装置施动者42、44的单个装置施动者的指示可集成在构建过程中作为制造控制系统100的一部分。
在进一步示例中,主控制10可通过在虚拟世界(例如,软件控制26)和物理世界(例如,包含装置施动者42、44的物理工作单元)之间提供链接而允许构建系统的各部件的实时控制。因此,物理世界内的物理机器人的运动可用于实时驱动对应虚拟机器人的当前位置。类似地,虚拟机器人的运动也可或替代用于驱动物理世界中的物理机器人的当前位置。
在一个潜在实施例中,用于具体装置施动者的单个控制信号以由主控制内的主机时钟提供的共同基础时间调入主控制的存储器内的单一文档中。在操作期间,主控制可以以适当的间隔为每个装置施动者提取控制信号且给每个装置施动者提供单个控制信号。在选择性实施例中,主控制可为不同的装置施动者保持分开的单个控制信号文档和定时数据,并且同步与单个控制文档分开的不同的控制信号。
在另一个选择性实施例中,用于装置施动者的一部分的控制数据可由主控制传输到相关单个装置施动者内的存储器。在操作期间,在存储器内具有控制数据的装置施动者可接收表示全局时间线的位置、通过全局时间线的前进速度或二者的同步信号。
网络支持也可实现主控制10到一个或多个系统装置40的通信。在一个潜在实施例中,网络可包括根据IEEE1588操作的EtherCAT网络。在这样的实施例中,在每个从节点利用现场总线内存管理单元在线(on the fly)处理数据包。每个网络节点可读取给其选址的数据,而电报转发到下一个装置。类似地,在电报通过的同时可插入输入数据。电报可仅延时几个纳秒。在主机侧,适合商业化的标准网络接口卡或板载以太网控制器可用作硬件接口。利用这些接口,通过直接存储器存取传输到主控制的数据可在网络存取不占用CPU容量的情况下实现。EtherCAT协议采用以太帧内的官方分配的以太类型。该以太类型的使用可允许以太帧内的控制数据直接传输,而不重新定义标准的以太帧。帧可由几个子电报组成,其每一个服务逻辑处理图像的特定存储区域,其大小可达4千兆字节。以太网终端的寻址可为任何顺序,因为数据序列可独立于物理顺序。广播、多址通信和从装置之间的通信是可能的。
以太网帧中的直接传输可在EtherCAT部件在与主控制器的相同到子网中操作且控制软件直接访问以太网控制器的情况下使用。EtherCAT中的配线灵活性还可通过不同电缆的选择而最大化。灵活和偏移的标准以太网补丁电缆随意在以太网方式(100BASE-TX)或在E-Bus(LVDS)信号表示法中传输信号。塑料光纤(POF)可用在较长距离的具体应用中。以太网网络的完整宽带,例如不同的光纤和铜缆,可与开关或介质转换器结合使用。快速的以太网(100BASE-FX)或E-Bus可根据距离要求选择。
此外,这样的采用EtherCAT的实施例支持与分布时钟的精确对位同步的方法,如IEEE1588标准中所描述。与完全同步通信相反,在通信失败的情况下立即容忍同步质量,分布排列的时钟与通信系统内的可能的失败相关延迟具有高度的公差。因此,数据交换可根据“母”和“女”时钟在硬件中完全实现。每个时钟可简单且精确地确定其它时钟的运行时间偏离,因为通信利用逻辑和全双工通信以太网物理环形结构。分布的时钟可根据这样的值调整,这意味着抖动明显小于1毫秒的非常精确的网络范围时基是合适的。
然而,高解析度分布时钟不仅用于同步,而且可能提供关于数据采集的当地时间的精确信息。例如,控制频繁地计算来自顺次测量位置的速度。特别是非常短的采样时间,甚至位移测量中的非常小的暂时抖动也可导致速度上的很大步进变化。在包括EtherCAT的实施例中,可引入EtherCAT扩展数据类型(时间戳数据类型、重复采样数据类型)。当地时间可以以达到10ns的解析度链接到测量值,这可由以太网提供的大宽带实现。速度计算的精度于是可不再取决于通信系统的抖动。
此外,在网络包括EtherCAT的实施例中,热连接功能使网络的部分能够“在线”链接和去耦或再配置。很多应用要求操作期间I/O配置上的变化。EtherCAT系统的协议结构可计算这些变化的配置。
在进一步示例中,安全系统90可提供为在对施动者通过全局时间线的运动建模中检测装置施动者之间的潜在冲突的预防安全。此外,这样的通过全局时间线的建模可用于为安全系统90设定安全参数。装置施动者通过全局时间线的位置和速度的建模能识别物理工作单元的区域中的不安全区域和不安全时间。这样的识别可用于设定物体检测器的感测触发器,物体检测器是示例性安全系统的一部分。例如,如果某一装置施动者的5英尺内的区域确定为冲突风险,并且另外10英尺的缓冲区域要求在操作中保证安全,则LIDAR检测器可配置为在操作期间检测装置施动者的15英尺区域内的不希望的物体和运动,并且如果检测到物体,则自动创建安全性关闭。在选择性实施例中,LIDAR检测器可配置为,如果在危险区域的周边检测到物体,则创建报警信号,并且如果检测到的物体朝着潜在的冲突区域移动,则仅创建关闭。
在交替实施例中,安全系统90可包括施动者的建模和限定安全区域的模型。软件控制中的施动者的运动分析可允许建模的安全检查看到,任何的施动者是否与限定的安全区域冲突。在某些实施例中,安全区域可通过将固定体积的空间输入软件控制中,通过物理工作单元的图像采集而限定。安全区域也可限定为根据安全区域中物体的检测的运动、抖动、速度或加速度而变化。在可替代实施例中,安全区域可通过从应答器装置数据输入而限定。例如,应答器定位装置可连接到机器人装置施动者,并且安全区域由距应答器的距离限定。应答器可给软件控制提供位置数据,这可更新软件控制内或主机安全控制内的安全区域。在另一个实施例中,固定的安全区域可限定在软件控制内,并且在构建过程的操作前的主机安全控制内的安全PLC前发布。
在某些实施例中,系统装置40可另外包括一个或多个传感器46和48,例如激光基、红外或计算机视觉基传感器。主控制10可在从位于物理工作单元内的一个或多个不同类型的传感器中流转数据。例如,来自传感器的数据可反映物理工作单元内的部件和/或材料的尺寸或其它特性,以及部件和/或材料当前如何定位在现实世界内。该数据然后可流转出来到环境内的一个或多个机器人装置施动者42和44以控制机器人动作,例如精确地限定拾取点或调整施加到特定材料的压力以避免损坏材料。
在进一步示例中,机器人装置施动者42、44可配置为操作加工中所用的一个或多个工具,例如,心轴、钳子、钻、剪钳或烙铁。在某些实施例中,机器人装置施动者42、44可在构建过程期间采用工具架和/或自动工具更换装置50在一个或多个工具之间转换。例如,主控制10可包含编程逻辑以便使来自工具架50的工具的选择和配备自动化。在其它示例中,引起机器人装置施动者42、44之一利用工具架/工具更换装置50更换工具的指示也可或替代地来自独立手动控制28。
III.示例性系统装置
现在参见图2A-2C和3A-C,将描述系统装置40的几个非限制性示例,包括机器人装置施动者42、44和工具架/工具更换装置50。尽管这些图聚焦在机器人手臂的使用上,但是在某些示例中可以使用或可以替代使用其它类型的装置施动者42、44或系统装置40。
图2A示出了根据示例性实施例的机器人装置施动者。特别是,机器人装置施动者200可包括机器人手臂202,其末端执行器204能够配备有一个或多个不同的工具。机器人手臂202可沿着六个自由度运动,如图2a所示的A1-A6。在特定的示例中,机器人装置施动者200还能沿着一个或多个轴A0运动,例如沿着没有示出的轨道,这允许边到边运动。在特定的实施例中,可给出指示以定位末端执行器204在具体位置,并且机器人手臂204沿着A1-A6的位置和/或机器人装置施动者200沿着一个或多个轴A0的位置可由相关制造控制系统的过程计算。在选择性实施例中,机器人装置施动者200和/或机器人手臂202的位置控制可要求分开、单个设定和控制指令。在某些示例中也可以使用或替代地使用以几个自由度操作的机器人装置。
图2B示出了配备有钳子206的机器人装置施动者200。特别是,钳子206可设置在机器人手臂202的末端执行器204。钳子206在构建过程期间可用于各种功能,例如拾取物体或部件,移动物体或部件、保持物体或部件,和/或设置物体或部件。可采用各种不同类型的钳子,例如真空钳子、翻转钳子或被动定心钳子。另外,可采用具有不同尺寸或其它特性的钳子,以能与物理工作单元内的不同类型的机器人施动者一致。
图2C示出了配备有心轴208的机器人装置施动者200。心轴208可包括在构建过程内各种功能所用的旋转轴,各种功能例如为切割材料、成型材料、研磨或布线。心轴208可为各种不同的类型,例如,研磨心轴、电心轴、低速心轴或高速心轴。另外,可采用具有不同尺寸或其它特性的心轴,取决于物理工作单元内的不同类型的机器人施动者。在某些实施例中,其它类型的工具也可由机器人装置施动者使用或由其替代。
图3A示出了根据示例性实施例的工具架。工具架可包含很多的不同制造工具(例如,心轴或钳子),并且可与自动工具更换装置一起使用以便机器人装置被配备有特定工具以在物理工作单元内使用。在某些实施例中,工具架可包含沿着轨道300设置的几个工具架模块302、304、306、308,工具架模块302、304、306、308的每一个包含一个或多个特定工具。在某些实施例中,工具架模块302、304、306、308的一个或多个可沿着轨道300移动。在进一步示例中,工具架模块可与从模块接口,这允许特定工具从工具架模块选择且然后配备在机器人装置上。例如,参见图3A,工具架模块302可与从模块310接口,并且工具架模块306可与从模块312接口。
为了便利工具更换,工具架模块可配备有内置安全传感器以最小化意外的工具取出和放下指令。另外,工具更换从模块可包括IO接线盒以简化通过IO触发器信号来控制工具。在某些实施例中,IO断接箱子可与时间控制系统接口,时间控制系统例如为关于图1描述的主控制10,其控制物理工作单元内的机器人装置。主控制10可用于指挥特定机器人装置的工具更换,这可在运行期间采用软件控制26和/或由独立手动控制28事先配置。
图3B示出了根据示例性实施例的用工具配备机器人装置的工具架的使用。特别是,第一机器人装置314移动其末端执行器316到与工具架的工具架模块302接口的从模块310之上的位置。例如,机器人装置314可通常配备有钳子318,并且可控制为移动到工具架以便将钳子318放置在工具架中且配备由工具架模块302保持的不同工具。另外,第二机器人装置320可已经将其末端执行器322定位在从模块312上以便配备已经由从模块312保持的心轴324。在配备心轴324后,机器人装置320然后可处理以远离工具架移动且采用心轴324完成操作。工具架模块可定位在工具架上,从而多个机器人装置可同时配备或更换工具。在某些实施例中,附加的支架模块304、308可包含附加工具,该附加工具可由一个或多个机器人装置配备。
在进一步示例中,可采用来自控制系统,例如关于图1描述的主控制10的指示以便指示机器人装置如何在运行期间配备工具(例如,确定工具在工具架内何处且实时解决末端执行器问题,以便定位末端执行器在从模块之上而使机器人装置拾取工具)。在另外的示例中,驱动系统(例如,用于供电驱动心轴的VFD)可安装在物理工作单元内的分开固定的位置,以便在工具更换装置系统上供电。
IV.示例性图形界面
图4A示出了根据示例性实施例的包含3D模型的图形界面。如所示,图形界面400可包括输入窗口402,输入窗口402可允许用户输入与输出产品406相关的参数,输出产品406例如为采用单个棍子构建的墙。输入窗口402可允许用户输入参数404,参数404可涉及输出产品的各方面,包括尺寸、密度、曲率特性、其它几何特性、所用材料和/或其它数值输入。输入可用于得出用于输出产品406的参数方案。另外,输入可用于在图形界面400的显示窗口408内产生输出产品406的草图。
图4B示出了根据示例性实施例的基于不同用户输入参数的三个不同输出产品。图形界面440的第一示意图可包含输入窗口402和显示窗口408。输入窗口402可允许用户输入与所希望输出产品相关的参数404,包括产品尺寸、密度、曲线偏移、曲率量或类型和/或其它几何或数字输入。根据输入参数404,输出产品406的几何表示可显示在显示窗口408内。在某些实施例中,用户可修改单个参数404以便改变输出产品406的各方面。
例如,图形界面450的第二示意图根据输入窗口402内的不同输入参数404在显示窗口408示出了不同的输出产品406。在该示例中,输出产品406的尺寸和/或生产输出产品406所用的材料可修改为生产具有更大高度的输出产品406,如第二示意图450所示。此外,第三示意图460根据输入窗口402内的不同输入参数404在显示窗口408内示出了另一个不同的输出产品406。例如,输出产品的与曲率相关的参数可由用户修改,以便生产另一个不同的输出产品406,如第三示意图460所示。
图5示出了根据示例性实施例的用于建造机器人构建过程的图形界面。例如,图形界面可为如上面关于图1描述的软件控制26的部分。如所示,图形界面500可包含允许用户控制构建过程各方面的输入窗口502,包括建造期间所用的与机器人施动者、工具、运动路径和工具操作相关的节点。图形界面500可另外包含显示窗口510,显示窗口510包含物理工作单元的3D几何图,包括诸如机器人施动者、工具、材料和/或建造的输出产品的部件。在示例性实施例中,输入窗口502可提供视觉编程界面或可允许用户输入参数的不同类型的界面,输入的参数描述所希望的输出产品和/或关于施动者和工具在构建过程中使用的信息。采用输入窗口502采集的输入数据可用于控制显示窗口510内显示的物理工作单元的几何形状和/或其它方面。
在一个示例中,用户可采用输入窗口502输入控制构建过程的参数,输入窗口502包含视觉编程界面,例如采用视觉编程语言构建的界面,例如称为Grasshopper的商业软件程序。界面可允许用户包括一个或多个节点504,节点504可表示构建过程的部件,例如表示机器人的不同类型和/或配置的机器人节点、如表示工具的不同类型和/或配置的工具节点、表示可用IO的类型的IO节点、表示机器人施动者运动的可能轨道的轨道节点、以及用于确定机器人施动者的运动命令和其它类型命令的命令节点。
如图5的窗口502内所示,单个节点504可采用连接器506连接在一起。两个节点之间的连接器506可表示第一节点的输出用作第二节点的输入。例如,单一机器人节点可从几个不同的部件节点接收输入信息,几个不同的部件节点例如为表示机器人类型、机器人所用工具类型、机器人可沿其行进的轨道等节点。
在进一步示例中,图5的窗口502可包含时间线508。时间线508可具有表示当前时间戳(例如,图中所示的83)的指针,时间戳可表示制造过程的特定时间点。另外,时间线508可包含以特定速度执行构建过程或者快速行进或返回构建过程的按钮。时间线508可用于控制在显示窗口510内显示物理工作单元的几何形状和/或其它方面的时间点。此外,时间线508可用于表示用于模拟构建过程或在软件内可视化物理世界内发生的实际物理构建过程任何一个目的的特定时间点。
如图5所示,用户界面可另外包含显示窗口510,显示窗口510可根据来自输入窗口502的输入显示物理工作单元的几何形状和/或其它方面。例如,除了别的之外,显示窗口510可包括与机器人施动者、工具、构件材料、机器人运动路径和输出产品相关的几何形状。在一个示例中,显示窗口510可采用诸如Rhinoceros的商业3D建模软件设计,如图5所示。显示窗口510可显示特定物理工作单元512的几何形状。显示窗口510可包括选项以改变物理工作单元512的透视图和/或物理工作单元512的缩小或放大图。
物理工作单元512可包括一个或多个机器人施动者514。机器人施动者514可为如上面有关图1描述的装置施动者42和/或44和/或如有关图2A-2C描述的机器人装置200。对不同类型和/或来自不同制造者的多轴机器人系统的很多不同类型可提供支持。在某些实施例中,机器人施动者514的一个或多个可为传统的六轴机器人。在另外的示例中,另外或替代,可配置为沿着更少或更多轴操作的其它类型的机器人可包括在物理工作单元512内使用。
在进一步示例中,机器人施动者可在软件界面内表示为机器人节点,机器人节点可与很多可互换的部件节点放在一起,包括表示不同商业机器人的制造和模型的机器人节点、表示诸如钳子、心轴的可用于加工的不同类型物理工具的工具节点、表示可用于与机器人施动者通信的不同类型IO的IO节点、以及表示机器人可沿其移动的不同类型轴的轨道节点。在某些实施例中,单个工具和/或工具参数(例如腕部安装偏移或工具中心点)也可抽象在可由用户装配在复合工具中的部件中。
显示窗口510可另外包含表示单个机器人施动者514的运动路径的一个或多个运动路径516。运动路径516可表示机器人施动者514在构建过程期间要采取的路径,例如拾取材料且将其连接到正建造的物体。在某些实施例中,运动路径516还可表示将发生特定输入或输出动作的点。例如,运动路径516上的“x”可表示机器人施动者514使用诸如钳子的工具拾取特定类型材料的点。在进一步示例中,运动路径516可与来自输入窗口502的时间线508同步。因此,在某些实施例中,根据由时间线508表示的时间戳,可使得机器人施动者514可沿着运动路径516移动到特定时间点的位置。
物理工作单元512可另外包含在构建过程期间使用的一个或多个材料518。在该简化的示例中,材料518由用于构建墙520的辊子组成。可确定机器人施动者514要采取的运动路径516以便将单个棍子518移动到墙520上。在其它示例中,各种不同类型的材料,包括诸如胶水的连接材料,可由机器人施动者同时使用来构建更加复杂的输出产品。
在进一步示例中,物理工作单元512也可包含在构件过程中可用的图5中没有示出的其它部件。例如,可包括一个或多个传感器以感测有关物理工作单元中的机器人施动者和/或材料的信息,以便影响机器人施动者采取的运动路径。例如,扭矩传感器可用于确定是否特定一件的材料可能在应力下断裂。控制系统,例如上面关于图1描述的主控制10,可用于与物理工作单元内的机器人施动者和/或传感器接口。
在某些实施例中,显示窗口510可给用户提供物理工作单元的多个3D视图,并且可允许用户改变特定视图的方位和/或缩放。在其它示例中,显示窗口510也可或替代呈现物理工作单元的其它类型的表达,例如数字表达。
V.示例性系统工作流
在某些实施例中,输入窗口可另外包含工具栏,工具栏包含控制构建过程各方面的数字工具。图6A示出了根据示例性实施例的用于图形界面的工具栏。工具栏602可配备有各种不同的工具箱604,工具箱604可用于在图形界面的输入窗口内设计或控制构建过程。工具箱604可提供有数字工具,例如,该数字工具涉及产生机器人运动路径、不同平面或轴之间的变换、描述机器人施动者、描述物理构建工具、排序单个机器人运动、从机器人施动者输入和/或输出到机器人施动者的数据通信、虚拟软件环境和物理工作单元之间的映射、和/或实现构建过程的可视化。
图6B示出了根据示例性实施例的工具栏内数字工具的机构。如所示,数字工具可分成很多不同的种类。数字工具然后可结合使用以设计构建过程,如图6C所示。图6C是根据示例性实施例的示例性工作流的方块图。特别是,图6C示出了涉及很多数字工具的工作流,数字工具在如图6A和图6B所示的工具栏内或者由图形界面内的其它手段可访问。如所示,数字工具可分成很多不同的种类。来自很多不同种类的一个或多个数字工具可由用户选择以影响构建过程的特定方面,包括过程中可用的在物理工作单元内的机器人施动者和其它部件。
在一个示例中,工具栏可包括路径工具608,涉及产生可用于确定机器人施动者的运动路径的目标平面。在某些实施例中,路径工具608可看作描述所希望输出产品的输入几何图形606,例如由参数建模软件Grasshopper产生的几何图形。例如,输出产品的几何图形606可根据输入窗口内规定输出几何图形各方面的用户输入而产生,包括尺寸、密度、曲率和材料等。路径工具608然后可根据输出产品的几何图形606确定用于机器人运动路径的目标平面。
在某些实施例中,输出产品的几何图形606可包括特定的样条、表面和/或输出产品内要包括的其它几何构造。路径工具608然后可提供快捷键,用于产生在格式上与输出产品各方面相关的目标平面,可转换成特定的机器人轨迹,该轨迹可用于加工包含目标平面的输出产品。例如,除了工具定义和材料特性外,用于单个机器人施动者的运动路径然后可作为目标平面的函数得出。
在进一步示例中,工具栏可包括涉及不同轴帧或偏移之间转换的转换工具610,如图6B和图6C所示。例如,转换工具610可提供在特定机器人的基础或关节以及包含输出产品的阶段处的坐标帧之间的转换。在其它示例中,转换工具610也可另外允许在不同基准帧内操作的多个机器人之间的转换。如图6C所示,转换可在确定单个机器人施动者的运动序列之前和/或之后进行。
在进一步示例中,工具栏可包括表示物理工作单元各方面,例如机器人施动者、工具、IO和/或轴的阶段工具612。在某些实施例中,阶段工具612也可提供软件中的虚拟机器人和物理工作单元内的物理机器人施动者之间的映射,如图6B和图6C所示。阶段工具612可由引擎节点624使用以根据自命令工具622向控制系统628的输出发送机器人施动者采用的轨迹。在某些实施例中,阶段节点612可配置为规定特定物理工作单元内的当前可用的机器人装置和/或工具。控制系统626然后可根据来自阶段工具612的信息命令物理世界630内的机器人施动者和/或其它部件。
在某些实施例中,阶段工具612可采取来自一个或多个机器人节点614表示物理工作单元内单个机器人施动者的属性的输入,如图6B和图6C所示。机器人节点614可用于限定机器人施动者的属性,例如传统的六轴机器人或其它类型的机器人。例如,机器人属性可包括机器人的连杆长度和/或机器人的臂长、机器人的偏移量和/或机器人的关节、和/或机器人关节可处理的机器人关节运动或最大扭矩上的限制。
在另外的示例中,阶段工具612也可采取来自用于限定物理构建工具的属性一个或多个工具节点616和/或用于保持工具的工具架的输入,如图6B和图6C所示。例如,诸如钳子或心轴的构建工具的属性可由工具节点规定,可用于配置自动工具更换装置,从而机器人施动者可容易在工具之间切换。在某些实施例中,机器人施动者可采用保存工具且便利工具更换过程的工具架在工具之间切换,如上面有关图3A和3B所描述。
在进一步示例中,工具节点616可包括用于混合加工的支持,可允许部件工具装配成复合工具。特别是,单个的加工参数(例如,腕部安装偏移量或工具中心点)可抽象成装配在复合工具中的部件。例如,多个工具可聚集成一个复合工具,其具有多个工具定向和/或中心点,可根据在特定时间需要哪个工具的部件而使用。例如,具有自动工具更换装置的复合工具可由主机界面加多个不同附属装置表示,附属装置例如为心轴、真空阵列或钳子。在另一个示例中,复合工具可包括一系列不同的工具,例如钳子加张紧器加辊。通过将加工抽象成限定工具方位和/或中心点的参数结合多个工具和/或结合工具的其它示例也是可能的。
在进一步示例中,阶段工具612也可采取来自一个或多个IO节点618的输入。IO节点618可描述有关机器人施动者可采取的数字和/或模拟输入和/或输出动作的信息,例如动作的类型(例如,夹紧材料)和与动作相关的属性(例如,可夹紧的材料宽度)。在另外的示例中,机器人属性可包括一个或多个轴节点620。轴节点620可描述机器人沿其能行进的一个或多个线性和/或旋转轴,包括机器人沿着轴运动上的限制。
在另外的示例中,工具栏可包括命令工具622,如图6B和6C所示。命令工具622可用于确定机器人命令以引起一个或多个机器人施动者执行特定操作,其可包括点到点运动、沿着外部轴的运动和/或输入或输出事件。例如,命令工具622之一可用于指挥沿着六个自由度之一的特定机器人运动、沿着外部轴的特定机器人运动或特定的输入或输出事件,例如以特定的方式给材料施加胶水。另外,命令工具622可包括产生步骤节点,以指示机器人施动者采取特定序列运动步骤且执行一个或多个工具动作。在进一步示例中,对于单一时间帧内的多个机器人施动者一起工作可产生协调的运动序列。
在某些实施例中,步骤节点,或运动和动作的序列可抽象成可重复用的子程序。例如,子程序可通过连接视觉构建方块来限定,可表示特定的运动命令或运动参数。子程序然后可用于使一个或多个机器人在单一构建过程内执行相同的动作序列多次。在某些实施例中,步骤可在多个机器人之间同步,从而多个机器人可同时在共享环境中工作。示例性系统也可包括引擎节点624,其可将步骤的每一个分配到阶段内的特定机器人装置。
在进一步示例中,用户可提供有在图形界面内的步骤之间切换的功能性。例如,如关于图5所示和所述的时间线508也可包括在时间线上的步骤之间跳过的按钮。在某些实施例中,对于特别步骤,用户可插入数字书签。例如,通过图形界面,可从“取棍”步骤开始跳到“钉棍”步骤开始。时间线内的这些书签步骤可通过在步骤节点输入运动命令、IO命令和/或其它命令匹配用户创作步骤。
另外,引擎节点624可与控制系统626通信。控制系统626可为计算装置,其能与物理世界630中的物理工作单元内的机器人施动者和/或诸如传感器的其它部件无线通信。特别是,控制系统626可提供对来自所有机器人施动者和装置的实时数据流的访问,这可允许特定时间点的物理工作单元上的精确控制。控制系统也可或替代通过有线连接或其它类型通信通道与施动者或装置的某些或全部通信,包括前面描述的网络协议。
在某些实施例中,控制系统可另外包含诸如触摸屏界面的物理控制界面,可允许用户与控制系统相互作用来观看活数据或实时修改机器人动作。例如,包含有关包括设定在控制系统626上的施动者、工具、材料和环境的物理工作单元信息的阶段文档可通过编程界面访问。观看物理世界630内构建过程的用户然后可在完成前进行过程修改。
在另外的示例中,工具栏可包括数据输入/输出工具628,其可允许控制系统626发送数据到确定机器人运动路径的虚拟软件环境和/或从确定机器人运动路径的虚拟软件环境接收数据,如图6B和图6C所示。因此,来自控制系统626的遥感装置可用于创建在软件中的虚拟世界和物理世界630之间的活链接。例如,数据输入/输出工具628可用于处理来自控制系统626的与物理工作单元中的机器人施动者和/或工作单元内的其它部件内,如传感器相关的信息。根据这样有关物理世界630的信息,软件内的虚拟机器人可用来自物理世界630的实时反馈更新(例如,机器人施动者的运动路径可根据实时传感器数据确定或修改)。
另外,例如,数据输入/输出工具628可用于发送数据返回到控制系统626,从而控制系统626可完成物理世界630内的特定输入或输出动作。例如,控制系统626可根据来自软件界面内的一个或多个数字工具的信息指示机器人施动者如何使用物理世界630中的工具(例如,如何控制心轴)。
在进一步示例中,引擎节点624包括观察仪或模拟工具,可允许用户通过软件中的用户界面模拟构建过程,如图6B何图6C所示。在某些实施例中,观察仪工具可将构建过程显示为显示物理工作单元的屏幕上绘制的几何图形。在其它示例中,观察仪工具也可或替代地将构建过程显示为表示特定数据值的曲线。另外,在进一步示例中,观察仪工具也可用于随着构建过程在物理世界630内实际发生而观察软件中的构建过程。在某些实施例中,观察仪工具可另外提供特定构建过程内的潜在冲突的图形表征,例如在机器人的运动路径延伸在其可能运动的范围外时或者两个机器人施动者根据当前限定的轨道和/或步骤序列可能发生冲突时。
在进一步示例中,观察仪部件可允许用户事先和/或在构建发生时看到构建过程的模拟。在某些实施例中,用户可离线采用观察仪部件,以看到机器人的运动路径以及一些列连续步骤上的输入/输出事件,作为可视窗口内绘制的几何图形。在其它示例中,除了或替代可视几何图形,用户能够观察模拟回放,作为与通过曲线表示的物理工作单元的机器人施动者、材料和/或其它方面相关的数字数据流。在进一步示例中,用户也能够看到单个时间步的特定数据点,例如机器人关节值、轴线值或输入/输出值。
在某些示例性系统中,用户也能够采用观察仪部件实时观察物理世界中发生的构建过程。该系统可与从传感器接收实时数据流的控制系统接口,传感器可用于在输出产品构建时扫描在构造中所用的物理工作单元、单个机器人施动者和/或部分。因此,观察仪的用户界面可实时更新以反映环境内的物体和施动者的现实世界尺寸、特性和/或位置。
VI.示例性方法
根据示例性实施例的方法700提供为指示机器人装置在工作单元内以时基模式操作。在某些实施例中,方法700可由控制系统执行,例如参考图1描述的制造控制系统100、主控制10和/或软件控制26。控制系统可采用前面描述的任何网络协议或通信方法与机器人施动者通信。在另外的示例中,方法700的部分或全部可由相对于图4A-4B、5和6A-6C所述和所示的任何图形界面或系统执行。在进一步示例中,方法700的部分或全部可由一个或多个机器人装置执行,例如参考图1描述的系统装置40内的装置施动者42、44或参考图2A-2C示出和描述的装置施动者200。另外,在描述具有特定数量和类型的系统装置的示例时,各种选择性实施例也可包括任何数量和类型的机器人装置。
此外,应注意,根据这里描述的流程的功能性可实施为具体的功能和/或配置通常功能的硬件模块、为了实现参考图7所示流程描述的具体逻辑功能、确定和/或步骤由处理器执行的程序代码的部分。如果使用,程序代码可保存在任何类型的计算机可读介质上,例如,包括磁盘或硬盘驱动器的存储装置。
另外,图7所示流程图的每个方块可表示在过程中配线为执行具体逻辑功能的电路。除非具体指出,图7所示的流程图中的功能可执行在所示或所讨论的序列之外,包括基本上同时执行分开描述的功能或者甚至与在某些实施例中的序列相反,取决于所涉及的功能性,只要保持所描述方法的总体功能性。
如图7的方块702所示,方法700可包括接收用于多个机器人装置的有序的操作序列。特别是,有序的操作序列可为工作单元内的每个机器人施动者确定。用于特定机器人的有序的操作序列可包括用于机器人的末端执行器运动通过的目标位置序列。在某些示例中,其它类型的操作可散步在引起机器人在目标位置之间移动的运动指令之间。例如,可为机器人限定工具动作以在制造过程期间激活其运动路径内的特定点上的物理工具。
在某些示例中,用于机器人装置的有序的操作序列可由软件创建环境产生,例如如参考图1描述的软件控制26。特别是,用户可使用软件界面限定用于一个或多个机器人的操作序列以共同完成制造或加工过程。例如,运动路径和工具动作可限定为用于工作单元内的两个或三个或四个机器人施动者以便加工物理输出产品。在进一步示例中,用于一个或多个机器人装置的操作序列可事先限定且保存在存储器或计算机可读介质内。在某些示例中,用于不同机器人装置实现制造过程的不同部分的操作序列可在不同的时间创建,并且然后在后面的时间结合以用于同时执行。
图8A示出了根据示例性实施例的序列机器人操作的示例。更具体而言,机器人施动者802示出在用于制造过程的工作单元内。机器人施动者802可为任何前述类型的机器人装置。这里,机器人施动者802配备有钳子804,但是其它类型的工具也可或替代由机器人施动者802使用。操作序列可提供为用于机器人施动者802从棍子堆806拾取棍子,并且将棍子放在处于构造下的棍子墙808上。应理解,这里所示的情景为图示的目的,并且可替代地使用任何数量的其它不同类型的材料和输出产品。
用于机器人施动者802的操作序列可包括用于机器人施动者802移动通过(或移动钳子804通过)的目标位置序列810、812、814。目标位置810、812、814可为工作单元内的平移和旋转位置(例如,具有6个自由度)。在某些示例中,较少的自由度可用于特定的机器人施动者,这取决于机器人施动者的运动能力。在进一步示例中,在以有序模式操作时,机器人施动者802可缺省以直线在连续目标位置之间移动。例如,机器人施动者802可跟随路径816在目标位置810和目标位置812之间运动,并且然后可跟随路径818在目标位置812和目标位置814之间移动。在另外的示例中,工具动作可包括在用于机器人施动者802的操作序列内。例如,激活钳子804在目标位置812拾取棍子的工具动作和松开钳子804在目标位置814放下棍子的第二工具动作可包括在用于机器人施动者802的操作序列内。
在进一步示例中,限定机器人施动者的运动路径的目标位置数可在不同的操作序列内变化。例如,在某些示例中,另外的目标位置可提供为进一步改善路径816和路径818。在某些示例中,不同的间隔尺寸也可用于工作单元内机器人施动者的不同操作序列,这有可能取决于分配给每个机器人施动者的任务类型。
方法700可另外包括确定用于机器人装置的每一个的时基操作序列,如方块704所示。更具体而言,用于特定机器人装置的时基操作序列可表示在全局时间线的对应时间步上的机器人装置和/或机器人装置的末端执行器的位置。时基操作序列内的位置可包括来自在方块702接收的用于对应机器人装置有序的操作序列的目标位置。在某些示例中,其它类型的机器人操作也可包括在来自对应接收的操作序列的时基操作序列内。例如,如果操作序列引起机器人装置采用工具实现构造过程的部分,则时基操作序列也可另外包含用于机器人装置的工具动作以在全局时间线的特定时间步激活工具。
在进一步示例中,特定时间间隔可分开时基操作序列的每一个中的连续时间步。例如,用于工作单元内的机器人装置的每一个的位置可在每个时间步确定(例如,每12毫秒)。在某些示例中,所用的间隔可取决于控制系统的通信或网络容量,例如关于图1描述的主控制10,和/或系统装置40或对应装置控制器的计算能力。在进一步示例中,诸如主控制10的控制系统可用于给机器人装置上的控制器提供指令以在每个时间步定位机器人装置。在某些示例中,可采用10毫秒和20毫秒之间的时间间隔。在不同的示例中,其它的时间间隔也可使用。
图8B示出了根据示例性实施例的时间基机器人操作的示例。更具体而言,包括目标位置810、812和814的操作序列可用于确定用于机器人施动者802的时基操作序列以移动钳子804通过。运动路径820和运动路径822上的虚线可表示钳子804(或者机器人施动者802的末端执行器)沿着全局时间线在时间步上的位置。例如,如果采用12毫秒的时间间隔确定用于机器人施动者802的时基操作序列,则沿着运动路径820和运动路径822的连续虚线可表示在全局时间线的特定12毫秒期间钳子804的位置改变。
在某些示例中,用于机器人装置的另外位置可插入来自接收的操作序列的目标位置之间的时基操作序列中。例如,用于机器人施动者的在方块702中接收的特定操作序列可仅包含机器人施动者每秒或每十秒或每分钟能达到的位置。然而,用于确定时基操作序列的时间间隔(例如,10毫秒或20毫秒或100毫秒)可允许限定更多的位置,其可允许更加精确的机器人运动控制。在进一步示例中,不同的时间间隔也可用于不同的机器人装置,有可能取决于不同装置的硬件或控制器的能力。
再一次参见图8B,位置可沿着运动路径820插入在目标位置810和812之间用于机器人施动者802的时基操作序列内。在某些示例中,位置可选择为最小化机器人施动者802从目标位置810运动到目标位置812所花费的时间量。例如,每个时间步上的位置可通过求解优化问题来求解以最小化总时间使用。在进一步示例中,机器人施动者802沿着运动路径820的速度和/或加速度曲线也可或替代在确定用于机器人施动者的时基操作序列中优化。例如,相对于全局时间线的最大速度曲线可努力为用于每个机器人施动者确定以最小化制造过程期间的总时间使用。例如,在图8B中,钳子804的速度可在目标之间最大化,并且随着接近目标位置而减小,以便将钳子804在目标位置停止。
在另外的示例中,位置可确定以最小化机器人施动者802从目标位置810运动到目标位置812所用的功率量。例如,流体的运动曲线可用于替代刚性点到点运动以减小能耗。在进一步示例中,流体的运动曲线也可用于引起机器人装置更加精确地模拟物理现象。例如,控制为复制直升机飞行或过山车或各种不同材料制作的表面的碰撞力以便测试特定物体性能的机器人装置可全部有助于轨迹的更加精确的时基描述。
方法700可另外包括确定由并行执行导致的一个或多个潜在冲突,如方块706所示。更具体而言,用于工作单元内两个或更多机器人装置的时基操作序列可同步到公用时钟。机器人装置在沿着全局时间线的时间步上的位置可用于确定何时在机器人装置之间导致冲突。可能的冲突可包括涉及两个机器人装置自身的冲突、涉及由机器人装置所用的一个或多个工具的冲突、和/或涉及由一个或多个机器人装置移动或一个或多个机器上装置在其上操作的材料或产品的冲突。通过采用机器人装置的每一个沿着全局时间线的连续位置之间较小的时间间隔,可以以更大的信心实现冲突检测。
在进一步示例中,一个或多个可能的冲突可在机器人装置的并行操作期间确定。例如,由于来自制造操作的校准错误或不希望的效果,工作单元内的机器人装置和/或其它部件的精确位置可能在制造过程开始之前不知道。在这样的示例中,某些可能的冲突可在线(on the fly)识别且避免。在进一步示例中,用于机器人装置的时基操作序列可阶段性确定,某些操作在执行期间确定。例如,操作序列可用于确定用于机器人的时基操作序列以在全局时间线的第一个五分钟执行。然后,在执行某些或全部操作后,可确定另一个五分钟的操作块。在某些示例中,确定操作序列和/或预定的冲突也可在其它时间或以其它的组合方式执行
图8C示出了根据示例性实施例的并行操作的两个机器人装置的运动路径。更具体而言,时基操作序列可确定为用于机器人施动者802和机器人施动者824以在工作单元内并行执行。机器人施动者802可配备有钳子804,并且机器人施动者824可配备有心轴826用于在制造过程期间使用。运动路径820和822可为用于机器人施动者802确定,以便引起机器人施动者802移动其钳子804从棍子堆806拾取棍子且然后将棍子放在棍子墙808上。另外,运动路径834可为用于机器人施动者824确定,以同时移动其心轴826从第一目标位置830到位于材料箱828的第二目标位置832。例如,机器人施动者824可分配为从螺钉箱828拾取螺钉,以便将螺钉插入棍子墙808上的棍子中。
用于机器人施动者802的运动路径820、822和用于机器人施动者824的运动路径834可同步到公用时钟。更具体而言,用于每个机器人施动者的沿着运动路径的虚线可表示机器人在沿着全局时间线的时间步上的位置。通过比较每个机器人施动者在特定时间步上的位置,可预知机器人施动者之间的可能的冲突。例如,机器人施动者802和机器人施动者824之间的可能冲突可在836预知。在某些示例中,可能的冲突可包括机器人装置来到彼此之间的距离小于预定的安全缓冲器的点。例如,安全缓冲器可用于避免由校准和/或命令的机器人位置上的不精确导致的冲突。
方法700可另外包括修改时基操作序列的至少一个以便防止识别的冲突,如方块708所示。更具体而言,时基操作序列可通过修改对应于特定操作的时间步和/或通过插入、去除或修改序列内的特定操作而修改。在某些示例中,时基操作序列可努力修改以最小化完成制造过程所需的总时间或者由保证并行执行期间不产生冲突导致的附加时间量。在进一步示例中,另外或替代地,修改可确定以最小化其它源(例如,能源或电源)的使用。
在某些示例中,一个或多个机器人装置的操作速度可修改以便避免冲突。例如,参见图8D,机器人施动者802的操作速度可在从目标位置812到814的运动中减慢。特别是,在连续时间戳之间钳子804的位置之间的距离可减小,如沿着运动路径822的虚线之间缩短的距离所表示。机器人施动者802可减慢以便保证机器人施动者824成功从目标位置830穿行至832而不与机器人施动者802冲突。
在进一步示例中,机器人施动者可控制为在沿着全局时间线的不同点上以不同的速度操作。在某些示例中,表示机器人装置在沿着时间线的每个时间点上的运动或操作速度的相对于全局时间线的速度曲线可为每个机器人装置确定。另外,速度曲线可确定为在避免冲突的同时最大化装置的每一个操作的速度或速率。在其它示例中,速度和/或加速度曲线可确定以最大化所有装置并行操作时的结合的操作速度。例如,构造操作花费最长时间(并且因此限制完成整个过程的时间)的机器人施动者的速度曲线可在确定用于其它机器人施动者的速度曲线前最大化。
在进一步示例中,一个或多个操作可插入时基操作序列的一个或多个中以引起一个或多个机器人施动者沿着全局时间线保持位置持续特定的时间周期。特别是,替代或除了修改一个或多个机器人在一个或多个点的操作速度外,机器人可被命令,以保持位置持续全局时间线的特定子部分。参见图8E,机器人施动者802可被命令以保持特定点838处的位置持续一个或多个时间步以允许机器人施动者824通过。如图8E所示,机器人施动者802沿着运动路径820和822的操作速度可不如图8D那样修改,但是通过控制机器人施动者804在位置838处保持位置仍可避免冲突。在另外的示例中,引起机器人装置在时间和空间上的特定点保持位置的选项也可在确定用于机器人装置的位置、速度和/或加速度曲线时考虑以最小化时间使用和/或其它源的使用,如前面所述。
在进一步示例中,修改时基操作序列也可或替代包括修改时基序列的一个或多个中连续目标位置之间的一个或多个位置。例如,通过修改用于装置之一或二者的目标位置之间的运动路径,例如关于图8C描述的运动路径820、822和/或834,可避免在两个机器人装置之间的冲突。在进一步示例中,位置的修改可结合前述的任何时间修改而执行,以便防止冲突,同时有可能优化通过时间和/或其它源。
在另外的示例中,在方法700的方块处,为机器人装置接收的操作序列可包括一个或多个同步点。同步点可对应于用于每个机器人的操作序列内的操作,并且表示每个机器人必须在任何一个机器人被允许以继续执行操作前必须到达的点。诸如制造过程中所用的工业机器人的指示可通常包括同步点以保证没有冲突或其它类型的干涉因工作单元内的多个机器人同时操作而发生。在某些示例中,要求一个或多个机器人停止和等待其它机器人完成工作单元内的操作的同步点可导致效率低下。
在某些示例中,涉及多个机器人和同步点的过程,例如制造过程,在转换到时基模式时可更高效完成。特别是,通过沿着全局时间线在时间步上执行冲突检查,某些或全部同步点可忽视。机器人装置可允许连续操作而不是停止在同步点上,并且通过采用前述的任何一个方法修改时基操作序列可避免冲突。在某些示例中,通过求解优化问题以确定机器人装置的位置、速度和/或加速度曲线而不要求在任何机器人能够继续之前在同步点的严格握手(strict handshakes),可更高效(时间或不同的源上)避免冲突。
在进一步示例中,某些同步点可在转换到时基模式时保存起来。特别是,同步点的一个或多个可识别为时基模式中两个或更多机器人装置之间要求同步的锚定点。在某些示例中,锚定点可对应于为了避免冲突之外目的要求同步的同步点。在进一步示例中,锚定点可对应于两个或更多机器人装置被控制为在工作单元内的单一部件上操作的同步点。例如,在构造过程期间,第一机器人装置可分配为保持板,而第二机器人装置驱动钉子通过板。在这样的示例中,同步可保持以导致第一机器人装置继续保持板,直到第二机器人装置完成钉板。在进一步示例中,未识别为锚定点的其它的同步点可在转换到时基模式时忽视,允许时基操作序列通过那些点是流畅的且被优化,如前所讨论。
方法700可另外包括提供用于工作单元内的机器人装置并行执行修改的时基操作序列的指令,如方块710所示。特别是,修改为避免冲突的每个机器人装置的时基操作序列可同步到用于执行的单一全局时间线。在某些示例中,诸如关于图1描述的主控制10的控制系统可用于将时基指令序列推送到单个机器人装置的控制器上,以用于(例如,制造过程的)并行执行。
在进一步示例中,时基的指令序列可以块或阶段(例如,时间线的各点)被确定和/或被提供到机器人控制器。在再一个示例中,时基的指令序列可采用前述的任何网络或通信方法传输到机器人装置和/或用于机器人装置的控制器。在另外的示例中,时基操作序列的某些或全部可确定且保存(例如,到存储器或计算机可读介质)用于后面执行。在进一步示例中,机器人操作序列的仅某些部分可提供为用于时基并行执行,而其它部分替代地提供为用于顺次执行。
VII.结论
本公开并非在本申请中描述的特定实施例方面加以限制,其旨在作为各方面的说明。如本领域的技术人员所理解,可进行很多的修改和变化而不脱离其精神和范围。除了这里列举的外,本公开范围内的功能上等同的方法和设备将由本领域的技术人员从前面的描述明显易懂。这样的修改和变化旨在落入所附权利要求的范围内。
上面的详细说明参考附图描述了所公开系统、装置和方法的各种特征和功能。附图中,类似的附图标记典型地表示类似的部件,除非上下文另有表述。这里描述的和附图中的示例性实施例不意味着是限制。可利用其它的实施例,并且可进行其它的变化,而不脱离这里给出的主题事项的精神或范围。容易理解,本公开的各方面,如这里总体描述的和附图中示出的,可在广泛种类的不同配置中设置、替代、结合、分开和设计,其全部这里明确期待。
相对于附图中的且如这里所讨论的阶梯图、情境图和流程图的任何或全部,根据示例性实施例,每个方块和/或通信可表示信息的处理和/或信息的传输。选择性实施例包括在这些示例性实施例的范围内。在这些选择性实施例中,例如,描述为方块、传输、通信、要求、响应和/或消息的功能可在所示或所讨论的序列之外执行,包括基本上同时或相反的序列,取决于所涉及的功能性。此外,或多或少的方块和/或功能可用于这里讨论的阶梯图、情境图和流程图的任何一个,并且这些阶梯图、情境图和流程图可彼此、部分或全部结合。
表示信息处理的方块可对应于可配置为实现这里描述方法或技术的具体逻辑功能的电路。作为选择或另外,表示信息处理的方块可对应于模块、区段或程序代码的一部分(包括相关数据)。程序代码可包括由处理器可执行的一个或多个指令,该指令可由处理器执行,以用于实施方法或技术中的具体逻辑功能或动作。程序代码和/或相关数据可保存在任何类型的计算机可读介质上,例如存储装置,包括磁盘或硬盘驱动器或其它存储介质。
计算机可读介质也可包括非瞬态计算机可读介质,例如短时周期保存数据的计算机可读介质,如寄存器存储器、处理器缓存和随机存取存储器(RAM)。计算机可读介质也可包括长时间周期的保存程序代码和/或数据的非瞬态计算机可读介质,例如,只读存储器(ROM)、光盘或磁盘、光盘只读存储器(CD-ROM)。计算机可读介质也可为任何其它的易失性或非易失性存储系统。例如,计算机可读介质可看作计算机可读存储介质或实体存储装置。
而且,表示一个或多个信息传输的方块可对应于相同物理装置中的软件和/或硬件模块之间的信息传输。然而,其它的信息传输可在不同的物理装置中的软件模块和/或硬件模块之间。
图中所示的特定设置方案不应看作限制。应理解,其它的实施例可更多或更少地包括给定图中所示的每个元件。此外,某些所示的元件可结合或省略。再次,示例性实施例可包括图中没有示出的元件。
尽管这里已经公开了各方面和实施例,但是其它的方面和实施例对本领域的技术人员来说是显而易见的。这里公开的各方面和实施例是为了说明的目的而不意味着限制,其真实的范围和精神由所附权利要求指出。