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

上传人:a3 文档编号:5616226 上传时间:2019-02-24 格式:PDF 页数:35 大小:5.21MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310428973.0

申请日:

2013.09.18

公开号:

CN103676662A

公开日:

2014.03.26

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G05B 17/02申请日:20130918|||公开

IPC分类号:

G05B17/02

主分类号:

G05B17/02

申请人:

欧姆龙株式会社

发明人:

森谷俊洋; 柴田义也; 岛川春奈; 浪江正树; 阪口泰规

地址:

日本京都府

优先权:

2012.09.21 JP 2012-207690

专利代理机构:

北京市柳沈律师事务所 11105

代理人:

金景花

PDF下载: PDF下载
内容摘要

提供一种可高精度地模拟被机械所处理的对象物的追随动作的模拟装置、模拟方法以及模拟程序。模拟装置包括执行控制程序的模拟的处理器,该控制程序在对处理对象物的机械的活动进行控制的控制器中执行。处理器包括:动作控制部件,根据控制程序,在虚拟空间中基于用于使与机械对应的虚拟机械活动的动作指令来控制虚拟机械的活动;判断部件,基于被虚拟机械所处理且与对象物对应的虚拟对象物的模型数据和虚拟机械的模型数据,判断可供虚拟机械作用的作用空间与虚拟对象物重叠的区域的体积是否为预先设定的基准值以上;以及追随部件,在体积为基准值以上的情况下,使虚拟对象物追随基于动作指令的虚拟机械的活动。

权利要求书

权利要求书
1.  一种模拟装置,包括执行控制程序的模拟的处理器,该控制程序在对处理对象物的机械的活动进行控制的控制器中执行,
所述处理器包括:
动作控制部件,根据所述控制程序,在虚拟空间中基于用于使与所述机械对应的虚拟机械活动的动作指令来控制所述虚拟机械的活动;
判断部件,基于被所述虚拟机械所处理且与所述对象物对应的虚拟对象物的模型数据和所述虚拟机械的模型数据,判断可供所述虚拟机械作用的作用空间与所述虚拟对象物重叠的区域的体积是否为预先设定的基准值以上;以及
追随部件,在所述体积为所述基准值以上的情况下,使所述虚拟对象物追随基于所述动作指令的所述虚拟机械的活动。

2.  如权利要求1所述的模拟装置,其中,
所述判断部件将所述作用空间分割为多个单位区域,判定所述经分割而成的各单位区域是否为包含所述虚拟对象物的区域,并基于判定为是包含所述虚拟对象物的区域的单位区域的个数,计算所述作用空间的体积中的所述虚拟对象物所占的部分的体积。

3.  如权利要求1所述的模拟装置,其中,
所述判断部件将所述虚拟对象物分割为多个单位区域,判定所述经分割而成的各单位区域是否包含在所述作用空间中,并基于判定为所述包含在所述作用空间中的单位区域的个数,计算所述虚拟对象物的体积中的与所述作用空间重叠的部分的体积。

4.  如权利要求3所述的模拟装置,其中,
对所述虚拟对象物的每个模型数据决定所述基准值。

5.  如权利要求1至4的任一项所述的模拟装置,其中,
所述作用空间包含预先设定为与所述机械的可动范围对应的所述虚拟机械的可动范围。

6.  一种在计算机中进行的模拟方法,
所述计算机包括执行控制程序的模拟的处理器,该控制程序在对处理对象物的机械的活动进行控制的控制器中执行,
所述模拟方法包括:
所述处理器根据所述控制程序,在虚拟空间中基于用于使与所述机械对应的虚拟机械活动的动作指令来控制所述虚拟机械的活动的步骤;
所述处理器基于被所述虚拟机械所处理且与所述对象物对应的虚拟对象物的模型数据和所述虚拟机械的模型数据,判断可供所述虚拟机械作用的作用空间与所述虚拟对象物重叠的区域的体积是否为预先设定的基准值以上的步骤;以及
所述处理器在所述体积为所述基准值以上的情况下,使所述虚拟对象物追随基于所述动作指令的所述虚拟机械的活动的步骤。

7.  一种在计算机中执行的模拟程序,
所述计算机包括执行控制程序的模拟的处理器,该控制程序在对处理对象物的机械的活动进行控制的控制器中执行,
所述模拟程序使所述处理器执行如下步骤:
根据所述控制程序,在虚拟空间中基于用于使与所述机械对应的虚拟机械活动的动作指令来控制所述虚拟机械的活动的步骤;
基于被所述虚拟机械所处理且与所述对象物对应的虚拟对象物的模型数据和所述虚拟机械的模型数据,判断可供所述虚拟机械作用的作用空间与所述虚拟对象物重叠的区域的体积是否为预先设定的基准值以上的步骤;以及
在所述体积为所述基准值以上的情况下,使所述虚拟对象物追随基于所述动作指令的所述虚拟机械的活动的步骤。

8.  一种模拟装置,包括执行控制程序的模拟的处理器,该控制程序在对处理对象物的机械的活动进行控制的控制器中执行,
所述处理器包括:
动作控制部件,根据所述控制程序,在虚拟空间中基于用于使与所述机械对应的虚拟机械活动的动作指令来控制所述虚拟机械的活动;
判断部件,基于被所述虚拟机械所处理且与所述对象物对应的虚拟对象物的模型数据和所述虚拟机械的模型数据,判断可供所述虚拟机械作用的作用空间与所述虚拟对象物重叠的部分的所述虚拟对象物的表面积是否为预先设定的基准值以上;以及
追随部件,在所述表面积为所述基准值以上的情况下,使所述虚拟对象物追随基于所述动作指令的所述虚拟机械的活动。

9.  一种模拟装置,包括执行控制程序的模拟的处理器,该控制程序在对处理对象物的机械的活动进行控制的控制器中执行,
所述处理器包括:
动作控制部件,根据所述控制程序,在虚拟空间中基于用于使与所述机械对应的虚拟机械活动的动作指令来控制所述虚拟机械的活动;
判断部件,基于被所述虚拟机械所处理且与所述对象物对应的虚拟对象物的模型数据和所述虚拟机械的模型数据,判断可供所述虚拟机械作用的作用空间与所述虚拟对象物不重叠的区域的体积是否小于预先设定的基准值;以及
追随部件,在所述体积小于所述基准值的情况下,使所述虚拟对象物追随基于所述动作指令的所述虚拟机械的活动。

说明书

