一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种工件表面轮廓自适应离散方法

2022-05-18 06:15:53 来源:中国专利 TAG:


1.本发明属于工业机器人离线编程技术领域,具体为一种工件表面轮廓自适应离散方法。


背景技术:

2.装备制造业的发展是我国重工业的核心,汽车制造领域是我国装备制造业的重要组成部分。近几年来,我国在汽车领域发展迅速,消费者越来越看重汽车的安全性,舒适性。这就对汽车零配件的装配提出了很高的要求。部分汽车零配件的装配采取焊接和涂胶的方式,目前零配件的焊接和涂胶有人工方式和机器人方式两种。但是由于恶劣的工作环境以及高强度的劳动方式,越来越多的汽车生产厂商采取机器人焊接和涂胶的方式。为了提高零配件的装配精度,需要对焊接和涂胶机器人进行路径规划。路径规划的方式有人工示教法和离线编程法。人工示教法需要机器人操作人员在机器人工作空间中进行大量的实验,记录下机器人不同工作位置的路径点的坐标,速度等信息。
3.但是焊接和涂胶环境都是充满了有害气体并且有一定的危险性,操作人员的健康得不到保证。同时考虑到人工示教需要在机器人停止工作的情况下进行,不利于装配效率的提高。因此,离线编程方法的优点越来越突出。

技术实现要素:

4.本发明的目的在于:为了解决上述提出的问题,提供一种工件表面轮廓自适应离散方法。
5.本发明采用的技术方案如下:一种工件表面轮廓自适应离散方法,所述工件表面轮廓自适应离散方法包括以下步骤:
6.s1:先进行模型的读取,首先定义读取文件的格式为stlcontrol_reader;然后使用readfile()方法加载文件,文件读取成功返回true,否则返回false;接着转换cad模型中的所有实体,转换为拓扑形状,模型数据储存到topods_shape类,数据储存到定义的拓扑类型的哈希表中;最后将topods_shape类型的对象转换为可交互操作的ais_shape类型的对象;
7.s2:再进行曲面的选取,利用opencascade可视化模块中的ais_interactivecontext类实现曲面的选取;首先通过ais_interactivecontext::activatestandardmode确定拾取的类型为topabs_face类型;然后通过ais_interactivecontext::setselected将选择的曲面加入到队列中,通过ais_interactivecontext::hightselected对拾取的面进行高亮显示,建立topods_shape类型的vector容器,通过ais_interactivecontext::selectedshape从队列中取出拾取的面储存到vector容器中;
8.s3:之后进行环的选取,利用opencascade的建模数据模块中的topexp类实现对环的选取;首先从topods_shape的vdector数组中取出选取的曲面m_selshape,然后对topexp::mapshape进行初始化,设定遍历操作的对象为m_selshape,遍历的类型为topabs_wire,遍历所得的所有环储存到toptools_indexedmapofshape图中;利用opencascade的建
模算法模块中的brepgprop::linearproperties计算遍历所得环的弧长,比较每一段弧长的大小,取得弧长最大环max_wire;
9.s4:进行轮廓线的分段
10.首先对topexp::mapshape进行初始化,设定遍历的操作对象为max_wire,遍历的类型为topabs_edge,遍历所得的所有边储存到toptools_indexedmapofshape图中;根据直线,圆弧,b样条曲线对遍历所得的所有边进行分类;首先确定所有边中的直线,空间中直线的表达式为:
11.p=p(u)=[x(u),y(u),z(u)],u∈[u0,un];
[0012]
s5:通过brepadaptor_curve获取直线的参数域,按照u0,(u0 un)/2,un对参数域进行划分,分别计算直线在u0,(u0 un)/2,un处的切向量;分别比较三处切向量的模长与向量角是否相等;如果三处的模长,向量角均相等,则获取的这条边为直线,计算直线在u0,un处的x,y,z值;否则进入下一个判断语句,判断其是否为圆弧;空间中圆弧的表达式为:
[0013]
c=c(u)=[x(u),y(u),z(u)],u∈[u0,un];
[0014]
s6:同样通过brepadaptor_curve获取曲线的参数域,随机选取参数域中的参数值u0,u1,

,u5,计算x(u0),y(u0),z(u0)

x(un),y(un),z(un)等坐标值;通过这种方法我们随机获得了圆弧上六组坐标点的值;六组坐标点分别为:
[0015]
p0(x0,y0,z0),p1(x1,y1,z1),p2(x2,y2,z2),

