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

模拟装置、模拟方法以及模拟程序

文献发布时间:2023-06-19 10:18:07


模拟装置、模拟方法以及模拟程序

技术领域

本发明涉及一种模拟(simulation)装置、模拟方法以及模拟程序。

背景技术

以往,有时通过机器人来对操作对象进行各种处理。机器人的动作有时会通过模拟来验证,一边参照模拟结果一边进行设计。

例如下述专利文献1中记载了一种方法:对工业机械的动作进行模拟,并对模拟结果及来自工业机械的动作的实际数据进行存储或比较。

现有技术文献

专利文献

专利文献1:日本专利特表2008-542888号公报

发明内容

发明所要解决的问题

在由机器人所操作的操作对象为液体,或者为具有挠性的柔性物的情况下,有时要与机器人的举动一致地模拟操作对象的举动。操作对象的举动能够通过有限元法或粒子法等现有技术来模拟。

但是,若要高精度地模拟操作对象的举动,则有时运算负荷将变大,模拟所需的时间变长。

因此,本发明提供一种降低操作对象的举动模拟所需的运算负荷的模拟装置、模拟方法以及模拟程序。

解决问题的技术手段

本公开的一实施例的模拟装置包括:第一设定部,设定表示操作对象的模型的构成条件;第二设定部,设定对操作对象施加的外力的条件;第一模拟部,在构成条件及外力的条件下,模拟操作对象的举动;生成部,生成学习数据,所述学习数据包含构成条件、外力的条件以及表示第一模拟部所进行的模拟中的位于操作对象表面的多个代表点的举动的数据;以及学习部,通过使用学习数据的监督学习而生成学习模型,所述学习模型将构成条件、外力的条件及多个代表点的初始条件作为输入,而输出表示多个代表点的举动的数据。

根据此实施例,通过任意方法来模拟表示操作对象的模型的举动,并通过使用所述模拟结果的监督学习来生成学习模型,由此,能够将运算负荷大的模拟替换为运算负荷相对较小的学习模型对代表点的举动的预测,从而能够降低操作对象的举动模拟所需的运算负荷。

所述实施例中,也可为,生成部所生成的学习数据中,包含构成条件、第一模拟部所进行的模拟的规定时刻的外力的条件、及表示规定时刻的多个代表点的举动的数据来作为输入数据,且包含表示从规定时刻经过规定时间后的时刻的多个代表点的举动的数据来作为输出数据。

根据此实施例,能够通过学习模型来预测经过规定时间后的代表点的举动,通过反复执行借助学习模型的预测,能够预测任意时刻的代表点的举动。

所述实施例中,也可还包括:第二模拟部,模拟机器人的举动;以及预测部,将在第二模拟部所进行的模拟中由机器人施加至操作对象的外力的条件及构成条件输入至学习模型,而预测多个代表点的举动,第二模拟部对由预测部所预测的多个代表点的举动与所模拟的机器人的举动进行合成。

根据此实施例,通过学习模型,使运算负荷相对较小地预测表示操作对象的模型的代表点的举动,并与通过任意方法来模拟机器人的举动的结果进行合成,能够降低包含机器人及操作对象的整体的模拟所需的运算负荷。

所述实施例中,操作对象也可包含柔性物、液体及气体中的任一个。

根据此实施例,即便是模拟的运算负荷大的操作对象,也能够通过借助运算负荷相对较小的学习模型的运算来预测操作对象的代表点的举动,从而能够降低操作对象的举动模拟所需的运算负荷。

所述实施例中,也可为,当操作对象为液体时,操作对象的表面为液体的液面,多个代表点的举动是由多个位置处的液面的铅垂方向的举动来表示。

根据此实施例,通过学习模型来预测位于液体的液面的多个代表点的举动,由此,能够比预测液体整体的举动的情况减小学习模型的运算负荷。

所述实施例中,也可为,第一模拟部使用将液体分解为多个粒子的模型,来模拟多个粒子的举动,表示多个代表点的举动的数据是表示多个粒子中的、第一模拟部所进行的模拟的规定时刻的位于液体的液面的一部分粒子的举动的数据。

根据此实施例,能够生成对通过粒子模型来模拟液体整体的举动的结果中的、位于液面的粒子的举动进行再现的学习模型,从而能够比预测液体整体的举动的情况减小学习模型的运算负荷。

所述实施例中,构成条件也可包含表示操作对象的挠性的条件及表示粘性的条件中的任一个。

