祁启明,傅瑞罡,吕梅柏,王 佩,李楚为,范红旗*
(1.国防科技大学ATR重点实验室,长沙 410073; 2.西北工业大学 航天学院,西安 710072; 3.中国人民解放军32139部队,北京 101200)
光学复眼在结构上具有体积小、结构紧凑、易与平台共形的特点,在功能上具有宽视场探测、分辨率柔性可调、局部场景立体重建、光流易感知等优点,与近年来蓬勃发展的多旋翼和巡飞弹等低空小型航空器平台结合后可实现视觉导航、精细成像、动目标快速捕获等功能,使航空器平台具备卫星导航拒止条件下的自主导航与目标探测能力,在无人侦察、搜索救援、精确打击等领域具有广阔的应用前景。
由于光学复眼是光学、力学、机械、电子、信息多学科交叉的一种复杂系统,其设计过程复杂,研制难度大、周期长。从系统总体和算法软件研制的角度出发,开发一套适于小型航空器光学复眼应用的半实物仿真测试系统,以支持早期构型设计验证与前端(光学图像采集部分)、后端(图像处理部分)平行开发,就显得十分必要。
目前,公开的光学复眼应用研究主要是依赖独立复眼硬件的后端设计,未见有前端、后端平行开发的先例,但就普通光电载荷而言,已有面向后端应用的仿真系统设计。基于UnrealEngine开发的全数字无人机仿真插件AirSim和Sim4CV,可以在虚拟场景中完成无人机飞行模拟和光电载荷图像的仿真获取; 刘丙涛等提出一种飞控计算机在环的无人直升机目标跟踪实时仿真系统; Dai等开发了基于FPGA的无人机飞控系统半实物仿真平台,其中光学探测系统采用UnrealEngine仿真图像。从这些仿真系统特性可知,在设计小型航空器光学复眼仿真测试系统时,若采用全数字形式,仿真测试灵活性强,可满足光学复眼构型验证、图像获取与算法研究需要,但无法有效评估算法软件的实时性与资源开销; 若采用全实物形式,则需要构建转台等姿态仿真控制设备,系统复杂且代价昂贵,主要用于后期集成与性能测试。
本文基于商业三维仿真引擎Unigine与一款定制的无人机测绘地面站软件,提出并构建了一种半实物小型航空器光学复眼仿真测试系统,可模拟不同目标环境和飞行条件下的子眼图像,支持复眼构型及安装方式的灵活定义、子眼图像样本的快速生成与记录、数字图像的实时注入与应用软件的运行测试,对于系统早期构型验证、后端算法软件平行开发测试具有重要意义。
如图1所示,小型航空器光学复眼的前端设计、后端设计有串行或并行两种开发模式。串行开发模式为根据需求设计复眼构型的数学模型,依据构型进行物理设计和制备,完成前端设计,再基于复眼实物完成由图像获取、算法优化、软件研制三个环节组成的后端设计,并通过复眼设计和算法优化反馈优化构型设计,最终结合软硬件进行集成测试。串行开发模式面临的问题是后端设计无法脱离前端设计独立开展,同时前端设计方案调整会导致后端设计成果失效。而在并行开发模式下,光学复眼图像数据通过计算机仿真完成获取采集,将构型设计与后端设计联系起来,使后端设计与前端设计同步进行。与串行开发模式相比,并行开发模式克服了前端设计与后端设计的过紧耦合关系,提高了研发效率。
图1 航空器光学复眼开发模式Fig.1 Development mode of optical compound eye of aircraft
本文设计的仿真测试系统顺应了小型航空器光学复眼并行开发模式。开发中,研究者首先基于构型设计设置光学复眼构型及安装方式,然后选择广域虚拟场景并设置目标,进行小型航空器搭载光学复眼的飞行仿真获取动态图像,为算法优化提供数据支持,最后以烧录有应用算法的信息处理机为测试对象进行软件性能评估。
基于并行开发模式流程,仿真测试系统应具备如下基本功能:(1)灵活快捷设置光学复眼构型及安装方式; (2)内容丰富的虚拟场景仿真; (3)小型航空器飞行仿真; (4)目标仿真; (5)基于光线追踪的复眼图像获取; (6)数据管理与可视化; (7)应用软件测试。为实现这些基本功能,仿真测试系统应具有精准的图像仿真和满足实时性要求的图像注入性能。同时,数据管理的高效性、功能模块的可扩充性、仿真过程的可配置性以及人机交互界面的友好性也是重要的设计要求。
仿真测试系统的架构如图2所示,功能结构分为视景仿真子系统、复眼仿真子系统、仿真管理子系统、飞行仿真子系统四部分。
图2 仿真测试系统架构图Fig.2 Architecture diagram of simulation test system
视景仿真子系统用于图像渲染计算和视景画面显示,其核心是三维仿真引擎。当前热门三维仿真引擎有UnrealEngine,Unity,VegaPrime,Unigine等,这些均能通过基于物理渲染获得逼真图像,其中UnrealEngine和Unity的用户最多。然而,这些引擎中,只有Unigine使用64位坐标精度,其余均为32位,并且Unigine的特色是适应特大场景的建模,所以对于图像仿真和航空应用而言,Unigine具备最高的精度要求和较好的广域视景显示效果。仿真测试系统选用商业三维仿真引擎Unigine,加载虚拟场景、航空器、目标等三维模型后,根据仿真设置、航空器位置姿态、图像处理结果等输入信号渲染视景图像和复眼图像。
复眼仿真子系统用于光学复眼画面显示和复眼图像的注入、处理,由复眼数学模型模块、复眼画面显示、图像注入模块、图像处理模块组成。用户设置光学复眼构型后便建立复眼数学模型,Unigine引擎根据数学模型渲染图像并同步显示,生成的同组子眼图像并置为单幅复眼图像通过图像注入模块传至图像处理模块进行处理。
仿真管理子系统用于设置多类仿真参数,对场景、航空器、目标、光学复眼的三维模型进行管理,记录并可视化仿真数据。仿真管理子系统由仿真设置模块、三维模型库、数据管理模块组成。
飞行仿真子系统集成于一款专用地面站监控软件。该地面站监控软件内置MicroPilot飞控软件,兼顾航空器飞行任务规划和运动仿真。
仿真测试系统采用分布式硬件架构,由一台高性能主机、一张图像注入卡(插装于主机CPU板卡接口)、一台航空器便捷式地面站和一个信息处理机组成。图像注入模块以及主机与地面站、信息处理机的串口通信接口集成在图像注入卡中; 信息处理机是航空器上与光电载荷相连的重要硬件设备,用于载入算法软件,输出图像处理结果,作为图像处理模块接入仿真测试系统,成为被测实物对象; 地面站监控软件安装在地面站上; 其余功能模块集成为安装在主机上的仿真软件。
半实物仿真测试系统的核心功能是完成光学复眼仿真,将复眼图像注入信息处理机实物,搭建仿真主机与信息处理机、地面站之间的双工通信链路,支持小型航空器的任务流程验证。其关键技术在于复眼数学模型构建、视景显示和复眼画面显示的实现、仿真设置模块的设计、三维模型库构建、数据管理模块的设计、图像注入模块的设计、数据交互的实现。
2.2.1 复眼数学模型构建
复眼数学模型模块用于构建复眼数学模型,对自定义构型设置生成规范化数学描述,为Unigine引擎渲染复眼图像提供参数输入。
光学复眼的构型区分为平面排布、球面多圈排布、球面多列排布、柱面排布四种,如图3所示。平面复眼的视场重叠率较高,在立体感知上优势显著,主要用于近距离深度估计、三维重建、光场成像; 其他凸面复眼的视场重叠率不高,主要用于远距离大视场成像。以复眼几何中心为原点建立复眼坐标系-,四种构型中子眼在复眼坐标系下的光心位置和光轴指向分别用平面坐标(Δ,Δ)、球坐标(,,)、极坐标(,ϑ,)、柱坐标(,,)进行表示。平面坐标中Δ和Δ分别表示光心沿轴和轴距原点的长度; 球坐标中、分别表示光轴的天顶角、方位角,表示光心到原点距离; 极坐标中、ϑ分别表示光轴的方位角、俯仰角,为光心到原点距离; 柱坐标中表示光轴方位角,和分别表示光心距原点的高度和水平距离。每个子眼的光学参数包括焦距、像平面宽度和分辨率×。光学复眼数学模型中,子眼的参数如表1所示。
图3 光学复眼Fig.3 Optical compound eye
针对用户自定义复眼构型的需求,运行于主机上的仿真软件在Qt界面上需要设计预设构型选择、Excel构型参数文件导入和对话框输入两种参数录入方式。用户完成构型参数录入后,仿真软件便自动求解复眼数学模型,使每个子眼对应表1中的参数被赋值。
表1 子眼参数
2.2.2 视景显示和复眼画面显示的实现
视景显示和复眼画面显示是基于Unigine引擎的Camera类应用程序接口即相机工具实现的。每个子眼对应一个相机工具,同时小型航空器绑定一个跟随相机。仿真中,Unigine程序主线程按照设置的仿真步长解算小型航空器、目标在以虚拟场景中心为原点的直角坐标系下的六自由度位姿。根据解算出的小型航空器六自由度位姿、复眼在机体坐标系下的安装位置、所有子眼对应的表1参数,经过一系列坐标转换后,对相机工具进行参数赋值,通过基于物理渲染得到飞行视景图像和所有子眼图像。
2.2.3 仿真设置模块的设计
仿真设置模块集成在Qt界面上,便于用户设置仿真参数。仿真设置模块包括航空器设置、场景环境设置、复眼构型设置、目标设置、仿真步长设置、数据管理设置。仿真测试前,用户通过复眼构型设置自定义复眼构型,使Unigine引擎根据自动生成的复眼数学模型渲染复眼图像; 然后在界面上选择场景、小型航空器、目标,完成仿真初始设置。仿真测试中,可以在场景环境设置菜单中,设置视景时间、云量、风速、雨雾、海浪等环境参数,驱动Unigine引擎渲染环境特效; 适时设置目标路线点和运动速度,生成目标路线数据,驱动视景画面和复眼画面显示目标运动。
2.2.4 三维模型库构建
为适应仿真测试系统对选择不同场景、小型航空器、目标、复眼构型的画面调度显示,需要将场景、目标、小型航空器、光学复眼的三维模型分类存储在仿真软件目录下,并为模型文件以统一格式命名附上标签,成为三维模型库。目标、小型航空器和光学复眼的三维模型通过3dsMax,Maya,CAD等三维建模软件设计,以fbx,obj等文件格式保存,与Unigine引擎支持的格式兼容; 场景三维模型通过场景编辑器设计,利用内置组件添加地形、植被、道路、天空、云层、海洋等内容,并导入建筑、车辆、通信塔等物体的三维模型,最终保存为“.word”后缀名的Unigine内部格式场景文件。
2.2.5 数据管理模块的设计
数据管理模块由仿真数据记录和数据可视化两部分组成。仿真数据记录在主机仿真软件的Unigine程序中实现,通过调用C++系统函数,实现在仿真测试中以txt文件形式同步记录航空器位置姿态、目标位置姿态、目标视线信息,同时逐帧保存复眼图像,并用另一个txt文件记录仿真设置参数。数据可视化通过MATLAB软件编程实现,绘出小型航空器与目标的运动轨迹、姿态变化、小型航空器到目标的视线角真值等,便于数据分析和功能验证评估。
2.2.6 图像注入模块的设计
图像注入模块集成于一张图像注入卡,用于视频信号和串口信号实时传输,由SDI视频接口、PAL视频接口和两路RS422通信接口组成。其中,SDI视频接口用于向信息处理机注入可见光图像,PAL视频接口用于注入红外图像,两路RS422通信接口分别用于为主机与地面站、主机与信息处理机搭建双工通信链路。设计原理如图4所示。
图4 图像注入卡原理图Fig.4 Schematic diagram of image injection card
四个接口共用PCIex8接口、Xilinx Kintex7高性能FPGA、1G DDR3内存、DMA(直接存储器访问)控制器:SDI视频接口工作时,启动DMA,当第一帧SDI图像写入时,启动SDI图像发送功能,DMA将DDR3内存中暂存的数据经数据交换网络传送到SDI图像组帧单元,由高速GTX收发器接口发出; PAL视频接口工作时与SDI视频接口类似,不同的是PAL图像在输出时需要通过并行LVCMOS接口输出到ADV7127芯片进行数模信号转换,输出模拟信号; RS422通信接口输出信号时使用独立的组解帧单元和专用的收发器芯片DS89C21。
2.2.7 数据交互的实现
仿真测试系统运行时,数据交互包括仿真主机内部进程间数据通信和硬件设备之间的串口数据通信。Qt界面程序与Unigine程序之间的数据交互使用本机Socket通信,选择TCP传输协议,每一帧数据由帧头和信息正文组成,其中帧头包括标识符、校验符、数据帧类型符和数据长度符。地面站、信息处理机之间串口通信直接使用内部通信协议。由于仿真主机在仿真测试中起到模拟光学复眼的作用,所以仿真主机对照光学复眼实物,定义仿真主机与地面站、信息处理机之间通信协议规范,数据帧包含固定帧头、帧长、帧类型、信息正文和校验字等内容,与实物间通信协议一致。为了使主机中的视景显示、复眼图像注入与地面站中的航空器飞行仿真保持同步,主机与地面站采用网络时间协议(Network Time Protocol,NTP),地面站作为客户端以固定周期向作为服务器的仿真主机进行对时同步,减小仿真计算、数据传输的延时干扰。
利用设计的仿真测试系统,从光学复眼图像合成、图像注入性能测试、功能模块联调测试三方面进行测试实验,检验仿真测试系统的功能性能。
在光学侦察、制导控制等航空器应用中,光学复眼图像的几何精准度直接影响算法软件的输出结果。为了检验图像的几何精准度,利用仿真测试系统开展光学复眼图像合成测试。光学复眼图像合成如图5所示。
图5 光学复眼图像合成Fig.5 Image synthesis of optical compound eye
自定义一种球面多圈复眼如图5(a)所示,其数学模型通过在用户界面上输入表2所示的构型参数值得到。
表2 光学复眼构型
在场景中沿复眼中轴距复眼中心30 m的切平面上等间隔布置9个红色球点,如图5(b)所示,其在复眼坐标系下的坐标(,,)如表3所示。
表3 红色球点坐标
表4 红色球点的像素偏差
经过测试,合成的光学复眼图像的平均像素偏差小于1个像素,图像仿真具有较高的几何精准度,符合设置的构型条件。基于仿真测试系统获取的复眼图像可支持早期构型设计验证和后端设计。
由于烧录在信息处理机中的算法软件对图像注入的帧率有一定要求,为检验仿真测试系统能否有效用于算法优化和软件研制, 在表5所示的主机硬件配置下进行图像注入性能测试。
表5 主机硬件配置
测试中,复眼图像合成、图像注入信息处理机、从信息处理机导出图像至独立显示器同步进行,如图6(a)所示。主机的软、硬件条件不变时,图像注入帧率主要受制于子眼数量和单帧图像分辨率。设置四种图像注入分辨率:640×360,1 024×576,1 366×768,1 920×1 080。在四种分辨率下,分别测试具有1~9个子眼的复眼图像合成和注入的帧率,记录数值,如图6(b)所示。
图6 图像注入性能测试Fig.6 Test of image injection performance
根据图6(b)中的曲线变化可知,子眼数量越少、图像分辨率越小,注入帧率越高。对于表2配置下的复眼,假设其算法软件对输入图像流的要求为1 920×1 080@ 25 fps,由于图6(b)中在四个子眼配置和1 920×1 080分辨率条件下的注入帧率达到28 fps,满足算法软件的实时性要求。
为验证仿真测试系统的视景仿真子系统、复眼仿真子系统、飞行仿真子系统、仿真管理子系统能否构成完整的仿真闭合回路,以巡飞弹电视末制导为例进行功能模块联调测试。
仿真测试前,光学复眼按表2构型要求进行设置,小型航空器选择巡飞弹。考虑到目前缺少可投入应用的复眼图像处理算法,图像注入模块仅将0号子眼的图像流注入加载有目标识别跟踪算法的信息处理机。测试中,通过地面站规划巡飞弹航线,选择一架固定翼飞机作为打击目标,巡飞弹根据算法软件提供的跟踪视线信息完成打击。巡飞弹飞行视景、信息处理机回传的目标跟踪画面、记录的巡飞弹姿态角如图7所示。
图7 功能模块联调测试Fig.7 Joint test of functional modules
从测试效果来看,复眼仿真、图像注入、信息处理、飞行仿真、数据记录同步运行,四个子系统能构成完整的仿真闭合回路。
本文针对航空器光学复眼前端、后端设计并行开发的需求,设计了一种航空器光学复眼半实物仿真测试系统。该仿真测试系统融合了光学复眼仿真、虚拟场景与目标仿真、航空器飞行仿真等功能,光学复眼图像仿真精准,图像注入实时性较好,具备完整的仿真闭环回路。仿真测试系统为光学复眼构型设计验证、算法优化、软件平台测试提供工具支撑,提高了航空器光学复眼开发效率,降低了研究成本。然而,目前还没有一种红外场景生成技术能够模拟真实的世界,仿真测试系统不能完成红外图像合成。下一步,仿真测试系统将引入支持红外场景仿真的三维仿真引擎,具备可见光、红外信号同步仿真功能。