一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于对象的多粒度编队运动可视化方法与流程

2021-10-24 03:55:00 来源:中国专利 TAG:可视化 粒度 编队 地理信息 对象


1.本发明属于地理信息可视化技术领域,具体涉及一种基于对象的多粒度编队运动可视化方法。


背景技术:

2.在地理信息系统领域,时空轨迹是研究的一个热点,进行仿真推演任务时,人机交互控制时空对象的运动,实时生成对象的时空轨迹,对模拟分析具有重要作用。仿真推演时,单个对象执行任务时受到自身功能限制,难以全方位的对目标区域进行观测,特别是面对大面积范围的搜索任务,不能有效的覆盖整个侦察区域,另外单个对象功能单一,出现问题会影响到整个任务的效率,增加了任务的不确定性。针对这一问题,规划任务时常以编队为单位,统筹规划编队的行动目标、行动路线,这样既能丰富任务样式,也能提高任务执行效率,最大化综合效益。
3.现有技术中,例如王家润等人在2018年第35卷第9期的期刊《计算机应用研究》中,公开了“一种基于视觉感知拓扑关系模型的作战编队可视化方法”,该方法虽然能够实现作战编队可视化,但是,仅通过在编队中各个对象之间添加连线,以体现出对作战编队的队形感知,但这种体现方式并不直观,难以满足对作战编队进行仿真推演的实际需求。


技术实现要素:

4.本发明的目的是提供一种基于对象的多粒度编队运动可视化方法,用于解决现有可视化方法无法直观体现出作战编队的队形问题。
5.基于上述目的,一种基于对象的多粒度编队运动可视化方法的技术方案如下:
6.步骤一,选择具有运动行为的子对象组成编队,确定被选中子对象的基本信息,包括对象名称、id、当前位置、运动速度和方向;根据编队中心确定出该编队的父对象,建立子对象和父对象的关系信息,包括关系创建时间、关系消亡时间、关系名称、关联起对象id、关联终对象id;
7.步骤二,计算编队队形,编队的队形信息包括:各子对象的id,子对象距离编队中心的距离,子对象在编队中的相对角度;
8.步骤三,获取编队运行的轨迹,该轨迹由若干个轨迹点依次连接的线段轨迹构成,结合步骤二确定的各个子对象的队形,计算每个子对象的位置,生成各个子对象的轨迹坐标;
9.步骤四,根据整个编队的运动速度,和步骤三得到各子对象的轨迹坐标,计算每段轨迹所需要的时间,进而得到每个子对象完整的时空轨迹;
10.步骤五,将编队中各子对象的基本信息、队形信息和时空轨迹,作为该编队的对象数据集,存储在数据库中;
11.步骤六,根据当前的时间点,从数据库中调取编队中各子对象的相关信息,并根据所需粒度进行动态显示,实现不同粒度的编队运动可视化。
12.上述技术方案的有益效果是:
13.本发明的编队运动可视化方法,通过选择子对象形成编队,得到每个对象在编队中的位置,构建编队与各子对象之间逻辑上的组成关系(一种具有上下层级的组成关系),根据组成关系创建两者位置耦合的时空轨迹,生成多层级粒度上的编队运动轨迹,并进行可视化表达,本发明可在编队运动中保持父、子对象的逻辑结构,也能保持编队的基本队形,同时该方法将编队中生成的信息存储在数据库中,能实时动态显示,给用户较全面的多粒度、多层级信息,作战编队的队形感知更加直观,满足仿真推演的实际需求。
14.进一步的,所述的基本信息、队形信息和时空轨迹分别以基本信息和关系数据表、队形表和轨迹表,存储在数据库中。
15.效果是,将这些信息分类单独建表,存储在数据库中,能够为后面步骤查询信息提高查询效率。
16.进一步的,为了确定子对象在编队中的相对角度,步骤二中,子对象在编队中的相对角度的确定步骤如下:
17.(1)获取编队中各子对象的当前位置和运动方向;由所有子对象的空间位置,计算出当前时刻编队的中心坐标,再根据所有子对象的运动方向,得到编队运动的方向向量
18.(2)根据当前时刻编队的中心坐标和各对象的坐标,计算出各对象在编队中的方向向量结合编队运动的方向向量计算出各个子对象与编队运动方向之间的夹角θ
i
,子对象在编队中的相对角度。
19.进一步的,为了确定子对象与编队运动方向的相对角度,子对象与编队运动方向之间的夹角θ
i
的计算式如下:
[0020][0021]
式中,为编队运动的方向向量,为子对象在编队中的方向向量。
[0022]
进一步的,步骤二中,子对象距离编队中心的距离的确定步骤如下:
[0023]
获取编队中各子对象的当前位置和运动方向;由所有子对象的空间位置,计算出当前时刻编队的中心坐标(x
c
,y
c
,h
c
),再计算每个子对象相对与编队中心c的距离d
i
,计算式如下:
[0024][0025]
式中,x
i
、y
i
为子对象的当前位置坐标。
[0026]
进一步的,当前时刻编队的中心坐标的计算式如下:
[0027]
[0028]
式中,(x
c
,y
c
,h
c
)为当前时刻编队的中心坐标,x
i
、y
i
、h
i
为子对象的当前位置坐标,n为编队中的子对象个数。
[0029]
进一步的,步骤三中,各个子对象的轨迹坐标的具体步骤如下:
[0030]
根据前两个轨迹点组成的第一段轨迹,计算编队轨迹的绝对方向,将该绝对方向加上各子对象相对编队运动方向之间的夹角θ
i
,得到对应子对象的绝对角度,再根据各子对象到编队中心的距离d
i
,结合第一段轨迹的首尾两个轨迹点,即可求得对应子对象在第一段轨迹首尾两点的轨迹坐标;
[0031]
按照上述步骤,根据编队队形轨迹上各个线段轨迹的连接顺序,依次计算其余每一段轨迹上的各子对象的绝对坐标,此时每个子对象在相邻轨迹段的交点处有两个坐标,取坐标连线的中点作为该子对象的轨迹坐标。
[0032]
进一步的,求解各个子对象的轨迹坐标的顺序采用以下任一种方式:
[0033]
方式一,按照轨迹上各线段轨迹的连接顺序,先计算出第一段轨迹上所有子对象的轨迹坐标,再计算出第二段轨迹上所有子对象的轨迹坐标,以此类推,直到计算出最后一段轨迹上所有子对象的轨迹坐标;
[0034]
方式二,按照轨迹上各线段轨迹的连接顺序,先依次计算每一段轨迹上一个子对象的轨迹坐标,再计算另一个子对象在每一段轨迹上的轨迹坐标,直到最后一个子对象的全部轨迹坐标计算完成。
[0035]
进一步的,步骤四中,每个子对象的时空轨迹的确定步骤如下:
[0036]
在所有子对象中的运动速度中,取最小值作为整个编队的运动速度,进而计算每段轨迹所需要的时间,以及累加后得到轨迹点的时间,计算式如下:
[0037][0038][0039]
式中,d
i
为第i段轨迹的长度,δt
i
为编队经过第i段轨迹所需的时间,v为整个编队的运动速度,t
i
为到达第i个轨迹点做需要的时间,n为线段轨迹的个数。
[0040]
进一步的,步骤六中,编队运动可视化的可视化界面包括:对象列表窗口、主窗口、对象基本信息窗口、显示控制窗口、时间控制窗口;其中,对象列表窗口用于选择加载的对象;主窗口用于展示具体的对象形态,通过人机交互方式选择对象组成编队,采集编队的运动轨迹;对象基本信息窗口用于展示选择子对象的基本信息;显示控制窗口用于控制子对象显示的粒度、是否显示轨迹、关系;时间控制窗口用于显示当前的时间和时间轴,控制时间的步长,点选时间实现轨迹回溯。
附图说明
[0041]
图1是本发明实施例中的多粒度编队运动可视化方法流程图;
[0042]
图2是本发明实施例中的队形计算示意图;
[0043]
图3是本发明实施例中的轨迹坐标计算示意图;
[0044]
图4是本发明实施例中的编队运动可视化界面设计图。
具体实施方式
[0045]
下面结合附图对本发明的具体实施方式作进一步的说明。
[0046]
本实施例提出一种基于对象的多粒度编队运动可视化方法,整体流程如图1所示,其整体思路为:通过选择任意对象组成编队,计算每个对象在编队中的位置,建立编队与对象之间逻辑上的组成关系,根据组成关系创建两者位置耦合的时空轨迹,生成多层级粒度上的编队运动轨迹,并建立基本信息表、关系数据表、队形表和轨迹表,将其存储到数据库中,最后在可视化界面中动态显示。
[0047]
该方法的具体实现过程为:
[0048]
步骤一:对象编队,即选择具有运动行为的对象(又称子对象)组成编队,例如,对象可以为不同型号的轮船、飞机等(但对象的种类需保持一致),每个对象包含位置、运动速度、三维模型等基本数据,创建编队对象(父对象),并将这些对象的基本信息记录到基本信息表。组成编队时,子对象和父对象建立组成关系,将其记录到关系数据表中。下面对这两类数据表详细说明:
[0049]
(1)基本信息表:
[0050]
基本信息表记录对象的名称、id、当前时间、当前的位置(经度、维度、高度)、是否可以运动、运动速度、运动方向、形态和模型等信息,具体的基本信息表结构如表1所示。
[0051]
表1基本信息表
[0052]
字段名称别名数据类型说明id编码integer对象唯一标识码name名称text currenttime当前时间datetime创建编队的时间longitude经度float创建编队时对象所在坐标的经度latitude纬度float创建编队时对象所在坐标的纬度ismove是否可以运动bool可以运动的对象才可以组成编队speed速度float对象运动的速度orientation方向float对象运动的方向shape形态text包括点形态、线形态、面形态和三维形态modelname模型名称text对象可视化调用的文件,需要单独上传
[0053]
(2)关系数据表
[0054]
关系数据表记录子对象和父对象之间关系,在可视化时控制不同粒度下的显示效果,例如只显示父(子)对象,同时显示父子对象并显示表达关系状态,具体的关系数据表结构如表2所示,包括关系创建时间、关系消亡时间、关系名称、关联起对象id、关联终对象id。
[0055]
表2关系数据表
[0056]
字段名称别名数据类型说明createtime关系创建时间datetime关系创建的时间deadtime关系消亡时间text关系消亡的时间relationname关系名称text两个对象间的关联关系名称relatebeginobjectid关联起对象的idinteger对象唯一标识码relateendobjectid关联终对象的idinteger对象唯一标识码
[0057]
本步骤中,组成编队对象的子对象可任意选择,子对象和父对象在逻辑上构成组成关系。
[0058]
步骤二:确定队形。编队运动中,需要保持队形一致,即保持编队中每个对象的相对位置不变,相对位置由对象在编队中的方向和距离确定。具体包括以下过程:
[0059]
(1)首先,获取编队中各对象的当前位置和运动方向。然后由所有对象的空间位置,计算出当前时刻编队的中心坐标,再根据所有对象的运动方向,得到编队运动的方向向量根据对象的运动方向确定编队方向的方法为:以当前时刻计算的编队中心坐标为起点,以用户自主设计的轨迹中第一个点为终点,组成向量,该向量的方向为方向向量。
[0060]
以图2中四个对象(o1,o2,o3,o4)组成的编队为例,当前时刻编队中心c的坐标(x
c
,y
c
,h
c
)的计算公式如下:
[0061][0062]
其中,n为编队中对象的数量,本实施例中n=4,(x
i
,y
i
,h
i
)为第i个对象的坐标。
[0063]
(2)根据当前时刻编队的中心坐标和各对象的坐标,计算出各对象在编队中的方向向量结合编队运动方向,计算出各个对象与编队运动方向之间的夹角θ
i

