大型复杂构件机器人化表面加工的区域划分方法及设备与流程

文档序号:22834383发布日期:2020-11-06 16:25阅读:250来源:国知局
大型复杂构件机器人化表面加工的区域划分方法及设备与流程

本发明属于大型复杂构件机器人化加工领域,更具体地,涉及一种大型复杂构件机器人化表面加工的区域划分方法。



背景技术:

大型复杂构件,如风电叶片、高铁车身、船舶构件、航空构件等,在能源、交通等领域有着广泛应用,其制造水平代表着国家制造业的核心竞争力。这些构件经特定工艺加工成形后,通常需要进行表面打磨、喷漆等后处理,以保证能够长期使用。

以大型风电叶片为例,这些构件通常尺寸巨大,外形复杂,进行自动化加工时存在较大的困难。目前,这类大型结构件的表面加工仍然以人工作业为主,加工质量严重依赖于工人经验,普遍存在生产效率低下、产品质量一致性难以保证等问题。此外,由于劳动强度极高、作业环境恶劣(噪声、粉尘等),严重影响工人的身心健康,从而导致生产成本高、招工困难等问题。为了保证行业产能,亟需高效的自动化加工技术。

随着机器人技术的发展,使用工业机器人进行大型复杂构件的表面加工(打磨、喷漆等)具有广阔的应用前景。但是,大型复杂构件机器人化表面加工仍然面临诸多挑战。鉴于大型复杂构件的待加工区域通常远大于机器人的作业范围,可以考虑采用分区域、多机器人协同高效作业的方式进行加工,这就需要将其整体加工区域划分为多个子区域。然而,目前尚无面向大型复杂构件等大型构件机器人化加工的自动化区域划分手段。



技术实现要素:

针对现有技术的以上缺陷或改进需求,针对背景部分提及的问题,本发明提供了一种大型复杂构件机器人化表面加工的区域划分方法,其目的在于,根据工件cad模型、机器人及其使用工具的信息实现大型复杂构件加工区域的自动化划分,以保证机器人能够停在指定位置完成子区域的加工,从而为大型复杂构件等大型复杂构件机器人化加工的实现提供基础。

为实现上述目的,按照本发明的一个方面,提供了一种大型复杂构件机器人化表面加工的区域划分方法,包括如下步骤:

s1:获取大型复杂构件待加工表面的cad模型,结合大型复杂构件的实际工装位姿要求确定待加工表面的aabb包围盒,如果大型复杂构件没有明确的工装位姿要求,则确定待加工表面的obb包围盒;

s2:调整待加工表面cad模型的位姿,使其位姿满足如下要求:

1)包围盒左侧面与坐标系yoz平面重合,

2)包围盒右侧面、后侧面和顶侧面法矢u、v、w分别与坐标系的x、y、z轴对齐,且x、y、z轴分别对应于待加工表面的长、宽、高方向;

s3:对调整位姿后的待加工表面进行离线编程,通过等截面法获取机器人末端工具的一系列加工轨迹曲线,然后通过加工轨迹曲线离散化得到待加工表面的点云模型;

s4:根据s3点云模型中各点的法矢信息进行机器人可加工区域筛选,去除不适于机器人加工的点云区块,以得到待加工表面的加工点云模型;

s5:对于经s4筛选后的加工点云模型进行精简,根据机器人简化模型的尺寸参数进行加工点云模型的稀疏化处理,以得到待加工表面的稀疏点云模型;

s6:纵向分区,确定s5稀疏点云模型中各条轨迹曲线是否需要分段,对于需要分段的轨迹曲线进行分段,根据轨迹分段结果得到一级子区域;

s7:横向分区,对s6得到的各一级子区域进行横向分区,以进一步确定每一子区域应当包含的轨迹曲线数目,得到二级子区域;

s8:获取步骤s7得到的各二级子区域的边界点信息,以对s4中的加工点云模型进行分区,得到构件的分区点云模型,实现大型复杂曲面机器人化表面加工的区域划分。

进一步地,步骤s4中机器人可加工区域筛选方法包括如下子步骤:

