CN112947299A - 一种运动设备的运动控制方法、系统及装置 - Google Patents

一种运动设备的运动控制方法、系统及装置 Download PDF

Info

Publication number
CN112947299A
CN112947299A CN202110452632.1A CN202110452632A CN112947299A CN 112947299 A CN112947299 A CN 112947299A CN 202110452632 A CN202110452632 A CN 202110452632A CN 112947299 A CN112947299 A CN 112947299A
Authority
CN
China
Prior art keywords
path
transition
circular arc
arc path
point
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.)
Granted
Application number
CN202110452632.1A
Other languages
English (en)
Other versions
CN112947299B (zh
Inventor
王嫣涵
尚波
徐铁柱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Invt Electric Co Ltd
Original Assignee
Shenzhen Invt Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Invt Electric Co Ltd filed Critical Shenzhen Invt Electric Co Ltd
Priority to CN202110452632.1A priority Critical patent/CN112947299B/zh
Publication of CN112947299A publication Critical patent/CN112947299A/zh
Application granted granted Critical
Publication of CN112947299B publication Critical patent/CN112947299B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical 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/19Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35349Display part, programmed locus and tool path, traject, dynamic locus

Abstract

本发明公开了一种运动设备的运动控制方法、系统及装置,确定用于过渡直线路径和圆弧路径的过渡圆弧路径在直线路径上的第一过渡点,及其在圆弧路径上的第二过渡点;以过渡圆弧路径在目标路径上的过渡点处与目标路径相切为约束,确定过渡圆弧路径的圆心;获取过渡圆弧路径的旋转方向,并基于过渡圆弧路径对应的第一过渡点、第二过渡点、圆心及旋转方向,控制运动设备在直线路径和圆弧路径之间平滑过渡运行。可见,本申请可在相连的直线路径和圆弧路径之间添加一段过渡圆弧路径,使得运动设备按照过渡圆弧路径运行可实现直线路径与圆弧路径间的平滑过渡,从而在加工控制系统的应用场景下可提高加工质量及加工效率。

Description

一种运动设备的运动控制方法、系统及装置
技术领域
本发明涉及加工控制领域,特别是涉及一种运动设备的运动控制方法、系统及装置。
背景技术
在数控系统、机器人控制系统等加工控制系统中,均是按照指定的路径控制运动设备运行。一般情况下,运动设备的整个运行路径不止有一种路径,而是由多种路径组合而成。但是,在不同路径交接处运行时,由于运动设备运行方向的切线向量不同,导致在不同路径交接处运行时速度和加速度不连续,无法及时进行路径转换,使得在路径转换期间有明显的滞留现象,影响加工质量及加工效率。
目前,为了减轻在路径转换期间的滞留现象,通常在交接的两段路径之间添加一段圆弧路径,以将不同路径交接处平滑过渡处理。但是,现有的路径间平滑过渡方法只能完成不同运行方向的两段直线路径之间的平滑过渡处理,而无法完成直线路径与圆弧路径之间的平滑过渡处理,导致在有直线路径和圆弧路径组合的运行场景下,加工质量及加工效率较低。
因此,如何提供一种解决上述技术问题的方案是本领域的技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种运动设备的运动控制方法、系统及装置,在相连的直线路径和圆弧路径之间添加一段过渡圆弧路径,此过渡圆弧路径在两端过渡点处分别与直线路径和圆弧路径相切,使得运动设备按照过渡圆弧路径运行可实现直线路径与圆弧路径间的平滑过渡,从而在加工控制系统的应用场景下可提高加工质量及加工效率。
为解决上述技术问题,本发明提供了一种运动设备的运动控制方法,包括:
确定用于过渡直线路径和圆弧路径的过渡圆弧路径在所述直线路径上的第一过渡点,及其在所述圆弧路径上的第二过渡点;
以所述过渡圆弧路径在目标路径上的过渡点处与所述目标路径相切为约束,确定所述过渡圆弧路径的圆心;其中,所述目标路径为所述直线路径和所述圆弧路径;
获取所述过渡圆弧路径的旋转方向,并基于所述过渡圆弧路径对应的第一过渡点、第二过渡点、圆心及旋转方向,控制运动设备在所述直线路径和所述圆弧路径之间平滑过渡运行。
优选地,确定用于过渡直线路径和圆弧路径的过渡圆弧路径在所述直线路径上的第一过渡点,及其在所述圆弧路径上的第二过渡点的过程,包括:
以未添加过渡圆弧路径的所述圆弧路径和所述直线路径的衔接点为圆心、预设最大允许弓高误差为半径,作圆弧与所述圆弧路径相交于第一点,并将所述第一点作为所述第二过渡点;
获取所述圆弧路径在所述第二过渡点处的切向量,以所述切向量构造直线与所述直线路径相交于第二点,并以所述第一过渡点和所述第二过渡点与所述第二点的距离相等为约束,确定所述第一过渡点。
优选地,以未添加过渡圆弧路径的所述圆弧路径和所述直线路径的衔接点为圆心、预设最大允许弓高误差为半径,作圆弧与所述圆弧路径相交于第一点,并将所述第一点作为所述第二过渡点的过程,包括:
根据预设圆心角求取关系式
Figure BDA0003039377600000021
求取所述圆弧路径上的弦长
Figure BDA0003039377600000022
对应的圆心角α;其中,
Figure BDA0003039377600000023
P1为未添加过渡圆弧路径的所述圆弧路径和所述直线路径的衔接点;PT2为所述第二过渡点;h为预设最大允许弓高误差;r1为所述圆弧路径的半径;
根据预设圆弧过渡点求取关系式
Figure BDA0003039377600000024
求取所述第二过渡点PT2的坐标;其中,二维向量旋转矩阵
Figure BDA0003039377600000025
θ>0表示逆时针旋转,θ<0表示顺时针旋转;arcdir表示圆弧旋转方向,arcdir为1表示逆时针,arcdir为-1表示顺时针;C1为所述圆弧路径的圆心。
优选地,获取所述圆弧路径在所述第二过渡点处的切向量,以所述切向量构造直线与所述直线路径相交于第二点,并以所述第一过渡点和所述第二过渡点与所述第二点的距离相等为约束,确定所述第一过渡点的过程,包括:
根据预设切向单位向量求取关系式
Figure BDA0003039377600000031
求取所述圆弧路径在所述第二过渡点PT2处的切向单位向量
Figure BDA0003039377600000032
根据所述切向单位向量
Figure BDA0003039377600000033
及所述第二过渡点PT2的坐标求取所述切向单位向量所在直线的第一直线表达式;
根据所述直线路径的两端点坐标求取所述直线路径的第二直线表达式;
根据所述第一直线表达式和所述第二直线表达式求取两直线交点Pm的坐标;
根据预设直线过渡点求取关系式
Figure BDA0003039377600000034
求取所述第一过渡点PT1的坐标;其中,P0为所述直线路径的一端点。
优选地,以所述过渡圆弧路径在目标路径上的过渡点处与所述目标路径相切为约束,确定所述过渡圆弧路径的圆心的过程,包括:
根据预设夹角求取关系式
Figure BDA0003039377600000035
求取所述切向单位向量
Figure BDA0003039377600000036
与所述直线路径的夹角θ;其中,
Figure BDA0003039377600000037
表示向量
Figure BDA0003039377600000038
与向量
Figure BDA0003039377600000039
的点乘;
根据预设半径求取关系式
Figure BDA00030393776000000310
求取所述过渡圆弧路径的半径r;
根据预设中点求取关系式
Figure BDA00030393776000000311
求取所述第一过渡点PT1和所述第二过渡点PT2连线的中点M的坐标;
根据预设长度求取关系式
Figure BDA00030393776000000312
求取直线PmC2的长度;其中,C2为所述过渡圆弧路径的圆心;
根据预设向量求取关系式
Figure BDA0003039377600000041
求取向量
Figure BDA0003039377600000042
并根据预设圆心求取关系式
Figure BDA0003039377600000043
求取圆心C2的坐标。
优选地,获取所述过渡圆弧路径的旋转方向的过程,包括:
判断s=x1y2-x2y1的s值是否大于0;其中,
Figure BDA0003039377600000044
Figure BDA0003039377600000045
为所述过渡圆弧路径在前方的过渡点处的方向向量;
Figure BDA0003039377600000046
为所述过渡圆弧路径在后方的过渡点处的方向向量;
若是,则确定所述过渡圆弧路径为逆时针圆弧;
若否,则确定所述过渡圆弧路径为顺时针圆弧。
为解决上述技术问题,本发明还提供了一种运动设备的运动控制系统,包括:
过渡点确定模块,用于确定用于过渡直线路径和圆弧路径的过渡圆弧路径在所述直线路径上的第一过渡点,及其在所述圆弧路径上的第二过渡点;
圆心确定模块,用于以所述过渡圆弧路径在目标路径上的过渡点处与所述目标路径相切为约束,确定所述过渡圆弧路径的圆心;其中,所述目标路径为所述直线路径和所述圆弧路径;
方向确定模块,用于获取所述过渡圆弧路径的旋转方向;
运动控制模块,用于基于所述过渡圆弧路径对应的第一过渡点、第二过渡点、圆心及旋转方向,控制运动设备在所述直线路径和所述圆弧路径之间平滑过渡运行。
优选地,所述过渡点确定模块具体用于:
以未添加过渡圆弧路径的所述圆弧路径和所述直线路径的衔接点为圆心、预设最大允许弓高误差为半径,作圆弧与所述圆弧路径相交于第一点,并将所述第一点作为所述第二过渡点;
获取所述圆弧路径在所述第二过渡点处的切向量,以所述切向量构造直线与所述直线路径相交于第二点,并以所述第一过渡点和所述第二过渡点与所述第二点的距离相等为约束,确定所述第一过渡点。
优选地,所述方向确定模块具体用于:
判断s=x1y2-x2y1的s值是否大于0;其中,
Figure BDA0003039377600000051
Figure BDA0003039377600000052
为所述过渡圆弧路径在前方的过渡点处的方向向量;
Figure BDA0003039377600000053
为所述过渡圆弧路径在后方的过渡点处的方向向量;
若是,则确定所述过渡圆弧路径为逆时针圆弧;
若否,则确定所述过渡圆弧路径为顺时针圆弧。
为解决上述技术问题,本发明还提供了一种运动设备的运动控制装置,包括:
存储器,用于存储计算机程序;
处理器,用于在执行所述计算机程序时实现上述任一种运动设备的运动控制方法的步骤。
本发明提供了一种运动设备的运动控制方法,确定用于过渡直线路径和圆弧路径的过渡圆弧路径在直线路径上的第一过渡点,及其在圆弧路径上的第二过渡点;以过渡圆弧路径在目标路径上的过渡点处与目标路径相切为约束,确定过渡圆弧路径的圆心;其中,目标路径为直线路径和圆弧路径;获取过渡圆弧路径的旋转方向,并基于过渡圆弧路径对应的第一过渡点、第二过渡点、圆心及旋转方向,控制运动设备在直线路径和圆弧路径之间平滑过渡运行。可见,本申请可在相连的直线路径和圆弧路径之间添加一段过渡圆弧路径,此过渡圆弧路径在两端过渡点处分别与直线路径和圆弧路径相切,使得运动设备按照过渡圆弧路径运行可实现直线路径与圆弧路径间的平滑过渡,从而在加工控制系统的应用场景下可提高加工质量及加工效率。
本发明还提供了一种运动设备的运动控制系统及装置,与上述运动控制方法具有相同的有益效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种运动设备的运动控制方法的流程图;
图2为本发明实施例提供的一种直线路径和圆弧路径的交接示意图;
图3为本发明实施例提供的一种直线路径和圆弧路径的交接实施例示意图;
图4为本发明实施例提供的一种运动设备的运动控制系统的结构示意图。
具体实施方式
本发明的核心是提供一种运动设备的运动控制方法、系统及装置,在相连的直线路径和圆弧路径之间添加一段过渡圆弧路径,此过渡圆弧路径在两端过渡点处分别与直线路径和圆弧路径相切,使得运动设备按照过渡圆弧路径运行可实现直线路径与圆弧路径间的平滑过渡,从而在加工控制系统的应用场景下可提高加工质量及加工效率。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1为本发明实施例提供的一种运动设备的运动控制方法的流程图。
该运动设备的运动控制方法包括:
步骤S1:确定用于过渡直线路径和圆弧路径的过渡圆弧路径在直线路径上的第一过渡点,及其在圆弧路径上的第二过渡点。
具体地,考虑到运动设备在未平滑过渡的直线路径和圆弧路径的交接处运行时,由于运行方向的切线向量不同,导致在直线路径和圆弧路径的交接处运行时速度和加速度不连续,无法及时进行路径转换,使得在路径转换期间有明显的滞留现象,所以为了减轻在路径转换期间的滞留现象,本申请在未平滑过渡的直线路径和圆弧路径之间添加一段过渡圆弧路径,目的是将未平滑过渡的直线路径和圆弧路径的交接处平滑过渡处理。
基于此,本申请首先确定过渡圆弧路径(用于过渡直线路径和圆弧路径)在直线路径上的第一过渡点(即过渡圆弧路径与直线路径的交接点),并确定过渡圆弧路径在圆弧路径上的第二过渡点(即过渡圆弧路径与圆弧路径的交接点)。也就是说,若运动设备预从直线路径进入圆弧路径运行,则在运动设备运行到直线路径上的第一过渡点时便进入过渡圆弧路径,接下来按照过渡圆弧路径运行,直至运动设备运行到圆弧路径上的第二过渡点时进入圆弧路径,接下来按照圆弧路径运行。若运动设备预从圆弧路径进入直线路径运行,则在运动设备运行到圆弧路径上的第二过渡点时便进入过渡圆弧路径,接下来按照过渡圆弧路径运行,直至运动设备运行到直线路径上的第一过渡点时进入直线路径,接下来按照直线路径运行。
步骤S2:以过渡圆弧路径在目标路径上的过渡点处与目标路径相切为约束,确定过渡圆弧路径的圆心。
需要说明的是,本申请的目标路径为直线路径和圆弧路径。
具体地,为了实现直线路径和圆弧路径的平滑过渡,需满足:过渡圆弧路径在直线路径上的第一过渡点处与直线路径相切;过渡圆弧路径在圆弧路径上的第二过渡点处与圆弧路径相切。基于此,本申请以过渡圆弧路径在直线路径上的第一过渡点处与直线路径相切、过渡圆弧路径在圆弧路径上的第二过渡点处与圆弧路径相切为约束,确定过渡圆弧路径的圆心。也就是说,确定的过渡圆弧路径的圆心可使过渡圆弧路径在直线路径上的第一过渡点处与直线路径相切、在圆弧路径上的第二过渡点处与圆弧路径相切。
步骤S3:获取过渡圆弧路径的旋转方向,并基于过渡圆弧路径对应的第一过渡点、第二过渡点、圆心及旋转方向,控制运动设备在直线路径和圆弧路径之间平滑过渡运行。
具体地,已知过渡圆弧路径的两端点(第一过渡点、第二过渡点)及圆心,可得到过渡圆弧路径的圆弧形状,但此情况下得到的过渡圆弧路径没有指明旋转方向,可以理解的是,若运动设备预从直线路径进入圆弧路径运行,则过渡圆弧路径的起点为第一过渡点、终点为第二过渡点;若运动设备预从圆弧路径进入直线路径运行,则过渡圆弧路径的起点为第二过渡点、终点为第一过渡点。所以为了实现运动设备在直线路径和圆弧路径之间平滑过渡运行,本申请还需获取过渡圆弧路径的旋转方向(逆时针或者顺时针,用于指明过渡圆弧路径的起点和终点),基于此,本申请便可基于过渡圆弧路径对应的第一过渡点、第二过渡点、圆心及旋转方向,控制运动设备在直线路径和圆弧路径之间平滑过渡运行。
本发明提供了一种运动设备的运动控制方法,确定用于过渡直线路径和圆弧路径的过渡圆弧路径在直线路径上的第一过渡点,及其在圆弧路径上的第二过渡点;以过渡圆弧路径在目标路径上的过渡点处与目标路径相切为约束,确定过渡圆弧路径的圆心;其中,目标路径为直线路径和圆弧路径;获取过渡圆弧路径的旋转方向,并基于过渡圆弧路径对应的第一过渡点、第二过渡点、圆心及旋转方向,控制运动设备在直线路径和圆弧路径之间平滑过渡运行。可见,本申请可在相连的直线路径和圆弧路径之间添加一段过渡圆弧路径,此过渡圆弧路径在两端过渡点处分别与直线路径和圆弧路径相切,使得运动设备按照过渡圆弧路径运行可实现直线路径与圆弧路径间的平滑过渡,从而在加工控制系统的应用场景下可提高加工质量及加工效率。
在上述实施例的基础上:
请参照图2,图2为本发明实施例提供的一种直线路径和圆弧路径的交接示意图。
作为一种可选的实施例,确定用于过渡直线路径和圆弧路径的过渡圆弧路径在直线路径上的第一过渡点,及其在圆弧路径上的第二过渡点的过程,包括:
以未添加过渡圆弧路径的圆弧路径和直线路径的衔接点为圆心、预设最大允许弓高误差为半径,作圆弧与圆弧路径相交于第一点,并将第一点作为第二过渡点;
获取圆弧路径在第二过渡点处的切向量,以切向量构造直线与直线路径相交于第二点,并以第一过渡点和第二过渡点与第二点的距离相等为约束,确定第一过渡点。
具体地,本申请先确定过渡圆弧路径在圆弧路径上的第二过渡点,然后再基于第一过渡点和第二过渡点的位置对应关系确定第一过渡点。基于此,过渡圆弧路径在圆弧路径上的第二过渡点的确定方式:以圆弧路径和直线路径原本的衔接点为圆心、预设最大允许弓高误差为半径,作圆弧与圆弧路径相交于第一点,第一点即为过渡圆弧路径在圆弧路径上的第二过渡点。过渡圆弧路径在直线路径上的第一过渡点的确定方式:获取圆弧路径在第二过渡点处的切向量,以切向量构造直线与直线路径相交于第二点,基于第一过渡点和第二过渡点的位置满足于:第一过渡点和第二点之间的距离与第二过渡点和第二点之间的距离相等,所以以第一过渡点和第二过渡点与第二点的距离相等为约束,可确定出第一过渡点。
如图2所示,直线路径的两端点为P0和P1,圆弧路径的两端点为P1和P2,则圆弧路径和直线路径原本的衔接点为P1。设运行设备从直线路径进入圆弧路径运行,则P0为直线路径的起点;P1为直线路径的终点,且为圆弧路径的起点;P2为圆弧路径的终点。设预设最大允许弓高误差为h,则过渡圆弧路径在圆弧路径上的第二过渡点的确定方式:以圆弧路径和直线路径原本的衔接点P1为圆心、预设最大允许弓高误差h为半径,作圆弧与圆弧路径相交于第二过渡点PT2,则
Figure BDA0003039377600000096
。过渡圆弧路径在直线路径上的第一过渡点的确定方式:获取圆弧路径在第二过渡点PT2处的切向量,以切向量构造直线与直线路径相交于第二点Pm,以|Pm PT2|=|Pm PT1|为约束,可确定出第一过渡点PT1。
作为一种可选的实施例,以未添加过渡圆弧路径的圆弧路径和直线路径的衔接点为圆心、预设最大允许弓高误差为半径,作圆弧与圆弧路径相交于第一点,并将第一点作为第二过渡点的过程,包括:
根据预设圆心角求取关系式
Figure BDA0003039377600000091
求取圆弧路径上的弦长
Figure BDA0003039377600000092
对应的圆心角α;其中,
Figure BDA0003039377600000093
P1为未添加过渡圆弧路径的圆弧路径和直线路径的衔接点;PT2为第二过渡点;h为预设最大允许弓高误差;r1为圆弧路径的半径;
根据预设圆弧过渡点求取关系式
Figure BDA0003039377600000094
求取第二过渡点PT2的坐标;其中,二维向量旋转矩阵
Figure BDA0003039377600000095
θ>0表示逆时针旋转,θ<0表示顺时针旋转;arcdir表示圆弧旋转方向,arcdir为1表示逆时针,arcdir为-1表示顺时针;C1为圆弧路径的圆心。
具体地,已知
Figure BDA0003039377600000101
(
Figure BDA0003039377600000102
表示向量
Figure BDA0003039377600000103
的模),且
Figure BDA0003039377600000104
是圆弧路径上的一段弦长,设此段弦长对应的圆心角为α,则有圆心角求取关系式:
Figure BDA0003039377600000105
其中,r1为圆弧路径的半径,是已知量;h为预设最大允许弓高误差,是已知量;则可求取圆心角α的角度值。
基于弦长
Figure BDA0003039377600000106
对应的圆心角为α,第二过渡点PT2为衔接点P1绕圆弧路径的圆心C1旋转arcdir*α角度得到的点(arcdir表示圆弧旋转方向,arcdir为1表示逆时针,arcdir为-1表示顺时针),二维向量旋转矩阵为:
Figure BDA0003039377600000107
(θ>0表示逆时针旋转,θ<0表示顺时针旋转),则有圆弧过渡点求取关系式
Figure BDA0003039377600000108
其中,圆弧路径的圆心C1的坐标、arcdir*α角度值、衔接点P1的坐标均为已知量,则可求取第二过渡点PT2的坐标。
作为一种可选的实施例,获取圆弧路径在第二过渡点处的切向量,以切向量构造直线与直线路径相交于第二点,并以第一过渡点和第二过渡点与第二点的距离相等为约束,确定第一过渡点的过程,包括:
根据预设切向单位向量求取关系式
Figure BDA0003039377600000109
求取圆弧路径在第二过渡点PT2处的切向单位向量
Figure BDA00030393776000001010
根据切向单位向量
Figure BDA00030393776000001011
及第二过渡点PT2的坐标求取切向单位向量所在直线的第一直线表达式;
根据直线路径的两端点坐标求取直线路径的第二直线表达式;
根据第一直线表达式和第二直线表达式求取两直线交点Pm的坐标;
根据预设直线过渡点求取关系式
Figure BDA00030393776000001012
求取第一过渡点PT1的坐标;其中,P0为直线路径的一端点。
具体地,圆弧路径在第二过渡点PT2处的切向量可由矩阵
Figure BDA0003039377600000111
旋转90°得到,则可利用旋转矩阵得到切向单位向量求取关系式
Figure BDA0003039377600000112
其中,圆弧路径的圆心C1的坐标、第二过渡点PT2的坐标均为已知量,则可求取圆弧路径在第二过渡点PT2处的切向单位向量
Figure BDA0003039377600000113
已知切向单位向量及切向单位向量上一点坐标(第二过渡点PT2的坐标),可得到切向单位向量所在直线的第一直线表达式。已知直线路径的两端点坐标(P0、P1的坐标),可得到直线路径的第二直线表达式。已知切向单位向量所在直线的第一直线表达式及直线路径的第二直线表达式,可得到切向单位向量所在直线与直线路径的交点Pm的坐标。
又根据对称性可得|Pm PT2|=|Pm PT1|(|AB|表示线段AB的长度),则有直线过渡点求取关系式
Figure BDA0003039377600000114
其中,交点Pm的坐标、直线路径的端点P0的坐标均为已知量,则可求取第一过渡点PT1的坐标。
作为一种可选的实施例,以过渡圆弧路径在目标路径上的过渡点处与目标路径相切为约束,确定过渡圆弧路径的圆心的过程,包括:
根据预设夹角求取关系式
Figure BDA0003039377600000115
求取切向单位向量
Figure BDA0003039377600000116
与直线路径的夹角θ;其中,
Figure BDA0003039377600000117
表示向量
Figure BDA0003039377600000118
与向量
Figure BDA0003039377600000119
的点乘;
根据预设半径求取关系式
Figure BDA00030393776000001110
求取过渡圆弧路径的半径r;
根据预设中点求取关系式
Figure BDA00030393776000001111
求取第一过渡点PT1和第二过渡点PT2连线的中点M的坐标;
根据预设长度求取关系式
Figure BDA0003039377600000121
求取直线PmC2的长度;其中,C2为过渡圆弧路径的圆心;
根据预设向量求取关系式
Figure BDA0003039377600000122
求取向量
Figure BDA0003039377600000123
并根据预设圆心求取关系式
Figure BDA0003039377600000124
求取圆心C2的坐标。
具体地,本申请可利用两向量的点乘求取两向量的夹角。已知圆弧路径在第二过渡点PT2处的切向单位向量
Figure BDA0003039377600000125
与直线路径的向量
Figure BDA0003039377600000126
的点乘为:
Figure BDA0003039377600000127
则有夹角求取关系式
Figure BDA0003039377600000128
其中,向量
Figure BDA0003039377600000129
与向量
Figure BDA00030393776000001210
的点乘
Figure BDA00030393776000001211
直线路径的端点P0、P1的坐标均为已知量,则可求取切向单位向量
Figure BDA00030393776000001212
与直线路径的夹角θ。
如图2所示,已知过渡圆弧路径的圆心C2、第一过渡点PT1、交点Pm构成直角三角形,直线C2PT1的长度为过渡圆弧路径的半径r,直线C2Pm平分夹角θ,则有半径求取关系式
Figure BDA00030393776000001213
其中,交点Pm的坐标、第一过渡点PT1的坐标、夹角θ均为已知量,则可求取过渡圆弧路径的半径r。
设M为直线PT1PT2的中点,则有中点求取关系式
Figure BDA00030393776000001214
其中,第一过渡点PT1的坐标、第二过渡点PT2的坐标均为已知量,则可求取中点M的坐标。
根据三角函数关系可得长度求取关系式
Figure BDA00030393776000001215
其中,过渡圆弧路径的半径r、夹角θ均为已知量,则可求取直线PmC2的长度。由向量关系可得向量求取关系式
Figure BDA00030393776000001216
其中,
Figure BDA00030393776000001217
为已知量;交点Pm的坐标、中点M的坐标均为已知量,则可求取向量
Figure BDA0003039377600000131
然后根据圆心求取关系式
Figure BDA0003039377600000132
求取圆心C2的坐标,至此完成过渡圆弧路径的求解。
需要说明的是,上述得到的过渡圆弧路径实际的弓高误差h’等于直线PmC2的长度减去过渡圆弧路径的半径r,显然h’<h,满足最大允许弓高误差要求。
作为一种可选的实施例,获取过渡圆弧路径的旋转方向的过程,包括:
判断s=x1y2-x2y1的s值是否大于0;其中,
Figure BDA0003039377600000133
Figure BDA0003039377600000134
为过渡圆弧路径在前方的过渡点处的方向向量;
Figure BDA0003039377600000135
为过渡圆弧路径在后方的过渡点处的方向向量;
若是,则确定过渡圆弧路径为逆时针圆弧;
若否,则确定过渡圆弧路径为顺时针圆弧。
具体地,设过渡圆弧路径在先后两个过渡点处的方向向量分别为
Figure BDA0003039377600000136
Figure BDA0003039377600000137
假设
Figure BDA0003039377600000138
令s=x1y2-x2y1,s<0说明
Figure BDA0003039377600000139
Figure BDA00030393776000001310
顺时针方向,即过渡圆弧路径为顺时针圆弧;s>0说明
Figure BDA00030393776000001311
Figure BDA00030393776000001312
逆时针方向,即过渡圆弧路径为逆时针圆弧(基于空间向量的叉乘和右手定则总结出来的关系式)。
请参照图3,图3为本发明实施例提供的一种直线路径和圆弧路径的交接实施例示意图。
使用上述运动控制方法对图3中的直线路径和圆弧路径进行平滑过渡(其中,直线路径的起点P0=(-0.5,0.5),终点P1=(0.5858,0.5858);圆弧路径的起点为P1,即P1为直线路径与圆弧路径的衔接点,圆弧路径的终点P2=(0.0304,1.6527),圆弧路径的半径为2,最大允许弓高误差h=0.2):
1)确定过渡圆弧路径在圆弧路径上的第二过渡点PT2及其在直线路径上的第一过渡点PT1:
先以P1为圆心,h为半径,作圆弧与圆弧路径相交于第一点,令第一点为圆弧路径上的第二过渡点PT2;利用旋转矩阵求得圆弧路径在第二过渡点PT2处的切向量,而后利用该切向量与第二过渡点PT2构建出一条直线,此直线与直线路径相交于点Pm,最后利用对等关系得到直线路径上的第一过渡点PT1。计算得到在直线路径上的第一过渡点PT1=(0.3814,0.5696),在圆弧路径上的第二过渡点PT2=(0.4516,0.7341)。
2)确定过渡圆弧路径的圆心:
已知圆弧路径在第二过渡点PT2处的切向量、直线路径的方向向量,利用两向量的点乘求得两向量之间的夹角,然后根据三角函数关系计算得到过渡圆弧路径的圆心。计算得到过渡圆弧路径的圆心坐标为C2=(0.3735,0.6702)。
3)获取过渡圆弧路径的旋转方向:
由前述可得到过渡圆弧路径的起点切向量和终点切向量,基于空间向量右手定则,判断过渡圆弧路径的旋转方向。此实施例中过渡圆弧路径的旋转方向为逆时针。
至此,完成直线路径与圆弧路径的平滑过渡。此时实际弓高误差h’=0.1167<h,满足最大允许弓高误差的要求。
综上,该运动控制方法计算简单,能快速求出过渡圆弧路径的半径及圆心,且保证过渡圆弧路径与实际路径的切向量连续,即过渡圆弧路径能够与实际路径相衔接,保证了速度的连续,且满足了最大允许弓高误差的要求。另外,本申请可根据过渡点处的方向向量求得过渡圆弧路径的旋转方向,可按照数控加工的圆弧指令进行过渡。
请参照图4,图4为本发明实施例提供的一种运动设备的运动控制系统的结构示意图。
该运动设备的运动控制系统包括:
过渡点确定模块1,用于确定用于过渡直线路径和圆弧路径的过渡圆弧路径在直线路径上的第一过渡点,及其在圆弧路径上的第二过渡点;
圆心确定模块2,用于以过渡圆弧路径在目标路径上的过渡点处与目标路径相切为约束,确定过渡圆弧路径的圆心;其中,目标路径为直线路径和圆弧路径;
方向确定模块3,用于获取过渡圆弧路径的旋转方向;
运动控制模块4,用于基于过渡圆弧路径对应的第一过渡点、第二过渡点、圆心及旋转方向,控制运动设备在直线路径和圆弧路径之间平滑过渡运行。
作为一种可选的实施例,过渡点确定模块1具体用于:
以未添加过渡圆弧路径的圆弧路径和直线路径的衔接点为圆心、预设最大允许弓高误差为半径,作圆弧与圆弧路径相交于第一点,并将第一点作为第二过渡点;
获取圆弧路径在第二过渡点处的切向量,以切向量构造直线与直线路径相交于第二点,并以第一过渡点和第二过渡点与第二点的距离相等为约束,确定第一过渡点。
作为一种可选的实施例,方向确定模块3具体用于:
判断s=x1y2-x2y1的s值是否大于0;其中,
Figure BDA0003039377600000151
Figure BDA0003039377600000152
为过渡圆弧路径在前方的过渡点处的方向向量;
Figure BDA0003039377600000153
为过渡圆弧路径在后方的过渡点处的方向向量;
若是,则确定过渡圆弧路径为逆时针圆弧;
若否,则确定过渡圆弧路径为顺时针圆弧。
本申请提供的运动控制系统的实施例请参考上述运动控制方法的实施例,本申请在此不再赘述。
本申请还提供了一种运动设备的运动控制装置,包括:
存储器,用于存储计算机程序;
处理器,用于在执行计算机程序时实现上述任一种运动设备的运动控制方法的步骤。
本申请提供的运动控制装置的实施例请参考上述运动控制方法的实施例,本申请在此不再赘述。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种运动设备的运动控制方法,其特征在于,包括:
确定用于过渡直线路径和圆弧路径的过渡圆弧路径在所述直线路径上的第一过渡点,及其在所述圆弧路径上的第二过渡点;
以所述过渡圆弧路径在目标路径上的过渡点处与所述目标路径相切为约束,确定所述过渡圆弧路径的圆心;其中,所述目标路径为所述直线路径和所述圆弧路径;
获取所述过渡圆弧路径的旋转方向,并基于所述过渡圆弧路径对应的第一过渡点、第二过渡点、圆心及旋转方向,控制运动设备在所述直线路径和所述圆弧路径之间平滑过渡运行。
2.如权利要求1所述的运动设备的运动控制方法,其特征在于,确定用于过渡直线路径和圆弧路径的过渡圆弧路径在所述直线路径上的第一过渡点,及其在所述圆弧路径上的第二过渡点的过程,包括:
以未添加过渡圆弧路径的所述圆弧路径和所述直线路径的衔接点为圆心、预设最大允许弓高误差为半径,作圆弧与所述圆弧路径相交于第一点,并将所述第一点作为所述第二过渡点;
获取所述圆弧路径在所述第二过渡点处的切向量,以所述切向量构造直线与所述直线路径相交于第二点,并以所述第一过渡点和所述第二过渡点与所述第二点的距离相等为约束,确定所述第一过渡点。
3.如权利要求2所述的运动设备的运动控制方法,其特征在于,以未添加过渡圆弧路径的所述圆弧路径和所述直线路径的衔接点为圆心、预设最大允许弓高误差为半径,作圆弧与所述圆弧路径相交于第一点,并将所述第一点作为所述第二过渡点的过程,包括:
根据预设圆心角求取关系式
Figure FDA0003039377590000011
求取所述圆弧路径上的弦长
Figure FDA0003039377590000012
对应的圆心角α;其中,
Figure FDA0003039377590000013
P1为未添加过渡圆弧路径的所述圆弧路径和所述直线路径的衔接点;PT2为所述第二过渡点;h为预设最大允许弓高误差;r1为所述圆弧路径的半径;
根据预设圆弧过渡点求取关系式
Figure FDA0003039377590000021
求取所述第二过渡点PT2的坐标;其中,二维向量旋转矩阵
Figure FDA0003039377590000022
θ>0表示逆时针旋转,θ<0表示顺时针旋转;arcdir表示圆弧旋转方向,arcdir为1表示逆时针,arcdir为-1表示顺时针;C1为所述圆弧路径的圆心。
4.如权利要求3所述的运动设备的运动控制方法,其特征在于,获取所述圆弧路径在所述第二过渡点处的切向量,以所述切向量构造直线与所述直线路径相交于第二点,并以所述第一过渡点和所述第二过渡点与所述第二点的距离相等为约束,确定所述第一过渡点的过程,包括:
根据预设切向单位向量求取关系式
Figure FDA0003039377590000023
求取所述圆弧路径在所述第二过渡点PT2处的切向单位向量
Figure FDA0003039377590000024
根据所述切向单位向量
Figure FDA0003039377590000025
及所述第二过渡点PT2的坐标求取所述切向单位向量所在直线的第一直线表达式;
根据所述直线路径的两端点坐标求取所述直线路径的第二直线表达式;
根据所述第一直线表达式和所述第二直线表达式求取两直线交点Pm的坐标;
根据预设直线过渡点求取关系式
Figure FDA0003039377590000026
求取所述第一过渡点PT1的坐标;其中,P0为所述直线路径的一端点。
5.如权利要求4所述的运动设备的运动控制方法,其特征在于,以所述过渡圆弧路径在目标路径上的过渡点处与所述目标路径相切为约束,确定所述过渡圆弧路径的圆心的过程,包括:
根据预设夹角求取关系式
Figure FDA0003039377590000027
求取所述切向单位向量
Figure FDA0003039377590000028
与所述直线路径的夹角θ;其中,
Figure FDA0003039377590000029
表示向量
Figure FDA00030393775900000210
与向量
Figure FDA00030393775900000211
的点乘;
根据预设半径求取关系式
Figure FDA0003039377590000031
求取所述过渡圆弧路径的半径r;
根据预设中点求取关系式
Figure FDA0003039377590000032
求取所述第一过渡点PT1和所述第二过渡点PT2连线的中点M的坐标;
根据预设长度求取关系式
Figure FDA0003039377590000033
求取直线PmC2的长度;其中,C2为所述过渡圆弧路径的圆心;
根据预设向量求取关系式
Figure FDA0003039377590000034
求取向量
Figure FDA0003039377590000035
并根据预设圆心求取关系式
Figure FDA0003039377590000036
求取圆心C2的坐标。
6.如权利要求1-5任一项所述的运动设备的运动控制方法,其特征在于,获取所述过渡圆弧路径的旋转方向的过程,包括:
判断s=x1y2-x2y1的s值是否大于0;其中,
Figure FDA0003039377590000037
Figure FDA0003039377590000038
为所述过渡圆弧路径在前方的过渡点处的方向向量;
Figure FDA0003039377590000039
为所述过渡圆弧路径在后方的过渡点处的方向向量;
若是,则确定所述过渡圆弧路径为逆时针圆弧;
若否,则确定所述过渡圆弧路径为顺时针圆弧。
7.一种运动设备的运动控制系统,其特征在于,包括:
过渡点确定模块,用于确定用于过渡直线路径和圆弧路径的过渡圆弧路径在所述直线路径上的第一过渡点,及其在所述圆弧路径上的第二过渡点;
圆心确定模块,用于以所述过渡圆弧路径在目标路径上的过渡点处与所述目标路径相切为约束,确定所述过渡圆弧路径的圆心;其中,所述目标路径为所述直线路径和所述圆弧路径;
方向确定模块,用于获取所述过渡圆弧路径的旋转方向;
运动控制模块,用于基于所述过渡圆弧路径对应的第一过渡点、第二过渡点、圆心及旋转方向,控制运动设备在所述直线路径和所述圆弧路径之间平滑过渡运行。
8.如权利要求7所述的运动设备的运动控制系统,其特征在于,所述过渡点确定模块具体用于:
以未添加过渡圆弧路径的所述圆弧路径和所述直线路径的衔接点为圆心、预设最大允许弓高误差为半径,作圆弧与所述圆弧路径相交于第一点,并将所述第一点作为所述第二过渡点;
获取所述圆弧路径在所述第二过渡点处的切向量,以所述切向量构造直线与所述直线路径相交于第二点,并以所述第一过渡点和所述第二过渡点与所述第二点的距离相等为约束,确定所述第一过渡点。
9.如权利要求7-8任一项所述的运动设备的运动控制系统,其特征在于,所述方向确定模块具体用于:
判断s=x1y2-x2y1的s值是否大于0;其中,
Figure FDA0003039377590000041
Figure FDA0003039377590000042
为所述过渡圆弧路径在前方的过渡点处的方向向量;
Figure FDA0003039377590000043
为所述过渡圆弧路径在后方的过渡点处的方向向量;
若是,则确定所述过渡圆弧路径为逆时针圆弧;
若否,则确定所述过渡圆弧路径为顺时针圆弧。
10.一种运动设备的运动控制装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于在执行所述计算机程序时实现如权利要求1-6任一项所述的运动设备的运动控制方法的步骤。
CN202110452632.1A 2021-04-26 2021-04-26 一种运动设备的运动控制方法、系统及装置 Active CN112947299B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110452632.1A CN112947299B (zh) 2021-04-26 2021-04-26 一种运动设备的运动控制方法、系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110452632.1A CN112947299B (zh) 2021-04-26 2021-04-26 一种运动设备的运动控制方法、系统及装置

Publications (2)

Publication Number Publication Date
CN112947299A true CN112947299A (zh) 2021-06-11
CN112947299B CN112947299B (zh) 2023-02-21

Family

ID=76233475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110452632.1A Active CN112947299B (zh) 2021-04-26 2021-04-26 一种运动设备的运动控制方法、系统及装置

Country Status (1)

Country Link
CN (1) CN112947299B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113741338A (zh) * 2021-09-10 2021-12-03 深圳市英威腾电气股份有限公司 一种运动设备的运行路径控制方法、系统及装置
CN114234968A (zh) * 2021-12-17 2022-03-25 江西洪都航空工业集团有限责任公司 一种基于a星算法的移动机器人自主导航方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6922606B1 (en) * 1999-11-19 2005-07-26 Siemens Energy & Automation, Inc. Apparatus and method for smooth cornering in a motion control system
CN104455309A (zh) * 2014-10-21 2015-03-25 南京航空航天大学 一种圆弧端齿的齿根过渡结构及其设计方法
CN104678894A (zh) * 2015-02-11 2015-06-03 北京配天技术有限公司 数控加工路径的规划方法、数控加工系统和方法
CN105500354A (zh) * 2016-02-02 2016-04-20 南京埃斯顿机器人工程有限公司 一种工业机器人应用的过渡轨迹规划方法
CN106227152A (zh) * 2016-10-17 2016-12-14 合肥工业大学 一种cnc加工的平滑过渡方法及其平滑过渡装置
CN109648560A (zh) * 2018-12-28 2019-04-19 深圳市越疆科技有限公司 工业机器人的空间轨迹过渡方法、系统及机器人
CN112276957A (zh) * 2020-11-05 2021-01-29 哈工大机器人(合肥)国际创新研究院 一种直线段和圆弧的平滑过渡方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6922606B1 (en) * 1999-11-19 2005-07-26 Siemens Energy & Automation, Inc. Apparatus and method for smooth cornering in a motion control system
CN104455309A (zh) * 2014-10-21 2015-03-25 南京航空航天大学 一种圆弧端齿的齿根过渡结构及其设计方法
CN104678894A (zh) * 2015-02-11 2015-06-03 北京配天技术有限公司 数控加工路径的规划方法、数控加工系统和方法
CN105500354A (zh) * 2016-02-02 2016-04-20 南京埃斯顿机器人工程有限公司 一种工业机器人应用的过渡轨迹规划方法
CN106227152A (zh) * 2016-10-17 2016-12-14 合肥工业大学 一种cnc加工的平滑过渡方法及其平滑过渡装置
CN109648560A (zh) * 2018-12-28 2019-04-19 深圳市越疆科技有限公司 工业机器人的空间轨迹过渡方法、系统及机器人
CN112276957A (zh) * 2020-11-05 2021-01-29 哈工大机器人(合肥)国际创新研究院 一种直线段和圆弧的平滑过渡方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113741338A (zh) * 2021-09-10 2021-12-03 深圳市英威腾电气股份有限公司 一种运动设备的运行路径控制方法、系统及装置
CN113741338B (zh) * 2021-09-10 2023-08-22 深圳市英威腾电气股份有限公司 一种运动设备的运行路径控制方法、系统及装置
CN114234968A (zh) * 2021-12-17 2022-03-25 江西洪都航空工业集团有限责任公司 一种基于a星算法的移动机器人自主导航方法
CN114234968B (zh) * 2021-12-17 2023-12-05 江西洪都航空工业集团有限责任公司 一种基于a星算法的移动机器人自主导航方法