,p5(x5,y5,z5);取前三组坐标构成一段圆弧,后三组坐标构成一段圆弧,分别计算得到圆弧的圆心d0,d1,半径r0,r1;设定圆心的偏离误差qc=0.01,半径容许误差qr=0.001;比较圆心d1相对于d0的偏离是否在偏离误差内,比较r1相对于r0的误差是否在容许误差内;
[0016]
s7:进行b样条曲线的离散,所述b样条曲线的离散为自适应的b样条曲线离散算法,采样点合理地分布在曲率变化不大和曲率变化较大的区域,满足轮廓的变化特征;
[0017]
首先通过brepadaptor_curve获取曲线的参数域,对曲线的参数域进行等参划分,根据等参划分所得的参数值计算b样条曲线上型值点的值;根据计算所得型值点的值反求b样条曲线的控制点pi以及样条基函数n
i,k
(t);通过积分法计算b样条曲线的弧长l;
[0018][0019]
s8:接着根据弧长的步长以及曲线的弧长l确定离散点的节点矢量t,进而确定离散点的位置;若要想求得节点矢量t,首先要确定节点t所在的节点区间,假定t为第n个离散点,第n-1个离散点对应的节点区间为[t
m-1
,tm),n个离散点,n个离散点到起点的弧长为ln=n*s,
[0020]
b样条曲线在[0,tm]上的弧长为如果则离散点t可能在节点区间[tm,t
m 1
)上;计算b样条曲线在[0,t
m 1
)上的弧长如果则离散点t在节点区间(tm,t
m 1
)上;
[0021]
s9:接着遍历等弧长离散所得离散点,所有离散点储存到gp_pnt类型的容器中,从容器中依次取出两点对b样条曲线进行分段,假设有n个离散点,则b样条曲线被分为(n-1)段,分别取(n-1)段曲线的首端点p1,中点p3,末端点p2;
[0022]
s10:最后依次取出分段曲线l1,l2...l
n-1
,首先将曲线l1以及曲线的两端点压入栈中,然后记录曲线的两端点,接着判断栈是否为空,若为空输出采样点pi,不为空计算当前曲线的中点,角度偏差θ和曲率偏差α,若θ>θb,α<αb,取曲线的中点,将曲线分成两段,继续压入栈中,若θ>θb,α<αb,判断栈是否为空。
[0023]
在一优选的实施方式中,所述步骤s6中,如果满足条件,此段边界为圆弧,计算圆弧在u0,(u0 un)/2,un处的x,y,z值;空间圆弧在笛卡尔坐标系下三点表示法可以写成
[0024]
(x-x0)2 (y-y0)2 (z-z0)2=r2[0025]
(x-x1)2 (y-y1)2 (z-z1)2=r2[0026]
(x-x2)2 (y-y2)2 (z-z2)2=r2[0027]
又因为三点在同一圆弧上,满足三点共面方程
[0028][0029]
联立上述两个方程可以分别求得圆心d0,d1以及半径r0,r1。
[0030]
在一优选的实施方式中,所述步骤s6中,如果既不满足直线的判断条件又不满足圆弧的判断条件,则所获取的边界为b样条曲线。
[0031]
在一优选的实施方式中,所述步骤s7中,b样条曲线可以表示为
[0032][0033]
然后输入弧长的步长s,角度偏差θb,曲率偏差αb。
[0034]
在一优选的实施方式中,所述步骤s8中,节点矢量t可有公式:
[0035]
求得;
[0036]
如果则继续迭代。
[0037]
在一优选的实施方式中,所述步骤s9中,假设p1,p2对应的参数值分别为u1,u2,则p3对应的参数值为(u1 ,u2)/2;曲率表示的是曲线的弯曲程度,角度偏差θ,曲率偏差α越大,曲线弯曲程度越大;所以通过角度偏差θ,曲率偏差α来近似反应曲率的变化;角度偏差θ为向量p1p3与向量p3p2的夹角,曲率偏差α为向量p1p2与向量p1p3的夹角和向量p1p2模长的乘积。
[0038]
在一优选的实施方式中,所述步骤s10中,若为空输出采样点pi;依次对曲线l1,l2...l
n-1
执行上述操作,直到输出所有采样点。
[0039]
综上所述,由于采用了上述技术方案,本发明的有益效果是:
[0040]
本发明中,通过拾取待处理表面,对表面进行遍历所有环,得到弧长最大环。对轮廓进行遍历,得到不同特征的边界,通过对不同特征的边界进行处理,实现了路径点的快速与准确获取。并且通过对b样条曲线的离散,使得机器人运动轨迹更加贴合工件边界。提高了焊接和涂胶检测的精度。
附图说明
[0041]
图1为本发明中工件模型图;
[0042]
图2为本发明中待处理面模型图;
[0043]
图3为本发明中轮廓拾取结果图;
[0044]
图4为本发明中直线拾取结果图;
[0045]
图5为本发明中圆弧拾取结果图;
[0046]
图6为本发明中等弧长离散结果图;
[0047]
图7为本发明中b样条曲线自适应曲率离散结果图;
[0048]
图8为本发明的流程图。
具体实施方式
[0049]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0050]
参照图1-8,
[0051]
实施例:
[0052]
首先定义读取文件的格式为stlcontrol_reader;然后使用readfile()方法加载文件,文件读取成功返回true,否则返回false;接着转换cad模型中的所有实体,转换为拓扑形状,模型数据储存到topods_shape类,数据储存到定义的拓扑类型的哈希表中;最后将topods_shape类型的对象转换为可交互操作的ais_shape类型的对象。读入的工件模型如图1;
[0053]
利用opencascade可视化模块中的ais_interactivecontext类实现曲面的选取。首先通过ais_interactivecontext::activatestandardmode确定拾取的类型为topabs_face类型。然后通过ais_interactivecontext::setselected将选择的曲面加入到队列中,通过ais_interactivecontext::hightselected对拾取的面进行高亮显示,建立topods_shape类型的vector容器,通过ais_interactivecontext::selectedshape从队列中取出拾取的面储存到vector容器中。选取的曲面如图2;
[0054]
利用opencascade的建模数据模块中的topexp类实现对环的选取。首先从topods_shape的vdector数组中取出选取的曲面m_selshape,然后对topexp::mapshape进行初始化,设定遍历操作的对象为m_selshape,遍历的类型为topabs_wire,遍历所得的所有环储存到toptools_indexedmapofshape图中。利用opencascade的建模算法模块中的brepgprop::linearproperties计算遍历所得环的弧长,比较每一段弧长的大小,取得弧长最大环max_wire。总共拾取到了11个闭合环;
[0055]
首先对topexp::mapshape进行初始化,设定遍历的操作对象为max_wire,遍历的类型为topabs_edge,遍历所得的所有边储存到toptools_indexedmapofshape图中。轮廓中总共拾取到11个边界。拾取到的边界如图3所示:
[0056]
首先确定所有边中的直线,空间中直线的表达式为
[0057]
p=p(u)=[x(u),y(u),z(u)],u∈[u0,un];
[0058]
通过brepadaptor_curve获取直线的参数域,按照u0,(u0 un)/2,un对参数域进行
划分,分别计算直线在u0,(u0 un)/2,un处的切向量。分别比较三处切向量的模长与向量角是否相等。如果三处的模长,向量角均相等,则获取的这条边为直线,计算直线在u0,un处的x,y,z值。总共拾取到7条直线。分别计算7条直线的首末端点值,并表示在模型图中,如图4所示;
[0059]
否则进入下一个判断语句,判断其是否为圆弧。空间中圆弧的表达式为
[0060]
c=c(u)=[x(u),y(u),z(u)],u∈[u0,un];
[0061]
同样通过brepadaptor_curve获取曲线的参数域,随机选取参数域中的参数值u0,u1,

