CN112720493A - 一种机械臂与障碍物的双层次碰撞检测算法 - Google Patents
一种机械臂与障碍物的双层次碰撞检测算法 Download PDFInfo
- Publication number
- CN112720493A CN112720493A CN202011589607.XA CN202011589607A CN112720493A CN 112720493 A CN112720493 A CN 112720493A CN 202011589607 A CN202011589607 A CN 202011589607A CN 112720493 A CN112720493 A CN 112720493A
- Authority
- CN
- China
- Prior art keywords
- obstacle
- mechanical arm
- obb
- collision
- model
- 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
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
-
- 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
- B25J9/1666—Avoiding collision or forbidden zones
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
Abstract
本发明属于机器人控制和碰撞检测领域,具体涉及一种机械臂与障碍物的双层次碰撞检测算法,包括下列步骤:通过选取物体上最远两点的距离作为直径来获得障碍物球体模型;根据障碍物自身的几何条件生成紧凑长方体包围盒OBB;计算最大运动轨迹的长度;计算qa、qb状态时机械臂与障碍物球体模型的直线距离;对机械臂与障碍物球体模型的碰撞情况进行初次判断;对机械臂与障碍物球体模型的碰撞情况进行二次判断。本发明检测过程中无需附加任何传感器,对机器人的结构无需任何修改,适用于机器人的任何运行工况,对工况没有任何限制,成本低,且程序简单,执行效率高。本发明用于机械臂与障碍物碰撞的检查。
Description
技术领域
本发明属于机器人控制和碰撞检测领域,具体涉及一种机械臂与障碍物的双层次碰撞检测算法。
背景技术
目前常用的检测方法有传感器法和几何体模型法。传感器法的检测效果易受环境影响,应用成本高。Lumelsky.V.J等提出在机械臂上布置感知皮肤来检测碰撞,这种方式虽然能够检测出所有碰撞,但检测过程复杂,需要处理的数据很多,检测速度过度依赖于处理器的性能。比较而言,几何体模型法主要思想是计算机械臂运动轨迹插补点位置与障碍物几何体模型位置的距离来判断是否碰撞,检测结果更可靠。陈友东等提出将机械臂的关节和连杆等效成球体和胶囊体,将碰撞问题转换为距离计算问题,一定程度上简化了检测过程。这种方法的弊端在于若选择检测的插补点间隔数目过大会损失检测精度,遗漏碰撞情况;若待检插补点间隔数目过少,会增加碰撞检测的时间,特别是当机械臂与障碍物距离较远时,这种方法的效率很低。因此,连续碰撞检测的概念受到广泛关注。F.Schwarzer等提出了一种自适应动态碰撞检测方法,通过估算运动轨迹的长度判断机械臂与障碍物的碰撞情况;金明杰等将其加入到运动规划过程,提高了路径规划过程的完备性。这种方法对障碍物的特定模型进行判断,能够检测出连续运动轨迹是否与障碍物发生碰撞,虽然速度更快,但检测精度有待提高。
发明内容
针对上述常用的检测方法检测过程复杂、效率低、检测精度低的技术问题,本发明提供了一种成本低、效率高、检测精度高的机械臂与障碍物的双层次碰撞检测算法。
为了解决上述技术问题,本发明采用的技术方案为:
一种机械臂与障碍物的双层次碰撞检测算法,包括下列步骤:
S1、通过选取物体上最远两点的距离作为直径来获得障碍物球体模型;
S2、根据障碍物自身的几何条件生成紧凑长方体包围盒OBB;
S3、计算最大运动轨迹λi(qq,qb)的长度;
S4、计算qa、qb状态时机械臂与障碍物球体模型的直线距离ηij(qa)、ηij(qb);
S5、对机械臂与障碍物球体模型的碰撞情况进行初次判断;
S6、对机械臂与障碍物球体模型的碰撞情况进行二次判断。
所述S2中生成紧凑长方体包围盒OBB的方法为:
包围盒OBB是一个任意方向的长方体,用一个中心点、一个三阶方向矩阵和三个1/2边长表示,所述三阶方向矩阵表示包围盒OBB三条轴的方向,通过计算包围盒OBB内的全部三角形顶点的协方差矩阵C以及矩阵C三个特征向量,得到OBB的三条轴的方向,
假设模型中包含n个三角形,第i个三角形的顶点分别用pi、qi、ri表示,则用下面公式得到这n个三角形的均值u:
然后由u得到协方差矩阵C:
通过上式得到的协方差矩阵C为一个3*3的对称矩阵,将协方差矩阵C的三个特征向量正规化之后得到的基即为包围盒OBB的三条轴的方向,最后计算包围盒OBB内的三角形的顶点在这三条轴上投影的最大值和最小值即可确定包围盒OBB的三条边长。
所述S3中计算最大运动轨迹λi(qq,qb)的长度的方法为:
当机械臂从qa状态运动到qb状态时,第i轴运动轨迹的最大长度为:
所述S4中计算qa、qb状态时机械臂与障碍物球体模型的直线距离ηij(qa)、ηij(qb)的方法为:
设qa、qb状态时的末端坐标分别为(xa,ya,za),(xb,yb,zb),障碍物球体模型的半径为R、球心坐标为(x0,y0,z0),则ηij(qa)、ηij(qb)的计算公式如下:
所述S5中对机械臂与障碍物球体模型的碰撞情况进行初次判断的方法为:
若λi(qa,qb)≥ηij(qa)+ηij(qb),判断:
若qa到qb中的轨迹插补点数目大于2,则选取qa与qb之间的中间点qmid,对(qa,qmid)、(qmid,qb)按上述步骤重复判断;若qa到qb中的轨迹插补点数目小于等于2,(qa,qb)之间可能与障碍物发生碰撞,进行二次判断;
若λi(qa,qb)<ηij(qa)+ηij(qb),则(qa,qb)轨迹不会与障碍物发生碰撞。
所述S6中对机械臂与障碍物球体模型的碰撞情况进行二次判断的方法为:
障碍物OBB模型的长度和宽度均为2d,障碍物OBB模型的高度为h,障碍物OBB模型上、下端面的中心点A、B的坐标分别为(xA,yA,zA),(xB,yB,zB),轨迹点M坐标为(x1,y1,z1),以世界坐标系中的X轴、Y轴、Z轴作为分离轴,将OBB模型与轨迹点分别向X轴、Y轴、Z轴投影,下式成立则判断轨迹点M与障碍物碰撞,否则该点不会与障碍物碰撞;
若待检轨迹段内任一轨迹点检测碰撞,得出机械臂会与障碍物碰撞的结论;否则该轨迹段不会与障碍物发生碰撞,当所有可疑轨迹段都判断为不碰撞情况时,得出最终结论:机械臂的规划轨迹不会与障碍物发生碰撞。
本发明与现有技术相比,具有的有益效果是:
本发明所提出的一种机器人关节与几何体碰撞检测方法,在检测过程中无需附加任何传感器,对机器人的结构无需任何修改,适用于机器人的任何运行工况,对工况没有任何限制,成本低,且程序简单,执行效率高。本发明的方法不仅可以应用于机器人关节末端连接的几何体与各关节间的碰撞检测,也可应用于机器人关节与外界环境空间中固定几何体的碰撞检测。
附图说明
图1为本发明的轨迹点与OBB投影示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要理解的是,术语“中心”、“上”、“下”、“前”、“后”、“左”、“右”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述发明和简化描述,而不是指示或暗示所指的组合或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
一种机械臂与障碍物的双层次碰撞检测算法,包括下列步骤:
步骤1、通过选取物体上最远两点的距离作为直径来获得障碍物球体模型。
步骤2、根据障碍物自身的几何条件生成紧凑长方体包围盒OBB。
包围盒OBB是一个任意方向的长方体,用一个中心点、一个三阶方向矩阵和三个1/2边长表示,三阶方向矩阵表示包围盒OBB三条轴的方向,通过计算包围盒OBB内的全部三角形顶点的协方差矩阵C以及矩阵C三个特征向量,得到OBB的三条轴的方向,
假设模型中包含n个三角形,第i个三角形的顶点分别用pi、qi、ri表示,则用下面公式得到这n个三角形的均值u,即模型的质心:
然后由u得到协方差矩阵C:
通过上式得到的协方差矩阵C为一个3*3的对称矩阵,将协方差矩阵C的三个特征向量正规化之后得到的基即为包围盒OBB的三条轴的方向,最后计算包围盒OBB内的三角形的顶点在这三条轴上投影的最大值和最小值即可确定OBB的三条边长。
步骤3、计算最大运动轨迹λi(qq,qb)的长度。
当机械臂从qa状态运动到qb状态时,第i轴运动轨迹的最大长度为:
步骤4、计算qa、qb状态时机械臂与障碍物球体模型的直线距离ηij(qa)、ηij(qb)。
设qa、qb状态时的末端坐标分别为(xa,ya,za),(xb,yb,zb),障碍物球体模型的半径为R、球心坐标为(x0,y0,z0),则ηij(qa)、ηij(qb)的计算公式如下:
步骤5、对机械臂与障碍物球体模型的碰撞情况进行初次判断。
若λi(qa,qb)≥ηij(qa)+ηij(qb),判断:
若qa到qb中的轨迹插补点数目大于2,则选取qa与qb之间的中间点qmid,对(qa,qmid)、(qmid,qb)按上述步骤重复判断;若qa到qb中的轨迹插补点数目小于等于2,(qa,qb)之间可能与障碍物发生碰撞,进行二次判断;
若λi(qa,qb)<ηij(qa)+ηij(qb),则(qa,qb)轨迹不会与障碍物发生碰撞。
步骤6、对机械臂与障碍物球体模型的碰撞情况进行二次判断。
障碍物OBB模型的长度和宽度均为2d,障碍物OBB模型的高度为h,障碍物OBB模型上、下端面的中心点A、B的坐标分别为(xA,yA,zA),(xB,yB,zB),轨迹点M坐标为(x1,y1,z1),以世界坐标系中的X轴、Y轴、Z轴作为分离轴,如图1所示,将OBB模型与轨迹点分别向X轴、Y轴、Z轴投影,下式成立则判断轨迹点M与障碍物碰撞,否则该点不会与障碍物碰撞;
若待检轨迹段内任一轨迹点检测碰撞,得出机械臂会与障碍物碰撞的结论;否则该轨迹段不会与障碍物发生碰撞,当所有可疑轨迹段都判断为不碰撞情况时,得出最终结论:机械臂的规划轨迹不会与障碍物发生碰撞。
上面仅对本发明的较佳实施例作了详细说明,但是本发明并不限于上述实施例,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化,各种变化均应包含在本发明的保护范围之内。
Claims (6)
1.一种机械臂与障碍物的双层次碰撞检测算法,其特征在于:包括下列步骤:
S1、通过选取物体上最远两点的距离作为直径来获得障碍物球体模型;
S2、根据障碍物自身的几何条件生成紧凑长方体包围盒OBB;
S3、计算最大运动轨迹λi(qq,qb)的长度;
S4、计算qa、qb状态时机械臂与障碍物球体模型的直线距离ηij(qa)、ηij(qb);
S5、对机械臂与障碍物球体模型的碰撞情况进行初次判断;
S6、对机械臂与障碍物球体模型的碰撞情况进行二次判断。
2.根据权利要求1所述的一种机械臂与障碍物的双层次碰撞检测算法,其特征在于:所述S2中生成紧凑长方体包围盒OBB的方法为:
包围盒OBB是一个任意方向的长方体,用一个中心点、一个三阶方向矩阵和三个1/2边长表示,所述三阶方向矩阵表示包围盒OBB三条轴的方向,通过计算包围盒OBB内的全部三角形顶点的协方差矩阵C以及矩阵C三个特征向量,得到OBB的三条轴的方向,
假设模型中包含n个三角形,第i个三角形的顶点矢量分别用pi、qi、ri表示,则用下面公式得到这n个三角形顶点的分布均值u,即模型的质心:
然后由u得到协方差矩阵C:
通过上式得到的协方差矩阵C为一个3*3的对称矩阵,将协方差矩阵C的三个特征向量正规化之后得到的基即为包围盒OBB的三条轴的方向,最后计算包围盒OBB内的三角形的顶点在这三条轴上投影的最大值和最小值即可确定包围盒OBB的三条边长。
5.根据权利要求1所述的一种机械臂与障碍物的双层次碰撞检测算法,其特征在于:所述S5中对机械臂与障碍物球体模型的碰撞情况进行初次判断的方法为:
若λi(qa,qb)≥ηij(qa)+ηij(qb),判断:
若qa到qb中的轨迹插补点数目大于2,则选取qa与qb之间的中间点qmid,对(qa,qmid)、(qmid,qb)按上述步骤重复判断;若qa到qb中的轨迹插补点数目小于等于2,(qa,qb)之间可能与障碍物发生碰撞,进行二次判断;
若λi(qa,qb)<ηij(qa)+ηij(qb),则(qa,qb)轨迹不会与障碍物发生碰撞。
6.根据权利要求1所述的一种机械臂与障碍物的双层次碰撞检测算法,其特征在于:所述S6中对机械臂与障碍物球体模型的碰撞情况进行二次判断的方法为:
障碍物OBB模型的长度和宽度均为2d,障碍物OBB模型的高度为h,障碍物OBB模型上、下端面的中心点A、B的坐标分别为(xA,yA,zA),(xB,yB,zB),轨迹点M坐标为(x1,y1,z1),以世界坐标系中的X轴、Y轴、Z轴作为分离轴,将OBB模型与轨迹点分别向X轴、Y轴、Z轴投影,下式成立则判断轨迹点M与障碍物碰撞,否则该点不会与障碍物碰撞;
若待检轨迹段内任一轨迹点检测碰撞,得出机械臂会与障碍物碰撞的结论;否则该轨迹段不会与障碍物发生碰撞,当所有可疑轨迹段都判断为不碰撞情况时,得出最终结论:机械臂的规划轨迹不会与障碍物发生碰撞。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011589607.XA CN112720493B (zh) | 2020-12-29 | 2020-12-29 | 一种机械臂与障碍物的双层次碰撞检测算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011589607.XA CN112720493B (zh) | 2020-12-29 | 2020-12-29 | 一种机械臂与障碍物的双层次碰撞检测算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112720493A true CN112720493A (zh) | 2021-04-30 |
CN112720493B CN112720493B (zh) | 2022-10-14 |
Family
ID=75607418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011589607.XA Active CN112720493B (zh) | 2020-12-29 | 2020-12-29 | 一种机械臂与障碍物的双层次碰撞检测算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112720493B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113878580A (zh) * | 2021-10-26 | 2022-01-04 | 南京智凝人工智能研究院有限公司 | 一种可碰撞检测机械臂采摘场景下的避障问题处理方法 |
CN113951761A (zh) * | 2021-10-20 | 2022-01-21 | 上海景吾智能科技有限公司 | 清洁空间矩形区域的机械臂运动规划方法及*** |
CN115179282A (zh) * | 2022-07-07 | 2022-10-14 | 珠海格力电器股份有限公司 | 机器人运动轨迹的确定方法、装置及机器人 |
WO2024124769A1 (zh) * | 2022-12-14 | 2024-06-20 | 中联重科股份有限公司 | 一种臂架防撞检测方法、电子设备及多臂架设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090312870A1 (en) * | 2008-06-11 | 2009-12-17 | Akinobu Okuda | Manipulator, manipulator collision detecting method and manipulator control method |
CN101844353A (zh) * | 2010-04-14 | 2010-09-29 | 华中科技大学 | 机械臂/灵巧手***遥操作任务规划和仿真方法 |
US20120269422A1 (en) * | 2011-04-21 | 2012-10-25 | Seiko Epson Corporation | Collision detection system, robotic system, collision detection method and program |
CN107953334A (zh) * | 2017-12-25 | 2018-04-24 | 深圳禾思众成科技有限公司 | 一种基于a星算法的工业机械臂无碰撞路径规划方法 |
US20180117480A1 (en) * | 2015-10-19 | 2018-05-03 | Tencent Technology (Shenzhen) Company Limited | Collision judgment system, method, apparatus, and device |
CN108638053A (zh) * | 2018-04-03 | 2018-10-12 | 珠海市微半导体有限公司 | 一种机器人打滑的检测方法及其矫正方法 |
CN109202912A (zh) * | 2018-11-15 | 2019-01-15 | 太原理工大学 | 一种基于单目深度传感器和机械臂配准目标轮廓点云的方法 |
CN110696000A (zh) * | 2019-11-21 | 2020-01-17 | 河北工业大学 | 一种机械臂试探感知的避障方法 |
US20200130623A1 (en) * | 2017-04-24 | 2020-04-30 | Blue Danube Robotics Gmbh | Detection of a collision of a handling device with an obstacle |
-
2020
- 2020-12-29 CN CN202011589607.XA patent/CN112720493B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090312870A1 (en) * | 2008-06-11 | 2009-12-17 | Akinobu Okuda | Manipulator, manipulator collision detecting method and manipulator control method |
CN101844353A (zh) * | 2010-04-14 | 2010-09-29 | 华中科技大学 | 机械臂/灵巧手***遥操作任务规划和仿真方法 |
US20120269422A1 (en) * | 2011-04-21 | 2012-10-25 | Seiko Epson Corporation | Collision detection system, robotic system, collision detection method and program |
US20180117480A1 (en) * | 2015-10-19 | 2018-05-03 | Tencent Technology (Shenzhen) Company Limited | Collision judgment system, method, apparatus, and device |
US20200130623A1 (en) * | 2017-04-24 | 2020-04-30 | Blue Danube Robotics Gmbh | Detection of a collision of a handling device with an obstacle |
CN107953334A (zh) * | 2017-12-25 | 2018-04-24 | 深圳禾思众成科技有限公司 | 一种基于a星算法的工业机械臂无碰撞路径规划方法 |
CN108638053A (zh) * | 2018-04-03 | 2018-10-12 | 珠海市微半导体有限公司 | 一种机器人打滑的检测方法及其矫正方法 |
CN109202912A (zh) * | 2018-11-15 | 2019-01-15 | 太原理工大学 | 一种基于单目深度传感器和机械臂配准目标轮廓点云的方法 |
CN110696000A (zh) * | 2019-11-21 | 2020-01-17 | 河北工业大学 | 一种机械臂试探感知的避障方法 |
Non-Patent Citations (2)
Title |
---|
高嘉材: "六轴协作机器人的运动控制***设计", 《六轴协作机器人的运动控制***设计》 * |
高嘉材: "机械臂与障碍物的双层次碰撞检测算法仿真", 《机械臂与障碍物的双层次碰撞检测算法仿真》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113951761A (zh) * | 2021-10-20 | 2022-01-21 | 上海景吾智能科技有限公司 | 清洁空间矩形区域的机械臂运动规划方法及*** |
CN113951761B (zh) * | 2021-10-20 | 2022-10-14 | 杭州景吾智能科技有限公司 | 清洁空间矩形区域的机械臂运动规划方法及*** |
CN113878580A (zh) * | 2021-10-26 | 2022-01-04 | 南京智凝人工智能研究院有限公司 | 一种可碰撞检测机械臂采摘场景下的避障问题处理方法 |
CN115179282A (zh) * | 2022-07-07 | 2022-10-14 | 珠海格力电器股份有限公司 | 机器人运动轨迹的确定方法、装置及机器人 |
WO2024124769A1 (zh) * | 2022-12-14 | 2024-06-20 | 中联重科股份有限公司 | 一种臂架防撞检测方法、电子设备及多臂架设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112720493B (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112720493B (zh) | 一种机械臂与障碍物的双层次碰撞检测算法 | |
CN108908331B (zh) | 超冗余柔性机器人的避障方法及***、计算机存储介质 | |
CN110116407B (zh) | 柔性机器人位姿测量方法及装置 | |
US20090254235A1 (en) | Object recognition system for autonomous mobile body | |
CN112549016A (zh) | 一种机械臂运动规划方法 | |
CN111251306B (zh) | 一种带有底盘误差的机械臂路径规划方法 | |
CN113442140B (zh) | 一种基于Bezier寻优的笛卡尔空间避障规划方法 | |
CN113246143A (zh) | 一种机械臂动态避障轨迹规划方法及装置 | |
CN113618742A (zh) | 一种机器人避障方法、装置和机器人 | |
CN111707274B (zh) | 能量最优的航天器连续动态避障轨迹规划方法 | |
Lee et al. | Fast perception, planning, and execution for a robotic butler: Wheeled humanoid m-hubo | |
CN111203916B (zh) | 一种机器人关节与几何体碰撞的检测方法 | |
CN115958590A (zh) | 一种基于rrt的机械臂深框避障运动规划方法及装置 | |
CN114299039B (zh) | 一种机器人及其碰撞检测装置和方法 | |
CN113232025B (zh) | 一种基于接近觉感知的机械臂避障方法 | |
CN114290332A (zh) | 一种应用于gis管道检测的串联机械臂路径规划方法及*** | |
CN113771035A (zh) | 基于rrt*算法的冗余多自由度机械臂避障路径优化方法 | |
US20200310435A1 (en) | Self-position estimation method | |
Das et al. | OperativeCriticalPointBug algorithm-local path planning of mobile robot avoiding obstacles | |
Guo et al. | Obstacle avoidance planning for quadrotor UAV based on improved adaptive artificial potential field | |
Li et al. | Efficient Loop Closure Detection Method for Lidar SLAM in Challenging Environment | |
CN114918923B (zh) | 一种近距人机协作环境下机械臂规避人体方法及*** | |
Ronnback et al. | Circle sector expansions for on-line exploration | |
CN113884042B (zh) | 面向电池包的三坐标测量自动规划方法 | |
TWI809899B (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 |