一种用双圆弧近似NURBS曲线的机器人运动方法和装置制造方法及图纸

技术编号:27361505 阅读:30 留言:0更新日期:2021-02-19 13:43
本发明专利技术涉及一种用双圆弧近似NURBS曲线的机器人运动方法和装置。该方法将NURBS曲线分解成等价的若干段Bezier曲线;对每一段Bezier曲线用双圆弧近似,得到双圆弧近似的NURBS曲线;使机器人工具按照双圆弧近似的NURBS曲线运动。本发明专利技术能够以让机械臂用自身具备的直线或者圆弧运动方式去近似工件对象上的任意三维NURBS曲线,并且可以指定近似程度,保证近似曲线和原始曲线之间的距离不超过要求的距离,并且本方法具备简洁,快速,精确的特点。精确的特点。精确的特点。

【技术实现步骤摘要】
一种用双圆弧近似NURBS曲线的机器人运动方法和装置


[0001]本专利技术属于工业机器人
,具体涉及一种用双圆弧近似NURBS曲线的机器人运动方法和装置。

技术介绍

[0002]在使用仿真环境对工业机器人编程时,我们通常会导入工件的CAD模型来生成机器人的路径指令。自动路径生成是指通过软件对CAD模型的边自动生成机器人运动指令,让机器人沿着这些边运动,完成应用需求,如焊接。
[0003]在CAD模型中,NURBS曲线是一种通用的数学曲线,它由控制点、节点等要素组成,具有精确的数学描述方法。关于NURBS曲线的详细描述参考“Les Piegl,Wayne Tiller,The NURBS Book,Springer,1997.”[0004]工业机械臂所操作的工件对象,例如汽车外壳,往往是由CAD软件设计出来的NURBS曲面或者曲线。当机械臂在执行任务(如喷涂,打磨)时,需要沿着这些NURBS曲线移动,如果偏离太远,则会影响执行任务的效果。然而在工业机器人支持的指令中,一般只有直线运动指令MoveL和圆弧运动指令MoveC二种。所以我们必须要用直线或者圆弧来近似NURBS曲线,让机器人工具在NURBS曲线附近一定范围内(如5毫米)运动,完成需求。

技术实现思路

[0005]本专利技术提供一种用双圆弧曲线近似NURBS曲线的机器人运动方法和装置。双圆弧曲线是2条相连接的圆弧曲线,在连接处2条圆弧的切线平行,以保证光滑的过渡。
[0006]本专利技术采用的技术方案如下:
[0007]一种用双圆弧曲线近似NURBS曲线的机器人运动方法,包括以下步骤:
[0008]将NURBS曲线分解成等价的若干段Bezier曲线;
[0009]对每一段Bezier曲线用双圆弧近似,得到双圆弧近似的NURBS曲线;
[0010]使机器人工具按照双圆弧近似的NURBS曲线运动。
[0011]进一步地,所述将NURBS曲线分解成等价的若干段Bezier曲线,包括:
[0012]将NURBS曲线的每个内部节点的重数增加到曲线的次数,每两个原NURBS曲线节点之间的部分形成一条等价的Bezier曲线。
[0013]进一步地,所述对每一段Bezier曲线用双圆弧近似,包括:
[0014]设置一个容忍值tol,规定生成的双圆弧曲线离开原始NURBS曲线的最大距离不超过tol。
[0015]进一步地,所述对每一段Bezier曲线用双圆弧近似,还包括:
[0016]判断Bezier曲线的所有内部控制点离开由两端控制点形成的直线的距离是否超过容忍距离tol;如果超过,则执行splitBezier函数,将Bezier曲线分成相等的2条子Bezier曲线,并加入栈中;如果没超过,则构造2条相连接的圆弧来近似Bezier曲线,2条圆弧相连接的位置上的切线是平行的,双圆弧的起点和终点分别是Bezier曲线的起点和终
点,双圆弧的圆弧相接点是起点和终点连线的中点;
[0017]如果计算出的双圆弧与Bezier曲线控制点的距离小于容忍值tol,则返回true,将生成的双圆弧记录下来;否则返回false,继续把Bezier曲线分成2条子Bezier曲线,并加入栈中。
[0018]一种用双圆弧曲线近似NURBS曲线的机器人运动装置,其包括:
[0019]分解模块,用于将NURBS曲线分解成等价的若干段Bezier曲线;
[0020]近似模块,用于对每一段Bezier曲线用双圆弧近似,得到双圆弧近似的NURBS曲线;
[0021]运动模块,用于使机器人工具按照双圆弧近似的NURBS曲线运动。
[0022]进一步地,所述分解模块将NURBS曲线的每个内部节点的重数增加到曲线的次数,每两个原NURBS曲线节点之间的部分形成一条等价的Bezier曲线。
[0023]进一步地,所述近似模块设置一个容忍值tol,规定生成的双圆弧曲线离开原始NURBS曲线的最大距离不超过tol。
[0024]进一步地,所述近似模块执行以下操作实现对每一段Bezier曲线用双圆弧近似:
[0025]判断Bezier曲线的所有内部控制点离开由两端控制点形成的直线的距离是否超过容忍距离tol;如果超过,则执行splitBezier函数,将Bezier曲线分成相等的2条子Bezier曲线,并加入栈中;如果没超过,则构造2条相连接的圆弧来近似Bezier曲线,2条圆弧相连接的位置上的切线是平行的,双圆弧的起点和终点分别是Bezier曲线的起点和终点,双圆弧的圆弧相接点是起点和终点连线的中点;
[0026]如果计算出的双圆弧与Bezier曲线控制点的距离小于容忍值tol,则返回true,将生成的双圆弧记录下来;否则返回false,继续把Bezier曲线分成2条子Bezier曲线,并加入栈中。
[0027]本专利技术的有益效果如下:
[0028]本专利技术提供的方法可以让机械臂用自身具备的直线或者圆弧运动方式去近似工件对象上的任意三维NURBS曲线,并且可以指定近似程度,保证近似曲线和原始曲线之间的距离不超过要求的距离。并且本方法具备简洁,快速,精确的特点。现有方法有的只能处理平面情况,有的极为复杂,有的无法保证近似的精度。
附图说明
[0029]图1是本专利技术方法的步骤流程图。
具体实施方式
[0030]为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本专利技术做进一步详细说明。
[0031]本专利技术的一种用双圆弧曲线近似NURBS曲线的机器人运动方法,首先用双圆弧近似NURBS曲线,然后让机器人工具在NURBS曲线附近一定范围内(如5毫米)运动,以满足实际使用需求。图1是本专利技术方法的步骤流程图。
[0032]用双圆弧近似NURBS曲线的方案总体分成2步。第一步,将NURBS曲线分解成等价的若干段Bezier曲线。第二步,对每一段Bezier曲线,用双圆弧近似。
[0033]1.NURBS曲线分解成Bezier曲线
[0034]NURBS曲线包含以下5个要素:
[0035]控制点:NURBS曲线的控制点大致规定了曲线的形状,曲线整体位于控制点形成的凸多边形中。
[0036]控制点的权重:控制点的权重规定了该控制点对曲线形状的影响能力,权重越大,曲线越向该控制点的方向拉伸。
[0037]曲线的次数:表示曲线的数学多项式的次数。
[0038]节点:节点规定了曲线的每个基函数所占用的自变量的取值范围。
[0039]节点的重数:节点重数也影响到曲线基函数的占用的自变量的取值范围,并影响曲线分段的形状。
[0040]将NURBS曲线分解成等价的Bezier曲线的步骤是:将NURBS曲线的每个内部节点的重数增加到曲线的次数。这样,每2个原NURBS曲线节点之间的部分就形成一条等价的Bezier曲线。
[0041]例如,假设本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用双圆弧曲线近似NURBS曲线的机器人运动方法,其特征在于,包括以下步骤:将NURBS曲线分解成等价的若干段Bezier曲线;对每一段Bezier曲线用双圆弧近似,得到双圆弧近似的NURBS曲线;使机器人工具按照双圆弧近似的NURBS曲线运动。2.根据权利要求1所述的方法,其特征在于,所述将NURBS曲线分解成等价的若干段Bezier曲线,包括:将NURBS曲线的每个内部节点的重数增加到曲线的次数,每两个原NURBS曲线节点之间的部分形成一条等价的Bezier曲线。3.根据权利要求1所述的方法,其特征在于,所述对每一段Bezier曲线用双圆弧近似,包括:设置一个容忍值tol,规定生成的双圆弧曲线离开原始NURBS曲线的最大距离不超过tol。4.根据权利要求3所述的方法,其特征在于,所述对每一段Bezier曲线用双圆弧近似,还包括:判断Bezier曲线的所有内部控制点离开由两端控制点形成的直线的距离是否超过容忍距离tol;如果超过,则执行splitBezier函数,将Bezier曲线分成相等的2条子Bezier曲线,并加入栈中;如果没超过,则构造2条相连接的圆弧来近似Bezier曲线,2条圆弧相连接的位置上的切线是平行的,双圆弧的起点和终点分别是Bezier曲线的起点和终点,双圆弧的圆弧相接点是起点和终点连线的中点;如果计算出的双圆弧与Bezier曲线控制点的距离小于容忍值tol,则返回true,将生成的双圆弧记录下来;否则返回false,继续把Bezier曲线分成2条子Bezier曲线,并加入栈中。5.一种用双圆弧曲线近似NURBS曲线的机器人运动装置,其特征在于,包括:分解模块,用于将NURBS曲线分解成等价的若干段Bezier曲线;近似模块,用于对每一段Be...

【专利技术属性】
技术研发人员:许中兴武延军
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1