小型航空器光学复眼仿真测试系统设计
作者: 祁启明 傅瑞罡 吕梅柏 王佩 李楚为 范红旗
摘要:为支持光学复眼早期构型设计验证与前端(光学图像采集部分)、后端(图像处理部分)平行开发,本文设计了一种航空器光学复眼仿真测试系统。该系统由视景仿真子系统、复眼仿真子系统、仿真管理子系统、航空器飞行仿真子系统四部分组成,以光学复眼的信息处理机为被测实物对象,具备复眼图像仿真、飞行仿真、算法软件测试等功能。通过测试实验,该仿真测试系统的图像仿真几何精准度、图像注入信息处理机的实时性、仿真闭合回路的完整性得到验证,能为研究者评估复眼构型设计、优化图像处理算法、测试算法软件提供工具支撑。
关键词:光学复眼; 航空器; 仿真测试系统; 半实物仿真; 三维仿真引擎
0引言
光学复眼[1]在结构上具有体积小、结构紧凑、易与平台共形的特点,在功能上具有宽视场探测、分辨率柔性可调、局部场景立体重建、光流易感知等优点,与近年来蓬勃发展的多旋翼和巡飞弹等低空小型航空器平台结合后可实现视觉导航、精细成像、动目标快速捕获等功能,使航空器平台具备卫星导航拒止条件下的自主导航与目标探测能力,在无人侦察、搜索救援、精确打击等领域具有广阔的应用前景。
由于光学复眼是光学、力学、机械、电子、信息多学科交叉的一种复杂系统,其设计过程复杂,研制难度大、周期长。从系统总体和算法软件研制的角度出发,开发一套适于小型航空器光学复眼应用的半实物仿真测试系统,以支持早期构型设计验证与前端(光学图像采集部分)、后端(图像处理部分)平行开发,就显得十分必要。
目前,公开的光学复眼应用研究主要是依赖独立复眼硬件的后端设计[2-7],未见有前端、后端平行开发的先例,但就普通光电载荷而言,已有面向后端应用的仿真系统设计。基于UnrealEngine开发的全数字无人机仿真插件AirSim[8]和Sim4CV[9],可以在虚拟场景中完成无人机飞行模拟和光电载荷图像的仿真获取;刘丙涛等[10]提出一种飞控计算机在环的无人直升机目标跟踪实时仿真系统; Dai等[11]开发了基于FPGA的无人机飞控系统半实物仿真平台,其中光学探测系统采用UnrealEngine仿真图像。从这些仿真系统特性可知,在设计小型航空器光学复眼仿真测试系统时,若采用全数字形式,仿真测试灵活性强,可满足光学复眼构型验证、图像获取与算法研究需要,但无法有效评估算法软件的实时性与资源开销;若采用全实物形式,则需要构建转台等姿态仿真控制设备,系统复杂且代价昂贵,主要用于后期集成与性能测试。
本文基于商业三维仿真引擎Unigine与一款定制的无人机测绘地面站软件,提出并构建了一种半实物小型航空器光学复眼仿真测试系统,可模拟不同目标环境和飞行条件下的子眼图像,支持复眼构型及安装方式的灵活定义、子眼图像样本的快速生成与记录、数字图像的实时注入与应用软件的运行测试,对于系统早期构型验证、后端算法软件平行开发测试具有重要意义。
1仿真测试系统功能特点
如图1所示,小型航空器光学复眼的前端设计、后端设计有串行或并行两种开发模式。串行开发模式为根据需求设计复眼构型的数学模型,依据构型进行物理设计和制备,完成前端设计,再基于复眼实物完成由图像获取、算法优化、软件研制三个环节组成的后端设计,并通过复眼设计和算法优化反馈优化构型设计,最终结合软硬件进行集成测试。串行开发模式面临的问题是后端设计无法脱离前端设计独立开展,同时前端设计方案调整会导致后端设计成果失效。而在并行开发模式下,光学复眼图像数据通过计算机仿真完成获取采集,将构型设计与后端设计联系起来,使后端设计与前端设计同步进行。与串行开发模式相比,并行开发模式克服了前端设计与后端设计的过紧耦合关系,提高了研发效率。
本文设计的仿真测试系统顺应了小型航空器光学复眼并行开发模式。开发中,研究者首先基于构型设计设置光学复眼构型及安装方式,然后选择广域虚拟场景并设置目标,进行小型航空器搭载光学复眼的飞行仿真获取动态图像,为算法优化提供数据支持,最后以烧录有应用算法的信息处理机为测试对象进行软件性能评估。
基于并行开发模式流程,仿真测试系统应具备如下基本功能:(1)灵活快捷设置光学复眼构型及安装方式; (2)内容丰富的虚拟场景仿真; (3)小型航空器飞行仿真; (4)目标仿真; (5)基于光线追踪的复眼图像获取; (6)数据管理与可视化; (7)应用软件测试。为实现这些基本功能,仿真测试系统应具有精准的图像仿真和满足实时性要求的图像注入性能。同时,数据管理的高效性、功能模块的可扩充性、仿真过程的可配置性以及人机交互界面的友好性也是重要的设计要求。
2仿真测试系统架构与关键技术
2.1系统架构
仿真测试系统的架构如图2所示,功能结构分为视景仿真子系统、复眼仿真子系统、仿真管理子系统、飞行仿真子系统四部分。
视景仿真子系统用于图像渲染计算和视景画面显示,其核心是三维仿真引擎。当前热门三维仿真引擎有UnrealEngine,Unity,VegaPrime,Unigine等,这些均能通过基于物理渲染获得逼真图像,其中UnrealEngine和Unity的用户最多。然而,这些引擎中,只有Unigine使用64位坐标精度,其余均为32位,并且Unigine的特色是适应特大场景的建模,所以对于图像仿真和航空应用而言,Unigine具备最高的精度要求和较好的广域视景显示效果。仿真测试系统选用商业三维仿真引擎Unigine,加载虚拟场景、航空器、目标等三维模型后,根据仿真设置、航空器位置姿态、图像处理结果等输入信号渲染视景图像和复眼图像。
复眼仿真子系统用于光学复眼画面显示和复眼图像的注入、处理,由复眼数学模型模块、复眼画面显示、图像注入模块、图像处理模块组成。用户设置光学复眼构型后便建立复眼数学模型,Unigine引擎根据数学模型渲染图像并同步显示,生成的同组子眼图像并置为单幅复眼图像通过图像注入模块传至图像处理模块进行处理。
仿真管理子系统用于设置多类仿真参数,对场景、航空器、目标、光学复眼的三维模型进行管理,记录并可视化仿真数据。仿真管理子系统由仿真设置模块、三维模型库、数据管理模块组成。
飞行仿真子系统集成于一款专用地面站监控软件。该地面站监控软件内置MicroPilot飞控软件,兼顾航空器飞行任务规划和运动仿真。
仿真测试系统采用分布式硬件架构,由一台高性能主机、一张图像注入卡(插装于主机CPU板卡接口)、一台航空器便捷式地面站和一个信息处理机组成。图像注入模块以及主机与地面站、信息处理机的串口通信接口集成在图像注入卡中; 信息处理机是航空器上与光电载荷相连的重要硬件设备,用于载入算法软件,输出图像处理结果,作为图像处理模块接入仿真测试系统,成为被测实物对象; 地面站监控软件安装在地面站上; 其余功能模块集成为安装在主机上的仿真软件[12]。
2.2关键技术
半实物仿真测试系统的核心功能是完成光学复眼仿真,将复眼图像注入信息处理机实物,搭建仿真主机与信息处理机、地面站之间的双工通信链路,支持小型航空器的任务流程验证。其关键技术在于复眼数学模型构建、视景显示和复眼画面显示的实现、仿真设置模块的设计、三维模型库构建、数据管理模块的设计、图像注入模块的设计、数据交互的实现。
2.2.1复眼数学模型构建
复眼数学模型模块用于构建复眼数学模型,对自定义构型设置生成规范化数学描述,为Unigine引擎渲染复眼图像提供参数输入。
光学复眼的构型区分为平面排布、球面多圈排布、球面多列排布、柱面排布四种[13],如图3所示。平面复
眼的视场重叠率较高,在立体感知上优势显著,主要用于近距离深度估计、三维重建、光场成像; 其他凸面复眼的视场重叠率不高,主要用于远距离大视场成像。以复眼几何中心为原点建立复眼坐标系O-XYZ,四种构型中子眼在复眼坐标系下的光心位置和光轴指向分别用平面坐标(ΔX,ΔY)、球坐标(θ,φ,R)、极坐标(,,R)、柱坐标(,Y,R)进行表示。平面坐标中ΔX和ΔY分别表示光心沿X轴和Y轴距原点的长度; 球坐标中θ、φ分别表示光轴的天顶角、方位角,R表示光心到原点距离; 极坐标中、分别表示光轴的方位角、俯仰角,R为光心到原点距离; 柱坐标中表示光轴方位角,Y和R分别表示光心距原点的高度和水平距离。每个子眼的光学参数包括焦距f、像平面宽度d和分辨率Nu×Nv。光学复眼数学模型中,子眼的参数如表1所示。
针对用户自定义复眼构型的需求,运行于主机上的仿真软件在Qt界面上需要设计预设构型选择、Excel构型参数文件导入和对话框输入两种参数录入方式。用户完成构型参数录入后,仿真软件便自动求解复眼数学模型,使每个子眼对应表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软件编程实现,绘出小型航空器与目标的运动轨迹、姿态变化、小型航空器到目标的视线角真值等,便于数据分析和功能验证评估。