根据此实施例,即便是模拟的运算负荷大的操作对象,也能够通过借助运算负荷相对较小的学习模型的运算来预测操作对象的代表点的举动,从而能够降低操作对象的举动模拟所需的运算负荷。

所述实施例中,也可为,第一模拟部使用将操作对象分解为通过节点而连接的多个构成元素的模型,来模拟节点的举动,多个代表点的数量少于节点的数量。

根据此实施例,能够生成对通过有限元法来模拟操作对象整体的举动的结果中的、位于操作对象表面的节点的举动进行再现的学习模型,从而能够比预测表示操作对象的节点整体的举动的情况减小学习模型的运算负荷。

本公开的另一实施例的模拟方法包括:设定表示操作对象的模型的构成条件;设定对操作对象施加的外力的条件;在构成条件及外力的条件下,模拟操作对象的举动;生成学习数据,所述学习数据包含构成条件、外力的条件以及表示模拟中的位于操作对象表面的多个代表点的举动的数据;以及通过使用学习数据的监督学习而生成学习模型,所述学习模型将构成条件、外力的条件及多个代表点的初始条件作为输入,而输出表示多个代表点的举动的数据。

根据此实施例,通过任意方法来模拟表示操作对象的模型的举动,并通过使用所述模拟结果的监督学习来生成学习模型,由此,能够将运算负荷大的模拟替换为运算负荷相对较小的学习模型对代表点的举动的预测,从而能够降低操作对象的举动模拟所需的运算负荷。

本公开的另一实施例的模拟程序使配设于模拟装置中的处理器作为下述部分发挥功能,即:第一设定部,设定表示操作对象的模型的构成条件;第二设定部,设定对操作对象施加的外力的条件;第一模拟部,在构成条件及外力的条件下,模拟操作对象的举动;生成部,生成学习数据,所述学习数据包含构成条件、外力的条件以及表示第一模拟部所进行的模拟中的位于操作对象表面的多个代表点的举动的数据;以及学习部,通过使用学习数据的监督学习而生成学习模型,所述学习模型将构成条件、外力的条件及多个代表点的初始条件作为输入,而输出表示多个代表点的举动的数据。

根据此实施例,通过任意方法来模拟表示操作对象的模型的举动,并通过使用所述模拟结果的监督学习来生成学习模型,由此,能够将运算负荷大的模拟替换为运算负荷相对较小的学习模型对代表点的举动的预测,从而能够降低操作对象的举动模拟所需的运算负荷。

发明的效果

根据本发明,可提供降低操作对象的举动模拟所需的运算负荷的模拟装置、模拟方法以及模拟程序。

附图说明

图1是由本发明的实施方式的模拟装置所模拟的第一操作对象的举动的概略图。

图2是表示本实施方式的模拟装置的硬件结构的图。

图3是表示本实施方式的模拟装置的功能结构的图。

图4是由本实施方式的模拟装置所执行的第一处理的流程图。

图5是由本实施方式的模拟装置所执行的第二处理的流程图。

图6是由以往的模拟装置所执行的处理的流程图。

图7是由本实施方式的模拟装置所模拟的第二操作对象的举动的概略图。

具体实施方式

以下,基于附图来说明本发明的一方面的实施方式(以下称作“本实施方式”)。另外,各图中,标注有相同符号的部分具有相同或同样的结构。

§1适用例

图1是由本发明的实施方式的模拟装置10所模拟的第一操作对象T1的举动的概略图。第一操作对象T1是放入容器对象物Ob中的液体。容器对象物Ob由机械手H予以握持并移动。模拟装置10在通过机械手H来握持容器对象物Ob并使其移动的情况下,模拟机械手H的动作,即,以作为液体的第一操作对象T1不会从容器对象物Ob洒出的方式,但短时间地使其移动。图1中,左侧表示处于静止状态下的第一操作对象T1,右侧表示通过机械手H来移动容器对象物Ob,而第一操作对象T1的液面正在摇晃的状态。

模拟装置10设定表示第一操作对象T1的模型的构成条件与对第一操作对象T1施加的外力的条件,在这些条件下,通过现有的模拟方法来模拟第一操作对象T1的举动。模拟装置10例如可使用将作为液体的第一操作对象T1分解为多个粒子的模型,通过所谓的粒子法来模拟多个粒子的举动。此时,模型的构成条件可包含对粒径及粒子间的相互作用进行规定的条件。而且,外力的条件可包含容器对象物Ob的边界条件与由机械手H所施加的力的条件。

模拟装置10可将表示通过粒子法而模拟的多个粒子的举动中的、位于第一操作对象T1的液面的一部分粒子的举动的数据作为学习数据。此处,表示粒子举动的数据可包含表示粒子的位置、速度、运动量及加速度中的至少任一个的数据。当像第一操作对象T1那样操作对象为液体时,操作对象的表面为液体的液面,多个代表点的举动可通过多个位置的液面的铅垂方向的举动来表示。模拟装置10例如可将容器对象物Ob的内部划分成三维格子,关于横剖容器对象物Ob的XY平面的各格子,选择Z方向(铅垂方向)的值最大的粒子,将所述粒子的XYZ坐标设为一个代表点,反复此处理,从而生成表示位于第一操作对象T1的液面的一部分粒子的举动的数据。

图1中,作为位于第一操作对象T1的液面的一部分粒子,表示了第一粒子p1、第二粒子p2、第三粒子p3、第四粒子p4、第五粒子p5、第六粒子p6、第七粒子p7、第八粒子p8、第九粒子p9、第十粒子p10、第十一粒子p11及第十二粒子p12。第一粒子p1、第二粒子p2、第三粒子p3、第四粒子p4、第五粒子p5、第六粒子p6、第七粒子p7、第八粒子p8、第九粒子p9、第十粒子p10、第十一粒子p11及第十二粒子p12是在某时刻位于第一操作对象T1的液面的代表点。此处,位于第一操作对象T1的液面的粒子可时时刻刻发生变化,可未必为相同的粒子。本例中,通过机械手H来移动容器对象物Ob,由此,从第一粒子p1、第二粒子p2、第三粒子p3、第四粒子p4、第五粒子p5及第六粒子p6的高度几乎相同的左侧的状态开始,液体受到搅拌而位于第一操作对象T1的液面的粒子发生变化,而迁移为第七粒子p7、第八粒子p8、第九粒子p9、第十粒子p10、第十一粒子p11及第十二粒子的高度参差不齐的右侧的状态。

模拟装置10生成学习数据,所述学习数据包含表示第一操作对象T1的模型的构成条件、对第一操作对象T1施加的外力的条件、以及表示模拟中的位于第一操作对象T1的液面的多个代表点(第一~第十二粒子等)的举动的数据。并且,模拟装置10通过使用学习数据的监督学习而生成学习模型,所述学习模型将表示第一操作对象T1的模型的构成条件、对第一操作对象T1施加的外力的条件以及多个代表点(第一~第十二粒子等)的初始条件作为输入,而输出表示多个代表点(第一~第十二粒子等)的举动的数据。学习模型并非直接执行对物理现象进行再现的模拟,而是预测多个代表点的位置、速度、运动量及加速度中的至少任一个。

这样,通过任意方法来模拟表示第一操作对象T1的模型的举动,并通过使用所述模拟结果的监督学习来生成学习模型,由此,能够将运算负荷大的模拟替换为运算负荷相对较小的学习模型对代表点的举动的预测,从而能够降低操作对象的举动模拟所需的运算负荷,能够减少运算量。

§2结构例

[硬件结构]

图2是表示本实施方式的模拟装置10的硬件结构的图。模拟装置10包括中央处理器(Central Processing Unit,CPU)10a、随机存取存储器(Random Access Memory,RAM)10b、只读存储器(Read Only Memory,ROM)10c、通信部10d、输入部10e及显示部10f。CPU10a、RAM10b、ROM10c、通信部10d、输入部10e及显示部10f经由总线可彼此收发数据地连接。另外,本例中,对模拟装置10包含一台计算机的情况进行说明,但模拟装置10也可将多个计算机加以组合而实现。而且,图2所示的结构为一例,模拟装置10也可具有除了这些以外的结构,还可不具有这些结构中的一部分。

<CPU>

CPU10a是配设于模拟装置10中的处理器,进行与存储在RAM10b及ROM10c中的程序的执行相关的控制或数据的运算、加工。CPU10a是执行生成学习模型的程序(模拟程序)的运算部,所述学习模型再现现有的模拟方法对操作对象的举动的模拟结果。CPU10a从输入部10e或通信部10d接收各种数据,将数据的运算结果显示于显示部10f或者保存到RAM10b或ROM10c中。

<RAM>

RAM10b是配设于模拟装置10中的存储部,可进行数据的改写。RAM10b例如可包含半导体存储元件。RAM10b可存储CPU10a所执行的模拟程序以及用于在模拟空间中构成机器人或周边环境的数据等。另外,这些只是例示,在RAM10b中,也可存储除了这些以外的数据,还可不存储这些中的一部分。

