CN114206562A - 模拟装置、模拟程序以及模拟方法 - Google Patents

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

Info

Publication number
CN114206562A
CN114206562A CN202080056194.0A CN202080056194A CN114206562A CN 114206562 A CN114206562 A CN 114206562A CN 202080056194 A CN202080056194 A CN 202080056194A CN 114206562 A CN114206562 A CN 114206562A
Authority
CN
China
Prior art keywords
behavior
machine
robot
simulation
virtual space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080056194.0A
Other languages
English (en)
Inventor
岩村慎太郎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Publication of CN114206562A publication Critical patent/CN114206562A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40269Naturally compliant robot arm
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40515Integration of simulation and planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50391Robot

Abstract

对机器与其附属机器的行为进行模拟。装置包括:第一行为计算部,算出与安装有附属机器的第一机器对应的、配置在虚拟空间内的第一对象的行为;以及第二行为计算部,算出与第二机器对应的、虚拟空间内的第二对象的行为,且第二机器包含附属机器。对于规定的每个时间步,在所述时间步中,第一行为计算部算出与安装有附属机器的第一机器对应的第一对象的行为,随后,第二行为计算部基于所述算出的第一对象的行为,来算出被安装于第一机器的附属机器的行为。

Description

模拟装置、模拟程序以及模拟方法
技术领域
本公开涉及一种能够对配置在虚拟空间的机器人的行为进行推测的模拟(simulation)装置、模拟程序以及模拟方法。
背景技术
使用计算机的模拟已在各种技术领域得到应用。通过使用模拟,即便在不存在现实装置的状态下,也能够进行各种事态的事先研讨。作为将此种模拟利用于工厂自动化(Factory Automation,FA)的示例,例如专利文献1(日本专利特开2016-042378号公报)公开了一种包含与虚拟拍摄部对应的实际空间的视觉传感器在内的机械系统的综合模拟。
现有技术文献
专利文献
专利文献1:日本专利特开2016-042378号公报
发明内容
发明所要解决的问题
日本专利特开2016-042378号公报所公开的综合模拟中,通过与实际空间的机器人对应的虚拟空间内的虚拟机器人来对虚拟空间内的虚拟工件进行操作。现实中,在工业机器人的情况下,通过将安装在机械臂前端的附属机器(也称作末端执行器)更换为与工件或工序相应的种类的机器,从而实现机器人的高通用性。专利文献1中,并未公开包含此种被安装于机器人等机器的附属机器在内的机器的模拟。
本公开的目的在于,提供一种能够对机器与被安装于所述机器的附属机器的行为进行模拟的结构。
解决问题的技术手段
本公开的模拟装置算出机器的行为,所述模拟装置包括:第一行为计算部,算出与安装有附属机器的第一机器对应的、配置在虚拟空间内的第一对象的行为;以及第二行为计算部,算出与第二机器对应的、虚拟空间内的第二对象的行为。第二机器包含附属机器。对于规定的每个时间步,在所述时间步中,第一行为计算部算出与安装有附属机器的第一机器对应的第一对象的行为,随后,第二行为计算部基于所述算出的第一对象的行为,来算出被安装于第一机器的附属机器的行为。
根据所述公开,能够算出第一机器与被安装于所述第一机器的附属机器这两者在同一虚拟空间内的行为,而对两者的行为进行模拟。而且,所述模拟是在共同的时间步中执行,因此能够一边取得同步一边模拟两者的行为。
所述的公开中,附属机器包含通过安装来对第一机器附加对工件进行操作的操作功能的机器。
根据所述公开,作为附属机器,能够对于提供第一机器对工件的操作功能的机器来模拟其行为。
所述的公开中,第二行为计算部包含物理模拟器。
根据所述公开,无须对第一行为计算部实施变更,而能够沿用物理模拟器来提供第二机器的行为计算部。
所述的公开中,第一机器包含机器人,第一行为计算部执行具有使机器人操作工件的指令代码的机器人程序的仿真。
根据所述公开,对于第一行为计算部,为了算出机器人的行为,能够利用对所述机器人进行控制的机器人程序的仿真器来实现。
所述的公开中,由第一行为计算部所算出的第一对象的行为包含虚拟空间内的第一对象的位置,物理模拟器依据使用由第一行为计算部所算出的第一对象的位置的物理运算,来算出第二对象的行为。
根据所述公开,对于第二对象的行为,能够基于在同一时间步中物理模拟器利用物理运算而算出的第一对象的行为来算出。
所述的公开中,物理模拟器使对第二对象的力的产生无效化而实施物理运算。
根据所述公开,在物理模拟器通过物理运算来算出第二对象的行为的情况下,在所述物理运算中,力的成分被设为零。因此,即便利用物理运算来算出第二对象的行为,也能够作为无力的成分影响的值而算出。
所述的公开中,关于附属机器的第二对象而算出的行为包含虚拟空间内的所述第二对象的位置,第二行为计算部进而根据第二对象在虚拟空间内的位置与所述虚拟空间内的规定对象的位置来检测两者的碰撞。
根据所述公开,第二行为计算部能够检测与附属机器对应的对象、和虚拟空间内的其他规定对象之间的碰撞。
所述的公开中,模拟装置还包括第三行为计算部,所述第三行为计算部算出与第三机器对应的、配置在虚拟空间内的第三对象的行为,第三机器一边与第一机器交换数据一边联动运行,第一机器与第三机器所交换的数据是从配设于生产线的实机所获取。
根据所述公开,在算出与一边跟第一机器交换数据一边联动运行的第三机器对应的对象的行为时,能够从实机获取此种交换的数据。由此,能够一边与在生产线上运转中的实机联动,一边模拟第一机器或第三机器的行为。
所述的公开中,附属机器包含能够安装于第一机器的线缆。
根据所述公开,能够实现包含与可安装第一机器的线缆对应的对象的行为的模拟。
所述的公开中,还包括生成将虚拟空间视觉化的图像的图像生成部。
根据所述公开,能够将包含第一机器及第二机器的模拟对象的行为在虚拟空间中进行可视化而再现。
根据本公开的另一方面,提供一种模拟程序,用于使计算机执行算出机器的行为的方法。模拟程序包括:第一行为计算步骤,算出与安装有附属机器的第一机器对应的、配置在虚拟空间内的第一对象的行为;以及第二行为计算步骤,算出与第二机器对应的、虚拟空间内的第二对象的行为。第二机器包含附属机器。对于规定的每个时间步,在所述时间步中,在第一行为计算步骤中,算出与安装有附属机器的第一机器对应的第一对象的行为,随后,在第二行为计算步骤中,基于所述算出的第一对象的行为,来算出被安装于第一机器的附属机器的行为。
根据所述公开,当执行模拟程序时,能够算出第一机器与被安装于所述第一机器的附属机器这两者在同一虚拟空间内的行为,由此,能够对两者的行为进行再现(模拟)。而且,所述模拟是在共同的时间步中执行,因此能够一边取得同步一边模拟两者的行为。
根据本公开的又一方面,提供一种模拟方法,算出机器的行为。模拟方法包括:第一步骤,算出与安装有附属机器的第一机器对应的、配置在虚拟空间内的第一对象的行为;以及第二步骤,算出与第二机器对应的、虚拟空间内的第二对象的行为。第二机器包含附属机器。对于规定的每个时间步,在所述时间步中,在第一步骤中,算出与安装有附属机器的第一机器对应的第一对象的行为,随后,在第二步骤中,基于在第一步骤中算出的第一对象的行为,来算出被安装于第一机器的附属机器的行为。
根据所述公开的模拟方法,通过算出第一机器与被安装于所述第一机器的附属机器这两者在同一虚拟空间内的行为,从而能够对两者的行为进行再现(模拟)。而且,所述模拟是在共同的时间步中执行,因此能够一边取得同步一边模拟两者的行为。
附图说明
图1是表示本实施方式的模拟装置1的适用例的示意图。
图2是本实施方式的将作为模拟对象的机器的外观的一例关联于控制系统而表示的图。
图3是表示本实施方式的控制系统2的单元结构的一例的示意图。
图4是表示用于实现本实施方式的模拟装置1的硬件结构的一例的示意图。
图5是表示用于实现本实施方式的模拟装置1的功能结构的一例的示意图。
图6是说明本实施方式的物理模拟器156的模拟对象的图。
图7是示意性地表示本实施方式的模拟装置1的处理序列的一例的图。
图8是表示本实施方式的显示的一例的图。
图9是示意性地表示本实施方式的模拟装置1与实机的组合的一例的图。
图10是说明本实施方式的附属于机器人30的线缆的模拟的图。
具体实施方式
一边参照附图,一边详细说明本公开的实施方式。另外,对于图中的相同或相当的部分,标注相同的符号并不再重复其说明。
<A.适用例>
首先,对适用本发明的场景的一例进行说明。
本实施方式的模拟装置1是对控制配设在FA中的多个机器的系统的行为进行推测的模拟装置。多个机器并无限定,可包含与可编程逻辑控制器(Programmable LogicController,PLC)协调地运行的机器人、以及被安装于所述机器人而与机器人联动的附属机器。此种附属机器包含通过安装来对机器人附加对工件进行操作的操作功能的机器。例如末端执行器典型的是包含在机器人的臂部装卸自如的机械手。模拟装置1并无限定,例如可适用于机械手操作工件的“拾取和放置”的应用。作为“工件”,只要是最终生成物或其一部分或者中间生成物或其一部分等可追踪其位置的物体,则可为任何物体。另外,模拟装置1例如也能够适用于通过机械手来实施工件装配的应用。
“拾取和放置”表示如下所述的、机器人所进行的握持、搬送、配置的一连串动作,即:当所搬送的工件到达规定的追踪区域时,机器人握持追踪区域内的工件,将所握持的工件搬送至规定区域为止,并将所述工件配置于规定区域。
用于工件搬送的搬送部典型的是输送器但并不限定于此。PLC对用于驱动输送器的致动器进行控制。作为致动器,本实施方式中,例如例示伺服马达。
图1是表示本实施方式的模拟装置1的适用例的示意图。参照图1,模拟装置1包含虚拟空间信息105,所述虚拟空间信息105对虚拟空间以及配置于虚拟空间的对象物(object)进行规定。通过算出虚拟空间内的各对象物的行为,来适当更新虚拟空间信息105的内容。虚拟空间信息105包含后述的共享数据12A。
模拟装置1包含:PLC模拟器152,算出工件的搬送部在虚拟空间内的行为;机器人仿真器160,算出配置在所述虚拟空间内的机器人的行为;物理模拟器156,主要算出被安装于机器人的机械手的行为;以及三维(3-dimensional,3D)观察仪(visualizer)164。
PLC模拟器152算出输送器等虚拟空间内的跟与工件的搬送相关的机器对应的对象(以下称作对象物)的行为,并且输出与所算出的行为相应的动作指令。作为与工件的搬送相关的机器,并无限定,包含输送器的驱动机器。在输送带的搬送面上,载置有用于载置工件的托盘。这些与工件的搬送相关的机器相当于第三机器,配置在此种跟与工件的搬送相关的机器对应的虚拟空间内的对象物相当于第三对象,PLC模拟器152相当于第三行为计算部。
机器人仿真器160基于从PLC模拟器152输出的所述动作指令,算出与操作工件的机器人对应的、虚拟空间内的对象物的行为。机器人相当于第一机器,与机器人对应的对象物相当于第一对象,机器人仿真器160相当于第一行为计算部。
物理模拟器156基于由PLC模拟器152以及机器人仿真器160所算出的虚拟空间内的对象物的行为,算出与被安装于机器人的机械手对应的、虚拟空间内的对象物的行为。机械手相当于第二机器,与机械手对应的对象物相当于第二对象,物理模拟器156相当于第二行为计算部。
3D观察仪164生成将配置对象物的虚拟空间视觉(visual)化的图像。本实施方式中,3D观察仪164例如生成用于在三维虚拟空间中基于虚拟空间信息105来将各对象物显示于显示器的图像。3D观察仪164相当于图像生成部。
模拟装置1中,例如每隔用户所设定的规定的时间步,第一行为计算部(机器人仿真器160)算出与机器人对应的、配置在虚拟空间内的对象物的行为,随后,第二行为计算部(物理模拟器156)基于所述算出的机器人的行为,来算出与被安装于所述机器人的机械手对应的、所述虚拟空间内的对象物的行为。由此,能够推测虚拟空间内的机器人自身的行为、与被安装于所述机器人的机械手在所述虚拟空间内的行为。而且,在某时间步中,算出与机器人对应的、虚拟空间内的对象物的行为,并且基于所算出的所述行为来算出与机械手对应的所述虚拟空间内的对象物的行为。
模拟装置1使这些组件以及模块彼此联动。由此,即便不存在现实的系统,模拟装置1也能够推测第一机器与被安装于第一机器的第二机器在现实的系统中处理工件时将产生的、各机器的行为。
根据图1,在时间步中,物理模拟器156与机器人仿真器160彼此同步,因此每当执行模拟时,能够使所算出的行为同步,由此,能够通过模拟来预估准确的节拍时间。
<B.对象系统的示例>
模拟装置1对配设在生产线上的图2的控制系统2所控制的实机即机器的行为进行推测。作为像这样进行行为推测的对象机器,实施方式中例示了可动的输送器230与机器人30,但对象机械并不限定于它们。机器人30在臂的前端经由连接器7来装卸自如地安装机械手210。机械手210例如包含平行手、多指手、多指关节手等多个种类。机械手210的种类并不限定于此,例如也可包含通过吸附式来拾取以及放置工件232的种类。在机器人30上,安装与工件232或工序相应的种类的机械手210。
机器人30通过机械手210来拾取被载置于输送器230上的托盘9中的工件232,并使工件232在保持着拾取的状态下移动到规定位置的平台55并置(放置)于平台55上。机械手210依据来自后述的机器人控制器310的控制指令,对用于拾取或放置工件232的手的开闭动作进行控制。
控制系统2进而与输送器230相关联地包括光电传感器6以及可开闭的挡板(stopper)8。光电传感器6对配设在输送器230的搬送面上的托盘9已到达规定的工件追踪区域前的情况进行检测。挡板8进行闭动作,以使到达追踪区域内的托盘9停止(固定)。模拟装置1实施配设在这些实机中的机器的模拟。
图2是本实施方式的将作为模拟对象的机器的外观的一例关联于控制系统而表示的图。参照图2,控制系统2包含信息处理装置100、PLC200、控制机器人30的机器人控制器310以及伺服马达驱动器531、532。信息处理装置100例如包含个人计算机(PersonalComputer,PC)、平板终端等的终端装置。伺服马达驱动器531、532驱动对应的伺服马达41、42。
在PLC200,经由后述的网络80而连接有信息处理装置100。对于网络80,可采用有线或无线的任意通信方式。PLC200以及信息处理装置100例如依据通用串行总线(Universal Serial Bus,USB)来进行通信。信息处理装置100提供对控制系统2的行为进行模拟的模拟环境、与对用于控制机器人30以及与搬送相关的机械的控制程序进行设计的环境等。控制程序也可使用模拟的结果来设计。在信息处理装置100上设计的控制程序经由现场网络而送往PLC200。
PLC200执行所设计的控制程序,依据执行的结果来对机器人控制器310或伺服马达驱动器531、532分别给予目标值,由此来控制机器人30以及输送器230的与搬送相关的机械等。
在PLC200,连接有机器人控制器310以及伺服马达驱动器531、532。PLC200、机器人控制器310以及伺服马达驱动器531、532经由现场网络22而以菊链连接。对于现场网络22,例如采用以太网控制自动化技术(Ethernet Control Automation Technology,EtherCAT)(注册商标)。但是,现场网络22并不限定于EtherCAT。
同样地,伺服马达驱动器531、532驱动输送器230的伺服马达41、42。在伺服马达41、42的旋转轴,配置有编码器236、238。所述编码器将伺服马达的位置(旋转角度)、旋转速度、累积旋转圈数等作为伺服马达41、42的反馈值而输出至PLC200。
机器人30与输送器230一边相互联动一边使工件232移动。另外,此处为了简化说明,对工件232的移动进行说明,但并不限定于移动。例如,也可为机器人30对被载置于托盘9的工件232所进行的加工。
图2中,作为机器人30的驱动装置的一例,例示了设于机器人30的伺服马达1301、1302、1303以及1304(以下也总称为“机器人伺服马达”)、与对机器人伺服马达进行驱动的机器人控制器310。同样地,作为输送器230的驱动装置的一例,例示了对设于输送器230的伺服马达41、42进行驱动的伺服马达驱动器531、532。通过机器人30受到驱动,从而机器人30的行为在正交的X轴、Y轴以及Z轴的三维空间内发生变化。通过输送器230受到驱动,从而输送器230的行为在与机器人30相同的三维空间内受到规定,但例如是在X轴以及Y轴的平面内中受到规定。
作为驱动装置,并不限定于伺服驱动器,可根据作为被驱动装置的马达来采用对应的驱动装置。例如,在对感应马达或同步马达进行驱动的情况下,作为驱动装置,也可采用逆变器驱动器等。
机器人控制器310对机器人30的机器人伺服马达进行驱动。在各机器人伺服马达的旋转轴配置有编码器(未图示)。所述编码器将伺服马达的位置(旋转角度)、旋转速度、累积旋转圈数等作为机器人伺服马达的反馈值而输出至机器人控制器310。
<C.控制与虚拟空间的位置>
参照图2来说明控制系统2中的机器人30与输送器230的控制。如上所述,机器人30与输送器230具有可通过多个驱动轴来移动的可动部。这些各驱动轴由伺服马达予以驱动。具体而言,机器人30具有通过机器人伺服马达(伺服马达1301~1304)旋转而驱动的多个臂。机器人伺服马达分别旋转,由此来驱动对应的各臂。通过机器人控制器310控制机器人伺服马达的驱动,从而各臂受到三维驱动。通过这样的各臂的驱动,实现机器人30的行为。同样地,输送器230也通过伺服马达41、42旋转,从而输送器230以及搬送面上的托盘9移动。其移动量(移动的速度、方向、距离等)是由伺服马达41、42的旋转量(旋转的方向、角度)来决定。通过此种伺服马达41、42的驱动,实现输送器230以及托盘9等机器的行为。
实施方式中,机器人30的各臂关联虚拟的轴,由各轴的位置来决定机器人30的位置。控制系统2依据按时间序列变化的目标位置来控制机器人30的各轴。由此,各臂的移动的速度以及轨道发生变化,以成为依据目标的速度以及轨道。
机器人30的目标位置例如被预先保存在PLC200中。机器人控制器310从PLC200接收目标位置,基于所接收的目标位置来决定各机器人伺服马达的旋转量,并将指定所决定的旋转量的指令值输出至各机器人伺服马达。
(c1.三维虚拟空间的坐标系)
对本实施方式的、算出相当于机器人30的各臂的轴在三维虚拟空间内的位置的过程的一例进行说明。本实施方式中,作为三维虚拟空间内的坐标系,例示了机器人30以及PLC200等的各部共同具备的世界坐标系。在算出世界坐标系中的位置时,本实施方式中,将伺服马达1301的旋转量表示为αA,将伺服马达1302的旋转量表示为αB,将伺服马达1303的旋转量表示为αC,并且将伺服马达1304的旋转量表示为αD。对于伺服马达旋转量(αA,αB,αC,αD),使用规定函数来实施运算,由此,能够将伺服马达旋转量(αA,αB,αC,αD)转换为xyz的三维虚拟空间内的位置。图2中,例如表示了拾取工件232的臂的轴在与三维虚拟空间对应的世界坐标系中的位置即三维坐标P(x,y,z),但其他轴的对应的三维坐标也能够同样地算出。因此,能够通过各臂的三维坐标P(x,y,z)的时间序列的变化来表示机器人30在三维虚拟空间内的行为。
而且,实施方式中,为了简化说明,将拾取工件232的臂的轴的三维坐标P(x,y,z)用于算出后述的用于检测三维虚拟空间内的“碰撞”的、与机械手210对应的对象物的位置。另外,此种“碰撞”的检测中,既可使用其他轴的三维坐标P(x,y,z),或者也可使用两个以上的轴的三维坐标P(x,y,z)的组合。
输送器230也与机器人30同样地,输送器230的移动的速度以及轨道以呈现目标位置的方式按照时间序列变化,以使输送器230的行为呈现目标行为。输送器230的目标位置被预先保存在PLC200中。
伺服马达驱动器531、532基于来自PLC200的目标位置来决定伺服马达41、42的旋转量,将指定所决定的旋转量的指令值输出至伺服马达41、42。对于此种伺服马达41、42的旋转量,使用规定函数来实施运算,由此,关于输送器230的位置,也能够转换为与机器人30相同的、与三维虚拟空间对应的世界坐标系中的三维坐标Q(x,y,0)。通过此种三维坐标Q(x,y,0)的时间序列的变化,能够呈现出输送器230在三维虚拟空间内的行为。本实施方式中,被载置于输送器230的搬送面上的托盘9的位置与被配置于托盘9的工件232的位置由输送器230在三维虚拟空间内的位置来决定。
另外,此处,输送器230呈现平面内的行为,因此三维坐标Q的z轴固定为值0,但也可为其他的固定值。
(c2.时刻同步的控制)
参照图2来说明控制系统2中的时刻同步。控制系统2中,连接于现场网络22的多个机器即PLC100、机器人控制器310、伺服马达驱动器531、532以及机械手210分别具有彼此经时刻同步的计时器90~94,在机器之间,基于这些计时器来运行,由此,包含控制指令的数据的收发时机得到同步。所述计时器相当于同步地进行增量或减量的计数器。
另外,本实施方式中,“时机”表示产生某些事态的时期、时间或时刻的概念。而且,所谓“时刻同步”,表示使装置所具有的计时器、时间数据等彼此同步。
<D.控制系统的整体结构>
图3是表示本实施方式的控制系统2的单元结构的一例的示意图。图3中表示包括图2的结构的控制系统2的整体结构。
参照图3,控制系统2包含PLC200、经由现场网络22而与PLC200连接的伺服马达驱动器531、532及远程IO终端5、机器人控制器310、作为设在现场的IO设备的例如光电传感器6、挡板8所包括的接近传感器87以及编码器236、238。
PLC200包含执行主要的运算处理的运算单元13、一个以上的IO单元14以及特殊单元17。这些单元构成为,可经由系统总线81来彼此交换数据,并且从电源单元12接受电源供给。模拟装置1被连接于运算单元13。
IO单元14从包含光电传感器6、挡板8的接近传感器87、编码器236、238等的IO设备收集检测值61、71、237以及239。接近传感器87非接触地检测托盘9相对于挡板8接近到规定距离为止的情况。来自各IO设备的检测值例如被设定(写入)至IO单元14所包括的存储器的对应位。运算单元13使用由IO单元14所收集的值来执行控制程序的运算,并将运算结果的值设定(写入)至IO单元14的对应的位。周边机器或IO设备参照IO单元14的各位的值来运行。这样,PLC200能够一边经由IO单元14来与IO设备以及周边机器相互交换数据,一边对作为控制对象的机器人30或输送器230进行控制。
特殊单元17具有模拟数据的输入/输出、温度控制、基于特定通信方式的通信等在IO单元14中不支持的功能。
现场网络22也可连接机器人控制器310、伺服马达驱动器531、532以及远程IO终端5。远程IO终端5基本上与IO单元14同样地,进行与一般的输入/输出处理相关的处理。更具体而言,远程IO终端5包含:用于进行与利用现场网络22的数据传输相关的处理的通信耦合器52、以及一个以上的IO单元53。这些单元构成为,可经由远程IO终端总线51来彼此交换数据。
伺服马达驱动器531、532经由现场网络22来与运算单元13连接,并且依据来自运算单元13的指令值来驱动伺服马达41、42。具体而言,伺服马达驱动器531、532从PLC200,以与计时器90进行了同步的控制周期等的固定周期,来接收位置指令值、速度指令值、扭矩指令值等指令值。运算单元13基于来自编码器236、238的检测值237、239来生成这些指令值。
运算单元13参照来自如上所述的IO设备的检测值来执行规定的控制程序,由此,使机器人30实施拾取和放置。具体而言,运算单元13在根据光电传感器6的检测值61以及接近传感器87的检测值71而检测到工件232已接近到规定的追踪区域时,生成用于实施拾取和放置的机械臂的控制指令211与用于机械手210的控制指令222,并经由机器人控制器310而输出至机器人30。在生成控制指令211时,除了如上所述的来自IO设备的检测值61、71以外,还参照机器人30的状态值。
<E.硬件结构>
接下来说明本实施方式的模拟装置1的硬件结构的一例。
图4是表示用于实现本实施方式的模拟装置1的硬件结构的一例的示意图。模拟装置1是通过图4所示的信息处理装置100执行必要的程序而实现。
信息处理装置100包含下述部分作为主要的组件,即:执行操作系统(OperatingSystem,OS)及如后所述的各种程序的处理器102;提供用于保存处理器102中的程序执行所需的数据的作业区域的主存储器104;键盘或鼠标等受理用户操作的操作单元106(操作受理部);显示器109、各种指示器、打印机等输出处理结果的输出单元108;连接于包含网络80的各种网络的网络接口110;光学驱动器112;与外部装置进行通信的局域通信接口116;以及贮存器111。这些组件经由内部总线118等可彼此进行数据通信地连接。
信息处理装置100使用光学驱动器112,从包含非一次性地保存计算机可读取的程序的光学记录介质(例如数字多功能光盘(Digital Versatile Disc,DVD)等)的计算机可读取的记录介质114中,读取各种程序并安装至贮存器111等。
由信息处理装置100所执行的各种程序既可经由计算机可读取的记录介质114来安装,但也可以从网络上的未图示的服务器装置等经由网络接口110而下载的形态来安装。
贮存器111例如包含硬盘驱动器(Hard Disk Drive,HDD)或固态硬盘(FlashSolid State Drive,SSD)等,保存由处理器102所执行的程序。具体而言,贮存器111保存虚拟时刻生成程序120、中继程序121、物理模拟程序122、PLC模拟程序126、机器人仿真程序130以及统合程序134,以作为用于实现本实施方式的模拟的模拟程序。贮存器111进而保存图像处理程序136,所述图像处理程序136生成显示配置在虚拟空间内的对象物的图像。
虚拟时刻生成程序120生成用于模拟的虚拟时刻。模拟装置1以基于虚拟时刻的周期来执行模拟。
物理模拟程序122算出与关联于工件232的移动而运行的机器对应的对象物的行为。通过物理模拟程序122来算出对应的对象物的行为的机器例如包含与工件232的搬送或移动相关的光电传感器6、输送器230、托盘9、挡板8以及机械手210。对于物理模拟程序122,给予物理模拟参数124,所述物理模拟参数124包含用于规定与此种机器对应的对象物的行为的参数、以及规定工件232的重量或形状等的参数。物理模拟参数124的值也可通过用户操作或统合程序134等来适当地变更。
作为物理模拟参数124,也可使用与工件232的搬送或移动相关的机器以及工件232的计算机辅助设计(Computer Aided Design,CAD)数据。通过使用CAD数据,能够使用对象物来更准确地再现现实机器的行为。
PLC模拟程序126算出通过物理模拟程序122来算出对应的对象物的行为的机器以及工件232的位置。所算出的位置被给予至物理模拟程序122。对于PLC模拟程序126,给予PLC参数128,所述PLC参数128包含算出所述位置所需的参数。
机器人仿真程序130作为通过对象物来再现机器人30的行为的模拟器发挥功能。机器人仿真程序130基于由物理模拟程序122所算出的结果(对象物的行为),来再现机器人30对工件232的拾取和放置。对于机器人仿真程序130,给予机器人参数132,所述机器人参数132包含利用对应的对象物来再现机器人30的行为所需的参数。
中继程序121提供用于物理模拟程序122与机器人仿真程序130交换彼此的数据的中继功能。中继程序121并无限定,例如利用脚本(script)命令来记述。
统合程序134执行用于使物理模拟程序122、PLC模拟程序126、机器人仿真程序130与中继程序121彼此联动的处理。具体而言,典型的是,统合程序134在主存储器104上生成及更新虚拟空间信息105,所述虚拟空间信息105记述虚拟空间的对象物的状态。物理模拟程序122、PLC模拟程序126以及机器人仿真程序130参照(读出)虚拟空间信息105来执行各模拟的处理,并且将其执行结果中的所需的信息反映至虚拟空间信息105。通过统合程序134所提供的功能,对包括搬送工件232的机器和通过拾取和放置来使工件232移动的机器人30的控制系统2中的、机器的行为以及处理进行再现。
图像处理程序136给予用于基于虚拟空间信息105来显示于显示器109的3D显像数据135。3D显像数据135包含轨迹数据252与图像数据253。图像数据253包含用于绘制与所模拟的机器对应的对象物的数据,轨迹数据252包含通过对虚拟空间信息105所示的各机器的位置实施使用规定函数的运算而算出的三维坐标P(x,y,z)以及三维坐标P(x,y,z)的时间序列数据。图像处理程序136使用此种3D显像数据135生成图像数据并输出至显示器109,所述图像数据用于在三维虚拟空间内立体地绘制与跟工件232、工件232的搬送相关的机器以及机器人30、被安装于机器人30的机械手210对象的对象物的行为。由此,在显示器109上,依据通过模拟而算出的行为来显示对象物,以再现控制系统2的机器的行为。另外,图像数据253也可包含CAD数据等。
图4中表示了利用单个信息处理装置100来实现模拟装置1的示例,但也可使多个信息处理装置联动地实现模拟装置1。此时,也可使为了实现模拟装置1所需的处理的一部分由信息处理装置100来执行,并且使剩余的处理由网络上的服务器(云)等来执行。
图4中表示通过处理器102执行一个或多个程序来实现模拟装置1的示例,但也可使实现模拟装置1所需的处理以及功能的一部分使用专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)或现场可编程门阵列(Field Programmable GateArray,FPGA)等来实现。
<F.功能结构>
接下来,对本实施方式的模拟装置1的功能结构的一例进行说明。图5是表示用于实现本实施方式的模拟装置1的功能结构的一例的示意图。图5所示的功能典型的是通过信息处理装置100的处理器102执行程序(虚拟时刻生成程序120、中继程序121、物理模拟程序122、PLC模拟程序126、机器人仿真程序130、统合程序134以及图像处理程序136等)而实现。
参照图5,模拟装置1包含虚拟空间信息管理模块150、PLC模拟器152、周期生成模块154、物理模拟器156、中继模块158、机器人仿真器160及3D观察仪164,以作为所包括的功能。
虚拟空间信息管理模块150是通过执行统合程序134(图4)而实现,对虚拟空间信息105进行管理,所述虚拟空间信息105对实施模拟的虚拟空间的各对象物的行为(位置以及姿势等)的信息进行规定。
PLC模拟器152是通过执行PLC模拟程序126(图4)而实现,根据物理模拟参数124来算出与跟工件232的搬送相关的机器对应的对象物的行为。由PLC模拟器152所算出的信息被反映至虚拟空间信息105。
PLC模拟器152是对与工件232的搬送相关的机器的行为进行推测的程序,相当于包含PLC程序中所含的多个命令的模拟程序。所述多个命令可包含PLC程序中所含的、用于对与搬送相关的机器的行为进行控制的命令群。PLC程序例如是以利用循环执行型语言(例如梯形语言)而记载的程序语言来记述。
PLC模拟器152的这些命令是每当基于虚拟空间信息105的数据来执行时,例如生成用于对输送器230的伺服马达41、42进行控制的指令值,并保存至虚拟空间信息105。此种指令值被表示为共享数据12A(图1)。
机器人仿真器160算出使配置在虚拟空间内的工件232移动的机器人30的行为。更具体而言,机器人仿真器160是通过基于机器人参数132来执行机器人仿真程序130(图4)而实现。由机器人仿真器160所算出的机器人30的行为的信息被反映至虚拟空间信息105。机器人仿真器160将机器人30的臂以及被安装于其前端的机械手210视为一体的刚体来实施模拟。
具体而言,机器人仿真程序130包含机器人控制器310的程序中所含的命令群。所述命令群包含具有使机器人30操作工件232的指令代码的机器人程序的指令。这些指令包含下述命令等,所述命令基于虚拟空间信息105的共享数据12A(包含PLC模拟器152的输出数据)来算出机器人30的目标轨迹,并基于所算出的轨迹来算出表示各轴的行为的指令值等。
当基于虚拟空间信息105的数据(包含来自PLC模拟器152的输出数据)来执行机器人仿真器160的命令时,生成用于机器人30的各轴的指令值,并作为数据而保存在虚拟空间信息105中。此种指令值被表示为共享数据12A(图1)。
这样,由PLC模拟器152与机器人仿真器160所生成的指令值可表示机器人30与输送器230的跟工件232的搬送相关的机器(输送器230的伺服马达41、42等)的所推测出的行为。而且,PLC模拟器152与机器人仿真器160经由虚拟空间信息105的共享数据12A,分别基于另一者算出的指令值来算出新的指令值。因此,通过根据像这样算出的指令值所推测的伺服马达的行为,可表示机器人30与跟工件232的搬送相关的机器彼此联动的动作。
工件行为模拟器155算出配置在虚拟空间内的一个或多个工件232的对象物的行为。具体而言,工件行为模拟器155是通过执行物理模拟程序122(图4)而实现。工件行为模拟器155根据由PLC模拟器152所算出的与工件232的搬送机器对应的对象物的行为的信息,来算出配置在虚拟空间内的工件232的行为,并使用算出结果来更新所述行为。工件行为模拟器155在算出工件232的行为时,算出工件232的位置、姿势、移动速度、移动方向等。工件232的位置以及姿势是基于由用户等任意设定的工件参数而算出。由工件行为模拟器155所算出的工件232的位置以及姿势的信息被反映至虚拟空间信息105。工件参数也能够包含在物理模拟参数124中。
物理模拟器156是通过执行物理模拟程序122(图4)而实现。物理模拟器156依据物理模拟参数124,算出与用于搬送或移动工件232的机器对应的对象物的行为(位置、姿势、移动速度、移动方向等),并且检测这些对象物彼此在虚拟空间内的碰撞。碰撞的检测结果被输出至PLC模拟器152或机器人仿真器160。
物理模拟器156基于在虚拟空间中算出的对象物彼此的位置关系,来检测对象物彼此的碰撞的有无。“碰撞”例如包含:虚拟空间内的对象物的坐标P与另一对象物的坐标Q这两者的距离为例如包含阈值以下的距离的特定距离的情况。或者,“碰撞”包含:连结坐标P和下个位置的坐标P的轨迹,与连结跟坐标P对应的坐标Q和下个位置的坐标Q的轨迹发生交叉的情况。阈值是基于各对象物的尺寸(宽度、高度等)的值。例如,阈值或对象物的尺寸可包含在物理模拟参数124中。另外,用于检测“碰撞”的位置关系并不限定于这些位置关系。
图6是说明本实施方式的物理模拟器156的模拟对象的图。由物理模拟器156算出行为并且检测碰撞的对象物如图6所示,包含光电传感器6、挡板8、托盘9、机械手210、输送器230以及工件232。物理模拟器156依据规定的物理运算来算出这些对象物的位置、姿势等的行为,并基于所算出的位置等的行为来检测对象物的碰撞。物理模拟器156将用于所述物理运算的参数中的、对象物的质量的参数127设定为零来实施运算。
将质量设置为零的含义如下。即,若质量的参数127并非为零,则物理模拟器156将通过物理运算,关于各对象物而算出基于所述对象物的质量的速度、加速度以及重力等针对对象物的力学作用的成分,且根据所述算出的力学作用的成分,物理模拟器156计算(更新)下个时间步中的对象物的位置。另一方面,本实施方式中,由PLC模拟器152以及机器人仿真器160决定(支配)各对象物的位置。因此,为了将物理模拟器156对于对象物的位置的更新成分设为零(即,无效化),在模拟装置1中,将用于物理模拟器156的物理运算的各对象物的质量的参数127设定为零。
对于通过物理运算而将质量设为零来算出位置(行为)的对象物,速度、加速度、重力等也为零,因此即使在这些对象物彼此碰撞的情况下,在物理运算中,力学成分(排斥等之类的、对象物的反弹等的成分)也被算出为零(无效化),因此能够基于力学作用经无效化的对象物的位置来检测对象物的碰撞。
工件追踪模块162是通过执行机器人仿真程序130而实现,基于来自机器人仿真器160的机器人30的行为信息,对在虚拟空间中由机器人30所拾取和放置的工件232进行追踪。由工件追踪模块162所追踪的工件232的位置信息(工件位置)被反映至虚拟空间信息105。
3D观察仪164相当于生成将虚拟空间视觉化的图像的图像生成部。3D观察仪164基于虚拟空间信息管理模块150所管理的虚拟空间信息105,来将虚拟空间的各对象物(工件232、跟工件232的搬送相关的机器、机器人30、机械手210等)的行为视觉化。
周期生成模块154是通过执行虚拟时刻生成程序120而实现。周期生成模块154基于处理器102所具有的计时器(未图示)的输出,将与计时器的输出同步的信号ST输出至其他的各部。各部与从周期生成模块154输出信号ST的周期(以下称作规定的时间步)同步地执行处理或程序。由此,图5的各部针对规定的每个时间步,彼此同步地执行。信号ST的周期也可基于图3的控制系统2的现场网络22的通信周期(以下也称作“控制周期”)来决定。
通过图5所示的各功能彼此联动,从而能够高精度地再现作为模拟对象的系统(例如控制系统2)的行为。
<G.模拟>
图7是示意性地表示本实施方式的模拟装置1的处理序列的一例的图。图7中,模拟装置1的各部的处理是与在周期生成模块154、PLC模拟器152、机器人仿真器160、中继模块158以及物理模拟器156之间受到交换的数据或指令相关联地表示。这些在各部间受到交换的数据包含与在所述各部间共享的世界坐标系的坐标对应的位置。而且,这些受到交换的数据或指令可能包含经由虚拟空间信息105而交换的数据或指令,但在图7中为了说明而省略了虚拟空间信息105以及虚拟空间信息管理模块150的图示。
参照图7,模拟装置1将物理模拟参数124中的、与图6所示的工件232以及跟工件232的搬送或移动相关的机器对应的对象物的质量参数127设定为零(步骤T1)。随后,模拟装置1使各部启动而开始步骤T2以后的处理。步骤T2的处理是针对基于周期生成模块154所输出的信号ST的规定的每个时间步反复执行。3D观察仪164在比时间步长的每个周期,实施生成用于显示器109上绘制3D图像的图像的处理(步骤T3)。由此,模拟装置1例如可基于表示多次反复执行步骤T2的周期处理的结果的虚拟空间信息105以及3D显像数据135来生成表示模拟结果的3D图像,并使其显示于显示器109。
周期生成模块154在经由操作单元106从用户受理了启动指令时启动,开始信号ST的输出。由此,步骤T2的周期处理开始。进而,在周期处理的开始时,中继模块158将用于对基于图像测量参数129的对象物的位置(坐标)进行初始设定的指令输出至物理模拟器156(步骤S1)。物理模拟器156依据所述指令,将各对象物的位置(坐标)设定为虚拟空间信息105所具有的初始位置。
周期生成模块154在开始周期处理(步骤T2)时,输出伺服马达的驱动的指令Tick(步骤S3)。PLC模拟器152依据来自周期生成模块154的指令Tick来执行模拟程序,生成用于使机器人30待机的指令Tick并输出(步骤S5),并且对光电传感器6的输入变量设定接通(ON)(步骤S9)。由此,算出伺服马达41、42受到驱动而输送器230移动,且输送器230的位置被光电传感器6检测到这一连串的行为。
PLC模拟器152进而对伴随输送器230的移动的、搬送面上的托盘9的位置进行更新(步骤S11)。物理模拟器156响应所述更新来实施碰撞检测的运算处理(步骤S13)。具体而言,物理模拟器156通过覆盖虚拟空间信息105的更新后的托盘9的位置来更新在步骤S1中设定的托盘9的对象物的位置,并且基于更新后的托盘9的位置与光电传感器6的位置来检测世界坐标系中的所述碰撞的有无(步骤S13)。此处,物理模拟器156检测托盘9与光电传感器6的对象物彼此的碰撞。物理模拟器156输出已检测到托盘9与光电传感器6的碰撞的意旨(步骤S15)。
PLC模拟器152响应从物理模拟器156输出的所述的碰撞检测,来更新(变更)托盘9的位置,以使托盘9接近挡板8(步骤S19),并输出关闭挡板8(即,更新挡板8的位置)的指令(步骤S23)。
物理模拟器156响应步骤S23的指令来实施碰撞检测的运算处理(步骤S25)。具体而言,物理模拟器156分别通过覆盖虚拟空间信息105的更新后的位置来更新在步骤S1中设定的挡板8与托盘9的对象物的位置,并且基于更新后的托盘9的位置与挡板8的位置来检测世界坐标系中的所述碰撞的有无(步骤S25)。此处,物理模拟器156检测托盘9与挡板8的对象物彼此的碰撞。物理模拟器156输出已检测到托盘9与挡板8的碰撞的意旨(步骤S29)。
PLC模拟器152响应来自物理模拟器156的输出(检测到托盘9碰撞至挡板8),向机器人30输出设定工件232的位置的指令(步骤S33)。所述工件232的位置表示基于步骤S19中的更新后的托盘9的位置的位置。
中继模块158响应在步骤S33中从PLC模拟器152输出的指令,开始下述处理,所述处理是用于在物理模拟器156与机器人仿真器160之间,对用于算出利用机械手210来拾取工件232的行为的数据的交换进行中继的处理(步骤S35)。
具体而言,中继模块158输出利用机械手210来拾取工件232的指令(步骤S39)。机器人仿真器160响应从中继模块158输出的所述指令,基于工件232的位置来更新机械手210的位置(步骤S43)。
物理模拟器156基于经更新的机械手210的位置与工件232的位置,来执行碰撞检测的运算(步骤S45),并基于运算结果来检测机械手210是否已碰撞到工件232。
中继模块158基于物理模拟器156的输出来判断机械手210已与工件232发生了碰撞(步骤S47)。响应判断,中继模块158对虚拟空间信息105中的与机械手210和工件232的对象物的行为相关的信息进行编组(相互关联)(步骤S49)。中继模块158随后将表示机械手210的手已关闭的状态的变量设定为接通(ON)(步骤S53)。
PLC模拟器152对应于中继模块158已将机械手210的手的变量设定为接通(ON)的情况,输出在保持拾取的状态下使工件232移动到放置场所(平台55的位置)为止的指令(步骤S55)。平台55的位置是由机器人仿真器160进行设定。由此,步骤T2的所述时间步中的处理结束。
机器人仿真器160响应来自PLC模拟器152的指令(步骤S55的指令),将对机械手210与工件232的位置进行更新的指令输出至物理模拟器156(步骤S57),并且将放置完成的通知输出至中继模块158(步骤S61)。物理模拟器156响应来自机器人仿真器160的指令(步骤S57)来更新物理模拟器156所具有的机械手210与工件232的位置,以使其表示与所放置的位置对应的位置。
随后,在接下来的时间步中,与如上所述的流程同样地执行步骤T2的处理。
步骤T3中,3D观察仪164从物理模拟器156获取物理模拟器156所算出的工件232以及各机器(图6)的位置(步骤S73),基于所获取的位置与包含图像数据253所示的对应的对象物的数据的3D显像数据135,实施渲染(Render)处理(步骤S75),并从虚拟空间信息105获取机器人仿真器160所算出的机器人30的行为所示的位置(步骤S77)。3D观察仪164根据渲染处理后的对象物的数据与机器人30的位置,来生成在显示器109上绘制的图像的数据。
图7的序列中,在物理模拟器156中的各个碰撞检测处理(步骤S13、S25以及S45)中未检测到碰撞时,也可跳过步骤T2中的以后的处理。
由此,模拟装置1对直至检测到机械手210与工件232发生了碰撞(步骤S45)为止的时间步进行计数,由此,能够预估通过所模拟的PLC程序以及机器人程序来驱动控制系统2(图2)时的节拍时间。
而且,通过对应于机械手210的每个种类来切换物理模拟器156所参照的物理模拟参数124,从而能够使安装于机器人30的多种机械手210共用一个物理模拟器156。
而且,由于能够基于来自周期生成模块154的信号ST来使PLC模拟器152、机器人仿真器160、中继模块158以及物理模拟器156彼此进行时刻同步,因此在反复执行模拟时,能够在各模拟中再现相同的碰撞检测。
而且,图6中,机械手210以及工件232的位置是由物理模拟器156所算出,但这些位置也可由机器人仿真器160来算出。而且,用户也可指定这些位置应由机器人仿真器160以及物理模拟器156中的哪个来算出。
<H.显示例>
图8是表示本实施方式的显示的一例的图。图8中,例如表示了下述情形,即:在检测到机械手210碰撞至工件232的时间点,开始3D观察仪164的处理。参照图8,通过3D观察仪164所生成的图像,在显示器109的区域1092中绘制3D图像。在图8的显示器109的区域1091中,显示有所模拟的程序的一部分。区域1092的3D图像表示了已检测到机械手210与工件232之间的碰撞1093(图7的步骤S45)的状态。
<I.与实机的组合>
图9是示意性表示本实施方式的模拟装置1与实机的组合的一例的图。根据图9,在将实机与虚拟的机器(PLC200或机器人30)予以组合的情形中,例如能够算出追踪区域231中的与工件232的拾取相关的所述机器的行为。所算出的行为并不限定于与拾取相关的行为。具体而言,对于机器人30和一边交换数据(共享数据12A)一边联动运行的PLC200,模拟装置1能够将用于获取机器人30与PLC200这两者的至少一者的数据的途径设为如图2那样的生产线中所配设的实机。
图9中,表示搭载模拟装置1的信息处理装置100经由网络80而连接于作为实机的一例的PLC200的场景。具体而言,在FA(工厂自动化)系统的网络220上,连接有实机的PLC200,但未连接机器人30。信息处理装置100的模拟装置1使用来自实机的PLC200的数据来算出机器人30的行为。
图9中,模拟装置1不启动PLC模拟器152(或者取代PLC模拟器152),而从作为实机的运转中的PLC200接收表示对与工件232的搬送相关的机器的指令值等的数据,并将所接收的数据设定至虚拟空间信息105(共享数据12A)。由此,在模拟装置1中,一边在机器人仿真器160与实机的PLC200之间实施经由虚拟空间信息105的数据交换,一边推测跟与实机的PLC200联动地运行的机器人30对应的对象物的行为,并由物理模拟器156基于所推测出的行为来检测碰撞。
与实机的运行速度相关的控制周期一般比模拟装置1的时间步的周期短,因此,如图9所示,模拟装置1与实机组合的情况下,模拟装置1调整实机的控制周期以使其与模拟的时间步匹配。
另外,图9所示的组合是实机的PLC200与机器人仿真器160的组合,但并不限定于此,也可为实机的机器人30与PLC模拟器152的组合。
<J.机器人30的线缆的模拟>
本实施方式中,能够提供用于算出(再现)伴随机器人30的动作的线缆的行为的线缆模拟。本实施方式中,对附属于机器人30且可安装于机器人30的线缆和与线缆相关的机器的行为进行模拟。
图10中,例如表示了在多关节的机器人30中将引导线缆的位置即机械手210的位置、链节351、352、353的位置(也称作引导位置)与邻接的引导位置彼此连接的线缆341、342以及343。模拟装置1对这些线缆与机器人30之间的干涉即线缆与机器人30(更特定而言为臂)之间的碰撞进行检测。链节351、352、353以及线缆341、342、343可作为被安装于机器人30的附属机器的一例来处理。
具体而言,机器人仿真器160在算出机器人30的行为时,算出机械手210的位置以及链节351、352、353的位置(引导位置)。物理模拟器156对由机器人仿真器160所算出的引导位置实施将质量设为零的物理运算,由此来算出机械手210以及链节351、352、353的各位置。物理模拟器156基于像这样算出的各位置,使用规定函数来算出将质量设为零的线缆341、342、343的行为(位置、姿势等)。物理模拟器156基于所算出的线缆341、342、343的各位置,来检测线缆与其他构件(邻接的线缆等)之间的碰撞。
根据此种模拟,即便不存在现实的机器人30,也能够基于线缆341、342、343的碰撞检测的结果,来检测线缆341、342、343的长度、安装位置(引导位置)的适当与否。
<K.附注>
如上所述的本实施方式包含如下所述的技术思想。
[结构1]
一种模拟装置(1),算出机器的行为,所述模拟装置(1)包括:
第一行为计算部(160),算出与安装有附属机器(210)的第一机器(30)对应的、配置在虚拟空间内的第一对象的行为;以及
第二行为计算部(158),算出与第二机器对应的、所述虚拟空间内的第二对象的行为,
所述第二机器包含所述附属机器,
对于规定的每个时间步(ST),在所述时间步中,
所述第一行为计算部算出与安装有所述附属机器的第一机器对应的所述第一对象的行为,随后,所述第二行为计算部基于所述算出的所述第一对象的行为,来算出被安装于所述第一机器的所述附属机器的行为。
[结构2]
根据结构1所述的模拟装置,其中
所述附属机器包含通过安装来对所述第一机器附加对工件进行操作的操作功能的机器。
[结构3]
根据结构1或2所述的模拟装置,其中
所述第二行为计算部包含物理模拟器。
[结构4]
根据结构3所述的模拟装置,其中
所述第一机器包含机器人,
所述第一行为计算部执行具有使所述机器人操作工件的指令代码的机器人程序的仿真。
[结构5]
根据结构3或4所述的模拟装置,其中
由所述第一行为计算部所算出的所述第一对象的行为包含所述虚拟空间内的所述第一对象的位置,
所述物理模拟器依据使用由所述第一行为计算部所算出的所述第一对象的位置的物理运算,来算出所述第二对象的行为。
[结构6]
根据结构5所述的模拟装置,其中
所述物理模拟器使对所述第二对象的力的产生无效化而实施所述物理运算。
[结构7]
根据结构1至6中任一项所述的模拟装置,其中
关于与所述附属机器对应的第二对象而算出的行为包含所述虚拟空间内的所述第二对象的位置,
所述第二行为计算部进而根据所述附属机器在所述虚拟空间内的所述第二对象的位置与所述虚拟空间内的规定对象的位置来检测两者的碰撞(1093)。
[结构8]
根据结构1至7中任一项所述的模拟装置,还包括:
第三行为计算部(152),算出与第三机器(200)对应的、配置在虚拟空间内的第三对象的行为,
所述第三机器一边与所述第一机器交换数据,一边与所述第一机器联动运行,
所述模拟装置从配设于生产线的实机获取在所述第一机器与所述第三机器之间交换的数据(12A)。
[结构9]
根据结构1至8中任一项所述的模拟装置,其中
所述附属机器包含能够安装于所述第一机器的线缆。
[结构10]
根据结构1至9中任一项所述的模拟装置,还包括:
图像生成部(164),生成将所述虚拟空间视觉化的图像。
[结构11]
一种模拟程序,用于使计算机(100)执行算出机器的行为的方法,其中
所述方法包括:
第一行为计算步骤,算出与安装有附属机器的第一机器对应的、配置在虚拟空间内的第一对象的行为;以及
第二行为计算步骤,算出与第二机器对应的、所述虚拟空间内的第二对象的行为,
所述第二机器包含所述附属机器,
对于规定的每个时间步,
在所述第一行为计算步骤中,算出与安装有所述附属机器的第一机器对应的所述第一对象的行为,随后,在所述第二行为计算步骤中,基于所述算出的所述第一对象的行为,来算出被安装于所述第一机器的所述附属机器的行为。
[结构12]
一种模拟方法,算出机器的行为,所述模拟方法包括:
第一步骤,算出与安装有附属机器的第一机器对应的、配置在虚拟空间内的第一对象的行为;以及
第二步骤,算出与第二机器对应的、所述虚拟空间内的第二对象的行为,
所述第二机器包含所述附属机器,
对于规定的每个时间步,
在所述第一步骤中,算出与安装有所述附属机器的第一机器对应的所述第一对象的行为,随后,在所述第二步骤中,基于在所述第一步骤中算出的所述第一对象的行为,来算出被安装于所述第一机器的所述附属机器的行为。
应认为,此次公开的实施方式在所有方面为例示而非限制者。本发明的范围是由权利要求而非所述说明所示,且意图包含与权利要求均等的含义以及范围内的所有变更。
符号的说明
1:模拟装置
2:控制系统
6:光电传感器
7:连接器
8:挡板
9:托盘
12A:共享数据
13:运算单元
30:机器人
41、42、1301、1302、1303、1304:伺服马达
87:接近传感器
100:信息处理装置
102:处理器
104:主存储器
105:虚拟空间信息
106:操作单元
108:输出单元
109:显示器
111:贮存器
112:光学驱动器
120:虚拟时刻生成程序
121:中继程序
122:物理模拟程序
124:物理模拟参数
126:模拟程序
130:机器人仿真程序
132:机器人参数
134:统合程序
136:图像处理程序
150:虚拟空间信息管理模块
152:PLC模拟器
154:周期生成模块
155:工件行为模拟器
156:物理模拟器
158:中继模块
160:机器人仿真器
162:工件追踪模块
164:3D观察仪
210:机械手
230:输送器
232:工件
236、238:编码器
310:机器人控制器
341、342、343:线缆
351、352、353:链节
531、532:伺服马达驱动器
1093:碰撞