,u5,计算x(u0),y(u0),z(u0)

x(un),y(un),z(un)等坐标值。通过这种方法我们随机获得了圆弧上六组坐标点的值。六组坐标点分别为p0(x0,y0,z0),p1(x1,y1,z1),p2(x2,y2,z2),

,p5(x5,y5,z5)。取前三组坐标构成一段圆弧,后三组坐标构成一段圆弧,分别计算得到圆弧的圆心d0,d1,半径r0,r1。设定圆心的偏离误差qc=0.01,半径容许误差qr=0.001。比较圆心d1相对于d0的偏离是否在偏离误差内,比较r1相对于r0的误差是否在容许误差内。如果满足条件,此段边界为圆弧,总共拾取到3段圆弧,计算圆弧在u0,(u0 un)/2,un处的x,y,z值,并表示在模型中。空间圆弧在笛卡尔坐标系下三点表示法可以写成
[0062]
(x-x0)2 (y-y0)2 (z-z0)2=r2[0063]
(x-x1)2 (y-y1)2 (z-z1)2=r2[0064]
(x-x2)2 (y-y2)2 (z-z2)2=r2;
[0065]
又因为三点在同一圆弧上,满足三点共面方程
[0066][0067]
联立上述两个方程可以分别求得圆心d0,d1以及半径r0,r1。圆弧拾取结果如图5所示:
[0068]
所述b样条曲线的离散为自适应的b样条曲线离散算法,采样点合理地分布在曲率变化不大和曲率变化较大的区域,满足轮廓的变化特征。
[0069]
首先通过brepadaptor_curve获取曲线的参数域,对曲线的参数域进行等参划分,根据等参划分所得的参数值计算b样条曲线上型值点的值。根据计算所得型值点的值反求b样条曲线的控制点pi以及样条基函数n
i,k
(t)。b样条曲线可以表示为:
[0070][0071]
然后输入弧长的步长s,角度偏差θb,曲率偏差αb。
[0072]
接着通过积分法计算b样条曲线的弧长l。
[0073][0074]
接着根据弧长的步长以及曲线的弧长l确定离散点的节点矢量t,进而确定离散点的位置。若要想求得节点矢量t,首先要确定节点t所在的节点区间,假定t为第n个离散点,第n-1个离散点对应的节点区间为[t
m-1
,tm),n个离散点,n个离散点到起点的弧长为ln=n*
s,
[0075]
b样条曲线在[0,tm)上的弧长为如果则离散点t可能在节点区间[tm,t
m 1
)上。计算b样条曲线在[0,t
m 1
)上的弧长如果则离散点t在节点区间[tm,t
m 1
)上。
[0076]
节点矢量t可有公式求得。如果
[0077]
则继续迭代。计算所得b样条曲线的弧长为87.99mm,这里步长s设为3mm。将自由曲线离散为31个点。等弧长离散结果图如图6所示;
[0078]
所有离散点储存到gp_pnt类型的容器中,从容器中依次取出两点对b样条曲线进行分段,假设有n个离散点,则b样条曲线被分为(n-1)段,根据等弧长离散结果,b样条曲线被分为30段,分别取30段曲线的首端点p1,中点p3,末端点p2。假设p1,p2对应的参数值分别为u1,u2,则p3对应的参数值为(u1 ,u2)/2。曲率表示的是曲线的弯曲程度,角度偏差θ,曲率偏差α越大,曲线弯曲程度越大。所以通过角度偏差θ,曲率偏差α来近似反应曲率的变化。角度偏差θ为向量p1p3与向量p3p2的夹角,曲率偏差α为向量p1p2与向量p1p3的夹角和向量p1p2模长的乘积。
[0079]
最后依次取出分段曲线l1,l2...l
30
,首先将曲线l1以及曲线的两端点压入栈中,然后记录曲线的两端点,接着判断栈是否为空,若为空输出采样点pi,不为空计算当前曲线的中点,角度偏差θ和曲率偏差α,若θ>θb,α<αb,取曲线的中点,将曲线分成两段,继续压入栈中,若θ<θb,α<αb,判断栈是否为空,若为空输出采样点pi。依次对曲线l1,l2...l
n-1
执行上述操作,直到输出所有采样点。这里角度偏差θb=0.09,曲率偏差αb=0.01。离散为137个点,且离散点的分布满足曲率的变化特征。b样条曲线自适应曲率离散结果图如图7所示
[0080]
工作原理:
[0081]
首先通过对stl格式的cad模型进行待处理表面拾取。
[0082]
接着遍历待处理表面的所有闭合环,比较环的弧长,最大环即为待处理表面的轮廓。
[0083]
接着遍历轮廓的所有边界,将边界按照直线,圆弧,b样条曲线进行离散。
[0084]
根据机器人直线运动的特点,获取直线的首末端点坐标值,根据机器人圆弧运动的特点,获取圆弧的首末端点以及圆弧中间点坐标值。
[0085]
根据机器人自由曲线插补运动的特点,对b样条曲线进行自适应离散。
[0086]
首先通过brepadaptor_curve获取曲线的参数域,对曲线的参数域进行等参划分,根据等参划分所得的参数值计算b样条曲线上型值点的值。根据计算所得型值点的值反求b样条曲线的控制点pi以及样条基函数n
i,k
(t)。然后输入弧长的步长s,对b样条曲线进行等弧长离散。
[0087]
接着遍历等弧长离散所得离散点,所有离散点储存到gp_pnt类型的容器中,从容器中依次取出两点对b样条曲线进行分段,假设有n个离散点,则b样条曲线被分为(n-1)段,对(n-1)段分段曲线进行自适应曲率离散。
[0088]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实
体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0089]
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献