Also Published As

Publication number Publication date
CN112947299B (zh) 2023-02-21

Similar Documents

Publication Publication Date Title
CN112947299B (zh) 一种运动设备的运动控制方法、系统及装置
JP6766186B2 (ja) ロボット関節空間におけるポイントツーポイント移動の軌跡計画方法
US4528632A (en) Industrial articulated robot linear interpolation control device
CN107980108B (zh) 机器人运动轨迹规划方法及相关装置
CN109648560B (zh) 工业机器人的空间轨迹过渡方法、系统及机器人
US6762778B1 (en) Three dimensional graphical manipulator
CN107615194B (zh) 加工轨迹平滑转接的方法及加工装置
JP2008287471A (ja) 5軸加工機の数値制御方法
US10627805B2 (en) Method, device, and terminal device for servo movement smoothing
CN105082156A (zh) 一种基于速度最优控制的空间轨迹平滑方法
CN111390902B (zh) 轨迹规划方法、轨迹规划装置、设备和存储介质
CN111796558A (zh) 多轴联动实时动态前瞻轨迹规划方法、装置及存储介质
CN111610751A (zh) 过点集nurbs插值曲线的插值误差多次细分迭代计算方法
JP2000082152A (ja) 軌跡制御方法及び軌跡制御方法を記録した記録媒体
WO2020093254A1 (zh) 机器人的运动控制方法、控制系统和存储装置
JP3204042B2 (ja) ロボットの軌道の生成装置
JP2648815B2 (ja) 軌跡補間制御装置
TWI688844B (zh) 用於控制機械設備的控制裝置與方法
WO2023019751A1 (zh) 基于数控加工系统的曲线拟合方法、电子设备和存储介质
CN113204892A (zh) 质心轨迹生成方法、装置、计算机可读存储介质及机器人
CN113741338B (zh) 一种运动设备的运行路径控制方法、系统及装置
JPH011008A (ja) 軌跡補間制御法
CN116985136A (zh) 基于四元数的机械臂节点姿态速度前瞻控制方法及装置
JPS6228872A (ja) 三角関数発生処理装置
CN114326769A (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