Claims (12)

1.一种模拟装置,算出机器的行为,所述模拟装置包括:
第一行为计算部,算出与安装有附属机器的第一机器对应的、配置在虚拟空间内的第一对象的行为;以及
第二行为计算部,算出与第二机器对应的、所述虚拟空间内的第二对象的行为,
所述第二机器包含所述附属机器,
对于规定的每个时间步,在所述时间步中,
所述第一行为计算部算出与安装有所述附属机器的第一机器对应的所述第一对象的行为,随后,所述第二行为计算部基于算出的所述第一对象的行为,来算出被安装于所述第一机器的所述附属机器的行为。
2.根据权利要求1所述的模拟装置,其中
所述附属机器包含通过安装来对所述第一机器附加对工件进行操作的操作功能的机器。
3.根据权利要求1或2所述的模拟装置,其中
所述第二行为计算部包含物理模拟器。
4.根据权利要求3所述的模拟装置,其中
所述第一机器包含机器人,
所述第一行为计算部执行具有使所述机器人操作工件的指令代码的机器人程序的仿真。
5.根据权利要求3或4所述的模拟装置,其中
由所述第一行为计算部所算出的所述第一对象的行为包含所述虚拟空间内的所述第一对象的位置,
所述物理模拟器依据使用由所述第一行为计算部所算出的所述第一对象的位置的物理运算,来算出所述第二对象的行为。
6.根据权利要求5所述的模拟装置,其中
所述物理模拟器使对所述第二对象的力的产生无效化而实施所述物理运算。
7.根据权利要求1至6中任一项所述的模拟装置,其中
关于与所述附属机器对应的所述第二对象而算出的行为包含所述虚拟空间内的所述第二对象的位置,
所述第二行为计算部进而根据所述第二对象在所述虚拟空间内的位置与所述虚拟空间内的规定对象的位置来检测两者的碰撞。
8.根据权利要求1至7中任一项所述的模拟装置,还包括:
第三行为计算部,算出与第三机器对应的、配置在虚拟空间内的第三对象的行为,
所述第三机器一边与所述第一机器交换数据,一边与所述第一机器联动运行,
所述模拟装置从配设于生产线的实机获取在所述第一机器与所述第三机器之间交换的数据。
9.根据权利要求1至8中任一项所述的模拟装置,其中
所述附属机器包含能够安装于所述第一机器的线缆。
10.根据权利要求1至9中任一项所述的模拟装置,还包括:
图像生成部,生成将所述虚拟空间视觉化的图像。
11.一种模拟程序,用于使计算机执行算出机器的行为的方法,其中
所述方法包括:
第一行为计算步骤,算出与安装有附属机器的第一机器对应的、配置在虚拟空间内的第一对象的行为;以及
第二行为计算步骤,算出与第二机器对应的、所述虚拟空间内的第二对象的行为,
所述第二机器包含所述附属机器,
对于规定的每个时间步,在所述时间步中,
在所述第一行为计算步骤中,算出与安装有所述附属机器的第一机器对应的所述第一对象的行为,随后,在所述第二行为计算步骤中,基于算出的所述第一对象的行为,来算出被安装于所述第一机器的所述附属机器的行为。
12.一种模拟方法,算出机器的行为,所述模拟方法包括:
第一步骤,算出与安装有附属机器的第一机器对应的、配置在虚拟空间内的第一对象的行为;以及
第二步骤,算出与第二机器对应的、所述虚拟空间内的第二对象的行为,
所述第二机器包含所述附属机器,
对于规定的每个时间步,在所述时间步中,
在所述第一步骤中,算出与安装有所述附属机器的第一机器对应的所述第一对象的行为,随后,在所述第二步骤中,基于在所述第一步骤中算出的所述第一对象的行为,来算出被安装于所述第一机器的所述附属机器的行为。
CN202080056194.0A 2019-09-17 2020-03-04 模拟装置、模拟程序以及模拟方法 Pending CN114206562A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2019-168020 2019-09-17
JP2019168020A JP7388074B2 (ja) 2019-09-17 2019-09-17 シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法
PCT/JP2020/009130 WO2021053855A1 (ja) 2019-09-17 2020-03-04 シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法

Publications (1)

Publication Number Publication Date
CN114206562A true CN114206562A (zh) 2022-03-18

Family

ID=74877288

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080056194.0A Pending CN114206562A (zh) 2019-09-17 2020-03-04 模拟装置、模拟程序以及模拟方法

Country Status (6)

Country Link
US (1) US20220292234A1 (zh)
EP (1) EP4032662A4 (zh)
JP (2) JP7388074B2 (zh)
KR (1) KR20220028036A (zh)
CN (1) CN114206562A (zh)
WO (1) WO2021053855A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022187059A (ja) 2021-06-07 2022-12-19 オムロン株式会社 シミュレーション装置、シミュレーション方法およびシミュレーションプログラム
JP2022189270A (ja) 2021-06-11 2022-12-22 オムロン株式会社 シミュレーションシステム、シミュレーション方法およびシミュレーションプログラム
JP2023006299A (ja) 2021-06-30 2023-01-18 オムロン株式会社 シミュレーションシステム、シミュレーションシステムの方法、およびシミュレーションのプログラム
JP2023006301A (ja) 2021-06-30 2023-01-18 オムロン株式会社 シミュレーションシステム、シミュレーションシステムの方法、およびシミュレーションのプログラム
WO2023073883A1 (ja) * 2021-10-28 2023-05-04 ファナック株式会社 補助ファイルを生成するシミュレーション装置および制御システム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099310A (ja) * 2004-09-29 2006-04-13 Yaskawa Electric Corp ロボットシミュレーション装置および方法
JP2013004060A (ja) * 2011-06-22 2013-01-07 Dainippon Screen Mfg Co Ltd シミュレーション装置およびプログラム
US20130035789A1 (en) * 2011-08-04 2013-02-07 Fanuc Corporation Robot simulation device for simulating behavior of umbilical member
WO2013136930A1 (ja) * 2012-03-15 2013-09-19 オムロン株式会社 シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム
US20170165841A1 (en) * 2015-12-10 2017-06-15 Fanuc Corporation Robot system equipped with video display apparatus that displays image of virtual object in superimposed fashion on real image of robot
CN106896790A (zh) * 2015-11-18 2017-06-27 欧姆龙株式会社 模拟装置以及模拟方法
JP2019081242A (ja) * 2017-10-31 2019-05-30 セイコーエプソン株式会社 シミュレーション装置、制御装置およびロボット

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10275007A (ja) * 1997-03-31 1998-10-13 Nissan Motor Co Ltd ロボット動作シミュレーション方法
MX2015009537A (es) 2015-05-29 2017-02-23 Benemérita Univ Autónoma De Puebla * Sistema de control de movimiento para un robot de transmisión directa mediante retroalimentacion visual.
JP6052372B2 (ja) 2015-11-12 2016-12-27 オムロン株式会社 シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム
JP6653064B2 (ja) 2016-12-28 2020-02-26 オムロン株式会社 シミュレーション装置、ロボット、シミュレーション方法、及びそのプログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099310A (ja) * 2004-09-29 2006-04-13 Yaskawa Electric Corp ロボットシミュレーション装置および方法
JP2013004060A (ja) * 2011-06-22 2013-01-07 Dainippon Screen Mfg Co Ltd シミュレーション装置およびプログラム
US20130035789A1 (en) * 2011-08-04 2013-02-07 Fanuc Corporation Robot simulation device for simulating behavior of umbilical member
WO2013136930A1 (ja) * 2012-03-15 2013-09-19 オムロン株式会社 シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム
CN106896790A (zh) * 2015-11-18 2017-06-27 欧姆龙株式会社 模拟装置以及模拟方法
US20170165841A1 (en) * 2015-12-10 2017-06-15 Fanuc Corporation Robot system equipped with video display apparatus that displays image of virtual object in superimposed fashion on real image of robot
JP2019081242A (ja) * 2017-10-31 2019-05-30 セイコーエプソン株式会社 シミュレーション装置、制御装置およびロボット

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PEDRO NETO, J. NORBERTO PIRES等: ""Robot Path Simulation: a Low Cost Solution Based on CAD"", 《ROBOTICS AUTOMATION AND MECHATRONICS(RAM), 2010IEEE CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, , 28,JUNE 2010(2010-06-28), PAGES 333-338.XP031710222, ISBN:978-1-4244-6503-3》, pages 333 - 338 *

Also Published As

Publication number Publication date
KR20220028036A (ko) 2022-03-08
EP4032662A1 (en) 2022-07-27
US20220292234A1 (en) 2022-09-15
JP2021045797A (ja) 2021-03-25
JP7388074B2 (ja) 2023-11-29
JP2024003150A (ja) 2024-01-11
EP4032662A4 (en) 2023-10-04
WO2021053855A1 (ja) 2021-03-25

Similar Documents

Publication Publication Date Title
CN114206562A (zh) 模拟装置、模拟程序以及模拟方法
US10353383B2 (en) Simulator, simulation method, and simulation program
US20220009100A1 (en) Software Interface for Authoring Robotic Manufacturing Process
EP3171237B1 (en) Simulator, simulation method, and simulation program
US10410339B2 (en) Simulator, simulation method, and simulation program
EP3171236B1 (en) Simulator, simulation method, and simulation program
EP3126917B1 (en) Runtime controller for robotic manufacturing system
Connolly Technology and applications of ABB RobotStudio
WO2021149419A1 (ja) シミュレーション装置およびシミュレーションプログラム
JP7424122B2 (ja) シミュレーション装置およびプログラム
EP3330813B1 (en) Simulator, simulation method, and simulation program
JP6972873B2 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
JP7447568B2 (ja) シミュレーション装置およびプログラム
WO2022137581A1 (ja) シミュレーション装置およびシミュレーションプログラム
JP7275840B2 (ja) シミュレーション装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination