CN108789415B - 机器人及其运动轨迹数据的存储方法和装置 - Google Patents
机器人及其运动轨迹数据的存储方法和装置 Download PDFInfo
- Publication number
- CN108789415B CN108789415B CN201810846367.3A CN201810846367A CN108789415B CN 108789415 B CN108789415 B CN 108789415B CN 201810846367 A CN201810846367 A CN 201810846367A CN 108789415 B CN108789415 B CN 108789415B
- Authority
- CN
- China
- Prior art keywords
- data
- robot
- stack
- motion
- data stack
- 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
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/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- 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/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Manipulator (AREA)
Abstract
本发明公开了一种机器人及其运动轨迹数据的存储方法和装置。其中,该方法包括:获取机器人的运动方向;基于运动方向,确定第一数据栈和第二数据栈,其中,第一数据栈用于输出机器人的多个运动轨迹数据,第二数据栈用于输入多个运动轨迹数据;将从第一数据栈中读取到的多个运动轨迹数据存储至第二数据栈中。本发明解决了现有技术中机器人的运动轨迹数据需要频繁存储,导致机器人性能低的技术问题。
Description
技术领域
本发明涉及工业机器人领域,具体而言,涉及一种机器人及其运动轨迹数据的存储方法和装置。
背景技术
传统的机器人轨迹规划方法是根据给定的工作路径由控制器里的轨迹生成器规划出具体轨迹点的参数(可以在笛卡尔坐标系下规划,也可以在关节空间坐标系下进行规划),再由机器人运动学逆解求出各关节的运动角度,从而驱动机器人各轴,使末端工具坐标系点到达各个规划出来的轨迹点。如果机器人是重复往返走相同的路径,若每次都重新由轨迹规划器规划轨迹点,再由运动学逆解,势必会造成机器人运算量大,内存浪费。
由机器人的轨迹规划可知机器人的轨迹实际上是由一系列的确定点组成的,而机器人工作通常都是按照某条给定的路径轨迹,按照一定节拍往复地工作。因此机器人控制器需要频繁读取给定轨迹点的数据,导致机器人性能较低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种机器人及其运动轨迹数据的存储方法和装置,以至少解决现有技术中机器人的运动轨迹数据需要频繁存储,导致机器人性能低的技术问题。
根据本发明实施例的一个方面,提供了一种机器人的运动轨迹数据的存储方法,包括:获取机器人的运动方向;基于运动方向,确定第一数据栈和第二数据栈,其中,第一数据栈用于输出机器人的多个运动轨迹数据,第二数据栈用于输入多个运动轨迹数据;将从第一数据栈中读取到的多个运动轨迹数据存储至第二数据栈中。
根据本发明实施例的另一方面,还提供了一种机器人的运动轨迹数据的存储装置,包括:获取模块,用于获取机器人的运动方向;确定模块,用于基于运动方向,确定第一数据栈和第二数据栈,其中,第一数据栈用于输出机器人的多个运动轨迹数据,第二数据栈用于输入多个运动轨迹数据;存储模块,用于将从第一数据栈中读取到的多个运动轨迹数据存储至第二数据栈中。
根据本发明实施例的另一方面,还提供了一种机器人,包括:存储器,包括:第一数据栈和第二数据栈,第一数据栈用于输出机器人的多个运动轨迹数据,第二数据栈用于输入多个运动轨迹数据;控制器,与存储器连接,用于获取机器人的运动方向,基于运动方向,确定第一数据栈和第二数据栈,并将从第一数据栈中读取到的多个运动轨迹数据存储至第二数据栈中。
根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的机器人的运动轨迹数据的存储方法。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述的机器人的运动轨迹数据的存储方法。
在本发明实施例中,在获取到机器人的运动方向之后,可以基于运动方向,确定第一数据栈和第二数据栈,并将从第一数据栈中读取到的多个运动轨迹数据存储至第二数据栈中,从而实现控制机器人按照给定的工作路径运动的目的。与现有技术相比,可以通过两个数据栈存储第一次规划的路径的运动轨迹数据,使得控制器能够方便快速存放、读取机器人运行时需要的运动轨迹数据,从而可以避免机器人按照相同路径进行往复运动时重复进行规划、求解,达到提高机器人性能的技术效果,进而解决了现有技术中机器人的运动轨迹数据需要频繁存储,导致机器人性能低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种机器人的运动轨迹数据的存储方法的流程图;
图2a是根据本发明实施例的一种可选的顺时针路径的示意图;
图2b是根据本发明实施例的一种可选的顺时针情况下存储与读取A轨迹数据点的示意图;
图2c是根据本发明实施例的一种可选的顺时针情况下存储与读取B轨迹数据点的示意图;
图2d是根据本发明实施例的一种可选的顺时针情况下存储与读取C轨迹数据点的示意图;
图3a是根据本发明实施例的一种可选的逆时针路径的示意图;
图3b是根据本发明实施例的一种可选的逆时针情况下存储与读取C轨迹数据点的示意图;
图3c是根据本发明实施例的一种可选的逆时针情况下存储与读取B轨迹数据点的示意图;
图3d是根据本发明实施例的一种可选的逆时针情况下存储与读取A轨迹数据点的示意图;
图4是根据本发明实施例的一种可选的栈数据结构的实现形式示意图;
图5是根据本发明实施例的一种机器人的运动轨迹数据的存储装置的示意图;以及
图6是根据本发明实施例的一种机器人的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种机器人的运动轨迹数据的存储方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种机器人的运动轨迹数据的存储方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取机器人的运动方向。
具体地,上述的机器人可以是现有的工业机器人,该机器人可以按照给定的工作路径进行往返运动,机器人在每次运动之前,可以由机器人的控制器确定机器人需要按照该工作路径运动的方向。
步骤S104,基于运动方向,确定第一数据栈和第二数据栈,其中,第一数据栈用于输出机器人的多个运动轨迹数据,第二数据栈用于输入多个运动轨迹数据。
可选地,第一数据栈和第二数据栈采用链表结构。
具体地,上述的运动轨迹数据可以是根据给定的工作路径由控制器里的轨迹生成器规划出的轨迹数据点。
根据机器人往返运动需要读取的轨迹数据点的顺序相反以及栈数据结构后进先出的特点,可以采用基于链表的栈数据结构维护机器人的轨迹数据点,也即,预先建立上述的第一数据栈和第二数据栈,分别存储机器人往返运动的轨迹数据点。在机器人运动的过程中,可以从一个数据栈中依次读取轨迹数据点,并依次存储至另一个数据栈中,从而实现机器人的往返运动。
步骤S106,将从第一数据栈中读取到的多个运动轨迹数据存储至第二数据栈中。
在一种可选的方案中,在机器人开始运动之前,可以首先获取机器人的运动方向,并从预先建立的两个数据栈中,确定输出轨迹数据点的第一数据栈和输入轨迹数据点的,并依次从第一数据栈中读取轨迹数据点,并存储至第二数据栈中,从而实现机器人的往返运动。
例如,以给定的工作路径是a点到b点之间的路径为例,可以预先建立一个数据栈用于存储机器人从a点运动b点的轨迹数据点,另一个数据栈用于存储机器人从b点运动到a点的轨迹数据点。在机器人从a点运动到b点的过程中,可以从第一个数据栈中依次读取轨迹数据点,并依次存储至第二个数据栈中,从而机器人可以通过依次读取第二个数据栈中的轨迹数据点,实现从b点运动到a点。进一步地,在机器人从b点运动到a点的过程中,可以依次将从第二个数据栈中读取到的轨迹数据点存储到第一个数据栈中,从而机器人可以通过依次读取第一个数据栈中的轨迹数据点,实现从a点运动到b点。
采用本发明上述实施例,在获取到机器人的运动方向之后,可以基于运动方向,确定第一数据栈和第二数据栈,并将从第一数据栈中读取到的多个运动轨迹数据存储至第二数据栈中,从而实现控制机器人按照给定的工作路径运动的目的。与现有技术相比,可以通过两个数据栈存储第一次规划的路径的运动轨迹数据,使得控制器能够方便快速存放、读取机器人运行时需要的运动轨迹数据,从而可以避免机器人按照相同路径进行往复运动时重复进行规划、求解,达到提高机器人性能的技术效果,进而解决了现有技术中机器人的运动轨迹数据需要频繁存储,导致机器人性能低的技术问题。
可选地,本发明上述实施例中,运动方向包括:第一方向和第二方向,第一方向和第二方向为机器人按照同一个路径运动的相反方向,其中,步骤S104,基于运动方向,确定第一数据栈和第二数据栈包括:当运动方向为第一方向时,确定第二方向对应的数据栈为第一数据栈,第一方向对应的数据栈为第二数据栈;当运动方向为第二方向时,确定第一方向对应的数据栈为第一数据栈,第二方向对应的数据栈为第二数据栈。
具体地,根据机器人的往复运动可知,机器人会按照同一个路径相反的两个方向运动,也即,上述运动方向包括第一方向和第二方向,进一步可以确定当运动方向为第一方向时,需要从第一方向对应的数据栈中依次读取轨迹数据点,并将读取到的轨迹数据点存储到第二方向对应的数据栈中,从而可以确定确定第二方向对应的数据栈为第一数据栈,第一方向对应的数据栈为第二数据栈;当运动方向为第二方向时,需要从第二方向对应的数据栈中依次读取轨迹数据点,并将读取到的轨迹数据点存储到第一方向对应的数据栈中,确定第一方向对应的数据栈为第一数据栈,第二方向对应的数据栈为第二数据栈。
例如,如图2a至2d以及图3a至3d所示,以一段由A、B、C三个点构成的圆弧路径为例,假设第一方向可以是顺时针方向,第二方向可以是逆时针方向,可以确定当运动方向为顺时针方向时,左边的栈为第一数据栈,右边的栈为第二数据栈;当运动方向为逆时针方向时,右边的栈为第一数据栈,左边的栈为第二数据栈。
可选地,本发明上述实施例中,步骤S106,将从第一数据栈中读取到的多个运动轨迹数据存储至第二数据栈中包括:步骤1,从第一数据栈中读取运动轨迹数据;步骤2,将运动轨迹数据存储至第二数据栈中;重复执行步骤1和步骤2,直至多个运动轨迹数据读取完毕。
在一种可选的方案中,机器人可以按照从第一数据栈中读取到的轨迹数据点运动,因此,在机器人运动的过程中,可以依次读取第一数据栈中的轨迹数据点,并在每次读取到轨迹数据点的同时,将该轨迹数据点存储至第二数据栈中,直至机器人运动结束,也即,第一数据栈中存储的所有轨迹数据点被读取出。
例如,如图2a和3a所示,仍以一段由A、B、C三个点构成的圆弧路径为例,假设第一方向可以是顺时针方向,第二方向可以是逆时针方向。
如图2b至2d所示,当机器末端需要顺时针完成这段路径,也即机器人的运动方向为顺时针方向时,控制器首先从左边的栈中读取A点的数据(也即A轨迹数据点),同时将A点的数据压入右边的栈,此时,左边的栈中仅剩B点的数据(也即B轨迹数据点)和C点的数据(也即C轨迹数据点),而右边的栈中仅压入A点的数据;接着读取B点的轨迹数据点,同时将B点的数据压入右边的栈中,此时,左边的栈中仅剩C点的数据,右边的栈中压入A点的数据和B点的数据;最后读取C点的轨迹数据点,同时将C点的数据压入右边的栈中,此时,左边的栈为空,右边的栈中压入A点的数据、B点的数据和C点数据,也即,将左边的栈中的数据逆序压入右边的栈。
如图3b至3d所示,当机器末端需要逆时针完成这段路径,也即机器人的运动方向为逆时针方向时,控制器首先从右边的栈中读取C点的数据(也即C轨迹数据点),同时将C点的数据压入左边的栈,此时,右边的栈中仅剩B点的数据(也即B轨迹数据点)和A点的数据(也即A轨迹数据点),而左边的栈中仅压入C点的数据;接着读取B点的轨迹数据点,同时将B点的数据压入左边的栈中,此时,右边的栈中仅剩A点的数据,左边的栈中压入C点的数据和B点的数据;最后读取A点的轨迹数据点,同时将A点的数据压入左边的栈中,此时,右边的栈为空,左边的栈中压入C点的数据、B点的数据和A点数据。
通过上述方案,机器人往返执行同一段路径时,可以方便快速的从对应的栈,按照路径轨迹点的顺序读取数据,从而快速的驱动机器人到达目的轨迹点。
可选地,本发明上述实施例中,从第一数据栈中读取运动轨迹数据包括:读取第一数据栈的表头节点中存储的运动轨迹数据;删除表头节点。
在一种可选的方案中,第一数据栈的实现形式如图4所示,第一数据栈中的轨迹数据点以链式结构存储,通过对第一数据栈中表头节点的轨迹数据点进行读取,并对表头节点进行表头删除节点操作,实现对轨迹数据点的出栈操作,从而能够从第一数据栈中读取轨迹数据点。
需要说明的是,第一数据栈的实现形式并不仅限于如图4所示的栈数据结构。
可选地,本发明上述实施例中,从第一数据栈中读取运动轨迹数据包括:通过第一数据栈对应的数据出栈接口读取运动轨迹数据。
在一种可选的方案中,如图4所示,可以通过链表提供的数据出栈接口执行轨迹数据点的出栈操作,实现对表头节点进行表头删除节点操作。
可选地,本发明上述实施例中,将运动轨迹数据存储至第二数据栈中包括:在第一数据栈中增加表头节点;将运动轨迹数据存储在表头节点中。
在一种可选的方案中,第二数据栈的实现形式也如图4所示,第二数据栈中的轨迹数据点以链式结构存储,通过对第二数据栈中表头节点进行表头增加节点操作,并将轨迹数据点存储在新增的表头节点中,实现对轨迹数据点的进栈操作,从而能够将轨迹数据点存储在第二数据栈中。
需要说明的是,第二数据栈的实现形式并不仅限于如图4所示的栈数据结构。
可选地,本发明上述实施例中,将运动轨迹数据存储至第二数据栈中包括:通过第二数据栈对应的数据进栈接口存储运动轨迹数据。
在二种可选的方案中,如图4所示,可以通过链表提供的数据进栈接口执行轨迹数据点的进栈操作,实现对表头节点进行表头增加节点操作。
可选地,本发明上述实施例中,在每次从第一数据栈中读取运动轨迹数据之后,该方法还包括:按照读取到的运动轨迹数据,控制机器人运动;在机器人运动结束之后,再次从第一数据栈中读取运动轨迹数据。
在一种可选的方案中,为了实现控制机器人按照路径运动,控制器可以从第一数据栈中读取轨迹数据点,并驱动机器人末端移动到该轨迹点,然后继续从第一数据栈中读取轨迹数据点,直至机器人末端移动到最后一个轨迹点。
例如,如图2a和3a所示,仍以一段由A、B、C三个点构成的圆弧路径为例,假设第一方向可以是顺时针方向,第二方向可以是逆时针方向。
如图2b至2d所示,控制器首先从左边的栈中读取A点的数据,驱动机器人末端移动到A点,同时将A点的数据压入右边的栈;接着读取B点的轨迹数据点,驱动机器人末端移动到B点,同时将B点的数据压入右边的栈中;最后读取C点的轨迹数据点,驱动机器人末端移动到C点,同时将C点的数据压入右边的栈中。
如图3a至3d所示,控制器首先从右边的栈中读取C点的数据,驱动机器人末端移动到C点,同时将C点的数据压入左边的栈;接着读取B点的轨迹数据点,驱动机器人末端移动到B点,同时将B点的数据压入左边的栈中;最后读取A点的轨迹数据点,驱动机器人末端移动到A点,同时将A点的数据压入左边的栈中。
通过上述方案,当机器人往返走重复路径时,若能将第一次规划的路径的轨迹点妥善保存起来,并且方便快速的存储,则可以避免后面走相同路径的时候重复进行规划、求解,通过在每次读取时间上优化一点点,往复一个节拍需要读取成千上万个轨迹数据点,那么从机器人整体性能上来看,能够明显提高机器人的性能。
实施例2
根据本发明实施例,提供了一种机器人的运动轨迹数据的存储装置的实施例。
图5是根据本发明实施例的一种机器人的运动轨迹数据的存储装置的示意图,如图5所示,该装置包括:
获取模块52,用于获取机器人的运动方向。
具体地,上述的机器人可以是现有的工业机器人,该机器人可以按照给定的工作路径进行往返运动,机器人在每次运动之前,可以由机器人的控制器确定机器人需要按照该工作路径运动的方向。
确定模块54,用于基于运动方向,确定第一数据栈和第二数据栈,其中,第一数据栈用于输出机器人的多个运动轨迹数据,第二数据栈用于输入多个运动轨迹数据。
可选地,第一数据栈和第二数据栈采用链表结构。
具体地,上述的运动轨迹数据可以是根据给定的工作路径由控制器里的轨迹生成器规划出的轨迹数据点。
根据机器人往返运动需要读取的轨迹数据点的顺序相反以及栈数据结构后进先出的特点,可以采用基于链表的栈数据结构维护机器人的轨迹数据点,也即,预先建立上述的第一数据栈和第二数据栈,分别存储机器人往返运动的轨迹数据点。在机器人运动的过程中,可以从一个数据栈中依次读取轨迹数据点,并依次存储至另一个数据栈中,从而实现机器人的往返运动。
存储模块56,用于将从第一数据栈中读取到的多个运动轨迹数据存储至第二数据栈中。
在一种可选的方案中,在机器人开始运动之前,可以首先获取机器人的运动方向,并从预先建立的两个数据栈中,确定输出轨迹数据点的第一数据栈和输入轨迹数据点的,并依次从第一数据栈中读取轨迹数据点,并存储至第二数据栈中,从而实现机器人的往返运动。
例如,以给定的工作路径是a点到b点之间的路径为例,可以预先建立一个数据栈用于存储机器人从a点运动b点的轨迹数据点,另一个数据栈用于存储机器人从b点运动到a点的轨迹数据点。在机器人从a点运动到b点的过程中,可以从第一个数据栈中依次读取轨迹数据点,并依次存储至第二个数据栈中,从而机器人可以通过依次读取第二个数据栈中的轨迹数据点,实现从b点运动到a点。进一步地,在机器人从b点运动到a点的过程中,可以依次将从第二个数据栈中读取到的轨迹数据点存储到第一个数据栈中,从而机器人可以通过依次读取第一个数据栈中的轨迹数据点,实现从a点运动到b点。
采用本发明上述实施例,在获取到机器人的运动方向之后,可以基于运动方向,确定第一数据栈和第二数据栈,并将从第一数据栈中读取到的多个运动轨迹数据存储至第二数据栈中,从而实现控制机器人按照给定的工作路径运动的目的。与现有技术相比,可以通过两个数据栈存储第一次规划的路径的运动轨迹数据,使得控制器能够方便快速存放、读取机器人运行时需要的运动轨迹数据,从而可以避免机器人按照相同路径进行往复运动时重复进行规划、求解,达到提高机器人性能的技术效果,进而解决了现有技术中机器人的运动轨迹数据需要频繁存储,导致机器人性能低的技术问题。
实施例3
根据本发明实施例,提供了一种机器人的实施例。
图6是根据本发明实施例的一种机器人的示意图,如图6所示,该机器人包括:存储器62和控制器64,存储器62包括:第一数据栈622和第二数据栈624。
其中,第一数据栈622用于输出机器人的多个运动轨迹数据,第二数据栈624用于输入多个运动轨迹数据;控制器64与存储器62连接,用于获取机器人的运动方向,基于运动方向,确定第一数据栈和第二数据栈,并将从第一数据栈中读取到的多个运动轨迹数据存储至第二数据栈中。
具体地,上述的机器人可以是现有的工业机器人,该机器人可以按照给定的工作路径进行往返运动,机器人在每次运动之前,可以由机器人的控制器确定机器人需要按照该工作路径运动的方向。
可选地,第一数据栈和第二数据栈采用链表结构。
具体地,上述的运动轨迹数据可以是根据给定的工作路径由控制器里的轨迹生成器规划出的轨迹数据点。
根据机器人往返运动需要读取的轨迹数据点的顺序相反以及栈数据结构后进先出的特点,可以采用基于链表的栈数据结构维护机器人的轨迹数据点,也即,预先建立上述的第一数据栈和第二数据栈,分别存储机器人往返运动的轨迹数据点。在机器人运动的过程中,可以从一个数据栈中依次读取轨迹数据点,并依次存储至另一个数据栈中,从而实现机器人的往返运动。
在一种可选的方案中,在机器人开始运动之前,可以首先获取机器人的运动方向,并从预先建立的两个数据栈中,确定输出轨迹数据点的第一数据栈和输入轨迹数据点的,并依次从第一数据栈中读取轨迹数据点,并存储至第二数据栈中,从而实现机器人的往返运动。
例如,以给定的工作路径是a点到b点之间的路径为例,可以预先建立一个数据栈用于存储机器人从a点运动b点的轨迹数据点,另一个数据栈用于存储机器人从b点运动到a点的轨迹数据点。在机器人从a点运动到b点的过程中,可以从第一个数据栈中依次读取轨迹数据点,并依次存储至第二个数据栈中,从而机器人可以通过依次读取第二个数据栈中的轨迹数据点,实现从b点运动到a点。进一步地,在机器人从b点运动到a点的过程中,可以依次将从第二个数据栈中读取到的轨迹数据点存储到第一个数据栈中,从而机器人可以通过依次读取第一个数据栈中的轨迹数据点,实现从a点运动到b点。
采用本发明上述实施例,在获取到机器人的运动方向之后,可以基于运动方向,确定第一数据栈和第二数据栈,并将从第一数据栈中读取到的多个运动轨迹数据存储至第二数据栈中,从而实现控制机器人按照给定的工作路径运动的目的。与现有技术相比,可以通过两个数据栈存储第一次规划的路径的运动轨迹数据,使得控制器能够方便快速存放、读取机器人运行时需要的运动轨迹数据,从而可以避免机器人按照相同路径进行往复运动时重复进行规划、求解,达到提高机器人性能的技术效果,进而解决了现有技术中机器人的运动轨迹数据需要频繁存储,导致机器人性能低的技术问题。
实施例4
根据本发明实施例,提供了一种存储介质的实施例,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述实施例1中的机器人的运动轨迹数据的存储方法。
实施例5
根据本发明实施例,提供了一种处理器的实施例,处理器用于运行程序,其中,程序运行时执行上述实施例1中的机器人的运动轨迹数据的存储方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种机器人的运动轨迹数据的存储方法,其特征在于,包括:
获取机器人的运动方向,其中,所述机器人按照给定的工作路径进行往返运动,所述运动方向为所述机器人按照所述工作路径运动的方向;
基于所述运动方向,确定第一数据栈和第二数据栈,其中,所述第一数据栈用于输出所述机器人的多个运动轨迹数据,所述第二数据栈用于输入所述多个运动轨迹数据;
将从所述第一数据栈中读取到的多个运动轨迹数据存储至所述第二数据栈中;
其中,所述机器人的运动方向与所述机器人的上一次运动的运动方向相反,且所述第一数据栈中存储的多个运动轨迹数据是所述机器人在上一次运动过程中存储的;
其中,将从所述第一数据栈中读取到的多个运动轨迹数据存储至所述第二数据栈中包括:
步骤1,从所述第一数据栈中读取运动轨迹数据;
步骤2,将所述运动轨迹数据存储至所述第二数据栈中;
重复执行所述步骤1和所述步骤2,直至所述多个运动轨迹数据读取完毕。
2.根据权利要求1所述的方法,其特征在于,所述第一数据栈和所述第二数据栈采用链表结构。
3.根据权利要求2所述的方法,其特征在于,所述运动方向包括:第一方向和第二方向,所述第一方向和所述第二方向为所述机器人按照同一个路径运动的相反方向,其中,基于所述运动方向,确定第一数据栈和第二数据栈包括:
当所述运动方向为所述第一方向时,确定所述第二方向对应的数据栈为所述第一数据栈,所述第一方向对应的数据栈为所述第二数据栈;
当所述运动方向为所述第二方向时,确定所述第一方向对应的数据栈为所述第一数据栈,所述第二方向对应的数据栈为所述第二数据栈。
4.根据权利要求2所述的方法,其特征在于,从所述第一数据栈中读取运动轨迹数据包括:
读取所述第一数据栈的表头节点中存储的所述运动轨迹数据;
删除所述表头节点。
5.根据权利要求4所述的方法,其特征在于,从所述第一数据栈中读取运动轨迹数据包括:
通过所述第一数据栈对应的数据出栈接口读取所述运动轨迹数据。
6.根据权利要求2所述的方法,其特征在于,将所述运动轨迹数据存储至所述第二数据栈中包括:
在所述第一数据栈中增加表头节点;
将所述运动轨迹数据存储在所述表头节点中。
7.根据权利要求6所述的方法,其特征在于,将所述运动轨迹数据存储至所述第二数据栈中包括:
通过所述第二数据栈对应的数据进栈接口存储所述运动轨迹数据。
8.根据权利要求2所述的方法,其特征在于,在每次从所述第一数据栈中读取运动轨迹数据之后,所述方法还包括:
按照读取到的运动轨迹数据,控制所述机器人运动;
在所述机器人运动结束之后,再次从所述第一数据栈中读取运动轨迹数据。
9.一种机器人的运动轨迹数据的存储装置,其特征在于,包括:
获取模块,用于获取机器人的运动方向,其中,所述机器人按照给定的工作路径进行往返运动,所述运动方向为所述机器人按照所述工作路径运动的方向;
确定模块,用于基于所述运动方向,确定第一数据栈和第二数据栈,其中,所述第一数据栈用于输出所述机器人的多个运动轨迹数据,所述第二数据栈用于输入所述多个运动轨迹数据;
存储模块,用于将从所述第一数据栈中读取到的多个运动轨迹数据存储至所述第二数据栈中;
其中,所述机器人的运动方向与所述机器人的上一次运动的运动方向相反,且所述第一数据栈中存储的多个运动轨迹数据是所述机器人在上一次运动过程中存储的;
其中,所述存储模块还用于从所述第一数据栈中读取运动轨迹数据,将所述运动轨迹数据存储至所述第二数据栈中;重复执行从所述第一数据栈中读取所述运动轨迹数据,将所述运动轨迹数据存储至所述第二数据栈中的步骤,直至所述多个运动轨迹数据读取完毕。
10.一种机器人,其特征在于,包括:
存储器,包括:第一数据栈和第二数据栈,所述第一数据栈用于输出所述机器人的多个运动轨迹数据,所述第二数据栈用于输入所述多个运动轨迹数据;
控制器,与所述存储器连接,用于获取机器人的运动方向,基于所述运动方向,确定所述第一数据栈和所述第二数据栈,并将从所述第一数据栈中读取到的多个运动轨迹数据存储至所述第二数据栈中,其中,所述机器人按照给定的工作路径进行往返运动,所述运动方向为所述机器人按照所述工作路径运动的方向;
其中,所述机器人的运动方向与所述机器人的上一次运动的运动方向相反,且所述第一数据栈中存储的多个运动轨迹数据是所述机器人在上一次运动过程中存储的;
其中,所述控制器还用于从所述第一数据栈中读取运动轨迹数据,将所述运动轨迹数据存储至所述第二数据栈中;重复执行从所述第一数据栈中读取所述运动轨迹数据,将所述运动轨迹数据存储至所述第二数据栈中的步骤,直至所述多个运动轨迹数据读取完毕。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至8中任意一项所述的机器人的运动轨迹数据的存储方法。
12.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至8中任意一项所述的机器人的运动轨迹数据的存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810846367.3A CN108789415B (zh) | 2018-07-27 | 2018-07-27 | 机器人及其运动轨迹数据的存储方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810846367.3A CN108789415B (zh) | 2018-07-27 | 2018-07-27 | 机器人及其运动轨迹数据的存储方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108789415A CN108789415A (zh) | 2018-11-13 |
CN108789415B true CN108789415B (zh) | 2021-05-28 |
Family
ID=64078504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810846367.3A Active CN108789415B (zh) | 2018-07-27 | 2018-07-27 | 机器人及其运动轨迹数据的存储方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108789415B (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5608884A (en) * | 1995-05-17 | 1997-03-04 | Dell Usa, L.P. | Commonly housed multiple processor type computing system and method of manufacturing the same |
CN1382565A (zh) * | 2001-04-20 | 2002-12-04 | 陈炯 | 便携式机器人仿真开发器 |
JPWO2007055063A1 (ja) * | 2005-11-09 | 2009-04-30 | 株式会社安川電機 | エンコーダ信号処理装置 |
JP5051298B2 (ja) * | 2009-02-09 | 2012-10-17 | パナソニック株式会社 | ロボットシステムおよびロボットシステムのソフトウェア更新方法 |
CN104111627A (zh) * | 2014-07-07 | 2014-10-22 | 西安交通大学 | 一种数控机床动态特性测试分析系统 |
DE102014213262A1 (de) * | 2014-07-08 | 2016-01-14 | Kuka Roboter Gmbh | Maschine und Verfahren zum Betreiben einer Maschine |
CN105676775B (zh) * | 2016-01-13 | 2018-11-13 | 厦门理工学院 | 一种数控加工原轨迹回退和继续加工的控制方法 |
KR20180061851A (ko) * | 2016-11-30 | 2018-06-08 | 삼성전자주식회사 | 바이트 액세서블 인터페이스 및 블록 액세서블 인터페이스를 지원하는 스토리지 장치 및 이를 포함하는 전자 시스템 |
-
2018
- 2018-07-27 CN CN201810846367.3A patent/CN108789415B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108789415A (zh) | 2018-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150266182A1 (en) | Method And An Apparatus For Automatically Generating A Collision Free Return Program For Returning A Robot From A Stop Position To A Predefined Restart Position | |
KR101732902B1 (ko) | 로봇의 경로 계획 장치 및 그 방법 | |
Vahrenkamp et al. | Humanoid motion planning for dual-arm manipulation and re-grasping tasks | |
EP1554639B1 (de) | Verfahren und anordnung sowie computerprogramm mit programmcode-mitteln und computerprogramm-produkt zur bildung einer graphenstruktur zur beschreibung einer fläche mit einer freifläche und einer belegtfläche | |
Bekris et al. | Multiple query probabilistic roadmap planning using single query planning primitives | |
CN108290293B (zh) | 链路序列映射装置,链路序列映射方法和程序 | |
CN109551485A (zh) | 运动控制方法、装置和系统及存储介质 | |
Lacevic et al. | Burs of free c-space: a novel structure for path planning | |
JP2020062690A (ja) | 制御装置、作業ロボット、プログラム、及び、制御方法 | |
CN108789415B (zh) | 机器人及其运动轨迹数据的存储方法和装置 | |
JP4304495B2 (ja) | 経路計画方法 | |
CN110889552A (zh) | 一种基于最优参数遗传算法的苹果自动装箱路径优化方法 | |
CN105487487B (zh) | 一种机器人折弯过程位置自动计算的方法 | |
Zhang et al. | A mip-based approach for multi-robot geometric task-and-motion planning | |
Asadpour et al. | Graph signature for self-reconfiguration planning of modules with symmetry | |
CN109877837B (zh) | 机器人的控制方法及装置 | |
CN109870168B (zh) | 机构运动路径优化方法及装置 | |
CN108646667B (zh) | 轨迹生成方法及装置、终端 | |
US20180207799A1 (en) | Trajectory determination method for non-productive movements | |
US20170123402A1 (en) | Apparatus and Method for Transforming NC Programs | |
JP2020062741A (ja) | 制御装置、作業ロボット、プログラム、及び、制御方法 | |
Seyboldt et al. | Sampling-based path planning to cartesian goal positions for a mobile manipulator exploiting kinematic redundancy | |
CN102345389B (zh) | 工程机械以及机械臂的控制方法与控制装置 | |
Isto et al. | A slicing connection strategy for constructing prms in high-dimensional cspaces | |
CN110977984B (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 |