掌桥专利:专业的专利平台
掌桥专利
首页

仿真机器人轨迹

文献发布时间:2023-06-19 11:09:54


仿真机器人轨迹

技术领域

本公开的一个方面涉及仿真系统、仿真方法、仿真程序、机器人制造方法和机器人系统。

背景技术

WO 2018/143003公开了一种机器人路径生成设备,其基于以数据集为基础的机器学习过程的结果,来生成在随意设定的起始点与结束点之间的机器人路径。

发明内容

在机器人控制规划中期望进一步的自动化。

根据本公开的方面的仿真系统包括:仿真单元,其配置为在布置有机器人和另一物体的虚拟空间上,虚拟地执行操作程序,该操作程序包括代表机器人的轨迹的路径;干涉检查单元,其配置为基于操作程序的执行结果来检查在机器人与另一物体之间是否存在干涉;和调整单元,其配置为响应于检测到该干涉而调整与对应于路径的至少一个示教点相关的参数。

根据本公开的方面的仿真方法是由包括至少一个处理器的仿真系统来执行的仿真方法。该仿真方法包括:在布置有机器人和另一物体的虚拟空间上,虚拟地执行操作程序,该操作程序包括代表机器人的轨迹的路径;基于操作程序的执行结果来检查在机器人与另一物体之间是否存在干涉;和响应于检测到该干涉而调整与对应于路径的至少一个示教点相关的参数。

根据本公开的方面的计算机可读存储介质存储仿真程序,该仿真程序用于使得计算机执行:在布置有机器人和另一物体的虚拟空间上,虚拟地执行操作程序,该操作程序包括代表机器人的轨迹的路径;基于操作程序的执行结果来检查在机器人与另一物体之间是否存在干涉;和响应于检测到该干涉而调整与对应于路径的至少一个示教点相关的参数。

根据本公开的方面的机器人系统包括:仿真单元,其配置为在布置有机器人和另一物体的虚拟空间上,虚拟地执行操作程序,该操作程序包括代表机器人的轨迹的路径;干涉检查单元,其配置为基于操作程序的执行结果来检查在机器人与另一物体之间是否存在干涉;调整单元,其配置为响应于检测到该干涉而调整与对应于路径的至少一个示教点相关的参数;和控制单元,其配置为在路径基于所调整的参数不发生干涉的情况下,基于包括该路径的操作程序来控制机器人。

根据本公开的方面的机器人制造方法包括:在布置有机器人和另一物体的虚拟空间上,虚拟地执行操作程序,该操作程序包括代表机器人的轨迹的路径;基于操作程序的执行结果来检查在机器人与另一物体之间是否存在干涉;响应于检测到该干涉而调整与对应于路径的至少一个示教点相关的参数;和在路径基于所调整的参数不发生干涉的情况下,基于包括路径的该操作程序来控制机器人。

根据本公开的一个方面,在机器人控制规划中实现了进一步的自动化。

附图说明

图1是示出机器人系统的配置的示例的视图。

图2是示出编程辅助设备的硬件配置的示例的视图。

图3是示出编程辅助设备的功能配置的示例的视图。

图4是示出编程辅助设备的操作的示例的流程图。

图5是示出调整示教点的位置的示例的视图。

图6是示出示教点与机器人轨迹之间的关系的示例的视图。

图7是示出编程辅助设备的操作的示例的流程图。

图8是示出由操作程序代表的一系列过程的示例的视图。

图9是示出编程辅助设备的操作的示例的流程图。

具体实施方式

在下文中将通过参考附图来详细地描述本公开的示例。在对附图的描述中,相同或等同的元件由相同的附图标记来表示,而省略了冗余的描述。

[机器人系统]

根据本公开的仿真系统应用于机器人系统1的编程辅助设备4。机器人系统1是用于通过使机器人执行由操作者示教的操作而使各种操作(比如机加工和组装)自动化的系统。图1是示出机器人系统的配置的示例的视图。在一个示例中,机器人系统1包括一个或多个机器人2、与一个或多个机器人2相对应的一个或多个机器人控制器3以及编程辅助设备4。图1示出了三个机器人2和三个机器人控制器3,并且还示出了一个机器人2连接到一个机器人控制器3的配置。然而,不论是设备数量还是连接方法都不限于图1中所示的示例。例如,多个机器人2可以连接到一个机器人控制器3。

在一个示例中,机器人2是多轴串联式竖直铰接机器人,并且配置为能够在将工具保持在其末端部5的同时执行各种过程。机器人2可以在预定的范围内自由地改变末端部5的位置和姿态。机器人2可以是六轴竖直铰接式机器人或者在六轴上添加一个冗余轴的七轴竖直铰接式机器人。在一个示例中,多个机器人2布置为使得机器人2中的任一者能够对布置在同一位置的同一工件执行同一处理。

机器人控制器3是用于根据先前生成的操作程序来控制机器人2的设备。在一个示例中,操作程序包括用于控制机器人2的数据,并且包括例如指示机器人2的轨迹的路径。机器人2的轨迹是指机器人2或其部件的运动路径。例如,机器人2的轨迹可以是末端部5的轨迹。在一个示例中,机器人控制器3计算用于将末端部5的位置和姿态与由操作程序指示的目标值匹配的目标关节角度值(机器人2的每个关节的目标角度值),并且根据目标角度值控制机器人2。

机器人控制器3控制机器人2来执行一系列过程。构成这一系列过程的最小单元的过程称为任务。任务的示例包括“拾取部件”、“放置部件”、“装配部件(至工件)”、“采取待机姿态”等,但是任务可以根据任意方针来设定。一个任务可以包括作为机器人2在任务中的轨迹的工作路径。在一个示例中,工作路径基于生成任务时的用户输入来设定。也就是说,工作路径是手动设定的。工作路径是第一路径的示例。

操作程序还包括指示机器人2连接任务的轨迹的路径。在一些示例中,这种路径将先任务中的工作路径的结束点和后续任务中的工作路径的起始点连接。在本公开中,也将任务之间的路径称为“空气切割路径”以区别于工作路径。任务之间的路径是自动设定的,并且例如通过设定除起始点和结束点之外的示教点来设定。这里,示教点是指设定来限定路径的参考点。空气切割路径是第二路径的示例。

编程辅助设备4是辅助生成操作程序的设备。编程辅助设备4针对一个或多个机器人2中的每一个生成操作程序,并且仿真基于操作程序的控制中是否存在问题。仿真是指虚拟地执行操作程序的过程,并且具体是指以仿真的方式在计算机上执行操作程序而不实际运行机器人2的过程。在一些示例中,仿真是在布置有机器人2和另一物体的虚拟空间上虚拟地执行操作程序的过程。另一物体是布置在机器人2周围的物体,并且可以例如是另一机器人2、工件、另一制造设备等。

[编程辅助设备]

图2是示出编程辅助设备4的硬件配置的示例的视图。编程辅助设备4包括主体10、监控器20和输入设备30。

主体10包括至少一个计算机。主体10包括电路160,而电路160包括至少一个处理器161、存储器162、内存163和输入/输出端口164。内存163存储用于配置主体10的每个功能模块的程序。内存163是比如硬盘、非易失性半导体存储器、磁盘或光盘的计算机可读记录介质。存储器162暂时地存储从内存163下载的程序和处理器161的操作结果等。处理器161与存储器162协作执行程序来配置每个功能模块。输入/输出端口164响应于来自处理器161的指令而在监控器20、输入设备30和机器人控制器3之间输入和输出电信号。

监控器20是用于显示从主体10输出的信息的设备。监控器20可以是任意类型,只要其可以显示图形即可,并且其具体示例是液晶面板。输入设备30是用于向主体10输入信息的设备。输入设备30可以是任意设备,只要其可以输入期望的信息即可,并且其具体的示例包括键盘和鼠标。

监控器20和输入设备30可以集成为触摸面板。例如,像平板计算机那样,可以集成主体10、监控器20和输入设备30。

图3是示出编程辅助设备4的功能配置的示例的视图。在一个示例中,编程辅助设备4包括作为功能模块的接收单元101、仿真单元102、调整单元103和输出单元104。接收单元101是用于获取待验证的操作程序的功能模块。仿真单元102是虚拟地执行操作程序并且检查操作程序中是否存在问题的功能模块。更具体而言,仿真单元102确定机器人2在仿真中是否与另一物体相干涉。换句话说,仿真单元102基于操作程序的执行结果来检查在机器人2与另一物体之间是否存在干涉。在本公开中,干涉是指物体之间的接触或碰撞,并且在一些示例中,是指机器人2与另一物体的接触或碰撞。调整单元103是响应于在仿真中发生干涉(换句话说,响应于检测到干涉)而调整与对应于路径的至少一个示教点相关的参数的功能模块。输出单元104是输出仿真结果的功能模块。

[仿真方法]

作为根据本公开的仿真方法的示例,将会参照图4来描述由编程辅助设备4执行的一系列处理程序的示例。图4是示出作为处理流程S1的编程辅助设备4的操作的示例的流程图。也就是说,编程辅助设备4执行处理流程S1。

在步骤S101中,接收单元101获取待验证的操作程序。例如,接收单元101可以接收由用户输入的操作程序,基于用户输入读取来自给定存储设备的操作程序,或者接收从另一计算机发送的操作程序。

在步骤S102中,仿真单元102选取待验证的一个路径。在一个示例中,仿真单元102选取空气切割路径(第二路径)而不选取工作路径(第一路径)。在操作程序包括多个空气切割路径的情况下,仿真单元102可以选取多个空气切割路径中的任意一者。在一个示例中,仿真单元102可以按照沿着从一系列过程的上游到下游的方向依序选取每个空气切割路径。

在步骤S103中,仿真单元102虚拟地执行与所选取的路径(例如,空气切割路径)相关的操作程序。“与所选取的路径相关的操作程序”是限定在所选定的路径中对机器人2进行控制的操作程序的一部分。在本公开中,该部分也称为“一元操作程序”。由于仿真单元102虚拟地执行一元操作程序,因此可以识别针对某一路径的多个干涉。与机器人2相干涉的另一物体的数量可以是一个或多个。

在步骤S104中,仿真单元102基于仿真执行结果来确定所选取的路径中是否发生干涉。因此,仿真单元102也用作干涉检查单元。在不发生干涉的情况下(步骤S104中的否),过程前行到步骤S107。稍后将会详细地描述步骤S107。

另一方面,在发生了至少一个干涉的情况下(步骤S101中的是),编程辅助设备4调整与对应于该路径的至少一个示教点相关的参数,以便搜索不发生干涉的路径。接着,编程辅助设备4基于所调整的参数来虚拟地执行对应于该路径的操作程序,并且确定该路径中是否发生干涉。步骤S105和S106与这种重新执行相关。

在步骤S105中,仿真单元102确定该路径是否将要终止。例如,终止条件可以由尝试次数或超时期限来设定或限定。

在路径确定不会终止的情况下(步骤S105中的否),过程前行到步骤S106。在步骤S106中,调整单元103调整与对应于所选取的路径的至少一个示教点相关的参数。该路径的至少一部分通过对该参数的调整来改变。在机器人2与另一物体在多个位置(干涉位置)处相干涉的情况下,调整单元103调整针对对应于多个干涉位置中的每一者的至少一个示教点的参数。也就是说,调整单元103调整至少一个示教点的参数以消除所有的干涉。在下文中,作为调整的示例,描述了示教点位置的改变和内旋量的改变。

