CN113703398A - 直线插补运动控制系统 - Google Patents

直线插补运动控制系统 Download PDF

Info

Publication number
CN113703398A
CN113703398A CN202110945510.6A CN202110945510A CN113703398A CN 113703398 A CN113703398 A CN 113703398A CN 202110945510 A CN202110945510 A CN 202110945510A CN 113703398 A CN113703398 A CN 113703398A
Authority
CN
China
Prior art keywords
module
motion control
layer
linear interpolation
motor
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
CN202110945510.6A
Other languages
English (en)
Other versions
CN113703398B (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.)
Gree Electric Appliances Inc of Zhuhai
Zhuhai Gree Intelligent Equipment Co Ltd
Original Assignee
Gree Electric Appliances Inc of Zhuhai
Zhuhai Gree Intelligent Equipment 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 Gree Electric Appliances Inc of Zhuhai, Zhuhai Gree Intelligent Equipment Co Ltd filed Critical Gree Electric Appliances Inc of Zhuhai
Priority to CN202110945510.6A priority Critical patent/CN113703398B/zh
Publication of CN113703398A publication Critical patent/CN113703398A/zh
Application granted granted Critical
Publication of CN113703398B publication Critical patent/CN113703398B/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/41Numerical 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
    • 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/34Director, elements to supervisory
    • G05B2219/34083Interpolation general
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Abstract

本申请提供了一种直线插补运动控制系统。包括:硬件设备,硬件设备包括多核ARM芯片;软件系统,包括操作系统层、驱动层和应用层,操作系统层为RT‑Linux系统,驱动层包括电机驱动模块,应用层包括直线插补运动控制模块。硬件设备采用多核ARM芯片,操作系统层采用RT‑Linux系统,结合多核ARM芯片与RT‑Linux系统,在驱动层设置电机驱动模块,应用层设置直线插补运动控制模块,在实现直线插补的情况下,保证了小型化的设计。同时,RT‑Linux系统,保证了应用程序与内核之间实时的数据交互,保证了多轴联通的同步性和准确性。

Description