[0064]
本实施例中,以编队运动的方向为起始方向,顺时针为正,计算各个对象与编队运动方向之间的夹角θ
i
,再计算各对象位置与编队中心坐标间的距离d
i
,将计算后的相对距离d
i
和角度θ
i
存储到队形表中。
[0065]
本步骤中,以编队中心c为原点,每个对象相对与编队中心c的距离d
i
和夹角θ
i
的计算式如下:
[0066][0067][0068]
式中,为第i个对象与编队中心c的坐标组成的向量。
[0069]
将计算后的相对距离和角度存储到队形表中,队形表包括对象id、创建时间、消亡时间、距离、角度,具体结构如表3所示。
[0070]
表3队形表
[0071]
字段名称别名数据类型说明id编码integer对象唯一标识码createtime队形创建时间datetime队形创建的时间deadtime关系消亡时间text队形消亡的时间distance距离float子对象距编队中心的距离
angle角度float子对象在队伍中的相对角度
[0072]
步骤三:通过交互方式获得编队运行的轨迹,即编队对象的轨迹,该轨迹由若干个轨迹点依次连接的线段轨迹构成;再结合步骤二确定的各个对象的队形,计算每个对象的位置,生成各个对象的轨迹坐标。
[0073]
具体步骤如下:
[0074]
首先,生成前两个轨迹点组成的第一段轨迹,计算编队轨迹的绝对方向,将该绝对方向与对象o
i
(i=1,2,3,4)、编队运动方向之间的夹角θ
i
(相对角度)相加,得到对象的绝对角度,再根据对象到编队中心的距离d
i
,结合第一段轨迹的首尾两个轨迹点,即可求得对象o
i
在该段轨迹首尾两点的绝对坐标。
[0075]
然后,按照上述方法,根据编队队形轨迹上各个线段轨迹的连接顺序,依次计算其余每一段轨迹上的对象o
i
的绝对坐标,此时每个对象在相邻轨迹段的交点处有两个坐标,取坐标连线的中点作为该对象的唯一坐标。
[0076]
下面,以如图3所示的编队对象的运动轨迹abcd为例,来具体说明各对象的轨迹坐标的计算过程:
[0077]
首先计算ab段轨迹对应子对象的轨迹,该段轨迹由a、b两个关键点控制,以子对象o1为例,该对象在a点对应的坐标为:
[0078][0079]
其中,(x
a
,y
a
)为a点坐标,α为向量与水平方向的夹角,d1为对象o1相对a点的距离,θ1为对象o1与向量的夹角(相对角度)。由于关键点b既属于ab段,又属于bc段,同理,类似上面公式的求解原理,可分别在ab、bc段计算出子对象o1对应的b点轨迹坐标取两个坐标的中点,作为子对象o1在b点的轨迹坐标同理,可得子对象o1在c、d点的轨迹坐标
[0080]
本步骤中,求解各个子对象的轨迹坐标的顺序有以下两种方式:
[0081]
方式一,按照轨迹上各线段轨迹的连接顺序,先计算出第一段轨迹上所有子对象的轨迹坐标,再计算出第二段轨迹上所有子对象的轨迹坐标,以此类推,直到计算出最后一段轨迹上所有子对象的轨迹坐标。
[0082]
方式二,按照轨迹上各线段轨迹的连接顺序,先依次计算每一段轨迹上一个子对象的轨迹坐标,再计算另一个子对象在每一段轨迹上的轨迹坐标,直到最后一个子对象的全部轨迹坐标计算完成。
[0083]
本步骤中,由各个对象轨迹坐标构成的轨迹为多粒度轨迹,该轨迹既能使父对象、子对象按照预定的路线运动,保持逻辑关系,又能在运动中保持基本的队形。
[0084]
步骤四:生成时空轨迹。即根据整个编队的运动速度和步骤三得到各对象的轨迹坐标(即多粒度轨迹),计算每段轨迹所需要的时间,进而得到每个对象完整的时空轨迹,并将生成的时空轨迹保存到轨迹表中。
[0085]
本步骤中,在所有子对象中的运动速度中,取最小值作为整个编队的运动速度,进
而计算每段轨迹所需要的时间,以及累加后得到轨迹点的时间,计算式如下:
[0086][0087][0088]
其中,d
i
为第i段轨迹的长度,δt
i
为编队经过第i段轨迹所需的时间,v为整个编队的运动速度,t
i
为到达第i个轨迹点做需要的时间,n为线段轨迹的个数。此时已经生成完整的时空轨迹,并将生成的时空轨迹保存到轨迹表中,轨迹表包括对象id、当前轨迹点的时间、经度和纬度,具体结构如表4所示。
[0089]
表4轨迹表
[0090]
字段名称别名数据类型说明currenttime当前时间datetime位置有变动时对应的时间点longitude经度float当前时间点对象所在坐标的经度latitude纬度float当前时间点对象所在坐标的纬度height高度float当前时间点对象所在海拔高度
[0091]
步骤五:将上面步骤得到基本信息表、关系数据表、队形表和轨迹表作为当前的编队对象数据集,存储在数据库中。
[0092]
本步骤中,四个表通过对象id键连接,当建立新的编队时,会在基本信息表的基础上,生成关系数据表、队形表和轨迹表;当编队轨迹变化时,只需要修改轨迹表的轨迹,减少对其他表的访问和修改。
[0093]
步骤六:可视化表达。即根据当前的时间点,从数据库中的编队对象数据集里,调取编队中各对象的属性、关系、形态和位置信息,并根据所需粒度进行动态显示,实现不同粒度的编队运动可视化。并且,利用轨迹表的轨迹,查找历史数据,实现编队运动过程的回溯。
[0094]
如图4所示的可视化界面,要由5个窗口组成,分别为对象列表窗口、主窗口、对象基本信息窗口、显示控制窗口、时间控制窗口。对象列表窗口可以选择加载的对象,图4中为对象1~对象5;主窗口展示具体的对象形态,可通过人机交互方式选择对象组成编队,采集编队的运动轨迹(编队运动轨迹是由用户自主设计的),并可完成基本的漫游、缩放等功能;对象基本信息窗口展示选择对象的基本信息,包括id、名称、速度、形态、是否创建编组、关联关系、关联对象、队形距离和对象角度;显示控制窗口用来控制对象显示的粒度、是否显示轨迹、关系等;时间控制窗口显示当前的时间和时间轴,可以控制时间的步长,点选时间实现轨迹回溯等。
[0095]
本发明的基于对象的对粒度编队运动可视化方法,具有以下优点:
[0096]
(1)通过自定义编队得到具有层级结构的对象组合,利用交互得到的轨迹(人为设定的轨迹),按照上述方法能够得到父对象和子对象的多粒度轨迹,可以在运动过程中保持良好的父子对象逻辑关系和队形。
[0097]
(2)可在不同粒度上对编队进行可视化表达,一方面是时间粒度,可以方便用户调节仿真时间的步长,控制时间速率;另一方面是空间粒度,可方便用户控制显示父对象粒度、子对象粒度,实现缩放比率下的粒度切换。效果是,既能够实时显示时空轨迹,又可以实
现编队运动的回溯,满足仿真推演的实际需求。
[0098]
(3)该方法将中间计算生成的信息,整合为基本信息表、关系数据表、队形表和轨迹表存储在数据库中,将轨迹信息单独建表,可提高同一编队轨迹变更存储的速度,提高查询的效率。
[0099]
作为其他实现方式,本实施例中还可以不以表格的方式存储编队有关信息,还可以采用其他方式存储,例如,基本信息、关系数据、队形和轨迹还可以存储到文件中,但是读取文件速度较慢,影响可视化效率,因此优选表格方式存储信息。
[0100]
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