CN113781846A - 一种水平维度空域冲突检测方法 - Google Patents
一种水平维度空域冲突检测方法 Download PDFInfo
- Publication number
- CN113781846A CN113781846A CN202111142552.2A CN202111142552A CN113781846A CN 113781846 A CN113781846 A CN 113781846A CN 202111142552 A CN202111142552 A CN 202111142552A CN 113781846 A CN113781846 A CN 113781846A
- Authority
- CN
- China
- Prior art keywords
- airspace
- coordinate
- vertex
- vector
- coordinates
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G5/00—Traffic control systems for aircraft, e.g. air-traffic control [ATC]
- G08G5/0043—Traffic management of multiple aircrafts from the ground
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G5/00—Traffic control systems for aircraft, e.g. air-traffic control [ATC]
- G08G5/0047—Navigation or guidance aids for a single aircraft
- G08G5/006—Navigation or guidance aids for a single aircraft in accordance with predefined flight zones, e.g. to avoid prohibited zones
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G5/00—Traffic control systems for aircraft, e.g. air-traffic control [ATC]
- G08G5/04—Anti-collision systems
- G08G5/045—Navigation or guidance aids, e.g. determination of anti-collision manoeuvers
Landscapes
- Engineering & Computer Science (AREA)
- Aviation & Aerospace Engineering (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Image Generation (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种水平维度空域冲突检测方法,包括:构建方向包围盒、方向包围盒相交检测、对相交的方向包围盒进行凸多边形相交检测、水平安全间隔检测;本发明通过构造方向包围盒,先进行方向包围盒相交检测,更精确地筛选出需要进行精细化冲突检测的空域对,筛选效果好,能够减少后续进行多边形相交检测的运算量,提升整体运算效率;本发明进行多边形相交检测时,计算出空域在水平面上的投影多边形的最短距离,与空域之间的水平安全间隔比较,防止“漏检测”,提高了水平维度上空域冲突检测的精确度。
Description
技术领域
本发明属于空中交通管理技术领域,特别涉及一种空域冲突检测方法。
背景技术
民航飞机在飞行过程中的速度、航向、高度等航行诸元变化不大,因此可以根据民航飞机当前的位置以及航行诸元对飞机未来一段时间的位置进行预测,进而提前发现飞行冲突。然而空中除民航飞机外,还有军航飞机,另外各类无人机、炮弹、导弹的发射活动都要用空,例如导弹和歼击机的飞行速度和机动性能要比民航飞机强得多,导致航行诸元变化极快,飞行状态及位置极难预测;在战时,将会有成千上万件武器装备在同一时间单元、有限的战场空间内协同作战,故无法使用现有的民航飞机之间的飞行冲突检测方法对其进行一一检测。因此,可行的做法是各空域用户向空域管理部门申请所需空域,空域用户严格在所申请的空域内活动,而申请的各类型空域可能会相互重叠或者不满足安全间隔标准,即空域之间存在冲突,空域冲突检测即检测出存在冲突的空域,便于以后调整空域布局,保证飞行安全。
空域包含四维信息,包括水平维(二维)、高度维和时间维,因此空域冲突检测需要检测空域在水平维、高度维和时间维上是否存在冲突。空域的高度维即空域的高度范围,用空域的高度下限到高度上限的范围表示,空域的时间维即空域的使用时间范围,用空域的起始时间到结束时间的范围表示。不管是高度维还是时间维,都可以表示为一个区间,因此对于两个空域在高度维和时间维上的冲突检测,通过比较两空域的高度范围区间和时间范围区间有无重叠,这种方法最简单高效,因此现有的专利和论文大多采用这种方法进行空域在高度维和时间维的冲突检测。但空域冲突检测的最大难点在于水平维的冲突检测,为了解决水平维度上空域冲突检测问题:
专利号为ZL 2014102773396的中国专利公开了一种空域冲突的快速检测方法,其中涉及到水平维度上空域冲突检测的部分,先进行边界模板冲突检测,然后采用射线法进行几何结构冲突检测,只要几何结构有重叠就认为会产生空域冲突。专利号为ZL201810868981X的中国专利公开了一种空域冲突检测方法及***,其中涉及到水平维度上空域冲突检测的部分,先构建两边均平行于坐标轴的投影矩形,进行投影矩形的相交检测,然后进行多边形的相交检测,采用的方法是检测两个多边形的每一对线段是否相交,只要有线段相交,即认为产生水平维度上的空域冲突。
以上述两个专利中提到的方法为代表的现有技术,对于空域在水平维度上的冲突检测还存在以下两点不足:
(1)用平行于坐标轴的矩形边界模板或者投影矩形将空域框起来,本质上都是一种平行于坐标轴的包围盒,即轴向包围盒(Aligned Axis Bounding Boxes,AABB),轴向包围盒的紧密性差,若一片区域内存在大量的空域,则空域间的轴向包围盒极易发生重叠,进行初步冲突筛选的效果不好,导致需要进行精细化相交测试的空域对数量并没有明显减少,计算效率不高。
(2)进行空域的几何结构相交检测时,认为只要几何结构不相交,空域就不存在冲突,没有考虑空域在水平维度上的最小安全间隔,空域在水平维度上的最小安全间隔即水平安全间隔。实际上,当空域的几何结构不相交时,也可能出现空域之间的最短距离小于水平安全间隔而存在冲突的情况。因此容易导致在水平维度上存在冲突的空域没有被检测出,造成“漏检测”,检测精确度低。
发明内容
为了克服现有技术不足,本发明提供一种精确的水平维度上空域冲突检测方法,包括:
步骤1:构建方向包围盒,即构建空域在水平维度上的方向包围盒;
步骤2:方向包围盒相交检测,即判断空域的方向包围盒是否相交,若空域的方向包围盒不相交,无需进行后续步骤;
步骤3:对相交的方向包围盒进行凸多边形相交检测,即对步骤2中包围盒相交的空域继续进行相交检测,迭代构造三角形单形体,判断三角形单形体与坐标原点的位置关系;
步骤4:水平安全间隔检测,即比较两个不相交凸多边形的最短距离与空域的水平安全间隔的关系,最终判定空域冲突与否。
进一步的,
步骤1具体包括:
步骤1-1:将非多边形空域近似为凸多边形空域;
步骤1-2:构造凸多边形空域的方向包围盒;
步骤2具体包括:
步骤2-1:检测两个方向包围盒在第1条分离轴上的投影是否重叠;
步骤2-2:检测两个方向包围盒在第2条分离轴上的投影是否重叠;
步骤2-3:检测两个方向包围盒在3条分离轴上的投影是否重叠;
步骤2-4:检测两个方向包围盒在4条分离轴上的投影是否重叠;
步骤3具体包括:
步骤3-1:计算出三角形单形体的第一个顶点;
步骤3-2:计算出三角形单形体的第二个顶点;
步骤3-3:计算出三角形单形体的第三个顶点;
步骤3-4:判定原点与三角形单形体的位置关系;
步骤3-5:迭代构造新的三角形单形体;
步骤3-6:判定是否退出迭代;
步骤3-7:判定原点与迭代得到的新的三角形单形体的位置关系;
步骤4中去除了上一步迭代得到的三角形单形体中距离原点最远的顶点,余下的两个顶点记为M(xM,yM),N(xN,yN);分别计算原点到以点M和点N为端点的线段LMN的距离SMN,以及原点到点M的距离SM和原点到点N的距离SN,3个距离中的最小值即为两个不相交凸多边形的最短距离Smin;将Smin与空域的水平安全间隔Ssafe_1相比较;若Smin≥Ssafe_1,则最终判定两个空域在水平维度上无冲突;否则,最终判定两个空域在水平维度上存在冲突。
与现有技术相比,本发明的有益效果是:1、通过构造方向包围盒(OrientedBounding Boxes,OBB),先进行方向包围盒相交检测,更精确地筛选出需要进行精细化冲突检测的空域对,筛选效果好,能够减少后续进行多边形相交检测的运算量,提升整体运算效率。2、进行多边形相交检测时,计算出空域在水平面上的投影多边形的最短距离,与空域之间的水平安全间隔比较,防止“漏检测”,提高了水平维度上空域冲突检测的精确度。
附图说明
图1为本发明方法流程框图;
图2为扇形空域近似为凸多边形空域示意图;
图3为扇形空域的扇形半径与射线Lx的两种关系示意图;
图4为跑道形空域近似为凸多边形空域示意图;
图5为构造空域的方向包围盒示意图;
图6为方向包围盒相交检测示意图;
图7为计算三角形单形体第一个顶点坐标示意图;
图8为围成包含多个离散点的凸多边形的示意图;
图9为仿真实验1中的3个空域示意图;
图10为仿真实验1中的3个空域的方向包围盒相交检测示意图;
图11为仿真实验2中本发明方法与现有技术在冲突检测所需时间的对比曲线图;
图12为仿真实验2中本发明方法与现有技术在冲突检测成功率的对比曲线图。
具体实施方式
为使本发明的目的、技术方案以及优势更加明晰,下面结合附图和实施例对本发明的内容进行进一步详细说明。
空域在水平维度上的形状分为凸多边形、圆形、扇形和跑道形四大类,空域在水平维度上的形状没有凹多边形,因为凹多边形空域对航空器在空域内活动来讲非常不方便,所以空域在水平维度上的形状不包括凹多边形。
在本发明的一个实施例中,将某一区域内所有空域在水平维度上的投影放在同一个二维平面直角坐标系下,坐标横轴为X轴,坐标纵轴为Y轴,两两空域之间逐对进行水平维度上的冲突检测。
如图1所示,本发明方法包括4个步骤:
步骤1:构建方向包围盒;
步骤2:方向包围盒相交检测;
步骤3:凸多边形相交检测;
步骤4:水平安全间隔检测。
其中:
步骤1:构建方向包围盒,即构建空域在水平维度上的方向包围盒。本发明方法构建的方向包围盒紧密性更好,能够更加精确地筛选出包围盒发生碰撞的空域对,减少后续步骤的计算量。
步骤1具体包括:
步骤1-1:将非多边形空域近似为凸多边形空域。便于用统一的方法进行方向包围盒的构建以及后续步骤的多边形相交检测。
步骤1-1具体包括:
步骤1-1-1:将圆形空域近似为凸多边形空域。
描述一个圆形空域用到圆形圆心(xyuan,yyuan)和圆形半径ryuan。以圆形圆心为起点,平行于X轴作一条射线,射线方向为X轴正向。射线与圆的交点,记为点H。将圆形圆心到点H的线段按照逆时针旋转,每隔nj o在圆上取一个点,共取得Nj个点,其中函数floor代表向下取整,例如floor(1.7)=1。用这Nj个点依次连线构成的凸多边形近似表示圆形空域。
设第j个点的坐标为(xj,yj),其中1≤j≤Nj,j为整数。依次计算出Nj个点的坐标,计算方法为:
步骤1-1-2:将扇形空域近似成凸多边形空域。
扇形定义为一条圆弧和经过这条圆弧两端的两条扇形半径所围成的图形。因此,如图2(a)所示,描述一个扇形空域要用到扇形圆心(xshan,yshan)、扇形半径rshan、扇形起始角度θq、扇形终止角度θz。以扇形圆心为起点,做一条平行于X轴的射线Lx,射线Lx的方向为X轴正向。从射线Lx的正向开始逆时针旋转,直至遇到第一条扇形半径(即扇形半径1),中间所围成的夹角为扇形起始角度;从射线Lx开始逆时针旋转,直至遇到第二条扇形半径(即扇形半径2),中间所围成的夹角为扇形终止角度。
若扇形的两条扇形半径没有被射线Lx隔开,如图3(a)所示。这种情况下,从扇形起始角度θq开始,每增加ng o在扇形圆弧上取一个点,在圆弧上共取个点,函数floor代表向下取整。在圆弧上所取的第ii个点的坐标为(xii,yii),其中ii为整数。坐标计算公式为:
若扇形的两条扇形半径被射线Lx隔开,如图3(b)所示。这种情况下,从扇形终止角度θz开始,每增加ng o在扇形圆弧上取一个点,在圆弧上共取个点,函数floor代表向下取整。在圆弧上所取的第ii个点的坐标为(xii,yii),其中ii为整数。坐标计算公式为:
扇形起始角度θq和终止角度θz在圆弧上对应的两个端点,加上在圆弧上所取的点,共同组成了圆弧上的点集合。扇形空域近似成圆心和圆弧上的点集合共同围成的凸多边形,如图2(b)所示。
步骤1-1-3:将跑道形空域近似成凸多边形空域。
如图4(a)所示,描述一个跑道形空域需要空域长轴与X轴正向的夹角β、两端的跑道形空域的两个圆心以及跑道形空域的半径rpao。若跑道形空域的两个圆心的纵坐标不相等,则纵坐标较大的圆心为P_1(x1pao,y1pao),纵坐标较小的圆心为P_2(x2pao,y2pao)。若跑道形空域的两个圆心的纵坐标相等,则比较横坐标,横坐标较大的圆心为P_1(x1pao,y1pao),横坐标较小的圆心为P_2(x2pao,y2pao)。在跑道形空域的圆心P_1所对应的半圆上,每间隔np o取一个点,共取Np个点,其中函数floor代表向下取整,设所取的第k个点的坐标为(x1k,y1k)。在跑道形空域的圆心P_2所对应的半圆上,每间隔np o取一个点,共取Np个点,其中函数floor代表向下取整,设所取的第k个点的坐标为(x2k,y2k)。其中1≤k≤Np,k为整数。坐标计算公式为:
将跑道形空域的圆心P_1所对应的半圆上所取的Np个点和圆心P_2所对应的半圆上所取的Np个点,共计2Np个点连接成凸多边形,跑道形空域即近似成凸多边形,如图4(b)所示。
步骤1-2:构造凸多边形空域的方向包围盒。
将圆形、扇形、跑道形等三类非多边形空域近似为凸多边形空域,与原本就是凸多边形的空域一起,用构造凸多边形空域的方向包围盒的统一方法,构造出4大类不同形状空域的方向包围盒,便于进行包围盒相交检测。
步骤1-2具体包括:
步骤1-2-1:构造凸多边形顶点坐标矩阵。
设凸多边形共有m个顶点,第i个顶点坐标表示为(xi,yi),其中1≤i≤m,i为整数。将m个顶点坐标组成矩阵A,矩阵A为m行2列的矩阵,矩阵A每行为一个顶点的坐标,第1列为所有顶点的行坐标组成的向量,第2列为所有顶点的列坐标组成的向量。
步骤1-2-2:顶点坐标矩阵零均值化。
求矩阵A的每一个列向量的均值,并用每一个列向量元素减去该列向量的均值,得到零均值化矩阵F;
步骤1-2-3:求零均值化矩阵F的两个列向量的协方差矩阵C。
步骤1-2-4:求出协方差矩阵C的特征值和特征向量。
协方差矩阵C有2个特征值和2个特征向量。若2个特征值不相等,则设较大特征值为z1,对应的特征向量为n1,较小特征值为z2,对应的特征向量为n2。若2个特征值相等,则随机选取一个特征值作为z1,对应的特征向量为n1;另外一个特征值作为z2,对应的特征向量为n2。构造矩阵N,其中N=[n1,n2]。特征向量n1的方向即为方向包围盒第1条分离轴的方向;特征向量n2的方向即为方向包围盒第2条分离轴的方向。
步骤1-2-5:计算凸多边形顶点坐标在两个分离轴上的最大和最小投影坐标。
b1为凸多边形顶点坐标在方向包围盒第1条分离轴上的投影坐标组成的向量,b2为凸多边形顶点坐标在方向包围盒第2条分离轴上的投影坐标组成的向量。b1,b2均为m行1列的向量,每一行代表一个顶点坐标在分离轴上的投影坐标。b1,b2的计算方法为:
b1=A×n1,b2=A×n2
分别求出向量b1中元素的最大值xmax和最小值xmin,以及向量b2中的元素的最大值ymax和最小值ymin,即得到凸多边形顶点坐标在方向包围盒两个分离轴上的最大和最小投影坐标。
步骤1-2-6:计算方向包围盒的参数。
方向包围盒的参数由长、宽、中心点坐标和方向共同确定,方向为两条分离轴的方向,也即为特征向量n1和n2的方向。设L1为方向包围盒的长,L2为方向包围盒的宽,计算方法为:
方向包围盒中心点坐标(xc,yc)的计算方法为:
上式中,N-1代表矩阵N的逆矩阵。
为了使步骤1-2的过程更加清楚,举例说明构造空域的方向包围盒的过程,如图5所示,水平坐标轴代表横坐标轴,垂直坐标轴代表纵坐标轴。设该空域在水平维度的投影为凸多边形,由5个顶点组成,分别是(37,17)、(41,38),(97,63)、(110,36)和(125,64)。图5中虚线围成的矩形为该空域的方向包围盒。
按照步骤1-2-1的方法构造顶点坐标矩阵A。
按照步骤1-2-2的方法进行顶点坐标矩阵的零均值化,得到矩阵F。
按照步骤1-2-3的方法求矩阵F的两个列向量的协方差矩阵C。
按照步骤1-2-4的方法求出协方差矩阵C的特征值和特征向量。
协方差矩阵C的较大特征值为1504.1,对应的特征向量为[-0.9280 -0.3727]T,较小特征值为126.5,对应的特征向量为[0.3727 -0.9280]T,两个特征向量的方向分别对应第1、2个分离轴的方向,并构造矩阵N。
按照步骤1-2-5的方法计算凸多边形顶点坐标在两个分离轴上的最大和最小投影坐标。
则凸多边形顶点坐标在第1个分离轴上的最大投影为坐标为-40.6700,最小投影为坐标为-139.8463,在第2个分离轴上的最大投影为坐标为7.5862,最小投影为坐标为-22.3135。
按照步骤1-2-5的方法计算方向包围盒的参数。
方向包围盒的长为99.1762和宽为29.8997,方向包围盒中心点坐标为(81.0124,40.4692)。
步骤2:方向包围盒相交检测。首先判断空域的方向包围盒是否相交,若空域的方向包围盒不相交,无需进行后续步骤,减少了后续的计算量。
如图6所示,利用分离轴定理进行两两空域的方向包围盒相交检测,两个方向包围盒共有4条分离轴,依次检测两方向包围盒在4条分离轴上是否相交,若两个方向包围盒在4条分离轴上的投影都重叠,则判定两方向包围盒相交,转入步骤3。若两个方向包围盒在其中1条分离轴上的投影不重叠,则两方向包围盒不相交,无需再检测其它分离轴上的投影是否重叠,可直接判定两空域之间肯定不相交,即两空域在水平维度上无冲突,减少了计算量,提升了计算效率。
步骤2具体包括:
步骤2-1:检测两个方向包围盒在第1条分离轴上的投影是否重叠。若重叠,则继续进行步骤2-2;若不重叠,直接判定两个方向盒不相交,无需进行后续步骤,减少了计算量。
按照步骤1-1到步骤1-4中的方法,由空域1的顶点坐标矩阵计算出其协方差矩阵对应的2个特征向量和2个特征值,若2个特征值不相等,设较大特征值为z11,对应的特征向量为n11,较小特征值为z12,对应的特征向量为n12;若2个特征值相等,则随机选取一个特征值作为z11,对应的特征向量为n11;另外一个特征值作为z12,对应的特征向量为n12。按照同样的步骤,由空域2的顶点坐标矩阵计算出其协方差矩阵对应的2个特征向量和2个特征值,若2个特征值不相等,设较大特征值为z21,对应的特征向量为n21,较小特征值为z22,对应的特征向量为z22;若2个特征值相等,则随机选取一个特征值作为z21,对应的特征向量为n21;另外一个特征值作为z22,对应的特征向量为z22。4个特征向量n11、n12、n21、n22的方向分别依次对应第1、2、3、4条分离轴的方向。按照步骤1-5,分别计算出空域1的顶点坐标矩阵在第1条分离轴上的投影坐标的最大值为x11_max和最小值x11_min。同样,按照步骤1-5,计算出空域2的顶点坐标矩阵在第1条分离轴上的投影坐标的最大值为x21_max和最小值x21_min。
若x11_min<x11_max<x21_min<x21_max或者x21_min<x21_max<x11_min<x11_max,则两个方向包围盒在第1条分离轴上的投影上不重叠,即两个空域的包围盒不相交,直接判定在水平维度上两个空域不存在冲突,继续进行下一对空域冲突检测。否则,两个方向包围盒在第1条分离轴上的投影上重叠,转入步骤2-2。
步骤2-2:检测两个方向包围盒在第2条分离轴上的投影是否重叠。若重叠,则继续进行步骤2-3;若不重叠,直接判定两个方向盒不相交,无需进行后续步骤,减少了计算量。
按照步骤1-5,分别计算出空域1的顶点坐标矩阵在第2条分离轴上的投影坐标的最大值为x12_max和最小值x12_min。同样,按照步骤1-5,计算出空域2的顶点坐标矩阵在第2条分离轴上的投影坐标的最大值为x22_max和最小值x22_min。
若x12_min<x12_max<x22_min<x22_max或者x22_min<x22_max<x12_min<x12_ma,则两个方向包围盒在第2条分离轴上的投影上不重叠,即两个空域的包围盒不相交,直接判定在水平维度上两个空域不存在冲突,继续进行下一对空域冲突检测。否则,两个方向包围盒在第2条分离轴上的投影上重叠,转入步骤2-3。
步骤2-3:检测两个方向包围盒在3条分离轴上的投影是否重叠。步骤2-3的作用是:若重叠,则继续进行步骤2-4;若不重叠,直接判定两个方向盒不相交,无需进行后续步骤,减少了计算量。
按照步骤1-5,分别计算出空域1的顶点坐标矩阵在第3条分离轴上的投影坐标的最大值为x13_max和最小值x13_min。同样,按照步骤1-5,计算出空域2的顶点坐标矩阵在第3条分离轴上的投影坐标的最大值为x23_max和最小值x23_min。
若x13_min<x13_max<x23_min<x23_max或者x23_min<x23_max<x13_min<x13_max,则两个方向包围盒在第3条分离轴上的投影上不重叠,即两个空域的包围盒不相交,直接判定在水平维度上两个空域不存在冲突,继续进行下一对空域冲突检测。否则,两个方向包围盒在第3条分离轴上的投影上重叠,转入步骤2-4。
步骤2-4:检测两个方向包围盒在4条分离轴上的投影是否重叠。步骤2-4的作用是:若重叠,判定两个方向盒相交,转入步骤3;若不重叠,判定两个方向盒不相交,无需进行后续步骤,减少了计算量。
按照步骤1-5,分别计算出空域1的顶点坐标矩阵在第4条分离轴上的投影坐标的最大值为x14_max和最小值x14_min。同样,按照步骤1-5,计算出空域2的顶点坐标矩阵在第4条分离轴上的投影坐标的最大值为x24_max和最小值x24_min。
若x14_min<x14_max<x24_min<x24_max或者x24_min<x24_max<x14_min<x14_ma,则两个方向包围盒在第4条分离轴上的投影上不重叠,即两个空域的包围盒不相交,直接判定在水平维度上两个空域不存在冲突,继续进行下一对空域冲突检测。否则,两个方向包围盒在第4条分离轴上的投影上重叠,结合两个方向包围盒在第1、2、3条分离轴上的投影都重叠,则两个方向包围盒在所有的4条分离轴上的投影都重叠,即两个包围盒相交,转入步骤3,进行凸多边形相交检测。
步骤3:对相交的方向包围盒进行凸多边形相交检测。即对步骤2中包围盒相交的空域继续进行精细化相交检测,迭代构造三角形单形体,判断三角形单形体与坐标原点的位置关系,提高冲突检测的精确度。
将步骤2中相交方向包围盒设为凸多边形1和凸多边形2,利用GJK算法进行精细化的凸多边形相交检测。GJK算法是由Gilbert、Johnson和Keerthi三名学者创立,取三名学者名字的首字母而得名。GJK算法的核心思想是当两个凸多边形相交时,必须至少重合一个点,否则不会产生相交,因此在两个凸多边形中,必能各自找到一个点,使两个点的坐标相减为原点,原点O坐标为(0,0)。用凸多边形1所包含的坐标减去凸多边形2所包含的坐标,得到一系列点坐标,这些点坐标的集合称为闵可夫斯基差集。如果闵可夫斯基差集中包含原点,则意味着两个凸多边形相交。而凸多边形有无数个点组成,显然是无法计算出完整的闵可夫斯基差集。实际上,只需在闵可夫斯基差集内找到几个点,若能围成一个包含原点的简单多边形,即可判定闵可夫斯基差集包含原点。对于2维空间,最简单多边形为三角形,即三角形单形体。因为GJK算法本身就是一个不断迭代的算法,直至满足退出迭代条件,否则将一直迭代计算下去。在步骤3中,利用GJK算法不断迭代构造三角形单形体,判断三角形单形体与坐标原点的位置关系,快速地进行凸多边形相交检测。
步骤3-1:计算出三角形单形体的第一个顶点。三角形单形体由三个顶点构成,首先确定三角形单形体的第一个顶点。
具体步骤包括:
步骤3-1-1:计算凸多边形1和凸多边形2的初始方向d1。
如图7所示。对于步骤2中包围盒相交的两个空域,才需要进行步骤3,并且在步骤1生成空域包围盒的过程中,已经将不是凸多边形的空域都近似成凸多边形,凸多边形的方向包围盒的中心点同时也是凸多边形的中心点,两者计算方法一样。利用步骤1中计算方向包围盒中心点坐标(xc,yc)的方法,计算出凸多边形1的中心点C1(xc1,yc1)和凸多边形2的中心点C2(xc2,yc2)。初始方向d1即为从C1到C2的向量nc1=(xc2-xc1,yc2-yc1)。
步骤3-1-2:计算凸多边形1在初始方向d1上的最大投影对应的坐标(X11,Y11)。
将凸多边形1的顶点坐标(x1i,y1i)逐个与向量nc1进行点乘,计算结果为x1i×(xc2-xc1)+y1i×(yc2-yc1),找到计算结果中最大的值对应的顶点坐标,记为(X11,Y11)。
步骤3-1-3:计算凸多边形2在初始方向d1的反方向(-d1)上的最大投影对应的坐标(X21,Y21)。
将凸多边形2的顶点坐标(x2i,y2i)逐个与向量-nc1进行点乘,计算结果为x2i×(xc1-xc2)+y2i×(yc1-yc2),找到计算结果中最大的值对应的顶点坐标,记为(X21,Y21)。
步骤3-1-4:坐标相减,得到三角形的第一个顶点。将坐标(X21,Y21)减去坐标(X11,Y11),得到三角形的第一个顶点A1(X21-X11,Y21-Y11)。
步骤3-2:计算出三角形单形体的第二个顶点。
具体步骤包括:
步骤3-2-1:选择第2次迭代方向d2。
第2次迭代方向d2为将初始方向d1取反,即为向量nc2=(xc1-xc2,yc1-yc2)。
步骤3-2-2:计算凸多边形1在方向d2上的最大投影对应的坐标(X12,Y12)。
将凸多边形1的顶点坐标(x1i,y1i)逐个与向量nc2进行点乘,计算结果为x1i×(xc1-xc2)+y1i×(yc1-yc2),找到计算结果中最大的值对应的顶点坐标,记为(X12,Y12)。
步骤3-2-3:计算凸多边形2在第2次迭代方向d2的反方向(-d2)上的最大投影对应的坐标(X22,Y22)。
将凸多边形2的顶点坐标(x2i,y2i)逐个与向量-nc2进行点乘,计算结果为x2i×(xc2-xc1)+y2i×(yc2-yc1),找到计算结果中最大的值对应的顶点坐标,记为(X22,Y22)。
步骤3-2-4:坐标相减,得到三角形的第二个顶点。将坐标(X22,Y22)减去坐标(X12,Y12),得到三角形的第二个顶点A2(X22-X12,Y22-Y12)。
步骤3-3:计算出三角形单形体的第三个顶点。
具体步骤包括:
步骤3-3-1:选择第3次迭代方向d3。
步骤3-3-2:计算凸多边形1在方向d3上的最大投影对应的坐标(X13,Y13)。
将凸多边形1的顶点坐标(x1i,y1i)逐个与向量nc3进行点乘,找到计算结果中最大的值对应的顶点坐标,记为(X13,Y13)。
步骤3-3-3:计算凸多边形2在方向d3的反方向(-d3)上的最大投影对应的坐标(X23,Y23)。
将凸多边形2的顶点坐标(x2i,y2i)逐个与向量-nc3进行点乘,找到计算结果中最大的值对应的顶点坐标,记为(X23,Y23)。
步骤3-3-4:坐标相减,得到三角形单形体的第三个顶点。
将坐标(X23,Y23)减去坐标(X13,Y13),得到三角形单形体的第三个顶点A3(X23-X13,Y23-Y13)。
步骤3-4:判定原点与三角形单形体的位置关系。若三角形单形体包含原点,则两个凸多边形相交,否则需要进行步骤3-5,构建新的三角形单形体。
具体步骤包括:
步骤3-4-1:得到三条分离轴。分别计算出向量及其垂直向量nL1、及其垂直向量nL2、及其垂直向量nL3。向量nL1为三角形第1条分离轴的方向、向量nL2为三角形第2条分离轴的方向、向量nL3为三角形第3条分离轴的方向。
步骤3-4-2:计算三角形单形体三个顶点坐标在第1条分离轴上的投影。
分别将3个顶点坐标与向量nL1点乘,比较出3个计算结果的最大值和最小值,即为三角形单形体三个顶点坐标在第1条分离轴上的投影的最大值qmax1和最小值qmin1。若qmin1≤0≤qmax,转入步骤3-4-3;否则,转入步骤3-5。
步骤3-4-3:计算三角形单形体三个顶点坐标在第2条分离轴上的投影。
分别将3个顶点坐标与向量nL2点乘,比较出3个计算结果的最大值和最小值,即为三角形单形体三个顶点坐标在第2条分离轴上的投影的最大值qmax2和最小值qmin2。若qmin2≤0≤qmax,转入步骤3-4-4;否则,转入步骤3-5。
步骤3-4-4:计算三角形单形体三个顶点坐标在第3条分离轴上的投影。
分别将3个顶点坐标与向量nL3点乘,比较出3个计算结果的最大值和最小值,即为三角形单形体三个顶点坐标在第3条分离轴上的投影的最大值qmax3和最小值qmin3。若qmin3≤0≤qmax,即三角形单形体三个顶点坐标与原点坐标在所有的3条分离轴上的投影均重叠,三个点A1、A2、A3围成的三角形包含原点,直接判定两个凸多边形相交;否则,转入步骤3-5。
步骤3-5:迭代构造新的三角形单形体。即不断迭代构建新的三角形单形体,重新判定新的三角形单形体与原点的位置关系。
具体步骤包括:
步骤3-5-1:去掉原三角形单形体三个顶点A1、A2、A3中距离原点O最远的点。
计算线段OA1、OA2、OA3的长度,比较出最短的长度,去掉对应的点。余下的两个点作为新的三角形单形体的两个顶点。
步骤3-5-2:计算新的迭代方向dnew。按照步骤3-3-1的方法,计算出新的迭代方向dnew,对应的向量为nnew。
步骤3-5-3:计算出新的三角形单形体的第三个顶点。按照步骤3-3-2到步骤3-3-4的方法,计算出新的三角形单形体的第三个顶点Anew(Xnew,Ynew)。
步骤3-6:判定是否退出迭代。即判断GJK算法是否还需要继续迭代下去。
若nnewg(Xnew,Ynew)<0,即当新的迭代方向对应的向量与最新添加的顶点坐标的点积小于0时,迭代退出,不再进行后续步骤,此时,无法构造包含原点的三角形单形体,判定两个凸多边形不相交。否则,转入步骤3-7。
步骤3-7:判定原点与迭代得到的新的三角形单形体的位置关系,即通过迭代得到的新的三角形单形体与原点的位置关系,判定两个凸多边形是否相交。
按照步骤3-4的方法,若新的三角形单形体包含原点,判定两个凸多边形相交;否则,转入步骤3-5,重复进行步骤3-5、3-6。
对于凸多边形相交的两个空域,直接判定在水平维度上存在冲突;对于凸多边形不相交的两个空域,转入步骤4。
步骤4:水平安全间隔检测。即比较两个不相交凸多边形的最短距离与空域的水平安全间隔的关系,最终判定空域冲突与否,进一步提升冲突检测的精确度。
对于步骤3中退出迭代,判定为不相交的两个凸多边形,需要计算出它们的最短距离Smin。
当按照步骤3-6的方法,判定退出迭代时,在前一步骤3-5-1中,去除了上一步迭代得到的三角形单形体中距离原点最远的顶点,余下的两个顶点记为M(xM,yM),N(xN,yN)。分别计算原点到以点M和点N为端点的线段LMN的距离,以及原点到点M和N的距离,3个距离中的最小值即为两个不相交凸多边形的最短距离Smin。
原点到线段LMN的距离计算方法为:
原点到点M的距离SM和原点到点N的距离SN的计算方法为:
SMN、SM和SN中的最小值,即为即为两个不相交凸多边形的最短距离Smin。将Smin与空域的水平安全间隔Ssafe_1相比较。若Smin≥Ssafe_1,则最终判定两个空域在水平维度上无冲突;否则,最终判定两个空域在水平维度上存在冲突。
在本发明的另一个具体实施例中
对于步骤1-1-1将圆形空域近似为凸多边形空域,nj o最好取10°~20°;对于步骤1-1-2将扇形空域近似成凸多边形空域,ng o最好取5°~10°;对于步骤1-1-3将跑道形空域近似成凸多边形空域,np o最好取10°~20°。这样取值能兼顾近似的程度和近似成多边形的边数,减少后续计算量。
在本发明的另一个具体实施例中
对于步骤2空域的方向包围盒相交检测,4条分离轴的先后检测顺序可以随机选择,但其中运算效率最快的检测顺序为:第2条、第4条、第1条、第3条,即先检测两个包围盒在较小特征值对应的分离轴上的投影是否重叠,再检测较大特征值对应的分离轴上的投影是否重叠。这样能够尽可能快的找到两个方向包围盒的分离轴。
在本发明的另一个具体实施例中
对于步骤3-1-1,初始方向的选取还可采用以下方法:在两个凸多边形内部或边上各取一点,两点的连线方向即为初始方向。这样做的优点是初始方向选取简单,缺点是算法退出迭代的速度慢。
在本发明的另一个具体实施例中
步骤3中相交的方向包围盒进行凸多边形相交检测,还可采用以下方法:
根据GJK算法原理,若凸多边形1有K1个顶点,凸多边形2有K2个顶点,则只需要进行K1×K2次坐标相减运算,即可得到两个凸多边形顶点的闵可夫斯基差集。利用Graham扫描法将顶点的闵可夫斯基差集中包含的点坐标围成凸多边形G。判定凸多边形G与原点的位置关系,若原点位于凸多边形G内部或边上,则凸多边形1和凸多边形2相交,两空域在水平维度上存在冲突;若原点位于凸多边形G外部,则凸多边形1和凸多边形2不相交。
具体包括:
步骤3-1:构建顶点的闵可夫斯基差集。即得到两个凸多边形所有顶点相减的闵可夫斯基差集,为下一步构建包含闵可夫斯基差集内所有坐标的凸多边形G做准备。
用凸多边形1的第1个顶点坐标逐个减凸多边形2的K2个顶点坐标;然后用凸多边形1的第2个顶点坐标逐个减凸多边形2的K2个顶点坐标,直至用凸多边形1的第K1个顶点坐标逐个减凸多边形2的K2个顶点坐标,共形成K1×K2个坐标,构成顶点的闵可夫斯基差集。坐标相减规则为:坐标(x1,y1)减坐标(x2,y2),得到的坐标为(x1-x2,y1-y2)。
步骤3-2:将顶点的闵可夫斯基差集包含的坐标围成凸多边形G。即构建凸多边形G,用凸多边形G包含顶点的闵可夫斯基差集内的所有坐标,为下一步判定原定与凸多边形G的位置关系做准备。
步骤3-2中具体包括:
步骤3-2-1:幅角排序。
找到闵可夫斯基差集K1×K2个点中,横坐标和纵坐标均最小的点p0,将点p0与其余K1×K2-1个点连接,构造p0点到其余K1×K2-1个点的向量,记为其中1≤j≤(K1×K2-1),j为整数,构造向量的方法为用其余K1×K2-1的坐标分别减去p0点的坐标。分别计算向量与向量之间的幅角φj。计算公式为:
将向量与向量之间的幅角从小到大排序,如果p0点到多个坐标点形成的向量与向量之间的幅角相等,则保留距离p0点最远的坐标点,最终K1×K2-1个点中留下KL个点。留下的点按照幅角φ由小到大的顺序逆时针排序,依次记为
步骤3-2-2:使用堆栈法得到凸多边形G的所有顶点。
设栈中最上面两点为pn-1和pn,新加入栈中的一点为pn+1,n+1≤KL。计算向量与向量的叉积,若叉积小于或等于0,则将pn从栈中删除,同时pn+1入栈;若叉积大于0,则将pn在栈中保留,同时pn+1入栈。
步骤3-2-3:将堆栈中的点从下往上依次连接,得到凸多边形1和凸多边形2的顶点闵可夫斯基差集包含的坐标围成的凸多边形G。
为了使步骤3-2的过程更加清楚,举例说明将顶点闵可夫斯基差集包含的坐标围成凸多边形G,如图8所示。设凸多边形1和凸多边形2的顶点闵可夫斯基差集包含的坐标为(37,17)、(41,38)、(47,29)(52,28)、(60,40)、(63,36)、(97,63)、(100,49)、(110,36)、(125,64)。进过步骤3-2-1和3-2-2,得到堆栈中凸多边形G的所有顶点从下往上依次为(37,17)、(110,36)、(125,64)、(97,63)和(41,38),依次连接即可得到凸多边形1和凸多边形2的顶点闵可夫斯基差集包含的坐标围成的凸多边形G。
步骤3-3:判断原点与凸多边形G的位置关系。即通过位置关系判定凸多边形1和凸多边形是否相交。
若原点位于凸多边形G内部或边上,凸多边形1和凸多边形2相交,直接判定两个空域在水平维度上存在冲突。否则,原点位于凸多边形G外部,凸多边形1和凸多边形2不相交。
对于步骤4计算两个不相交凸多边形的最短距离,还可以采用以下方法:
两个不相交凸多边形的最短距离即为原点到凸多边形G的最小距离。依次计算原点到凸多边形G上各条边的距离,从中找到最小距离,即为原点到凸多边形G的最小距离。
为了进一步验证本发明方法在提升水平维度上空域冲突检测精确度上的优越性,本发明方法进行了仿真实验,仿真实验环境为:操作***Windows10,64位;CPU:intel Corei7-105102.3GHz;RAM:16G;仿真软件MATLAB。
仿真实验1:如图9所示,一个区域内,共有3个空域,其中:空域1为三角形空域,顶点坐标为(40,110)、(40,50)、(110,90);空域2为四边形空域,顶点坐标为(80,60)、(150,60)、(130,10)、(100,20);空域3为圆形空域,圆心为(170,85),半径为30千米。
按照步骤1的方法,构建3个空域的方向包围盒,如图10所示,图中虚线围成的矩形为3个空域的方向包围盒。
空域1的方向包围盒的中心点坐标为(69.3,88.9),长为78.6千米,宽为57.4千米,分离轴1的方向为[-0.9571 -0.2898]T,分离轴2的方向为[0.2898 -0.9571]T。
空域2的方向包围盒的中心点坐标为(111.5,40),长为69千米,宽为52.7千米,分离轴1的方向为[-0.9848 0.1735]T,分离轴2的方向为[-0.1735 -0.9848]T。
空域3的方向包围盒的中心点坐标为(175,85),长宽均为30千米,分离轴1的方向为[1 0]T,分离轴2的方向为[0 1]T。
按照步骤2的方法,判定空域1和空域2、空域1和空域3、空域2和空域3的方向包围盒是否相交。结果如下:
空域1和空域2的方向包围盒在4条分离轴上的投影均重叠,因此,空域1和空域2的方向包围盒相交,继续进行步骤3和步骤4的检测。
空域1和空域3的方向包围盒在[0 1]T这条分离轴上的投影不重叠,因此,空域1和空域3的方向包围盒不相交,直接判定空域1与空域3在水平维度上不冲突。
空域2和空域3的方向包围盒在4条分离轴上的投影均重叠,因此,空域2和空域3的方向包围盒相交,继续进行步骤3和步骤4的检测。
按照步骤3的方法,对包围盒相交的空域1和空域2、空域2和空域3这两对空域进行凸多边形快速相交检测,检测结果为:空域1和空域2的凸多边形不相交,空域2和空域3的凸多边形也不相交。
按照步骤4中的方法,计算得到空域1和空域2的最短距离为11.2千米,空域1和空域2的最短距离为2千米。因为空域最小水平安全间隔Ssafe_1设定为10千米,因此,最终判定空域1和空域2在水平维度上无冲突,空域2和空域3在水平维度上存在冲突。
完成上述3个空域在水平维度上的冲突检测,检测成功率100%。现有技术中只要两个凸多边形不相交,即认为无冲突,因此,如果采用现有技术,会得出空域2和空域3在水平维度上无冲突的结论。实际上,空域2和空域3在水平维度上的最短距离小于水平安全间隔,空域2和空域3在水平维度上是存在冲突的。在本仿真实验中,现有技术的检测成功率仅为66.7%。本发明方法由于计算了两个不相交凸多边形的最短距离,并与水平安全间隔相比才能最终确定是否存在冲突,相比现有技术,本发明方法对于水平维度上空域冲突检测成功率更高,精确度更高。
仿真实验2:在一个200千米×200千米的平面范围内,分别随机生成10、30、50、70、100个空域。而后分别采用背景技术中提到的专利(ZL 2014102773396)和专利(ZL01810868981X)的技术方案,与采用本发明方法在水平维度上空域冲突检测的结果做对比。三种方法所需时间对比如图11所示,成功率对比如图12所示。
冲突检测所需时间越短,说明运算效率越高;成功率越高,说明“漏检测”现象越少,空域冲突检测的精确度越高。从图11和图12中的仿真结果来看,本发明方法相比现有技术的运算效率和精确度都有提高。
本发明方法实现了精确的水平维度上空域冲突检测。通过构造紧密性更高的方向包围盒,先进行方向包围盒相交检测,更精确地筛选出需要进行后续精细化多边形冲突检测的空域对,能够减少整体的运算量,提升运算效率。在进行水平维度上多边形空域相交检测时,对于两个不相交的多边形空域并不能确定不存在冲突,因此本方法计算出两个空域在水平维度上的最短距离,将之与空域在水平维度上的最小安全间隔比较,能够更精确地进行水平维度的冲突检测,防止“漏检测”,提升冲突检测的精确度。
Claims (8)
1.一种水平维度空域冲突检测方法,包括:
步骤1:构建方向包围盒,即构建空域在水平维度上的方向包围盒;
步骤2:方向包围盒相交检测,即判断空域的方向包围盒是否相交,若空域的方向包围盒不相交,无需进行后续步骤;
步骤3:对相交的方向包围盒进行凸多边形相交检测,即对步骤2中包围盒相交的空域继续进行相交检测,迭代构造三角形单形体,判断三角形单形体与坐标原点的位置关系;
步骤4:水平安全间隔检测,即比较两个不相交凸多边形的最短距离与空域的水平安全间隔的关系,最终判定空域冲突与否。
2.如权利要求1所述的一种水平维度空域冲突检测方法,其特征在于:
步骤1具体包括:
步骤1-1:将非多边形空域近似为凸多边形空域;
步骤1-2:构造凸多边形空域的方向包围盒;
步骤2具体包括:
步骤2-1:检测两个方向包围盒在第1条分离轴上的投影是否重叠;
步骤2-2:检测两个方向包围盒在第2条分离轴上的投影是否重叠;
步骤2-3:检测两个方向包围盒在3条分离轴上的投影是否重叠;
步骤2-4:检测两个方向包围盒在4条分离轴上的投影是否重叠;
步骤3具体包括:
步骤3-1:计算出三角形单形体的第一个顶点;
步骤3-2:计算出三角形单形体的第二个顶点;
步骤3-3:计算出三角形单形体的第三个顶点;
步骤3-4:判定原点与三角形单形体的位置关系;
步骤3-5:迭代构造新的三角形单形体;
步骤3-6:判定是否退出迭代;
步骤3-7:判定原点与迭代得到的新的三角形单形体的位置关系。
3.如权利要求2所述的一种水平维度空域冲突检测方法,其特征在于:
步骤1-1具体包括:
步骤1-1-1:将圆形空域近似为凸多边形空域;
步骤1-1-2:将扇形空域近似成凸多边形空域;
步骤1-1-3:将跑道形空域近似成凸多边形空域;
步骤1-2具体包括:
步骤1-2-1:构造凸多边形顶点坐标矩阵;
步骤1-2-2:顶点坐标矩阵零均值化;
步骤1-2-3:求零均值化矩阵F的两个列向量的协方差矩阵C;
步骤1-2-4:求出协方差矩阵C的特征值和特征向量;
步骤1-2-5:计算凸多边形顶点坐标在两个分离轴上的最大和最小投影坐标;
步骤1-2-6:计算方向包围盒的参数;
步骤3-1具体包括:
步骤3-1-1:将步骤2中相交方向包围盒设为凸多边形1和凸多边形2,计算凸多边形1和凸多边形2的初始方向d1;
步骤3-1-2:计算凸多边形1在初始方向d1上的最大投影对应的坐标(X11,Y11);
步骤3-1-3:计算凸多边形2在初始方向d1的反方向(-d1)上的最大投影对应的坐标(X21,Y21);
步骤3-1-4:坐标相减,得到三角形的第一个顶点;
步骤3-2具体包括:
步骤3-2-1:选择第2次迭代方向d2;
步骤3-2-2:计算凸多边形1在第2次迭代方向d2上的最大投影对应的坐标(X12,Y12);
步骤3-2-3:计算凸多边形2在第2次迭代方向d2的反方向(-d2)上的最大投影对应的坐标(X22,Y22);
步骤3-2-4:坐标相减,得到三角形的第二个顶点;
步骤3-3具体包括:
步骤3-3-1:选择第3次迭代方向d3;
步骤3-3-2:计算凸多边形1在方向d3上的最大投影对应的坐标(X13,Y13);
步骤3-3-3:计算凸多边形2在方向d3的反方向(-d3)上的最大投影对应的坐标(X23,Y23);
步骤3-3-4:坐标相减,得到三角形单形体的第三个顶点,即将坐标(X23,Y23)减去坐标(X13,Y13),得到三角形单形体的第三个顶点A3(X23-X13,Y23-Y13);
步骤3-4具体包括:
步骤3-4-1:得到三条分离轴;
步骤3-4-2:计算三角形单形体三个顶点坐标在第1条分离轴上的投影;
步骤3-4-3:计算三角形单形体三个顶点坐标在第2条分离轴上的投影;
步骤3-4-4:计算三角形单形体三个顶点坐标在第3条分离轴上的投影;
步骤3-5具体包括:
步骤3-5-1:去掉原三角形单形体三个顶点A1、A2、A3中距离原点O最远的点;
步骤3-5-2:计算新的迭代方向dnew;
步骤3-5-3:计算出新的三角形单形体的第三个顶点;
步骤4中去除了上一步迭代得到的三角形单形体中距离原点最远的顶点,余下的两个顶点记为M(xM,yM),N(xN,yN);分别计算原点到以点M和点N为端点的线段LMN的距离SMN,以及原点到点M的距离SM和原点到点N的距离SN,3个距离中的最小值即为两个不相交凸多边形的最短距离Smin;将Smin与空域的水平安全间隔Ssafe_1相比较;若Smin≥Ssafe_1,则最终判定两个空域在水平维度上无冲突;否则,最终判定两个空域在水平维度上存在冲突。
4.如权利要求3所述的一种水平维度空域冲突检测方法,其特征在于:
步骤1-1-1中圆形圆心(xyuan,yyuan),圆形半径ryuan,以圆形圆心为起点,平行于X轴作一条射线,射线方向为X轴正向;射线与圆的交点,记为点H;将圆形圆心到点H的线段按照逆时针旋转,每隔nj o在圆上取一个点,共取得Nj个点,其中函数floor代表向下取整,用这Nj个点依次连线构成的凸多边形近似表示圆形空域;
设第j个点的坐标为(xj,yj),其中1≤j≤Nj,j为整数;依次计算出Nj个点的坐标,计算方法为:
步骤1-1-2中扇形圆心(xshan,yshan)、扇形半径rshan、扇形起始角度θq、扇形终止角度θz,以扇形圆心为起点,做一条平行于X轴的射线Lx,射线Lx的方向为X轴正向;从射线Lx的正向开始逆时针旋转,直至遇到第一条扇形半径,即扇形半径1,中间所围成的夹角为扇形起始角度θq;从射线Lx开始逆时针旋转,直至遇到第二条扇形半径,即扇形半径2,中间所围成的夹角为扇形终止角度θz;
若扇形的两条扇形半径没有被射线Lx隔开,从扇形起始角度θq开始,每增加ng o在扇形圆弧上取一个点,在圆弧上共取个点,函数floor代表向下取整;在圆弧上所取的第ii个点的坐标为(xii,yii),其中ii为整数;坐标计算公式为:
若扇形的两条扇形半径被射线Lx隔开,从扇形终止角度θz开始,每增加ng o在扇形圆弧上取一个点,在圆弧上共取个点,函数floor代表向下取整;在圆弧上所取的第ii个点的坐标为(xii,yii),其中ii为整数;坐标计算公式为:
扇形起始角度θq和终止角度θz在圆弧上对应的两个端点,加上在圆弧上所取的点,共同组成了圆弧上的点集合;扇形空域近似成圆心和圆弧上的点集合共同围成的凸多边形;
步骤1-1-3中跑道形空域长轴与X轴正向夹角β、跑道形空域半径rpao,若跑道形空域的两个圆心的纵坐标不相等,则纵坐标较大的圆心为P_1(x1pao,y1pao),纵坐标较小的圆心为P_2(x2pao,y2pao);若跑道形空域的两个圆心的纵坐标相等,则比较横坐标,横坐标较大的圆心为P_1(x1pao,y1pao),横坐标较小的圆心为P_2(x2pao,y2pao);在跑道形空域的圆心P_1所对应的半圆上,每间隔np o取一个点,共取Np个点,其中函数floor代表向下取整,设所取的第k个点的坐标为(x1k,y1k);在跑道形空域的圆心P_2所对应的半圆上,每间隔np o取一个点,共取Np个点,其中函数floor代表向下取整,设所取的第k个点的坐标为(x2k,y2k);其中1≤k≤Np,k为整数;坐标计算公式为:
将跑道形空域的圆心P_1所对应的半圆上所取的Np个点和圆心P_2所对应的半圆上所取的Np个点,共计2Np个点连接成凸多边形,跑道形空域即近似成凸多边形;
步骤1-2-1中设凸多边形共有m个顶点,第i个顶点坐标表示为(xi,yi),其中1≤i≤m,i为整数;将m个顶点坐标组成矩阵A,矩阵A为m行2列的矩阵,矩阵A每行为一个顶点的坐标,第1列为所有顶点的行坐标组成的向量,第2列为所有顶点的列坐标组成的向量;
步骤1-2-2中求矩阵A的每一个列向量的均值,并用每一个列向量元素减去该列向量的均值,得到零均值化矩阵F;
步骤1-2-4中协方差矩阵C有2个特征值和2个特征向量;若2个特征值不相等,则设较大特征值为z1,对应的特征向量为n1,较小特征值为z2,对应的特征向量为n2;若2个特征值相等,则随机选取一个特征值作为z1,对应的特征向量为n1;另外一个特征值作为z2,对应的特征向量为n2;构造矩阵N,其中N=[n1,n2];特征向量n1的方向即为方向包围盒第1条分离轴的方向;特征向量n2的方向即为方向包围盒第2条分离轴的方向;
步骤1-2-5中b1为凸多边形顶点坐标在方向包围盒第1条分离轴上的投影坐标组成的向量,b2为凸多边形顶点坐标在方向包围盒第2条分离轴上的投影坐标组成的向量;b1,b2均为m行1列的向量,每一行代表一个顶点坐标在分离轴上的投影坐标;b1,b2的计算方法为:
b1=A×n1,b2=A×n2
分别求出向量b1中元素的最大值xmax和最小值xmin,以及向量b2中的元素的最大值ymax和最小值ymin,即得到凸多边形顶点坐标在方向包围盒两个分离轴上的最大和最小投影坐标;
步骤1-2-6中方向包围盒的参数由长、宽、中心点坐标和方向共同确定,方向为两条分离轴的方向,也即为特征向量n1和n2的方向;设L1为方向包围盒的长,L2为方向包围盒的宽,计算方法为:
方向包围盒中心点坐标(xc,yc)的计算方法为:
上式中,N-1代表矩阵N的逆矩阵;
步骤2-1中按照步骤1-1到步骤1-4中的方法,由空域1的顶点坐标矩阵计算出其协方差矩阵对应的2个特征向量和2个特征值,若2个特征值不相等,设较大特征值为z11,对应的特征向量为n11,较小特征值为z12,对应的特征向量为n12;若2个特征值相等,则随机选取一个特征值作为z11,对应的特征向量为n11;另外一个特征值作为z12,对应的特征向量为n12;按照同样的步骤,由空域2的顶点坐标矩阵计算出其协方差矩阵对应的2个特征向量和2个特征值,若2个特征值不相等,设较大特征值为z21,对应的特征向量为n21,较小特征值为z22,对应的特征向量为z22;若2个特征值相等,则随机选取一个特征值作为z21,对应的特征向量为n21;另外一个特征值作为z22,对应的特征向量为z22;4个特征向量n11、n12、n21、n22的方向分别依次对应第1、2、3、4条分离轴的方向;按照步骤1-5,分别计算出空域1的顶点坐标矩阵在第1条分离轴上的投影坐标的最大值为x11_max和最小值x11_min;按照步骤1-5,计算出空域2的顶点坐标矩阵在第1条分离轴上的投影坐标的最大值为x21_max和最小值x21_min;
若x11_min<x11_max<x21_min<x21_max或者x21_min<x21_max<x11_min<x11_max,则两个方向包围盒在第1条分离轴上的投影上不重叠,即两个空域的包围盒不相交,直接判定在水平维度上两个空域不存在冲突,继续进行下一对空域冲突检测;否则,两个方向包围盒在第1条分离轴上的投影上重叠,转入步骤2-2;
步骤2-2中按照步骤1-5,分别计算出空域1的顶点坐标矩阵在第2条分离轴上的投影坐标的最大值为x12_max和最小值x12_min;按照步骤1-5,计算出空域2的顶点坐标矩阵在第2条分离轴上的投影坐标的最大值为x22_max和最小值x22_min;
若x12_min<x12_max<x22_min<x22_max或者x22_min<x22_max<x12_min<x12_ma,则两个方向包围盒在第2条分离轴上的投影上不重叠,即两个空域的包围盒不相交,直接判定在水平维度上两个空域不存在冲突,继续进行下一对空域冲突检测;否则,两个方向包围盒在第2条分离轴上的投影上重叠,转入步骤2-3;
步骤2-3中按照步骤1-5,分别计算出空域1的顶点坐标矩阵在第3条分离轴上的投影坐标的最大值为x13_max和最小值x13_min;按照步骤1-5,计算出空域2的顶点坐标矩阵在第3条分离轴上的投影坐标的最大值为x23_max和最小值x23_min;
若x13_min<x13_max<x23_min<x23_max或者x23_min<x23_max<x13_min<x13_max,则两个方向包围盒在第3条分离轴上的投影上不重叠,即两个空域的包围盒不相交,直接判定在水平维度上两个空域不存在冲突,继续进行下一对空域冲突检测;否则,两个方向包围盒在第3条分离轴上的投影上重叠,转入步骤2-4;
步骤2-4中按照步骤1-5,分别计算出空域1的顶点坐标矩阵在第4条分离轴上的投影坐标的最大值为x14_max和最小值x14_min;按照步骤1-5,计算出空域2的顶点坐标矩阵在第4条分离轴上的投影坐标的最大值为x24_max和最小值x24_min;
若x14_min<x14_max<x24_min<x24_max或者x24_min<x24_max<x14_min<x14_ma,则两个方向包围盒在第4条分离轴上的投影上不重叠,即两个空域的包围盒不相交,直接判定在水平维度上两个空域不存在冲突,继续进行下一对空域冲突检测;否则,两个方向包围盒在第4条分离轴上的投影上重叠,结合两个方向包围盒在第1、2、3条分离轴上的投影都重叠,则两个方向包围盒在所有的4条分离轴上的投影都重叠,即两个包围盒相交,转入步骤3;
步骤3-1-1中计算出凸多边形1的中心点C1(xc1,yc1)和凸多边形2的中心点C2(xc2,yc2);初始方向d1即为从C1到C2的向量nc1=(xc2-xc1,yc2-yc1);
步骤3-1-2中将凸多边形1的顶点坐标(x1i,y1i)逐个与向量nc1进行点乘,计算结果为x1i×(xc2-xc1)+y1i×(yc2-yc1),找到计算结果中最大的值对应的顶点坐标,记为(X11,Y11);
步骤3-1-3中将凸多边形2的顶点坐标(x2i,y2i)逐个与向量-nc1进行点乘,计算结果为x2i×(xc1-xc2)+y2i×(yc1-yc2),找到计算结果中最大的值对应的顶点坐标,记为(X21,Y21);
步骤3-1-4中将坐标(X21,Y21)减去坐标(X11,Y11),得到三角形的第一个顶点A1(X21-X11,Y21-Y11);
步骤3-2-1中第2次迭代方向d2为将初始方向d1取反,即为向量nc2=(xc1-xc2,yc1-yc2);
步骤3-2-2中将凸多边形1的顶点坐标(x1i,y1i)逐个与向量nc2进行点乘,计算结果为x1i×(xc1-xc2)+y1i×(yc1-yc2),找到计算结果中最大的值对应的顶点坐标,记为(X12,Y12);
步骤3-2-3中将凸多边形2的顶点坐标(x2i,y2i)逐个与向量-nc2进行点乘,计算结果为x2i×(xc2-xc1)+y2i×(yc2-yc1),找到计算结果中最大的值对应的顶点坐标,记为(X22,Y22);
步骤3-2-4中将坐标(X22,Y22)减去坐标(X12,Y12),得到三角形的第二个顶点A2(X22-X12,Y22-Y12);
步骤3-3-2中将凸多边形1的顶点坐标(x1i,y1i)逐个与向量nc3进行点乘,找到计算结果中最大的值对应的顶点坐标,记为(X13,Y13);
步骤3-3-3中将凸多边形2的顶点坐标(x2i,y2i)逐个与向量-nc3进行点乘,找到计算结果中最大的值对应的顶点坐标,记为(X23,Y23);
步骤3-3-4中将坐标(X23,Y23)减去坐标(X13,Y13),得到三角形单形体的第三个顶点A3(X23-X13,Y23-Y13);
步骤3-4-1中分别计算出向量及其垂直向量nL1、及其垂直向量nL2、及其垂直向量nL3;向量nL1为三角形第1条分离轴的方向、向量nL2为三角形第2条分离轴的方向、向量nL3为三角形第3条分离轴的方向;
步骤3-4-2分别将3个顶点坐标与向量nL1点乘,比较出3个计算结果的最大值和最小值,即为三角形单形体三个顶点坐标在第1条分离轴上的投影的最大值qmax1和最小值qmin1;若qmin1≤0≤qmax1,转入步骤3-4-3;否则,转入步骤3-5;
步骤3-4-3中分别将3个顶点坐标与向量nL2点乘,比较出3个计算结果的最大值和最小值,即为三角形单形体三个顶点坐标在第2条分离轴上的投影的最大值qmax2和最小值qmin2;若qmin2≤0≤qmax2,转入步骤3-4-4;否则,转入步骤3-5;
步骤3-4-4中分别将3个顶点坐标与向量nL3点乘,比较出3个计算结果的最大值和最小值,即为三角形单形体三个顶点坐标在第3条分离轴上的投影的最大值qmax3和最小值qmin3;若qmin3≤0≤qmax3,即三角形单形体三个顶点坐标与原点坐标在所有的3条分离轴上的投影均重叠,三个点A1、A2、A3围成的三角形包含原点,直接判定两个凸多边形相交;否则,转入步骤3-5;
步骤3-5-1中计算线段OA1、OA2、OA3的长度,比较出最短的长度,去掉对应的点;余下的两个点作为新的三角形单形体的两个顶点;
步骤3-5-2中按照步骤3-3-1的方法,计算出新的迭代方向dnew,对应的向量为nnew;
步骤3-5-3中按照步骤3-3-2到步骤3-3-4的方法,计算出新的三角形单形体的第三个顶点Anew(Xnew,Ynew);
步骤3-6中若nnewg(Xnew,Ynew)<0,即当新的迭代方向对应的向量与最新添加的顶点坐标的点积小于0时,迭代退出,不再进行后续步骤,否则,转入步骤3-7;
步骤3-7中按照步骤3-4的方法,若新的三角形单形体包含原点,判定两个凸多边形相交;否则,转入步骤3-5,重复进行步骤3-5、3-6;
步骤4中原点到线段LMN的距离计算方法为:
原点到点M的距离SM和原点到点N的距离SN的计算方法为:
SMN、SM和SN中的最小值,即为即为两个不相交凸多边形的最短距离Smin。
5.如权利要求4所述的一种水平维度空域冲突检测方法,其特征在于:
对于步骤1-1-1将圆形空域近似为凸多边形空域,nj o取10°~20°;对于步骤1-1-2将扇形空域近似成凸多边形空域,ng o取5°~10°;对于步骤1-1-3将跑道形空域近似成凸多边形空域,np o取10°~20°。
6.如权利要求4所述的一种水平维度空域冲突检测方法,其特征在于:
对于步骤2空域的方向包围盒相交检测,4条分离轴的先后检测顺序为:第2条、第4条、第1条、第3条。
7.如权利要求4所述的一种水平维度空域冲突检测方法,其特征在于:
对于步骤3-1-1,在两个凸多边形内部或边上各取一点,两点的连线方向即为初始方向。
8.如权利要求4所述的一种水平维度空域冲突检测方法,其特征在于:
步骤3中相交的方向包围盒进行凸多边形相交检测,还可采用以下方法:
步骤3-1:构建顶点的闵可夫斯基差集;
步骤3-2:将顶点的闵可夫斯基差集包含的坐标围成凸多边形G;
步骤3-3:判断原点与凸多边形G的位置关系;
步骤4中依次计算原点到凸多边形G上各条边的距离,从中找到最小距离,即为原点到凸多边形G的最小距离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111142552.2A CN113781846B (zh) | 2021-09-28 | 2021-09-28 | 一种水平维度空域冲突检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111142552.2A CN113781846B (zh) | 2021-09-28 | 2021-09-28 | 一种水平维度空域冲突检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113781846A true CN113781846A (zh) | 2021-12-10 |
CN113781846B CN113781846B (zh) | 2022-12-16 |
Family
ID=78854163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111142552.2A Active CN113781846B (zh) | 2021-09-28 | 2021-09-28 | 一种水平维度空域冲突检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113781846B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024007256A1 (zh) * | 2022-07-07 | 2024-01-11 | 南京航空航天大学 | 空域数字化栅格的无人机冲突探测方法、装置和存储介质 |
CN117876554A (zh) * | 2024-03-12 | 2024-04-12 | 中南建筑设计院股份有限公司 | 一种基于凸包的板件最小包围盒计算方法和*** |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003151100A (ja) * | 2001-11-15 | 2003-05-23 | Sigma Solutions:Kk | 航空機全方位衝突回避システム |
CN103258007A (zh) * | 2013-04-16 | 2013-08-21 | 中国科学院地理科学与资源研究所 | 一种利用冲突检测机制的地图标注方法及装置 |
CN104200031A (zh) * | 2014-09-04 | 2014-12-10 | 大连大学 | 一种基于距离优先和时空相关性的碰撞检测方法 |
CN105469406A (zh) * | 2015-11-30 | 2016-04-06 | 东北大学 | 一种基于包围盒与空间划分的虚拟物体碰撞检测方法 |
CN106875492A (zh) * | 2017-02-13 | 2017-06-20 | 华东师范大学 | 一种面向gpu包围盒碰撞检测方法 |
CN107803831A (zh) * | 2017-09-27 | 2018-03-16 | 杭州新松机器人自动化有限公司 | 一种aoaae层次包围盒碰撞检测方法 |
CN108052703A (zh) * | 2017-11-22 | 2018-05-18 | 南京航空航天大学 | 基于混合层次包围盒的快速碰撞检测方法 |
CN108536880A (zh) * | 2017-03-06 | 2018-09-14 | 上海盟云移软网络科技股份有限公司 | 一种虚拟现实***的随机碰撞检测算法 |
CN108776492A (zh) * | 2018-06-27 | 2018-11-09 | 电子科技大学 | 一种基于双目相机的四轴飞行器自主避障与导航方法 |
CN108922250A (zh) * | 2018-08-02 | 2018-11-30 | 四川九洲空管科技有限责任公司 | 一种空域冲突检测方法及*** |
CN109341697A (zh) * | 2018-11-29 | 2019-02-15 | 北京宇航***工程研究所 | 一种无人机航路规划安全性评估方法 |
CN109773785A (zh) * | 2018-12-29 | 2019-05-21 | 南京埃斯顿机器人工程有限公司 | 一种工业机器人防碰撞方法 |
CN110047143A (zh) * | 2019-03-04 | 2019-07-23 | 南昌大学 | 一种基于空间细分与动态包围盒的连续碰撞检测方法 |
CN111251335A (zh) * | 2020-03-24 | 2020-06-09 | 桂林电子科技大学 | 基于包围盒算法的高精度机械臂碰撞检测方法 |
US20200356800A1 (en) * | 2018-02-02 | 2020-11-12 | Beijing Sankuai Online Technology Co., Ltd | Polygonal region detection |
CN112348960A (zh) * | 2020-11-27 | 2021-02-09 | 中国人民解放军空军工程大学 | 一种适用于全球空间范围的空域冲突检测方法 |
CN112669434A (zh) * | 2020-12-21 | 2021-04-16 | 山东华数智能科技有限公司 | 一种基于网格与包围盒的碰撞检测方法 |
-
2021
- 2021-09-28 CN CN202111142552.2A patent/CN113781846B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003151100A (ja) * | 2001-11-15 | 2003-05-23 | Sigma Solutions:Kk | 航空機全方位衝突回避システム |
CN103258007A (zh) * | 2013-04-16 | 2013-08-21 | 中国科学院地理科学与资源研究所 | 一种利用冲突检测机制的地图标注方法及装置 |
CN104200031A (zh) * | 2014-09-04 | 2014-12-10 | 大连大学 | 一种基于距离优先和时空相关性的碰撞检测方法 |
CN105469406A (zh) * | 2015-11-30 | 2016-04-06 | 东北大学 | 一种基于包围盒与空间划分的虚拟物体碰撞检测方法 |
CN106875492A (zh) * | 2017-02-13 | 2017-06-20 | 华东师范大学 | 一种面向gpu包围盒碰撞检测方法 |
CN108536880A (zh) * | 2017-03-06 | 2018-09-14 | 上海盟云移软网络科技股份有限公司 | 一种虚拟现实***的随机碰撞检测算法 |
CN107803831A (zh) * | 2017-09-27 | 2018-03-16 | 杭州新松机器人自动化有限公司 | 一种aoaae层次包围盒碰撞检测方法 |
CN108052703A (zh) * | 2017-11-22 | 2018-05-18 | 南京航空航天大学 | 基于混合层次包围盒的快速碰撞检测方法 |
US20200356800A1 (en) * | 2018-02-02 | 2020-11-12 | Beijing Sankuai Online Technology Co., Ltd | Polygonal region detection |
CN108776492A (zh) * | 2018-06-27 | 2018-11-09 | 电子科技大学 | 一种基于双目相机的四轴飞行器自主避障与导航方法 |
CN108922250A (zh) * | 2018-08-02 | 2018-11-30 | 四川九洲空管科技有限责任公司 | 一种空域冲突检测方法及*** |
CN109341697A (zh) * | 2018-11-29 | 2019-02-15 | 北京宇航***工程研究所 | 一种无人机航路规划安全性评估方法 |
CN109773785A (zh) * | 2018-12-29 | 2019-05-21 | 南京埃斯顿机器人工程有限公司 | 一种工业机器人防碰撞方法 |
CN110047143A (zh) * | 2019-03-04 | 2019-07-23 | 南昌大学 | 一种基于空间细分与动态包围盒的连续碰撞检测方法 |
CN111251335A (zh) * | 2020-03-24 | 2020-06-09 | 桂林电子科技大学 | 基于包围盒算法的高精度机械臂碰撞检测方法 |
CN112348960A (zh) * | 2020-11-27 | 2021-02-09 | 中国人民解放军空军工程大学 | 一种适用于全球空间范围的空域冲突检测方法 |
CN112669434A (zh) * | 2020-12-21 | 2021-04-16 | 山东华数智能科技有限公司 | 一种基于网格与包围盒的碰撞检测方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024007256A1 (zh) * | 2022-07-07 | 2024-01-11 | 南京航空航天大学 | 空域数字化栅格的无人机冲突探测方法、装置和存储介质 |
CN117876554A (zh) * | 2024-03-12 | 2024-04-12 | 中南建筑设计院股份有限公司 | 一种基于凸包的板件最小包围盒计算方法和*** |
CN117876554B (zh) * | 2024-03-12 | 2024-05-28 | 中南建筑设计院股份有限公司 | 一种基于凸包的板件最小包围盒计算方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN113781846B (zh) | 2022-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113781846B (zh) | 一种水平维度空域冲突检测方法 | |
He et al. | Non-cooperative spacecraft pose tracking based on point cloud feature | |
KR101028698B1 (ko) | 격자구조를 이용한 3차원 모델링 장치 및 방법 | |
CN111062980B (zh) | 一种软体碰撞检测方法 | |
CN103646156A (zh) | 一种基于球标靶探测的激光点云数据自动配准方法 | |
CN105069245B (zh) | 基于多重搜索技术的三维乘波体快速设计方法 | |
CN109708643B (zh) | 小行星表面光学导航路标评价选取方法 | |
CN106289240A (zh) | 一种基于主星的两步匹配星图识别方法 | |
CN106546245A (zh) | 基于ads‑b数据的飞机轨迹推断和平滑方法 | |
US20170084180A1 (en) | Stable partition of trajectories set into asymptotically converged beams | |
CN107680168A (zh) | 三维重建中基于平面拟合的网格简化方法 | |
CN105261012A (zh) | 基于Sobel向量的模板匹配方法 | |
JP6810432B2 (ja) | 物体の条件に応じてモードを切り換えることができるcnn基盤で軍事目的、スマートフォン又は仮想走行に使用される疑似3dバウンディングボックスを検出する方法及びこれを利用した装置 | |
CN109507877B (zh) | 飞行器弹道规划安全性评估方法 | |
CN106875403A (zh) | 一种用于空中加油的仿鹰眼视觉运动目标检测方法 | |
CN101937453A (zh) | 一种基于加权拓扑约束比较的三维模型检索方法 | |
CN106780337A (zh) | 基于二维图像的无人机着舰视景模拟方法 | |
CN114118695A (zh) | 空地协同的无人机运行的风险评估方法、装置及*** | |
CN116560408A (zh) | 一种用于无人机时间最优轨迹的序列凸优化方法及*** | |
CN115686072B (zh) | 一种基于空间网格的无人机群安全作业航线自动生成方法 | |
CN105930568A (zh) | 任意形状凸多面体骨料的颗粒簇离散元模型构建方法 | |
CN103810700A (zh) | 基于深度图像利用遮挡信息确定下一最佳观测方位的方法 | |
Chen et al. | Overview of landmarks for autonomous, vision-based landing of unmanned helicopters | |
CN115512075A (zh) | 一种基于拓扑有向图的四边形网格保特征重划分方法 | |
Mi et al. | A 3D smooth mobility model based on semi-random circular movement for FANETs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |