1)总控
WPF界面,主要负责指令输入、任务配置、Thrusrmaster摇杆输入以及在线数据显示部分。为保证仿真精度,采用IntervalZero RTX实时操作系统,微秒级精度,总控与动力学解算部分交互方式采用共享内存:
2)动力学解算
面向对象编程,封装函数,将不同型号飞机、导弹实例化,提高开发效率。基于真实气动参数,采用插值算法,利用四阶龙格库塔法求解飞行器六自由度方程。每一帧解算的飞行状态数据通过UDP发送至视景仿真。软件框架如下:
3)视景仿真
基于Unity3D开发,导入3dMax的地图、飞机、导弹三维模型,采用四元数进行旋转,避免使用欧拉角导致奇异问题。结合Oculus VR,带来全新视觉体验。两段demo:飞行器仿真视频,VR视频
基于项目1“飞行器仿真”的动力学解算、视景仿真框架,利用强化学习训练两架同等配置的飞机学习较为智能的策略。系统框架如下:
决策类问题需要大量有标记的训练样本进行有监督的训练,但是在空战问题上目前尚无相关数据集,所以采用强化学习的方式自我对战,生成大量样本。
二维环境训练目标到达指定区域相对简单,如果不加入任何人为的先验知识想要训练飞行器在三维环境中自主飞行则相对困难,况且飞机舵面控制量比汽车控制量多很多,较难保证飞行器自主平飞。需要引入现有的飞行策略来让智能体搜索空间适当“离散化”,例如将飞机飞行机动动作限制在:直线、盘旋、滚转、桶滚、半滚倒转、半筋斗、追踪、剪刀、高速摇摇、低速摇摇、蛇形机动、急规避等等(机动动作示意图参考百度贴吧:各种战机机动动作的GIF演示和名称对应)将相应机动的控制指令提前编写好。
为什么选择LSTM网络:个人认为飞行器决策问题是和时间相关联的。飞行器状态信息(例如位置、姿态、速度)时间关联性不大,但是“视野”的时间相关性就大了很多,例如对方飞行器出现在我方雷达视野内,可根据相邻采样间隔内推断其速度、机动能力,在对方脱离视野后,还可估算大致位置。因此为每一个飞行器构建一个LSTM网络。
Demo:双机对抗AI 其中左上为全局视角,右上为操作界面,左下为绿色轨迹飞机第一视角,右下为黄色轨迹飞机的跟随视角。初始位置为黄色轨迹飞机处于绿色轨迹飞机前方,对黄色飞机不利,黄色轨迹飞机通过抬头翻滚一周方式绕至后方,占据有利位置;绿色轨迹飞机掉头,迎面对方;黄色轨迹飞机发射一枚导弹,轨迹为蓝色,绿色轨迹飞机来不及躲闪,被命中。
项目获“第三届中国创新挑战赛暨中关村第二届科技军民融合专题赛优秀奖”。
针对无人机、卫星等俯拍视角,构建遥感图像数据集,手工标注位置、类别信息,所有图像来源于Google Earth,数据集包含低空拍摄的高分辨率战斗机,高空拍摄的机场、港口、雷达、导弹阵地等目标。检测系统框架如下:
遥感图像中战斗机检测详见YOLO-v3-C和YOLO-v3-pytorch两个仓库。另外视频demo:战斗机检测YOLO-v3,导弹阵地检测系统
红外成像利用温差进行判别,可以克服视觉上的障碍而发现目标。流程框图如下:
1)红外辐射特性计算部分:温度辐射主要来源于自身辐射(飞行器因与大气剧烈摩擦的蒙皮温度辐射、太阳直射带来的温度变化)、大气散射、反射(蒙皮不同材料反射太阳辐射、地表反射)。依据的理论主要为维恩位移定律、普朗克黑体辐射定律、玻尔兹曼定律、蒙皮温度辐射经验公式等,依此计算飞行器红外辐射。
2)辐射在到达探测器前,要经过大气衰减。依据MODTRAN(中等光谱分辨率大气透过率及辐射传输算法和计算模型)计算不同经纬度、季节、天气、温度湿度、气体分子含量对红外波段的电磁波吸收特性。
3)探测器接收处理要考虑自身焦距以及噪声,同时要处理镜头是否面对太阳而带来的光晕效果变化。处理之后基于Unity3D引擎渲染,计算得到的辐照强度要转化成显示亮度,编写好shader后赋予模型。
视频demo:IR
相关工作已申请专利:201811083437.0