CN107650123A - 一种可扩展指令集的机器人编程方法和装置 - Google Patents
一种可扩展指令集的机器人编程方法和装置 Download PDFInfo
- Publication number
- CN107650123A CN107650123A CN201710786712.4A CN201710786712A CN107650123A CN 107650123 A CN107650123 A CN 107650123A CN 201710786712 A CN201710786712 A CN 201710786712A CN 107650123 A CN107650123 A CN 107650123A
- Authority
- CN
- China
- Prior art keywords
- instruction
- robot
- configuration
- command
- parameter
- 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
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/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
-
- 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/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种可扩展指令集的机器人编程方法和装置。在该方法中,基于结构化的配置,来组织当前机器人控制系统中的所能使用的指令集合,即指令库;基于模块的形式,实现指令动态库文件;并通过结构化的配置,描述指令配置文件模板;新增的指令可以在解释器中被解释,在执行器中被执行,实现简化机器人编程,降低维护成本。
Description
技术领域
本发明实施例涉及机器人编程领域,具体涉及一种可扩展指令集的机器人编程方法和装置。
背景技术
轻型协作机器人是一种新兴的机器人,其与传统工业机器人相比具有负载自重比高,运动中撞到人或障碍物会停下来等优点,在工业和其它场合有着越来越多的应用。
机器人编程是指用户为实现某种需求,为机器人设定动作序列的过程。当前主流的机器人编程方法,主要分为示教器编程和离线编程两种方法。示教器编程是指操作人员通过示教器,手动控制机器人的关节或者末端在不同的坐标系下进行运动,使机器人到达预定的位姿,并将其记录到控制器中,之后机器人可以重复执行记录的路径,并在此过程中与外部信号进行交互。示教器编程具备操作简单,实用性强的特点,被绝大多数工业机器人以及协作型机器人所支持。离线编程是指操作人员利用软件构件整个工作场景的三维虚拟环境,包括机器人,工具,工件等关键元素,并在软件中生成及调整机器人的运动轨迹,最后导出可被真实机器人识别及执行的程序。由于离线编程是在纯软件环境下对机器人进行模拟,因而可以更安全,更高效的对机器人进行程序设计。这种模式被广泛应用于打磨,去毛刺,焊接等工业领域。
现有技术的一篇国际专利,公开号WO2009/062826 DE,涉及一种具有控制装置的工业机器人和一种控制工业机器人运动的方法。在该方法中,通过解释器解释用户设置的指令,之后将解释的结果生成数组,并将此数组保存在缓冲存储器中,借助插值器进行差值,实现机器人运动的控制。但是由于所支持的指令受限于控制系统支持的基础指令,因此在执行特定的任务序列时会导致程序过于冗余复杂。
现有技术中的另一篇专利,公开号CN106625674A,涉及一种用于机器人的指令处理方法。在该方法中:控制上位机接收多模态输入数据并解析生成能被下位机识别的指令,并将指令保存在待执行的指令集中;执行阶段由上位机逐一调出,输出给下位机执行。但是指令的种类受限于上位机的解释器和下位机的执行器,因此在执行特定任务时,会要求对上下位机系统同步进行升级,极大的增加了机器人的使用维护成本。
发明内容
本发明实施例针对现有技术的不足,提出了一种可扩展指令集的机器人编程方法,基于结构化的配置,来组织当前机器人控制系统中的所能使用的指令集合,即指令库;基于模块的形式,实现指令动态库文件,并通过结构化的配置,描述指令配置文件模板;新增的指令可以在解释器中被解释,在执行器中被执行,实现简化机器人编程,降低维护成本。
依据本发明实施例的一个方面,提供了一种可扩展指令集的机器人编程方法,该方法包括:
创建步骤,用于创建机器人指令实例;
存储步骤,用于存储所述机器人指令实例;
指令配置步骤,用于为所述机器人指令实例配置相应的指令配置文件;
参数配置步骤,用于为所述机器人指令实例配置相应的参数配置文件;
解析步骤,用于解析所述机器人指令实例;
执行步骤,用于执行所述机器人指令实例。
进一步的,所述指令配置文件包含第一标识,所述第一标识指示所述指令配置文件所在的磁盘路径。
进一步的,所述参数配置文件包含第二标识,所述第二标识指示参数配置文件所在的磁盘路径。
进一步的,所述指令配置文件是动态库文件。
进一步的,所述指令配置步骤,包括获取步骤,用于获取所述机器人指令实例的类名称,从而所述解析步骤通所述类名称解析所述机器人指令。
进一步的,所属指令配置步骤,包括指令分类步骤,用于将所述机器人指令实例进行分类,将同一类的所述机器人指令实例配置到同一指令配置文件中。
进一步的,所述参数配置步骤,包括参数整合步骤,用于将同一指令下的参数配置到同一参数配置文件中。
进一步的,所述装置包括销毁步骤,其在指令执行结束后,移除指令实例并释放指令实例所占用的资源。
本发明实施例提供的用于机器人编程的指令控制方法,其基于结构化的配置,组织当前机器人控制系统中的所能使用的指令集合,即指令库;基于模块的形式,实现指令动态库文件,并通过结构化的配置,描述指令配置文件模板;新增的指令可以在解释器中被解释,在执行器中被执行,实现简化机器人编程,降低维护成本的目标。
本发明另一实施例提供了一种用于机器人编程的指令控制装置,该装置包括:
创建单元,用于创建机器人指令实例
存储单元,用于存储所述机器人指令实例;
指令配置单元,用于为所述机器人指令实例配置相应的指令配置文件;
参数配置单元,用于为所述机器人指令实例配置相应的参数配置文件;
解析单元,用于解析所述机器人指令实例;
执行单元,用于执行所述机器人指令实例。
进一步的,所述指令配置文件包含第一标识,所述第一标识指示所述指令配置文件所在的磁盘路径。
进一步的,所述参数配置文件包含第二标识,所述第二标识指示参数配置文件所在的磁盘路径。
进一步的,所述指令配置文件是动态库文件。
进一步的,所述指令配置单元,包括获取单元,用于获取所述机器人指令实例的类名称,从而所述解析单元通所述类名称解析所述机器人指令;
进一步的,所属指令配置单元,包括指令分类单元,用于将所述机器人指令实例进行分类,将同一类的所述机器人指令实例配置到同一指令配置文件中。
进一步的,所述参数配置单元,包括参数整合单元,用于将同一指令下的参数配置到同一参数配置文件中。
进一步的,所述装置包括销毁单元,其在指令执行结束后,移除指令实例并释放指令实例所占用的资源。
本发明实施例提供的用于机器人编程的指令控制装置,其基于结构化的配置,组织当前机器人控制系统中的所能使用的指令集合,即指令库;基于模块的形式,实现指令动态库文件,并通过结构化的配置,描述指令配置文件模板;新增的指令可以在解释器中被解释,在执行器中被执行,实现简化机器人编程,降低维护成本的目标。
本发明再一个实施例公开了一种机器人编程方法,该方法包含如下步骤:
1)从机器人厂商获取新的指令包文件或者用户自己编程实现新的指令包,指令包包括新指令的指令动态库文件以及指令配置文件模板,通过机器人控制软件的人机交互界面,或者通过在机器人指令库配置中添加一个节点,将指令导入到指令库中;
2)机器人编程系统枚举指令库中的所有指令,针对每一种类型的指令,通过指令动态库的导出函数,获取对应指令的类名称,作为指令的唯一标识,并建立起该类名称与指令的二元关系组,记录在解释器中;
3)用户利用指令库中的指令,编写机器人程序,并描述每一步编程过程中用到的指令的类名称,以及当前步骤下指令的参数,记录在存储器中;
4)解释器读取程序,并解析程序中每一步指令的类名称,以及指令的参数,依据类名称访问指令库,获取指令的动态库文件以及指令的配置文件模板,对程序进行解释,生成指令实例数组,并将指令实例数组存储到缓冲存储器中;
5)执行器从缓冲存储器中读取指令实例数组,通过指令动态库,在内存中创建全部指令实例,通过指令实例配置文件,配置内存中的指令实例,之后分配指令实例所需的系统资源;
6)执行器逐个执行指令实例,完成指令的核心动作;
7)执行器在程序执行结束后,释放分配给指令实例的资源。
本发明实施例提供的机器人编程方法,其基于结构化的配置,组织当前机器人控制系统中的所能使用的指令集合,即指令库;基于模块的形式,实现指令动态库文件,并通过结构化的配置,描述指令配置文件模板;新增的指令可以在解释器中被解释,在执行器中被执行,实现简化机器人编程,降低维护成本的目标。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了现有技术中机器人的程序工作过程;
图2示出了现有技术中机器人编程方法示例;
图3示出了本发明实施例一的机器人编程方法;
图4示出了本发明实施例二的机器人编程方法;
图5示出了本发明实施例三的机器人编程装置。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,是现有技术中机器人的程序工作过程。针对机器人的编程工作,其目的是产生若干能够完成目标任务的机器人程序。如图1所示,机器人程序由若干机器人指令构成,存储在存储器101上,指令库102用于存储指令库文件。其中存储器101中存储有各种机器人程序,例如焊接程序、喷涂程序、打磨程序、码垛程序、卸垛程序等等。指令库102中存储有各种机器人指令,例如移动指令、路点指令、等待指令等等。解释器103从存储器101中取得完整的未经解释的机器人程序,查询其中的指令类型以及指令参数,并利用指令库102中对应指令库文件对程序进行解释,生成可被执行器识别的指令实例序列,存储在缓冲存储器104中,由执行器105取出并执行。
一个完整的机器人程序,是由若干机器人指令实例构成的,其编程核心在于,在一套完善的机器人运行时上下文中,提供能够实现机器人动作的指令库,例如移动指令(移动/路点/等待)、脚本指令、变量访问指令等等,以及按照一定的逻辑,例如条件逻辑、循环逻辑等,组织形成机器人程序。
如图2所示,为现有技术中机器人编程方法示例,其包括如下步骤:步骤s201,程序开始,机器人调用机器人程序;步骤s202,机器人准备;步骤s203,读取数字I/O信号;步骤s204,判断信号是否满足预先设定的条件,当信号满足要求预先设定的条件时,进入步骤s205,调用脚本指令,从网络接受用户控制命令,当信号不满足预先设定的条件时,进入步骤s206,调用脚本指令,从文件读取用户控制指令。
当进入步骤s206之后,继续执行步骤s207,解析命令并保存结果到程序变量,之后执行步骤s208,根据变量控制机器人运动,之后进入步骤s214程序结束。
当进入步骤s205之后,继续执行步骤s209,利用脚本判断网络数据包是否有效,当有效时,继续执行步骤s210,利用脚本解析网络数据包获取命令;当无效时,进入步骤s213,判断用户是否选择继续接收网络指令;步骤s210之后,继续执行步骤s211,解析命令并保存结果到程序变量;之后继续执行步骤s212,根据变量控制机器人运动;步骤212之后继续执行步骤s213,判断用户是否选择继续接收网络指令;当结果为是时,返回到步骤205继续执行,当结果为否时,进入步骤s214程序结束。
如图2所示的现有机器人的机器人程序,其中指令的完善程度,决定了编程能实现的功能以及编程的难易程度,指令越丰富,则编程能实现的功能越多,编程越简单;反之,则编程能实现的功能越少,编程越复杂。在现有的机器人程序中,许多复杂的功能都是靠脚本指令完成的,例如图2中的网络数据接收功能,从而导致编程过程较为复杂,而且用户不能扩展指令,只能按照预先编写好的指令运行机器人程序。这就需要在编程工作中,设置好每一步的逻辑和参数,给编程人员带来了大量的工作,给用户带来不便。
为克服现有技术中的问题,本发明实施例一提供了一种结构化的机器人编程方法。该方法使得用户可以扩展指令,从而使编程工作变得简单。
如图3所示,为本发明实施例一提供的一种机器人编程编程方法,其包括如下步骤:步骤s301,程序开始,机器人调用机器人程序;步骤s302,机器人准备;步骤s303,读取数字I/O信号;步骤s304,判断信号是否满足预先设定的条件,当信号满足要求预先设定的条件时,进入步骤s305,接收网络数据处理指令,当信号不满足预先设定的条件时,进入步骤s306,接收文件读取指令。
当进入步骤s306之后,继续执行步骤s307,控制机器人运动,之后进入步骤s310程序结束。
当进入步骤s305之后,首先判断接收网络数据处理指令是否成功,如果处理成功,继续执行步骤s308,控制机器人运动,之后继续执行步骤s309,判断是否继续接收网络数据处理指令;如果步骤s305判断接收网络数据处理失败,进入步骤s309,判断是否继续接收网络数据处理指令;其中步骤s309,判断用户是否选择继续从接收网络指令,当结果为是时,返回到步骤s305继续执行,当结果为否时,进入步骤s310程序结束。
本发明实施例一所示的技术方案,不再使用脚本指令完成,避免了需要使用脚本实现众多复杂功能、设置好每一步的逻辑和参数,只需要直接调用网络数据处理指令或文件读取指令即可,简化了编程程序。
本发明实施例中的机器人指令,是能够完成特定功能的模块单元,是机器人编程中的极为关键的部分,在本方案中,不同的机器人指令,对应的是不同的指令动态库文件和指令配置文件模板,从而保证了指令之间的独立性。具体参见如下代码:
在上述机器人编程过程中,采用结构化的方式对对机器人指令进行配置。每一个Instruction节点,代表的是当前机器人控制系统中所支持的一种指令,例如运动指令、I/O指令等,在Instruction节点中,conf参数描述的是参数配置文件所在的磁盘路径,target参数描述的是指令配置文件,即动态库文件所在的磁盘路径,${Application}代表的应用程序的所在的目录。
上述结构化的原理为,将指令库中的每一条指令,即每一个Instruction,进行单独的设置,例如代码中的延迟(delay)指令、跳跃(jump)指令等,而且每条指令对应两个文件,一个是参数配置文件(config),一个是指令配置文件,即动态库文件(target),从而将机器人指令按照结构化的方式来存储。按照上述结构化来存储,能够实现对指令的扩展,方便用户自己进行配置。
机器人指令的参数的配置文件模板必须满足当前机器人系统下的要求,如下列代码所示,是一种典型的机器人指令的参数配置文件模板:
其中,每一个Variant节点代表一个参数,其中name属性是参数的访问名称,在配置指令实施例时,将依据这个名称来提取对应的指令参数。type属性是参数的类型,用于在配置指令实例时,对参数类型进行合适的转换。value属性代表了参数的值,用户在对指令实例进行配置时,修改的就是value属性对应的值。
在本发明中,由于用户可以扩展指令,使机器人编程工作变得简单、清晰、明了。在本发明实施例中,机器人程序能按照用户的配置,在逻辑语句,例如条件语句、循环语句的控制下,正确的调度现有机器人指令以及用户扩展的机器人指令。这其中,逻辑语句由解释器解析,用于构建基础的机器人指令调度逻辑,指令运行在机器人运行时上下文,可访问全部系统资源。机器人运行时上下文包括机器人执行期间可能访问的所有资源,资源包括但不限于磁盘文件,硬件IO,系统时钟,机器人运行变量等。机器人控制系统提供了访问这些资源的方法,机器人指令在实现过程中,通过使用机器人控制系统提供的方法,可以访问到任何想要访问的资源,进而实现自身的逻辑。
本发明实施例二提供了一种结构化的机器人编程方法。如图4所示,该方法包括如下步骤,该方法包括:
创建步骤s401,用于创建机器人指令实例;
存储步骤s402,用于存储所述机器人指令实例;
指令配置步骤s403,用于为所述机器人指令实例配置相应的指令配置文件;
参数配置步骤s404,用于为所述机器人指令实例配置相应的参数配置文件;
解析步骤s405,用于解析所述机器人指令实例;
执行步骤s406,用于执行所述机器人指令实例。
进一步的,所述指令配置步骤s403,包括获取步骤s4031,用于获取所述机器人指令实例的类名称,从而所述解析步骤通所述类名称解析所述机器人指令;
进一步的,所属指令配置步骤s403,包括指令分类步骤s4032,用于将所述机器人指令实例进行分类,将同一类的所述机器人指令实例配置到同一指令配置文件中。
进一步的,所述参数配置步骤s404,包括参数整合步骤s4041,用于将同一指令下的参数配置到同一参数配置文件中。
进一步的,所述装置包括销毁步骤s407,其在指令执行结束后,移除指令实例并释放指令实例所占用的资源。
本发明实施例二提供的用于机器人编程的指令控制方法,其基于结构化的配置,组织当前机器人控制系统中的所能使用的指令集合,即指令库;基于模块的形式,实现指令动态库文件,并通过结构化的配置,描述指令配置文件模板;新增的指令可以在解释器中被解释,在执行器中被执行,实现简化机器人编程,降低维护成本的目标。
如图5所示,为本发明第三实施例提供的一种用于机器人编程的指令控制装置,该装置包括:
创建单元501,用于创建机器人指令实例
存储单元502,用于存储所述机器人指令实例;
指令配置单元503,用于为所述机器人指令实例配置相应的指令配置文件;
参数配置单元504,用于为所述机器人指令实例配置相应的参数配置文件;
解析单元505,用于解析所述机器人指令实例;
执行单元506,用于执行所述机器人指令实例。
进一步的,所述指令配置单元503,包括获取单元5031,用于获取所述机器人指令实例的类名称,从而所述解析单元通所述类名称解析所述机器人指令;
进一步的,所属指令配置单元503,包括指令分类单元5032,用于将所述机器人指令实例进行分类,将同一类的所述机器人指令实例配置到同一指令配置文件中。
进一步的,所述参数配置单元504,包括参数整合单元5041,用于将同一指令下的参数配置到同一参数配置文件中。
进一步的,所述装置包括销毁单元507,其在指令执行结束后,移除指令实例并释放指令实例所占用的资源。
本发明实施例三提供的用于机器人编程的指令控制装置,其基于结构化的配置,组织当前机器人控制系统中的所能使用的指令集合,即指令库;基于模块的形式,实现指令动态库文件,并通过结构化的配置,描述指令配置文件模板;新增的指令可以在解释器中被解释,在执行器中被执行,实现简化机器人编程,降低维护成本的目标。
本发明实施例四提供的一个完整的机器人编程实例。其包括如下步骤:
1)从机器人厂商获取新的指令包文件或者用户自己编程实现新的指令包,指令包包括新指令的指令动态库文件以及指令配置文件模板,通过机器人控制软件的人机交互界面,或者通过在机器人指令库配置中添加一个Instruction节点,将指令导入到指令库中;
2)机器人编程系统枚举指令库中的所有指令,针对每一种类型的指令,通过指令动态库的导出函数,获取对应指令的类名称,例如传统机器人编程中的脚本指令,以及本发明中的网络数据接收指令,作为指令的唯一标识,并建立起该类名称与指令的二元关系组,记录在解释器中;
3)用户利用指令库中的指令,编写机器人程序,并描述每一步编程过程中用到的指令的类名称,以及当前步骤下指令的参数,记录在存储器中;
4)解释器读取程序,并解析程序中每一步指令的类名称,以及指令的参数,依据类名称访问指令库,获取指令的动态库文件以及指令的配置文件模板,对程序进行解释,生成指令实例数组,并将指令实例数组存储到缓冲存储器中;由于同一类型的机器人指令,在实际程序中可能会被多次调用,例如同为等待指令,在某一时刻,希望等待1s,但在另一时刻,希望等待2s,因此,多个指令实例共享一个指令库文件,但是不同的指令实例都有各自不同的指令配置文件,该配置文件在指令配置文件模板基础上,由解释器生成;
5)执行器从缓冲存储器中读取指令实例数组,通过指令动态库,在内存中创建全部指令实例,通过指令实例配置文件,配置内存中的指令实例,之后分配指令实例所需的系统资源。因为指令实例被要求执行在实时环境中,因此,指令实例所需要的部分资源(例如内存)必须提前分配,否则将影响到指令实例的实时执行,介于这一点,执行器会在执行程序之前为所有指令实例分配必要的资源,供指令实例执行的时候采用;
6)执行器逐个执行指令实例:完成指令的核心动作;
7)执行器在程序执行结束后,释放分配给指令实例的资源。该实施例的具体实现过程可以采用如下方法:
1)利用C/C++实现网络数据处理指令,文件读取指令,用户命令处理的指令包,该指令包符合当前机器人系统的指令标准,当指令包从厂商获取时,厂商保证符合该标准;当指令包由用户自己实现时,本方法不限定用户实现的步骤,但要求用户的实现符合当前机器人系统的指令标准。该标准要求,指令动态库导出函数,必须实现如下方法:
a)创建指令实例的方法:该方法用于创建一个指令实例并返回该实例的标志Id,标志Id是一个32位的整数,执行器将调用该方法在内存中创建指令实例,并通过该标志Id,在执行时区分不同的指令实例;
b)分配指令实例所需资源的方法:该方法用于在执行程序之前,由执行器调用并分配指令实例在执行动作过程可能需要占用的内存资源,IO资源,文件资源等;
c)执行指令实例的方法:该方法用于执行器执行指令实例,完成具体的动作;
d)获取指令的类名称的方法:该方法用于获取指令的类名称,解释器将依据该名称,记录类名称与指令的二元关系组;
e)设置指令实例的配置的方法:该方法由执行器在执行过程中,通过指令实例配置文件配置内存中的指令实例;
f)销毁指令实例的方法:该方法能够在程序执行结束后,执行器从内存中移除指令实例并释放指令实例占用的资源。
2)在指令库配置文件的Instructions节点下,新加一个Instruction节点,并配置节点的conf参数以及target参数。其中,conf参数描述的是参数配置文件模板所在的磁盘路径,target参数描述的是指令配置文件,即动态库文件所在的磁盘路径;${Application}代表的应用程序的所在的目录;
3)用户编写如图3所示的机器人编程方法所示的机器人程序;
4)解释器解释用户编写的程序,将指令实例数组存储到执行器中;
5)执行器执行用户编写的程序,并在执行结束后释放必要的资源。
本发明实施例四提供了一种机器人编程方法,其可以方便的扩展当前机器人系统中所支持的机器人指令,从而更方便快捷的对机器人进行编程,增强机器人的行为能力,在当前指令集不能很好的完成设定的工作任务时,可以不修改现有的控制系统软件,而仅升级指令的方式(用户实现或者厂商升级),达到能够完成设定的工作任务的目的,从而减少机器人的维护成本。
为了描述的方便,描述以上装置时以功能分为各种单元、模块分别描述。当然,在实施本申请时可以把各单元、模块的功能在同一个或多个软件和/或硬件中实现。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。
而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。以上内容仅仅是对本发明结构所作的举例和说明,所属本技术领域的技术人员对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。
Claims (10)
1.一种可扩展指令集的机器人编程方法,其特征在于,该方法包括:
创建步骤,用于创建机器人指令实例;
存储步骤,用于存储所述机器人指令实例;
指令配置步骤,用于为所述机器人指令实例配置相应的指令配置文件;
参数配置步骤,用于为所述机器人指令实例配置相应的参数配置文件;
解析步骤,用于解析所述机器人指令实例;
执行步骤,用于执行所述机器人指令实例。
2.根据权利要求1所述的方法,所述指令配置文件包含第一标识,所述第一标识指示所述指令配置文件所在的磁盘路径。
3.根据权利要求1所述的方法,所述参数配置文件包含第二标识,所述第二标识指示所述参数配置文件所在的磁盘路径。
4.根据权利要求3所述的方法,所述指令配置文件是动态库文件。
5.根据权利要求1所述的方法,所述指令配置步骤,还包括获取步骤,用于获取所述机器人指令实例的类名称,从而所述解析步骤通过所述类名称解析所述机器人指令实例。
6.根据权利要求1所述的方法,所述指令配置步骤,还包括指令分类步骤,用于将所述机器人指令实例进行分类,将同一类的所述机器人指令实例配置到同一所述指令配置文件中。
7.根据权利要求1所述的方法,所述参数配置步骤,还包括参数整合步骤,用于将同一指令下的参数配置到同一所述参数配置文件中。
8.根据权利要求1所述的方法,所述方法还包括销毁步骤,其在所述执行步骤结束后,移除所述机器人指令实例并释放指令实例所占用的资源。
9.一种用于执行权利要求1-8中任一项所述机器人编程方法的机器人编程指令控制装置,该装置包括:
创建单元,用于创建机器人指令实例
存储单元,用于存储所述机器人指令实例;
指令配置单元,用于为所述机器人指令实例配置相应的指令配置文件;
参数配置单元,用于为所述机器人指令实例配置相应的参数配置文件;
解析单元,用于解析所述机器人指令实例;
执行单元,用于执行所述机器人指令实例。
10.一种机器人编程方法,其特征在于,该方法包含如下步骤:
1)从机器人厂商获取新的指令包文件或者用户自己编程实现新的指令包,指令包包括新指令的指令动态库文件以及指令配置文件模板,通过机器人控制软件的人机交互界面,或者通过在机器人指令库配置中添加一个节点,将指令导入到指令库中;
2)机器人编程系统枚举指令库中的所有指令,针对每一种类型的指令,通过指令动态库的导出函数,获取对应指令的类名称,作为指令的唯一标识,并建立起该类名称与指令的二元关系组,记录在解释器中;
3)用户利用指令库中的指令,编写机器人程序,并描述每一步编程过程中用到的指令的类名称,以及当前步骤下指令的参数,记录在存储器中;
4)解释器读取程序,并解析程序中每一步指令的类名称,以及指令的参数,依据类名称访问指令库,获取指令的动态库文件以及指令的配置文件模板,对程序进行解释,生成指令实例数组,并将指令实例数组存储到缓冲存储器中;
5)执行器从缓冲存储器中读取指令实例数组,通过指令动态库,在内存中创建全部指令实例,通过指令实例配置文件,配置内存中的指令实例,之后分配指令实例所需的系统资源;
6)执行器逐个执行指令实例,完成指令的核心动作;
7)执行器在程序执行结束后,释放分配给指令实例的资源。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2017105237820 | 2017-06-30 | ||
CN201710523782 | 2017-06-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107650123A true CN107650123A (zh) | 2018-02-02 |
Family
ID=61129353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710786712.4A Pending CN107650123A (zh) | 2017-06-30 | 2017-09-04 | 一种可扩展指令集的机器人编程方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107650123A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108500967A (zh) * | 2018-05-05 | 2018-09-07 | 深圳市越疆科技有限公司 | 控制方法、模块式关节机器人和存储介质 |
CN109669886A (zh) * | 2018-12-27 | 2019-04-23 | 广州致远电子有限公司 | 基于嵌入式系统的外设控制系统 |
CN110026983A (zh) * | 2019-04-30 | 2019-07-19 | 南京云图机器人科技有限公司 | 一种机器人编程系统 |
CN110363700A (zh) * | 2019-07-12 | 2019-10-22 | 辽宁工程技术大学 | 一种基于深度图分割的自定义指令并行枚举方法 |
CN110457107A (zh) * | 2019-08-09 | 2019-11-15 | 珠海格力电器股份有限公司 | 组态软件操作指令管理方法、装置和系统 |
CN110861080A (zh) * | 2018-08-27 | 2020-03-06 | 大众汽车有限公司 | 用于对机器人编程的方法以及计算装置和计算机程序 |
CN111590578A (zh) * | 2020-05-20 | 2020-08-28 | 北京如影智能科技有限公司 | 一种机器人控制方法及装置 |
CN111993419A (zh) * | 2020-08-10 | 2020-11-27 | 广州瑞松北斗汽车装备有限公司 | 基于pdps的机器人离线制作方法及其装置、计算机终端设备 |
CN114527712A (zh) * | 2021-11-22 | 2022-05-24 | 广东嘉腾机器人自动化有限公司 | Agv任务修改方法及修改系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2297719A1 (fr) * | 1975-01-16 | 1976-08-13 | Rollin Jean | Perfectionnements aux robots industriels |
CN102541521A (zh) * | 2010-12-17 | 2012-07-04 | 中国银联股份有限公司 | 基于结构化查询语言的操作指令自动生成装置及方法 |
CN102685134A (zh) * | 2012-05-15 | 2012-09-19 | 深圳市中电电力技术股份有限公司 | 一种基于可扩展标记语言与动态库综合实现的通信管理机 |
CN102950595A (zh) * | 2012-10-31 | 2013-03-06 | 常州数控技术研究所 | 工业机器人的编程系统和方法 |
CN104834230A (zh) * | 2015-05-19 | 2015-08-12 | 芜湖固高自动化技术有限公司 | 一种工业机器人教学培训系统及其控制方法 |
CN106796514A (zh) * | 2014-05-21 | 2017-05-31 | 社会创新Ipco有限公司 | 用于完全可配置的实时处理的系统和方法 |
-
2017
- 2017-09-04 CN CN201710786712.4A patent/CN107650123A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2297719A1 (fr) * | 1975-01-16 | 1976-08-13 | Rollin Jean | Perfectionnements aux robots industriels |
CN102541521A (zh) * | 2010-12-17 | 2012-07-04 | 中国银联股份有限公司 | 基于结构化查询语言的操作指令自动生成装置及方法 |
CN102685134A (zh) * | 2012-05-15 | 2012-09-19 | 深圳市中电电力技术股份有限公司 | 一种基于可扩展标记语言与动态库综合实现的通信管理机 |
CN102950595A (zh) * | 2012-10-31 | 2013-03-06 | 常州数控技术研究所 | 工业机器人的编程系统和方法 |
CN106796514A (zh) * | 2014-05-21 | 2017-05-31 | 社会创新Ipco有限公司 | 用于完全可配置的实时处理的系统和方法 |
CN104834230A (zh) * | 2015-05-19 | 2015-08-12 | 芜湖固高自动化技术有限公司 | 一种工业机器人教学培训系统及其控制方法 |
Non-Patent Citations (2)
Title |
---|
戴建新: "基于指令的联合战役仿真想定编辑系统研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
杨晶: "基于Android的机器人示教软件设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108500967A (zh) * | 2018-05-05 | 2018-09-07 | 深圳市越疆科技有限公司 | 控制方法、模块式关节机器人和存储介质 |
CN110861080A (zh) * | 2018-08-27 | 2020-03-06 | 大众汽车有限公司 | 用于对机器人编程的方法以及计算装置和计算机程序 |
CN109669886A (zh) * | 2018-12-27 | 2019-04-23 | 广州致远电子有限公司 | 基于嵌入式系统的外设控制系统 |
CN109669886B (zh) * | 2018-12-27 | 2020-11-20 | 广州致远电子有限公司 | 基于嵌入式系统的外设控制系统 |
CN110026983A (zh) * | 2019-04-30 | 2019-07-19 | 南京云图机器人科技有限公司 | 一种机器人编程系统 |
CN110363700A (zh) * | 2019-07-12 | 2019-10-22 | 辽宁工程技术大学 | 一种基于深度图分割的自定义指令并行枚举方法 |
CN110457107A (zh) * | 2019-08-09 | 2019-11-15 | 珠海格力电器股份有限公司 | 组态软件操作指令管理方法、装置和系统 |
CN111590578A (zh) * | 2020-05-20 | 2020-08-28 | 北京如影智能科技有限公司 | 一种机器人控制方法及装置 |
CN111993419A (zh) * | 2020-08-10 | 2020-11-27 | 广州瑞松北斗汽车装备有限公司 | 基于pdps的机器人离线制作方法及其装置、计算机终端设备 |
CN111993419B (zh) * | 2020-08-10 | 2022-04-19 | 广州瑞松北斗汽车装备有限公司 | 基于pdps的机器人离线制作方法及其装置、计算机终端设备 |
CN114527712A (zh) * | 2021-11-22 | 2022-05-24 | 广东嘉腾机器人自动化有限公司 | Agv任务修改方法及修改系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107650123A (zh) | 一种可扩展指令集的机器人编程方法和装置 | |
US20050010892A1 (en) | Method and system for integrating multi-modal data capture device inputs with multi-modal output capabilities | |
US6807461B2 (en) | Coordinated robot control from multiple remote instruction sources | |
Hong et al. | A PC-based open robot control system: PC-ORC | |
EP3502975A1 (en) | Methods and apparatus for model parallelism in artificial neural networks | |
US11951631B2 (en) | Object marking to support tasks by autonomous machines | |
EP1644824A2 (en) | Method and system for intelligent prompt control in a multimodal software application | |
KR20020091071A (ko) | 소프트웨어 컴포넌트를 생성하기 위한 n-계층 소프트웨어아키텍처 디자인 방법 및 시스템 | |
JP2006338660A (ja) | 並列/分散型アプリケーションを開発する方法 | |
CN111552172B (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
Zhu et al. | A novel multi-brand robotic software interface for industrial additive manufacturing cells | |
CN110114732A (zh) | 可编程控制器、管理装置和控制系统 | |
US20030051071A1 (en) | Modular software system and method | |
Sadik et al. | Using hand gestures to interact with an industrial robot in a cooperative flexible manufacturing scenario | |
CN112346405B (zh) | 数控系统控制方法、装置、数控系统及计算机存储介质 | |
Ng-Thow-Hing et al. | Cognitive map architecture | |
CN109144808A (zh) | 半导体装置 | |
Cheng et al. | Game solving for industrial automation and control | |
KR20200144296A (ko) | 딥러닝 모델의 병렬 트레이닝 방법 및 장치 | |
CN109408212A (zh) | 任务调度组件构造方法、装置及存储介质、服务器 | |
Bezrucav et al. | An action interface manager for ROSPlan | |
CN104678875B (zh) | 一种变频器配置方法及变频器配置系统 | |
Jin et al. | Achieving batch-size-of-one production model in robot flexible assembly cells | |
JP4186383B2 (ja) | プログラマブルコントローラシステム | |
CN114115023A (zh) | 一种实现avc组态文件的识别和运行的方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180202 |