CN113535591B - 机器人程序的验证方法、装置、电子设备及存储介质 - Google Patents
机器人程序的验证方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113535591B CN113535591B CN202111068924.1A CN202111068924A CN113535591B CN 113535591 B CN113535591 B CN 113535591B CN 202111068924 A CN202111068924 A CN 202111068924A CN 113535591 B CN113535591 B CN 113535591B
- Authority
- CN
- China
- Prior art keywords
- program
- track
- robot
- preset
- python
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000004088 simulation Methods 0.000 claims abstract description 49
- 238000012795 verification Methods 0.000 claims abstract description 31
- 230000006870 function Effects 0.000 claims description 34
- 238000006243 chemical reaction Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 4
- 230000009131 signaling function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请属于机器人控制技术领域,公开了一种机器人程序的验证方法、装置、电子设备及存储介质,通过加载待验证的AS程序;把AS程序转换为python程序;在python仿真平台上加载机器人模型、作业平台模型和python程序;在python仿真平台上运行python程序,获取机器人模型在作业平台模型中运动的实际轨迹点的位姿数据;获取机器人模型的预设轨迹点的位姿数据;根据实际轨迹点的位姿数据和预设轨迹点的位姿数据进行实际运动轨迹和预设运动轨迹的一致性判断;根据一致性判断的结果,判定所述AS程序正确或不正确;从而实现了对AS程序正确性的仿真验证,避免直接使用机器人进行验证而损坏机器人。
Description
技术领域
本申请涉及机器人控制技术领域,具体而言,涉及一种机器人程序的验证方法、装置、电子设备及存储介质。
背景技术
现有的一些机器人的控制程序是通过AS语言编写的,若要验证编写的AS程序是否正确,一般只能直接在真实的机器人上运行该AS程序,判断机器人的运动过程是否与预期编排的流程一致,进而判断AS程序的正确性。然而,若AS程序编写有误,则容易引起机器人的损坏。对于其它种类的工业机器人,采用python语言进行控制程序编写是比较普遍的做法,从而在进行控制程序验证时,可直接用python软件提供的仿真平台进行仿真验证,从而可避免验证过程中损坏机器人。但是,python软件无法直接运行AS语言编写的程序,因此,针对机器人目前难以通过有效的仿真方法进行AS程序正确性的验证。
针对上述问题,目前尚未有有效的技术解决方案。
发明内容
本申请的目的在于提供一种机器人程序的验证方法、装置、电子设备及存储介质,旨在解决现有技术中针对机器人目前难以通过有效的仿真方法进行AS程序正确性的验证的问题。
第一方面,本申请提供了一种机器人程序的验证方法,用于对机器人的AS程序的正确性进行验证,包括以下步骤:
A1.加载待验证的AS程序;
A2.把所述AS程序转换为python程序;
A3.在python仿真平台上加载机器人模型、作业平台模型和所述python程序;
A4.在所述python仿真平台上运行所述python程序,获取所述机器人模型在所述作业平台模型中运动的实际轨迹点的位姿数据;
A5.获取所述机器人模型的预设轨迹点的位姿数据;
A6.根据所述实际轨迹点的位姿数据和所述预设轨迹点的位姿数据进行实际运动轨迹和预设运动轨迹的一致性判断;
A7.根据一致性判断的结果,判定所述AS程序正确或不正确。
本申请的机器人程序的验证方法,通过把机器人的AS程序转换为python程序,从而在python仿真平台上直接运行转换后的python程序进行仿真,根据机器人模型的实际运动轨迹和预设运动轨迹的一致性判断AS程序是否正确,从而实现了对AS程序正确性的仿真验证,避免直接使用机器人进行验证而损坏机器人。
优选地,步骤A2包括:
遍历预先生成的AST抽象语法树的节点,把所述AS程序的变量、输入输出信号、流程分支语句、信号操作判断函数转换为python程序的变量、输入输出信号、流程分支语句、信号操作判断函数。
优选地,步骤A5包括:
加载预设运动轨迹的轨迹点数据记录表;
从所述轨迹点数据记录表中提取所述机器人模型的预设轨迹点的位姿数据。
从轨迹点数据记录表直接提取预先记录的预设轨迹点的位姿数据,可快捷方便地得到预设轨迹点的位姿数据。
优选地,步骤A6包括:
根据所述实际轨迹点的位姿数据与所述预设轨迹点的位姿数据,确定各所述实际轨迹点与对应的所述预设轨迹点之间的重合情况;
若各所述实际轨迹点均与对应的所述预设轨迹点重合,则判定所述实际运动轨迹和预设运动轨迹一致,若有至少一个所述实际轨迹点与对应的所述预设轨迹点不重合,则判定所述实际运动轨迹和预设运动轨迹不一致。
优选地,所述python程序包含多个分支流程的程序;
步骤A4包括:运行每个所述分支流程的程序,获取对应的一个实际分支轨迹的实际轨迹点的位姿数据;
步骤A5包括:获取各分支流程对应的预设分支轨迹的预设轨迹点的位姿数据。
步骤A6包括:根据各所述实际分支轨迹的实际轨迹点的位姿数据和各所述预设分支轨迹的预设轨迹点的位姿数据进行各段所述实际分支轨迹与对应的所述预设分支轨迹的一致性判断;
步骤A7包括:若有至少一个所述实际分支轨迹与对应的所述预设分支轨迹不一致,则判定所述AS程序不正确,否则判定所述AS程序正确。
当python程序中包含多个分支流程的程序时,遍历所有分支流程,以确保对每一个实际分支轨迹与对应预设分支轨迹的一致性均得到判断,进而保证最终的AS程序正确性的判定结果是准确的。
第二方面,本申请提供了一种机器人程序的验证装置,用于对机器人的AS程序的正确性进行验证,包括:
第一加载模块,用于加载待验证的AS程序;
转换模块,用于把所述AS程序转换为python程序;
第二加载模块,用于在python仿真平台上加载机器人模型、作业平台模型和所述python程序;
第一获取模块,用于在所述python仿真平台上运行所述python程序,获取所述机器人模型在所述作业平台模型中运动的实际轨迹点的位姿数据;
第二获取模块,用于获取所述机器人模型的预设轨迹点的位姿数据;
第一执行模块,用于根据所述实际轨迹点的位姿数据和所述预设轨迹点的位姿数据进行实际运动轨迹和预设运动轨迹的一致性判断;
第一判定模块,用于根据一致性判断的结果,判定所述AS程序正确或不正确。
本申请的机器人程序的验证装置,通过把机器人的AS程序转换为python程序,从而在python仿真平台上直接运行转换后的python程序进行仿真,根据机器人模型的实际运动轨迹和预设运动轨迹的一致性判断AS程序是否正确,从而实现了对AS程序正确性的仿真验证,避免直接使用机器人进行验证而损坏机器人。
优选地,转换模块用于在把所述AS程序转换为python程序时:
遍历预先生成的AST抽象语法树的节点,把所述AS程序的变量、输入输出信号、流程分支语句、信号操作判断函数转换为python程序的变量、输入输出信号、流程分支语句、信号操作判断函数。
优选地,第二获取模块用于在获取所述机器人模型的预设轨迹点的位姿数据时:
加载预设运动轨迹的轨迹点数据记录表;
从所述轨迹点数据记录表中提取所述机器人模型的预设轨迹点的位姿数据。
第三方面,本申请提供了一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如所述机器人程序的验证方法中的步骤。
第四方面,本申请提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如所述机器人程序的验证方法中的步骤。
有益效果:
本申请提供的机器人程序的验证方法、装置、电子设备及存储介质,通过加载待验证的AS程序;把所述AS程序转换为python程序;在python仿真平台上加载机器人模型、作业平台模型和所述python程序;在所述python仿真平台上运行所述python程序,获取所述机器人模型在所述作业平台模型中运动的实际轨迹点的位姿数据;获取所述机器人模型的预设轨迹点的位姿数据;根据所述实际轨迹点的位姿数据和所述预设轨迹点的位姿数据进行实际运动轨迹和预设运动轨迹的一致性判断;根据一致性判断的结果,判定所述AS程序正确或不正确;从而实现了对AS程序正确性的仿真验证,避免直接使用机器人进行验证而损坏机器人。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
图1为本申请实施例提供的机器人程序的验证方法的一种流程图。
图2为本申请实施例提供的机器人程序的验证装置的第一种结构示意图。
图3为本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1是本申请一些实施例中的机器人程序的验证方法,用于对机器人的AS程序的正确性进行验证,包括以下步骤:
A1.加载待验证的AS程序;
A2.把AS程序转换为python程序;
A3.在python仿真平台上加载机器人模型、作业平台模型和该python程序;
A4.在python仿真平台上运行该python程序,获取机器人模型在作业平台模型中运动的实际轨迹点的位姿数据;
A5.获取机器人模型的预设轨迹点的位姿数据;
A6.根据实际轨迹点的位姿数据和预设轨迹点的位姿数据进行实际运动轨迹和预设运动轨迹的一致性判断;
A7.根据一致性判断的结果,判定AS程序正确或不正确。
该机器人程序的验证方法,通过把机器人的AS程序转换为python程序,从而在python仿真平台上直接运行转换后的python程序进行仿真,根据机器人模型的实际运动轨迹和预设运动轨迹的一致性判断AS程序是否正确,从而实现了对AS程序正确性的仿真验证,避免直接使用机器人进行验证而损坏机器人。
需要说明的是,该机器人程序的验证方法的应用对象不限于是机器人,也可以是其它采用AS程序进行控制的机器人。
在一些实施方式中,步骤A2包括:
遍历预先生成的AST抽象语法树的节点,把AS程序的变量、输入输出信号、流程分支语句、信号操作判断函数转换为python程序的变量、输入输出信号、流程分支语句、信号操作判断函数。
其中,AST抽象语法树是根据AS语言自身的定义,通过词法、语法解析生成的,该AST抽象语法树包括了全局变量表和所有函数表,该AST抽象语法树生成后还需要通过词法语法语义校验。一段程序最终是用树(ast抽象语法树)来组织存储,包括数据和流程分支,树有唯一的根节点。通过根节点自顶向下可以遍历到任意节点(节点:数据、流程分支)。对于流程分支节点,流程分支入口通常是main函数作为程序入口。通过深度遍历流程分支入口,将流程分支逻辑对应转换到目标语言的流程分支语句,当流程分支需要使用的变量数据,则通过树的数据子节点进行访问。这里的遍历预先生成的AST抽象语法树的节点,主要包括流程分支的遍历。
具体的,在AS程序中,数值变量、字符串变量的变量名前需要分别添加“#”、“$”号,而在python程序中,数值变量的变量名前需要添加 “_”号,字符串变量的变量名前不添加任何符号,此外,在AS程序中的变量是没有变量定义的,而python程序中需要显式进行变量定义声明,如果变量是数组变量,则需要定义数组维度。因此,在把AS程序的变量转换为python程序的变量时,把数值变量的变量名前的“#”号改为“_”号,把字符串变量的变量名前的“$”号删除,并添加对变量的定义声明语句。例如,下表中示例性地给出了一个二维数组tx1在AS程序中的变量定义和转换为python程序变量后的变量定义。
其中,_tx1 = numpy.zeros([3,6],dtype=float)为对变量tx1的定义声明语句。
具体的,AS程序中,输入信号和输出信号是一段连续的区间编号,信号的值是该段连续区间编号对应的比特位,在把AS程序的输入输出信号转换为python程序的输入输出信号时,可用比特数组(bitarray)来表示输入、输出信号,其中,比特数组的第0位是输入或输出信号的起始位,数组的大小等于输入或输出信号的个数,且用各比特位的值表示对应的输入或输出信号的开关状态,其中,当一个比特位的值为0表示对应的输入或输出信号的开关状态为关,当一个比特位的值为1表示对应的输入或输出信号的开关状态为开。
具体的,AS程序中的流程分支语句主要包括“Case Value”、“IF ELSE”、“Goto”等,其中“Case Value”等价于python程序中的“switch case”语句,“IF ELSE”等价于python程序中的“IF ELSE”语句,“Goto”等价于python程序中的“Goto”语句。在把AS程序的流程分支语句转换为python程序的流程分支语句时,把“Case Value”语句程序转换为python程序的“switch case”语句程序,把“IF ELSE”语句程序转换为python程序的“IF ELSE”语句程序,把“Goto”语句程序转换python程序的“Goto”语句程序(实际上,也可把AS程序的“Goto”语句程序转换为python程序的“IF ELIF ELSE” 语句程序)。例如下表示例性地给出了一个AS程序的“Case Value”语句程序和转换后的python程序的“switch case”语句程序,以及一个AS程序的IF ELSE”语句程序和转换后的python程序的“IF ELSE”语句程序。
具体的,AS程序中的信号操作判断函数包括SIG函数、BITS函数、SWAIT函数、SIGNAL函数、SHIFT函数和机器人指令。
其中,SIG函数的表达句式一般为“SIG(信号编号,・・・)”,主要用于返回指定信号的逻辑与(AND):判定指定的“信号编号”的值是否与“信号编号”的正负一致,并且做与操作;如果信号编号参数是正,那么该信号的值为1时,则返回true,否则false;如果信号编号参数是负,那么该信号的值为0时,则返回true,否则false。在把AS程序中的SIG语句程序转换为python程序中对应G语句程序时,转换方式可参考下表。
其中,BITS函数表达句式包括“BITS 开始信号编号, 信号数=值”(第一句式)和“BITS(开始信号编号,信号数)”(第二句式)。
第一句式用于读取“值”,转换为2进制值,并把从“开始信号编号”开始的“信号数”个信号的信号值设为该二进制值:首先定义一段比特数组,大小为“信号数”,所有比特位均初始化为0, 将2进制值转为与比特数组长度一致的2进制值(不足的位置为0),最后将这段长度的比特数组值替换掉原输入或者输出信号的比特数组对应的编号序列。在把AS程序中的第一句式的BITS语句程序转换为python程序中对应的语句程序时,转换方式可参考下表。
第二句式用于读取“开始信号编号”开始的“信号数”个信号的信号状态:读取“开始信号编号”开始的“信号数”个信号的信号状态,得到二进制流,转为十进制值。在把AS程序中的第二句式的BITS语句程序转换为python程序中对应的语句程序时,转换方式可参考下表。
其中,SWAIT函数表达句式一般为“SWAIT (信号编号,・・・)”,用于使机器人在外部输入或输出信号、内部信号到达指定状态之前,在当前步骤进入待机状态:对指定的“信号编号”,从输入或者输出信号的比特数组中提取该信号编号的值,如果信号编号是正,且该信号编号的值为1,则该信号到达指定状态,否则为未到达指定状态;只有所有的信号编号的状态都到达指定状态,机器人才退出待机状态,继续后续的流程代码;待机是通过线程的sleep函数实现。在把AS程序中的SWAIT语句程序转换为python程序中对应的语句程序时,转换方式可参考下表。
其中,SIGNAL函数表达句式一般为“SIGNAL 信号编号,・・・”,用于设置外部输入信号、内部信号。在把AS程序中的SIGNAL语句程序转换为python程序中对应的语句程序时,转换方式可参考下表。
其中,SHIFT函数表达句式一般为“SHIFT(变换值 BY x移动量,y移动量,z移动量)”,用于使变换值按各方向指定的移动量发生变化:变换值是一个含6个元素的值,6个元素按顺序表示为(x,y,z,o,a,t),需要将6个元素中的x值加上x移动量,y值加上y移动量,z值加上z移动量。在把AS程序中的SHIFT语句程序转换为python程序中对应的语句程序时,转换方式可参考下表。
其中,机器人指令主要包括BASE指令、TOOL指令、HOME指令、LAPPRO指令、JAPPRO指令、JMOVE指令、LMOVE指令等,在把AS程序中的机器人指令转换为python程序中对应的指令时,把BASE指令、TOOL指令、HOME指令、LAPPRO指令、JAPPRO指令、JMOVE指令、LMOVE指令映射到python仿真平台对应的仿真指令,以取得模型的控制。其中,各机器人指令的表达句式和映射到python仿真平台的仿真指令参考下表。
其中,步骤A3中的机器人模型和作业平台模型是根据待验证的AS程序所要控制的机器人和该机器人所处的作业平台预先制作的三维模型。
其中,步骤A4中,运行该python程序时,会驱动机器人模型在作业平台模型中运动,机器人模型运动的轨迹就是实际运动轨迹。其中,实际轨迹点的位姿数据是指机器人的TCP点(工具坐标系原点)的位姿数据(包括位置坐标数据和姿态角度数据)。在实际应用中,AS程序和转换后得到的python程序中,包含有预设运动轨迹的轨迹点的位置数据,在运行时控制机器人的TCP点依次移动到各轨迹点处,从而,步骤A4中的实际轨迹点是指与预设轨迹点相对应的轨迹点,机器人每移动一次就获取一个实际轨迹点的位姿数据,保证得到的实际轨迹点的位姿数据与预设轨迹点的位姿数据是一一对应的关系,以便于后续进行实际运动轨迹和预设运动轨迹的一致性判断时,可直接一一对比各实际轨迹点的位姿数据与各预设轨迹点的位姿数据即可,无需先对获取的实际轨迹点的位姿数据进行筛选。
其中,在获取机器人模型的预设轨迹点的位姿数据时,可从AS程序或转换后的python程序中提取对应的预设轨迹点的位姿数据,从而步骤A5包括:从AS程序或转换后的python程序中提取机器人模型的预设轨迹点的位姿数据。
作为一种优选实施方式,步骤A5包括:
加载预设运动轨迹的轨迹点数据记录表;
从轨迹点数据记录表中提取机器人模型的预设轨迹点的位姿数据。
该实施方式中,预先记录好预设轨迹点的位姿数据形成预设运动轨迹的轨迹点数据记录表,从轨迹点数据记录表直接提取预先记录的预设轨迹点的位姿数据,与从AS程序或转换后的python程序中提取机器人模型的预设轨迹点的位姿数据的方式相比,可更加快捷方便地得到预设轨迹点的位姿数据。
优选地,步骤A6包括:
根据实际轨迹点的位姿数据与预设轨迹点的位姿数据,确定各实际轨迹点与对应的预设轨迹点之间的重合情况;
若各实际轨迹点均与对应的预设轨迹点重合,则判定实际运动轨迹和预设运动轨迹一致,若有至少一个实际轨迹点与对应的预设轨迹点不重合,则判定实际运动轨迹和预设运动轨迹不一致。
其中,位姿数据包括三个位置坐标数据和三个姿态角度数据(共六个元素),在确定各实际轨迹点与对应的预设轨迹点之间的重合情况的时候,计算实际轨迹点的位姿数据的六个元素与对应的预设轨迹点的位姿数据的六个元素之间的偏差(三个位置坐标之间的偏差和三个姿态角度之间的偏差,该偏差是绝对值),若有至少一个位置坐标的偏差大于预设的位置偏差阈值,或者有至少一个姿态角度的偏差大于预设的角度偏差阈值,则判定对应的实际轨迹点和预设轨迹点不重合,否则判定对应的实际轨迹点和预设轨迹点重合。
若实际运动轨迹和预设运动轨迹一致,则说明AS程序正确,否则说明AS程序有误,从而,步骤A7中,若实际运动轨迹和预设运动轨迹一致则判定AS程序正确,否则判定AS程序不正确。
在实际应用中,AS程序和转换后的python程序中可能包含多个分支流程的程序,在运行时,会根据不同的条件或人工选择而进入不同的分支流程;为验证AS程序的正确性,需要对每个分支流程的程序均进行验证。从而,在一些实施方式中,python程序包含多个分支流程的程序;
步骤A4包括:运行每个分支流程的程序,获取对应的一个实际分支轨迹的实际轨迹点的位姿数据;
步骤A5包括:获取各分支流程对应的预设分支轨迹的预设轨迹点的位姿数据;
步骤A6包括:根据各实际分支轨迹的实际轨迹点的位姿数据和各预设分支轨迹的预设轨迹点的位姿数据进行各段实际分支轨迹与对应的预设分支轨迹的一致性判断;
步骤A7包括:若有至少一个实际分支轨迹与对应的预设分支轨迹不一致,则判定AS程序不正确,否则判定AS程序正确。
当python程序中包含多个分支流程的程序时,遍历所有分支流程,以确保对每一个实际分支轨迹与对应预设分支轨迹的一致性均得到判断,进而保证最终的AS程序正确性的判定结果是准确的。
由上可知,该机器人程序的验证方法,通过加载待验证的AS程序;把AS程序转换为python程序;在python仿真平台上加载机器人模型、作业平台模型和python程序;在python仿真平台上运行python程序,获取机器人模型在作业平台模型中运动的实际轨迹点的位姿数据;获取机器人模型的预设轨迹点的位姿数据;根据实际轨迹点的位姿数据和预设轨迹点的位姿数据进行实际运动轨迹和预设运动轨迹的一致性判断;根据一致性判断的结果,判定AS程序正确或不正确;从而实现了对AS程序正确性的仿真验证,避免直接使用机器人进行验证而损坏机器人。
请参考图2,本申请提供了一种机器人程序的验证装置,用于对机器人的AS程序的正确性进行验证,包括:
第一加载模块1,用于加载待验证的AS程序;
转换模块2,用于把AS程序转换为python程序;
第二加载模块3,用于在python仿真平台上加载机器人模型、作业平台模型和python程序;
第一获取模块4,用于在python仿真平台上运行python程序,获取机器人模型在作业平台模型中运动的实际轨迹点的位姿数据;
第二获取模块5,用于获取机器人模型的预设轨迹点的位姿数据;
第一执行模块6,用于根据实际轨迹点的位姿数据和预设轨迹点的位姿数据进行实际运动轨迹和预设运动轨迹的一致性判断;
第一判定模块7,用于根据一致性判断的结果,判定AS程序正确或不正确。
在一些实施方式中,转换模块2用于在把AS程序转换为python程序时:
遍历预先生成的AST抽象语法树的节点,把AS程序的变量、输入输出信号、流程分支语句、信号操作判断函数转换为python的变量、输入输出信号、流程分支语句、信号操作判断函数。
其中,AST抽象语法树是根据AS语言自身的定义,通过词法、语法解析生成的,该AST抽象语法树包括了全局变量表和所有函数表,该AST抽象语法树生成后还需要通过词法语法语义校验。一段程序最终是用树(ast抽象语法树)来组织存储,包括数据和流程分支,树有唯一的根节点。通过根节点自顶向下可以遍历到任意节点(节点:数据、流程分支)。对于流程分支节点,流程分支入口通常是main函数作为程序入口。通过深度遍历流程分支入口,将流程分支逻辑对应转换到目标语言的流程分支语句,当流程分支需要使用的变量数据,则通过树的数据子节点进行访问。这里的遍历预先生成的AST抽象语法树的节点,主要包括流程分支的遍历。
具体的,在AS程序中,数值变量、字符串变量的变量名前需要分别添加“#”、“$”号,而在python程序中,数值变量的变量名前需要添加 “_”号,字符串变量的变量名前不添加任何符号,此外,在AS程序中的变量是没有变量定义的,而python程序中需要显式进行变量定义声明,如果变量是数组变量,则需要定义数组维度。因此,在把AS程序的变量转换为python程序的变量时,把数值变量的变量名前的“#”号改为“_”号,把字符串变量的变量名前的“$”号删除,并添加对变量的定义声明语句。例如,下表中示例性地给出了一个二维数组tx1在AS程序中的变量定义和转换为python程序变量后的变量定义。
其中,_tx1 = numpy.zeros([3,6],dtype=float)为对变量tx1的定义声明语句。
具体的,AS程序中,输入信号和输出信号是一段连续的区间编号,信号的值是该段连续区间编号对应的比特位,在把AS程序的输入输出信号转换为python程序的输入输出信号时,可用比特数组(bitarray)来表示输入、输出信号,其中,比特数组的第0位是输入或输出信号的起始位,数组的大小等于输入或输出信号的个数,且用各比特位的值表示对应的输入或输出信号的开关状态,其中,当一个比特位的值为0表示对应的输入或输出信号的开关状态为关,当一个比特位的值为1表示对应的输入或输出信号的开关状态为开。
具体的,AS程序中的流程分支语句主要包括“Case Value”、“IF ELSE”、“Goto”等,其中“Case Value”等价于python程序中的“switch case”语句,“IF ELSE”等价于python程序中的“IF ELSE”语句,“Goto”等价于python程序中的“Goto”语句。在把AS程序的流程分支语句转换为python程序的流程分支语句时,把“Case Value”语句程序转换为python程序的“switch case”语句程序,把“IF ELSE”语句程序转换python程序的“IF ELSE”语句程序,把“Goto”语句程序转换为python程序的“Goto”语句程序(实际上,也可把AS程序的“Goto”语句程序转换为python程序的“IF ELIF ELSE” 语句程序)。例如下表示例性地给出了一个AS程序的“Case Value”语句程序和转换后的python程序的“switch case”语句程序,以及一个AS程序的IF ELSE”语句程序和转换后的python程序的“IF ELSE”语句程序。
具体的,AS程序中的信号操作判断函数包括SIG函数、BITS函数、SWAIT函数、SIGNAL函数、SHIFT函数和机器人指令。
其中,SIG函数的表达句式一般为“SIG(信号编号,・・・)”,主要用于返回指定信号的逻辑与(AND):判定指定的“信号编号”的值是否与“信号编号”的正负一致,并且做与操作;如果信号编号参数是正,那么该信号的值为1时,则返回true,否则false;如果信号编号参数是负,那么该信号的值为0时,则返回true,否则false。在把AS程序中的SIG语句程序转换为python程序中对应G语句程序时,转换方式可参考下表。
其中,BITS函数表达句式包括“BITS 开始信号编号, 信号数=值”(第一句式)和“BITS(开始信号编号,信号数)”(第二句式)。
第一句式用于读取“值”,转换为2进制值,并把从“开始信号编号”开始的“信号数”个信号的信号值设为该二进制值:首先定义一段比特数组,大小为“信号数”,所有比特位均初始化为0, 将2进制值转为与比特数组长度一致的2进制值(不足的位置为0),最后将这段长度的比特数组值替换掉原输入或者输出信号的比特数组对应的编号序列。在把AS程序中的第一句式的BITS语句程序转换为python程序中对应的语句程序时,转换方式可参考下表。
第二句式用于读取“开始信号编号”开始的“信号数”个信号的信号状态:读取“开始信号编号”开始的“信号数”个信号的信号状态,得到二进制流,转为十进制值。在把AS程序中的第二句式的BITS语句程序转换为python程序中对应的语句程序时,转换方式可参考下表。
其中,SWAIT函数表达句式一般为“SWAIT (信号编号,・・・)”,用于使机器人在外部输入或输出信号、内部信号到达指定状态之前,在当前步骤进入待机状态:对指定的“信号编号”,从输入或者输出信号的比特数组中提取该信号编号的值,如果信号编号是正,且该信号编号的值为1,则该信号到达指定状态,否则为未到达指定状态;只有所有的信号编号的状态都到达指定状态,机器人才退出待机状态,继续后续的流程代码;待机是通过线程的sleep函数实现。在把AS程序中的SWAIT语句程序转换为python程序中对应的语句程序时,转换方式可参考下表。
其中,SIGNAL函数表达句式一般为“SIGNAL 信号编号,・・・”,用于设置外部输入信号、内部信号。在把AS程序中的SIGNAL语句程序转换为python程序中对应的语句程序时,转换方式可参考下表。
其中,SHIFT函数表达句式一般为“SHIFT(变换值 BY x移动量,y移动量,z移动量)”,用于使变换值按各方向指定的移动量发生变化:变换值是一个含6个元素的值,6个元素按顺序表示为(x,y,z,o,a,t),需要将6个元素中的x值加上x移动量,y值加上y移动量,z值加上z移动量。在把AS程序中的SHIFT语句程序转换为python程序中对应的语句程序时,转换方式可参考下表。
其中,机器人指令主要包括BASE指令、TOOL指令、HOME指令、LAPPRO指令、JAPPRO指令、JMOVE指令、LMOVE指令等,在把AS程序中的机器人指令转换为python程序中对应的指令时,把BASE指令、TOOL指令、HOME指令、LAPPRO指令、JAPPRO指令、JMOVE指令、LMOVE指令映射到python仿真平台对应的仿真指令,以取得模型的控制。其中,各机器人指令的表达句式和映射到python仿真平台的仿真指令参考下表。
其中,上述的机器人模型和作业平台模型是根据待验证的AS程序所要控制的机器人和该机器人所处的作业平台预先制作的三维模型。
其中,第一获取模块4在运行该python程序时,会驱动机器人模型在作业平台模型中运动,机器人模型运动的轨迹就是实际运动轨迹。其中,实际轨迹点的位姿数据是指机器人的TCP点(工具坐标系原点)的位姿数据(包括位置坐标数据和姿态角度数据)。在实际应用中,AS程序和转换后得到的python程序中,包含有预设运动轨迹的轨迹点的位置数据,在运行时控制机器人的TCP点依次移动到各轨迹点处,从而,实际轨迹点是指与预设轨迹点相对应的轨迹点,机器人每移动一次就获取一个实际轨迹点的位姿数据,保证得到的实际轨迹点的位姿数据与预设轨迹点的位姿数据是一一对应的关系,以便于后续进行实际运动轨迹和预设运动轨迹的一致性判断时,可直接一一对比各实际轨迹点的位姿数据与各预设轨迹点的位姿数据即可,无需先对获取的实际轨迹点的位姿数据进行筛选。
其中,在获取机器人模型的预设轨迹点的位姿数据时,可从AS程序或转换后的python程序中提取对应的预设轨迹点的位姿数据,从而第二获取模块5用于在获取机器人模型的预设轨迹点的位姿数据时:从AS程序或转换后的python程序中提取机器人模型的预设轨迹点的位姿数据。
作为一种优选实施方式,第二获取模块5用于在获取机器人模型的预设轨迹点的位姿数据时:
加载预设运动轨迹的轨迹点数据记录表;
从轨迹点数据记录表中提取机器人模型的预设轨迹点的位姿数据。
该实施方式中,预先记录好预设轨迹点的位姿数据形成预设运动轨迹的轨迹点数据记录表,从轨迹点数据记录表直接提取预先记录的预设轨迹点的位姿数据,与从AS程序或转换后的python程序中提取机器人模型的预设轨迹点的位姿数据的方式相比,可更加快捷方便地得到预设轨迹点的位姿数据。
优选地,第一执行模块6用于在根据实际轨迹点的位姿数据和预设轨迹点的位姿数据进行实际运动轨迹和预设运动轨迹的一致性判断的时候:
根据实际轨迹点的位姿数据与预设轨迹点的位姿数据,确定各实际轨迹点与对应的预设轨迹点之间的重合情况;
若各实际轨迹点均与对应的预设轨迹点重合,则判定实际运动轨迹和预设运动轨迹一致,若有至少一个实际轨迹点与对应的预设轨迹点不重合,则判定实际运动轨迹和预设运动轨迹不一致。
其中,位姿数据包括三个位置坐标数据和三个姿态角度数据(共六个元素),在确定各实际轨迹点与对应的预设轨迹点之间的重合情况的时候,计算实际轨迹点的位姿数据的六个元素与对应的预设轨迹点的位姿数据的六个元素之间的偏差(三个位置坐标之间的偏差和三个姿态角度之间的偏差,该偏差是绝对值),若有至少一个位置坐标的偏差大于预设的位置偏差阈值,或者有至少一个姿态角度的偏差大于预设的角度偏差阈值,则判定对应的实际轨迹点和预设轨迹点不重合,否则判定对应的实际轨迹点和预设轨迹点重合。
若实际运动轨迹和预设运动轨迹一致,则说明AS程序正确,否则说明AS程序有误,从而,第一判定模块7在根据一致性判断的结果,判定AS程序正确或不正确的时候,若实际运动轨迹和预设运动轨迹一致则判定AS程序正确,否则判定AS程序不正确。
在实际应用中,AS程序和转换后的python程序中可能包含多个分支流程的程序,在运行时,会根据不同的条件或人工选择而进入不同的分支流程;为验证AS程序的正确性,需要对每个分支流程的程序均进行验证。从而,在一些实施方式中,python程序包含多个分支流程的程序;
第一获取模块4还用于运行每个分支流程的程序,获取对应的一个实际分支轨迹的实际轨迹点的位姿数据;
第二获取模块5还用于获取各分支流程对应的预设分支轨迹的预设轨迹点的位姿数据;
第一执行模块6还用于根据各实际分支轨迹的实际轨迹点的位姿数据和各预设分支轨迹的预设轨迹点的位姿数据进行各段实际分支轨迹与对应的预设分支轨迹的一致性判断;
第一判定模块7还用于在有至少一个实际分支轨迹与对应的预设分支轨迹不一致时,判定AS程序不正确,否则判定AS程序正确。
当python程序中包含多个分支流程的程序时,遍历所有分支流程,以确保对每一个实际分支轨迹与对应预设分支轨迹的一致性均得到判断,进而保证最终的AS程序正确性的判定结果是准确的。
由上可知,该机器人程序的验证装置,通过加载待验证的AS程序;把AS程序转换为python程序;在python仿真平台上加载机器人模型、作业平台模型和python程序;在python仿真平台上运行python程序,获取机器人模型在作业平台模型中运动的实际轨迹点的位姿数据;获取机器人模型的预设轨迹点的位姿数据;根据实际轨迹点的位姿数据和预设轨迹点的位姿数据进行实际运动轨迹和预设运动轨迹的一致性判断;根据一致性判断的结果,判定AS程序正确或不正确;从而实现了对AS程序正确性的仿真验证,避免直接使用机器人进行验证而损坏机器人。
请参照图3,图3为本申请实施例提供的一种电子设备的结构示意图,包括:处理器301和存储器302,处理器301和存储器302通过通信总线303和/或其他形式的连接机构(未标出)互连并相互通讯,存储器302存储有处理器301可执行的计算机程序,当计算设备运行时,处理器301执行该计算机程序,以执行上述实施例的任一可选的实现方式中的机器人程序的验证方法,以实现以下功能:加载待验证的AS程序;把AS程序转换为python程序;在python仿真平台上加载机器人模型、作业平台模型和python程序;在python仿真平台上运行python程序,获取机器人模型在作业平台模型中运动的实际轨迹点的位姿数据;获取机器人模型的预设轨迹点的位姿数据;根据实际轨迹点的位姿数据和预设轨迹点的位姿数据进行实际运动轨迹和预设运动轨迹的一致性判断;根据一致性判断的结果,判定AS程序正确或不正确。
本申请实施例提供一种存储介质,计算机程序被处理器执行时,执行上述实施例的任一可选的实现方式中的机器人程序的验证方法,以实现以下功能:加载待验证的AS程序;把AS程序转换为python程序;在python仿真平台上加载机器人模型、作业平台模型和python程序;在python仿真平台上运行python程序,获取机器人模型在作业平台模型中运动的实际轨迹点的位姿数据;获取机器人模型的预设轨迹点的位姿数据;根据实际轨迹点的位姿数据和预设轨迹点的位姿数据进行实际运动轨迹和预设运动轨迹的一致性判断;根据一致性判断的结果,判定AS程序正确或不正确。其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static RandomAccess Memory, 简称SRAM),电可擦除可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory, 简称EEPROM),可擦除可编程只读存储器(ErasableProgrammable Read Only Memory, 简称EPROM),可编程只读存储器(Programmable Red-Only Memory, 简称PROM),只读存储器(Read-Only Memory, 简称ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (8)
1.一种机器人程序的验证方法,用于对机器人的AS程序的正确性进行验证,其特征在于,包括以下步骤:
A1.加载待验证的AS程序;
A2.把所述AS程序转换为python程序;
A3.在python仿真平台上加载机器人模型、作业平台模型和所述python程序;
A4.在所述python仿真平台上运行所述python程序,获取所述机器人模型在所述作业平台模型中运动的实际轨迹点的位姿数据;
A5.获取所述机器人模型的预设轨迹点的位姿数据;
A6.根据所述实际轨迹点的位姿数据和所述预设轨迹点的位姿数据进行实际运动轨迹和预设运动轨迹的一致性判断;
A7.根据所述一致性判断的结果,判定所述AS程序正确或不正确;
步骤A2包括:
遍历预先生成的AST抽象语法树的节点,把所述AS程序的变量、输入输出信号、流程分支语句、信号操作判断函数转换为所述python程序的变量、输入输出信号、流程分支语句、信号操作判断函数。
2.根据权利要求1所述的机器人程序的验证方法,其特征在于,步骤A5包括:
加载所述预设运动轨迹的轨迹点数据记录表;
从所述轨迹点数据记录表中提取所述机器人模型的预设轨迹点的位姿数据。
3.根据权利要求1所述的机器人程序的验证方法,其特征在于,步骤A6包括:
根据所述实际轨迹点的位姿数据与所述预设轨迹点的位姿数据,确定各所述实际轨迹点与对应的所述预设轨迹点之间的重合情况;
若各所述实际轨迹点均与对应的所述预设轨迹点重合,则判定所述实际运动轨迹和所述预设运动轨迹一致,若有至少一个所述实际轨迹点与对应的所述预设轨迹点不重合,则判定所述实际运动轨迹和预设运动轨迹不一致。
4.根据权利要求1所述的机器人程序的验证方法,其特征在于,所述python程序包含多个分支流程的程序;
步骤A4包括:运行每个所述分支流程的程序,获取对应的一个实际分支轨迹的实际轨迹点的位姿数据;
步骤A5包括:获取各分支流程对应的预设分支轨迹的预设轨迹点的位姿数据;
步骤A6包括:根据各所述实际分支轨迹的实际轨迹点的位姿数据和各所述预设分支轨迹的预设轨迹点的位姿数据进行各段所述实际分支轨迹与对应的所述预设分支轨迹的一致性判断;
步骤A7包括:若有至少一个所述实际分支轨迹与对应的所述预设分支轨迹不一致,则判定所述AS程序不正确,否则判定所述AS程序正确。
5.一种机器人程序的验证装置,用于对机器人的AS程序的正确性进行验证,其特征在于,包括:
第一加载模块,用于加载待验证的AS程序;
转换模块,用于把所述AS程序转换为python程序;
第二加载模块,用于在python仿真平台上加载机器人模型、作业平台模型和所述python程序;
第一获取模块,用于在所述python仿真平台上运行所述python程序,获取所述机器人模型在所述作业平台模型中运动的实际轨迹点的位姿数据;
第二获取模块,用于获取所述机器人模型的预设轨迹点的位姿数据;
第一执行模块,用于根据所述实际轨迹点的位姿数据和所述预设轨迹点的位姿数据进行实际运动轨迹和预设运动轨迹的一致性判断;
第一判定模块,用于根据所述一致性判断的结果,判定所述AS程序正确或不正确;
转换模块用于在把所述AS程序转换为python程序时:
遍历预先生成的AST抽象语法树的节点,把所述AS程序的变量、输入输出信号、流程分支语句、信号操作判断函数转换为所述python程序的变量、输入输出信号、流程分支语句、信号操作判断函数。
6.根据权利要求5所述的机器人程序的验证装置,其特征在于,第二获取模块用于在获取所述机器人模型的预设轨迹点的位姿数据时:
加载所述预设运动轨迹的轨迹点数据记录表;
从所述轨迹点数据记录表中提取所述机器人模型的预设轨迹点的位姿数据。
7.一种电子设备,其特征在于,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1-4任一项所述机器人程序的验证方法中的步骤。
8.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时运行如权利要求1-4任一项所述机器人程序的验证方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111068924.1A CN113535591B (zh) | 2021-09-13 | 2021-09-13 | 机器人程序的验证方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111068924.1A CN113535591B (zh) | 2021-09-13 | 2021-09-13 | 机器人程序的验证方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113535591A CN113535591A (zh) | 2021-10-22 |
CN113535591B true CN113535591B (zh) | 2021-12-14 |
Family
ID=78093173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111068924.1A Active CN113535591B (zh) | 2021-09-13 | 2021-09-13 | 机器人程序的验证方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113535591B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111679970A (zh) * | 2020-05-14 | 2020-09-18 | 南京理工大学 | 机器人软件系统运行环境状态预测方法 |
CN111882027A (zh) * | 2020-06-02 | 2020-11-03 | 东南大学 | 用于RoboMaster人工智能挑战赛的机器人强化学习训练环境系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9384443B2 (en) * | 2013-06-14 | 2016-07-05 | Brain Corporation | Robotic training apparatus and methods |
WO2016141131A1 (en) * | 2015-03-03 | 2016-09-09 | Software Robotics Corporation Limited | Software robots for programmatically controlling computer programs to perform tasks |
JP6809705B2 (ja) * | 2016-12-08 | 2021-01-06 | 株式会社国際電気通信基礎技術研究所 | シミュレーションシステム |
US10423410B1 (en) * | 2017-08-30 | 2019-09-24 | Amazon Technologies, Inc. | Source code rules verification method and system |
CN110018953B (zh) * | 2018-01-10 | 2022-12-23 | 武汉斗鱼网络科技有限公司 | 使用python测试JS代码的方法、存储介质、设备和系统 |
US10769056B2 (en) * | 2018-02-26 | 2020-09-08 | The Ultimate Software Group, Inc. | System for autonomously testing a computer system |
CN112395182A (zh) * | 2019-08-14 | 2021-02-23 | 中国联合网络通信集团有限公司 | 自动化测试方法、装置、设备及计算机可读存储介质 |
US11748479B2 (en) * | 2019-10-15 | 2023-09-05 | UiPath, Inc. | Centralized platform for validation of machine learning models for robotic process automation before deployment |
CN111409066B (zh) * | 2020-03-06 | 2022-08-12 | 广州明珞汽车装备有限公司 | 一种机器人离线程序的检测方法、系统、装置及存储介质 |
CN111694746A (zh) * | 2020-06-15 | 2020-09-22 | 荆门汇易佳信息科技有限公司 | 面向编译型语言AS3的Flash缺陷模糊测评工具 |
CN111813387A (zh) * | 2020-07-10 | 2020-10-23 | 斑马网络技术有限公司 | 测试装置及其构建方法以及自动化测试方法 |
CN112035348A (zh) * | 2020-08-26 | 2020-12-04 | 广东博智林机器人有限公司 | 自动化测试平台及其自动化测试方法 |
CN112100080B (zh) * | 2020-11-03 | 2021-02-26 | 广州市玄武无线科技股份有限公司 | 控件测试方法、装置、终端设备和计算机可读存储介质 |
CN112306884B (zh) * | 2020-11-10 | 2024-07-05 | 广州华多网络科技有限公司 | 程序测试控制、执行方法及其相应的装置、设备、介质 |
-
2021
- 2021-09-13 CN CN202111068924.1A patent/CN113535591B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111679970A (zh) * | 2020-05-14 | 2020-09-18 | 南京理工大学 | 机器人软件系统运行环境状态预测方法 |
CN111882027A (zh) * | 2020-06-02 | 2020-11-03 | 东南大学 | 用于RoboMaster人工智能挑战赛的机器人强化学习训练环境系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113535591A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5995736A (en) | Method and system for automatically modelling registers for integrated circuit design | |
JP2765969B2 (ja) | 図式データ駆動型プログラム開発支援装置 | |
US4635208A (en) | Computer-aided design of systems | |
CN110271009B (zh) | 基于plc仿机器人指令实现机械手示教功能方法 | |
CN111324647A (zh) | 一种生成etl代码的方法及装置 | |
CN113672515B (zh) | 一种基于符号执行的wasm智能合约漏洞检测方法 | |
CN101178750A (zh) | 一种具有检错功能的pcb仿真系统及其实现方法 | |
EP2417498B1 (en) | Method for automatically partitioning a part program into fundamental operations | |
CN102054100A (zh) | 一种基于静态分析的rtl设计错误检测方法和系统 | |
CN112506759A (zh) | 伺服系统控制软件的自动化测试方法、装置及存储介质 | |
CN113535591B (zh) | 机器人程序的验证方法、装置、电子设备及存储介质 | |
CN117634370A (zh) | 一种Verilog代码的功能验证方法及平台 | |
CN111474894A (zh) | 可变目标plc仿真调试方法、存储介质及功能模块 | |
Caloini et al. | A technique for designing robotic control systems based on Petri nets | |
CN116663489A (zh) | 一种rtl模块复位方法、装置、电子设备及存储介质 | |
CN107317811B (zh) | 一种模拟plc的实现方法 | |
CN111897282B (zh) | 一种基于x86平台的软plc系统 | |
Case et al. | SALOGS-IV A Program to Perform Logic Simulation and Fault Diagnosis | |
CN111611684B (zh) | 干涉区逻辑块的生成方法、系统、装置和存储介质 | |
CN108196988A (zh) | 一种航天测试设备板卡自动识别方法 | |
CN111859499B (zh) | 模块化箱式集成房屋的设计系统及其操作方法 | |
CN107463745A (zh) | 基于仿真平台的仿真模型算法的在线无扰动验证方法 | |
JPH10320005A (ja) | 分散制御システムの構成管理方法およびこれに用いるデータ | |
CN116628948A (zh) | 运动仿真方法、系统以及介质 | |
CN117194186A (zh) | 一种用于行为树动态分析的数据处理方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |