一种航天三维仿真场景快速构建方法与流程
未命名
08-27
阅读:136
评论:0
1.本发明属于航天三维仿真构建技术领域,具体涉及一种航天三维仿真场景快速构建方法。
背景技术:
2.随着航天事业的高速发展,近地空间中航天器的数量与日俱增,数字和影像等静态信息越来越难以描述宇宙空间复杂多变的态势,利用星历数据和先验知识对以地球为中心的宇宙环境进行三维可视化仿真逐渐成为人们研究和认识宇宙的主要方式。当前存在很多三维仿真框架,但是在进行航天场景构建时,通常存在场景构建流程较复杂、开发周期较长、通用性不强等问题,无法满足日渐复杂和多样化的航天可视化需求。
3.为解决传统三维仿真框架在进行航天场景可视化时出现的问题,建立一套通用的、针对航天业务的三维仿真构建框架是比较好的思路,即用户只需提供初始数据和配置,即可构建出航天三维场景。
4.但是目前国内外已有一些专注于航天可视化仿真的解决方案,而agi公司研制的stk(satellite tool kit,卫星仿真工具包)是其中最具代表性、最被认可的构建框架。该框架能够以数据驱动进行空间态势的全周期仿真,并提供较为逼真的三维交互,被许多航天从业者广泛使用。但其仍存在一些不足:在面对较多实体的复杂场景时,需要通过ui页面手动对每个实体逐一进行配置,整个构建过程耗时耗力;并且通过页面设置仿真参数的方式无法保证操作的规范性,容易出现错填、漏填数据的情况,导致场景仿真错误。另外,该框架只能回放上次保存的实体信息,不支持多版本回放。
技术实现要素:
5.本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种航天三维仿真场景快速构建方法,其方法步骤简单、设计合理,仅提供初始作业文件和轨迹数据文件,就能进行三维仿真场景构建,降低了仿真要求,支持场景多节点批量装载和校验,提升了三维仿真构建的便捷性、准确性和鲁棒性,且能多版本回放,更好地满足使用要求。
6.为解决上述技术问题,本发明采用的技术方案是:一种航天三维仿真场景快速构建方法,其特征在于,该方法包括以下步骤:步骤一、获取初始作业文件和轨迹数据,并加载到缓存中;其中,初始作业文件中包括场景基本信息和n个节点的节点属性信息,轨迹数据包括n个节点的轨迹数据;n为大于等于1的正整数;步骤二、初始作业文件的校验,以获取校验后的初始作业文件;步骤三、根据场景基本信息对轨迹数据处理,以获取处理后的轨迹数据:步骤301、读取缓存中的场景开始时间和场景结束时间,得到场景时间段;步骤302、循环遍历缓存中的各个节点,以对各个节点进行轨迹数据处理;其中,如果轨迹数据类型为星历数据,筛选出处于该场景时间段内的轨迹数据;如果轨迹数据类型
为轨道参数数据,外推出场景时间段内的轨迹数据;步骤四、航天三维仿真场景生成与版本信息更新:步骤401、判断更动计数是否为0,如果更动计数为0,执行步骤402;否则,执行步骤403和步骤404;步骤402、将校验后的初始作业文件和处理后的轨迹数据,转换为初始版本的图形化语言;并根据初始版本的图形化语言生成航天三维仿真场景;步骤403、对校验后的初始作业文件进行版本信息更新,形成更新版本图形化语言,并获取与更新版本图形化语言对应的更动计数;其中,第i次版本信息更新,形成第i次更新版本图形化语言,且第i次更新版本图形化语言对应的更动计数为i,i为正整数,且i≥1;步骤404、按照步骤402所述的方法,将更新版本图形化语言生成航天三维仿真场景。
7.上述的一种航天三维仿真场景快速构建方法,其特征在于:步骤二中初始作业文件校验,具体包括以下步骤:步骤201、将初始作业文件中场景基本信息和节点属性信息读入缓存;其中,与初始作业文件对应的更动计数为0;步骤202、校验初始作业文件中的场景基本信息必填项;步骤203、按照以“场景名称_创建时间_uuid”的方式创建场景文件夹,并将初始作业文件、轨迹数据放入该场景文件夹中;步骤204、循环校验各个节点的属性信息,直至初始作业文件校验结束。
8.上述的一种航天三维仿真场景快速构建方法,其特征在于:步骤202中校验初始作业文件中的场景基本信息必填项,具体过程如下:步骤2021、判断初始作业文件中场景名称是否为空,如果为空,取当前时间戳为场景唯一名称;如果不为空,执行步骤2022;步骤2022、判断场景开始时间或场景结束时间是否为空,如果其中至少一项为空,判断轨迹数据中是否有星历数据文件,如果有星历数据文件,执行步骤2023;如果无星历数据,则执行步骤2024;如果场景开始时间和场景结束时间均不为空,则执行步骤203;步骤2023、取所有星历数据文件中最早时间为场景开始时间,或者取所有星历数据文件中最晚时间为场景结束时间;步骤2024:初始作业文件校验结束,则场景创建失败。
9.上述的一种航天三维仿真场景快速构建方法,其特征在于:步骤204中循环校验各个节点的属性信息的过程均相同,其中,校验任一个节点的属性信息,具体过程如下:步骤2041、从缓存中读取该节点,并判断该节点名称是否为空;如果为空,生成与缓存中其它节点不重复的名称;如果不为空,执行步骤2042;步骤2042、判断当前该节点名称与缓存中其它节点名称是否重复,如果重复,在不改变原名称含义的前提下修改该节点名称;如果不重复,执行步骤2043;步骤2043、如果轨迹数据类型为星历数据,查找场景文件夹中是否存在相应星历数据文件,如果不存在,执行步骤2045;如果存在,执行步骤2044;如果轨迹数据类型为轨道参数数据,判断轨道参数数据的长度是否满足校验要
求,如果不满足,执行步骤2045;如果满足,执行步骤2044;步骤2044、校验该节点的属性其他配置项,如果为空或不满足要求,则将该配置项设置为默认值,直至满足要求;步骤2045、将该节点显隐属性设为false。
10.上述的一种航天三维仿真场景快速构建方法,其特征在于:步骤302中循环遍历缓存中各个节点,以对各个节点进行轨迹数据处理的过程相同;其中,对任一个节点进行轨迹数据处理,具体过程如下:步骤3021、判断当前该节点的轨迹数据类型,如果轨迹数据类型为星历数据,执行步骤3022;如果轨迹数据类型为轨道参数,执行步骤3023和步骤3024;步骤3022、判断星历数据的时间跨度与场景时间段是否有相交时间,如果相交,则根据场景时间段截取相交的轨迹数据,得到新轨迹数据,执行步骤3024;如果不相交,则将该节点的显隐属性置为false,并进行下一节点的处理;步骤3023、利用轨道外推模型对轨道参数数据处理,外推出该节点处于场景时间段内的轨迹数据,得到新轨迹数据;步骤3024、将相应新轨迹数据的路径更新到初始作业文件的轨迹数据配置项中,进行下一节点的处理。
11.上述的一种航天三维仿真场景快速构建方法,其特征在于:步骤402中将校验后的初始作业文件和处理后的轨迹数据,转换为初始版本的图形化语言;并根据初始版本的图形化语言生成航天三维仿真场景,具体过程如下:步骤4020、将初始版本的图形化语言进行分包处理,得到图形语言数据包;步骤4021、在场景生命周期的created阶段,为场景在html dom元素中分配可视化容器;步骤4022、发起websocket双向通道建链请求,以流式加载形式对步骤4020中图形语言数据包进行接收;步骤4023:在接收完成的同时对图形语言数据包进行解析,获得图形语言数据包中的场景基本信息,执行步骤4024和步骤4025;并解析获得图形语言数据包中节点属性信息,根据图形语言数据包的包序创建节点,将各个节点加入到共享内存中进行管理;步骤4024、根据解析获取的场景基本信息创建场景时钟,将整个场景时区统一为“gmt+8”,并建立与时间相关的监听器;步骤4025、利用渲染组件绘制三维球,并创建geoserver服务,将geoserver服务中的瓦片图层影像覆盖到三维球表面,形成地理信息数据;并将六张天空贴图以赤道平均春分点轴和相机位置为参考中心拼接为天空盒子,并将六张天空贴图通过纹理映射组成三维宇宙背景;步骤4026:利用渲染组件将共享内存中的各个节点循环渲染到三维仿真场景中,形成场景中的节点及绘制节点运动轨迹,生成航天三维仿真场景。
12.上述的一种航天三维仿真场景快速构建方法,其特征在于:步骤403中对校验后的初始作业文件进行版本信息更新,形成更新版本图形化语言,并获取与更新版本图形化语言对应的更动计数,具体过程如下:
步骤4031、将初始作业文件中各个节点的属性信息和第i次修改后各个节点的属性信息进行差异比对,形成第i次节点属性差异配置文件;其中,第i次节点属性差异配置文件名称中包括更动计数值;步骤4032、将第i次修改的场景配置信息序列化为字符串,并持久化到场景配置信息文件,得到第i次场景配置信息文件;其中,第i次场景配置信息文件名称中包括更动计数值;步骤4033、根据第i次节点属性差异配置文件更改校验后的初始作业文件,形成第i次更新节点属性信息文件;步骤4034、按照步骤402所述的方法,将第i次更新节点属性信息文件、第i次场景配置信息文件和处理后的轨迹数据,转换为第i次更新版本图形化语言;其中,第i次更新版本图形化语言对应的更动计数为i。
13.上述的一种航天三维仿真场景快速构建方法,其特征在于:步骤4031中将初始作业文件中各个节点的属性信息和第i次修改后各个节点的属性信息进行差异比对,具体过程如下:步骤403a、判断当前该节点的每个属性信息和第i次修改后该节点的每个属性信息是否相同,如果完全相同,则进行下一节点的差异比对;如果不完全相同,执行步骤403b;步骤403b、判断当前节点的显隐属性和第i次修改后该节点的显隐属性是否均为false,如果均为false,则进行下一节点的的差异比对;如果不均为false,执行步骤403c;步骤403c、依次遍历该节点的每个属性信息和第i次修改后该节点的每个属性信息,将不同的属性信息序列化为json键值;其中,json键值中键对应属性信息,值为第i次修改后的属性信息;步骤403d、直至所有节点差异比对完毕后,将各个json键值以字符流的形式持久化到节点差异配置文件中,形成第i次节点属性差异配置文件。
14.本发明与现有技术相比具有以下优点:1、本发明使用操作时仅提供初始作业文件和轨迹数据文件,就可产生相应的三维仿真场景,将使用者与场景构建过程剥离,降低了仿真要求。
15.2、本发明的方法封装成模块或部署为服务,可任意访问,避免反复安装。
16.3、本发明初始作业文件中包括场景基本信息和n个节点的节点属性信息,从而支持复杂场景多节点批量装载,并且对初始作业文件的校验,提升了三维仿真构建的便捷性、准确性和鲁棒性。
17.4、本发明对校验后的初始作业文件进行版本信息更新,形成更新版本图形化语言,并获取与更新版本图形化语言对应的更动计数,每一个更新版本图形化语言对应一个版本,通过更新版本图形化语言生成航天三维仿真场景,从而实现多个版本的回放,更好地满足使用要求。
18.5、本发明初始作业文件中各个节点的属性信息和第i次修改后各个节点的属性信息进行差异比对,形成第i次节点属性差异配置文件,以及将第i次修改的场景配置信息保存形成第i次场景配置信息文件,这样通过第i次节点属性差异配置文件和第i次场景配置信息文件,使回放场景更贴近使用者最终操作,以差异配置的方式既能保证完整回放各更动版本,又可以尽可能少的占用磁盘和计算资源。
19.6、本发明适应卫星、空间碎片、航天实验模拟体等任意复杂航天场景的多节点批量装载和仿真构建。
20.7、本发明可回放为场景包含任意个节点,每个版本由增量存储的节点差异化配置和全备份的场景配置信息构成,且相应版本描述了处于最终状态时节点和场景的显性特性值,每个版本通过更动计数值进行区分。
21.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
22.图1为本发明的方法流程框图。
23.图2为本发明初始作业文件的校验的流程框图。
具体实施方式
24.如图1和图2所示,本发明一种航天三维仿真场景快速构建方法,包括以下步骤:步骤一、获取初始作业文件和轨迹数据,并加载到缓存中;其中,初始作业文件中包括场景基本信息和n个节点的节点属性信息,轨迹数据包括n个节点的轨迹数据;n为大于等于1的正整数;步骤二、初始作业文件的校验,以获取校验后的初始作业文件;步骤三、根据场景基本信息对轨迹数据处理,以获取处理后的轨迹数据:步骤301、读取缓存中的场景开始时间和场景结束时间,得到场景时间段;步骤302、循环遍历缓存中的各个节点,以对各个节点进行轨迹数据处理;其中,如果轨迹数据类型为星历数据,筛选出处于该场景时间段内的轨迹数据;如果轨迹数据类型为轨道参数数据,外推出场景时间段内的轨迹数据;步骤四、航天三维仿真场景生成与版本信息更新:步骤401、判断更动计数是否为0,如果更动计数为0,执行步骤402;否则,执行步骤403和步骤404;步骤402、将校验后的初始作业文件和处理后的轨迹数据,转换为初始版本的图形化语言;并根据初始版本的图形化语言生成航天三维仿真场景;步骤403、对校验后的初始作业文件进行版本信息更新,形成更新版本图形化语言,并获取与更新版本图形化语言对应的更动计数;其中,第i次版本信息更新,形成第i次更新版本图形化语言,且第i次更新版本图形化语言对应的更动计数为i,i为正整数,且i≥1;步骤404、按照步骤402所述的方法,将更新版本图形化语言生成航天三维仿真场景。
25.本实施例中,步骤二中初始作业文件校验,具体包括以下步骤:步骤201、将初始作业文件中场景基本信息和节点属性信息读入缓存;其中,与初始作业文件对应的更动计数为0;步骤202、校验初始作业文件中的场景基本信息必填项;步骤203、按照以“场景名称_创建时间_uuid”的方式创建场景文件夹,并将初始作业文件、轨迹数据放入该场景文件夹中;
步骤204、循环校验各个节点的属性信息,直至初始作业文件校验结束。
26.本实施例中,步骤202中校验初始作业文件中的场景基本信息必填项,具体过程如下:步骤2021、判断初始作业文件中场景名称是否为空,如果为空,取当前时间戳为场景唯一名称;如果不为空,执行步骤2022;步骤2022、判断场景开始时间或场景结束时间是否为空,如果其中至少一项为空,判断轨迹数据中是否有星历数据文件,如果有星历数据文件,执行步骤2023;如果无星历数据,则执行步骤2024;如果场景开始时间和场景结束时间均不为空,则执行步骤203;步骤2023、取所有星历数据文件中最早时间为场景开始时间,或者取所有星历数据文件中最晚时间为场景结束时间;步骤2024:初始作业文件校验结束,则场景创建失败。
27.本实施例中,步骤204中循环校验各个节点的属性信息的过程均相同,其中,校验任一个节点的属性信息,具体过程如下:步骤2041、从缓存中读取该节点,并判断该节点名称是否为空;如果为空,生成与缓存中其它节点不重复的名称;如果不为空,执行步骤2042;步骤2042、判断当前该节点名称与缓存中其它节点名称是否重复,如果重复,在不改变原名称含义的前提下修改该节点名称;如果不重复,执行步骤2043;步骤2043、如果轨迹数据类型为星历数据,查找场景文件夹中是否存在相应星历数据文件,如果不存在,执行步骤2045;如果存在,执行步骤2044;如果轨迹数据类型为轨道参数数据,判断轨道参数数据的长度是否满足校验要求,如果不满足,执行步骤2045;如果满足,执行步骤2044;步骤2044、校验该节点的属性其他配置项,如果为空或不满足要求,则将该配置项设置为默认值,直至满足要求;步骤2045、将该节点显隐属性设为false。
28.本实施例中,步骤302中循环遍历缓存中各个节点,以对各个节点进行轨迹数据处理的过程相同;其中,对任一个节点进行轨迹数据处理,具体过程如下:步骤3021、判断当前该节点的轨迹数据类型,如果轨迹数据类型为星历数据,执行步骤3022;如果轨迹数据类型为轨道参数,执行步骤3023和步骤3024;步骤3022、判断星历数据的时间跨度与场景时间段是否有相交时间,如果相交,则根据场景时间段截取相交的轨迹数据,得到新轨迹数据,执行步骤3024;如果不相交,则将该节点的显隐属性置为false,并进行下一节点的处理;步骤3023、利用轨道外推模型对轨道参数数据处理,外推出该节点处于场景时间段内的轨迹数据,得到新轨迹数据;步骤3024、将相应新轨迹数据的路径更新到初始作业文件的轨迹数据配置项中,进行下一节点的处理。
29.本实施例中,步骤402中将校验后的初始作业文件和处理后的轨迹数据,转换为初始版本的图形化语言;并根据初始版本的图形化语言生成航天三维仿真场景,具体过程如下:步骤4020、将初始版本的图形化语言进行分包处理,得到图形语言数据包;
步骤4021、在场景生命周期的created阶段,为场景在html dom元素中分配可视化容器;步骤4022、发起websocket双向通道建链请求,以流式加载形式对步骤4020中图形语言数据包进行接收;步骤4023:在接收完成的同时对图形语言数据包进行解析,获得图形语言数据包中的场景基本信息,执行步骤4024和步骤4025;并解析获得图形语言数据包中节点属性信息,根据图形语言数据包的包序创建节点,将各个节点加入到共享内存中进行管理;步骤4024、根据解析获取的场景基本信息创建场景时钟,将整个场景时区统一为“gmt+8”,并建立与时间相关的监听器;步骤4025、利用渲染组件绘制三维球,并创建geoserver服务,将geoserver服务中的瓦片图层影像覆盖到三维球表面,形成地理信息数据;并将六张天空贴图以赤道平均春分点轴和相机位置为参考中心拼接为天空盒子,并将六张天空贴图通过纹理映射组成三维宇宙背景;步骤4026:利用渲染组件将共享内存中的各个节点循环渲染到三维仿真场景中,形成场景中的节点及绘制节点运动轨迹,生成航天三维仿真场景。
30.本实施例中,步骤403中对校验后的初始作业文件进行版本信息更新,形成更新版本图形化语言,并获取与更新版本图形化语言对应的更动计数,具体过程如下:步骤4031、将初始作业文件中各个节点的属性信息和第i次修改后各个节点的属性信息进行差异比对,形成第i次节点属性差异配置文件;其中,第i次节点属性差异配置文件名称中包括更动计数值;步骤4032、将第i次修改的场景配置信息序列化为字符串,并持久化到场景配置信息文件,得到第i次场景配置信息文件;其中,第i次场景配置信息文件名称中包括更动计数值;步骤4033、根据第i次节点属性差异配置文件更改校验后的初始作业文件,形成第i次更新节点属性信息文件;步骤4034、按照步骤402所述的方法,将第i次更新节点属性信息文件、第i次场景配置信息文件和处理后的轨迹数据,转换为第i次更新版本图形化语言;其中,第i次更新版本图形化语言对应的更动计数为i。
31.本实施例中,步骤4031中将初始作业文件中各个节点的属性信息和第i次修改后各个节点的属性信息进行差异比对,具体过程如下:步骤403a、判断当前该节点的每个属性信息和第i次修改后该节点的每个属性信息是否相同,如果完全相同,则进行下一节点的差异比对;如果不完全相同,执行步骤403b;步骤403b、判断当前节点的显隐属性和第i次修改后该节点的显隐属性是否均为false,如果均为false,则进行下一节点的的差异比对;如果不均为false,执行步骤403c;步骤403c、依次遍历该节点的每个属性信息和第i次修改后该节点的每个属性信息,将不同的属性信息序列化为json键值;其中,json键值中键对应属性信息,值为第i次修改后的属性信息;步骤403d、直至所有节点差异比对完毕后,将各个json键值以字符流的形式持久
化到节点差异配置文件中,形成第i次节点属性差异配置文件。
32.本实施例中,初始作业文件可以是txt、xml、json等普通文件,也可以是关系型数据库中的数据表项。
33.本实施例中,每个节点的轨迹数据可以是txt、excel等普通文件。
34.本实施例中,所述的节点为场景中将多种形式的可视化聚合为一体的单个高级对象,它们之间相互独立,可插拔,并且每个节点都有唯一的id标识。
35.本实施例中,具体使用时,一个节点对应一个卫星,还可以为航天器、测站或者空间碎片等。
36.本实施例中,场景基本信息包括场景名称scenename、场景开始时间scenestarttime、场景结束时间sceneendtime、场景演示倍速multiplier、场景当前时间curenttime、展示轨迹的坐标系类型coordinate;每个节点的节点属性信息包括节点名称name、节点展示颜色color1、字体大小fontsize、该节点是否显示show、所属国家belong、节点模型文件路径url、节点模型大小size、轨迹数据类型type、轨迹数据data、轨迹颜色color2、轨迹粗细width、轨迹材质material、未走轨迹长度leadtime、已走轨迹长度trailtime;本实施例中,轨迹材质material包括虚线dashed和实线solid。
37.本实施例中,每个节点的轨迹数据为星历数据或者轨道参数数据,星历数据为地心地固坐标系(fixed)、j2000.0地心惯性坐标系(inertial)或者经纬高坐标系下的位置速度数据,轨道参数数据为轨道六根数、tle、ctle等在牛顿万有引力定律作用下,能够确定航天器轨道形状和轨道中具体位置的描述参数。
38.本实施例中,需要说明的是,每个节点均需保证《name》属性的唯一,在缓存中对节点的读写都通过该属性进行区分和管理,而《data》则规定了相应节点轨迹数据的数值或文件名称。也就是说,在面对复杂场景批量构建需求时,只需循环拷贝节点配置后,保证每个节点的《name》和《data》不同,即可快速构建海量节点的仿真场景。节点的个性化设置可以通过修改节点属性信息等初始作业文件属性,或者在仿真场景构建完成后利用操作面板进行修改。
39.本实施例中,场景基本信息和节点属性信息,可根据实际需要灵活增减配置项数,更改配置结构,甚至能够替换为任何能够描述场景状态和信息的数据结构。
40.本实施例中,采用hashset,linkedhashset,hashmap等集合方式校验节点名称是否重复。
41.本实施例中,轨道外推模型为twobody、j2 perturbation、hpop或者sgp4模型。
42.本实施例中,需要说明的是:轨迹数据处理是在作业文件校验完成后进行,这样串行的方式主要有两个优势:
①
轨迹数据处理可以直接取用作业文件校验中缓存到缓存的节点集合信息,避免对作业文件的二次解析,减少对磁盘的读写和数据解析资源的消耗;
②
作业文件校验已对场景时间进行规则性校验或赋值操作,会避免轨迹数据处理中因场景时间取值失败而导致流程执行失败的错误。另外轨迹数据处理可实现为以服务或模块形式存在的进程,提供了一种航天器轨迹数据获取方法。
43.本实施例中,图形化语言为czml格式且包含多个图形化语言数据包;本实施例中,为防止数据体量过大而引起三维仿真场景卡顿甚至崩溃的问题,故
根据数据体量或按预先设定的时间段对图形化语言数据进行分包处理。例如1个小时的数据,按照10分钟将数据分为6个包,然后按包序渐进式传输数据。分包后的数据包应该有明确的包序,并严格按照包序插入传输队列,完成数据的有序传输加载。数据包的传输信号为当获取仿真场景的next请求时响应发送,或者设置定时器等间隔发送。
44.本实施例中,所述场景配置信息为能够描述使用者对仿真场景所进行的个性化操作的key-value数据,包括相机位置、光照条件、云层厚度、地球配置;本实施例中,所述的图形化语言指的是符合opengl es 2.0标准,并且可以通过html5 canvas元素作为dom接口访问的3d引擎库脚本,可以是能够被渲染组件webgl、three.js、cesium等js库识别的、可以描述属性随时间变化情况的配置,也可以是同样条件下的key-value缓存数据库。
45.本实施例中,需要说明的是,仅在接收第一个图形化语言数据包时进行一次解析,得到场景基本信息和第i次版本信息更新所保存的场景配置信息。而在接收后续图形化语言数据包时,只进行解析出节点属性信息,并更新到共享缓存中,完成节点在仿真场景中的动态变化。
46.本实施例中,步骤404中按照步骤402所述的方法,将更新版本图形化语言生成航天三维仿真场景时,步骤4023中根据图形语言数据包的包序更新节点数据,将更新后的各个节点加入到共享内存中进行管理;步骤4023中还解析获得第i次版本信息更新所保存的第i次场景配置信息文件,并根据第i次场景配置信息文件依次设置当前场景,并将设置后的场景配置信息加入到共享缓存中。
47.本实施例中,实际使用时,第i次更新节点属性信息文件和第i次场景配置信息文件均放入场景文件夹中。
48.以上所述,仅是本发明的较佳实施例,并非对本发明作任何限制,凡是根据本发明技术实质对以上实施例所作的任何简单修改、变更以及等效结构变化,均仍属于本发明技术方案的保护范围内。
技术特征:
1.一种航天三维仿真场景快速构建方法,其特征在于,该方法包括以下步骤:步骤一、获取初始作业文件和轨迹数据,并加载到缓存中;其中,初始作业文件中包括场景基本信息和n个节点的节点属性信息,轨迹数据包括n个节点的轨迹数据;n为大于等于1的正整数;步骤二、初始作业文件的校验,以获取校验后的初始作业文件;步骤三、根据场景基本信息对轨迹数据处理,以获取处理后的轨迹数据:步骤301、读取缓存中的场景开始时间和场景结束时间,得到场景时间段;步骤302、循环遍历缓存中的各个节点,以对各个节点进行轨迹数据处理;其中,如果轨迹数据类型为星历数据,筛选出处于该场景时间段内的轨迹数据;如果轨迹数据类型为轨道参数数据,外推出场景时间段内的轨迹数据;步骤四、航天三维仿真场景生成与版本信息更新:步骤401、判断更动计数是否为0,如果更动计数为0,执行步骤402;否则,执行步骤403和步骤404;步骤402、将校验后的初始作业文件和处理后的轨迹数据,转换为初始版本的图形化语言;并根据初始版本的图形化语言生成航天三维仿真场景;步骤403、对校验后的初始作业文件进行版本信息更新,形成更新版本图形化语言,并获取与更新版本图形化语言对应的更动计数;其中,第i次版本信息更新,形成第i次更新版本图形化语言,且第i次更新版本图形化语言对应的更动计数为i,i为正整数,且i≥1;步骤404、按照步骤402所述的方法,将更新版本图形化语言生成航天三维仿真场景。2.按照权利要求1所述的一种航天三维仿真场景快速构建方法,其特征在于:步骤二中初始作业文件校验,具体包括以下步骤:步骤201、将初始作业文件中场景基本信息和节点属性信息读入缓存;其中,与初始作业文件对应的更动计数为0;步骤202、校验初始作业文件中的场景基本信息必填项;步骤203、按照以“场景名称_创建时间_uuid”的方式创建场景文件夹,并将初始作业文件、轨迹数据放入该场景文件夹中;步骤204、循环校验各个节点的属性信息,直至初始作业文件校验结束。3.按照权利要求2所述的一种航天三维仿真场景快速构建方法,其特征在于:步骤202中校验初始作业文件中的场景基本信息必填项,具体过程如下:步骤2021、判断初始作业文件中场景名称是否为空,如果为空,取当前时间戳为场景唯一名称;如果不为空,执行步骤2022;步骤2022、判断场景开始时间或场景结束时间是否为空,如果其中至少一项为空,判断轨迹数据中是否有星历数据文件,如果有星历数据文件,执行步骤2023;如果无星历数据,则执行步骤2024;如果场景开始时间和场景结束时间均不为空,则执行步骤203;步骤2023、取所有星历数据文件中最早时间为场景开始时间,或者取所有星历数据文件中最晚时间为场景结束时间;步骤2024:初始作业文件校验结束,则场景创建失败。4.按照权利要求2所述的一种航天三维仿真场景快速构建方法,其特征在于:步骤204中循环校验各个节点的属性信息的过程均相同,其中,校验任一个节点的属性信息,具体过
程如下:步骤2041、从缓存中读取该节点,并判断该节点名称是否为空;如果为空,生成与缓存中其它节点不重复的名称;如果不为空,执行步骤2042;步骤2042、判断当前该节点名称与缓存中其它节点名称是否重复,如果重复,在不改变原名称含义的前提下修改该节点名称;如果不重复,执行步骤2043;步骤2043、如果轨迹数据类型为星历数据,查找场景文件夹中是否存在相应星历数据文件,如果不存在,执行步骤2045;如果存在,执行步骤2044;如果轨迹数据类型为轨道参数数据,判断轨道参数数据的长度是否满足校验要求,如果不满足,执行步骤2045;如果满足,执行步骤2044;步骤2044、校验该节点的属性其他配置项,如果为空或不满足要求,则将该配置项设置为默认值,直至满足要求;步骤2045、将该节点显隐属性设为false。5.按照权利要求1所述的一种航天三维仿真场景快速构建方法,其特征在于:步骤302中循环遍历缓存中各个节点,以对各个节点进行轨迹数据处理的过程相同;其中,对任一个节点进行轨迹数据处理,具体过程如下:步骤3021、判断当前该节点的轨迹数据类型,如果轨迹数据类型为星历数据,执行步骤3022;如果轨迹数据类型为轨道参数,执行步骤3023和步骤3024;步骤3022、判断星历数据的时间跨度与场景时间段是否有相交时间,如果相交,则根据场景时间段截取相交的轨迹数据,得到新轨迹数据,执行步骤3024;如果不相交,则将该节点的显隐属性置为false,并进行下一节点的处理;步骤3023、利用轨道外推模型对轨道参数数据处理,外推出该节点处于场景时间段内的轨迹数据,得到新轨迹数据;步骤3024、将相应新轨迹数据的路径更新到初始作业文件的轨迹数据配置项中,进行下一节点的处理。6.按照权利要求1所述的一种航天三维仿真场景快速构建方法,其特征在于:步骤402中将校验后的初始作业文件和处理后的轨迹数据,转换为初始版本的图形化语言;并根据初始版本的图形化语言生成航天三维仿真场景,具体过程如下:步骤4020、将初始版本的图形化语言进行分包处理,得到图形语言数据包;步骤4021、在场景生命周期的created阶段,为场景在html dom元素中分配可视化容器;步骤4022、发起websocket双向通道建链请求,以流式加载形式对步骤4020中图形语言数据包进行接收;步骤4023:在接收完成的同时对图形语言数据包进行解析,获得图形语言数据包中的场景基本信息,执行步骤4024和步骤4025;并解析获得图形语言数据包中节点属性信息,根据图形语言数据包的包序创建节点,将各个节点加入到共享内存中进行管理;步骤4024、根据解析获取的场景基本信息创建场景时钟,将整个场景时区统一为“gmt+8”,并建立与时间相关的监听器;步骤4025、利用渲染组件绘制三维球,并创建geoserver服务,将geoserver服务中的瓦
片图层影像覆盖到三维球表面,形成地理信息数据;并将六张天空贴图以赤道平均春分点轴和相机位置为参考中心拼接为天空盒子,并将六张天空贴图通过纹理映射组成三维宇宙背景;步骤4026:利用渲染组件将共享内存中的各个节点循环渲染到三维仿真场景中,形成场景中的节点及绘制节点运动轨迹,生成航天三维仿真场景。7.按照权利要求1所述的一种航天三维仿真场景快速构建方法,其特征在于:步骤403中对校验后的初始作业文件进行版本信息更新,形成更新版本图形化语言,并获取与更新版本图形化语言对应的更动计数,具体过程如下:步骤4031、将初始作业文件中各个节点的属性信息和第i次修改后各个节点的属性信息进行差异比对,形成第i次节点属性差异配置文件;其中,第i次节点属性差异配置文件名称中包括更动计数值;步骤4032、将第i次修改的场景配置信息序列化为字符串,并持久化到场景配置信息文件,得到第i次场景配置信息文件;其中,第i次场景配置信息文件名称中包括更动计数值;步骤4033、根据第i次节点属性差异配置文件更改校验后的初始作业文件,形成第i次更新节点属性信息文件;步骤4034、按照步骤402所述的方法,将第i次更新节点属性信息文件、第i次场景配置信息文件和处理后的轨迹数据,转换为第i次更新版本图形化语言;其中,第i次更新版本图形化语言对应的更动计数为i。8.按照权利要求7所述的一种航天三维仿真场景快速构建方法,其特征在于:步骤4031中将初始作业文件中各个节点的属性信息和第i次修改后各个节点的属性信息进行差异比对,具体过程如下:步骤403a、判断当前该节点的每个属性信息和第i次修改后该节点的每个属性信息是否相同,如果完全相同,则进行下一节点的差异比对;如果不完全相同,执行步骤403b;步骤403b、判断当前节点的显隐属性和第i次修改后该节点的显隐属性是否均为false,如果均为false,则进行下一节点的的差异比对;如果不均为false,执行步骤403c;步骤403c、依次遍历该节点的每个属性信息和第i次修改后该节点的每个属性信息,将不同的属性信息序列化为json键值;其中,json键值中键对应属性信息,值为第i次修改后的属性信息;步骤403d、直至所有节点差异比对完毕后,将各个json键值以字符流的形式持久化到节点差异配置文件中,形成第i次节点属性差异配置文件。
技术总结
本发明公开了一种航天三维仿真场景快速构建方法,包括:一、获取初始作业文件和轨迹数据,并加载到缓存中;二、初始作业文件的校验,以获取校验后的初始作业文件;三、根据场景基本信息对轨迹数据处理,以获取处理后的轨迹数据;四、航天三维仿真场景生成与版本信息更新。本发明方法步骤简单、设计合理,仅提供初始作业文件和轨迹数据文件,就能进行三维仿真场景构建,降低了仿真要求,提升了三维仿真构建的便捷性、准确性和鲁棒性,且能多版本回放,更好地满足使用要求。地满足使用要求。地满足使用要求。
技术研发人员:肖方 靳宏伟 王元 许虎 张效元 王乐 王磊 王晓凯 张斌哲 马凯
受保护的技术使用者:中国西安卫星测控中心
技术研发日:2023.07.24
技术公布日:2023/8/24
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种塑料件生产用注塑模具的制作方法 下一篇:折叠屏电子设备保护壳的制作方法
