APP下载

基于OBB-SAT 算法的双五轴加工路径碰撞检测方法

2021-03-12张立强李宇昊

软件导刊 2021年2期
关键词:碰撞检测多边形协方差

孔 森,张立强,李宇昊

(1.上海工程技术大学 机械与汽车工程学院,上海 201620;2.上海拓璞数控科技股份有限公司,上海 201111)

0 引言

随着航空航天事业的快速发展,镜像铣加工设备成为了航空航天大型薄壁件成型制造技术最新的发展方向之一。双五轴镜像铣用来加工航天飞机,以及卫星上大型的蒙皮和壁板,因此如何实现加工的高效、稳定和精确是目前的研究热点。相较于普通五轴机床,镜像铣机床多出一个五轴支撑装置,双五轴的协调同步运动是工件加工的基础,所以支撑端与铣削端的接触碰撞是不可避免的。

在大量碰撞检测算法中,包围盒算法是最常用的一种算法,其包含AABB 包围盒、OBB 包围盒、包围球、K-DOP包围盒等[1-4]。如何方便、快速、有效地进行干涉性判断是影响系统效率的一个关键因素[5],因此许多学者对包围盒算法进行了深入研究。如王立文等[6]提出一种改进的AABB 包围盒碰撞检测算法,提高了碰撞检测速度,并得到更详细的碰撞检测信息;尹艳艳等[7]提出一种基于OBB 的矩形碰撞检测算法,对机器臂进行空间建模与碰撞检测,以实现机器臂的碰撞预警与安全停机;唐勇等[8]提出一种改进的轴向包围盒碰撞检测算法,通过压缩储存对AABB包围盒进行改进,提高了AABB 包围盒的紧密性;唐源皓等[9]提出基于质点转换的混合碰撞检测算法,把物体最外层OBB 包围盒当作三维空间中的点,计算两点之间的距离,从而提高了碰撞检测效率;陈秋菊[10]提出虚拟现实中的包围盒碰撞检测算法,分析并描述了基于包围球和有向包围盒的混合层次包围盒碰撞检测算法的优点及构建方法,实现了实时、高精度的连续碰撞检测;陈志华等[11]提出一种将包围球模型与GJK 算法相结合的算法,实现了镜像铣的快速碰撞检测;李玉虎等[12]提出一种混合层次包围盒碰撞算法,引入了形心概念,并改进包围盒的树形结构,使算法精度和效率得到一定程度提升;赵鑫[13]将传统粒子群算法融入到碰撞检测中,以OBB 包围盒为特征对象,实现了对复杂刚体的碰撞检测;赵伟等[14]提出一种快速的基于球体混合重建的碰撞检测算法,将从线性到球形混合的构造变换方法进行扩展,实现了快速碰撞检测;谭睿璞等[15]提出一种快速的可变形物体碰撞检测算法,采用多线程技术,在多核设备上实现了并行碰撞检测算法;孙殿柱等[16]提出一种将遗传算法与O·Rourke 算法相融合的最小包围盒求解算法,实现了对离散点云数据包围盒的快速求解;胡志刚等[17]通过枚举凸包中边的所有可能组合,唯一确定包围盒的最优方向,实现了包围盒的紧密构造;张琪等[18]提出一种基于三角片分割的改进包围盒树构造方法,通过控制三角片分割粒度和叶子节点包围盒中的三角片个数,验证了算法的有效性;孙敬荣等[19]提出基于混合包围盒的碰撞检测优化算法,构造新的计算坐标系,对空间几何三角形进行投影降维,在二维平面上解决空间问题,从而大大提升了计算速度;于瑞云等[20]提出结合轴对齐包围盒与空间划分的碰撞检测算法,采用分步检测方法,利用碰撞检测的时空相关性,对时空相关部分进行相交测试,在减少碰撞检测所需时间的同时,提高了碰撞检测的准确性。

本文以OBB 包围盒为模型基础,建立支撑端和铣削端的包围盒模型,并解析了双五轴镜像铣的运动学模型,之后通过分离轴算法(SAT)进行碰撞检测,最后通过MAT⁃LAB 进行碰撞仿真验证。

1 OBB 包围盒与镜像铣模型构建