<ROM>

ROM10c是配设于模拟装置10中的存储部,可进行数据的读出。ROM10c例如可包含半导体存储元件。ROM10c例如可存储模拟程序或不进行改写的数据。

<通信部>

通信部10d是将模拟装置10连接于其他机器的接口。通信部10d可连接于局域网(Local Area Network,LAN)或国际互联网等通信网络。

<输入部>

输入部10e从用户受理数据的输入,例如可包含键盘、鼠标等指示设备及触控面板。

<显示部>

显示部10f以视觉方式显示CPU10a得出的运算结果,例如可包含液晶显示器(Liquid Crystal Display,LCD)。显示部10f可显示操作对象的模拟结果,或者包含机器人和操作对象的整体的模拟结果。

模拟程序既可存储在RAM10b或ROM10c等可由计算机来读取的存储介质中而提供,也可经由通过通信部10d而连接的通信网络来提供。模拟装置10中,通过CPU10a执行模拟程序,从而实现使用下图而说明的第一处理部20及第二处理部30的动作。另外,这些物理结构只是例示,也可未必为独立的结构。例如,模拟装置10也可包括CPU10a与RAM10b或ROM10c经一体化的大规模集成电路(Large-Scale Integration,LSI)。

[功能结构]

图3是表示本实施方式的模拟装置10的功能结构的图。模拟装置10包括第一处理部20与第二处理部30。第一处理部20进行生成对操作对象的举动进行预测的学习模型的处理。第二处理部30使用所生成的学习模型,来进行包含机器人及操作对象的整体的模拟。第一处理部20包含第一设定部11、第二设定部12、第一模拟部13、生成部14、学习部15及第一存储部16。而且,第二处理部30包含第二模拟部17、第二存储部18及预测部19。

<第一设定部>

第一设定部11设定表示操作对象的模型的构成条件。此处,操作对象例如可为由机械手直接握持的对象,或间接地握持的对象,或者由不限于手的机器人的末端执行器直接或间接地操作的对象,或者由人直接或间接地操作的对象。而且,模型的构成条件可包含用于使表示操作对象的模型在模拟空间内与现实同样地运动的物理条件,可包含表示操作对象的挠性的条件及表示粘性的条件中的任一个。操作对象可包含柔性物、液体及气体中的任一个。所谓柔性物,是指具有挠性的物体,例如包含由橡胶形成的线缆、纸或布。在操作对象为液体或气体的情况下,有时通过机器人来握持保存有作为操作对象的液体或气体的容器。而且,在操作对象为气体的情况下,有时通过机器人来握持对作为操作对象的气体进行喷射的喷嘴,将气体喷吹至其他构件。

根据本实施方式的模拟装置10,通过生成对操作对象的代表点的举动进行预测的学习模型,从而即便是像柔性物、液体及气体那样模拟的运算负荷大的操作对象,也能够通过借助运算负荷相对较小的学习模型的运算来预测操作对象的代表点的举动,从而能够降低操作对象的举动模拟所需的运算负荷,能够减少运算量。

<第二设定部>

第二设定部12设定对操作对象施加的外力的条件。对操作对象施加的外力可包含由机器人对操作对象直接或间接地施加的外力。而且,对操作对象施加的外力可包含由机器人以外的结构施加的外力,例如由搬送装置所施加的外力等。

<第一模拟部>

第一模拟部13在表示操作对象的模型的构成条件及对操作对象施加的外力的条件下,模拟操作对象的举动。第一模拟部13可使用任意方法来模拟操作对象的举动,例如可使用粒子法或有限元法。

<生成部>

生成部14生成学习数据,所述学习数据包含表示操作对象的模型的构成条件、对操作对象施加的外力的条件、及表示第一模拟部13所进行的模拟中的位于操作对象表面的多个代表点的举动的数据。由生成部14所生成的学习数据可作为学习数据16a而存储在第一存储部16中。此处,多个代表点可位于操作对象的任意部分,但在位于操作对象表面的情况下,能够通过相对较少的代表点来表示操作对象的外形的举动。另外,生成部14不仅可生成包含表示位于操作对象表面的多个代表点的举动的数据的学习数据,也可生成下述学习数据,所述学习数据包含表示操作对象的模型的构成条件、对操作对象施加的外力的条件、以及表示第一模拟部13所进行的模拟中的位于操作对象的一部分的多个代表点的举动的数据。

