1.一种基于遗传算法的STL三维模型排布优化方法,其特征在于,包括:S1、将需要排布的组件的几何模型转换成STL模型并导入MATLAB,读取各个组件包含的三角面片的顶点和法向量信息;
S2、对遗传算法模型进行初始化,包括定义适应度函数、设定迭代次数,并产生种群数量为p的初始种群;
S3、通过p个初始种群中个体的遗传信息x对STL模型的排布姿态进行调整,刷新STL模型三角面片的顶点信息;
S4、针对步骤S3得到的STL模型的三角面片顶点信息,计算出各STL模型之间干涉部分包围盒的体积 ,并将所述干涉部分包围盒的体积 设置为约束条件;计算各STL模型之间干涉部分包围盒的体积 的步骤包括:S401、求得组件1在x、y及z轴上投影的最大值与最小值 、
及 ,取:
作为组件的AABB包围盒Box1的长宽高,同理可求得组件2的AABB包围盒Box2的长宽高,S402、求Box1和Box2的长、宽、高的交集L、W、及H,若L、W、及H都不为空集,则以L、W、及H建立Box3,筛选出组件1及组件2与Box3相交的三角面片集合u1和u2,S403、倘若未达到最大迭代次数且u1和u2都不为空,将u1和u2绕z轴旋转一定角度后作为组件1和组件2重复S401‑ S402,否则跳出循环,进入S404,S404、u1和u2中存在空集时,直接令干涉部分体积 ;反之则计算干涉部分体积包围盒相交区域体积 ,求得组件1和组件2的包围盒体积之和为V,令 ,设定阈值 ,若 ,则令 保持原值不变,若 ,就对u1和u2两集合的三角面片求交,若三角面片相交,令 保持原值不变,反之则令 ;
S5、基于步骤S4得到的干涉部分包围盒的体积 ,以及包含所有组件的AABB包围盒的体积 的和求取适应度函数;
S6、基于S4所定义的约束条件和S5定义的适应度函数,利用遗传算法对当前种群进行迭代优化,逐步使得 等于0, 趋于最小值;
S7、判断是否达到最大迭代次数,若是则输出排布结果,若否则返回步骤S4。
2.根据权利要求1所述的一种基于遗传算法的STL三维模型排布优化方法,其特征在于,将需要排布的组件的几何模型转换成STL模型,包括:通过CAD绘制的三维模型导出STL模型。
3.根据权利要求1所述的一种基于遗传算法的STL三维模型排布优化方法,其特征在于,获取个体的遗传信息x包括:将组件的自由度直接编码得到的1×6n的数组作为作为基因 ,且 依次
表示第个组件 、 、轴方向上的平移距离和绕 、 、轴的旋转角度。
4.根据权利要求3所述的一种基于遗传算法的STL三维模型排布优化方法,其特征在于,获取个体的遗传信息x还包括:通过对STL模型上三角面片进行平移旋转即可将模型转换至任意位姿v。
5.根据权利要求1所述的一种基于遗传算法的STL三维模型排布优化方法,其特征在于,计算各STL模型之间干涉部分包围盒的体积 之前,还包括对各STL模型之间干涉情况进行判断,具体包括:使用投影法对各STL模型之间的干涉情况进行初始判断,倘若两个组件在任意一个坐标平面上的投影不相交即可确定两个组件不发生干涉;若两组件在各个坐标平面上的投影都相交,则对STL模型求交,若STL模型相交则判定模型之间发生干涉,反之则认为不发生干涉。
6.根据权利要求1所述的一种基于遗传算法的STL三维模型排布优化方法,其特征在于,所述适应度函数为:其中, 为适应度函数, 为三角面片顶点坐标在x轴投影的最大值, 为三角面片顶点坐标在x轴投影的最小值, 为三角面片顶点坐标在y轴投影的最大值,为三角面片顶点坐标在y轴投影的最小值, 为三角面片顶点坐标在z轴投影的最大值, 为三角面片顶点坐标在z轴投影的最小值, 为权重系数。