包围盒是根据包围物体形状而建立的简单的盒型空间。为了实现更快速的碰撞检测以及更精确的碰撞距离,构建包围体成为了主流研究方法。当包围盒之间发生碰撞后,才能进一步对碰撞进行检测与处理。包围盒类型繁多,主要包含球体包围盒、轴对齐包围盒(AABB)、有向包围盒(OBB)、8-DOP 以及凸壳等。不同形状的物体拥有不同包围盒,因为包围盒一般为规则物体,因此用其代替该物体进行计算,会比直接利用物体本身更加高效、简单。在3D 模型碰撞算法中,AABB 包围盒和OBB 包围盒都得到了广泛应用,其中AABB 包围盒的构建方法简单,并且是轴对齐的,所以在碰撞检测中更为常见。在镜像铣加工过程中存在旋转变换的情况,但AABB 包围盒在旋转状态下需要重建包围盒模型,导致检测效率降低。此时OBB 包围盒有其独特优势,OBB 包围盒是通过分析物体顶点得到一个最小包围体,并且其形状不随物体的运动变化而变化,可作为存在旋转变换的镜像铣碰撞检测模型。

1.1 OBB 包围盒模型构建

如图1 所示,图1(a)为AABB 包围盒模型,其完全按照坐标轴方向构建模型,而且在旋转时,物体坐标变化会造成包围盒的形状变化,需要对AABB 包围盒进行重建,且模型不紧凑、效率不高。从图1(b)中可以看出,OBB 包围盒模型不存在旋转变换后重构模型的过程,并且比AABB 包围盒更加紧凑。

Fig.1 Bounding box model图1 包围盒模型

生成OBB 包围盒时,首先要获得物体顶点,然后根据主成分分析法得到物体相关顶点下的特征向量。对于三维物体而言,3 个特征向量即为OBB 包围盒的3 个空间主轴。在进行主成分分析时,协方差矩阵计算很关键。变量之间的协方差越小,说明变量之间相关性越小,变量呈现更加独立的状态。协方差计算公式为:

其中,E 代表数学期望。

通过协方差计算公式,可得到物体所有顶点的协方差矩阵:

其中,当变量相同时,如cov(xi,xi)、cov(yi,yi)、cov(zi,zi)又可表示为变量的方差。

青铜峡市位于西北内陆,属于中温带大陆性气候区。地理坐标为东经105°21′~106°21′、北纬37°36′~38°15′。青铜峡市地貌受构造控制,形成了西南高北东低,似簸箕状地貌景观,东部为牛首山、山前台地及丘陵地区;北部属于银川平原南部,中部为卫宁平原北端和青铜峡库区,地势平坦;南部、西部为卫宁北山东端及山前台地,地面起伏较大[6]。全市土壤偏碱性(pH为7.67~9.70),主要土壤类型为灌淤土、灰钙土、新积土和潮土等,其中灌淤土为主要农耕土壤类型。

通过式(2)可得到一个对称矩阵B,求得矩阵B 的特征向量后,使特征向量正规化,包围盒的3 条轴线用正规化后的3 个向量表示。轴线确定后,物体所有顶点向3 条轴线方向投影,每个轴线方向最大值与最小值的连线可作为包围盒的三边之一,包围盒建立完成。

1.2 镜像铣模型构建

镜像铣加工机床由支撑端和铣削端构成,如图2 所示,在两端存在旋转位置变化。

Fig.2 Mirrored milling model图2 镜像铣模型

构建镜像铣两端的包围盒时,将支撑端和铣削端的三角面片网格化,提取三角面片上的网格节点坐标,构建包围盒模型。在对铣削端和支撑端的包围盒进行运动状态变换时,需要建立镜像铣机床坐标系,如图3 所示。

Fig.3 Mirror milling coordinates at both ends图3 镜像铣两端坐标

双五轴镜像铣机床由两个五轴构成,分解成单五轴来看,如图3 的铣削端,在铣削端进行平移运动时,可分解为沿x1、y1、z1的分运动。若一点P1(X1,Y1,Z1)经平移变换得到P2(X2,Y2,Z2),则坐标系o1的坐标变换如下:

其中,x、y、z代表在轴x1、y1、z1方向的平移距离。

在铣削端进行旋转运动时,可分解为沿x1、y1的分运动。若一点P1(X1,Y1,Z1)经旋转变换得到P2(X2,Y2,Z2),则坐标系o1的坐标变换如下:

其中,α代表点P1绕x1轴旋转的角度,β代表点P1绕y1轴旋转的角度,则坐标系o1经平移、旋转后变换如下:

