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

技术编号:33456723 阅读:10 留言:0更新日期:2022-05-19 00:39
本发明专利技术公开了一种工件表面轮廓自适应离散方法。本发明专利技术中,首先通过BRepAdaptor_Curve获取曲线的参数域,对曲线的参数域进行等参划分,根据等参划分所得的参数值计算B样条曲线上型值点的值。根据计算所得型值点的值反求B样条曲线的控制点P

【技术实现步骤摘要】
一种工件表面轮廓自适应离散方法


[0001]本专利技术属于工业机器人离线编程
,具体为一种工件表面轮廓自适应离散方法。

技术介绍

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

[0004]本专利技术的目的在于:为了解决上述提出的问题,提供一种工件表面轮廓自适应离散方法。
[0005]本专利技术采用的技术方案如下:一种工件表面轮廓自适应离散方法,所述工件表面轮廓自适应离散方法包括以下步骤:
[0006]S1:先进行模型的读取,首先定义读取文件的格式为STLControl_Reader;然后使用ReadFile()方法加载文件,文件读取成功返回True,否则返回false;接着转换CAD模型中的所有实体,转换为拓扑形状,模型数据储存到TopoDS_Shape类,数据储存到定义的拓扑类型的哈希表中;最后将TopoDS_Shape类型的对象转换为可交互操作的AIS_Shape类型的对象;
[0007]S2:再进行曲面的选取,利用OpenCASCADE可视化模块中的AIS_InteractiveContext类实现曲面的选取;首先通过AIS_InteractiveContext::ActivateStandardMode确定拾取的类型为TopAbs_FACE类型;然后通过AIS_InteractiveContext::SetSelected将选择的曲面加入到队列中,通过AIS_InteractiveContext::HightSelected对拾取的面进行高亮显示,建立TopoDS_shape类型的vector容器,通过AIS_InteractiveContext::SelectedShape从队列中取出拾取的面储存到vector容器中;
[0008]S3:之后进行环的选取,利用OpenCASCADE的建模数据模块中的TopExp类实现对环的选取;首先从TopoDS_shape的vdector数组中取出选取的曲面m_selshape,然后对TopExP::MapShape进行初始化,设定遍历操作的对象为m_selshape,遍历的类型为TopAbs_WIRE,遍历所得的所有环储存到TopTools_IndexedMapOfShape图中;利用OpenCASCADE的建
模算法模块中的BRepGProp::LinearProperties计算遍历所得环的弧长,比较每一段弧长的大小,取得弧长最大环Max_wire;
[0009]S4:进行轮廓线的分段
[0010]首先对TopExP::MapShape进行初始化,设定遍历的操作对象为Max_wire,遍历的类型为TopAbs_EDGE,遍历所得的所有边储存到TopTools_IndexedMapOfShape图中;根据直线,圆弧,B样条曲线对遍历所得的所有边进行分类;首先确定所有边中的直线,空间中直线的表达式为:
[0011]p=p(u)=[x(u),y(u),z(u)],u∈[u0,u
n
];
[0012]S5:通过BRepAdaptor_Curve获取直线的参数域,按照u0,(u0+u
n
)/2,u
n
对参数域进行划分,分别计算直线在u0,(u0+u
n
)/2,u
n
处的切向量;分别比较三处切向量的模长与向量角是否相等;如果三处的模长,向量角均相等,则获取的这条边为直线,计算直线在u0,u
n
处的x,y,z值;否则进入下一个判断语句,判断其是否为圆弧;空间中圆弧的表达式为:
[0013]C=C(u)=[x(u),y(u),z(u)],u∈[u0,u
n
];
[0014]S6:同样通过BRepAdaptor_Curve获取曲线的参数域,随机选取参数域中的参数值u0,u1,

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

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

,P5(x5,y5,z5);取前三组坐标构成一段圆弧,后三组坐标构成一段圆弧,分别计算得到圆弧的圆心D0,D1,半径R0,R1;设定圆心的偏离误差q
c
=0.01,半径容许误差q
r
=0.001;比较圆心D1相对于D0的偏离是否在偏离误差内,比较R1相对于R0的误差是否在容许误差内;
[0016]S7:进行B样条曲线的离散,所述B样条曲线的离散为自适应的B样条曲线离散算法,采样点合理地分布在曲率变化不大和曲率变化较大的区域,满足轮廓的变化特征;
[0017]首先通过BRepAdaptor_Curve获取曲线的参数域,对曲线的参数域进行等参划分,根据等参划分所得的参数值计算B样条曲线上型值点的值;根据计算所得型值点的值反求B样条曲线的控制点P
i
以及样条基函数N
i,k
(t);通过积分法计算B样条曲线的弧长L;
[0018][0019]S8:接着根据弧长的步长以及曲线的弧长L确定离散点的节点矢量t,进而确定离散点的位置;若要想求得节点矢量t,首先要确定节点t所在的节点区间,假定t为第n个离散点,第n