说明书模拟装置、模拟方法以及模拟程序
技术领域
本发明涉及模拟装置、模拟方法以及模拟程序,尤其,涉及适合执行在对处理对象物的机械的活动进行控制的控制器中执行的控制程序的模拟的模拟装置、模拟方法以及模拟程序。
背景技术
以往,作为在对物体的动作进行模拟时使模型追随其他的模型而动作的方式,已知基于从模型提取出的模型间的依存关系来实现模型的追随动作的技术。
例如,特开平9-258815号公报(专利文献1)公开了运动连锁模拟系统。运动连锁模拟系统在计算机内具有物体的模型,关于模型设定相互进行作用的模型和被作用的模型的主从关系,根据主从关系来模拟进行运动的模型的运动连锁。运动连锁模拟系统包括:模型提取部,自动提取应设定主从关系的模型;主从关系设定部,基于模型间的关系来自动设定主从关系;以及追随动作处理部,使模型根据主从关系来动作。
【现有技术文献】
【专利文献】
【专利文献1】特开平9-258815号公报
但是,根据专利文献1中的技术,在对使被机械所处理的对象物追随该机械的追随动作进行模拟时,实际上连不能追随该机械的活动的对象物也进行追随的模拟结果的情况也较多。
发明内容
本发明是为了解决上述的问题而完成的,其目的之一在于,提供一种能够高精度地模拟被机械所处理的对象物的追随动作的模拟装置、模拟方法以及模拟程序。
根据一个实施方式的模拟装置包括执行控制程序的模拟的处理器,该控 制程序在对处理对象物的机械的活动进行控制的控制器中执行。处理器包括:动作控制部件,根据控制程序,在虚拟空间中基于用于使与机械对应的虚拟机械活动的动作指令来控制虚拟机械的活动;判断部件,基于被虚拟机械所处理且与对象物对应的虚拟对象物的模型数据和虚拟机械的模型数据,判断可供虚拟机械作用的作用空间与虚拟对象物重叠的区域的体积是否为预先设定的基准值以上;以及追随部件,在体积为基准值以上的情况下,使虚拟对象物追随基于动作指令的虚拟机械的活动。
优选地,判断部件将作用空间分割为多个单位区域,判定经分割而成的各单位区域是否为包含虚拟对象物的区域,并基于判定为是包含虚拟对象物的区域的单位区域的个数,计算作用空间的体积中的虚拟对象物所占的部分的体积。
优选地,判断部件将虚拟对象物分割为多个单位区域,判定经分割而成的各单位区域是否包含在作用空间中,并基于判定为包含在作用空间中的单位区域的个数,计算虚拟对象物的体积中的与作用空间重叠的部分的体积。
优选地,对虚拟对象物的每个模型数据决定基准值。
优选地,作用空间包含预先设定为与机械的可动范围对应的虚拟机械的可动范围。
根据其他的实施方式,提供在计算机中进行的模拟方法。计算机包括执行控制程序的模拟的处理器,该控制程序在对处理对象物的机械的活动进行控制的控制器中执行。模拟方法包括:处理器根据控制程序,在虚拟空间中基于用于使与机械对应的虚拟机械活动的动作指令来控制虚拟机械的活动的步骤;处理器基于被虚拟机械所处理且与对象物对应的虚拟对象物的模型数据和虚拟机械的模型数据,判断可供虚拟机械作用的作用空间与虚拟对象物重叠的区域的体积是否为预先设定的基准值以上的步骤;以及处理器在体积为基准值以上的情况下,使虚拟对象物追随基于动作指令的虚拟机械的活动的步骤。
根据再其他的实施方式,提供在计算机中执行的模拟程序。计算机包括执行控制程序的模拟的处理器,该控制程序在对处理对象物的机械的活动进行控制的控制器中执行。模拟程序使处理器执行如下步骤:根据控制程序,在虚拟空间中基于用于使与机械对应的虚拟机械活动的动作指令来控制虚拟机械的活动的步骤;基于被虚拟机械所处理且与对象物对应的虚拟对象物的 模型数据和虚拟机械的模型数据,判断可供虚拟机械作用的作用空间与虚拟对象物重叠的区域的体积是否为预先设定的基准值以上的步骤;以及在体积为基准值以上的情况下,使虚拟对象物追随基于动作指令的虚拟机械的活动的步骤。
根据再其他实施方式的模拟装置包括执行控制程序的模拟的处理器,该控制程序在对处理对象物的机械的活动进行控制的控制器中执行。处理器包括:动作控制部件,根据控制程序,在虚拟空间中基于用于使与机械对应的虚拟机械活动的动作指令来控制虚拟机械的活动;判断部件,基于被虚拟机械所处理且与对象物对应的虚拟对象物的模型数据和虚拟机械的模型数据,判断可供虚拟机械作用的作用空间与虚拟对象物重叠的部分的虚拟对象物的表面积是否为预先设定的基准值以上;以及追随部件,在表面积为基准值以上的情况下,使虚拟对象物追随基于动作指令的虚拟机械的活动。
根据再其他实施方式的模拟装置包括执行控制程序的模拟的处理器,该控制程序在对处理对象物的机械的活动进行控制的控制器中执行。处理器包括:动作控制部件,根据控制程序,在虚拟空间中基于用于使与机械对应的虚拟机械活动的动作指令来控制虚拟机械的活动;判断部件,基于被虚拟机械所处理且与对象物对应的虚拟对象物的模型数据和虚拟机械的模型数据,判断可供虚拟机械作用的作用空间与虚拟对象物不重叠的区域的体积是否小于预先设定的基准值;以及追随部件,在体积小于基准值的情况下,使虚拟对象物追随基于动作指令的虚拟机械的活动。
能够高精度地模拟被机械所处理的对象物的追随动作。
附图说明
图1是用于说明实施方式1的控制系统的结构的图。
图2是用于说明实施方式1的PC6的硬件结构的图。
图3是通过CPU执行控制器支持程序而实现的功能模块图。
图4是用于说明实施方式1的模拟部的功能的详细的方框图。
图5是表示实施方式1的模拟的3D空间的图。
图6(a)~(c)是表示实施方式1的模拟的状况的图。
图7是表示实施方式1的模拟的控制的流程的流程图。
图8是表示实施方式1的追随条件的判定处理的流程的流程图。
图9是用于说明实施方式1的虚拟自动装置(robot)的把持空间的分割方式的图。
图10是用于说明图8所示的步骤S506的判断处理方式的图。
图11是表示实施方式2中的模拟的3D空间的图。
图12(a)~(c)是表示实施方式2的模拟的状况的图。
图13是表示实施方式2的追随条件的判定处理的流程的流程图。
图14是用于说明实施方式2的虚拟工件(work)的分割方式的图。
图15是用于说明图14所示的步骤S606的判定处理方式的图。
图16(a)~(c)是表示比较例的模拟的状况的图。
图17是用于说明实施方式2的变形例的虚拟气筒(air cylinder)的可动空间的分割方式的图。
图18是用于说明实施方式2的变形例的单位区域是否为包含虚拟工件的区域的判断方式的图。
图19是表示实施方式3的追随条件的判定处理的流程的流程图。
图20是用于说明实施方式3的虚拟工件的分割方式的图。
图21是用于说明图20所示的步骤S706的判定处理方式的图。
具体实施方式
以下,参照附图说明本发明的实施方式。在以下的说明中,对于同一个部件赋予同一个标号。它们的名称以及功能也是相同的。因此,不重复关于它们的详细的说明。
[实施方式1]
<控制系统的整体结构>
图1是用于说明实施方式1的控制系统的结构的图。参照图1,实施方式1的控制系统包括服务器2、网络4、PC(Personal Computer,个人计算机)6、控制器14、控制对象装置16。
服务器2经由网络4与PC6连接。PC6与对控制对象装置16进行控制的控制器14以可通信的方式连接。
PC6相当于一实施方式中的模拟装置。在PC6中,安装有包含模拟程序的控制器支持程序8,且存储有用户制作的控制程序10。CD-ROM(Compact Disc-Read Only Memory,紧凑型只读存储盘)12存储控制器支持程序8。在 PC6中安装的控制器支持程序8是从该CD-ROM12安装的程序。
控制器14对控制对象装置16的活动进行控制。作为一例,控制器14使用PLC(Programmable Logic Controller,可编程逻辑控制器)。在该PLC中包含所谓的动作(motion)控制功能。控制器14存储用于规定对于控制对象装置16的控制内容的控制程序15。控制器14按每个控制周期将控制程序15执行一圈。这里,在控制器14中存储的控制程序15为将在PC6中存储的控制程序10进行了复制的复制数据,且是从PC6发回的数据。
控制对象装置16包含伺服电动机、步进电动机等的电动机18以及对电动机进行驱动的电动机驱动器17。
在电动机18中,从电动机驱动器17被提供驱动电流。电动机驱动器17从执行控制程序15的控制器14按每个控制周期被提供位置的指令值,并将与其对应的驱动电流提供给电动机18。在电动机18为例如伺服电动机的情况下,在电动机18中包含编码器,由编码器检测出电动机18的旋转位置的实测值。电动机驱动器17将电动机的旋转位置的实测值利用于反馈控制。
另外,在上述中,说明了经由CD-ROM12而在PC6中安装了模拟程序的情况,但安装的方式并不特别限定于此。例如,也可以是模拟程序从服务器2经由网络4下载到PC6中。这对于控制程序也是相同的。
<PC的硬件结构>
图2是用于说明实施方式1的PC6的硬件结构的图。参照图2,PC6包含作为处理部件的CPU901、作为存储部件的ROM902、RAM903以及HDD904、作为数据读取部的CD-ROM驱动装置908、作为通信部件的通信IF909、作为显示部件的监视器907、作为输入部件的键盘905以及鼠标906。另外,这些部位经由内部总线910相互连接。
CPU901读出在ROM902、RAM903、HDD904中存储的程序以及数据,并执行程序而控制PC6的各部分。CPU901一般为微处理器。另外,该硬件也可以是CPU以外的FPGA(Field Programmable Gate Array,现场可编程门阵列)、ASIC(Application Specific Integrated Circuit,专用集成电路)以及具有其他的运算功能的电路等。
HDD904一般是非易失性的磁性存储器,存储通过CD-ROM驱动装置908而从CD-ROM12读取到的模拟程序。此外,HDD904也存储控制程序15。
另外,也可以是模拟程序在CD-ROM12以外的其他的存储介质中存储, CPU901经由与存储介质对应的存储器接口(IF)而读取该模拟程序的方式。例如,也可以是经由DVD(Digital Versatile Disk,数字视频盘)-ROM驱动装置而从DVD-ROM读取该模拟程序的方式,也可以是经由USB(Universal Serial Bus,通用串行总线)接口而从USB存储器读取该模拟程序的方式。
CPU901将在HDD904中存储的控制器支持程序8在RAM903等中展开而执行。
RAM903为易失性存储器,具有作为工作存储器的功能。ROM902一般存储操作系统(OS)等的程序。
通信接口(IF)909一般支持以太网(注册商标)以及USB等通用的通信协议,经由网络4与服务器2之间提供数据通信且与控制器14之间提供数据通信。
监视器907由液晶显示装置、CRT(Cathode Ray Tube,阴极射线管)、有机EL(Electro Luminescence,电致发光)装置、等离子显示器装置等构成,显示PC6的处理结果等。键盘905接受用户的键输入,鼠标906接受用户的指示操作。
<功能结构>
图3是通过CPU901执行控制器支持程序8而实现的功能模块图。参照图3,这里,示出了用户接口部802、显示数据制作部804、模拟部806、控制程序存储部808、控制程序编辑部810、控制器接口部812。
用户接口部802制作在PC6的监视器907中显示的窗口画面的内容,此外,接受键盘905或鼠标906的用户的操作。
控制程序编辑部810接受用户的控制程序的输入以及编辑。在为了执行控制程序而需要编译的情况下,也进行编译。所制作的控制程序经由控制器接口部812而传送到控制器14。此外,所制作的控制程序存储在HDD904的规定的区域即控制程序存储部808中。此外,控制程序编辑部810也能够经由控制器接口部812读出在控制器14中存储的控制程序15而进行编辑。
模拟部806是控制器14的模拟器。模拟部806对根据在控制程序存储部808中存储的控制程序10而控制器14执行控制程序15的动作进行模拟,算出控制器14应按每个控制周期输出的位置的指令值。
此外,模拟部806能够对通过外部信号到来而对控制程序15的动作产生影响的状态进行模拟,或者通过执行控制程序15而控制器14的存储器的存储内 容等的控制器14的内部状态发生变化,对该变化对控制程序15的动作产生影响的状态进行模拟。
此外,模拟部806经由用户接口部802接受关于执行模拟的用户的指示。即,用户接口部802也作为接受对于模拟部806的用户的指示的部件起作用。
显示数据制作部804制作用于显示通过模拟部806而制作的执行结果数据的时间性的变化的显示数据。显示数据制作部804通过将所制作的显示数据传送到用户接口部802,在PC6的监视器907中以曲线或字符的方式或3D表现的方式显示显示数据。
<模拟部的功能结构>
图4是用于说明实施方式1的模拟部806的功能的详细的方框图。
模拟控制部820从控制程序存储部808读入控制程序10,执行控制程序10的模拟或者从中途开始再次执行模拟。伴随于此,模拟控制部820对执行结果数据存储部830与模型数据存储部840之间的流程进行控制。执行结果数据存储部830以及模型数据存储部840为分别由RAM903或者HDD904实现的功能。
此外,模拟控制部820作为主要的功能而包含动作控制部822、判断部824以及追随控制部826。另外,动作控制部822为通过模拟部806执行后述的机械控制模拟器而实现的功能。此外,判断部824以及追随控制部826为通过模拟部806执行后述的3D模拟器而实现的功能。
动作控制部822根据控制程序10,在虚拟空间中基于用于使与机械对应的虚拟机械活动的动作指令来控制虚拟机械的活动。
判断部824基于被虚拟机械所处理且与对象物对应的虚拟对象物的模型数据和虚拟机械的模型数据,判断可供虚拟机械作用的作用空间(在实施方式1中为后述的把持空间)与虚拟对象物重叠的区域的体积是否为预先设定的基准值以上。更具体而言,判断部824将作用空间分割为多个单位区域,判定经分割而成的各单位区域是否为包含虚拟对象物的区域。然后,判断部824基于判定为是包含虚拟对象物的区域的单位区域的个数,计算在作用空间的体积中、虚拟对象物所占的部分的体积。另外,作用空间为机械可对对象物作用的空间。
追随控制部826基于该体积为基准值以上的判断结果,使虚拟对象物追随基于该动作指令的虚拟机械的活动。
执行结果数据存储部830存储用于显示的执行结果数据。
模型数据存储部840存储对实际空间的自动装置、工件、输送机、支架等的物体进行了模型化的模型数据。更具体而言,模型数据存储部840存储与实际空间的物体对应的虚拟空间中的虚拟物体的形状、动作的特征、功能、性能、位置、方向等有关的模型数据。
<模拟控制的流程>
(概略)
图5是表示实施方式1的模拟的3D空间的图。参照图5,在实施方式1中,在作为与实际空间对应的虚拟空间的3D空间中,配置有与实际空间的自动装置对应的虚拟自动装置500、与实际空间的工件(对象物)对应的虚拟工件(虚拟对象物)530、与用于放置实际空间的工件的支架对应的虚拟支架550。另外,一般,自动装置为具有把持工件的把持机构的机器人手。
模拟部806一边参照虚拟机械和虚拟对象物的模型数据,一边执行3D模拟器和机械控制模拟器。
3D模拟器基于数据描图中取得的结果,在3D空间中显示目标(在实施方式1中为虚拟自动装置500、虚拟工件530以及虚拟支架550)。此外,3D模拟器判断使由虚拟自动装置500处理的虚拟工件530追随虚拟自动装置500的活动的追随条件是否成立。换言之,3D模拟器判断是否使由虚拟自动装置500处理的虚拟工件530追随虚拟自动装置500的活动。3D模拟器在追随条件成立的情况下,开始使虚拟工件530追随虚拟自动装置500的活动的追随动作控制。在追随动作控制开始的情况下,3D模拟器计算追随虚拟自动装置500的虚拟工件530的状态。
机械控制模拟器对3D空间中的虚拟机械(在实施方式1中为虚拟自动装置500、虚拟支架550)进行控制。更具体而言,机械控制模拟器计算对于虚拟机械的控制的指令值,并计算对于该指令值的虚拟机械的活动。机械控制模拟器例如基于经由用户接口部802的来自用户的动作指令(或者,根据程序而输出的动作指令)来计算虚拟机械的活动。
实施方式1的模拟的控制是通过3D模拟器以及机械控制模拟器大致执行如以下的处理而实现。首先,(1)机械控制模拟器将计算出的虚拟机械、虚拟对象物的状态发送到3D模拟器。接着,(2)3D模拟器基于该接收到的虚拟机械的状态以及虚拟对象物的状态,将虚拟机械以及虚拟对象物显示在3D空间中。接着,(3)3D模拟器判断使虚拟对象物追随虚拟机械的追随条件 是否成立,在判断为追随条件成立的情况下,开始使虚拟对象物追随虚拟机械的活动的追随动作控制。
这里,按照时序方式说明实施方式1的模拟的状况。
图6是表示实施方式1的模拟的状况的图。
参照图6,虚拟自动装置500根据动作指令,为了把持在虚拟支架550的上面放置的虚拟工件530而沿着图的下方向移动(图6的状态(a))。若从图6的状态(a)经过一定时间,则虚拟自动装置500为了把持虚拟工件530而进一步接近虚拟工件530(图6的状态(b))。然后,若从图6的状态(b)经过一定时间,则成为通过虚拟自动装置500的把持用的臂夹持的(把持对象物的)把持空间与虚拟工件530重叠的状态。这里,在把持空间的体积中、由虚拟工件530所占的体积成为了预先设定的基准值以上(例如,5成以上)的情况下,使虚拟工件530追随虚拟自动装置500的活动的追随条件成立。然后,若虚拟自动装置500沿着图的上方向移动,则虚拟工件530追随虚拟自动装置500的活动而沿着图的箭头(上)方向移动(图6的状态(c))。显示表示虚拟自动装置500把持着虚拟工件530的模拟结果。另外,虚拟自动装置500的把持空间预先设定为与实际空间的自动装置的把持空间对应。
(流程图)
图7是表示实施方式1的模拟的控制的流程的流程图。另外,图7所示的各步骤基本上通过CPU901执行控制程序10的模拟而实现。
参照图7,模拟部806通过执行机械控制模拟器,设定虚拟工件(图6中的虚拟工件530)的初始位置(步骤S302)。若以图6为例进行说明,则虚拟工件530的初始位置被设定为虚拟支架550的中心附近。
接着,模拟部806通过执行机械控制模拟器,根据控制程序10而开始虚拟机械(图6中的虚拟自动装置500)的控制(步骤S304)。
模拟部806通过执行机械控制模拟器,基于对于虚拟机械的动作指令来执行时序控制(步骤S306)。接着,模拟部806通过执行机械控制模拟器,基于对于虚拟机械的动作指令来执行动作控制(步骤S308)。更具体而言,模拟部806计算基于经由用户接口部802的来自用户的动作指令的指令值。
然后,模拟部806计算作为动作控制的结果的虚拟机械以及虚拟工件的状态(步骤S310),并将表示计算出的虚拟机械以及虚拟工件的状态的信息发送到3D模拟器(步骤S312)。然后,模拟部806通过执行机械控制模拟器, 重复从步骤S306的处理。
接着,模拟部806通过执行3D模拟器,接收从机械控制模拟器发送的表示虚拟机械以及虚拟工件的状态的信息(步骤S110)。
接着,模拟部806通过执行3D模拟器,判断是否执行使虚拟工件追随虚拟机械的活动的追随动作控制(步骤S111)。更具体而言,模拟部806判断后述的步骤S120中的追随动作控制是否开始。
在追随动作控制没有开始的情况下(步骤S111中“否”的情况下),模拟部806执行从后述的步骤S114的处理。相对于此,在追随动作控制已经开始的情况下(步骤S111中“是”的情况下),模拟部806通过执行3D模拟器,计算追随虚拟机械的虚拟工件的状态(通过虚拟机械的活动而移动的虚拟工件的状态)(步骤S112)。
然后,基于虚拟机械的状态以及虚拟工件的状态,将虚拟机械以及虚拟工件显示在监视器907的3D空间中(步骤S114)。此时,与显示数据制作部804交接该显示所需的执行结果数据。
通过进行上述的时序控制以及动作控制等,图6所示的各状态显示在监视器907中。更具体而言,在使虚拟工件追随虚拟自动装置500的追随动作控制没有开始的情况下(步骤S111中“否”的情况下),在监视器907中显示相对于配置在虚拟支架550的中心附近的虚拟工件530,虚拟自动装置500沿着图的下方向移动的状态(图6的状态(a))或虚拟自动装置500接近虚拟工件530的状态(图6的状态(b))。即,在监视器907中显示虚拟工件530不追随虚拟自动装置500的状态。
相对于此,在后述的步骤S120中追随动作控制开始的情况下(步骤S111中“是”的情况下),在监视器907中显示虚拟工件530追随虚拟自动装置500(被把持的)状态(图6的状态(c))。
再次参照图7,模拟部806通过执行3D模拟器,执行判定用于使虚拟工件追随虚拟机械的活动的追随条件是否成立的处理(步骤S116)。
图8是表示实施方式1的追随条件的判定处理的流程的流程图。在这里,说明图6所示的使虚拟工件530追随虚拟自动装置500的活动时的追随条件。
参照图8,模拟部806通过执行3D模拟器,将通过虚拟自动装置500的把持用的两个臂夹持的把持空间分割为预先设定的大小的单位区域(例如,长方体)(步骤S502)。
图9是用于说明实施方式1的虚拟自动装置500的把持空间的分割方式的图。
参照图9,模拟部806基于虚拟自动装置500的模型数据,提取虚拟自动装置500的把持空间。然后,模拟部806将所提取的把持空间分割为单位区域。该例表示把持空间被分割为75个单位区域的情况。
再次参照图8,模拟部806将表示包含虚拟工件530的单位区域的个数的变量t设置为0(步骤S504)。即,变量t表示在把持空间的体积中、虚拟工件530所占的(重叠的)部分的体积。因此,在把持空间全部由虚拟工件530所占的情况下,变量t的值成为75,在把持空间中不存在虚拟工件530(在把持空间中完全不包含虚拟工件530)的情况下,变量t的值成为0。
接着,模拟部806将在存储部件(例如,RAM903)中存储的变量n设置为1(步骤S505)。在实施方式1中,在RAM903中,作为变量N而保持有分割了把持空间的单位区域的个数。换言之,变量N表示把持空间的全部体积。
接着,模拟部806判断第n个单位区域是否为包含虚拟工件530的区域(是否由虚拟工件530所占)(步骤S506)。
图10是用于说明图8所示的步骤S506的判断处理方式的图。参照图10,模拟部806例如判定第8个(n=8)单位区域为包含虚拟工件530的区域(判定为“是”),判定第23个(n=23)单位区域不是包含虚拟工件530的区域(判定为“否”)。
再次参照图8,在第n个单位区域不是包含虚拟工件530的区域的情况下(步骤S506中“否”),模拟部806执行步骤S510的处理。相对于此,在第n个单位区域为包含虚拟工件530的区域的情况下,(步骤S506中“是”),模拟部806增加变量t的值(步骤S508),并执行步骤S510的处理。
接着,模拟部806判断变量n是否与变量N一致(步骤S510)。更具体而言,判断步骤S506的判断处理是否对全部单位区域执行。
在变量n与变量N不一致的情况下(步骤S510中“否”),模拟部806增加变量n的值(步骤S511),重复步骤S506以后的处理。相对于此,在变量n与变量N一致的情况下(步骤S510中“是”),模拟部806判断变量t的值是否为预先设定的基准值以上(步骤S512)。更具体而言,例如,作为使虚拟工件530追随虚拟自动装置500的活动的追随条件,以虚拟工件530占据把持空间的体积中的5成以上作为条件的情况下,基准值设定为把持空间的体积的一半 的值。这里,由于把持空间的体积为75,所以作为基准值而设定了38。
在变量t的值为基准值以上的情况下(步骤S512中“是”),模拟部806判定为追随条件成立(步骤S514),将处理返回到主处理(返回)。相对于此,在变量t的值不是基准值以上(小于基准值)的情况下(步骤S512中“否”),模拟部806判定为追随条件不成立(步骤S516),将处理返回到主处理(返回)。
另外,在上述中,说明了通过模拟部806计算在把持空间的体积中虚拟工件530所占的部分的体积来判定追随条件的成立与否,但也可以计算在把持空间的全部体积中虚拟工件530没有占据(没有重叠)的部分的体积。更具体而言,模拟部806在判定为第n个单位区域为包含虚拟工件530的区域的情况下,增加表示不包含虚拟工件530的单位区域的个数的变量i。但是,此时,模拟部806在变量i的值小于基准值时判定为追随条件成立,在变量i的值为基准值以上的情况下判定为追随条件不成立。
再次参照图7,模拟部806通过执行3D模拟器,基于步骤S116的判定处理来判断追随条件是否成立(步骤S118)。换言之,模拟部806判断是否应使虚拟工件追随虚拟机械的活动。在追随条件成立的情况下(步骤S118中“是”),模拟部806开始使虚拟工件追随虚拟机械的活动的追随动作控制(步骤S120),执行从步骤S110的处理。
相对于此,在追随条件不成立的情况下(步骤S118中“否”),模拟部806执行从步骤S110的处理。即,模拟部806不开始上述的追随动作控制而执行从步骤S110的处理。
在步骤S120中,使虚拟工件追随虚拟机械的活动的追随动作控制开始的情况下,模拟部806通过执行3D模拟器,反映了该追随动作控制的虚拟机械以及虚拟工件的状态显示在监视器907的3D空间中。即,例如,如图6的状态(c)所示,使虚拟工件530追随虚拟自动装置500的活动,虚拟自动装置500把持虚拟工件530的状况显示在监视器907的3D空间中。
根据实施方式1,在虚拟自动装置的把持空间被虚拟工件占据了一定以上的情况下,使虚拟工件追随虚拟自动装置的活动。因此,能够将在实际空间中自动装置可把持的工件以可被把持的方式进行模拟,能够将在实际空间中自动装置不能把持的工件以不能被把持的方式进行模拟。即,能够更高精度地模拟实际空间中的自动装置以及工件的活动。
[实施方式2]
在实施方式1中,说明了进行在机械为自动装置的情况下的模拟的例子。在实施方式2中,说明在机械为气筒的情况下的模拟。另外,实施方式2与实施方式1相比,在图8中说明的追随条件的判定方式不同。
在实施方式2中,由于<控制系统的整体结构>、<PC6的硬件结构>以及<功能结构>与实施方式1基本相同,所以不重复其详细的说明。
<模拟部的功能结构>
说明实施方式2的模拟部806的功能。由于除了模拟控制部820中的判断部824的功能稍微不同之外与实施方式1相同,所以关于相同部分不重复其详细的说明。
在实施方式2中,判断部824基于被虚拟机械所处理且与对象物对应的虚拟对象物的模型数据和虚拟机械的模型数据,判断可供虚拟机械作用的作用空间(在实施方式2中为后述的可动空间)与虚拟对象物重叠的区域的体积是否为预先设定的基准值以上。更具体而言,判断部824将虚拟对象物分割为多个单位区域,判定经分割而成的各单位区域是否包含在作用空间中。然后,判断部824基于判定为包含在作用空间的单位区域的个数,计算在虚拟对象物的体积中、与作用空间重叠的部分的体积。
<模拟控制的流程>
(概略)
图11是表示实施方式2中的模拟的3D空间的图。
参照图11,在实施方式2中,在与实际空间对应的虚拟的空间即3D空间中,配置有与实际空间的气筒对应的虚拟气筒600、与实际空间的工件对应的虚拟工件630、与实际空间的输送机对应的虚拟输送机650、655。更具体而言,虚拟工件630基本上放置在虚拟输送机650的上面,通过虚拟输送机650的传输带被驱动而沿着传输带被驱动的方向(图的搬运方向)移动。但是,在使虚拟工件630追随虚拟气筒600的活动的条件成立的情况下,若虚拟气筒600将活塞沿着图的右方向(挤压方向)挤压,则虚拟工件630沿着图的右方向推出。之后,虚拟工件630放置在虚拟输送机655的上面而沿着图的右下方向移动。一般,气筒具有通过气压被加压而活塞被挤压的机构。
大致上,模拟部806通过执行3D模拟器,在3D空间中显示目标(在实施方式2中为虚拟气筒600、虚拟工件630以及虚拟输送机650、655)。此外,3D模拟器判断使被虚拟气筒600所处理的虚拟工件630追随虚拟气筒600的活动 的追随条件是否成立。更具体而言,3D模拟器在虚拟工件630的体积中、与虚拟气筒600的可动空间重叠(包含)的部分的体积为一定以上的情况下(追随条件成立的情况下),使虚拟工件630追随虚拟气筒600的活动。即,3D模拟器开始使虚拟工件630追随虚拟气筒600的活动的追随动作控制。
此外,模拟部806通过执行机械控制模拟器来控制虚拟气筒600以及虚拟输送机650。
图12是表示实施方式2的模拟的状况的图。
参照图12,虚拟气筒600根据挤压活塞的动作指令,将活塞沿着图的右方向挤压。此时,在虚拟气筒600的(活塞的)可动范围(可动空间)中基本上不包含虚拟工件630的情况下(对应于图12的状态(a)、(c)),即使挤压虚拟气筒600的活塞,虚拟工件630也不会沿着右方向移动。相对于此,在虚拟气筒600的可动空间中包含一定以上的虚拟工件630的情况下(对应于图12的状态(b)),若虚拟气筒600的活塞被挤压,则虚拟工件630沿着右方向移动,通过虚拟输送机655搬运。即,在虚拟工件630的体积中、包含在可动空间中的部分的体积为一定以上的情况下,使虚拟工件630追随虚拟气筒600的活动的追随条件成立。另外,虚拟气筒600的可动空间被预先设定为与实际空间的气筒的可动空间对应。
上述的模拟结果反映如下情况:在实际空间中,在气筒的可动空间中基本上不包含工件的情况下(对应于3D空间中的图12的状态(a)、(c)),即使挤压活塞,也仅仅是工件的方向发生变化而不会推出。此外,在气筒的活塞的可动空间中包含一定以上的工件的情况下(对应于3D空间中的图12的状态(b)),若挤压活塞,则工件被推出。
(追随条件的判定处理)
这里,说明实施方式2中的追随条件的判定处理的流程(相当于图7中的步骤S116的部分)。另外,由于模拟部806的整体的控制的流程与实施方式1中的图7基本相同,所以不重复其详细的说明。
图13是表示实施方式2的追随条件的判定处理的流程的流程图。实施方式2的步骤S600相当于实施方式1的步骤S116。
参照图13,模拟部806通过执行3D模拟器,将虚拟工件630分割为预先设定的大小的单位区域(例如,长方体)(步骤S602)。
图14是用于说明实施方式2的虚拟工件630的分割方式的图。
参照图14,模拟部806基于虚拟工件630的模型数据,将虚拟工件630分割为多个单位区域。这个例子表示虚拟工件630被分割为24个单位区域的情况。
再次参照图13,模拟部806将表示在虚拟气筒600的可动空间中包含的单位区域的个数的变量t设置为0(步骤S604)。变量t表示在虚拟工件630的体积中包含在可动空间的部分的体积。例如,在虚拟工件630的全部包含在可动空间中的情况下,变量t的值成为24,在虚拟工件630不在可动空间中存在的情况下,变量t的值成为0。
接着,模拟部806将在RAM903中存储的变量n设置1(步骤S605)。在实施方式2中,在RAM903中,作为变量N而保持有分割了虚拟工件630的单位区域的个数。换言之,变量N表示虚拟工件630的全部体积。
接着,模拟部806判断第n个单位区域是否包含在可动空间中(步骤S606)。
图15是用于说明图14所示的步骤S606的判定处理方式的图。参照图15,模拟部806例如判定为第11个(n=11)单位区域包含在可动空间中,判定为第1个(n=1)单位区域不包含在可动空间中。
再次参照图13,在第n个单位区域不包含在可动空间中的情况下(步骤S606中“否”),执行步骤S610的处理。相对于此,在第n个单位区域包含在可动空间中的情况下(步骤S606中“是”),模拟部806增加变量t的值(步骤S608),并执行步骤S610的处理。
接着,模拟部806判断变量n是否与变量N一致(步骤S610)。更具体而言,模拟部806判断是否对全部单位区域执行了步骤S606中的判断处理。
在变量n与变量N不一致的情况下(步骤S610中“否”),模拟部806增加变量n的值(步骤S611),并重复从步骤S606的处理。相对于此,在变量n与变量N一致的情况下(步骤S610中“是”),模拟部806判断变量t的值是否为基准值以上(步骤S612)。更具体而言,例如,作为追随条件,以在虚拟工件630的体积中5成以上包含在可动空间中作为条件的情况下,基准值被设定为虚拟工件630的体积的一半的值。在这里,由于虚拟工件630的体积为24,所以作为基准值而设定了12。
在变量t的值为基准值以上的情况下(步骤S612中“是”),模拟部806判定为追随条件成立(步骤S614),将处理返回到主处理(返回)。相对于此,在变量t的值不是基准值以上(小于基准值)的情况下(步骤S612中“否”),模拟部806判定为追随条件不成立(步骤S616),将处理返回到主处理(返回)。
另外,也可以通过与实施方式1相同的想法,计算在虚拟工件630的全部体积中、不包含在可动空间中的体积。更具体而言,模拟部806在判断为第n个单位区域不包含在可动空间中的情况下,增加表示在可动空间中不包含的体积的变量i。此时,模拟部806在变量i的值小于基准值时判定为追随条件成立,在为基准值以上时判定为追随条件不成立。
此外,也可以根据虚拟工件630的形状(球、长方体、三角锥)、种类、重量等的规格,变更步骤S606中的基准值而进行判断。更具体而言,也可以按每个虚拟工件630作为模型数据而存储该基准值,模拟部806基于该基准值而执行步骤S612的处理。
通过如上述那样执行追随条件的判定处理,能够在虚拟空间中高精度地模拟在实际空间中的气筒与工件的活动。例如,作为本实施方式的追随条件的判定处理的比较例,考虑以虚拟气筒600与虚拟工件630成为了一定距离以下作为条件,使虚拟工件630追随虚拟气筒600的活动的情况。
图16是表示比较例的模拟的状况的图。
参照图16,虚拟气筒600根据挤压活塞的动作指令,将活塞沿着图的右方向挤压。此时,虚拟气筒600与虚拟工件630的最短距离d在图16的状态(a)~(c)中全部相同。即,若只要虚拟工件630稍微包含在虚拟气筒600的可动空间中,则最短距离d成为相同的值。这里,由于在最短距离d为一定距离以下的情况下追随条件成立,所以能够使虚拟工件630追随虚拟气筒600的活动。因此,表示在图16的状态(a)~(c)的所有状态中,若虚拟气筒600的活塞沿着右方向被挤压,则虚拟工件630沿着右方向移动的状况。
因此,在上述的比较例中,当实际上(实际空间上)在气筒的可动范围中基本不包含工件的情况下(图16的状态(a)、(c)),尽管即使挤压了活塞,(仅仅是工件的方向发生了变化)工件也不能被适当地推出,但是在图16的状态(a)、(c)中,成为追随虚拟气筒600的活动而虚拟工件630被推出的模拟结果。因此,可知在比较例中不能高精度地模拟实际空间的气筒以及工件的活动。
相对于此,在实施方式2的追随条件的判定处理中,如图12所示,能够高精度地模拟在实际空间中气筒以及工件的活动。此外,根据实施方式2,由于以在可动空间中包含的虚拟工件630的体积为基准来判定追随条件,所以模拟结果也难以依赖于虚拟工件630的形状、或者搬运来的虚拟工件630的方向, 能够更高精度地模拟虚拟机械以及虚拟工件的活动。
(追随条件的判定处理的变形例)
另外,也可以通过与在实施方式1中将把持空间分割为单位区域时相同的想法,作为变形例,将实施方式2中的可动空间分割为单位区域。即,模拟部806通过执行3D模拟器,将虚拟气筒600的可动空间分割为单位区域(例如,长方体)。
图17是用于说明实施方式2的变形例的虚拟气筒600的可动空间的分割方式的图。
参照图17,模拟部806基于虚拟气筒600的模型数据,将虚拟气筒600的可动空间分割为多个单位区域(例如,长方体)。这个例子表示单位区域被分割为40个单位区域的情况。
在上述的情况下,模拟部806判断第n个单位区域是否为包含虚拟工件630的区域。
图18是用于说明实施方式2的变形例的单位区域是否为包含虚拟工件630的区域的判断方式的图。
参照图18,模拟部806例如判断为第3个(n=3)单位区域为包含虚拟工件630的区域,判断为第18个(n=18)单位区域为不包含虚拟工件630的区域。
[实施方式3]
在实施方式1中,说明了在图8中说明的追随条件的判定处理中,作为单位区域而分割为长方体的例子。但在实施方式3中,说明在追随条件的判定处理中,将虚拟工件530的表面分割为多个单位区域(例如,长方形)的情况。
在实施方式3中,由于关于<控制系统的整体结构>、<PC6的硬件结构>以及<功能结构>与实施方式1基本相同,所以不重复其详细的说明。即,与实施方式1相比,实施方式3的不同点在于,在图8中说明的追随条件。
<模拟部的功能结构>
说明实施方式3的模拟部806的功能。由于除了模拟控制部820中的判断部824的功能稍微不同之外与实施方式1相同,所以对于相同部分不重复其详细的说明。
在实施方式3中,判断部824基于被虚拟机械所处理且与对象物对应的虚拟对象物的模型数据和虚拟机械的模型数据,判断可供虚拟机械作用的作用空间(在实施方式3中为把持空间)与虚拟对象物重叠的部分的虚拟对象物的 表面积是否为基准值以上。更具体而言,判断部824将虚拟对象物的表面分割为多个单位区域,判定经分割而成的各单位区域是否包含在作用空间中。然后,判断部824基于判定为包含的单位区域的个数,计算在虚拟对象物的全部表面积中、与作用空间重叠的部分的表面积。
<模拟控制的流程>
在实施方式3中,假设实施方式1中的图5的场景。此外,由于模拟部806的全体的控制的流程与实施方式1中的图7基本相同,所以不重复其详细的说明。
以下,说明实施方式3的追随条件的判定处理的流程(相当于图7中的步骤S116的部分)。
(追随条件的判定处理)
图19是表示实施方式3的追随条件的判定处理的流程的流程图。实施方式3的步骤S700相当于实施方式1的步骤S116。
参照图19,模拟部806通过执行3D模拟器,将虚拟工件530的表面分割为预先设定的大小的单位区域(例如,长方形)(步骤S702)。
图20是用于说明实施方式3的虚拟工件530的分割方式的图。
参照图20,模拟部806基于虚拟工件530的模型数据,将虚拟工件530的表面分割为多个单位区域。在这个例子中,示出了单位区域被分割为52个单位区域的例子。
再次参照图19,模拟部806将表示在虚拟自动装置500的把持空间中包含的单位区域的个数的变量t设置为0(步骤S704)。变量t表示在虚拟工件530的全部的表面积中、在把持空间中包含的部分的表面积。例如,在虚拟工件530的全部的表面包含在把持空间中的情况下,变量t的值成为52,在把持空间中完全不包含虚拟工件530的情况下,变量t的值成为0。
接着,模拟部806对在RAM903中存储的变量n设置1(步骤S705)。在实施方式3中,在RAM903中,作为变量N而保持有分割了虚拟工件530的表面的单位区域的个数。换言之,变量N表示虚拟工件530的全部表面积。
接着,模拟部806判断第n个单位区域是否包含在把持空间中(步骤S706)。
图21是用于说明图20所示的步骤S706的判定处理方式的图。
参照图21,模拟部806例如判定为第12个(n=12)单位区域包含在把持空间中,判定为第1个(n=1)单位区域不包含在把持空间中。
再次参照图19,在第n个单位区域不包含在把持空间中的情况下(步骤S706中“否”),模拟部806执行步骤S710的处理。相对于此,在第n个单位区域包含在把持空间中的情况下(步骤S706中“是”),模拟部806增加变量t的值(步骤S708),执行步骤S710的处理。
接着,模拟部806判断变量n是否与变量N一致(步骤S710)。更具体而言,模拟部806判断是否对全部单位区域执行了步骤S706中的判断处理。
在变量n与变量N不一致的情况下(步骤S710中“否”),增加变量n的值(步骤S711),模拟部806重复步骤S706以后的处理。相对于此,在变量n与变量N一致的情况下(步骤S710中“是”),模拟部806判断变量t的值是否为基准值以上(步骤S712)。更具体而言,例如,作为追随条件,在以在虚拟工件530的表面中的5成以上包含在把持空间中作为条件的情况下,基准值被设定为虚拟工件530的表面积的一半的值。在这里,由于虚拟工件530的表面积为52,所以作为基准值而设定26。
在变量t的值为基准值以上的情况下(步骤S712中“是”),模拟部806判定为追随条件成立(步骤S714),将处理返回到主处理(返回)。相对于此,在变量t的值不是基准值以上(小于基准值)的情况下(步骤S712中“否”),模拟部806判定为追随条件不成立(步骤S716),将处理返回到主处理(返回)。
根据实施方式3,在虚拟自动装置的把持空间中包含一定以上的虚拟工件的表面的情况下,使虚拟工件追随虚拟自动装置的活动。因此,能够将在实际空间中自动装置可把持的工件以可被把持的方式进行模拟,能够将在实际空间中自动装置不能把持的工件以不能被把持的方式进行模拟。即,能够更高精度地模拟实际空间中的自动装置以及工件的活动。
[其他的实施方式]
在上述的实施方式1中,说明了在追随条件的判定处理中将把持空间分割为单位区域的情况,但也可以通过与实施方式2相同的想法,将虚拟工件530分割为单位区域。即,模拟部806通过执行3D模拟器,将虚拟工件530分割为单位区域(例如,长方体)。模拟部806执行第n个单位区域是否包含在把持空间中的判断处理。然后,模拟部806在虚拟工件530的体积中、在把持空间中包含的部分的体积为一定以上的情况下判定为追随条件成立,在小于基准值的情况下判定为追随条件不成立。
此外,在上述的实施方式中,虚拟机械对应于实际空间的机械,虚拟对 象物对应于实际空间的对象物(工件)。但是,并不限定于此,也可以仅存在于作为虚拟空间的3D空间。据此,例如,能够在制作实际的装置之前,验证在控制程序的模拟中对象物是否追随机械的活动。
此外,在上述的实施方式中,说明了模拟部806执行的模拟器被分为3D模拟器以及机械控制模拟器的两个的情况。但是,并不限定于此,这两个也可以合并。若这样,则可以不进行在各个模拟器之间的数据的交换,所以能够高效地执行模拟。
另外,也能够提供通过使计算机起作用而执行在上述的流程图中说明的控制的程序。这样的程序也可以记录在附属于计算机的软盘、CD-ROM、ROM、RAM以及存储卡等的不是临时的计算机可读取的记录介质中,作为程序产品而提供。或者,也可以记录在内置于计算机的硬盘等的记录介质中来提供程序。此外,也可以通过经由网络的下载来提供程序。
程序也可以是在作为计算机的操作系统(OS)的一部分而被提供的程序模块中、将需要的模块以规定的排列且在规定的定时调用而执行处理者。此时,程序本身不包含上述模块,与OS协作而执行处理。这样的不包含模块的程序也可包含在本实施方式的程序中。
此外,本实施方式的程序也可以是编入其他的程序的一部分中而提供者。此时,在程序本身中也不包含在上述其他程序中包含的模块,与其他程序协作而执行处理。这样的编入其他程序中的程序也可包含在本实施方式的程序中。
应认为本次公开的实施方式在所有方面只是例示,并不是限制性的。本发明的范围是由权利要求书的范围所表示而不是上述说明,意图包含与权利要求书的范围等同的含义以及范围内的全部变更。
【标号说明】
2服务器、4网络、8控制器支持程序、10,15控制程序、12,902ROM、14控制器、16控制对象装置、17电动机驱动器、18电动机、500虚拟自动装置、530,630虚拟工件、550虚拟支架、600虚拟气筒、650,655虚拟输送机、802用户接口部、804显示数据制作部、806模拟部、808控制程序存储部、810控制程序编辑部、812控制器接口部、820模拟控制部、822动作控制部、824判断部、826追随控制部、830执行结果数据存储部、840模型数据存储部、901CPU、903RAM、904HDD、905键盘、906鼠标、 907监视器、908CD-ROM驱动装置、909通信IF、910内部总线。

模拟装置、模拟方法以及模拟程序.pdf_第1页
第1页 / 共35页
模拟装置、模拟方法以及模拟程序.pdf_第2页
第2页 / 共35页
模拟装置、模拟方法以及模拟程序.pdf_第3页
第3页 / 共35页
点击查看更多>>
资源描述

《模拟装置、模拟方法以及模拟程序.pdf》由会员分享,可在线阅读,更多相关《模拟装置、模拟方法以及模拟程序.pdf(35页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103676662 A (43)申请公布日 2014.03.26 CN 103676662 A (21)申请号 201310428973.0 (22)申请日 2013.09.18 2012-207690 2012.09.21 JP G05B 17/02(2006.01) (71)申请人 欧姆龙株式会社 地址 日本京都府 (72)发明人 森谷俊洋 柴田义也 岛川春奈 浪江正树 阪口泰规 (74)专利代理机构 北京市柳沈律师事务所 11105 代理人 金景花 (54) 发明名称 模拟装置、 模拟方法以及模拟程序 (57) 摘要 提供一种可高精度地模拟被机械所处理的对 象物。

2、的追随动作的模拟装置、 模拟方法以及模拟 程序。模拟装置包括执行控制程序的模拟的处理 器, 该控制程序在对处理对象物的机械的活动进 行控制的控制器中执行。处理器包括 : 动作控制 部件, 根据控制程序, 在虚拟空间中基于用于使与 机械对应的虚拟机械活动的动作指令来控制虚拟 机械的活动 ; 判断部件, 基于被虚拟机械所处理 且与对象物对应的虚拟对象物的模型数据和虚拟 机械的模型数据, 判断可供虚拟机械作用的作用 空间与虚拟对象物重叠的区域的体积是否为预先 设定的基准值以上 ; 以及追随部件, 在体积为基 准值以上的情况下, 使虚拟对象物追随基于动作 指令的虚拟机械的活动。 (30)优先权数据 (。

3、51)Int.Cl. 权利要求书 2 页 说明书 15 页 附图 17 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书15页 附图17页 (10)申请公布号 CN 103676662 A CN 103676662 A 1/2 页 2 1. 一种模拟装置, 包括执行控制程序的模拟的处理器, 该控制程序在对处理对象物的 机械的活动进行控制的控制器中执行, 所述处理器包括 : 动作控制部件, 根据所述控制程序, 在虚拟空间中基于用于使与所述机械对应的虚拟 机械活动的动作指令来控制所述虚拟机械的活动 ; 判断部件, 基于被所述虚拟机械所处理且与所述对象物对应的虚。

4、拟对象物的模型数据 和所述虚拟机械的模型数据, 判断可供所述虚拟机械作用的作用空间与所述虚拟对象物重 叠的区域的体积是否为预先设定的基准值以上 ; 以及 追随部件, 在所述体积为所述基准值以上的情况下, 使所述虚拟对象物追随基于所述 动作指令的所述虚拟机械的活动。 2. 如权利要求 1 所述的模拟装置, 其中, 所述判断部件将所述作用空间分割为多个单位区域, 判定所述经分割而成的各单位区 域是否为包含所述虚拟对象物的区域, 并基于判定为是包含所述虚拟对象物的区域的单位 区域的个数, 计算所述作用空间的体积中的所述虚拟对象物所占的部分的体积。 3. 如权利要求 1 所述的模拟装置, 其中, 所述。

5、判断部件将所述虚拟对象物分割为多个单位区域, 判定所述经分割而成的各单位 区域是否包含在所述作用空间中, 并基于判定为所述包含在所述作用空间中的单位区域的 个数, 计算所述虚拟对象物的体积中的与所述作用空间重叠的部分的体积。 4. 如权利要求 3 所述的模拟装置, 其中, 对所述虚拟对象物的每个模型数据决定所述基准值。 5. 如权利要求 1 至 4 的任一项所述的模拟装置, 其中, 所述作用空间包含预先设定为与所述机械的可动范围对应的所述虚拟机械的可动范 围。 6. 一种在计算机中进行的模拟方法, 所述计算机包括执行控制程序的模拟的处理器, 该控制程序在对处理对象物的机械的 活动进行控制的控制。

6、器中执行, 所述模拟方法包括 : 所述处理器根据所述控制程序, 在虚拟空间中基于用于使与所述机械对应的虚拟机械 活动的动作指令来控制所述虚拟机械的活动的步骤 ; 所述处理器基于被所述虚拟机械所处理且与所述对象物对应的虚拟对象物的模型数 据和所述虚拟机械的模型数据, 判断可供所述虚拟机械作用的作用空间与所述虚拟对象物 重叠的区域的体积是否为预先设定的基准值以上的步骤 ; 以及 所述处理器在所述体积为所述基准值以上的情况下, 使所述虚拟对象物追随基于所述 动作指令的所述虚拟机械的活动的步骤。 7. 一种在计算机中执行的模拟程序, 所述计算机包括执行控制程序的模拟的处理器, 该控制程序在对处理对象物。

7、的机械的 活动进行控制的控制器中执行, 所述模拟程序使所述处理器执行如下步骤 : 根据所述控制程序, 在虚拟空间中基于用于使与所述机械对应的虚拟机械活动的动作 权 利 要 求 书 CN 103676662 A 2 2/2 页 3 指令来控制所述虚拟机械的活动的步骤 ; 基于被所述虚拟机械所处理且与所述对象物对应的虚拟对象物的模型数据和所述虚 拟机械的模型数据, 判断可供所述虚拟机械作用的作用空间与所述虚拟对象物重叠的区域 的体积是否为预先设定的基准值以上的步骤 ; 以及 在所述体积为所述基准值以上的情况下, 使所述虚拟对象物追随基于所述动作指令的 所述虚拟机械的活动的步骤。 8. 一种模拟装置。

8、, 包括执行控制程序的模拟的处理器, 该控制程序在对处理对象物的 机械的活动进行控制的控制器中执行, 所述处理器包括 : 动作控制部件, 根据所述控制程序, 在虚拟空间中基于用于使与所述机械对应的虚拟 机械活动的动作指令来控制所述虚拟机械的活动 ; 判断部件, 基于被所述虚拟机械所处理且与所述对象物对应的虚拟对象物的模型数据 和所述虚拟机械的模型数据, 判断可供所述虚拟机械作用的作用空间与所述虚拟对象物重 叠的部分的所述虚拟对象物的表面积是否为预先设定的基准值以上 ; 以及 追随部件, 在所述表面积为所述基准值以上的情况下, 使所述虚拟对象物追随基于所 述动作指令的所述虚拟机械的活动。 9. 。

9、一种模拟装置, 包括执行控制程序的模拟的处理器, 该控制程序在对处理对象物的 机械的活动进行控制的控制器中执行, 所述处理器包括 : 动作控制部件, 根据所述控制程序, 在虚拟空间中基于用于使与所述机械对应的虚拟 机械活动的动作指令来控制所述虚拟机械的活动 ; 判断部件, 基于被所述虚拟机械所处理且与所述对象物对应的虚拟对象物的模型数据 和所述虚拟机械的模型数据, 判断可供所述虚拟机械作用的作用空间与所述虚拟对象物不 重叠的区域的体积是否小于预先设定的基准值 ; 以及 追随部件, 在所述体积小于所述基准值的情况下, 使所述虚拟对象物追随基于所述动 作指令的所述虚拟机械的活动。 权 利 要 求 。

10、书 CN 103676662 A 3 1/15 页 4 模拟装置、 模拟方法以及模拟程序 技术领域 0001 本发明涉及模拟装置、 模拟方法以及模拟程序, 尤其, 涉及适合执行在对处理对象 物的机械的活动进行控制的控制器中执行的控制程序的模拟的模拟装置、 模拟方法以及模 拟程序。 背景技术 0002 以往, 作为在对物体的动作进行模拟时使模型追随其他的模型而动作的方式, 已 知基于从模型提取出的模型间的依存关系来实现模型的追随动作的技术。 0003 例如, 特开平 9 258815 号公报 (专利文献 1) 公开了运动连锁模拟系统。运动连 锁模拟系统在计算机内具有物体的模型, 关于模型设定相互。

11、进行作用的模型和被作用的模 型的主从关系, 根据主从关系来模拟进行运动的模型的运动连锁。 运动连锁模拟系统包括 : 模型提取部, 自动提取应设定主从关系的模型 ; 主从关系设定部, 基于模型间的关系来自动 设定主从关系 ; 以及追随动作处理部, 使模型根据主从关系来动作。 0004 【现有技术文献】 0005 【专利文献】 0006 【专利文献 1】 特开平 9 258815 号公报 0007 但是, 根据专利文献 1 中的技术, 在对使被机械所处理的对象物追随该机械的追 随动作进行模拟时, 实际上连不能追随该机械的活动的对象物也进行追随的模拟结果的情 况也较多。 发明内容 0008 本发明是。

12、为了解决上述的问题而完成的, 其目的之一在于, 提供一种能够高精度 地模拟被机械所处理的对象物的追随动作的模拟装置、 模拟方法以及模拟程序。 0009 根据一个实施方式的模拟装置包括执行控制程序的模拟的处理器, 该控制程序在 对处理对象物的机械的活动进行控制的控制器中执行。 处理器包括 : 动作控制部件, 根据控 制程序, 在虚拟空间中基于用于使与机械对应的虚拟机械活动的动作指令来控制虚拟机械 的活动 ; 判断部件, 基于被虚拟机械所处理且与对象物对应的虚拟对象物的模型数据和虚 拟机械的模型数据, 判断可供虚拟机械作用的作用空间与虚拟对象物重叠的区域的体积是 否为预先设定的基准值以上 ; 以及。

13、追随部件, 在体积为基准值以上的情况下, 使虚拟对象物 追随基于动作指令的虚拟机械的活动。 0010 优选地, 判断部件将作用空间分割为多个单位区域, 判定经分割而成的各单位区 域是否为包含虚拟对象物的区域, 并基于判定为是包含虚拟对象物的区域的单位区域的个 数, 计算作用空间的体积中的虚拟对象物所占的部分的体积。 0011 优选地, 判断部件将虚拟对象物分割为多个单位区域, 判定经分割而成的各单位 区域是否包含在作用空间中, 并基于判定为包含在作用空间中的单位区域的个数, 计算虚 拟对象物的体积中的与作用空间重叠的部分的体积。 说 明 书 CN 103676662 A 4 2/15 页 5 。

14、0012 优选地, 对虚拟对象物的每个模型数据决定基准值。 0013 优选地, 作用空间包含预先设定为与机械的可动范围对应的虚拟机械的可动范 围。 0014 根据其他的实施方式, 提供在计算机中进行的模拟方法。计算机包括执行控制程 序的模拟的处理器, 该控制程序在对处理对象物的机械的活动进行控制的控制器中执行。 模拟方法包括 : 处理器根据控制程序, 在虚拟空间中基于用于使与机械对应的虚拟机械活 动的动作指令来控制虚拟机械的活动的步骤 ; 处理器基于被虚拟机械所处理且与对象物对 应的虚拟对象物的模型数据和虚拟机械的模型数据, 判断可供虚拟机械作用的作用空间与 虚拟对象物重叠的区域的体积是否为预。

15、先设定的基准值以上的步骤 ; 以及处理器在体积为 基准值以上的情况下, 使虚拟对象物追随基于动作指令的虚拟机械的活动的步骤。 0015 根据再其他的实施方式, 提供在计算机中执行的模拟程序。计算机包括执行控制 程序的模拟的处理器, 该控制程序在对处理对象物的机械的活动进行控制的控制器中执 行。 模拟程序使处理器执行如下步骤 : 根据控制程序, 在虚拟空间中基于用于使与机械对应 的虚拟机械活动的动作指令来控制虚拟机械的活动的步骤 ; 基于被虚拟机械所处理且与对 象物对应的虚拟对象物的模型数据和虚拟机械的模型数据, 判断可供虚拟机械作用的作用 空间与虚拟对象物重叠的区域的体积是否为预先设定的基准值。

16、以上的步骤 ; 以及在体积为 基准值以上的情况下, 使虚拟对象物追随基于动作指令的虚拟机械的活动的步骤。 0016 根据再其他实施方式的模拟装置包括执行控制程序的模拟的处理器, 该控制程序 在对处理对象物的机械的活动进行控制的控制器中执行。 处理器包括 : 动作控制部件, 根据 控制程序, 在虚拟空间中基于用于使与机械对应的虚拟机械活动的动作指令来控制虚拟机 械的活动 ; 判断部件, 基于被虚拟机械所处理且与对象物对应的虚拟对象物的模型数据和 虚拟机械的模型数据, 判断可供虚拟机械作用的作用空间与虚拟对象物重叠的部分的虚拟 对象物的表面积是否为预先设定的基准值以上 ; 以及追随部件, 在表面积。

17、为基准值以上的 情况下, 使虚拟对象物追随基于动作指令的虚拟机械的活动。 0017 根据再其他实施方式的模拟装置包括执行控制程序的模拟的处理器, 该控制程序 在对处理对象物的机械的活动进行控制的控制器中执行。 处理器包括 : 动作控制部件, 根据 控制程序, 在虚拟空间中基于用于使与机械对应的虚拟机械活动的动作指令来控制虚拟机 械的活动 ; 判断部件, 基于被虚拟机械所处理且与对象物对应的虚拟对象物的模型数据和 虚拟机械的模型数据, 判断可供虚拟机械作用的作用空间与虚拟对象物不重叠的区域的体 积是否小于预先设定的基准值 ; 以及追随部件, 在体积小于基准值的情况下, 使虚拟对象物 追随基于动作。

18、指令的虚拟机械的活动。 0018 能够高精度地模拟被机械所处理的对象物的追随动作。 附图说明 0019 图 1 是用于说明实施方式 1 的控制系统的结构的图。 0020 图 2 是用于说明实施方式 1 的 PC6 的硬件结构的图。 0021 图 3 是通过 CPU 执行控制器支持程序而实现的功能模块图。 0022 图 4 是用于说明实施方式 1 的模拟部的功能的详细的方框图。 0023 图 5 是表示实施方式 1 的模拟的 3D 空间的图。 说 明 书 CN 103676662 A 5 3/15 页 6 0024 图 6(a) (c) 是表示实施方式 1 的模拟的状况的图。 0025 图 7 。

19、是表示实施方式 1 的模拟的控制的流程的流程图。 0026 图 8 是表示实施方式 1 的追随条件的判定处理的流程的流程图。 0027 图9是用于说明实施方式1的虚拟自动装置 (robot) 的把持空间的分割方式的图。 0028 图 10 是用于说明图 8 所示的步骤 S506 的判断处理方式的图。 0029 图 11 是表示实施方式 2 中的模拟的 3D 空间的图。 0030 图 12(a) (c) 是表示实施方式 2 的模拟的状况的图。 0031 图 13 是表示实施方式 2 的追随条件的判定处理的流程的流程图。 0032 图 14 是用于说明实施方式 2 的虚拟工件 (work) 的分割。

20、方式的图。 0033 图 15 是用于说明图 14 所示的步骤 S606 的判定处理方式的图。 0034 图 16(a) (c) 是表示比较例的模拟的状况的图。 0035 图 17 是用于说明实施方式 2 的变形例的虚拟气筒 (air cylinder) 的可动空间的 分割方式的图。 0036 图 18 是用于说明实施方式 2 的变形例的单位区域是否为包含虚拟工件的区域的 判断方式的图。 0037 图 19 是表示实施方式 3 的追随条件的判定处理的流程的流程图。 0038 图 20 是用于说明实施方式 3 的虚拟工件的分割方式的图。 0039 图 21 是用于说明图 20 所示的步骤 S70。

21、6 的判定处理方式的图。 具体实施方式 0040 以下, 参照附图说明本发明的实施方式。 在以下的说明中, 对于同一个部件赋予同 一个标号。它们的名称以及功能也是相同的。因此, 不重复关于它们的详细的说明。 0041 实施方式 1 0042 控制系统的整体结构 0043 图 1 是用于说明实施方式 1 的控制系统的结构的图。参照图 1, 实施方式 1 的控制 系统包括服务器 2、 网络 4、 PC(Personal Computer, 个人计算机) 6、 控制器 14、 控制对象装 置 16。 0044 服务器 2 经由网络 4 与 PC6 连接。PC6 与对控制对象装置 16 进行控制的控制。

22、器 14 以可通信的方式连接。 0045 PC6相当于一实施方式中的模拟装置。 在PC6中, 安装有包含模拟程序的控制器支 持程序 8, 且存储有用户制作的控制程序 10。CD ROM (Compact Disc-Read Only Memory, 紧凑型只读存储盘) 12 存储控制器支持程序 8。在 PC6 中安装的控制器支持程序 8 是从该 CD ROM12 安装的程序。 0046 控制器 14 对控制对象装置 16 的活动进行控制。作为一例, 控制器 14 使用 PLC (Programmable Logic Controller, 可编程逻辑控制器) 。在该 PLC 中包含所谓的动作 。

23、(motion) 控制功能。控制器 14 存储用于规定对于控制对象装置 16 的控制内容的控制程序 15。控制器 14 按每个控制周期将控制程序 15 执行一圈。这里, 在控制器 14 中存储的控制 程序 15 为将在 PC6 中存储的控制程序 10 进行了复制的复制数据, 且是从 PC6 发回的数据。 0047 控制对象装置 16 包含伺服电动机、 步进电动机等的电动机 18 以及对电动机进行 说 明 书 CN 103676662 A 6 4/15 页 7 驱动的电动机驱动器 17。 0048 在电动机 18 中, 从电动机驱动器 17 被提供驱动电流。电动机驱动器 17 从执行控 制程序 。

24、15 的控制器 14 按每个控制周期被提供位置的指令值, 并将与其对应的驱动电流提 供给电动机18。 在电动机18为例如伺服电动机的情况下, 在电动机18中包含编码器, 由编 码器检测出电动机 18 的旋转位置的实测值。电动机驱动器 17 将电动机的旋转位置的实测 值利用于反馈控制。 0049 另外, 在上述中, 说明了经由 CD ROM12 而在 PC6 中安装了模拟程序的情况, 但安 装的方式并不特别限定于此。例如, 也可以是模拟程序从服务器 2 经由网络 4 下载到 PC6 中。这对于控制程序也是相同的。 0050 PC 的硬件结构 0051 图 2 是用于说明实施方式 1 的 PC6 。

25、的硬件结构的图。参照图 2, PC6 包含作为处理 部件的 CPU901、 作为存储部件的 ROM902、 RAM903 以及 HDD904、 作为数据读取部的 CD ROM 驱动装置 908、 作为通信部件的通信 IF909、 作为显示部件的监视器 907、 作为输入部件的键 盘 905 以及鼠标 906。另外, 这些部位经由内部总线 910 相互连接。 0052 CPU901 读出在 ROM902、 RAM903、 HDD904 中存储的程序以及数据, 并执行程序而控 制 PC6 的各部分。CPU901 一般为微处理器。另外, 该硬件也可以是 CPU 以外的 FPGA (Field Pro。

26、grammable Gate Array, 现场可编程门阵列) 、 ASIC (Application Specific Integrated Circuit, 专用集成电路) 以及具有其他的运算功能的电路等。 0053 HDD904一般是非易失性的磁性存储器, 存储通过CDROM驱动装置908而从CD ROM12 读取到的模拟程序。此外, HDD904 也存储控制程序 15。 0054 另外, 也可以是模拟程序在 CD ROM12 以外的其他的存储介质中存储, CPU901 经 由与存储介质对应的存储器接口 (IF) 而读取该模拟程序的方式。例如, 也可以是经由 DVD (Digital V。

27、ersatile Disk, 数字视频盘) ROM 驱动装置而从 DVD ROM 读取该模拟程序 的方式, 也可以是经由 USB(Universal Serial Bus, 通用串行总线) 接口而从 USB 存储器 读取该模拟程序的方式。 0055 CPU901 将在 HDD904 中存储的控制器支持程序 8 在 RAM903 等中展开而执行。 0056 RAM903 为易失性存储器, 具有作为工作存储器的功能。ROM902 一般存储操作系统 (OS) 等的程序。 0057 通信接口 (IF) 909 一般支持以太网 (注册商标) 以及 USB 等通用的通信协议, 经由 网络 4 与服务器 2。

28、 之间提供数据通信且与控制器 14 之间提供数据通信。 0058 监视器 907 由液晶显示装置、 CRT(Cathode Ray Tube, 阴极射线管) 、 有机 EL (Electro Luminescence, 电致发光) 装置、 等离子显示器装置等构成, 显示 PC6 的处理结果 等。键盘 905 接受用户的键输入, 鼠标 906 接受用户的指示操作。 0059 功能结构 0060 图 3 是通过 CPU901 执行控制器支持程序 8 而实现的功能模块图。参照图 3, 这里, 示出了用户接口部802、 显示数据制作部804、 模拟部806、 控制程序存储部808、 控制程序编 辑部 。

29、810、 控制器接口部 812。 0061 用户接口部 802 制作在 PC6 的监视器 907 中显示的窗口画面的内容, 此外, 接受键 盘 905 或鼠标 906 的用户的操作。 说 明 书 CN 103676662 A 7 5/15 页 8 0062 控制程序编辑部 810 接受用户的控制程序的输入以及编辑。在为了执行控制程序 而需要编译的情况下, 也进行编译。所制作的控制程序经由控制器接口部 812 而传送到控 制器 14。此外, 所制作的控制程序存储在 HDD904 的规定的区域即控制程序存储部 808 中。 此外, 控制程序编辑部 810 也能够经由控制器接口部 812 读出在控制。

30、器 14 中存储的控制程 序 15 而进行编辑。 0063 模拟部 806 是控制器 14 的模拟器。模拟部 806 对根据在控制程序存储部 808 中 存储的控制程序 10 而控制器 14 执行控制程序 15 的动作进行模拟, 算出控制器 14 应按每 个控制周期输出的位置的指令值。 0064 此外, 模拟部806能够对通过外部信号到来而对控制程序15的动作产生影响的状 态进行模拟, 或者通过执行控制程序 15 而控制器 14 的存储器的存储内容等的控制器 14 的 内部状态发生变化, 对该变化对控制程序 15 的动作产生影响的状态进行模拟。 0065 此外, 模拟部 806 经由用户接口部。

31、 802 接受关于执行模拟的用户的指示。即, 用户 接口部 802 也作为接受对于模拟部 806 的用户的指示的部件起作用。 0066 显示数据制作部804制作用于显示通过模拟部806而制作的执行结果数据的时间 性的变化的显示数据。显示数据制作部 804 通过将所制作的显示数据传送到用户接口部 802, 在 PC6 的监视器 907 中以曲线或字符的方式或 3D 表现的方式显示显示数据。 0067 模拟部的功能结构 0068 图 4 是用于说明实施方式 1 的模拟部 806 的功能的详细的方框图。 0069 模拟控制部820从控制程序存储部808读入控制程序10, 执行控制程序10的模拟 或者。

32、从中途开始再次执行模拟。伴随于此, 模拟控制部 820 对执行结果数据存储部 830 与 模型数据存储部 840 之间的流程进行控制。执行结果数据存储部 830 以及模型数据存储部 840 为分别由 RAM903 或者 HDD904 实现的功能。 0070 此外, 模拟控制部 820 作为主要的功能而包含动作控制部 822、 判断部 824 以及追 随控制部826。 另外, 动作控制部822为通过模拟部806执行后述的机械控制模拟器而实现 的功能。此外, 判断部 824 以及追随控制部 826 为通过模拟部 806 执行后述的 3D 模拟器而 实现的功能。 0071 动作控制部 822 根据控。

33、制程序 10, 在虚拟空间中基于用于使与机械对应的虚拟机 械活动的动作指令来控制虚拟机械的活动。 0072 判断部 824 基于被虚拟机械所处理且与对象物对应的虚拟对象物的模型数据和 虚拟机械的模型数据, 判断可供虚拟机械作用的作用空间 (在实施方式 1 中为后述的把持 空间) 与虚拟对象物重叠的区域的体积是否为预先设定的基准值以上。更具体而言, 判断 部 824 将作用空间分割为多个单位区域, 判定经分割而成的各单位区域是否为包含虚拟对 象物的区域。然后, 判断部 824 基于判定为是包含虚拟对象物的区域的单位区域的个数, 计 算在作用空间的体积中、 虚拟对象物所占的部分的体积。 另外, 作。

34、用空间为机械可对对象物 作用的空间。 0073 追随控制部 826 基于该体积为基准值以上的判断结果, 使虚拟对象物追随基于该 动作指令的虚拟机械的活动。 0074 执行结果数据存储部 830 存储用于显示的执行结果数据。 0075 模型数据存储部 840 存储对实际空间的自动装置、 工件、 输送机、 支架等的物体进 说 明 书 CN 103676662 A 8 6/15 页 9 行了模型化的模型数据。更具体而言, 模型数据存储部 840 存储与实际空间的物体对应的 虚拟空间中的虚拟物体的形状、 动作的特征、 功能、 性能、 位置、 方向等有关的模型数据。 0076 模拟控制的流程 0077 。

35、(概略) 0078 图 5 是表示实施方式 1 的模拟的 3D 空间的图。参照图 5, 在实施方式 1 中, 在作为 与实际空间对应的虚拟空间的 3D 空间中, 配置有与实际空间的自动装置对应的虚拟自动 装置 500、 与实际空间的工件 (对象物) 对应的虚拟工件 (虚拟对象物) 530、 与用于放置实际 空间的工件的支架对应的虚拟支架 550。另外, 一般, 自动装置为具有把持工件的把持机构 的机器人手。 0079 模拟部806一边参照虚拟机械和虚拟对象物的模型数据, 一边执行3D模拟器和机 械控制模拟器。 0080 3D 模拟器基于数据描图中取得的结果, 在 3D 空间中显示目标 (在实施。

36、方式 1 中为 虚拟自动装置500、 虚拟工件530以及虚拟支架550) 。 此外, 3D模拟器判断使由虚拟自动装 置 500 处理的虚拟工件 530 追随虚拟自动装置 500 的活动的追随条件是否成立。换言之, 3D模拟器判断是否使由虚拟自动装置500处理的虚拟工件530追随虚拟自动装置500的活 动。3D 模拟器在追随条件成立的情况下, 开始使虚拟工件 530 追随虚拟自动装置 500 的活 动的追随动作控制。在追随动作控制开始的情况下, 3D 模拟器计算追随虚拟自动装置 500 的虚拟工件 530 的状态。 0081 机械控制模拟器对3D空间中的虚拟机械 (在实施方式1中为虚拟自动装置5。

37、00、 虚 拟支架 550) 进行控制。更具体而言, 机械控制模拟器计算对于虚拟机械的控制的指令值, 并计算对于该指令值的虚拟机械的活动。机械控制模拟器例如基于经由用户接口部 802 的 来自用户的动作指令 (或者, 根据程序而输出的动作指令) 来计算虚拟机械的活动。 0082 实施方式 1 的模拟的控制是通过 3D 模拟器以及机械控制模拟器大致执行如以下 的处理而实现。首先,(1) 机械控制模拟器将计算出的虚拟机械、 虚拟对象物的状态发送到 3D 模拟器。接着,(2) 3D 模拟器基于该接收到的虚拟机械的状态以及虚拟对象物的状态, 将虚拟机械以及虚拟对象物显示在 3D 空间中。接着,(3) 。

38、3D 模拟器判断使虚拟对象物追随 虚拟机械的追随条件是否成立, 在判断为追随条件成立的情况下, 开始使虚拟对象物追随 虚拟机械的活动的追随动作控制。 0083 这里, 按照时序方式说明实施方式 1 的模拟的状况。 0084 图 6 是表示实施方式 1 的模拟的状况的图。 0085 参照图 6, 虚拟自动装置 500 根据动作指令, 为了把持在虚拟支架 550 的上面放置 的虚拟工件 530 而沿着图的下方向移动 (图 6 的状态 (a) ) 。若从图 6 的状态 (a) 经过一定 时间, 则虚拟自动装置 500 为了把持虚拟工件 530 而进一步接近虚拟工件 530 (图 6 的状态 (b) 。

39、) 。然后, 若从图 6 的状态 (b) 经过一定时间, 则成为通过虚拟自动装置 500 的把持用的 臂夹持的 (把持对象物的) 把持空间与虚拟工件 530 重叠的状态。这里, 在把持空间的体积 中、 由虚拟工件 530 所占的体积成为了预先设定的基准值以上 (例如, 5 成以上) 的情况下, 使虚拟工件530追随虚拟自动装置500的活动的追随条件成立。 然后, 若虚拟自动装置500 沿着图的上方向移动, 则虚拟工件 530 追随虚拟自动装置 500 的活动而沿着图的箭头 (上) 方向移动 (图 6 的状态 (c) ) 。显示表示虚拟自动装置 500 把持着虚拟工件 530 的模拟结果。 说 。

40、明 书 CN 103676662 A 9 7/15 页 10 另外, 虚拟自动装置 500 的把持空间预先设定为与实际空间的自动装置的把持空间对应。 0086 (流程图) 0087 图 7 是表示实施方式 1 的模拟的控制的流程的流程图。另外, 图 7 所示的各步骤 基本上通过 CPU901 执行控制程序 10 的模拟而实现。 0088 参照图7, 模拟部806通过执行机械控制模拟器, 设定虚拟工件 (图6中的虚拟工件 530) 的初始位置 (步骤 S302) 。若以图 6 为例进行说明, 则虚拟工件 530 的初始位置被设定 为虚拟支架 550 的中心附近。 0089 接着, 模拟部806通。

41、过执行机械控制模拟器, 根据控制程序10而开始虚拟机械 (图 6 中的虚拟自动装置 500) 的控制 (步骤 S304) 。 0090 模拟部 806 通过执行机械控制模拟器, 基于对于虚拟机械的动作指令来执行时序 控制 (步骤S306) 。 接着, 模拟部806通过执行机械控制模拟器, 基于对于虚拟机械的动作指 令来执行动作控制 (步骤 S308) 。更具体而言, 模拟部 806 计算基于经由用户接口部 802 的 来自用户的动作指令的指令值。 0091 然后, 模拟部 806 计算作为动作控制的结果的虚拟机械以及虚拟工件的状态 (步 骤 S310) , 并将表示计算出的虚拟机械以及虚拟工件。

42、的状态的信息发送到 3D 模拟器 (步骤 S312) 。然后, 模拟部 806 通过执行机械控制模拟器, 重复从步骤 S306 的处理。 0092 接着, 模拟部 806 通过执行 3D 模拟器, 接收从机械控制模拟器发送的表示虚拟机 械以及虚拟工件的状态的信息 (步骤 S110) 。 0093 接着, 模拟部 806 通过执行 3D 模拟器, 判断是否执行使虚拟工件追随虚拟机械的 活动的追随动作控制 (步骤S111) 。 更具体而言, 模拟部806判断后述的步骤S120中的追随 动作控制是否开始。 0094 在追随动作控制没有开始的情况下 (步骤 S111 中 “否” 的情况下) , 模拟部。

43、 806 执 行从后述的步骤 S114 的处理。相对于此, 在追随动作控制已经开始的情况下 (步骤 S111 中 “是” 的情况下) , 模拟部 806 通过执行 3D 模拟器, 计算追随虚拟机械的虚拟工件的状态 (通 过虚拟机械的活动而移动的虚拟工件的状态) (步骤 S112) 。 0095 然后, 基于虚拟机械的状态以及虚拟工件的状态, 将虚拟机械以及虚拟工件显示 在监视器 907 的 3D 空间中 (步骤 S114) 。此时, 与显示数据制作部 804 交接该显示所需的执 行结果数据。 0096 通过进行上述的时序控制以及动作控制等, 图 6 所示的各状态显示在监视器 907 中。更具体。

44、而言, 在使虚拟工件追随虚拟自动装置 500 的追随动作控制没有开始的情况下 (步骤 S111 中 “否” 的情况下) , 在监视器 907 中显示相对于配置在虚拟支架 550 的中心附近 的虚拟工件 530, 虚拟自动装置 500 沿着图的下方向移动的状态 (图 6 的状态 (a) ) 或虚拟自 动装置 500 接近虚拟工件 530 的状态 (图 6 的状态 (b) ) 。即, 在监视器 907 中显示虚拟工件 530 不追随虚拟自动装置 500 的状态。 0097 相对于此, 在后述的步骤 S120 中追随动作控制开始的情况下 (步骤 S111 中 “是” 的情况下) , 在监视器 907。

45、 中显示虚拟工件 530 追随虚拟自动装置 500(被把持的) 状态 (图 6 的状态 (c) ) 。 0098 再次参照图7, 模拟部806通过执行3D模拟器, 执行判定用于使虚拟工件追随虚拟 机械的活动的追随条件是否成立的处理 (步骤 S116) 。 说 明 书 CN 103676662 A 10 8/15 页 11 0099 图 8 是表示实施方式 1 的追随条件的判定处理的流程的流程图。在这里, 说明图 6 所示的使虚拟工件 530 追随虚拟自动装置 500 的活动时的追随条件。 0100 参照图8, 模拟部806通过执行3D模拟器, 将通过虚拟自动装置500的把持用的两 个臂夹持的把。

46、持空间分割为预先设定的大小的单位区域 (例如, 长方体) (步骤 S502) 。 0101 图 9 是用于说明实施方式 1 的虚拟自动装置 500 的把持空间的分割方式的图。 0102 参照图 9, 模拟部 806 基于虚拟自动装置 500 的模型数据, 提取虚拟自动装置 500 的把持空间。然后, 模拟部 806 将所提取的把持空间分割为单位区域。该例表示把持空间 被分割为 75 个单位区域的情况。 0103 再次参照图8, 模拟部806将表示包含虚拟工件530的单位区域的个数的变量t设 置为 0(步骤 S504) 。即, 变量 t 表示在把持空间的体积中、 虚拟工件 530 所占的 (重叠。

47、的) 部分的体积。因此, 在把持空间全部由虚拟工件 530 所占的情况下, 变量 t 的值成为 75, 在 把持空间中不存在虚拟工件 530(在把持空间中完全不包含虚拟工件 530) 的情况下, 变量 t 的值成为 0。 0104 接着, 模拟部 806 将在存储部件 (例如, RAM903) 中存储的变量 n 设置为 1(步骤 S505) 。在实施方式 1 中, 在 RAM903 中, 作为变量 N 而保持有分割了把持空间的单位区域的 个数。换言之, 变量 N 表示把持空间的全部体积。 0105 接着, 模拟部 806 判断第 n 个单位区域是否为包含虚拟工件 530 的区域 (是否由虚 拟。

48、工件 530 所占) (步骤 S506) 。 0106 图 10 是用于说明图 8 所示的步骤 S506 的判断处理方式的图。参照图 10, 模拟部 806 例如判定第 8 个 (n 8) 单位区域为包含虚拟工件 530 的区域 (判定为 “是” ) , 判定第 23 个 (n 23) 单位区域不是包含虚拟工件 530 的区域 (判定为 “否” ) 。 0107 再次参照图 8, 在第 n 个单位区域不是包含虚拟工件 530 的区域的情况下 (步骤 S506 中 “否” ) , 模拟部 806 执行步骤 S510 的处理。相对于此, 在第 n 个单位区域为包含虚拟 工件 530 的区域的情况下。

49、,(步骤 S506 中 “是” ) , 模拟部 806 增加变量 t 的值 (步骤 S508) , 并执行步骤 S510 的处理。 0108 接着, 模拟部 806 判断变量 n 是否与变量 N 一致 (步骤 S510) 。更具体而言, 判断步 骤 S506 的判断处理是否对全部单位区域执行。 0109 在变量 n 与变量 N 不一致的情况下 (步骤 S510 中 “否” ) , 模拟部 806 增加变量 n 的 值 (步骤 S511) , 重复步骤 S506 以后的处理。相对于此, 在变量 n 与变量 N 一致的情况下 (步 骤 S510 中 “是” ) , 模拟部 806 判断变量 t 的值是否为预先设定的基准值以上 (步骤 S512) 。 更具体而言, 例如, 作。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 控制;调节


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1