s401:遍历计算步骤s3点云模型中任一点pi,j的法矢ni,j在xoz平面上投影矢量n′i,j与矢量z=[0,0,1]t的夹角αi,j,pi,j表示第i条轨迹曲线上的第j个点;

s402:根据预设的夹角筛选阈值αmin、αmax,去除步骤s3的点云模型中所有不满足αmin≤|αi,j|≤αmax条件的点。

进一步地,所述步骤s5中点云模型的稀疏化处理方法包括如下子步骤:

s501:使用规则几何体代替机器人的核心组件,且各规则几何体应为对应的被代替组件的最小包络体;

s502:确定各规则几何体的特征长度,并取所有几何体特征长度的最小值lmin作为每条轨迹上相邻两点的最小离散距离;

s503:按照从左到右、从下到上的规则对构件点云模型中的点进行编号,记其中一点为pi,j,则pi,j表示第i条轨迹线上的第j个点;

s504:初始时,取j=1,记第i条轨迹的第1个点pi,1为起点ps,依次计算起点ps与其后各点pi,j之间的距离di,j,直到找到满足条件di,j≤lmin<di,j+1的点,令k=j;然后,将当前选择的起点ps存入构件的稀疏点云模型{spcm},更新pi,k为新的起点ps,并继续向后遍历;按照上述条件依次筛选当前轨迹曲线i上的所有起点;特别地,每条轨迹上的最后一点也是起点;

s505:按照s504步骤遍历所有轨迹线,获得构件待加工表面的稀疏点云模型{spcm}。

进一步地,所述步骤s6中的纵向分区方法具体为:

s601:计算第i条轨迹在xoz平面内投影的长度leni,然后计算当前轨迹需要划分的段数numi=floor(lenni/re)+1;其中,re为机器人的有效臂展,且re=dmax*se,dmax为机器人最大工作距离,se为经验系数,floor为取整函数;

s602:计算第i条轨迹各点pi,j的所属段标flagi,j=floor((zi,j-zi,1)×numi/leni);其中,zi,j为点pi,j的z坐标;

s603:将flagi,j相同的点划分至同一子区域;

s604:判断s603中各子区域中相邻轨迹线的numi是否相等,如果相等则不分区,否则将当前numi相等的各轨迹线划分为一个子区域,然后遍历判断后续轨迹线,以保证每个一级子区域中所有轨迹线的numi都相等。

进一步地,所述步骤s7中的横向分区方法具体为:

s701:记经s6纵向分区后得到的某一子区域为一级子区域i,按照预设的机器人初始基座位置,对当前一级子区域i内的所有轨迹点进行可达检测,即检测机器人在当前基座位置处是否可到达所有轨迹点;

s702:如果s701中存在不可达的轨迹点,则按照如下步骤处理:首先更新机器人基座位置,如果能够找到一个基座位置,满足可达条件,即机器人在该基座位置处可到达当前一级子区域i内的所有轨迹点,则结束可达检测;如果无法找到满足可达条件的基座位置,则去除当前一级子区域i内最右侧轨迹线上的轨迹点,然后重复s702,直至找到能够满足可达条件的基座位置,然后结束可达检测;

s703:在可达条件满足后,进行碰撞检测,如果存在一个轨迹点使得机器人与构件之间存在碰撞,则按照如下步骤处理:首先更新机器人基座位置,如果能够找到一个基座位置,满足当前一级子区域i内的所有轨迹点无碰撞,则结束碰撞检测;如果无法找到满足当前一级子区域i内所有轨迹点无碰撞的基座位置,则去除当前一级子区域i内最右侧轨迹线上的轨迹点,直至找到能够满足当前一级子区域i内所有轨迹点无碰撞的基座位置,然后结束碰撞检测;

s704:当可达检测与碰撞检测完成后,对当前一级子区域i进行奇异检测,如果存在奇异点,则去除奇异点所在轨迹线及当前一级子区域i内该轨迹线右侧所有轨迹线上的轨迹点,直至当前一级子区域i内无奇异点;

s705:记经s701~s704筛选出的轨迹点为当前一级子区域i的一个二级子区域,然后对当前一级子区域i内剩余轨迹点执行步骤s701~s704,直至当前一级子区域i内的所有轨迹线都完成横向分区;

s706:对经步骤s6纵向分区后得到的其余一级子区域执行步骤s701~s705,直到所有一级子区域都完成横向分区。

进一步地,所述步骤s701中的可达检测、碰撞检测、奇异检测方法具体为:

可达检测方法:根据机器人与工件的相对位置,通过机器人的逆运动学表达式,判断任一轨迹点是否存在合理逆运动学解;

碰撞检测方法:根据机器人在任一轨迹点处的关节构型确定由s501得到的机器人简化模型中各规则几何体的空间分布,然后判断当前子区域中所有轨迹点是否在某一规则几何体内部,如果存在某一轨迹点在某一规则体内部,则表示存在碰撞,否则视为机器人与工件之间无碰撞;

奇异检测方法:计算机器人在任一轨迹点处关节构型对应的条件数kf(jn),然后得到奇异判断指标kci,并将其与预设阈值kcimin对比,如果当前轨迹点对应的kci数值小于kcimin,则表示当前轨迹点处存在奇异,否则认为无奇异;其中,kf(jn)及kci的计算公式分别为:

式中,l为机器人的特征长度,i3×3、o3×3和j分别为3×3单位矩阵、3×3零矩阵和机器人雅可比矩阵;tr(·)表示求矩阵的迹。

进一步地,所述步骤s8中的获得构件分区点云模型的方法具体为:

s801:获取经步骤s7得到的各二级子区域边界点坐标信息:xlimk=[xmink,xmaxk],zlimk=[zmink,i,zmaxk,i];其中,xmink、xmaxk分别表示二级子区域k上所有轨迹点x坐标的最小值和最大值,zmink,i、zmaxk,i分别表示二级子区域k上第i条轨迹曲线上点z坐标的最大值和最小值;

s802:按照从下到上,从左到右的顺序,遍历判断构件加工点云模型中各点pi,j所属子区域,判断方法为:若xmink≤xi,j≤xmaxk,且zmink,i≤zi,j≤zmaxk,i,则满足条件的pi,j属于二级子区域k。

一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如前任一项所述的区域划分方法。

一种用于大型复杂构件机器人化表面加工的区域划分的设备,包括如前所述的计算机可读存储介质以及处理器,处理器用于调用和处理计算机可读存储介质中存储的计算机程序。

总体而言,本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果。

1.本发明利用大型复杂构件经离线编程得到的点云信息,在综合考虑构件形貌、机器人作业空间及性能等因素的基础上,提出了一种兼顾机器人作业效率与性能的大型复杂构件机器人化表面加工的自动化区域划分方法,可为大型复杂构件机器人化表面加工过程中的系统布局、运动规划及控制提供基础。本发明通过融合大型复杂构件cad模型、机器人及其末端工具信息进行大型工件的加工区域自动化划分,可适应于多种类,多规格工件,也能适用于不同机器人和末端工具,具有一定的普适性。

2.本发明依据离线编程得到的机器人工具加工路径实现大型复杂构件待加工表面的加工区域划分,能够保证机器人在不变更位置的前提下顺利(无奇异)、安全(无碰撞)地完成任一子区域的加工,符合当前机器人作业的特点,易于实现,具有较强的实用性。

附图说明

图1为本发明实施例提供的大型复杂构件机器人化表面加工区域划分方法的整体流程图;

图2为本发明实施例提供的大型复杂构件机器人化加工离线编程示意图;

图3为本发明实施例提供的大型复杂构件机器人可加工区域筛选示意图;

图4为本发明实施例提供的机器人简化模型示意图,其中a为简化前的原型,b为简化后的模型;

图5为本发明实施例提供的大型复杂构件点云模型稀疏化原理示意图;

图6为本发明实施例提供的大型复杂构件纵向分区效果图;

图7为本发明实施例提供的大型复杂构件横向分区效果图;

图8为本发明实施例提供的大型复杂构件横向分区流程图;

图9为本发明实施例提供的碰撞检测原理分析图,其中a为球体碰撞检测原理,b为圆柱体碰撞检测原理,c为长方体碰撞检测原理;

图10为本发明实施例提供的构件区域划分最终效果图。

在所有附图中,相同的附图标记用来表示相同的元件或结构,其中:

21-大型构件;22-等距截面;23-轨迹曲线;401、408-基座;402、409-连杆1;403、410-连杆2;404、411-连杆3;405、412-连杆4;406、413-连杆5;407、414-连杆6;61-一级子区域1;62-一级子区域2;63-一级子区域3;64-一级子区域4;71-二级子区域1;72-二级子区域2;73-二级子区域3。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

在本发明的一个优选实施例中,将以大型风电叶片的表面打磨为应用背景,详细阐述本发明的大型复杂构件机器人化表面加工的区域划分方法。

图1是依据本发明的优选实施例所提供的大型复杂构件机器人化表面加工区域划分方法的整体流程图,如图1所示,本发明构建的大型复杂构件机器人化表面加工区域划分方法主要包含以下步骤:

s1:获取大型复杂构件待加工表面的cad模型,结合大型复杂构件的实际工装位姿要求确定待加工表面的aabb包围盒,如果大型复杂构件没有明确的工装位姿要求,则确定待加工表面的obb包围盒;

s2:调整待加工表面cad模型的位姿,使其位姿满足如下要求:1)包围盒左侧面与坐标系yoz平面重合,2)包围盒右侧面、后侧面和顶侧面法矢(u、v、w)分别与坐标系x、y、z坐标轴对齐,且x、y、z轴分别对应于待加工表面的长、宽、高方向。调整过程中,应首先进行旋转变换,再通过刚体平移调整位置;

s3:通过离线编程确定大型复杂构件待加工表面的点云模型。如图2所示,通过等截面法(优选地,可以设置截面平行于yoz平面)获取机器人末端工具的一系列加工轨迹曲线,分别离散每条加工轨迹曲线(优选地,可以采用弦公差法进行离散),从而得到待加工表面的点云模型,并导出点云模型中各点的位置坐标和法向矢量。其中,相邻截面间距,弦公差参数等均可以根据加工工艺参数进行调试决定;

s4:根据s3所得点云模型中各点的法矢信息进行机器人可加工区域筛选,去除不适于机器人加工的点云区块,以得到待加工表面的加工点云模型。其中,所述机器人可加工区域筛选方法具体如下:

s401:遍历计算s3点云模型中任一点pi,j的法矢ni,j在xoz平面上投影矢量n′i,j与矢量z=[0,0,1]t的夹角αi,j。

s402:根据实际情况设定夹角筛选阈值αmin、αmax,然后去除点云模型中所有不满足αmin≤|αi,j|≤αmax条件的点。如图3所示,以某条轨迹曲线为例,认为位于两条虚线之外的轨迹点(法矢也用虚线表示)不适于机器人加工。优选地,αmin、αmax的取值范围分别为:0°≤αmin≤45°,145°≤αmin≤180°。

s5:对于经s4筛选后的加工点云模型进行精简,根据机器人简化模型的尺寸参数进行加工点云模型的稀疏化处理,得到待加工表面的稀疏点云模型。点云模型的稀疏化处理过程具体如下:

s501:使用规则几何体(通常是球体、圆柱体、长方体等)代替机器人的核心组件(一般是关节及连杆,可根据每个核心组件的大致形状选择对应的规则几何体),且规则几何体应为机器人组件的最小包络体。如图4所示,为某型号工业机器人cad模型及其简化模型示意图。

s502:确定各规则几何体的特征长度(优选地,球体的特征长度为其球体直径,圆柱体的特征长度为其端面直径和高度的较小值,长方体的特征长度为其边长的最小值),并取所有几何体特征长度的最小值lmin作为每条轨迹上相邻两点的最小离散距离。

s503:按照从左到右、从下到上的规则对构件点云模型中的点进行编号,记其中一点为pi,j,则pi,j表示第i条轨迹线上的第j个点。

s504:初始时,取j=1,记第i条轨迹的第1个点pi,1为起点ps,依次计算起点ps与其后各点pi,j之间的距离di,j,直到找到满足条件di,j≤lmin<di,j+1的点,令k=j;然后,将当前选择的起点ps存入构件的稀疏点云模型{spcm},更新pi,k为新的起点ps,并继续向后遍历;按照上述条件依次筛选当前轨迹曲线i上的所有起点;特别地,每条轨迹上的最后一点也是起点。如图5所示,为某条轨迹曲线稀疏化处理原理及效果示意图。

s505:按照s504步骤遍历所有轨迹线,即可获得构件最终的稀疏点云模型{spcm}。

s6:纵向分区,确定每条轨迹是否需要分段,并根据轨迹分段信息得到一级子区域。如图6所示,为构件纵向分区示意图,且纵向分区的具体步骤如下:

s601:首先计算第i条轨迹曲线的弧长leni(优选地,该弧长可以近似选取为该条曲线上相邻两点间距离的和),然后计算当前轨迹需要划分的段数:numi=floor(leni/re)+1。其中,re为机器人的有效臂展,且re=dmax*se,dmax为机器人最大工作距离,se为经验系数,优选地,可以取值为se=0.5~1,floor为取整函数(即仅取括号中的整数部分);

s602:遍历计算第i条轨迹上各点pi,j的所属段标:flagi,j=floor((zi,j-zi,1)×numi/leni)。其中,zi,j为点pi,j的z坐标;

s603:将flagi,j相同的点划分至同一子区域;

s604:判断s603中各子区域中相邻轨迹线的numi是否相等,如果相等则不分区,否则将当前numi相等的各轨迹线划分为一个子区域,然后遍历判断后续轨迹线,以保证每个一级子区域中所有轨迹线的numi都相等。

s7:横向分区,对s6得到的每一子区域进行横向分区,以确定每一子区域应当包含的轨迹曲线数目。如图7所示,为构件横向分区示意图,且横向分区的具体步骤如下:

s701:记经s6纵向分区后得到的某一子区域为一级子区域i,按照预设的机器人初始基座位置,对当前一级子区域i内的所有轨迹点进行可达检测,即检测机器人在当前基座位置处是否可到达所有轨迹点;

其中,初始基座位置可以按照经验进行预设,为了提高分区效率,优选地,还可以按照如下方法来设定初始基座位置:

对某个一级子区域i的起始、正中、终止轨迹线进行编号,记编号为:ind_is、ind_im、ind_ie。同时,计算当前一级子区域i内所有轨迹点y坐标的范围ylim=[ymin,ymax],并指定机器人基座的高度:z0,然后可确定机器人的初始基座位置:bp0=[xb,yb,zb]t为:

式中,xd为相邻轨迹线之间的距离。

s702:如果s701中存在不可达的轨迹点,则按照如下步骤处理:首先更新机器人基座位置,如果能够找到一个基座位置,满足可达条件,即机器人在该基座位置处可到达当前一级子区域i内的所有轨迹点,则结束可达检测;如果无法找到满足可达条件的基座位置,则去除当前一级子区域i内最右侧轨迹线上的轨迹点,然后重复s702,直至找到能够满足可达条件的基座位置,然后结束可达检测。

可达检测方法可优选为:建立机器人dh模型,然后推导其逆运动学解析表达式。针对逆运动学求解时存在的多解问题,应根据机器人与工件的相对位置,通过刚度性能等因素优选一组合适的逆运动学表达式,然后使用该表达式判断任一轨迹点是否存在合理解,此过程采用常规逆运动学求解方法即可,不再赘述。

基座位置更新方法可以采用随机更新或者遍历更新等常规方法,优选地,为了提高效率,基座位置更新可以采用如下方法:

式中,mid=re2-xz_max,且:xzmax=max((pup,x-xb)2+(pup,z-zb)2,(pdown,x-xb)2+(pdown,z-zb)2)

其中,re为机器人最大的有效工作距离,pup,x、pup,z分别为一级子区域i初始轨迹线ind_is的上端点的x、z坐标,pdown,x、pdown,z分别为一级子区域i初始轨迹线ind_is的下端点的x、z坐标。

如果基座位置更新过程中,出现yb<ymin的情况时,则需要更新ind_ie、ind_im和xb、yb,具体如下:

s703:在可达条件满足后,进行碰撞检测,如果存在一个轨迹点使得机器人与大型构件(通常主要考虑工件即可,也可以根据实际需求考虑环境中其他可能碰撞的对象)存在碰撞,则按照如下步骤处理:首先更新机器人基座位置(基座位置更新方法可以与可达检测过程中的基座位置更新方法一致),如果能够找到一个基座位置,满足当前一级子区域i内的所有轨迹点无碰撞,则结束碰撞检测;如果无法找到满足当前一级子区域i内所有轨迹点无碰撞的基座位置,则去除当前一级子区域i内最右侧轨迹线上的轨迹点,直至找到能够满足当前一级子区域i内所有轨迹点无碰撞的基座位置,然后结束碰撞检测;

碰撞检测方法可优选为:根据机器人在任一轨迹点处的关节构型确定由步骤s501得到的机器人简化模型中各规则几何体的空间分布,然后判断当前子区域中所有轨迹点是否在某一规则几何体内部,如果存在某一轨迹点在某一规则体内部,则表示存在碰撞,否则可认为机器人与工件之间无碰撞。结合图9,给出判断轨迹点是否在规则几何体内部的优选方法如下:

计算当前子区域内所有轨迹点pi,j到某一规则几何体gk形心o的最小特征距离为记为dmin(p,g),如果dmin(p,g)≤0,则点在几何体内部,否则在几何体外部。dmin(p,g)的计算方法如下:

球体:dmin(p,g)=dist(p,o)-s·r

圆柱体:

长方体:

式中,o为规则几何体gk的形心,p1为点pi,j在xoy平面内的投影点,p2、p3分别为p1在坐标系x、y轴上的投影点,p4为点pi,j在坐标系z轴上的投影点,s为安全系数,优选地,可以取值为s=1~1.5,r为球体(或圆柱体端面)半径,l、w、h分别为长方体的长、宽、高(或圆柱体的高度)。

s704:当可达检测与碰撞检测完成后,对当前一级子区域i进行奇异检测,如果存在奇异点,则去除奇异点所在轨迹线及当前一级子区域i内该轨迹线右侧所有轨迹线上的轨迹点,直至当前一级子区域i内无奇异点;

奇异检测方法可优选为:

计算机器人在任一轨迹点处关节构型对应的条件数:kf(jn),然后得到奇异判断指标kci,并将其与设定阈值kcimin进行对比,如果当前轨迹点对应的kci数值小于kcimin,则表示当前轨迹点处存在奇异,否则认为无奇异。其中,kf(jn)及kci的计算公式分别为:

式中,l为机器人的特征长度,i3×3、o3×3和j分别为3×3单位矩阵、3×3零矩阵和机器人雅可比矩阵,tr(·)表示求矩阵的迹。

s705:记经s701~s704筛选出的轨迹点为当前一级子区域i的一个二级子区域,然后对当前一级子区域i内剩余轨迹点执行步骤s701~s704,直至当前一级子区域i内的所有轨迹线都完成横向分区;

s706:对经步骤s6纵向分区后得到的其余一级子区域执行步骤s701~s705,直到所有一级子区域都完成横向分区。

s8:获取步骤s7得到的各二级子区域的边界点信息,以对s4中的加工点云模型进行分区,得到如图10所示的构件分区点云模型,该过程具体步骤如下:

s801:获取经步骤s7得到的各二级子区域边界点坐标信息:xlimk=[xmink,xmaxk],zlimk=[zmink,i,zmaxk,i];其中,xmink、xmaxk分别表示二级子区域k上所有轨迹点x坐标的最小值和最大值,zmink,i、zmaxk,i分别表示二级子区域k上第i条轨迹曲线上点z坐标的最大值和最小值;

s802:按照从下到上,从左到右的顺序,遍历判断构件加工点云模型中各点pi,j所属子区域,判断方法为:若xmink≤xi,j≤xmaxk,且zmink,i≤zi,j≤zmaxk,i,则满足条件的pi,j属于二级子区域k。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1