CN117406669B - 插补方法、装置、电子设备及存储介质 - Google Patents
插补方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117406669B CN117406669B CN202311714811.3A CN202311714811A CN117406669B CN 117406669 B CN117406669 B CN 117406669B CN 202311714811 A CN202311714811 A CN 202311714811A CN 117406669 B CN117406669 B CN 117406669B
- Authority
- CN
- China
- Prior art keywords
- points
- interpolation
- path
- point
- adjacent
- 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 58
- 230000006870 function Effects 0.000 claims description 45
- 238000004590 computer program Methods 0.000 claims description 9
- 239000011295 pitch Substances 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 14
- 230000000903 blocking effect Effects 0.000 abstract description 2
- 238000004364 calculation method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 235000003642 hunger Nutrition 0.000 description 2
- 230000037351 starvation Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Classifications
-
- 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
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/41—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
- G05B19/4103—Digital interpolation
-
- 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/34—Director, elements to supervisory
- G05B2219/34117—Machine workpiece along, parallel to largest dimension
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
本发明的实施例提供了一种插补方法、装置、电子设备及存储介质,方法包括,确定待规划路线的路径点,将路径点逆解到机器人的多维关节空间得到多个数据点,计算相邻两个路径点之间的间距,基于各间距和预设插补周期,计算相邻两个路径点之间的插补点数量,基于路径点的数量、数据点、插补点数量以及预设长度的滑动窗口,确定B样条基函数并确定B样条函数中控制点的数量和各控制点值,针对相邻两个控制点,基于相邻控制点的值与相邻控制点对应的相邻路径点的插补点数量,计算该相邻控制点之间的各插补值,基于各插补值、B样条基函数以及各数据点,对该相邻控制点对应的相邻路径点之间进行插补,降低机器人执行过程中的卡顿率。
Description
技术领域
本发明涉及数据处理领域,具体而言,涉及一种插补方法、装置、电子设备及存储介质。
背景技术
现有技术中,在确定笛卡尔空间轨迹的控制过程中,首先计算一条在指定坐标系下的直线或曲线P(s),接着对直线的位移做速度规划s(t),然后进行插补,需要计算对应时刻t所在的笛卡尔空间位置,最后反解到轴上。在这一过程中可能会出现三个问题,一是其计算过程繁琐,运算复杂,由于插补的时效性比较严格,如果出现数据饥饿会造成机器人卡顿;二是六自由度的工业机器人会存在奇异点,如果笛卡尔空间轨迹规划经过奇异的,在规划过程中也是无法获知的,直到插补到奇异点才能知道。
奇异点包括运动超范围的点,或者是运动反解到关节轴速度趋于无穷的点,亦包括下一时刻关节轴最优解不止一个的点。
综上所述,现有技术中的插补方式会导致机器人卡顿或停滞。
发明内容
本发明的目的在于提供一种插补方法、装置、电子设备及存储介质,能够降低机器人的卡顿率。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种插补方法,所述方法包括:
确定待规划路线的路径点;
将所述路径点逆解到机器人的多维关节空间得到多个数据点;
计算相邻两个路径点之间的间距;
基于各所述间距和预设插补周期,计算相邻两个所述路径点之间的插补点数量;
基于所述数据点和预设长度的滑动窗口,确定B样条基函数;
基于所述路径点的数量、所述插补点数量以及预设长度的滑动窗口,确定B样条函数中控制点的数量和各控制点值;
针对相邻两个所述控制点,基于相邻控制点的值与相邻控制点对应的相邻路径点的插补点数量,计算该相邻控制点之间的各插补值;
基于各所述插补值、所述B样条基函数以及各所述数据点,对该相邻控制点对应的相邻路径点之间进行插补。
在可选的实施方式中,所述基于所述数据点和预设长度的滑动窗口,确定B样条基函数的步骤,包括:
确定所述预设长度的滑动窗口对各所述数据点的滑动次数;
基于所述滑动次数确定n次B样条基函数。
在可选的实施方式中,所述基于各所述间距和预设插补周期,计算相邻两个所述路径点之间的插补点数量的步骤,包括:
确定第一路径点和第二路径点之间的第一间距,确定所述第二路径点和第三路径点之间的第二间距,其中,所述第一路径点和所述第二路径点以及第三路径点为相邻的路径点,且所述第一路径点早于所述第二路径点,第二路径点早于所述第三路径点;
计算所述第二间距与所述第一间距的第一差值;
基于所述第一间距和所述第一差值,计算所述第一路径点和所述第二路径点之间的曲率;
基于所述第一间距和所述曲率,计算所述第一路径点和所述第二路径点之间的弧长;
确定预设运行速度;
基于所述弧长与所述预设运行速度,确定第一路径点和所述第二路径点的运行时间;
基于所述运行时间和预设的插补周期,计算所述第一路径点和所述第二路径点之间的插补点数量。
在可选的实施方式中,所述曲率满足以下公式:
;
其中,为所述第二间距与所述第一间距的第一差值,/>为第一间距。
在可选的实施方式中,所述弧长满足以下公式:
;
其中,为第一间距,/>为/>。
在可选的实施方式中,针对相邻两个所述控制点,基于相邻控制点的值与相邻控制点对应的相邻路径点的插补点数量,计算该相邻控制点之间的各插补参数的步骤,包括:
针对相邻两个所述控制点,计算所述相邻两个控制点之间的第二差值;
计算所述第二差值与该相邻控制点对应的路径点的插补点数量的比值,作为相邻两个插补点的插补参数;
基于所述插补参数,计算该相邻控制点之间的各插补值。
在可选的实施方式中,所述基于各所述插补参数、所述B样条基函数以及各所述数据点,对该相邻控制点对应的相邻路径点之间进行插补的步骤,包括:
针对每两个相邻控制点之间的各插补值,将该所述插补值代入所述B样条基函数计算第一值;
基于所述第一值和各所述数据点,计算该插补参数对应的插补点位置;
将各所述插补点位置该相邻控制点对应的相邻路径点之间进行插补。
在可选的实施方式中,所述插补点位置满足以下公式:
;
其中,为插补点位置,/>为数据点,/>为数据点的序数,x为数据点的数量,为B样条基函数,m为插补值。
第二方面,本申请实施例提供了一种插补装置,所述装置包括:
确定模块,用于确定待规划路线的路径点;
逆解模块,用于将所述路径点逆解到机器人的多维关节空间得到多个数据点;
计算模块,用于计算相邻两个路径点之间的间距;基于各所述间距和预设插补周期,计算相邻两个所述路径点之间的插补点数量;
所述确定模块还用于,基于所述数据点和预设长度的滑动窗口,确定B样条基函数;基于所述路径点的数量、所述插补点数量以及预设长度的滑动窗口,确定B样条函数中控制点的数量和各控制点值;
所述计算模块还用于,针对相邻两个所述控制点,基于相邻控制点的值与相邻控制点对应的相邻路径点的插补点数量,计算该相邻控制点之间的各插补值;
插补模块,用于基于各所述插补值、所述B样条基函数以及各所述数据点,对该相邻控制点对应的相邻路径点之间进行插补。
第三方面,本申请实施例提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述插补方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述插补方法的步骤。
本申请具有以下有益效果:
本申请通过确定待规划路线的路径点,将路径点逆解到机器人的多维关节空间得到多个数据点,计算相邻两个路径点之间的间距,基于各间距和预设插补周期,计算相邻两个路径点之间的插补点数量,基于数据点和预设长度的滑动窗口,确定B样条基函数,基于路径点的数量、插补点数量以及预设长度的滑动窗口,确定B样条函数中控制点的数量和各控制点值,针对相邻两个控制点,基于相邻控制点的值与相邻控制点对应的相邻路径点的插补点数量,计算该相邻控制点之间的各插补值,基于各插补值、B样条基函数以及各数据点,对该相邻控制点对应的相邻路径点之间进行插补,降低机器人执行过程中的卡顿率,并且可以提高计算插补值的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的电子设备的方框示意图;
图2为本发明实施例提供的一种插补方法的流程示意图之一;
图3为本发明实施例提供的一种插补方法的流程示意图之二;
图4为本发明实施例提供的一种插补方法的流程示意图之三;
图5为本发明实施例提供的一种插补装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
经过大量研究发现,现有技术中,在确定笛卡尔空间轨迹的控制过程中,首先计算一条在指定坐标系下的直线或曲线P(s),接着对直线的位移做速度规划s(t),然后进行插补,需要计算对应时刻t所在的笛卡尔空间位置,最后反解到轴上。在这一过程中可能会出现三个问题,一是其计算过程繁琐,运算复杂,由于插补的时效性比较严格,如果出现数据饥饿会造成机器人卡顿;二是六自由度的工业机器人会存在奇异点,如果笛卡尔空间轨迹规划经过奇异的,在规划过程中也是无法获知的,直到插补到奇异点才能知道。
奇异点包括运动超范围的点,或者运动反解到关节轴速度趋于无穷的点,亦包括下一时刻关节轴最优解不止一个的点。
综上所述,现有技术中的轨迹规划方式会导致机器人卡顿或停滞。
有鉴于对上述问题的发现,本实施例提供了一种插补方法、装置、电子设备及存储介质,通过确定待规划路线的路径点,将路径点逆解到机器人的多维关节空间得到多个数据点,计算相邻两个路径点之间的间距,基于各间距和预设插补周期,计算相邻两个路径点之间的插补点数量,基于数据点和预设长度的滑动窗口,确定B样条基函数,基于路径点的数量、插补点数量以及预设长度的滑动窗口,确定B样条函数中控制点的数量和各控制点值,针对相邻两个控制点,基于相邻控制点的值与相邻控制点对应的相邻路径点的插补点数量,计算该相邻控制点之间的各插补值,基于各插补值、B样条基函数以及各数据点,对该相邻控制点对应的相邻路径点之间进行插补,降低机器人执行过程中的卡顿率,并且可以提高计算插补值的效率,下面对本实施例提供的方案进行详细阐述。
本实施例提供一种可以对路径进行插补的电子设备。在一种可能的实现方式中,所述电子设备可以为用户终端,例如,电子设备可以是,但不限于,服务器、智能手机、个人电脑(PersonalComputer,PC)、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、移动上网设备(Mobile Internet Device,MID)等。
请参照图1,图1是本申请实施例提供的电子设备100的结构示意图。所述电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
所述电子设备100包括插补装置110、存储器120及处理器130。
所述存储器120及处理器130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述插补装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器120中或固化在所述电子设备100的操作***(operating system,OS)中的软件功能模块。所述处理器130用于执行所述存储器120中存储的可执行模块,例如所述插补装置110所包括的软件功能模块及计算机程序等。
其中,所述存储器120可以是,但不限于,随机存取存储器(RandomAccess Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。其中,存储器120用于存储程序,所述处理器130在接收到执行指令后,执行所述程序。
请参照图2,图2为应用于图1的电子设备100的一种插补方法的流程图,以下将方法包括各个步骤进行详细阐述。
S201:确定待规划路线的路径点。
S202:将路径点逆解到机器人的多维关节空间得到多个数据点。
S203:计算相邻两个路径点之间的间距。
S204:基于各间距和预设插补周期,计算相邻两个路径点之间的插补点数量。
S205:基于数据点和预设长度的滑动窗口,确定B样条基函数。
S206:基于路径点的数量、插补点数量以及预设长度的滑动窗口,确定B样条函数中控制点的数量和各控制点值。
S207:针对相邻两个控制点,基于相邻控制点的值与相邻控制点对应的相邻路径点的插补点数量,计算该相邻控制点之间的各插补值。
S208:基于各插补值、B样条基函数以及各数据点,对该相邻控制点对应的相邻路径点之间进行插补。
需要说明的是,待规划路线的路径点为三维笛卡尔坐标的路径点,三维笛卡尔坐标的路径点包含x,y,z,α,β,γ坐标,其中,x,y,z坐标分别为三维空间的横坐标,纵坐标以及竖直坐标,α,β,γ对应路径点的姿态坐标,路径点的坐标通常可以写作包含3x1平移矩阵T与3x3旋转矩阵R构成的4x4齐次矩阵TR,根据描述机器人模型的DH参数,能够将描述机器人位姿的4x4齐次矩阵逆运动学解算为机器人各个关节的角度,关节数量根据机器人自由度而定,从而转化为(自由度x1)多维关节空间路径点矩阵,即为将路径点与姿态点逆解到机器人的多维关节空间得到多个数据点,即当机器人包含6个关节角时,则对应的数据点坐标则为(θ1,θ2,θ3,θ4,θ5,θ6)。
计算相邻两个路径点之间的间距的方式有多种,在一种实现方式中,可以基于路径点的(x,y,z)坐标计算出相邻两个路径点之间的间距。
示例性的,在多个数据点包括A路径点、B路径点、C路径点时,且A路径点早于B路径点,B路径点早于C路径点。分别计算A路径点和B路径点的差值作为A路径点和B路径点的间距,计算B路径点与C路径点的差值作为B路径点和C路径点之间的间距。
基于各个路径点和相邻两个路径点之间的间距,可以确定出相邻两个路径点之间的弧长,基于预设的相邻两个路径点之间的预设运行速度和预设的插补周期,可以确定出相邻两个路径点之间需要插补的插补点数量。
在一示例中,当路径点包括A路径点和B路径点,且机器人需要从A路径点运行至B路径点,则需要确定A路径点和B路径点之间的构成的曲线的弧长,并设定从A路径点运行到B路径点的运行距离以及单位时间内插补一个点的周期,即插补周期,计算A路径点和B路径点构成的曲线中需要插补的插补点数量。
基于数据点和预设长度的滑动窗口,确定B样条基函数的实现方式可以为:基于数据点的数量和预设长度的滑动窗口,确定B样条基函数。
需要说明的是,滑动窗口的预设长度可以基于实际情况进行设置,本申请实施例对此不做具体限制。
示例性的:在数据点的数量为6个是,滑动窗口的预设长度为4时,则确定的B样条基函数为3次B样条基函数。
基于路径点的数量、插补点数量以及预设长度的滑动窗口,确定B样条函数中控制点的数量和各控制点值。
示例性的,在路径点包括A路径点、B路径点、C路径点、D路径点、E路径点、F路径点时,且预设长度的滑动窗口为4,则确定B样条函数包含x+k+2个控制点,其中,x为路径点的数量,k为预设长度的滑动窗口对各路径点的滑动次数,即长度为4的滑动窗口可以对6个路径点滑动3次,则确定的B样条函数包含的控制点的数量为10,且10个控制点的值可以按照不同方式进行划分。示例性的,在10个控制点为准均匀形式分布时,则控制点可以为{0,0,0,0.2,0.4,0.6,0.8,1,1,1}。在控制点为不同均匀分布方式时,可以基于实际情况设置不同的控制点的控制点值。
例如,可以确定0-0.2之间的各个插补值、0.2-0.4之间的各个插补值,0.4-0.6之间的各插补值,0.6-0.8的各插补值,0.8-1的各插补值,基于各个插补值、B样条基函数以及各数据点,对该相邻控制点对应的相邻路径点之间进行插补。
基于各间距和预设插补周期,计算相邻两个路径点之间的插补点数量的实现方式有多种,在一种实现方式中,如图3所示,包括以下步骤:
S204-1:确定第一路径点和第二路径点之间的第一间距,确定第二路径点和第三路径点之间的第二间距。
其中,第一路径点和第二路径点以及第三路径点为相邻的路径点,且第一路径点早于第二路径点,第二路径点早于第三路径点。
S204-2:计算第二间距与第一间距的第一差值。
S204-3:基于第一间距和第一差值,计算第一路径点和第二路径点之间的曲率。
S204-4:基于第一间距和曲率,计算第一路径点和第二路径点之间的弧长。
S204-5:确定预设运行速度。
S204-6:基于弧长与预设运行速度,确定第一路径点和第二路径点的运行时间。
S204-7:基于运行时间和预设的插补周期,计算第一路径点和第二路径点之间的插补点数量。
示例性的,当第一路径点为A1、第二路径点为A2、第二路径点为A3,且机器人的运行路径为从第一路径点A1运行至第二路径点A2,从第二路径点A2运行至第三路径点A3。计算A1和A2之间的第一间距为D1,计算A2和A3之间的第二间距为D2,计算第一间距D1和第二间距D2之间的第一差值,基于第一间距D1和第一差值计算第一路径点A1和第二路径点A2之间的曲率,可以通过以下公式计算:
;/>为所述第二间距与所述第一间距的第一差值,/>为第一间距。
该公式也可以写为:K1=,即K1为第一路径点A1与A2之间的曲率。
同样的,在计算第二路径点A2与第三路径点A3之间的曲率时,需要计算第四路径点A4与第三路径点之间的第三间距D3,计算第三间距D3与第二间距D2之间的第一差值,基于第二间距D2和第三间距D3与第二间距D2之间的第一差值计算第二路径点A2和第三路径点A3之间的曲率,可以通过以下公式计算:
K2=,即K2为第一路径点A2与A3之间的曲率。
在计算第一路径点A1和第二路径点A2之间的弧长时,可以通过以下方式进行计算:;
其中,为第一间距,/>为/>,/>为第二间距与第一间距的第一差值,为第一路径点A1至第二路径点A2之间的弧长。
确定第一路径点A1至第二路径点A2之间的预设运行速度。需要说明的是,对于不同的相邻的两个路径点之间的预设运行速度可以设置为一致,也可以对于不同相邻的路径点之间设置不同预设运行速度,如,对于第一路径点A1和第二路径点A2之间的速度可以设置为第一预设运行速度,对于第二路径点A2和第三路径点A3之间的速度可以设置为第二预设运行速度,可以设置第一预设运行速度与第二预设运行速度相等,可以设置第一预设运行速度大于第二预设运行速度或者第一预设运行速度小于第二预设运行速度,本申请实施例对此不作具体限制。
基于相邻的路径点之间的弧长和该相邻的路径点之间的预设运行速度,计算弧长与预设运行速度的比值,得到基于预设运行速度行走完该弧长对应的运行时间。基于预设的插补周期,计算运行时间与插补周期的比值,计算得到该相邻的两个路径点之间的插补点数量。
示例性的,为第一路径点A1至第二路径点A2之间的弧长,第一路径点A1至第二路径点A2之间的预设运行速度为/>,计算第一路径点A1和第二路径点A2之间弧长的运行时间为:/>。确定预设插补周期为ts,则在弧长/>中的插补点数量则为:/>。
使用笛卡尔空间路径点逆解到关节空间数据点的方式进行规划,使得该方法即能够快速发现数据点中不合理的地方,如逆解奇异问题,又能够在规划时不出现奇异,使用笛卡尔空间数据点进行B样条曲线拟合时,可能存在数据点包含于机器人工作空间,但是规划插补点超出工作空间而导致的逆解奇异问题,即笛卡尔空间中拟合的B样条曲线超出机器人工作范围,而使用多维关节空间的B样条规划不存在奇异问题,能连续规划与执行。
针对相邻两个控制点,基于相邻控制点的值与相邻控制点对应的相邻路径点的插补点数量,计算该相邻控制点之间的各插补值的实现方式有多种,在一种实现方式中,如图4所示,包括以下步骤:
S207-1:针对相邻两个控制点,计算相邻两个控制点之间的第二差值。
S207-2:计算第二差值与该相邻控制点对应的路径点的插补点数量的比值,作为相邻两个插补点的插补参数。
S207-3:基于插补参数,计算该相邻控制点之间的各插补值。
示例性的,在各个控制点设置为:{0,0,0,0.2,0.4,0.6,0.8,1,1,1}时。分别计算0-0.2之间的各个插补值,0.2-0.4之间的各个插补值,0.4-0.6之间的各个插补值,0.6-0.8之间的各个插补值,0.8至1至1之间的各个插补值。
需要说明的是,在路径点包含6个的情况下,即路径点包括第一路径点A1、第二路径点A2、第三路径点A3、第四路径点A4、第五路径点A5以及第六路径点A6。即控制点0对应为第一路径点A1,控制点0.2对应为第二路径点A2,控制点0.4对应为第三路径点A3,控制点0.6对应为第四路径点A4,控制点0.8对应为第五路径点A5,控制点1对应为第六路径点A6。通过计算各相邻控制点之间的各个插补值,可以计算出各个相邻路径点构成的曲线中需要插补的插补点的具体插补点位置。
以下针对计算0-0.2之间的各个插补值为例进行解释:
计算控制点0-0.2之间的各个插补值,实际上是在计算第一路径点A1和第二路径点A2之间各个插补点的插补位置。通过计算第二控制点0.2和第一控制点0之间的第二差值,以及第一路径点A1和第二路径点之间的插补点数量,计算第二控制点0.2和第一控制点0之间的第二差值与对应插补点数量的比值,作为两个插补点之间的插补参数,基于插补参数,计算0-0.2之间的所有插补值。
即计算插补参数通过以下方式进行计算:m =(mi+1-mi)/n。mi+1为第二控制点,mi为第一控制点,n为插补点数量,/>m为插补参数。通过插补参数可以得到在第一控制点和第二控制点之间的所有插补值,即插补值分别为0,m1,m2,m3…0.2,其中,/>m。则,m1=0+/>m。m2=m1+/>m,m3=m2+/>m。
具体的,在第一路径点A1和第二路径点A2之间的插补点数量n为3150时,则计算的两个插补点之间的插补参数m为(0.2-0)/3150。则第一控制点0至第二控制点0.2之间所有插补值为{0,0.2/3150,0.4/3150,0.6/3150…0.2}。
在计算插补值为0的插补点位置时,则基于公式,进行计算,其中,k为预设长度的滑动窗口对各路径点的滑动次数,/>为B样条基函数,m为插补值,Bi为数据点。在k为3时,计算第一个插补点对应的位置时,具体为:+/>+/>。在k为3,计算第二个插补点的位置时,/>+/>+,计算第三个插补点的位置时,+/>+…直到计算最后一个插补点的位置,+/>+/>。控制点0至控制点0.2,即第一路径点A1至第二路径点A2之间的所有插补点的位置均计算完成。再通过上述方式计算下一相邻路径点之间的插补点的位置,直到将所有相邻路径点均计算完毕为止。
需要说明的是,基函数可以通过以下计算方法计算得到:
;
其中,为数据点的序数,/>为滑动次数。
最后将各个插补点位置存入构建的容器中,在容器中每存入一个插补点位置,则容器的队列长度加一,实时判断容器是否填满,即将存入的插补点位置构成的队列长度与容器的最大存储长度进行比较,在容器中各队列被填满时,判断插补点位置是否全部计算完成,若是,则插补流程结束,若否,则继续进行计算,并将超过容器的最大存储长度的其他插补点位置在容器中的插补点位置均下发完成后进行下一轮存储并下发。将容器中的插补点位置进行下发,在每下发一个插补点位置后,则容器中存储的队列长度减一,在容器中存储的插补点位置均下发完成后,完成下一轮的插补点位置的存储和下发,直到所有插补点位置下发完成。
在另一实例中,为了避免机器人出现卡顿的情况,可以在下发一个插补点位置后,将新的插补点位置存入容器中,保证插补点位置下发的流畅性。
请参照图5,本申请实施例还提供了一种应用于图1所述电子设备100的插补装置110,所述插补装置110包括:
确定模块111,用于确定待规划路线的路径点;
逆解模块112,用于将所述路径点逆解到机器人的多维关节空间得到多个数据点;
计算模块113,用于计算相邻两个路径点之间的间距;基于各所述间距和预设插补周期,计算相邻两个所述路径点之间的插补点数量;
所述确定模块111还用于,基于所述数据点和预设长度的滑动窗口,确定B样条基函数;基于所述路径点的数量、所述插补点数量以及预设长度的滑动窗口,确定B样条函数中控制点的数量和各控制点值;
所述计算模块113还用于,针对相邻两个所述控制点,基于相邻控制点的值与相邻控制点对应的相邻路径点的插补点数量,计算该相邻控制点之间的各插补参数;
插补模块114,用于基于各所述插补参数、所述B样条基函数以及各所述数据点,对该相邻控制点对应的相邻路径点之间进行插补。
本申请还提供一种电子设备100,电子设备100包括处理器130以及存储器120。存储器120存储有计算机可执行指令,计算机可执行指令被处理器130执行时,实现该插补方法。
本申请实施例还提供一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序被处理器130执行时,实现该插补方法。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的各种实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种插补方法,其特征在于,所述方法包括:
确定待规划路线的路径点;
将所述路径点逆解到机器人的多维关节空间得到多个数据点;
计算相邻两个路径点之间的间距;
基于各所述间距和预设插补周期,计算相邻两个所述路径点之间的插补点数量;
基于所述数据点和预设长度的滑动窗口,确定B样条基函数;
基于所述路径点的数量、所述插补点数量以及预设长度的滑动窗口,确定B样条基函数中控制点的数量和各控制点值;
针对相邻两个所述控制点,基于相邻控制点的值与相邻控制点对应的相邻路径点的插补点数量,计算该相邻控制点之间的各插补值;
基于各所述插补值、所述B样条基函数以及各所述数据点,对该相邻控制点对应的相邻路径点之间进行插补。
2.根据权利要求1所述的方法,其特征在于,所述基于所述数据点和预设长度的滑动窗口,确定B样条基函数的步骤,包括:
确定所述预设长度的滑动窗口对各所述数据点的滑动次数;
基于所述滑动次数确定n次B样条基函数。
3.根据权利要求1所述的方法,其特征在于,所述基于各所述间距和预设插补周期,计算相邻两个所述路径点之间的插补点数量的步骤,包括:
确定第一路径点和第二路径点之间的第一间距,确定所述第二路径点和第三路径点之间的第二间距,其中,所述第一路径点和所述第二路径点以及第三路径点为相邻的路径点,且所述第一路径点早于所述第二路径点,第二路径点早于所述第三路径点;
计算所述第二间距与所述第一间距的第一差值;
基于所述第一间距和所述第一差值,计算所述第一路径点和所述第二路径点之间的曲率;
基于所述第一间距和所述曲率,计算所述第一路径点和所述第二路径点之间的弧长;
确定预设运行速度;
基于所述弧长与所述预设运行速度,确定第一路径点和所述第二路径点的运行时间;
基于所述运行时间和预设的插补周期,计算所述第一路径点和所述第二路径点之间的插补点数量。
4.根据权利要求3所述的方法,其特征在于,所述曲率满足以下公式:
;
其中,为所述第二间距与所述第一间距的第一差值,/>为第一间距。
5.根据权利要求4所述的方法,其特征在于,所述弧长满足以下公式:
;
其中,为第一间距,/>为/>。
6.根据权利要求1所述的方法,其特征在于,针对相邻两个所述控制点,基于相邻控制点的值与相邻控制点对应的相邻路径点的插补点数量,计算该相邻控制点之间的各插补值的步骤,包括:
针对相邻两个所述控制点,计算所述相邻两个控制点之间的第二差值;
计算所述第二差值与该相邻控制点对应的路径点的插补点数量的比值,作为相邻两个插补点的插补参数;
基于所述插补参数,计算该相邻控制点之间的各插补值。
7.根据权利要求1所述的方法,其特征在于,所述基于各所述插补值、所述B样条基函数以及各所述数据点,对该相邻控制点对应的相邻路径点之间进行插补的步骤,包括:
针对每两个相邻控制点之间的各插补值,将该所述插补值代入所述B样条基函数计算第一值;
基于所述第一值和各所述数据点,计算该插补值对应的插补点位置;
利用各所述插补点位置对该相邻控制点对应的相邻路径点之间进行插补。
8.根据权利要求7所述的方法,其特征在于,所述插补点位置满足以下公式:
;
其中,为插补点位置,/>为数据点,/>为数据点的序数,x为数据点的数量,/>为B样条基函数,m为插补值,k为预设长度的滑动窗口对各路径点的滑动次数。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1-8任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311714811.3A CN117406669B (zh) | 2023-12-14 | 2023-12-14 | 插补方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311714811.3A CN117406669B (zh) | 2023-12-14 | 2023-12-14 | 插补方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117406669A CN117406669A (zh) | 2024-01-16 |
CN117406669B true CN117406669B (zh) | 2024-04-12 |
Family
ID=89496561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311714811.3A Active CN117406669B (zh) | 2023-12-14 | 2023-12-14 | 插补方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117406669B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104007705A (zh) * | 2014-05-05 | 2014-08-27 | 上海交通大学 | 小线段路径压缩平滑的前瞻插补*** |
JP2016055404A (ja) * | 2014-09-12 | 2016-04-21 | キヤノン株式会社 | 軌道生成方法、軌道生成装置、ロボット装置、プログラム及び記録媒体 |
CN110471368A (zh) * | 2019-08-30 | 2019-11-19 | 长安大学 | 一种高速数控机床加工速度自适应的前瞻插补方法 |
CN114131612A (zh) * | 2021-12-20 | 2022-03-04 | 中国科学院长春光学精密机械与物理研究所 | 基于nurbs曲线插补算法的冗余机械臂实时前瞻轨迹规划方法 |
CN115237058A (zh) * | 2022-09-21 | 2022-10-25 | 济南邦德激光股份有限公司 | 基于牛顿迭代法的b样条实时插补方法、设备和存储介质 |
CN116079714A (zh) * | 2022-12-02 | 2023-05-09 | 盐城工学院 | 一种基于b样条的六轴机械臂轨迹规划方法 |
CN116107262A (zh) * | 2023-02-20 | 2023-05-12 | 大连理工大学 | 一种基于数控加工路径全局解析重构的轮廓误差预补偿方法 |
CN116400646A (zh) * | 2023-04-20 | 2023-07-07 | 南京航空航天大学 | 一种基于奇异补偿的五轴数控机床通用后置处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3610485B2 (ja) * | 1999-09-20 | 2005-01-12 | 株式会社日立製作所 | 数値制御曲面加工装置 |
-
2023
- 2023-12-14 CN CN202311714811.3A patent/CN117406669B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104007705A (zh) * | 2014-05-05 | 2014-08-27 | 上海交通大学 | 小线段路径压缩平滑的前瞻插补*** |
JP2016055404A (ja) * | 2014-09-12 | 2016-04-21 | キヤノン株式会社 | 軌道生成方法、軌道生成装置、ロボット装置、プログラム及び記録媒体 |
CN110471368A (zh) * | 2019-08-30 | 2019-11-19 | 长安大学 | 一种高速数控机床加工速度自适应的前瞻插补方法 |
CN114131612A (zh) * | 2021-12-20 | 2022-03-04 | 中国科学院长春光学精密机械与物理研究所 | 基于nurbs曲线插补算法的冗余机械臂实时前瞻轨迹规划方法 |
CN115237058A (zh) * | 2022-09-21 | 2022-10-25 | 济南邦德激光股份有限公司 | 基于牛顿迭代法的b样条实时插补方法、设备和存储介质 |
CN116079714A (zh) * | 2022-12-02 | 2023-05-09 | 盐城工学院 | 一种基于b样条的六轴机械臂轨迹规划方法 |
CN116107262A (zh) * | 2023-02-20 | 2023-05-12 | 大连理工大学 | 一种基于数控加工路径全局解析重构的轮廓误差预补偿方法 |
CN116400646A (zh) * | 2023-04-20 | 2023-07-07 | 南京航空航天大学 | 一种基于奇异补偿的五轴数控机床通用后置处理方法 |
Non-Patent Citations (1)
Title |
---|
工业机器人运动目标轨迹规划仿真研究;周乐天;姜文刚;;计算机仿真(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117406669A (zh) | 2024-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976148B (zh) | 机器人运动路径规划方法、装置、存储介质及终端设备 | |
CN109959381B (zh) | 一种定位方法、装置、机器人及计算机可读存储介质 | |
CN109648560B (zh) | 工业机器人的空间轨迹过渡方法、***及机器人 | |
CN103645725B (zh) | 一种机器人示教轨迹规划方法和*** | |
CN111123904A (zh) | 路径跟踪方法及终端设备 | |
CN111857037B (zh) | 一种过渡轨迹的生成方法、机器人及计算机可读存储介质 | |
CN107378952B (zh) | 一种冗余度机械臂末端执行器姿态保持的解决方法 | |
CN113119081B (zh) | 一种机械臂的臂角区间的逆解方法、装置及终端设备 | |
Neubauer et al. | Smooth orientation path planning with quaternions using B-splines | |
CN111319041A (zh) | 一种机器人位姿确定方法、装置、可读存储介质及机器人 | |
US20210387340A1 (en) | Robotic arm space position adjustment method, robotic arm controller and computer readable storage medium | |
CN113110423A (zh) | 步态轨迹规划方法、装置、计算机可读存储介质及机器人 | |
CN117406669B (zh) | 插补方法、装置、电子设备及存储介质 | |
CN113986896B (zh) | 一种渣皮厚度数据滤波的方法和装置 | |
CN111185908B (zh) | 识别摩擦力的机器人控制方法、装置、机器人及存储介质 | |
Su et al. | Manipulator trajectory planning based on the algebraic-trigonometric hermite blended interpolation spline | |
Liu et al. | Time-optimal asymmetric S-curve trajectory planning of redundant manipulators under kinematic constraints | |
CN114274147A (zh) | 目标跟踪控制方法及装置、机械臂控制设备和存储介质 | |
CN113103240B (zh) | 用于实现c2连续的机器人轨迹规划方法、装置及*** | |
CN114211495A (zh) | 面向半导体晶圆传送机械臂的自适应轨迹优化方法及*** | |
CN109141450A (zh) | 目标速度确定方法和***、计算机设备、计算机存储介质 | |
CN108693517A (zh) | 车辆定位方法、装置和雷达 | |
Lv et al. | On the real-time calculation of the forward kinematics of a suspended cable–driven parallel mechanism with 6-degree-of-freedom wave compensation | |
CN111427344A (zh) | 自主体轨迹冲突的解决方法、装置、设备和存储介质 | |
CN114227686B (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 |