生成部14可生成学习数据,所述学习数据包含表示操作对象的模型的构成条件、在第一模拟部13所进行的模拟的规定时刻对表示操作对象的模型施加的外力的条件、以及表示规定时刻的多个代表点的举动的数据来作为输入数据,并包含表示从规定时刻经过规定时间后的时刻的多个代表点的举动的数据来作为输出数据。此处,规定时间既可为第一模拟部13所进行的模拟中的最小时间,也可为最小时间的数倍。这样,能够通过学习模型来预测经过规定时间后的代表点的举动,通过反复执行借助学习模型的预测,能够预测任意时刻的代表点的举动。另外,学习数据中所含的输入数据是指在学习模型的监督学习中输入至学习模型的数据。而且,学习数据中所含的输出数据是指在学习模型的监督学习中与学习模型的输出进行比较的数据,是表示正解的数据。

当操作对象为液体时,操作对象的表面为液体的液面,多个代表点的举动可通过多个位置的液面的铅垂方向的举动来表示。通过学习模型来预测位于液体液面的多个代表点的举动,由此,能够比预测液体整体的举动的情况减小学习模型的运算负荷,从而能够减少运算量。

当操作对象为液体时,第一模拟部13可使用将作为操作对象的液体分解为多个粒子的模型来模拟多个粒子的举动。此时,表示操作对象的模型的构成条件可包含与粒子的数量、粒子的大小、粒子间的相互作用相关的条件,第一模拟部13可通过粒子法来模拟表示操作对象的多个粒子的举动。并且,表示位于液体液面的多个代表点的举动的数据可为表示多个粒子中的、第一模拟部13所进行的模拟的规定时刻的位于液体液面的一部分粒子的举动的数据。这样,能够生成对通过粒子模型来模拟液体整体的举动的结果中的、位于液面的粒子的举动进行再现的学习模型,能够比预测液体整体的举动的情况减小学习模型的运算负荷,从而能够减少运算量。

而且,第一模拟部13可使用将操作对象分解为通过节点而连接的多个构成元素的模型,来模拟节点的举动。此时,表示操作对象的模型的构成条件可包含与构成元素及节点的数量、构成元素的大小、构成元素的形状相关的条件,第一模拟部13可通过有限元法来模拟表示操作对象的多个节点的举动。而且,多个代表点可位于操作对象的表面。并且,位于操作对象表面的多个代表点的数量可少于节点的数量。由此,能够生成对通过有限元法来模拟操作对象整体的举动的结果中的、位于操作对象表面的一部分节点的举动进行再现的学习模型,能够比预测表示操作对象的节点整体的举动的情况减小学习模型的运算负荷,从而能够减少运算量。

<学习部>

学习部15通过使用学习数据的监督学习而生成学习模型,所述学习模型将表示操作对象的模型的构成条件、对操作对象施加的外力的条件、以及位于操作对象表面的多个代表点的初始条件作为输入,而输出表示多个代表点的举动的数据。由学习部15所生成的学习模型可作为学习模型16b而存储在第一存储部16中。由学习部15所生成的学习模型16b例如可为使用神经网络的模型,可通过利用误差反向传播法来将神经网络的权重参数等相对于学习数据而最佳化,从而生成学习模型16b。

<第二模拟部>

第二模拟部17模拟机器人的举动。本实施方式中,第二模拟部17模拟机械手的举动。第二模拟部17参照存储在第二存储部18中的机械手数据18a,对模拟空间中的机械手的动作进行模拟。机械手数据18a可包含与所示教的机械手的轨迹相关的数据、与构成机械手的臂的尺寸相关的数据、以及与构成机械手的伺服马达的扭矩相关的数据等。第二模拟部17也可参照存储在第二存储部18中的环境数据18b,配合机械手的动作来进行周边环境的模拟。环境数据18b可包含与设置有机械手的环境的气温或湿度等相关的数据、与跟机械手一同使用的搬送装置或加工装置等相关的数据、以及与可能跟机械手发生干涉的作业者或障碍物相关的数据等。第二模拟部17也可以一边避开与作业者或障碍物的干涉,一边与搬送装置或加工装置协动的方式,来模拟机械手的动作。

<预测部>

预测部19将在第二模拟部17所进行的模拟中由机器人施加至操作对象的外力的条件及表示操作对象的模型的构成条件输入至学习模型16b,而预测多个代表点的举动。预测部19基于从学习模型16b输出的数据,并非直接模拟表示操作对象的模型的举动,而是预测位于操作对象表面的多个代表点的举动。

第二模拟部17对由预测部19所预测的多个代表点的举动与所模拟的机械手的举动进行合成。例如,在操作对象为放入容器内的液体,且对通过机械手来握持容器并使其移动的动作进行模拟的情况下,通过第二模拟部17来模拟机械手的动作,并通过预测部19来预测放入容器内的液体的液面的举动,第二模拟部17将它们予以合成,由此来进行包含机械手及操作对象的整体的模拟。这样,通过学习模型,能够使运算负荷相对较小地预测表示操作对象的模型的代表点的举动,并与通过任意方法来模拟机械手的举动的结果进行合成,由此,能够降低包含机械手及操作对象的整体的模拟所需的运算负荷,从而能够减少运算量。

§3动作例

图4是由本实施方式的模拟装置10所执行的第一处理的流程图。第一处理是由模拟装置10的第一处理部20所执行的处理,是生成对操作对象的多个代表点的举动进行预测的学习模型的处理。

首先,模拟装置10设定表示操作对象的模型的构成条件(S10),设定对操作对象施加的外力的条件(S11),并设定操作对象的初始条件(S12)。

随后,模拟装置10遍及规定时间来模拟操作对象的举动(S13)。此处,规定时间既可为模拟中的最小时间,也可为最小时间的数倍的时间。

模拟装置10获取表示位于操作对象表面的多个代表点的举动的值(S14)。并且,模拟装置10生成学习数据,所述学习数据包含表示操作对象的模型构成条件、模拟的初始时刻的外力的条件、以及表示初始时刻的多个代表点的举动的数据来作为输入数据,且包含表示从初始时刻经过规定时间后的时刻的多个代表点的举动的数据来作为输出数据(S15)。

随后,若不结束学习数据的生成(S16:否),则模拟装置10再次进行构成条件的设定(S10)、外力的条件的设定(S11)、初始条件的设定(S12),模拟操作对象的举动(S13),生成学习数据(S14、S15)。此处,在对同一操作对象进行模拟的情况下,可省略构成条件的设定(S10)。而且,在对同一操作对象进行连续的举动模拟的情况下,可基于通过之前的模拟而获得的表示操作对象的举动的数据,来决定下个模拟中的操作对象的初始条件。

另一方面,若结束学习数据的生成(S16:是),则模拟装置10使用学习数据来生成学习模型并予以保存(S17),所述学习模型输出表示多个代表点的举动的数据。通过上述操作,第一处理结束。

图5是由本实施方式的模拟装置10所执行的第二处理的流程图。第二处理是由模拟装置10的第二处理部30所执行的处理,是使用通过第一处理所生成的学习模型来模拟包含机械手及操作对象的整体的处理。

首先,模拟装置10设定表示操作对象的模型的构成条件(S18),设定操作对象的初始条件(S19),并设定对操作对象施加的外力的条件(S20)。此处,对操作对象施加的外力的条件可基于对机械手预先规定的动作来决定。

随后,模拟装置10通过学习模型来输出表示操作对象的举动的数据(S21),使模拟空间内的表示操作对象的模型产生变形(S22)。而且,模拟装置10遍及规定时间来模拟机械手及周边环境的举动,并与表示操作对象的模型的变形进行合成(S23)。此处,规定时间可与第一处理中的规定时间相同,既可为模拟中的最小时间,也可为最小时间的数倍的时间。

若不结束模拟(S24:否),则模拟装置10基于机械手的下个动作,来设定对操作对象施加的外力的条件(S20),通过学习模型来预测操作对象的举动(S21),使表示操作对象的模型产生变形(S22),并对机械手及周边环境的举动与表示操作对象的模型的变形进行合成(S23)。

另一方面,若结束模拟(S24:是),则模拟装置10将模拟结果写入存储部,或者显示于显示部,从而结束第二处理。

图6是由以往的模拟装置所执行的处理的流程图。以往的模拟装置所进行的处理与本实施方式的模拟装置10所进行的第二处理的不同之处在于,执行遍及规定时间来模拟操作对象的举动的处理(S103)。

以往的模拟装置所进行的处理中,首先设定表示操作对象的模型的构成条件(S100),设定操作对象的初始条件(S101),并设定对操作对象施加的外力的条件(S102)。此处,对操作对象施加的外力的条件可基于对机械手预先规定的动作来决定。

随后,以往的模拟装置遍及规定时间来模拟操作对象的举动(S103)。此处,遍及规定时间来模拟操作对象的举动的处理(S103)是使用有限元法或粒子法来进行的处理,一般而言,运算负荷大,直至获得结果为止需要相对较长的时间。以往的模拟装置是根据操作对象的举动的模拟结果来使模拟空间内的表示操作对象的模型产生变形(S104),遍及规定时间来模拟机械手及周边环境的举动,并与表示操作对象的模型的变形进行合成(S105)。

若不结束模拟(S106:否),则以往的模拟装置基于机械手的下个动作,设定对操作对象施加的外力的条件(S102),遍及规定时间来模拟操作对象的举动(S103),使表示操作对象的模型产生变形(S104),并对机械手及周边环境的举动与表示操作对象的模型的变形进行合成(S105)。

这样,以往的模拟装置每当使模拟推进规定时间时,通过有限元法或粒子法而遍及规定时间来模拟操作对象的举动。另一方面,本实施方式的模拟装置10每当使模拟推进规定时间时,通过学习模型来算出操作对象的代表点的举动。由于此种差异,本实施方式的模拟装置10比起以往的模拟装置,能够降低操作对象的举动模拟所需的运算负荷,从而能够减少运算量。

图7是由本实施方式的模拟装置10所模拟的第二操作对象T2的举动的概略图。第二操作对象T2为纸或布,是柔性物。第二操作对象T2由机器人予以握持而移动。模拟装置10在通过机器人来握持第二操作对象T2并使其移动的情况下,模拟机器人的动作,即,以作为柔性物的第二操作对象T2不会损伤或缠绕的方式,但短时间地使其移动。图7中,左侧表示处于静止状态的第二操作对象T2,右侧表示被机器人握持而第二操作对象T2产生了变形的状态。

模拟装置10设定表示第二操作对象T2的模型的构成条件与对第二操作对象T2施加的外力的条件,在这些条件下,通过现有的模拟方法来模拟第二操作对象T2的举动。模拟装置10例如使用将作为柔性物的第二操作对象T2分解为通过节点而连接的多个构成元素的模型,通过所谓的有限元法来模拟多个节点的举动。此时,模型的构成条件可包含与构成元素及节点的数量、构成元素的大小、构成元素的形状相关的条件。而且,外力的条件可包含由机器人所施加的力的条件。

模拟装置10可将表示通过有限元法而模拟的多个节点的举动中的、位于第二操作对象T2表面的一部分节点的举动的数据作为学习数据。此处,表示节点的举动的数据可包含表示节点的位置、速度、运动量及加速度中的至少任一个的数据。

图7中,作为位于第二操作对象T2表面的一部分节点,表示了第一节点p11、第二节点p12、第三节点p13、第四节点子p14及第五节点p15。另外,这些只是一例,设为多个代表点的节点也可包含除了这些以外的点。本例中,通过机器人来握持第二操作对象T2,由此,从第一节点p11、第二节点p12、第三节点p13、第四节点子p14及第五节点p15位于一直线上的左侧的状态,迁移为第一节点p11、第二节点p12、第三节点p13、第四节点子p14及第五节点p15的位置参差不齐的右侧的状态。

模拟装置10生成学习数据,所述学习数据包含表示第二操作对象T2的模型的构成条件、对第二操作对象T2施加的外力的条件、以及表示模拟中的位于第二操作对象T2表面的多个代表点(第一~第五节点)的举动的数据。并且,模拟装置10通过使用学习数据的监督学习而生成学习模型,所述学习模型将表示第二操作对象T2的模型的构成条件、对第二操作对象T2施加的外力的条件、以及多个代表点(第一~第五节点)的初始条件作为输入,而输出表示多个代表点(第一~第五节点)的举动的数据。学习模型并非直接执行对物理现象进行再现的模拟,而是预测多个代表点的位置、速度、运动量及加速度中的至少任一个。

这样,通过任意方法来模拟表示第二操作对象T2的模型的举动,并通过使用所述模拟结果的监督学习来生成学习模型,由此,能够将运算负荷大的模拟替换为运算负荷相对较小的学习模型对代表点的举动的预测,从而能够降低包含机器人及操作对象的整体的模拟所需的运算负荷,能够减少运算量。

以上说明的实施方式是为了便于理解本发明,并非用来限定地解释本发明。实施方式所包括的各元件与其配置、材料、条件、形状及尺寸等并不限定于例示者,而能够进行适当变更。而且,能够将不同的实施方式中所示的结构彼此局部替换或组合。

[附注1]

一种模拟装置(10),包括:

第一设定部(11),设定表示操作对象的模型的构成条件;

第二设定部(12),设定对所述操作对象施加的外力的条件;

第一模拟部(13),在所述构成条件及所述外力的条件下,模拟所述操作对象的举动;

生成部(14),生成学习数据,所述学习数据包含所述构成条件、所述外力的条件以及表示所述第一模拟部(13)所进行的模拟中的位于所述操作对象表面的多个代表点的举动的数据;以及

学习部(15),通过使用所述学习数据的监督学习而生成学习模型,所述学习模型将所述构成条件、所述外力的条件及所述多个代表点的初始条件作为输入,而输出表示所述多个代表点的举动的数据。

[附注2]

根据权利要求1所述的模拟装置(10),其中

所述生成部(14)所生成的所述学习数据中,包含所述构成条件、所述第一模拟部(13)所进行的模拟的规定时刻的所述外力的条件、及表示所述规定时刻的所述多个代表点的举动的数据来作为输入数据,且包含表示从所述规定时刻经过规定时间后的时刻的所述多个代表点的举动的数据来作为输出数据。

[附注3]

根据权利要求1或2所述的模拟装置(10),还包括:

第二模拟部(17),模拟机器人的举动;以及

预测部(19),将在所述第二模拟部(17)所进行的模拟中由所述机器人施加至所述操作对象的外力的条件及所述构成条件输入至所述学习模型,而预测所述多个代表点的举动,

所述第二模拟部(17)对由所述预测部(19)所预测的所述多个代表点的举动与所模拟的所述机器人的举动进行合成。

[附注4]

根据权利要求1至3中任一项所述的模拟装置(10),其中

所述操作对象包含柔性物、液体及气体中的任一个。

[附注5]

根据权利要求4所述的模拟装置(10),其中

当所述操作对象为液体时,所述操作对象的表面为所述液体的液面,所述多个代表点的举动是由多个位置处的所述液面的铅垂方向的举动来表示。

[附注6]

根据权利要求5所述的模拟装置(10),其中

所述第一模拟部(13)使用将所述液体分解为多个粒子的所述模型,来模拟所述多个粒子的举动,

表示所述多个代表点的举动的数据是表示所述多个粒子中的、所述第一模拟部(13)所进行的模拟的规定时刻的位于所述液体的液面的一部分粒子的举动的数据。

[附注7]

根据权利要求1至6中任一项所述的模拟装置(10),其中

所述构成条件包含表示所述操作对象的挠性的条件及表示粘性的条件中的任一个。

[附注8]

根据权利要求1至7中任一项所述的模拟装置(10),其中

所述第一模拟部(13)使用将所述操作对象分解为通过节点而连接的多个构成元素的所述模型,来模拟所述节点的举动,

所述多个代表点的数量少于所述节点的数量。

[附注9]

一种模拟方法,包括:

设定表示操作对象的模型的构成条件;

设定对所述操作对象施加的外力的条件;

在所述构成条件及所述外力的条件下,模拟所述操作对象的举动;

生成学习数据,所述学习数据包含所述构成条件、所述外力的条件以及表示所述第一模拟部(13)所进行的模拟中的位于所述操作对象表面的多个代表点的举动的数据;以及

通过使用所述学习数据的监督学习而生成学习模型,所述学习模型将所述构成条件、所述外力的条件及所述多个代表点的初始条件作为输入,而输出表示所述多个代表点的举动的数据。

[附注10]

一种模拟程序,使配设于模拟装置(10)中的处理器作为下述部分发挥功能,即:

第一设定部(11),设定表示操作对象的模型的构成条件;

第二设定部(12),设定对所述操作对象施加的外力的条件;

第一模拟部(13),在所述构成条件及所述外力的条件下,模拟所述操作对象的举动;

生成部(14),生成学习数据,所述学习数据包含所述构成条件、所述外力的条件以及表示所述第一模拟部(13)所进行的模拟中的位于所述操作对象表面的多个代表点的举动的数据;以及

学习部(15),通过使用所述学习数据的监督学习而生成学习模型,所述学习模型将所述构成条件、所述外力的条件及所述多个代表点的初始条件作为输入,而输出表示所述多个代表点的举动的数据。

相关技术
  • 化妆模拟系统、化妆模拟装置、化妆模拟方法以及化妆模拟程序
  • 模拟装置、模拟方法及模拟程序
技术分类

06120112495966