由OBB 包围盒特性可知,其位置变化后不需要再进行重建,包围盒顶点可直接代入上式进行计算得到变换后的位置,进而得到包围盒。建模过程比较简单,有利于提高系统检测效率。支撑端的建模计算同上。

2 基于分离轴算法的碰撞检测

在二维模型中,分离轴算法的核心思想是判断两个二位图形之间有无间隙,如果不存在间隙,则物体发生碰撞,相反,物体不会发生碰撞。针对OBB 包围盒模型的三维凸体碰撞检测,本文设置以下计算步骤:

步骤一:根据分离轴定理,支撑端和铣削端的OBB 包围盒模型建立完成后,得到12 个面,如图4 所示。投影平面为两包围盒某一个面的垂直面,将两包围盒向投影平面投影,可以把三维碰撞检测转化成二维碰撞检测。由于包围盒相对面两两平行,所以一个包围盒存在3 个相互垂直的面,每一个包围盒需要进行3 次投影,两个包围盒总投影次数为6 次。

Fig.4 3D projection图4 三维投影

步骤二:某次投影结束后,得到两个二维多边形,如图5 所示。计算所需检测边的法向量,即是需要投影的原始轴,实际投影轴为移动后的投影轴,检测边则为投影方向。

Fig.5 Build the projection axis图5 构建投影轴

步骤三:搜寻多边形顶点,并将顶点从检测轴方向投影到移动后的投影轴线上,如图6 所示。

Fig.6 Projection of the first polygon图6 第一个多边形投影

步骤四:获取另一个多边形顶点,将顶点投影到轴上,如图7 所示。

Fig.7 Projection of the second polygon图7 第二个多边形投影

Fig.8 Collision distance detection图8 碰撞距离检测

步骤六:待检测边的搜寻。由于投影得到的多边形为凸多边形,根据多边形顶点坐标计算得到最近的两个顶点,连线得到第一条检测边。投影计算完成后,计算离其中一个顶点最近的顶点,上一步得到的顶点除外,将两顶点连线得到第二条检测边,迭代循环得到所有待检测的边及其顶点。

步骤七:完成支撑端包围盒和铣削端包围盒其中一个面的投影后,依次在5 个面的法平面方向进行投影,一共得到2×6 个参数,其中最大负值的绝对值为包围盒重叠的最大值。若使碰撞分离,则将两端分开相应距离,其中最小非负值为两端未发生碰撞时的安全距离。本文算法流程如图9 所示。

3 仿真分析

通过MATLAB2018b 对双五轴支撑端和铣削端进行碰撞检测。当双五轴镜像铣机床的支撑端和铣削端发生旋转与平移变化时,将本文提出的OBB 包围盒算法与AABB包围盒算法进行对比,采取离散碰撞检测法,两个包围盒算法运行时间如图10 所示。

Fig.9 Algorithm flow图9 算法流程

Fig.10 Comparison of modeling time between two bounding box algorithms图10 两种包围盒算法建模时间对比

通过图10 可以看出,在同一个采样点,OBB 包围盒算法的运行时间明显少于AABB 包围盒算法。所以OBB 包围盒算法在构建模型时更加高效,建模平均速度提高了25%。

设计碰撞仿真时,设置安全距离为0,当包围盒之间距离大于0 时则为安全距离,当包围盒之间距离小于等于0时,发出警告并停止运动。本文通过分离轴算法进行实时测距,在Z 方向的碰撞测试如图11 所示。

4 结语

本文分析OBB 包围盒的建立方法及其优势,并建立机床支撑端和铣削端的包围盒模型。通过分离轴算法判断支撑端与铣削端是否碰撞,最后通过MATLAB 进行仿真。仿真结果表明,该算法可适用于镜像铣加工碰撞检测。此外,本文主要研究离散碰撞相关内容,针对复杂的连续碰撞还需作进一步研究。

Fig.11 Collision test图11 碰撞测试

猜你喜欢

碰撞检测多边形协方差
多边形中的“一个角”问题
全新预测碰撞检测系统
多边形的艺术
基于BIM的铁路信号室外设备布置与碰撞检测方法
解多边形题的转化思想
多边形的镶嵌
Unity3D中碰撞检测问题的研究
多元线性模型中回归系数矩阵的可估函数和协方差阵的同时Bayes估计及优良性
二维随机变量边缘分布函数的教学探索
不确定系统改进的鲁棒协方差交叉融合稳态Kalman预报器