一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种路径指令的叠加规划方法与流程

2022-11-13 14:07:51 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,具体涉及一种路径指令的叠加规划方法。


背景技术:

2.运动规划由路径规划(空间)和轨迹规划(时间)组成,连接起点位置和终点位置的序列点或曲线称为路径,构成路径的策略称之为路径规划。路径规划是是找到一些要找到的路径点,路径点是空间中的位置或关节角度,而轨迹规划是赋予路径时间的信息。是在路径规划的基础上加入时间序列信息,对机器人执行任务的速度与加速度进行规划,以满足光滑性和速度可控性等要求。
3.目标是使路径与障碍物的距离尽量远同时路径的长度尽量短。
4.相关技术中,现有的机器人在设计时,多采用关节空间规划,受运动模型奇点的限制,很多工作区域无法自由规划,给用户带来很多不便。


技术实现要素:

5.有鉴于此,本技术的目的在于克服现有技术中,受运动模型奇点的限制,很多工作区域无法自由规划的技术问题,提供一种路径指令的叠加规划方法。
6.为实现以上目的,本技术采用如下技术方案:
7.本技术提供一种路径指令的叠加规划方法,包括:
8.获取机器人待执行动作的指令序列;所述指令序列包括多条指令;所述指令包括:参考坐标系、参考工具、位置点和时间;
9.将所述指令序列输入到轨迹规划公式中,得到路径规划结果;所述轨迹规划公式包括:
[0010][0011]
式中,表示所述指令序列的时间长度,表示a坐标系下时间内的路径规划结果,表示a坐标系下从pi到p
i 1
的轨迹规划,api表示第i个位置点在a坐标系下的位置;
[0012]
根据所述路径规划结果,执行对应的指令。
[0013]
可选的,所述指令还包括速度参数和平滑参数。
[0014]
可选的,所述根据所述路径规划结果,执行对应的指令,包括:
[0015]
根据所述路径规划结果,按照所述速度参数和所述平滑参数,执行对应的指令。
[0016]
可选的,所述获取机器人待执行动作的指令序列,包括:
[0017]
依次获取指令流中的待执行指令,并在获取每个所述待执行指令时,执行如下步骤:检测当前待执行指令是否是预规划指令;若当前待执行指令是预规划指令,将当前待执
行指令添加到预规划指令序列中,并继续读取后续指令,直至预规划指令序列中的指令数量满足预设数量时,将指令数量满足所述预设数量的预规划指令序列确定为所述指令序列;若当前待执行指令不是预规划指令,将当前待执行指令添加到预规划指令序列中,并将添加后的预规划指令序列确定为所述指令序列。
[0018]
可选的,所述预规划指令携带有预规划标识;
[0019]
所述检测当前待执行指令是否是预规划指令,包括:
[0020]
检测当前待执行指令是否携带有所述预规划标识,若当前待执行指令携带有所述预规划标识,则确定当前待执行指令是预规划指令;若当前待执行指令没有携带所述预规划标识,则确定当前待执行指令不是预规划指令。
[0021]
本技术提供的技术方案可以包括以下有益效果:
[0022]
本技术的方案中,预先构建了轨迹规划公式,如此,在获取到指令序列后,可以基于轨迹规划公式,对指令序列中时间序列下的多条指令进行路径的规划和叠加路径的调整,并且,构建好的轨迹规划公式,优化了直角坐标空间的规划,避开了运动模型奇点的限制,可以支持不同工具之间、不同坐标系之间以及不同规律的运动坐标系下的空间路径平滑,可以有效避免机器人在启动或加工突变时发生冲击、震荡现象,给用户带来了很大的便利。
附图说明
[0023]
为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024]
图1是本技术一个实施例提供的一种路径指令的叠加规划方法的流程图。
[0025]
图2是本技术另一个实施例提供的一种指令运行位置变化图。
[0026]
图3是本技术另一个实施例提供的一种指令叠加效果示意图。
[0027]
图4是本技术另一个实施例提供的一种多条指令变量的调用示意图。
具体实施方式
[0028]
为使本技术的目的、技术方案和优点更加清楚,下面将对本技术的技术方案进行详细的描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本技术所保护的范围。
[0029]
参见图1是本技术一个实施例提供的一种路径指令的叠加规划方法的流程图。本技术的实施例提供一种路径指令的叠加规划方法,如图所示,该方法至少可以包括如下实施步骤:
[0030]
步骤11、获取机器人待执行动作的指令序列;指令序列包括多条指令;指令包括:参考坐标系、参考工具、位置点和时间。
[0031]
步骤12、将指令序列输入到轨迹规划公式中,得到路径规划结果。
[0032]
其中,轨迹规划公式包括:
[0033][0034]
式中,表示所述指令序列的时间长度,表示a坐标系下时间内的路径规划结果,表示a坐标系下从pi到p
i 1
的轨迹规划,api表示第i个位置点在a坐标系下的位置。
[0035]
步骤13、根据路径规划结果,执行对应的指令。
[0036]
本实施例中,预先构建了轨迹规划公式,如此,在获取到指令序列后,可以基于轨迹规划公式,对指令序列中时间序列下的多条指令进行路径的规划和叠加路径的调整,并且,构建好的轨迹规划公式,优化了直角坐标空间的规划,避开了运动模型奇点的限制,可以支持不同工具之间、不同坐标系之间以及不同规律的运动坐标系下的空间路径平滑,可以有效避免机器人在启动或加工突变时发生冲击、震荡现象,给用户带来了很大的便利。
[0037]
上述指令可以是机器人运动过程中用户提供给机器人的待执行动作的指令,包括参考坐标系、参考工具、位置点和时间。
[0038]
其中,参考坐标系是指定的该指令所在的坐标系,该坐标系可以通过一定的参考关系引用到基坐标系中,并能计算出该坐标系中任意坐标点在基坐标系中的值。
[0039]
上述位置点包括待执行动作的起点位置和终点位置。终点位置是一个包括x、y、z、a、b、c六个数值的坐标值,可以理解的是,机器人待执行动作包括两部分,即首先末端工具所在位置,以及末端工具的动作轨迹,例如机械手臂抓取时,首先要讲机械手臂移动到一个位置(如坐标为x,y,z),此时末端机械爪需要进行动作,(如其坐标为a、b、c)。运动过程中不仅要规定,这个坐标值是在参考坐标系中的位置。起点位置取决于上一条指令的终点位置,是将上一条指令在其参考坐标系中的位置转化为当前指令在参考坐标系下的位置。
[0040]
上述参考工具的存在形式也是一个坐标值,描述了末端坐标系到工具坐标系的偏移,这个坐标值在同一个坐标系下是一个定值。
[0041]
上述时间则是该指令在指令序列中的执行时间。
[0042]
实际应用时,上一条指令的终点位置与下一条指令的起点位置保持一致,如果没有上一条指令,则应直接获取当前机器人所在位置作为起点位置。
[0043]
机器人控制系统在应用过程中,由多种设备组成,这些设备位置相对固定,为了更准确的用数学的方式描述设备之间的位置关系引入坐标系的概念。
[0044]
节点坐标系:一般以机器人静平台作为基坐标系(不用转化为其他的坐标系)。每个设备都构建基于自身的坐标系,为了方便计算,引用齐次变化方法可求得设备之间的坐标系变换关系,且该传递关系具有可传递性。
[0045]
父坐标系:已知a坐标系和b坐标系之间的坐标变换关系,b坐标系下的坐标可用a坐标系下表示,则a坐标系是b坐标系的父坐标系。
[0046]
共同父坐标系:已知a坐标系和b坐标系之间的坐标变换关系,a坐标系和c坐标系之间的坐标变换关系,由父坐标系概念可知,a坐标系是b坐标系和c坐标系的父坐标系,即称为b坐标系和c坐标系的共同父坐标系。
[0047]
运动节点坐标系:一个节点坐标系相对于其父坐标系有规律的运动,则称该运动
的节点坐标系为运动节点坐标系,其表示形式可用其与坐标系之间的坐标变换关系和运动函数共同表示。
[0048]
下面以并联机器人的执行为例,对轨迹规划公式的具体构建过程进行详细阐述:
[0049]
在未进行平滑时,路径的规划与运动大致可以分为以下五种。
[0050]
指令规划时,需要将所有的坐标转化为基坐标系。
[0051]
每一条指令都包括轨迹规划和运动规划两部分。在机器人控制系统中,根据实际的需求可将指令规划分为五种。以下有逐条解释。
[0052]
第一种是单条指令的路径规划,单条指令的规划的是工具末端的轨迹,具体轨迹由具体的指令控制,最常用的是直线轨迹的路径规划,在参考坐标系内从终点到起点的工具末端坐标系轨迹是一条直线。并能够依据工具末端路径转换为末端路径,如果工具末端路径有旋转的话,末端路径往往不是一条直线。
[0053]
机器人动平台从p1点移动到p2点,p1点、p2点在同一个坐标系。则只需要规划从p1点移动到p2点的一条直线轨迹和相应运动规划。可以对应下述公式(1)(2)。
[0054]
第二种是参考同一坐标系的路径规划,如果相邻的两条指令的参考坐标系到它们第一个共同的父坐标系之间没有运动坐标系(即坐标系模块里两个坐标系的节点坐标系相同),则这两条指令做路径规划时,先将起点位置和终点位置转换为共同父坐标系下的位置,这样两个坐标系的运动就可以用同一坐标连续运行。
[0055]
即,两条指令在同一坐标系。
[0056]
机器人动平台从p1点经p2点到p3点,其中p1点、p2点、p3点在同一个坐标系。
[0057]
其位置点的变化对应公式(3)。指令叠加对应公式(6)。
[0058]
第三种是参考不同坐标系的规划,如果两个坐标系到他们的共同坐标系之间有运动坐标系的存在,就意味着两个坐标系的指令无法直接转换到同样的数值,因为坐标系运动到不同位置时,与另外一个坐标系的转换不一致。这时需要先规划完单个坐标系内的所有路径,再以坐标系为单位进行运动规划。此时需要在处理过程中判断每条指令是否能和上一条指令在同一个父坐标系规划,如果可以,这条指令作为上一条内部坐标系规划,如果不行,这条指令单独按其父坐标系中的第一个运动坐标系规划。
[0059]
即,不同坐标系。示例:(以下仅为一种应用示例)
[0060]
实际应用场景:机器人控制系统需要用末端抓取在传送带上静止的物体。
[0061]
已知数据:物体在传送带坐标系上的坐标,传送带坐标系与基坐标系之间的变换关系,基于此可求得物体在传送带上的坐标点在基坐标系下表示形式。
[0062]
指令叠加对应公式(7)。
[0063]
第四种是运动坐标系的规划,运动坐标系内部的规划与外部方式相同,从某一运动坐标系开始连续参考当前运动坐标系的规划都转换到该运动坐标系中规划,此时,运动坐标系整体作为一个规划有一个坐标系内的初始位置与结束位置,在将其位置转换为基坐标系位置时,需要考虑运动坐标系本身相对于基坐标系位置,即运动规划开始时的,坐标系内开始位置在基坐标系位置,运动规划结束后,坐标系内结束位置在基坐标系位置。由于规划时一定会比实际运动到的时间早,所以这个时间需要进行预测。
[0064]
即,运动坐标系
[0065]
实际应用场景:机器人控制系统需要用末端抓取在传送带上运动的物体。
[0066]
已知数据:物体在传送带坐标系上的起时坐标,传送带坐标系与基坐标系之间的变换关系,物体的运动规律(函数)。
[0067]
第五种是追踪规划,由于相对运动坐标系运动时,机器人工具末端需要相对物体运动,还需要补偿物体相对基坐标系的运动。此时需要把该运动拆分成两个部分,第一部分,假设物体不动,末端从相对物体的初始位置开始运动,第二部分,假设末端与物体重叠,末端跟随物体运动。末端实际的运动轨迹,是这两种运动的叠加。
[0068]
即,追踪规划
[0069]
实际应用场景:机器人控制系统需要用末端与传送带上运动的物体保持相同速度相对运动。
[0070]
为了便于描述指令的叠加,路径、时间、轨迹规划、指令等相关符号表示如表1所示。
[0071]
表1
[0072][0073]
其中,p1、p2和p3表示三个位置点,是轨迹规划,是运动规划。
[0074]
则指令i1和指令i2对应的运动方程分别为:
[0075][0076][0077]
其中,表示一个点在在路径l
12
上运动过程中轨迹点的集合,表示一个点在路径l
12
上的运动规划;表示一个点在在路径l
23
上运动过程中轨迹点的集合,表示一个点在路径l
23
上的运动规划。
[0078]
公式(1)(2)对应上述第一种单条指令的路径规划。
[0079]
假设两段独立运动,且一段路径的终点为另一端路径的起点,则在时间段内,机器人末端的指令运行位置变化如图2中的左边坐标图所示。
[0080]
可以用时间表示机器人末端的位置变化,则某一时刻下,描述机器人末端位置的运动过程,公式如下:
[0081][0082]
若时,公式(2)依然连续可用,可用条件为如图2中的右边坐标图所示。
[0083]
指令的叠加是指在一条指令未执行完时,下一条指令已经开始执行,使某个δt时间内的指令叠加,实现实际的轨迹是叠加出来的平滑效果。在同一坐标系下,如果两段运动可以分别连续执行,例如先从点m运动到点n,再从点n运动到点r,第一段运动的终点与第二段运动的起点在某个参考坐标系内有确定的位置表述,那么这两段运动可以叠加,如图3所示。
[0084]
在某δt1内的某个时刻,机器人末端的运行轨迹方向为和的合方向,可以由n个
·
δt/n时间段积分得到p
11
到p
31
的平滑轨迹。其轨迹规划的表示公式为:
[0085][0086]
在公式(4)中,当两个轨迹在数值上相加时,在数值上多加一个了p2点,因此应减去。
[0087]
是指经过p1、p2和p3的轨迹规划,实际效果如图3所示;和分别指p1到p2和p2到p3的轨迹规划。
[0088]
同理,在时间段内,轨迹规划为:
[0089][0090]
由此,可以得知最终的位置等于每一条指令在当前时刻的位置减去所有指令交界点的坐标,公式如下:
[0091][0092]
可以直观的表示为:若多条(>2)指令的空间方向各不相同,其轨迹的叠加效果仍为每条指令运行方向的叠加效果,如图4所示。
[0093]
因此,当以一组某个坐标以下的指令一起运动时,指令运动可以分成两个部分:一部分是相对于跟随坐标系的指令运动,一部分是坐标系追踪的运动。指令部分的运动会在
规划完成后结束运行,但是跟随的部分可能会在规划完成后继续持续一段时间。
[0094]
不同坐标系下,轨迹规划公式为:
[0095][0096]
值得说明的是,公式(7)对应轨迹规划和运动规划的分类第三条。
[0097]
不同坐标系的前提是坐标系之间的坐标变换关系是已知的。获取的最初的数据是不同坐标系下的坐标点,如传送带上移动的物体,其点位是相对于传送带坐标系的坐标。
[0098]
式中,表示指令序列的时间长度,表示在a坐标系下时间内的路径规划结果,表示a坐标系下从pi到p
i 1
的轨迹规划,api表示第i个位置点在a坐标系下的位置,a坐标系为最终确定的参考坐标系。
[0099]
一些实施例中,机器人的运动都需要在某个坐标系下进行点到点的运动,而且需要在坐标系之间切换,并给出不同的运动速度和平滑方式,因此,指令还可以包括速度参数和平滑参数。在根据路径规划结果,执行对应的指令时,可以根据路径规划结果,按照每个指令的速度参数和平滑参数,执行对应的指令。如此,在执行某个指令时,可以根据规划好的路线,以指定的速度和平滑参数沿规划好的路线运动。
[0100]
指令的规划有一定的限制,主要有两条:
[0101]
1.为了保证运动的连续性,指令规划需要提前对多条指令进行规划。
[0102]
2.为了保证运动的时效性,指令需要尽可能地延后对条件做判断。
[0103]
一些实施例中,指令的规划需要时间,指令的运动也需要时间,不同的指令对于时间有不同的要求,可以分为预规划指令和非预规划指令。
[0104]
预规划指令规划是指当前指令的规划的时间会对后续规划的结果产生影响的指令,需要一定时间的运算。例如,一条预规划指令从开始规划速度和路径到开始执行指令可以预留10ms时间,不能规划时马上开始执行。
[0105]
分类的意义:由于指令规划需要在保证对条件逻辑判断的实时性的基础上,尽可能的向后规划多条运动指令,保证运动的平滑性。
[0106]
有些指令规划的结果取决于当前时间,比如从静止坐标系下的某一点到运动坐标系下的某一点,这种指令规划过早可能会导致坐标系失效,必须尽可能晚的开始规划。还有一部分指令的规划依赖于逻辑指令,比如条件判断指令,判断的值与时间有关,值的真假决定了后续运行了哪条指令,这样的指令也必须尽可能晚的规划,来保证判断指令的时效性,这些属于非预规划指令。
[0107]
基于此,在进行路径规划,获取机器人待执行动作的指令序列时,可以依次获取指令流中的待执行指令,并在获取每个待执行指令时,执行如下步骤:检测当前待执行指令是否是预规划指令;若当前待执行指令是预规划指令,将当前待执行指令添加到预规划指令
序列中,并继续读取后续指令,直至预规划指令序列中的指令数量满足预设数量时,将指令数量满足预设数量的预规划指令序列确定为指令序列;若当前待执行指令不是预规划指令,将当前待执行指令添加到预规划指令序列中,并将添加后的预规划指令序列确定为指令序列。即如果待执行指令最初为预规划指令,则需要序列满足一定数量后才作为指令序列进行路径规划,以满足预规划指令延时执行。而如果不是最初的预规划指令,则将其添加到预规划指令序列后,立刻将预规划指令序列作为指令序列,开始执行。值得说明的是,程序在处理规划指令时,会以预规划类型指令为节点,每次规划到预规划类指令,然后等待离这条指令开始一个固定规划预留时常时,继续规划后续指令。
[0108]
具体实施时,机器人指令规划是从机器人指令流中的第一条指令依次开始读取,每读到一个待执行指令,都要对其进行检测,以确定该待执行指令是否是预规划指令。如果读到一条预规划指令,就将这条指令添加进规划列表(预规划指令序列)中,直到下一条待执行指令不是预规划指令,或者是规划列表中的指令数量达到预设数量为止,此时暂停读取,并开始规划规划列表中的所有指令,也即,将规划列表中的所有指令组成的序列作为指令序列,执行获取机器人待执行动作的指令序列后的操作。
[0109]
其中,预设数量可以根据实际需求进行设置,此处不作限定。
[0110]
每一次规划结束,规划列表中都会清零,然后继续读取指令流中的指令,并对读到的每一个待执行指令进行检测,在检测到预规划指令后,再将预规划指令添加到预规划指令序列中,重复上述操作执行。一些实施例中,预规划指令携带有预规划标识;相应的,在检测当前待执行指令是否是预规划指令时,可以检测当前待执行指令是否携带有预规划标识,若当前待执行指令携带有预规划标识,则确定当前待执行指令是预规划指令;若当前待执行指令没有携带预规划标识,则确定当前待执行指令不是预规划指令。
[0111]
具体的,预规划标识可以根据需求进行设置,此处不作限定。
[0112]
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
[0113]
需要说明的是,在本技术的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本技术的描述中,除非另有说明,“多个”的含义是指至少两个。
[0114]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
[0115]
应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0116]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步
骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0117]
此外,在本技术各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0118]
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0119]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献