CN115004189A - 用于促进多个机器人任务的并发模拟的方法和系统 - Google Patents
用于促进多个机器人任务的并发模拟的方法和系统 Download PDFInfo
- Publication number
- CN115004189A CN115004189A CN202080093503.1A CN202080093503A CN115004189A CN 115004189 A CN115004189 A CN 115004189A CN 202080093503 A CN202080093503 A CN 202080093503A CN 115004189 A CN115004189 A CN 115004189A
- Authority
- CN
- China
- Prior art keywords
- operands
- robot
- subset
- execution
- program
- 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
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000008859 change Effects 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 21
- 230000004048 modification Effects 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 6
- 239000000725 suspension Substances 0.000 claims description 2
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000013523 data management Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/1605—Simulation of manipulator lay-out, design, modelling of manipulator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1671—Programme 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39001—Robot, manipulator control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40311—Real time simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Architecture (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Human Computer Interaction (AREA)
- Manipulator (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种用于促进虚拟环境中多个机器人的多个任务的并发模拟的系统和方法,其中,至少一个虚拟机器人被预计为通过对一组操作数并发执行一个对应的机器人运动程序和一组对应的机器人逻辑程序来并发模拟一个机器人运动任务和一组机器人逻辑任务。在多个机器人的多个机器人运动程序和多组机器人逻辑程序的并发执行期间,通过重复以下来暂停和恢复至少一个给定逻辑程序的执行:执行给定逻辑程序的运行;收集在所执行的运行中使用的操作数的子集;如果所收集的操作数中没有一个在执行运行中被修改,则暂停给定逻辑程序的执行并在所收集的操作数中的一个被修改时恢复给定逻辑程序的执行。
Description
技术领域
本公开内容总体上涉及计算机辅助设计、可视化和制造(“CAD”)系统、产品生命周期管理(“PLM”)系统、产品数据管理(“PDM”)系统以及管理产品和其他项的数据的类似系统(统称为“产品数据管理”系统或PDM系统)。更具体地,本公开内容涉及生产环境模拟。
背景技术
在制造设施的机器人单元中,经常需要每个物理工业机器人并行执行多个任务。单个机器人的这样的多个并行任务通常由一个单个主要机器人运动任务和几个次要机器人逻辑任务组成。如本文所使用的,术语“运动任务”表示通常包括一组运动学操作和一组逻辑操作的主要机器人任务。如本文所使用的,术语“逻辑任务”表示包括一组逻辑操作而没有运动学操作的次要机器人逻辑任务。
物理机器人通过在它们自己的机器人控制器的线程或进程上运行关于一组操作数(operand)的对应的机器人程序来执行多个不同的机器人任务。这样的机器人程序的代码通常以机器人编程语言通常是特定机器人的供应商和型号的本地语言编写。这样的本地机器人语言的示例包括但不限于由机器人供应商(如库卡、ABB、发那科)支持的本地机器人语言。
工业机器人的模拟软件应用应当优选地满足以下要求:能够模拟车间内多个物理工业机器人执行的所有不同的多个任务。
这个要求对于实现生产优化和装备验证的虚拟试运行系统尤为重要。
为了并发模拟所有多个机器人任务,需要模拟系统来并发执行生产单元的所有多个机器人控制器的所有机器人程序。
由于当今的生产单元确实包括越来越多的机器人,因此以实时性能来模拟完整的机器人单元的能力变得至关重要。
通过反映所包括的物理机器人的所有机器人任务的执行并通过实现尽可能接近实时的虚拟时间来提供执行时间方面的高性能,机器人模拟被期望为尽可能真实。
实际上,例如,具有高性能的模拟执行时间对于实现与PLC运行代码的同步以及对于防止PLC代码因“超时”错误而退出很重要。
因此,需要机器人模拟应用来通过以并发且高性能的方式执行多个主要机器人运动程序以及多组机器人逻辑程序来真实地模拟多个机器人的多个机器人任务。
对于具有数十个机器人的复杂工业单元,每个机器人执行数十个任务,该要求意味着运行数百个或更多个机器人程序的具有高性能的机器人模拟。
如今,通过在几个CPU、计算机集群或超级计算机上执行数百个并行机器人程序,可以实现模拟这样的复杂机器人单元的高性能。
然而,当今的常见情况是工业机器人模拟大多在具有公共资源的计算机上执行,而不是在超级计算机上执行。
因此,对于具有多个机器人的单元,通常在以下权宜之计中一个或更多个的帮助下执行当今在公共计算机上的机器人模拟:
-仅执行机器人运动程序,同时忽略机器人逻辑程序;
-执行机器人运动程序,同时通过使用逻辑块重写机器人逻辑任务的逻辑程序本地代码来手动建模机器人逻辑任务;
-执行机器人运动程序,同时连接至能够执行机器人逻辑任务的外部虚拟机器人控制器(“VRC”)。
遗憾的是,当前在公共计算机上的机器人模拟技术存在缺点:即繁琐且需要变通、引入模拟错误以及/或者无法提供真实且高性能的模拟。
因此需要改进的技术。
发明内容
各种公开的实施方式包括用于促进虚拟环境中多个机器人的多个任务的并发模拟的方法、系统和计算机可读介质,其中,至少一个虚拟机器人被预计为通过对一组操作数并发执行一个对应的机器人运动程序和一组对应的机器人逻辑程序来并发模拟一个机器人运动任务和一组机器人逻辑任务。一种方法包括:在多个机器人的多个机器人运动程序和多组机器人逻辑程序的并发执行期间,通过重复执行以下来暂停和恢复至少一个给定逻辑程序的执行:执行给定逻辑程序的运行;收集在所执行的运行中使用的操作数的子集;如果所收集的操作数中没有一个在执行运行中被修改,则暂停给定逻辑程序的执行并在所收集的操作数中的一个被修改时恢复给定逻辑程序的执行。
前面已经相当广泛地概述了本公开内容的特征和技术优点,以便本领域技术人员可以更好地理解下面的详细描述。在下文中,将描述本公开内容的形成权利要求的主题的另外的特征和优点。本领域技术人员将理解的是,他们可以容易地使用所公开的构思和具体实施方式作为修改或设计用于实现本公开内容的相同目的的其他结构的基础。本领域技术人员还将认识到,这样的等同构造不会脱离本公开内容在其最广泛的形式上的精神和范围。
在进行下面的详细描述之前,阐述贯穿本专利文件使用的某些词或短语的定义可能是有利的:术语“包括”和“包含”以及其派生词意味着包括但不限于;术语“或”是包含性的,意味着和/或;短语“与……相关联”和“与之相关联”及其派生词可以意味着包括、包括在……内、与……互连、包含、包含在……内、连接至或与……连接、耦合至或与……耦合、与……可通信、与……合作、交错、并置、靠近、绑定至或与……绑定、具有、具有……的特性等;以及术语“控制器”意味着控制至少一个操作的任何装置、系统或其一部分,无论这样的装置是以硬件、固件、软件或是其中至少两种的一些组合来实现的。应当注意,无论是本地的或是远程的,与任何特定控制器相关联的功能可以是集中的或分布的。本专利文件通篇提供了某些词和短语的定义,并且本领域普通技术人员将理解,这样的定义在许多(如果不是大多数)情况下适用于这样定义的词和短语的先前和将来的使用。虽然一些术语可以包括各种各样的实施方式,但是所附权利要求可以明确地将这些术语限制到具体实施方式。
附图说明
为了更全面地理解本公开内容及其优点,现在参考结合附图的以下描述,其中,相同的附图标记表示相同的对象,并且在附图中:
图1示出了可以实现实施方式的数据处理系统的框图;
图2示出了机器人程序查看器的示例的屏幕截图;
图3示出了机器人参数和机器人信号的示例性查看器的屏幕截图;
图4示出了根据所公开的实施方式的机器人的多个机器人任务的并发模拟的示例的序列图;
图5示出了根据所公开的实施方式的用于促进虚拟环境中多个机器人的多个任务的并发模拟的流程图。
具体实施方式
下面讨论的图1至图5以及在本专利文件中用于描述本公开内容的原理的各种实施方式仅是说明的方式,并且不应以任何方式而被解释成限制本公开内容的范围。本领域技术人员将理解的是,本公开内容的原理可以在任何适当布置的装置中实现。将参照示例性非限制性实施方式来描述本申请的众多创新性教导。
用于促进多个机器人任务的并发模拟的先前技术在公共计算机上具有性能缺陷。本文公开的实施方式提供了许多技术益处,这些技术益处包括但不限于以下示例。
通过实施方式,在公共计算机上运行的虚拟模拟系统被准许以可接受的性能并发模拟多个机器人的多个机器人任务。
通过实施方式,虚拟模拟系统能够以接近实时的性能真实地模拟工业单元中的多个机器人的多个机器人任务。
通过实施方式,促进虚拟模拟系统以可接受的实时性能并发执行以其自己的原始本地代码编写的多个机器人程序。
在多个并发机器人逻辑程序的机器人模拟的情况下,实施方式节省了CPU时间。
通过实施方式,能够在机器人模拟平台例如西门子公司的过程模拟上运行真实的虚拟试运行模拟,脱离以其原始本地编码语言编写的机器人程序。
实施方式通过使整个模拟能够在如过程模拟的模拟平台上运行而不需要额外的外部VRC连接来提供封装特性。
图1示出了数据处理系统100的框图,在数据处理系统100中,实施方式可以被实现为例如具体地由软件或者其他方式配置以执行本文描述的过程的PDM系统,并且特别是可以被实现为本文描述的多个互连和通信系统中的每一个。所示的数据处理系统100可以包括连接至二级缓存/桥104的处理器102,二级缓存/桥104又连接至本地系统总线106。本地系统总线106可以是例如外围部件互连(PCI)架构总线。也连接至所示示例中的本地系统总线的是主存储器108和图形适配器110。图形适配器110可以连接至显示器111。
诸如局域网(LAN)/广域网/无线(例如WiFi)适配器112的其他外围设备也可以连接至本地系统总线106。扩展总线接口114将本地系统总线106连接至输入/输出(I/O)总线116。I/O总线116连接至键盘/鼠标适配器118、磁盘控制器120和I/O适配器122。磁盘控制器120可以连接至存储器126,该存储器126可以是任何可用的合适机器或机器可读存储介质,包括但不限于非易失性硬编码类型的介质,诸如只读存储器(ROM)或电可擦可编程只读存储器(EEPROM)、磁带存储器和诸如软盘、硬盘驱动器和光盘只读存储器(CD-ROM)或数字多功能盘(DVD)的用户可记录类型的介质、以及其他已知的光、电或磁存储装置。
也连接至所示示例中的I/O总线116的是音频适配器124,扬声器(未示出)可以连接至音频适配器124以用于播放声音。键盘/鼠标适配器118提供用于诸如鼠标、轨迹球、轨迹指针、触摸屏等的指针装置(未示出)的连接。
本领域普通技术人员将理解的是,图1所示的硬件可以针对特定的实现方式而变化。例如,除了所示的硬件之外或替代所示的硬件,也可以使用诸如光盘驱动器等的其他外围装置。仅出于说明的目的来提供所示的示例,并且所示的示例并不意味着暗含对本公开内容的架构限制。
根据本公开内容的实施方式的数据处理系统可以包括采用图形用户界面的操作系统。操作系统允许在图形用户界面中同时呈现多个显示窗口,其中每个显示窗口向不同的应用提供界面或者向同一应用的不同实例提供界面。可以由用户通过指针装置来操纵图形用户界面中的光标。可以改变光标的位置和/或产生诸如点击鼠标按钮的事件来驱动期望的响应。
如果被适当地修改,则可以使用各种商业操作系统中的一种,诸如微软视窗(Microsoft WindowsTM)的版本,位于华盛顿州雷蒙德市的微软公司的产品。根据所描述的本公开内容修改或创建操作系统。
LAN/WAN/无线适配器112可以连接至网络130(不是数据处理系统100的一部分),该网络130可以是任何公共或私人数据处理系统网络或本领域技术人员已知的包括因特网的网络的组合。数据处理系统100可以通过网络130与服务器系统140进行通信,服务器系统140也不是数据处理系统100的一部分,但是服务器系统140可以被实现为例如单独的数据处理系统100。
在示例性实施方式中,下面示出了用于促进虚拟环境中多个机器人的多个任务的并发模拟的主要算法步骤。
出于说明的目的,假设该示例性实施方式涉及具有多个30个工业机器人Ri的工业单元的模拟场景(未示出),每个机器人预计并发执行由单个运动任务MTi和一组20个逻辑任务LTi,j组成的不同任务,其中,i=1,..,30和j=1,..,20。通过对操作数的集合并发执行机器人的对应的30个机器人运动程序和600个逻辑程序来执行30个机器人的多个任务的并发模拟。
通过实施方式,提供了如下软件工具,用于在模拟期间自动决定机器人逻辑程序何时对整个模拟没有实际影响并且因此可以被暂停直到发生相关的影响条件。自动软件工具决策是基于机器人程序的分析和基于机器人模拟事件的预测,其中将所使用的与现有机器人信号、参数和/或变量有关的操作数考虑在内。
在多个630个机器人程序的并发且连续执行期间,通过执行以下子步骤来暂停和恢复一个或更多个给定逻辑程序的执行,来促进对应的630个机器人任务的并发模拟:
1)执行给定逻辑程序的运行;
2)收集在所执行的运行中使用的操作数的子集;
3)如果所收集的操作数中没有一个在执行运行中被修改,则暂停给定逻辑程序的执行,并在所收集的操作数中的一个被修改时恢复程序执行,并进入子步骤4);
4)返回到子步骤1)。
图2示出了机器人程序查看器的示例的屏幕截图,并且图3示出了机器人参数和机器人信号的查看器的示例的屏幕截图。图2和图3的屏幕截图示出了机器人逻辑和运动程序的指令的示例以及机器人程序中通常涉及的操作数的示例。实际上,每个机器人逻辑程序可以被视为对操作数的逻辑指令的容器。在计算机编程中,操作数是用于描述能够被操纵的任何对象的术语。机器人程序中的操作数的示例包括但不限于机器人变量、机器人参数和机器人信号。注意,即使机器人Rh的特定机器人逻辑任务LTh,k不包括任何运动学操作,该特定逻辑任务LTh,k的执行仍可能影响机器人Rh的运动学操作。例如,该机器人逻辑任务执行可以是对人运动跟踪传感器的持续检查,该人运动跟踪传感器在某个传感器输入后可能会由于检测到人的存在而导致机器人的安全停止的激活。机器人逻辑任务与机器人运动任务之间的这种相互依赖性可以例如通过在特定机器人逻辑程序内具有修改操作数值的指令来获得,修改操作数值的指令又引起运动机器人程序中的机器人运动学指令的执行。
这样的相互依赖的交互的示例在图2中示出,其中示出了程序查看器的示例屏幕截图200。在左窗口201上,示出了用于标记初始化的机器人逻辑程序“INIT_Markers”的代码示例的逻辑指令。在右窗口202上,示出了包含逻辑指令和第17行的运动学指令“调用生产开始”的机器人运动程序“主程序”的示例的代码部分。如图2所示,逻辑任务201对机器人运动任务202的执行具有影响203,具体地,当在逻辑程序执行期间操作数RO[2]被设置为“ON”时,然后机器人运动程序的执行向前移动“等待RO[2]=ON”。
注意,在不同的多个机器人任务之间可以方便地预计相互依赖的交互的几种组合。例如,在执行期间,机器人R3的逻辑任务LT3,4可以通过PLC对机器人R7的逻辑任务LT7,2产生影响,而机器人R7的逻辑任务LT7,2又可能对同一机器人R7的运动任务MT7产生影响。在另一示例中,在执行期间,机器人R8的运动任务MT8可以通过PLC对机器人R20的运动任务MT20产生影响,而机器人R20的运动任务MT20又可以通过PLC对机器人R18的逻辑任务LT18,2产生影响。
在对应的多个机器人程序的并发执行期间,同一机器人Ri的多个机器人任务MTi、LTi,j通过机器人Ri的操作数值的相关改变而彼此交互,如这将在参照图4的示例性实施方式中示出。
注意,在虚拟试运行中,对于真实的模拟验证,用户连接PLC以同步机器人,使得PLC通过它们的信号交换影响整个模拟结果。任何机器人的每个机器人输入信号连接至PLC,PLC根据其PLC代码将输出信号回传给机器人。
图3示出了机器人参数和机器人信号的示例性查看器301、302的屏幕截图300。
在机器人参数查看器301中,示出的机器人参数可以是例如仅在单个运行程序内的本地参数或者是例如跨同一机器人的不同机器人程序的全局参数。
在机器人信号查看器302中,示出了可以通过PLC在机器人之间外部交换并且可以用于机器人的内部使用的信号数据。
图4示出了根据所公开的实施方式的机器人的多个机器人任务的并发模拟的示例的序列图。
在图4的序列图中,示出了一个机器人运动任务411和两个机器人逻辑任务412、413随时间-沿着x轴-的并发模拟的实施方式示例。
逻辑任务412的连续线内的虚线段401说明:在对应的时间间隔t2至t3期间,例如经由睡眠模式暂停对应的逻辑程序的执行,然后当发生关于相关操作数的值改变时例如经由唤醒事件429恢复对应的逻辑程序的执行。对于其他机器人任务412、413,系统未调用睡眠模式,因此对应的线被描绘为连续的。
在最初描绘的时间间隔中,在时间t1之前,系统并发运行所有三个程序的执行而没有任何暂停。注意,沿着所有描绘的时间帧,机器人运动任务411的程序一直执行,就像在常规模拟中一样,没有任何暂停,而如果根据实施方式的某些条件发生,则机器人逻辑任务413的程序可能在稍后的时间段(未示出)暂停。
在这三个机器人任务411、412、413的程序执行期间,存在与操作数容器402的通信交换421、..、428,所述操作数容器402包括与该特定机器人的所有机器人程序相关的所有操作数的集合。
通信交换的示例包括但不限于:读取操作数值、修改操作数值、注册和注销操作数上发生的事件、对操作数值改变的动作以及与操作数容器402中的所有操作数的集合的其他交换。对于两个机器人逻辑任务412、413,在每个程序执行运行期间,收集使用的操作数,并检查它们是否在执行运行期间被修改,其中可以通过逻辑程序本身、通过同一特定机器人的另一程序或通过外部影响(例如来自PLC的信号)修改操作数。
在时间间隔t1至t2中,发现:对于任务411,在程序执行运行期间对使用的操作数的子集没有改变,因此系统将程序置于睡眠模式401,注册428对使用的操作数的子集的改变,并在对操作数中的至少一个进行改变的事件430时唤醒程序429以再次从睡眠模式运行,并注销使用的操作数的子集。
本文公开的示例性实施方式涉及同一机器人的一个机器人运动任务和两个机器人逻辑任务。在其他实施方式中,可以针对多个机器人设想更多的机器人运动程序和更多的机器人逻辑任务。
在另一示例性实施方式中,算法包括以下示例性主要步骤:在所有运动程序和逻辑程序(其中在图4中仅示出其中的三个)的整个模拟期间,对于每个给定的逻辑程序,数据处理系统收集该模拟执行运行Sj中涉及的使用的操作数的子集Oj,当未发生对任何操作数值的改变时,系统注册子集Oj的操作数中的一个的改变,并将该给定逻辑程序置于睡眠模式401,直到出现改变子集Oj的操作数中的一个的事件430,然后系统唤醒该给定逻辑程序并注销子集Oj的所有操作数。在整个并发且连续模拟期间,系统不断重复用于检查关于逻辑程序是否以及何时可以置于睡眠的操作数条件的步骤以及随后要采取的动作。在该实施方式中,系统在新的模拟执行运行Sk中再次执行给定逻辑程序,如先前概述的,系统收集与该新的模拟运行Sk相关的新的使用的操作数的子集Ok,然后在需要时,再次执行睡眠和注销/注册动作(未示出)。
注意,对于每个相同的逻辑程序,在每个不同的模拟执行运行Sj、Sk中,可以收集其他使用的操作数子集Oj、Ok,因为在特定模拟运行Sh中使用“哪个”操作数子集也可能取决于整个模拟的其他周围条件。因此,在不执行整个模拟的情况下,逻辑程序代码的先验分析将不足以为每个特定模拟执行运行Sj、Sk提供关于相关使用的操作数子集Oj、Ok的正确信息。
下面在表1中提供了阐明不同使用的操作数子集的确定的示例。
表1-逻辑程序和不同收集的操作数子集的示例。
表1包括逻辑程序伪代码LPP的示例,其中在模拟期间,收集使用的操作数的两个不同子集:在第一种情况下,当满足“ELSE”条件时,所收集的使用的操作数子集为{DI[20],DI[21],DI[22],RI[1],DO[48]},而在第二种情况下,当满足“IF”条件时,所收集的使用的操作数子集为{DI[20],DI[21],DI[22],RI[1],DO[48],DI[1],DI[2]}。
实际上,在第一种情况的模拟执行运行期间,使用的操作数子集不包括操作数DI[3],DI[4],DI[5],因为“END”操作(DI[1]AND DI[2])返回“TRUE”结果,因此不需要处理“OR操作”的其余操作数DI[3],DI[4],DI[5],因此DI[3],DI[4],DI[5]是未使用的操作数。
在另一示例性实施方式中,下面示出了用于促进虚拟环境中多个机器人的多个任务的并发模拟的主要算法步骤。假设有多个机器人,每一个机器人预计运行一个机器人运动程序和一组机器人逻辑程序。
在整个模拟期间,系统照常执行每个机器人运动任务的程序而没有任何改变。对于每个机器人逻辑任务,系统将在整个模拟期间连续运行以下循环:
L1)执行机器人逻辑任务一次;
L2)在其模拟期间,收集所有被使用的操作数;
L3)在其模拟期间,检查所有使用的操作数中的任一个是否被改变;
L4)如果使用的操作数未被改变:
L4.1)注册项L2)中每个使用的操作数
L4.2)将逻辑程序置于睡眠模式;
L4.3)当由于注册的操作数中的一个的值改变而发生任何事件时唤醒逻辑程序;
L4.4)注销项L2中的每个操作数
L4.5)转至LI)。
在实施方式中,对于包括要执行的大量指令的逻辑程序,可以通过应用以下约束中的一个或任意组合来有利地减少在每个模拟执行时间间隔中执行的指令的数量:
-执行预定义的最大数量的指令;
-分配预定义的最大CPU时间间隔;
-根据正在执行的其他逻辑程序的负载进行动态平衡。
下面在表2中示出了用于实现实施方式算法的主要步骤的伪代码的示例。
表2:实施方式算法主要步骤的伪代码。
表2中的伪代码涉及示例性实施方式的算法的以下主要步骤:收集逻辑任务的使用的操作数,检查所收集的使用的操作数是否被修改,以及如果没有被修改,则通过注册使用的操作数子集将逻辑任务设置为睡眠,以及调用唤醒事件。
因此,实施方式有利地提供了一种自动工具,该自动工具基于对机器人程序及其操作数的分析以及基于对机器人模拟事件两者,能够在模拟期间决定何时/哪些机器人逻辑程序在整个机器人模拟中没有实际影响,使得这样的机器人逻辑程序可以被置于睡眠并仅在发生对使用的操作数值的修改时才被唤醒。
暂停的逻辑程序的执行在其使用的操作数中的一个的值发生改变时恢复。
在实施方式中,可以通过使用用于检测关于使用的操作数中的一个的值改变的几个不同实现选项来触发暂停的逻辑程序的执行。示例包括但不限于以下实现选项中的一个或更多个:
-对于子集的每个单个使用的操作数的单个事件;
-对于子集的所有使用的操作数的单个事件;
-遍历子集的所有操作数并检查它们的值中的任一个是否已经改变
-具有用于表示操作数值何时改变的已变更位元(dirty bit),打开已变更位元,这是用于决定是否恢复被暂停的逻辑任务的执行的门控制。
在实施方式中,以对应的物理机器人的本地语言编写一个或更多个逻辑程序的代码。
实施方式可以有利地应用于多核、多线程和/或多进程体系结构。
可以通过不同类型的系统配置来实现实施方式。系统配置的示例包括但不限于:基于执行所有机器人程序以提供整个模拟的单个模拟模块的系统配置以及包括彼此交互以提供整个模拟的两个不同模拟模块的系统配置。在具有两个不同模拟模块的配置的情况下,这两个不同的模块是机器人运动学模拟模块和机器人逻辑模拟模块,该机器人运动学模拟模块用于照原样执行所有机器人运动程序,该机器人逻辑模拟模块用于以优化的方式执行具有如实施方式所教导的执行暂停的所有机器人逻辑任务。在其他实施方式中,可以设想混合配置,例如其中仅对所有逻辑程序的选定子集执行执行优化。
图5示出了根据所公开的实施方式的用于促进虚拟环境中多个机器人的多个任务的并发模拟的方法的流程图500。这样的方法可以例如由上述图1的系统100来执行,但是以下过程中的“系统”可以是被配置成执行所述过程的任何设备。
在虚拟环境中,预计多个机器人中的至少一个机器人通过对一组操作数并发执行一个对应的机器人运动程序和一组对应的机器人逻辑程序来并发模拟一个机器人运动任务和一组机器人逻辑任务。
在动作505处,在多个机器人的多个机器人运动程序和多组机器人逻辑程序的并发执行期间,通过重复执行动作510至525中的动作来暂停和恢复至少一个给定逻辑程序的执行。
在动作510处,执行给定逻辑程序的运行。
在动作515处,收集在所执行的运行中使用的操作数的子集。
在动作520处,检查所收集的操作数中的一个是否在执行运行中被修改。
在动作525处,给定逻辑程序的执行被暂停,直到所收集的操作数中的一个被修改。
在实施方式中,用于恢复被暂停的逻辑程序执行的触发器可以有利地选自由以下组成的组:
-对于子集的每个单个使用的操作数的值改变的单个事件;
-对于子集的所有使用的操作数的值改变的单个事件;
-用于检测对于子集的每个使用的操作数的值改变的检查;
-关于定义操作数值改变的已变更位元的改变;
-用于检测使用的操作数子集的操作数中的一个的修改的任何其他实现。
在实施方式中,给定逻辑程序的执行的暂停和恢复可以通过以下步骤方便地执行:
-注册关于所收集的操作数子集的事件;
-将给定逻辑程序置于睡眠模式;
-如果发生关于所注册的操作数的事件,则将给定逻辑程序从睡眠模式唤醒;
-注销所注册的操作数的子集。
一种用于通过数据处理系统促进虚拟环境中多个机器人的多个任务的并发模拟的方法的实施方式,其中,至少一个虚拟机器人被预计为通过对一组操作数并发执行一个对应的机器人运动程序和一组对应的机器人逻辑程序来并发模拟一个机器人运动任务和一组机器人逻辑任务,该方法包括以下步骤:在多个机器人的多个机器人运动程序和多组机器人逻辑程序的并发执行期间,通过重复执行以下子步骤来暂停和恢复至少一个给定逻辑程序的执行:
1)执行给定逻辑程序的运行;
2)收集在所执行的运行中使用的操作数的子集;
3)如果所收集的操作数中没有一个在执行运行中被修改,则暂停给定逻辑程序的执行并在所收集的操作数中的一个被修改时恢复给定逻辑程序的执行。
当然,本领域的技术人员将认识到,除非由操作的序列特别地指出或要求,否则上述过程中的某些步骤可以被省略、可以被同时地或顺序地执行,或者可以以不同的顺序执行。
本领域技术人员将认识到,为了简单和清楚起见,本文中并未示出或描述适于与本公开内容一起使用的所有数据处理系统的全部结构和操作。替代地,仅示出和描述了如本公开内容独有或为了理解本公开内容所需要的如此多的数据处理系统。数据处理系统100的其余构造和操作可以符合本领域已知的各种当前实现方式和实践中的任何一种。
重要的是要注意,虽然本公开内容包括在全功能系统的背景下的描述,但是本领域技术人员将理解,本公开内容的至少部分能够以包含在各种形式中的任何形式的机器可用、计算机可用或计算机可读介质中的指令的形式来分发,并且本公开内容同等地适用,而不管用于实际执行分发的指令或信号承载介质或存储介质的特定类型如何。机器可用/可读或计算机可用/可读介质的示例包括:非易失性硬编码类型的介质例如只读存储器(ROM)或电可擦可编程只读存储器(EEPROM),以及用户可记录型介质例如软盘、硬盘驱动器和光盘只读存储器(CD-ROM)或数字多功能盘(DVD)。
尽管已经详细描述了本公开内容的示例性实施方式,但是本领域技术人员将理解,在不脱离本公开内容在其最广泛的形式上的精神和范围的情况下,可以进行本文所公开的各种改变、替换、变化和改进。
本申请中的任何描述都不应被理解为暗示任何特定的元件、步骤或功能是必须包括在权利要求范围内的基本元件:专利主题的范围仅由允许的权利要求来限定。
Claims (9)
1.一种用于通过数据处理系统促进虚拟环境中多个机器人的多个任务的并发模拟的方法,其中,至少一个虚拟机器人被预计为通过对一组操作数并发执行一个对应的机器人运动程序和一组对应的机器人逻辑程序来并发模拟一个机器人运动任务和一组机器人逻辑任务;所述方法包括以下步骤:
-在所述多个机器人的多个机器人运动程序和多组机器人逻辑程序的并发执行期间,通过重复执行以下子步骤来暂停和恢复至少一个给定逻辑程序的执行:
1)执行所述给定逻辑程序的运行;
2)收集在所执行的运行中使用的操作数的子集;
3)如果所收集的操作数中没有一个在执行运行中被修改,则暂停所述给定逻辑程序的执行,并且在所收集的操作数中的一个被修改时,恢复所述给定逻辑程序的执行。
2.根据权利要求1所述的方法,其中,用于恢复被暂停的逻辑程序执行的触发器选自由以下组成的组:
-对于所述子集的每个单个使用的操作数的值改变的单个事件;
-对于所述子集的所有使用的操作数的值改变的单个事件;
-用于检测对于所述子集的每个使用的操作数的值改变的检查;
-关于定义操作数值改变的已变更位元的改变;
-用于检测使用的操作数子集的操作数中的一个的修改的任何其他实现。
3.根据权利要求1或2所述的方法,其中,子步骤3)的所述给定逻辑程序的执行的暂停和恢复包括以下:
-注册关于所收集的操作数子集的事件;
-将所述给定逻辑程序置于睡眠模式;
-如果发生关于所注册的操作数的事件,则将所述给定逻辑程序从所述睡眠模式唤醒;
-注销所注册的操作数的子集。
4.一种数据处理系统,包括:
处理器;以及
可访问的存储器,所述数据处理系统具体地配置成:
-在多个机器人的多个机器人运动程序和多组机器人逻辑程序的并发执行期间,通过重复执行以下来暂停和恢复至少一个给定逻辑程序的执行:
1)执行所述给定逻辑程序的运行;
2)收集在所执行的运行中使用的操作数的子集;
3)如果所收集的操作数中没有一个在执行运行中被修改,则暂停所述给定逻辑程序的执行,并且在所收集的操作数中的一个被修改时,恢复所述给定逻辑程序的执行。
5.根据权利要求4所述的数据处理系统,其中,用于恢复被暂停的逻辑程序执行的触发器选自由以下组成的组:
-对于所述子集的每个单个使用的操作数的值改变的单个事件;
-对于所述子集的所有使用的操作数的值改变的单个事件;
-用于检测对于所述子集的每个使用的操作数的值改变的检查;
-关于定义操作数值改变的已变更位元的改变;
-用于检测使用的操作数子集的操作数中的一个的修改的任何其他实现。
6.根据权利要求4或5所述的数据处理系统,具体地配置成通过以下暂停和恢复所述给定逻辑程序的执行:
-注册关于所收集的操作数子集的事件;
-将所述给定逻辑程序置于睡眠模式;
-如果发生关于所注册的操作数的事件,则将所述给定逻辑程序从所述睡眠模式唤醒;
-注销所注册的操作数的子集。
7.一种使用可执行指令编码的非暂态计算机可读介质,当所述指令被执行时使一个或更多个数据处理系统进行如下步骤:
-在多个机器人的多个机器人运动程序和多组机器人逻辑程序的并发执行期间,通过重复执行以下来暂停和恢复至少一个给定逻辑程序的执行:
1)执行所述给定逻辑程序的运行;
2)收集在所执行的运行中使用的操作数的子集;
3)如果所收集的操作数中没有一个在执行运行中被修改,则暂停所述给定逻辑程序的执行,并且在所收集的操作数中的一个被修改时,恢复所述给定逻辑程序的执行。
8.根据权利要求7所述的非暂态计算机可读介质,其中,用于恢复被暂停的逻辑程序执行的触发器选自由以下组成的组:
-对于所述子集的每个单个使用的操作数的值改变的单个事件;
-对于所述子集的所有使用的操作数的值改变的单个事件;
-用于检测对于所述子集的每个使用的操作数的值改变的检查;
-关于定义操作数值改变的已变更位元的改变;
-用于检测使用的操作数子集的操作数中的一个的修改的任何其他实现。
9.根据权利要求7或8所述的非暂态计算机可读介质,其中,通过以下暂停和恢复所述给定逻辑程序的执行:
-注册关于所收集的操作数子集的事件;
-将所述给定逻辑程序置于睡眠模式;
-如果发生关于所注册的操作数的事件,则将所述给定逻辑程序从所述睡眠模式唤醒;
-注销所注册的操作数的子集。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2020/050416 WO2021148839A1 (en) | 2020-01-20 | 2020-01-20 | Method and system for facilitating a concurrent simulation of multiple robotic tasks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115004189A true CN115004189A (zh) | 2022-09-02 |
Family
ID=76992914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080093503.1A Pending CN115004189A (zh) | 2020-01-20 | 2020-01-20 | 用于促进多个机器人任务的并发模拟的方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230070378A1 (zh) |
EP (1) | EP4094136A4 (zh) |
JP (1) | JP7387908B2 (zh) |
CN (1) | CN115004189A (zh) |
WO (1) | WO2021148839A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1647055A (zh) * | 2002-03-01 | 2005-07-27 | 飞思卡尔半导体公司 | 虚拟直接存储器存取的方法和装置 |
US20070083285A1 (en) * | 2005-10-06 | 2007-04-12 | Fanuc Ltd | Simulation apparatus |
CN101226385A (zh) * | 2008-02-01 | 2008-07-23 | 哈尔滨工业大学 | 开放式软数控系统的软plc模块 |
CN101606129A (zh) * | 2007-02-12 | 2009-12-16 | 皇家飞利浦电子股份有限公司 | 用于联网的控制系统的设备 |
CN107571271A (zh) * | 2017-10-24 | 2018-01-12 | 上海佳革智能科技有限公司 | 一种基于vr的机器人培训示教器 |
CN109814478A (zh) * | 2019-01-14 | 2019-05-28 | 浙江工业大学 | 基于iOpenWorks的虚拟调试系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6161051A (en) * | 1998-05-08 | 2000-12-12 | Rockwell Technologies, Llc | System, method and article of manufacture for utilizing external models for enterprise wide control |
JP2000305803A (ja) | 1999-04-26 | 2000-11-02 | Mitsubishi Electric Corp | エミュレータ |
US6268853B1 (en) * | 1999-09-30 | 2001-07-31 | Rockwell Technologies, L.L.C. | Data structure for use in enterprise controls |
JP3529373B2 (ja) * | 2001-11-09 | 2004-05-24 | ファナック株式会社 | 作業機械のシミュレーション装置 |
US20050033457A1 (en) * | 2003-07-25 | 2005-02-10 | Hitoshi Yamane | Simulation aid tools and ladder program verification systems |
US9643314B2 (en) * | 2015-03-04 | 2017-05-09 | The Johns Hopkins University | Robot control, training and collaboration in an immersive virtual reality environment |
US10949711B2 (en) | 2018-04-23 | 2021-03-16 | Intel Corporation | Non-maximum suppression of features for object detection |
-
2020
- 2020-01-20 US US17/793,704 patent/US20230070378A1/en active Pending
- 2020-01-20 JP JP2022543642A patent/JP7387908B2/ja active Active
- 2020-01-20 WO PCT/IB2020/050416 patent/WO2021148839A1/en unknown
- 2020-01-20 CN CN202080093503.1A patent/CN115004189A/zh active Pending
- 2020-01-20 EP EP20914967.3A patent/EP4094136A4/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1647055A (zh) * | 2002-03-01 | 2005-07-27 | 飞思卡尔半导体公司 | 虚拟直接存储器存取的方法和装置 |
US20070083285A1 (en) * | 2005-10-06 | 2007-04-12 | Fanuc Ltd | Simulation apparatus |
CN101606129A (zh) * | 2007-02-12 | 2009-12-16 | 皇家飞利浦电子股份有限公司 | 用于联网的控制系统的设备 |
CN101226385A (zh) * | 2008-02-01 | 2008-07-23 | 哈尔滨工业大学 | 开放式软数控系统的软plc模块 |
CN107571271A (zh) * | 2017-10-24 | 2018-01-12 | 上海佳革智能科技有限公司 | 一种基于vr的机器人培训示教器 |
CN109814478A (zh) * | 2019-01-14 | 2019-05-28 | 浙江工业大学 | 基于iOpenWorks的虚拟调试系统 |
Also Published As
Publication number | Publication date |
---|---|
US20230070378A1 (en) | 2023-03-09 |
JP7387908B2 (ja) | 2023-11-28 |
EP4094136A1 (en) | 2022-11-30 |
EP4094136A4 (en) | 2023-08-09 |
JP2023511103A (ja) | 2023-03-16 |
WO2021148839A1 (en) | 2021-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8655461B2 (en) | Method, system, and non-transitory computer readable storage medium for generating code for a closed-loop controller | |
US10360322B2 (en) | Simulation of virtual processors | |
US20220083706A1 (en) | Systems and methods for creating model adaptors | |
Barbierato et al. | Exploiting CloudSim in a multiformalism modeling approach for cloud based systems | |
US9176490B2 (en) | Control program generation device, control program generation program, and control program generation method | |
US9152393B1 (en) | Dynamic entities for a model of a graphical modeling environment | |
US20130204602A1 (en) | Simulation apparatus and method for verifying hybrid system | |
JP2022087814A (ja) | 多言語モデルの訓練方法、装置、電子デバイス及び可読記憶媒体 | |
CN111950048A (zh) | 开发视图和机理视图构架产品样机模型的映射方法及装置 | |
JP2014102734A (ja) | 性能検証プログラム、性能検証方法及び性能検証装置 | |
Pohl et al. | vMAGIC—automatic code generation for VHDL | |
CN115004189A (zh) | 用于促进多个机器人任务的并发模拟的方法和系统 | |
US20110307224A1 (en) | System and Method for Machine Engine Modeling | |
Huckaby et al. | A case for SysML in robotics | |
Dukkardt et al. | Informational system to support the design process of complex equipment based on the mechanism of manipulation and management for three-dimensional objects models | |
Abidi et al. | How to create a new generation of industrial processes simulation by coupling simulation tools with VR platforms | |
CN105210019A (zh) | 对异步操纵的用户界面响应 | |
US8521502B2 (en) | Passing non-architected registers via a callback/advance mechanism in a simulator environment | |
EP4156050A1 (en) | Method and system for optimizing an engineering project in a technical installation | |
US20230350392A1 (en) | Method and system for seamless transition of runtime system from controller device to digitalization platform | |
WO2023031649A1 (en) | A method and a system for enabling a user to review simulation data of an industrial environment | |
CN118159397A (zh) | 用于检测工业制造环境中对象的可能碰撞的方法和系统 | |
EP4315038A1 (en) | Overlays for software and hardware verification | |
Yang et al. | A Model Checking Based Software Requirements Specification Approach for Embedded Systems | |
Mizutani et al. | A Design and Implementation Method for Embedded Systems Using Communicating Sequential Processes with an Event-Driven and Multi-Thread Processor |
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 |