(示教点的位置的改变)

在一个示例中,调整单元103可以将至少一个示教点的位置移位到比当前位置更远离另一物体(发生干涉的另一物体)的位置。通过以这种方式来改变示教点的位置,限定路径的示教点与另一物体之间的距离变得比当前值更大,并且因此基于示教点的路径也更远离另一物体。因此,可以避免干涉。

图5示出了调整示教点的位置的示例。在该示例中,调整单元103选取将要使其位置移位的示教点。例如,调整单元103识别机器人2与另一物体9干涉处的位置作为干涉位置,并且选取对应于该干涉位置的一个示教点作为第一示教点。在一个示例中,调整单元103针对每一成对的两个相邻示教点获得对应于该成对的路径的一部分(称为“部段”),并且识别包括干涉位置的部段。然后,调整单元103选取在该部段中定位在下游的示教点作为第一示教点。该过程旨在选取在发生干涉时对应于机器人2的最新移动目标的示教点作为第一示教点。在另一示例中,调整单元103可以选取最靠近干涉位置的示教点作为第一示教点。

调整单元103可以选取包括第一示教点的多个连续示教点。在一个示例中,调整单元103可以选取在所选取的路径中相对于第一示教点定位在上游的多个示教点。这里,“定位在上游的示教点”是指更靠近路径的起始点定位的示教点。在另一示例中,调整单元103可以选取在所选取的路径中相对于第一示教点定位在下游的多个示教点(即,更靠近路径的结束点定位的示教点)。替代地,调整单元103可以在所选取的路径中选取从定位在第一示教点上游的某一示教点到定位在第一示教点下游的某一示教点的多个连续示教点。所选取的示教点可以包括多个连续示教点。

在一个示例中,调整单元103不选取对应于所选取的路径的起始点和结束点的两个示教点作为将要使其位置移位的示教点。也就是说,调整单元103在路径中选取除了起始示教点和结束示教点以外的其他示教点中的至少一者作为将要使其位置移位的示教点。这是因为路径的起始点和结束点都与相邻路径的连接相关,并且改变起始和结束示教点的位置会使连接不相称。

图5示出了机器人2的末端部5的路径201和对应于路径201的五个示教点211至215。假设末端部5从示教点211朝向示教点215行进,并且因此,示教点211是路径201的起始点而示教点215是路径201的结束点。假设在仿真中,机器人2(例如,末端部5)在干涉位置221处与另一物体9相干涉。在一个示例中,调整单元103选取示教点214作为对应于干涉位置221的第一示教点。例如,示教点214对应于在发生干涉的情况下机器人2的最近移动目标。随后,调整单元103选取包括示教点214的多个连续示教点。在一个示例中,调整单元103还选取相对于示教点214定位在上游的示教点212和213,并且因此选取了示教点212至214。调整单元103不选取作为路径201的起始点的示教点211。

在选取了将要使其位置移位的至少一个示教点之后,调整单元103将每个示教点的位置移位到比当前位置更远离另一物体9的位置。在一个示例中,针对所选取的示教点中的每一者,调整单元103使该示教点的位置沿着将干涉位置与当前位置连接的虚拟线的方向移位。图5示出了通过这种方法进行的位置改变。在图5的示例中,调整单元103使示教点212沿着将干涉位置221与示教点212的当前位置连接的虚拟线232的方向移位,并且因此,示教点212移动到位置212A。同样,调整单元103使示教点213沿着将干涉位置221与示教点213的当前位置连接的虚拟线233的方向移位,并且因此,示教点213移动到位置213A。此外,调整单元103使示教点214沿着将干涉位置221与示教点214的当前位置连接的虚拟线234的方向移位,并且因此,示教点214移动到位置214A。

在一个示例中,调整单元103可以随着干涉位置与示教点的当前位置之间的距离减小而增大示教点的位置的移位量。在另一示例中,调整单元103可以使用以下公式(1)和(2)来计算移位量Δr

[公式1]

[公式2]

在以上公式中,r

替代地,调整单元103可以考虑机器人2在干涉时刻的操作速度(例如,末端部5的移动速度)来设定示教点的位置的移位量。例如,调整单元103可以随着速度增大而增大移位量。

在图5的示例中,示教点212、213和214分别移动到位置212A、213A和214A。也就是说,示教点212、213和214的当前位置分别改变为位置212A、213A和214A。如上所述,由于至少一个示教点沿着径向方向在干涉位置221周围移动,因此获得了比路径201更远离另一物体9的路径201A。由于限定路径的示教点与另一物体之间的距离大于当前值,因此基于示教点的路径也远离另一物体,并且因此可以避免干涉。

(内旋量的改变)

在一个示例中,调整单元103可以减小至少一个示教点的内旋量。内旋是机器人2的由三个连续示教点所限定的轨迹(例如,末端部5的轨迹)比利用直线连接三个点的路径更短的现象。内旋量是指示内旋的程度的数值。在本公开中,内旋量越大,轨迹的长度就越短。因此,内旋量越大,机器人2的操作时间就越短。

图6是示出示教点与机器人2的轨迹之间的关系的示例的视图。该示例示出三个连续示教点241至243、利用直线连接三个示教点的轨迹250和内旋的轨迹251至258。这些轨迹250至258对应于示教点242。在该示例中,假设示教点241是起始点,而示教点243是结束点。一般,机器人控制器3将针对从示教点241至示教点242的移动的速度命令和针对从示教点242至示教点243的移动的速度命令叠加,以便使机器人的操作平顺。通过这种叠加,机器人2的移动距离缩短,并且因此,生成了不经过示教点242的轨迹。在图6的示例中,经过示教点242的轨迹250的内旋量在0处最小,并且轨迹258的内旋量最大。

在一个示例中,调整单元103在多个内旋水平中设定一个内旋水平来确定内旋量。内旋水平是指以逐步方式指示内旋量的候选项的索引。在图6的示例中,轨迹250的内旋水平是0,轨迹251的内旋水平是1,轨迹252的内旋水平是2,并且类似地,轨迹253至258的内旋水平分别是3至8。虽然图6仅示出了对应于示教点242的内旋水平,但针对构成路径的所有示教点设定了内旋水平,并且因此在路径的起始点和结束点也设定了内旋水平。在一个示例中,调整单元103针对对应于所选取的路径的所有示教点设定了相同的内旋水平。然而,真实内旋量可以根据各个示教点而变化。

可以使用各种方法来使用内旋水平调整内旋量。例如,调整单元103可以通过二元检索方法在多个内旋水平中设定一个内旋水平,使得内旋量减小。例如,如果当前的内旋水平是“8”,则调整单元103将内旋水平改变为“4”(即,“0”至“8”之间的中间内旋水平)。在基于内旋水平“4”的仿真中发生干涉的情况下,调整单元103将内旋水平改变为“2”(也就是说,“0”至“4”之间的中间内旋水平)。在基于内旋水平“4”的仿真未发生干涉在的情况下,调整单元103将内旋水平改变为“6”(即,“4”至“8”之间的中间内旋水平)。调整单元103可以以这种方式执行过程来识别不发生干涉的内旋量的最大值(最大内旋量)。替代地,调整单元103可以将内旋水平设定为比当前内旋水平更低的一个水平,使得内旋量减小。

可以使用一种或多种方法来调整与示教点相关的参数。在任意情况下,调整单元103针对一个或多个干涉位置中的每一者调整至少一个示教点的参数。例如,在调整了示教点的位置的情况下,由于多个干涉的影响,一些示教点可能比其他示教点更加偏离当前位置。

在步骤S106之后,该过程返回到步骤S103。在步骤S103中,仿真单元102基于所调整的参数来虚拟地执行对应于该路径的操作程序。在此之后,基于执行结果来执行步骤S104和后续步骤中的过程。在通过二元检索方法来设定内旋水平的情况下,即使当未发生干涉(步骤S104)时,也可以执行步骤S106和S103。

在路径确定将要终止的情况下(步骤S105中的是),过程前行到步骤S107。在步骤S107中,仿真单元102检查是否已经验证了所有路径。在存在尚未验证的路径的情况下(步骤S107中的否),过程返回到步骤S102,并且仿真单元102选取待验证的下一路径。此后,对该路径执行步骤S103和后续步骤中的处理。

在已经验证了所有路径的情况下(步骤S107中的是),过程前行到步骤S108。在步骤S108中,输出单元104输出指示仿真结果的结果数据。

结果数据可以包括操作程序或其他数据结构。输出单元104可以输出针对其确认为在仿真中不发生干涉的操作程序。如果在由接收单元101获取的操作程序本身中没有发生干涉,输出单元104可以将输入的操作程序按照原样输出。在路径确定终止的情况下,输出单元104输出具有干涉可能的操作程序。作为操作程序的补充或替代,结果数据可以包括其他信息。例如,结果数据可以包括指示如何调整针对示教点的参数的调整信息,或者可以包括针对不能解决的干涉的干涉信息。

可以针对结果数据选取各种输出目的地。例如,输出单元104可以在监控器20上显示结果数据,可以将结果数据存储在比如内存163的记录介质中,或者可以将结果数据发送到比如机器人控制器3的另一计算机。在将结果数据显示在监控器20上的情况下,输出单元104可以响应于用户操作或自动地通过计算机图形(CG)用运动图像或静止图像来代表基于操作程序的机器人2的操作。

在一个示例中,输出单元104向机器人控制器3输出在仿真中已被确认的不发生干涉的操作程序,并且机器人控制器3基于该操作程序来控制机器人2。因此,输出单元104和机器人控制器3中的至少一者用作控制单元。由于通过处理流程S1获得了基于操作程序来操作的机器人2,所以处理流程S1是根据本公开的仿真方法的示例,并且也是用于制造根据本公开的机器人的方法的示例。

如上所述,在一个示例中,调整单元103针对一个路径中的所有示教点设定相同的内旋水平。同时,内旋水平可以在多个空气切割路径之间不同。

编程辅助设备4可以通过改变内旋水平和示教点的位置两者来调整与对应于路径的示教点相关的参数。将参考图7来描述该调整方法的示例。图7是示出作为处理流程S2的编程辅助设备4的操作的示例的流程图。也就是说,编程辅助设备4执行处理流程S2。

在该处理流程S2中,在发生干涉的情况下,调整单元103执行一次或多次处理,以将至少一个示教点的位置移位到比当前位置更远离另一物体的位置,同时维持所设定的内旋水平。在无法针对所设定的内旋水平获取不发生干涉的操作程序的情况下(即,在操作程序无法针对所设定的内旋水平避免干涉的情况下),调整单元103设定与较小的内旋量相对应的另一内旋水平。在维持新的内旋水平的同时,调整单元103执行一次或多次处理,以将至少一个示教点的位置移位到更远离另一物体的位置。简而言之,调整单元103在维持一定的内旋水平(内旋量)的状态下,探索不发生干涉的路径,同时使示教点的位置移位。在内旋水平处不能找到这样的路径的情况下,调整单元103设定新的内旋水平(即,减小内旋量),并且在使示教点的位置移位的同时,搜索不发生干涉的路径。调整单元103反复改变内旋水平和示教点的位置,并且检索不发生干涉的路径。

处理流程S2是针对一个路径的过程。编程辅助设备4针对所有待验证的路径执行处理流程S2。

在步骤S201中,仿真单元102设定内旋水平的初始值。在一个示例中,仿真单元102针对对应于该路径的所有示教点设定相同的内旋水平。例如,内旋水平的初始值是内旋量最大处的内旋水平(在图6的示例中为内旋水平“8”)。

在步骤S202中,仿真单元102在示教点是初始位置的情况下虚拟地执行操作程序(一元操作程序)。

在步骤S203中,仿真单元102确定所选取的路径中是否发生干涉。在发生干涉的情况下(步骤S203中的“是”),处理进行到步骤S204。

在步骤S204中,调整单元103使至少一个示教点的位置移位。如参照处理流程S1所述,可以使用各种方法来使位置移位。在机器人2与另一物体在多个干涉位置处相干涉的情况下,调整单元103使至少一个示教点的位置移位来消除所有干涉。这是调整针对与多个干涉位置中的每一者对应的至少一个示教点的参数的过程的示例。

在步骤S205中,仿真单元102基于所调整的示教点的位置,虚拟地执行与该路径对应的操作程序(一元操作程序)。

在步骤S206中,仿真单元102确定所选取的路径中是否发生干涉。如步骤S207和S208所示,重复在使示教点的位置移位的同时检查干涉的存在或不存在的过程,直到仿真单元102确定将要终止对位置的调整。

在步骤S209中,仿真单元102确定是否将要终止对内旋水平的调整。在调整不会终止的情况下(步骤S209中的否),过程前行到步骤S210。

在步骤S210中,调整单元103通过给定方法来改变内旋水平。如参照处理流程S1所述,可以使用各种方法来改变内旋水平。在机器人2与另一物体在多个干涉位置处相干涉的情况下,调整单元103改变内旋量以消除所有干涉。这是调整针对与多个干涉位置中的每一者对应的至少一个示教点的参数的过程的示例。随后,针对改变后的内旋水平再次执行步骤S202和后续步骤中的处理。

在能够识别出在某一内旋水平下不发生干涉的路径的情况下(步骤S203中的否或者步骤S206中的否),过程前行到步骤S211。在一个示例中,在该阶段,仿真单元102或调整单元103已经识别出在一元操作程序的虚拟执行中不发生干涉的最大内旋量。

在步骤S211中,调整单元103将小于最大内旋量并且不引起另一干涉的内旋量识别为备用内旋量。在一个示例中,调整单元103识别一个或多个备用内旋量,同时从0一步一步地顺序增加内旋水平。在此过程中可能不会获得备用内旋量。

在步骤S212中,仿真单元102确定与对应于该路径的至少一个示教点相关的参数。在此阶段,可以获得或者可以不获得不发生干涉的路径(参数组)。

接下来,将参照图8和图9描述虚拟地执行与多个连续路径相关的操作程序的过程。“与多个连续路径相关的操作程序”是限定在多个连续路径中对机器人2的控制的操作程序的一部分。在本公开中,该部分也称为“连续操作程序”。

图8是示出由操作程序代表的一系列过程的示例的视图。在该示例中,操作程序J1包括四个任务A、B、C和D以及四个空气切割路径W、X、Y和Z。假设任务A是使机器人2等待的任务,而任务B、C和D是一系列后续任务。在任务A与B之间设置空气切割路径W,在任务B与C之间设置空气切割路径X,在任务C与D之间设置空气切割路径Y,而在任务D与A之间设置空气切割路径Z。与连续操作程序对应的路径的数量和组合不限于图8所示的示例。例如,连续操作程序可以对应于任务A的工作路径和空气切割路径W,或者可以对应于空气切割路径W和任务B的工作路径。替代地,连续操作程序可以对应于任务D的工作路径、空气切割路径Z和任务A的工作路径。替代地,连续动作程序也可以是操作程序J1的整体。

即使一个路径中(即,在一元操作程序中)不会发生干涉,当机器人2跨越多个路径操作时,也可能发生新的干涉,这是因为甚至在路径的连接部分中生成了内旋的轨迹。另外,机器人控制的规划的自动化可以通过对一元操作程序的仿真来实现,但是编程辅助设备4也可以执行针对连续操作程序的仿真。

图9是示出作为处理流程S3的编程辅助设备4的操作的示例的流程图。也就是说,编程辅助设备4执行处理流程S3。

在步骤S301中,接收单元101获取连续操作程序。例如,接收单元101可以接收由用户输入的连续操作程序,基于用户输入读取来自给定存储设备的连续操作程序,或者接收从另一计算机发送的连续操作程序。在任何情况下,所获取的连续操作程序中所包括的所有空气切割路径(第二路径)都是已经由处理流程S1或S2等确认不会发生干涉的路径。

在步骤S302中,仿真单元102虚拟地执行连续操作程序。这对应于仿真单元102虚拟地执行与空气切割路径相关的一元操作程序,并且在空气切割路径中不发生干涉的情况下进一步虚拟地执行与连续工作路径和空气切割路径相关的连续操作程序的过程。

在步骤S303,仿真单元102基于仿真的执行结果来确定连续操作程序中是否发生干涉。在不发生干涉的情况下(步骤S303中的否),过程前行到步骤S306。稍后将会详细地描述步骤S306。

另一方面,在发生至少一个干涉的情况下(步骤S303中的是),编程辅助设备4改变发生干涉的路径的内旋水平,直到确定对内旋水平的调整将要终止。步骤S304和S305示出了后续过程。

在步骤S304中,仿真单元102确定对内旋水平的调整是否将要终止。例如,终止条件可以由尝试次数或超时期限来设定或限定。

在对内旋水平的调整未终止的情况下(步骤S304中的否),过程前行到步骤S305。在步骤S305中,调整单元103改变所选取的路径的内旋水平。在一个示例中,在机器人2与另一物体在设定了最大内旋量的空气切割路径中相干涉的情况下,调整单元103将与空气切割路径对应的内旋量改变为备用内旋量。在机器人2与另一物体在多个干涉位置处相干涉的情况下,调整单元103改变内旋量以消除所有干涉。这是调整针对与多个干涉位置中的每一者对应的至少一个示教点的参数的过程的示例。在此之后,对改变后的内旋量执行步骤S302和后续步骤中的处理。在对内旋水平的调整将要终止的情况下(步骤S304中的是),过程前行到步骤S306。

在步骤S306中,输出单元104输出指示仿真结果的结果数据。可以与步骤S108中所述类似地配置结果数据的数据结构和输出目的地。由于通过处理流程S3获得基于操作程序来操作的机器人2,所以处理流程S3也是根据本公开的仿真方法的示例和根据本公开的用于制造机器人的方法的示例。

在一个示例中,在处理流程S1、S2和S3中的任一者中,调整单元103在不改变工作路径(第二路径)的情况下调整与空气切割路径(第一路径)的示教点相关的参数。通常,基于用户输入而设定工作路径,并且自动地设定空气切割路径。因此,可以针对空气切割路径选择性地执行对参数的自动调整。

[程序]

通过读取处理器161或存储器162上的仿真程序并且使处理器161执行程序来实现编程辅助设备4的每个功能模块。仿真程序包括用于实施编程辅助设备4的每个功能模块的代码。处理器161根据仿真程序来操作输入/输出端口164,并且执行存储器162或内存163中的数据的读取和写入。通过这样的处理,实现了编程辅助设备4的每个功能模块。

可以在将仿真程序固定地记录在比如CD-ROM、DVD-ROM或半导体存储器的非瞬态记录介质上之后提供仿真程序。替代地,可以通过通信网络作为叠加在载波上的数据信号来提供仿真程序。

如上所述,根据本公开的方面的仿真系统包括:仿真单元,其配置为在布置有机器人和另一物体的虚拟空间上,虚拟地执行操作程序,该操作程序包括代表机器人的轨迹的路径;干涉检查单元,其配置为基于操作程序的执行结果来检查在机器人与另一物体之间是否存在干涉;和调整单元,其配置为响应于检测到该干涉而调整与对应于路径的至少一个示教点相关的参数。

根据本公开的方面的仿真方法是由包括至少一个处理器的仿真系统来执行的仿真方法。该仿真方法包括:在布置有机器人和另一物体的虚拟空间上,虚拟地执行操作程序,该操作程序包括代表机器人的轨迹的路径;基于操作程序的执行结果来检查在机器人与另一物体之间是否存在干涉;和响应于检测到该干涉而调整与对应于路径的至少一个示教点相关的参数。

根据本公开的方面的计算机可读存储介质存储仿真程序,该仿真程序用于使得计算机执行:在布置有机器人和另一物体的虚拟空间上,虚拟地执行操作程序,该操作程序包括代表机器人的轨迹的路径;基于操作程序的执行结果来检查在机器人与另一物体之间是否存在干涉;和响应于检测到该干涉而调整与对应于路径的至少一个示教点相关的参数。

根据本公开的方面的机器人系统包括:仿真单元,其配置为在布置有机器人和另一物体的虚拟空间上,虚拟地执行操作程序,该操作程序包括代表机器人的轨迹的路径;干涉检查单元,其配置为基于操作程序的执行结果来检查在机器人与另一物体之间是否存在干涉;调整单元,其配置为响应于检测到该干涉而调整与对应于路径的至少一个示教点相关的参数;和控制单元,其配置为在该路径基于所调整的参数不发生干涉的情况下,基于包括该路径的操作程序来控制机器人。

根据本公开的方面的机器人制造方法包括:在布置有机器人和另一物体的虚拟空间上,虚拟地执行操作程序,该操作程序包括代表机器人的轨迹的路径;基于操作程序的执行结果来检查在机器人与另一物体之间是否存在干涉;响应于检测到该干涉而调整与对应于路径的至少一个示教点相关的参数;和在该路径基于所调整的参数不发生该干涉的情况下,基于包括路径的该操作程序来控制机器人。

在这些方面中的任一者中,由于自动地改变与发生干涉的路径相对应的示教点的参数,因此可以使机器人控制规划进一步自动化。作为用于避免干涉的方法,可以想到在自动生成路径时重置路径。然而,由于自动生成具有缩短轨迹的距离的特性,因此在许多情况下仅通过自动生成无法避免干涉。另一方面,传统上,通过试错而手动地对示教点进行改变,这需要时间和精力。在以上的方面中,手动调整是自动化的,并且因此,可以高效地获得适当的操作程序。

在根据另一方面的仿真系统中,操作程序可以包括基于用户输入而设定的第一路径以及自动设定的第二路径,并且调整单元还可以配置为在不改变第一路径的情况下调整针对第二路径的参数。在这种情况下,可以针对自动设定的第二路径调整示教点的参数,而不影响由用户限定的第一路径。

在根据另一方面的仿真系统中,该仿真单元还可以配置为:虚拟地执行一元操作程序,该一元操作程序是限定在第二路径中对机器人的控制的操作程序的一部分;和响应于在第二路径中未发生干涉而进一步虚拟地执行连续操作程序,连续操作程序是限定在第一路径和第二路径的序列中对机器人的控制的操作程序的一部分。在这种情况下,可以自动地设定一系列路径(例如,可以实现用户目的的一系列路径),而不影响由用户限定的第一路径。