1个离散点对应的节点区间为[t
m
‑1,t
m
),n个离散点,n个离散点到起点的弧长为L
n
=n*s,
[0020]B样条曲线在[0,t
m
]上的弧长为如果则离散点t可能在节点区间[t
m
,t
m+1
)上;计算B样条曲线在[0,t
m+1
)上的弧长如果则离散点t在节点区间(t
m
,t
m+1
)上;
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种工件表面轮廓自适应离散方法,其特征在于:所述工件表面轮廓自适应离散方法包括以下步骤:S1:先进行模型的读取,首先定义读取文件的格式为STLControl_Reader;然后使用ReadFile()方法加载文件,文件读取成功返回True,否则返回false;接着转换CAD模型中的所有实体,转换为拓扑形状,模型数据储存到TopoDS_Shape类,数据储存到定义的拓扑类型的哈希表中;最后将TopoDS_Shape类型的对象转换为可交互操作的AIS_Shape类型的对象;S2:再进行曲面的选取,利用OpenCASCADE可视化模块中的AIS_InteractiveContext类实现曲面的选取;首先通过AIS_InteractiveContext::ActivateStandardMode确定拾取的类型为TopAbs_FACE类型;然后通过AIS_InteractiveContext::SetSelected将选择的曲面加入到队列中,通过AIS_InteractiveContext::HightSelected对拾取的面进行高亮显示,建立TopoDS_shape类型的vector容器,通过AIS_InteractiveContext::SelectedShape从队列中取出拾取的面储存到vector容器中;S3:之后进行环的选取,利用OpenCASCADE的建模数据模块中的TopExp类实现对环的选取;首先从TopoDS_shape的vdector数组中取出选取的曲面m_selshape,然后对TopExP::MapShape进行初始化,设定遍历操作的对象为m_selshape,遍历的类型为TopAbs_WIRE,遍历所得的所有环储存到TopTools_IndexedMapOfShape图中;利用OpenCASCADE的建模算法模块中的BRepGProp::LinearProperties计算遍历所得环的弧长,比较每一段弧长的大小,取得弧长最大环Max_wire;S4:进行轮廓线的分段首先对TopExP::MapShape进行初始化,设定遍历的操作对象为Max_wire,遍历的类型为TopAbs_EDGE,遍历所得的所有边储存到TopTools_IndexedMapOfShape图中;根据直线,圆弧,B样条曲线对遍历所得的所有边进行分类;首先确定所有边中的直线,空间中直线的表达式为:p=p(u)=[x(u),y(u),z(u)],u∈[u0,u
n
];S5:通过BRepAdaptor_Curve获取直线的参数域,按照u0,(u0+u
n
)/2,u
n
对参数域进行划分,分别计算直线在u0,(u0+u
n
)/2,u
n
处的切向量;分别比较三处切向量的模长与向量角是否相等;如果三处的模长,向量角均相等,则获取的这条边为直线,计算直线在u0,u
n
处的x,y,z值;否则进入下一个判断语句,判断其是否为圆弧;空间中圆弧的表达式为:C=C(u)=[x(u),y(u)z(u)],u∈[u0,u
n
];S6:同样通过BRepAdaptor_Curve获取曲线的参数域,随机选取参数域中的参数值u0,u1,

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

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

,P5(x5,y5,z5);取前三组坐标构成一段圆弧,后三组坐标构成一段圆弧,分别计算得到圆弧的圆心D0,D1,半径R0,R1;设定圆心的偏离误差q
c
=0.01,半径容许误差q
r
=0.001;比较圆心D1相对于D0的偏离是否在偏离误差内,比较R1相对于R0的误差是否在容许误差内;S7:进行B样条曲线的离散,所述B样条曲线的离散为自适应的B样条曲线离散算法,采样点合理地分布在曲率变化不大和曲率变化较大的区域,满足轮廓的变化特征;
首先...

【专利技术属性】
技术研发人员:张勇蒋栓栓葛家顺
申请(专利权)人:合肥工业大学
类型:发明
国别省市:

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

1