直线插补运动控制系统
技术领域
本申请涉及运动控制领域,具体而言,涉及一种直线插补运动控制系统。
背景技术
运动控制作为现代化设备的核心控制部件,开放性、可靠性、小型化是衡量运动控制器是否在工业立足的关键。现有技术中的直线插补运动控制系统多采用工控机加运动控制卡,工控机加运动控制卡的直线插补运动控制系统体积较大,无法满足小型化的要求,且难以同时兼顾准确性、实时性和稳定性。
发明内容
本申请的主要目的在于提供一种直线插补运动控制系统,以解决现有技术中直线插补运动控制系统体积较大,无法满足小型化的要求的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种直线插补运动控制系统,包括:硬件设备,所述硬件设备包括多核ARM芯片;软件系统,包括操作系统层、驱动层和应用层,所述操作系统层为RT-Linux系统,所述驱动层包括电机驱动模块,所述应用层包括直线插补运动控制模块。
进一步地,所述多核ARM芯片中内置有ARM处理器和浮点DSP处理器。
进一步地,所述驱动层还包括定时器驱动模块,所述定时器驱动模块用于生成PWM脉冲。
进一步地,所述PWM脉冲的频率为兆级别。
进一步地,所述定时器驱动模块包括初始化子模块、周期和占空比设置子模块以及点位运动步数设置子模块。
进一步地,所述直线插补运动控制模块包括象限判断子模块和运动控制子模块,所述象限判断子模块用于判断X轴方向上的电机和Y轴方向上的电机的正反转,所述运动控制子模块用于确定所述X轴方向上的电机的行走步数和所述Y轴方向上的电机的行走步数。
进一步地,所述运动控制子模块采用的直线插补运动控制算法为Bresenham算法。
进一步地,所述驱动层还包括串口驱动模块、USB驱动模块、网络驱动模块和GPIO驱动模块。
进一步地,所述硬件设备还包括外围电路,所述外围电路与所述多核ARM芯片电连接。
进一步地,所述多核ARM芯片的主频为1.5GHz。
应用本申请的技术方案,硬件设备采用多核ARM芯片,操作系统层采用RT-Linux系统,结合多核ARM芯片与RT-Linux系统,在驱动层设置电机驱动模块,应用层设置直线插补运动控制模块,相对于现有技术中的“PC+运动控制卡”、“工控机+运动控制卡”以及“PLC+运动控制卡”的系统,体积较小。即在实现直线插补的情况下,保证了小型化的设计。同时,RT-Linux系统保证了应用程序与内核之间实时的数据交互,内核与硬件电路数据交互的实时性,保证了多轴联通的同步性和准确性。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了根据本申请的实施例的直线插补运动控制系统的软件系统示意图;
图2示出了根据本申请的实施例的使用定时器实现PWM脉冲的原理图;
图3示出了根据本申请的实施例的2Mhz频率脉冲输出结果图;
图4示出了根据本申请的实施例的直线插补象限判断实现流程图;
图5示出了根据本申请的实施例的直线插补算法实现流程图。
具体实施方式
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。
正如背景技术所介绍的,现有技术中直线插补运动控制系统体积较大,无法满足小型化的要求,为了解决如上直线插补运动控制系统体积较大,无法满足小型化的要求的问题,本申请的实施例提供了一种直线插补运动控制系统。
本申请的一种典型的实施例,提供了一种直线插补运动控制系统,如图1所示,包括:
硬件设备,上述硬件设备包括多核ARM芯片;
软件系统,包括操作系统层、驱动层和应用层,上述操作系统层为RT-Linux系统,上述驱动层包括电机驱动模块,上述应用层包括直线插补运动控制模块。
具体地,操作系统层、驱动层和应用层之间的关系是:操作系统层是系统运行的基础,驱动层是应用程序与内核之间的接口,沟通应用软件与操作系统的桥梁,应用层是所有应用程序的总成,实现某一个或几个专有的功能。
上述方案中,硬件设备采用多核ARM芯片,操作系统层采用RT-Linux系统,结合多核ARM芯片与RT-Linux系统,在驱动层设置电机驱动模块,应用层设置直线插补运动控制模块,相对于现有技术中的“PC+运动控制卡”、“工控机+运动控制卡”以及“PLC+运动控制卡”的系统,体积较小。即在实现直线插补的情况下,保证了小型化的设计。同时,RT-Linux系统保证了应用程序与内核之间实时的数据交互,内核与硬件电路数据交互的实时性,保证了多轴联通的同步性和准确性。
本申请的一种实施例中,上述多核ARM芯片中内置有ARM处理器和浮点DSP处理器。浮点DSP处理器主要负责处理插补运动算法中的浮点数等数据。ARM处理器可以选择ARMCortex-A15处理器,浮点DSP处理器可以选择DSP C66x。支持快速处理浮点数能力,提高算法运行效率。
本申请的一种实施例中,上述驱动层还包括定时器驱动模块,上述定时器驱动模块用于生成PWM脉冲。PWM脉冲用于驱动电机。输出供电机运动的PWM脉冲主要有三种方式实现,一种是GPIO口模拟PWM输出方法实现,一种是使用自带的硬件PWM输出,一种是使用计时器实现PWM脉冲输出。使用GPIO口方法模拟PWM实现方法简单,但是如果频率太高,经测试频率超过20KHZ,受系统的影响不能正常使用。使用自带的硬件PWM无法输出高精度高频率的PWM脉冲。采用计时器可以输出高精度高频率的PWM脉冲。
本申请的一种实施例中,上述PWM脉冲的频率为兆级别。高精度高频率的PWM脉冲可以保证电机运动的准确性,减少电机运动的误差。电机行走最小单位为一个脉冲周期,保证了电机运行精度。
本申请的一种实施例中,上述定时器驱动模块包括初始化子模块、周期和占空比设置子模块以及点位运动步数设置子模块。初始化子模块的功能为对定时器的相关参数进行初始化,周期和占空比设置子模块用于设置周期和占空比,点位运动步数设置子模块的功能是设置运动的步数。具体地,如果电机运行1mm对应输出100个PWM波形,也就是100步,这就是点位运动;电机运行时,若设置电机的运行速度为1000Hz,那么PWM的周期就是1/1000Hz,占空比一般指高电平占一个脉冲整个周期的比例,一般设置为50%,也就是(1/1000)/2。
本申请的一种实施例中,上述直线插补运动控制模块包括象限判断子模块和运动控制子模块,上述象限判断子模块用于判断X轴方向上的电机和Y轴方向上的电机的正反转,上述运动控制子模块用于确定上述X轴方向上的电机的行走步数和上述Y轴方向上的电机的行走步数。
本申请的一种实施例中,上述运动控制子模块采用的直线插补运动控制算法为Bresenham算法。采用Bresenham算法可以减少浮点数的运算,提高算法运行效率。脉冲增量式直线插补精度为1个脉冲,由于定时器(可选择型号为AM5728的定时器)能够输出兆级别的脉冲频率,所以保证了电机实际运行的精度。实现简单的多轴直线联动,保证了电机运行精度及稳定性。
本申请的一种实施例中,上述驱动层还包括串口驱动模块、USB驱动模块、网络驱动模块和GPIO驱动模块。
本申请的一种实施例中,上述硬件设备还包括外围电路,上述外围电路与上述多核ARM芯片电连接。外围电路是指芯片工作所需的外设电路,比如千兆网口电路、接口输入、输出电路等。
本申请的一种实施例中,上述多核ARM芯片的主频为1.5GHz。保证准确性和实时性。
本申请的一种实施例中,本系统支持人机交互界面设计,无需PC和工控机就可以实现人机交互界面设计。发挥嵌入式的小型化、专业化、人性化的优势。小型化ARM板卡支持人机交互界面,可以直接用于项目中使用,在某种程度上可代替PLC与工控机作用,节省设备空间,多核设备资源分配灵活。所以多核小型化ARM的实时Linux直线插补运动控制方法相比普通的插补算法,提高了测量精度与运行效率。
实施例
本实施例涉及一种直线插补运动控制方法,基于脉冲增量式的直线插补算法的应用主要是针对PWM方式输出的伺服电机使用。基于多核ARM的直线插补运动控制算法实现分为三个方面。第一个是在多核ARM上实现电机驱动程序的设计,另外一个是电机运动方向多象限判断设计,第三个是直线插补运动控制算法设计。
首先,基于多核ARM的直线插补运动控制算法的研究的稳定性基础保证是稳定准确输出一个PWM脉冲。使用定时器实现高精度的PWM脉冲主要是利用Linux系统内核提供的接口函数,实现流程图2所示。主要包括定时器初始化、定时器脉冲输出的周期与占空比配置、定时器点位运动准确行走步数设置函数、开启定时器后,定时器会按照配置周期值大小准确运行配置步数停止。采用定时器输出的频率为2Mhz频率的脉冲如图3所示。
直线插补运动控制算法是在RT-Linux应用程序中实现,使用的直线插补运动控制算法是基于Bresenham算法的升级算法。Bresenham算法是一种基于误差判别式来生成直线的方法。它采用递推步进的方法,令每次最大变化方向的坐标步进个脉冲,同时另外一个方向的坐标依据误差判别式的符号来决定是否也要步进一个脉冲。象限判断流程图与实现流程图如图4、图5所示。
根据客户传送过来的行走的线段值Xe,Ye(若当前坐标为(Xc,Yc),目标坐标Xt,Yt),则Xe=Xt-Xc;Ye=Yt-Yc)根据两者的位置坐标关系决定电机的正反转。如图4所示,当Xe>0,Ye>0,则第一象限,X轴正方向行走,Y轴正方向行走;当Xe>0,Ye<0时,第四象限,X轴正方向行走,Y负方向行走;当Xe<0;Ye>0时,为第二象限,X轴负方向行走,Y正方向行走;当Xe<0,Ye>0,X负方向行走,Y负方向行走。
如图5所示,根据直线插补运动位置坐标关系,判断要运动的两个轴要运动的位移关系,假设直线斜率为K,若X轴要走的位移量的绝对值abs(Xe)>abs(Ye),也就是斜率|K|<1,则L=abs(Xe)。X轴方向为主步进方向,反之,Y轴方向为主步进方向。当K=0,即线段平行于X轴,即程序值需要计算X方向的单位步进,Y方向值不变。同样的当|K|等于1,即线段的X方向的单位步进和Y方向的单位步进一样,皆为1,直接循环Xe计算X和Y坐标。然后在for循环中每次X轴都会行走一个脉冲数,Y轴会根据误差值e的大小判断是否要行走一个脉冲。当X与Y都直线插补指定步数运行结束后,退出for函数,直线插补运动控制算法结束。
使用Bresenham算法,不必计算直线的斜率,因此不用做除法计算;不用浮点数运算,只用到整数;算法速度很快。
插补运动控制算法是在应用程序中设计,可以根据项目需求与资源分配运行于多核ARM中的某一个核内,提高资源的灵活分配,提高效率与运动控制精度。而且我们使用的ARM开发板小型化,大约200*100mm,最多可驱动8个伺服电机一起动作。本方案可以用于所有插补运动过程中小线段直线行走算法;可用于小型化高精度直线插补运动控制设备。
从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:
本申请的直线插补运动控制系统,硬件设备采用多核ARM芯片,操作系统层采用RT-Linux系统,结合多核ARM芯片与RT-Linux系统,在驱动层设置电机驱动模块,应用层设置直线插补运动控制模块,相对于现有技术中的“PC+运动控制卡”、“工控机+运动控制卡”以及“PLC+运动控制卡”的系统,体积较小。即在实现直线插补的情况下,保证了小型化的设计。同时,RT-Linux系统保证了应用程序与内核之间实时的数据交互,内核与硬件电路数据交互的实时性,保证了多轴联通的同步性和准确性。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种直线插补运动控制系统,其特征在于,包括:
硬件设备,所述硬件设备包括多核ARM芯片;
软件系统,包括操作系统层、驱动层和应用层,所述操作系统层为RT-Linux系统,所述驱动层包括电机驱动模块,所述应用层包括直线插补运动控制模块。
2.根据权利要求1所述的系统,其特征在于,所述多核ARM芯片中内置有ARM处理器和浮点DSP处理器。
3.根据权利要求1所述的系统,其特征在于,所述驱动层还包括定时器驱动模块,所述定时器驱动模块用于生成PWM脉冲。
4.根据权利要求3所述的系统,其特征在于,所述PWM脉冲的频率为兆级别。
5.根据权利要求3所述的系统,其特征在于,所述定时器驱动模块包括初始化子模块、周期和占空比设置子模块以及点位运动步数设置子模块。
6.根据权利要求1所述的系统,其特征在于,所述直线插补运动控制模块包括象限判断子模块和运动控制子模块,所述象限判断子模块用于判断X轴方向上的电机和Y轴方向上的电机的正反转,所述运动控制子模块用于确定所述X轴方向上的电机的行走步数和所述Y轴方向上的电机的行走步数。
7.根据权利要求6所述的系统,其特征在于,所述运动控制子模块采用的直线插补运动控制算法为Bresenham算法。
8.根据权利要求1至7中任一项所述的系统,其特征在于,所述驱动层还包括串口驱动模块、USB驱动模块、网络驱动模块和GPIO驱动模块。
9.根据权利要求1至7中任一项所述的系统,其特征在于,所述硬件设备还包括外围电路,所述外围电路与所述多核ARM芯片电连接。
10.根据权利要求1至7中任一项所述的系统,其特征在于,所述多核ARM芯片的主频为1.5GHz。
CN202110945510.6A 2021-08-17 2021-08-17 直线插补运动控制系统 Active CN113703398B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110945510.6A CN113703398B (zh) 2021-08-17 2021-08-17 直线插补运动控制系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110945510.6A CN113703398B (zh) 2021-08-17 2021-08-17 直线插补运动控制系统