在根据另一方面的仿真系统中,调整单元还可以配置为:在对一元操作程序的虚拟执行中,识别最大内旋量和备用内旋量,最大内旋量是对应于第二路径的示教点的内旋量并且在最大内旋量处不发生干涉,备用内旋量小于最大内旋量并且在备用内旋量处不发生另一干涉,内旋量是指示机器人的轨迹的内旋的程度的数值;并且在对连续操作程序的虚拟执行中,在机器人与另一物体在设定了最大内旋量的第二路径中相干涉的情况下,将对应于第二路径的内旋量改变为备用内旋量。在连续操作程序中,可能发生从对一元操作程序的执行中不能检测到的干涉。不仅通过获得最大内旋量,而且通过获得不引起干涉的另一内旋量作为备用内旋量,可以高效地设定一系列路径。

在根据另一方面的仿真系统中,调整单元还可以配置为,响应于机器人与另一物体在多个干涉位置处相干涉而调整针对对应于多个干涉位置中的每一者的至少一个示教点的参数。由于针对多个位置处的干涉中的每一者来调整示教点的参数,因此可以有效地设定不发生干涉的路径。

在根据另一方面的仿真系统中,响应于检测到干涉而调整参数可以包括将至少一个示教点的位置移位到比当前位置更远离另一物体的位置。通过进一步将示教点与另一物体分离,该路径也将与另一物体分离,因此可以容易地设定不干涉的路径。

在根据另一方面的仿真系统中,调整单元还可以配置为将至少一个示教点的位置沿着将干涉位置与当前位置连接的虚拟线的方向移位。在增大相邻示教点之间的距离的同时,示教点进一步与另一物体分离,以便可靠地设定不干涉的路径。

在根据另一方面的仿真系统中,调整单元还可以配置为随着干涉位置与当前位置之间的距离减小而增大示教点的位置的移位量。通过以这种方式调整移位量,可以在没有任何干涉的情况下设定最短路径。

在根据另一方面的仿真系统中,响应于检测到干涉而调整参数还可以包括将包括将对应于干涉位置的第一示教点的多个连续示教点的位置移位到更远离另一物体的位置。调整干涉位置附近的多个示教点,以便高效地设定不干涉的路径。

在根据另一方面的仿真系统中,多个连续示教点可以另外包括上游示教点,并且调整单元还可以配置为使在路径中相对于第一示教点定位在上游的上游示教点的位置移位。由于调整了引起干涉的路径的部段,所以可以高效地设定不干涉的路径。

在根据另一方面的仿真系统中,调整单元还配置为在不使路径中的起始示教点和结束示教点移位的情况下,使从路径中的一个或多个其余示教点中所选取的至少一个示教点的位置移位。

在根据另一方面的仿真系统中,调整单元还可以配置为响应于检测到干涉而减小至少一个示教点的内旋量作为对参数的调整,内旋量是指示机器人的轨迹的内旋的程度的数值。通过减小内旋量,可以容易地设定不干涉的路径。

在根据另一方面的仿真系统中,调整单元还可以配置为通过二元检索方法在作为内旋量的候选项的多个内旋水平中设定一个内旋水平,使得内旋量减小。通过用内旋水平表示内旋量的候选项并且然后使用二分检索方法,可以高效地设定不干涉的路径。

在根据另一方面的仿真系统中,调整单元还可以配置为通过二元检索方法在多个内旋水平中设定对应于不发生干涉的最大内旋量的一个内旋水平。

在根据另一方面的仿真系统中,调整单元还可以配置为针对对应于该路径的所有示教点设定相同的内旋水平。通过统一路径中的内旋水平,可以容易地设定内旋量。此外,可以获得更平滑的路径。

在根据另一方面的仿真系统中,调整单元还可以配置为:响应于检测到干涉,执行将至少一个示教点的位置移位到比当前位置更远离另一物体一倍或多倍的位置同时维持所设定的内旋水平的过程,作为对参数的调整;并且在操作程序针对所设定的内旋水平无法避免干涉的情况下,设定对应于较小的内旋量的另一个内旋水平。通过以这样的程序来执行对示教点的移动和对内旋水平的设定,可以设定最短路径而不引起任何干涉。

[其他示例]

以上已经基于示例详细描述了本公开。然而,本公开不限于以上示例。在不脱离其要旨的情况下,可以对本公开进行各种修改。

在一个或多个以上示例中,编程辅助设备4调整针对空气切割路径(第二路径)的示教点的参数而不改变工作路径(第一路径),但是仿真系统也可以调整针对第一路径的示教点的参数。

在一个或多个以上示例中,编程辅助设备4包括接收单元101、仿真单元102、调整单元103和输出单元104,但是可以使用其他功能配置来执行仿真方法和机器人制造方法。

仿真系统的硬件配置可以包括通过执行程序来实现每个功能模块的模式。然而,在其他示例中,接收单元101、仿真单元102、调整单元103和输出单元104中的至少一部分可以由专用于其功能的逻辑电路来配置,或者可以由其中集成了逻辑电路的专用集成电路(ASIC)来配置。

另外,可以省略上述步骤(过程)中的一些,或者可以以不同的顺序执行这些步骤。此外,可以组合上述步骤中的两个或更多个步骤,或者可以修改或删除步骤中的一部分。替代地,除了以上步骤之外,还可以执行其他步骤。

在计算机系统或计算机中比较两个数值之间的大小关系的情况下,可以使用两个标准“大于等于”和“大于”中的任一者,并且可以使用两个标准“小于等于”和“小于”中的任一者。可以使用这种标准的选取来比较两个数值的大小。

应当理解,并非本文描述的所有方面、优点和特征都必须通过任何一个特定示例性实施例来实现或包括在其中。实际上,已经在本文中描述和说明了各种实例,显而易见,可在布置和细节上修改其他示例。例如,已经描述了用于在反作用操作之后根据返回命令执行返回操作的系统。然而,当完成反作用操作时,至少可以完成对已经执行了反作用操作的机器人的操作。

我们要求保护落入本文要求保护的主题的精神和范围内的所有修改和变化。

关于以上实施例,以进一步说明的方式提供以下附录。

(附录1)一种仿真系统,包括:

仿真单元,其配置为在布置有机器人和另一物体的虚拟空间上,虚拟地执行操作程序,该操作程序包括代表机器人的轨迹的路径;

干涉检查单元,其配置为基于仿真单元的执行结果来检查机器人是否与另一物体相干涉;和

调整单元,其配置为响应于发生干涉而调整与对应于该路径的至少一个示教点相关的参数。

(附录2)根据附录1所述的仿真系统,其中,

该操作程序包括基于用户输入而设定的第一路径和自动设定的第二路径;并且

该调整单元还配置为针对第二路径调整参数而不改变第一路径。

(附录3)根据附录2所述的仿真系统,其中,

该仿真单元还配置为:

虚拟地执行与第二路径相关的一元操作程序;和

响应于第二路径中未发生干涉,进一步虚拟地执行与第一路径和第二路径的序列相关的连续操作程序。

(附录4)根据附录3所述的仿真系统,其中,

该调整单元还配置为:

在对该一元操作程序的虚拟执行中,识别最大内旋量和备用内旋量,该最大内旋量是对应于该第二路径的示教点的内旋量,并且在该最大内旋量处不发生该干涉,该备用内旋量比该最大内旋量小,并且在该备用内旋量处不发生另一干涉;和

在对连续操作程序的虚拟执行中,在该机器人与该另一物体在设定该最大内旋量的该第二路径中相干涉的情况下,将对应于该第二路径的内旋量改变为该备用内旋量。

(附录5)根据附录1至4中任一项所述的仿真系统,其中,

该调整单元还配置为,响应于该机器人与该另一物体在多个干涉位置处相干涉,调整对应于该多个干涉位置中的每一者的至少一个示教点的参数。

(附录6)根据附录1至5中任一项所述的仿真系统,其中,

该调整单元还配置为,响应于发生该干涉而将至少一个示教点的位置移位到比当前位置更远离该另一物体的位置作为对该参数的调整。

(附录7)根据附录6所述的仿真系统,其中,

该调整单元还配置为将至少一个示教点的位置沿着将干涉位置与该当前位置连接的虚拟线的方向移位。

(附录8)根据附录7所述的仿真系统,其中,

该调整单元还配置为,随着该干涉位置与该当前位置之间的距离减小,增大该示教点的位置的移位量。

(附录9)根据附录求6至8中任一项所述的仿真系统,其中,

该调整单元还被配置为将包括与干涉位置相对应的第一示教点的多个连续示教点的位置移位,作为对至少一个示教点的位置的移位。

(附录10)根据附录9所述的仿真系统,其中,

该调整单元还被配置为将在该路径中相对于该第一示教点定位在上游的示教点的位置移位,作为对该多个示教点的位置的移位。

(附录11)根据附录求1至10中任一项所述的仿真系统,其中,

该调整单元还被配置为,响应于发生该干涉,减少至少一个示教点的内旋量,作为对该参数的调整。

(附录12)根据附录11所述的仿真系统,其中,

该调整单元还配置为通过二元检索方法从作为该内旋量的候选项的多个内旋水平中设定一个内旋水平,使得该内旋量减小。

(附录13)根据附录12所述的仿真系统,其中,

该调整单元还配置为针对对应于该路径的所有示教点设定相同的内旋水平。

(附录14)根据附录12或13所述的仿真系统,其中,

该调整单元还配置为:

响应于发生该干涉而执行将至少一个示教点的位置移位到比当前位置更远离该另一物体一倍或多倍的位置、同时维持所设定的内旋水平的过程,作为对该参数的调整;和

在针对所设定的内旋水平无法获得不发生该干涉的操作程序的情况下,设定对应于更小内旋量的另一内旋水平。

(附录15)一种由包括至少一个处理器的仿真系统来执行的仿真方法,该仿真方法包括:

在虚拟空间上虚拟地执行操作程序,该操作程序包括代表机器人的轨迹的路径,该机器人和另一物体布置在该虚拟空间中;

基于该执行的执行结果来检查该机器人是否与该另一物体相干涉;和

响应于发生干涉而调整与对应于路径的至少一个示教点相关的参数。

(附录16)一种仿真程序,该仿真程序用于使得计算机执行:

在布置有机器人和另一物体的虚拟空间上,虚拟地执行操作程序,该操作程序包括代表机器人的轨迹的路径;

基于该执行的执行结果来检查该机器人是否与该另一物体相干涉;和

响应于发生干涉而调整与对应于路径的至少一个示教点相关的参数。

(附录17)一种机器人制造方法,包括:

在虚拟空间上虚拟地执行操作程序,该操作程序包括代表机器人的轨迹的路径,该机器人和另一物体布置在该虚拟空间中;

基于该执行的执行结果来检查机器人是否与另一物体相干涉;

响应于发生干涉而调整与对应于路径的至少一个示教点相关的参数;和

在该路径基于所调整的参数不发生该干涉的情况下,基于包括该路径的操作程序来控制机器人。

(附录18)一种机器人系统,包括:

仿真单元,其配置为在布置有机器人和另一物体的虚拟空间上,虚拟地执行操作程序,该操作程序包括代表机器人的轨迹的路径;

干涉检查单元,其配置为基于仿真单元的执行结果来检查机器人是否与另一物体相干涉;

调整单元,其配置为响应于发生干涉而调整与对应于该路径的至少一个示教点相关的参数;和

控制单元,其配置为在该路径基于所调整的参数不发生该干涉的情况下,基于包括该路径的该操作程序来控制该机器人。

相关技术
  • 类大象的重型机器人的行走轨迹仿真方法和装置
  • 机器人记录运动轨迹的方法和显示机器人运动轨迹的方法
技术分类

06120112824309