人工智能程序员书写数字飞行器三维演示程序的方法与流程

文档序号:15588751发布日期:2018-10-02 18:41阅读:218来源:国知局
本发明涉及计算机仿真模拟
技术领域
,更具体的说是涉及飞行器及其部件仿真过程的三维演示。
背景技术
:目前,三维演示的应用涉及到科研、影视、游戏等各个方面,仿真可视化已成为科研人员开发仿真系统、进行仿真实验的重要辅助手段。尤其是在飞行器的研究过程中,进行实物或半实物仿真的代价太高,需要在计算机平台上进行数字仿真,而数字仿真过程缺少实物,不能直观的了解飞行器的姿态、相对位置等信息,所以需要进行仿真过程的可视化演示。通过对仿真过程的三维演示,技术人员与非技术人员都可以直观的看到飞行器飞行、机动等过程中的状态,有助于理解数字仿真过程,对比仿真的三维画面与预期的三维画面,可以对仿真过程的正确性进行验证,如果仿真过程有误,也可以直观的观测到。所以,飞行器的数字仿真需要三维演示程序提供支持。但是,不同的仿真任务需要的三维演示场景有很大区别,需要显示的三维模型的数量、位置、缩放比例都不一样,所以,目前的已有技术并不能解决这个问题。因此,研究出适应不同仿真任务的数字飞行器三维演示程序自动生成技术是本领域技术人员亟需解决的问题。技术实现要素:有鉴于此,本发明提供了一种人工智能程序员书写数字飞行器三维演示程序的方法。为了实现上述目的,本发明采用如下技术方案:一种数字飞行器三维演示程序的自动生成技术,其步骤如下:步骤一:飞行器数字装配,建立飞行器结构模型和各部件的三维模型,保存到模型库;将数字飞行器各部件的装配信息存入配置文件;步骤二:书写三维场景初始化代码,根据数字飞行器装配信息,书写外部三维的读取代码;根据天体物理属性,书写天体三维模型代码;步骤三:书写信息传输代码,书写信息接口函数接收外部程序传入的飞行器数据;书写解包函数,将接收到的数据包进行解包;步骤四:书写场景更新代码,根据三维模型数量与类型更新三维模型在绝对坐标系的状态;根据文本信息定义更新二维文本显示;步骤五:书写用户交互代码,根据常用的键盘与鼠标事件书写相应的场景操作代码;步骤六:自动编译部署,所有代码书写完成后自动进行程序的编译与部署。优选的,所述述仿真步骤一中保存的三维模型最终转化为ive格式。优选的,所述仿真步骤一中的配置文件为xml格式,每一个要显示的三维实体在配置文件中包含6个配置属性,分别是设备类型、模型名称、模型编号,模型类型、父节点、是否显示、节点名称、与父节点相对位置、与父节点相对姿态、缩放比例和设备描述。优选的,所述步骤一中的配置文件是自动生成的,依据数字飞行器的装配界面得到安装位置和姿态,依据数字飞行器的流设计决定需要哪些飞行器和部件、各部件属于哪个飞行器。优选的,所述步骤二中,在三维演示程序中,将地球卫星图贴在球体表面,构成地球的三维模型,驱动地球模型绕其自转轴匀速转动,转动角速度由相应的天文学常数决定。优选的,所述步骤三中,三维演示程序使用接口函数接收来自仿真程序的数据包,包括飞行器数量、包长度、数据类型、姿轨数据等。优选的,所述步骤四中飞行器的位置和姿态由接口函数收到的位置姿态数据决定。优选的,所述步骤四中,飞行器上各部件的位置和姿态由其父节点位置姿态叠加上其安装位置与姿态来决定。在飞行器质心处建立本体坐标系,叠加上配置文件中的部件安装位置与姿态,得到部件的位置与姿态,将部件模型经合理的平移、旋转后显示出来。优选的,所述步骤四中,更新多个飞行器的位置姿态时,等待所有的飞行器都收到同一仿真时刻的数据时再更新,保证各飞行器显示的状态都在同一时刻。优选的,在所述步骤五中,使用三维演示程序显示飞行器的位置姿态时,定时捕获按键事件,当按下特定按键时,触发相应的显示事件。这部分用于演示程序与用户的交互,包括切换视角、视图的放大与缩小、视图的旋转变换。综上所述,经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种数字飞行器三维演示程序的自动生成方法,针对不同的仿真模型与演示需求合理的组织了代码与配置文件,实现了三维演示程序的数据传输,可以使用仿真程序的数据来驱动三维演示画面的更新。本发明的优势在于,针对不同的仿真任务,能自动得到相应的三维演示程序,减轻了人的开发工作,避免了大量的编程错误,提高了三维演示程序的开发速度。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1附图为本发明数字飞行器三维演示程序自动生成技术的流程示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明公开了人工智能程序员书写数字飞行器三维演示程序的方法,包括以下步骤:步骤一:飞行器数字装配,建立飞行器结构模型和各部件的三维模型,保存到模型库;将数字飞行器各部件的装配信息存入配置文件;步骤二:书写三维场景初始化代码,根据数字飞行器装配信息,书写外部三维的读取代码;根据天体物理属性,书写天体三维模型代码;步骤三:书写信息传输代码,书写信息接口函数接收外部程序传入的飞行器数据;书写解包函数,将接收到的数据包进行解包;步骤四:书写场景更新代码,根据三维模型数量与类型更新三维模型在绝对坐标系的状态;根据文本信息定义更新二维文本显示;步骤五:书写用户交互代码,根据常用的键盘与鼠标事件书写相应的场景操作代码;步骤六:自动编译部署,所有代码书写完成后自动进行程序的编译与部署。为了进一步实现本发明的技术方案,步骤一将数字飞行器的装配信息保存到一个配置文件中,配置文件包含各设备的编号,该设备三维模型文件的名称,该设备所依赖的父节点,以及该设备相对其父节点的位置与姿态,还包含了该设备的显示比例,并且装配信息包括但不限于部件型号名称、部件对应的三维模型信息、部件安装位置与安装姿态信息。为了进一步实现本发明的技术方案,在步骤三中,将三维演示程序的源代码存入代码库,在需要的时候自动进行编译生成。为了进一步实现本发明的技术方案,在步骤三中,使用接口函数接收来自仿真程序的数据,并对接收到的信息自动解包,然后根据接收到的仿真数据,三维演示程序驱动三维场景进行相应的变化。为了进一步实现本发明的技术方案,在步骤四中,各三维模型根据仿真时间和接收到的数据同步刷新,使所有实体显示同一时刻的状态。为了进一步实现本发明的技术方案,在步骤二中,将地球地形图贴在一个球体上,在三维演示程序中动态显示该地球模型,地球绕自转轴匀速转动。为了进一步实现本发明的技术方案,在步骤四中,使用hud摄像头显示技术,将姿态轨道或其他数据显示在屏幕上的固定位置。为了进一步实现本发明的技术方案,在步骤五中,使用特定的按键控制三维视图,包括但不限于切换飞行器视角或者地球视角,视图放大和缩小,视图的旋转变换。下面将通过具体实施例进行进一步描述。本发明实施例公开了一种数字航天器三维演示程序自动生成的方法,主要包含以下几个步骤:飞行器的数字装配、书写三维场景初始化代码、书写信息传输代码、书写三维场景更新代码、书写用户交互代码和自动编译部署。1.飞行器的数字装配(1)使用三维建模软件生成飞行器或部件的三维模型,转化为ive格式,存入模型库。(2)通过数字装配界面选择需要的部件,并设置好部件的安装位置与安装姿态。将仿真需要的部件信息存入配置文件,其中包括飞行器和部件的三维模型信息、部件安装位置与姿态、各模型的显示比例等。本例中采用xml文件的配置文件,其中的装配信息格式如下表所示:节点名称备注modelname模型名称该模型的文件名称,如box9a.iveindex模型编号模型的编号,为一个整数type模型类型该模型的类型,如idealgyro或bodyfathernode父节点该模型的父节点,-1代表本身就是独立实体display是否显示节点为0或1表示该部件显示或不显示nodename节点名称节点的名称position相对位置该模型相对于父节点的初始位置attitude相对姿态该模型相对父节点的初始姿态scale缩放比例模型缩放比例description模型描述模型描述信息2.书写三维场景初始化代码(1)书写三维模型加载代码外部三维模型的信息从配置文件中读取,书写的代码要遍历配置文件中所有模型。人工智能程序员统计配置文件中的模型总数和独立实体总数,在头文件中添加模型总数和实体总数的宏定义,比如:#definemax_device_number35。人工智能程序员书写循环结构的代码来遍历读取模型,其中应包含判断逻辑,以处理不同级别的模型。若该模型为独立实体,则将该实体安装在坐标系原点位置,并建立相应的轨道。若该实体不是独立实体,则将该实体安装在其父节点的本体坐标系上。(2)书写天体模型代码天体模型可以包含地球、太阳和月球等天体,本例中以地球为例进行说明。地球模型使用代码直接在演示程序中创建,人工智能程序员根据地球半径在坐标原点建立一个三维球体,使用全球地形图进行贴图,得到一个静止的地球模型。人工智能程序员书写地球运动代码,根据地球自转速度使其围绕z轴随时间自转。3.书写信息传输代码(1)书写接口函数,用以接收外部传入的飞行器状态数据,接口函数的输入参数应包括:外部程序传输数据的总线标识、数据包内容等。(2)书写解包函数,在三维演示程序中对接收到的数据包进行解包,提取出仿真数据。数据包使用结构体来表示,其中包含了数据包编号、数据包长度和数据内容。而数据内容又包括:仿真时刻、飞行器编号、轨道与姿态信息。4.书写场景更新代码(1)书写三维模型状态更新代码三维模型状态更新代码与三维实体的类型与数量有关,人工智能程序员根据实体数量书写循环结构代码,在其中遍历更新各模型的状态。根据信息传输得到的结果,给模型状态传入正确的数值。再使用坐标变换代码更新三维模型的显示状态。(2)书写二维文本显示代码二维文本显示代码用以显示一直在屏幕最前端的一些信息,本例中以飞行器姿轨信息进行说明。书写代码创建hud摄像机节点,设置该节点的投影矩阵和渲染顺序,使得该摄像机不会随视角的漫游而变化。书写代码创建text对象以存储要显示的文本信息,如轨道位置速度、航天器姿态角与姿态加速度。书写代码将text对象加入到hud摄像机视图中。5.书写用户交互代码(1)书写键盘交互代码键盘交互代码主要包括键盘事件监测代码和键盘事件响应代码。键盘事件监测代码使用选择分支语句实现,对常用的一些键盘操作进行监测,比如:方向键、子母键、数字键和回车键等。在代码中使用相应键位的代码来识别该按键。键盘事件响应代码也是用选择分支语句实现,将输入的按键信息一一对应到具体的程序交互动作,比如:旋转、放缩、切换位置以及全屏等。(2)书写鼠标交互代码鼠标交互代码主要包括鼠标事件监测代码和鼠标事件响应代码。鼠标事件监测代码使用选择分支语句实现,监测事件包括:单击左键、单击右键和滚轮动作等。鼠标事件响应代码使用选择分支语句实现,将鼠标操作一一对应到程序交互动作,比如:放大、缩小、旋转和平移等。6.自动编译部署在所有代码书写完成后,人工智能程序员对三维演示程序进行编译,将代码编译生成可执行程序exe文件。然后将相应的配置文件与可执行程序都部署到三维演示程序文件中。本说明书中实施例采用递进的方式描述,对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1