Publications (2)

Publication Number Publication Date
CN113703398A true CN113703398A (zh) 2021-11-26
CN113703398B CN113703398B (zh) 2023-07-14

Family

ID=78653182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110945510.6A Active CN113703398B (zh) 2021-08-17 2021-08-17 直线插补运动控制系统

Country Status (1)

Country Link
CN (1) CN113703398B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116909212A (zh) * 2023-09-13 2023-10-20 黑龙江惠达科技股份有限公司 一种平面步进双轴系统插补方法、系统、控制装置和控制方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109728754A (zh) * 2018-12-25 2019-05-07 中国科学院合肥物质科学研究院 一种嵌入式双核电机控制系统及其工作方法
CN110943654A (zh) * 2019-12-13 2020-03-31 苏州智感电子科技有限公司 步进电机驱动芯片的驱动方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109728754A (zh) * 2018-12-25 2019-05-07 中国科学院合肥物质科学研究院 一种嵌入式双核电机控制系统及其工作方法
CN110943654A (zh) * 2019-12-13 2020-03-31 苏州智感电子科技有限公司 步进电机驱动芯片的驱动方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
屠晓明,刘雄伟: "直线Bresenham生成算法的三维推广" *
梁烽杨;汪地;: "Marlin固件中Bresenham算法的优化研究及应用" *
王宝仁;李金松;吕国娜;董洁;: "基于Bresenham算法的快速直线脉冲增量插补算法" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116909212A (zh) * 2023-09-13 2023-10-20 黑龙江惠达科技股份有限公司 一种平面步进双轴系统插补方法、系统、控制装置和控制方法
CN116909212B (zh) * 2023-09-13 2023-12-08 黑龙江惠达科技股份有限公司 一种平面步进双轴系统插补方法、系统、控制装置和控制方法

Also Published As

Publication number Publication date
CN113703398B (zh) 2023-07-14

Similar Documents

Publication Publication Date Title
US7194321B2 (en) Modular multi-axis motion control and driving system and method thereof
CN113703398B (zh) 直线插补运动控制系统
CN108415331A (zh) Ai深度学习板卡及其电源供电方法
CN201689302U (zh) 一种一体化智能伺服驱动器
EP3893112A2 (en) Method and apparatus for scheduling deep learning reasoning engines, device, and medium
JP2005168282A (ja) ハードウェアによる設定可能な動作制御装置および方法
Ajay et al. 3DGates: An instruction-level energy analysis and optimization of 3D printers
CN108924337A (zh) 一种唤醒性能的控制方法和装置
CN112207829A (zh) 机器人的控制方法及装置、可读存储介质
CN109739179A (zh) 插补控制方法及装置、计算机设备及可读存储介质
KR20180076631A (ko) 반도체 장치의 성능 부스팅 방법 및 시스템
CN103135728B (zh) 电源开机控制方法及其系统
CN201945835U (zh) 用于纸箱打样机的嵌入式控制系统
CN111643189A (zh) 基于力反馈技术的手术机器人主从控制实验系统及方法
US20120017100A1 (en) Power System Optimization and Verification for Embedded System Design
CN103364025A (zh) 一种移动终端旋转检测方法及系统
Wu et al. Design and realization of short range defence radar target tracking system based on DSP/FPGA
CN112180808B (zh) 一种伺服控制方法、装置、系统、计算机设备和存储介质
CN1262909C (zh) 触控面板的坐标预估与估测滤波方法
KR100520779B1 (ko) Fpga를 이용한 다 축 위치 제어장치
CN108319203B (zh) 一种用于嵌入式控制系统的控制器及其控制方法
Chen et al. Implementation of 2-axis Circular Interpolation for a FPGA-based 4-axis Motion Controller
CN102681647A (zh) 用于匹配工业自动化部件的微处理器的时钟频率的方法,和相应的自动化部件
CN108873790A (zh) 基于fpga的sopc多轴联动运动控制器及控制系统
Ho et al. PC-based real-time motion controller design using the FPGA chip

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