RflySim平台——高可信度的无人控制系统开发、测试与评估平台
01RflySim平台背景智能无人系统是一个复杂系统,涉及机械、控制、计算机、通信和材料等多个领域技术,而AI无疑是开发IUS所需的关键技术之一。随着新一代人工智能兴起,我们正面临一场新的工业革命,人类创造了各种无人系统,随着人类知识的累积和发展,无人系统的技术水平也在逐渐提高。自治和智能是智能无人系统的两个最重要特征,而实现和优化这两个特征的最有效方法是使用各种AI技术,例如智能感知(图像、语音识别等),人机交互,智能决策,学习,推理等。与传统无人系统相比,智能无人系统具有更大应用潜力,各种类型智能无人系统的出现将对人类生活和社会产生重大影响。目前,智能无人系统主要包括自动驾驶汽车、无人机、面向服务的机器人、智能工业机器人、太空机器人、航海机器人以及无人车间/智能工厂。智能无人系统开发和测试通常分为基于实验和基于仿真。如表 1所示,以无人机开发为例,基于实验的开发和测试虽然很直接,但是存在安全、空间、时间和成本等诸多痛点,以上痛点对于集群飞行测试更“痛”。基于仿真的开发和测试需要建立无人系统的数学模型,围绕模型进行开发和测试,最终回到真实的无人系统。对于基于仿真的开发和测试,痛点在于如何建立合理的模型。这导致传统仿真不真,而真的又太贵。然而,基于实验的开发和测试虽然直接但是“短期获利”行为,而基于仿真的开发和测试虽然看似“麻烦”但是“长期获利”行为。比如:特斯拉工程师表示他们花了10年进行能量流动的模型建,在不更换电池组的情况下实现续航里程提升。然而,据笔者所知,在国内大部分中小公司对无人机开发非常依赖实验,只有大公司和航空航天院所在开发重要的国家型号会采用基于模型的开发过程。
表 1 无人机基于实验的开发和测试与基于仿真的开发和测试对比
典型的无人智能体集群协同控制从仿真到实验全流程、全模块的系统架构如图 1所示,涉及包含无人智能体系统的设计与搭建、通讯系统的设计与搭建、定位系统的搭建与设计、导航与运动控制系统的搭建与设计、载荷系统的搭建与设计、任务规划系统的搭建与设计、地面站综合控制系统的搭建与设计等在内的众多软硬件系统,是一个庞大的生态系统和工具链。
图1 典型无人智能体集群协同控制仿真与实验系统框图
目前大多数高校和科研院所在开展多智能体协同控制相关研究领域时,往往存在以下困难:
整个平台设计工具链复杂庞大,从零开始搭建费时费力;
缺乏系统性的平台搭建力量,研究初期,人员精力被消耗在非核心研究职责方向上;
现有各分散的软硬件存在使用标准、软件接口、通讯协议不统一,相关源码不开放,学习掌握和二次开发难度较大。
部分开源平台,服务支撑能力不足,无法满足本土科研需求。
面对上述的需求和不足,目前亟需一款面向无人系统开发、仿真及测试的全流程软件生态系统或工具链。
02RflySim平台特点
RflySim是由北航可靠飞行控制组发布的生态系统或工具链。它由全权教授指导,戴训华博士主导开发,后经卓翼智能旗下的飞思实验室接管和推动高级功能的开发,专为无人平台控制系统开发、大规模集群协同、人工智能视觉等前沿研究领域研发的一套高可信度的无人控制系统开发、测试与评估平台。该平台采用基于模型(MBD)的设计理念,基于Pixhawk/PX4、MATLAB/Simulink和ROS等以及货架智能硬件等,可开展(不限于):无人智能体控制的仿真与实飞/运动,无人智能体集群的仿真与实飞/运动,以及基于无人智能体视觉的仿真与实飞/运动。针对上述问题的研究时,可以开展无人系统建模、控制器设计、软件在环仿真(Software-In-the-Loop,SIL)、硬件在环仿真(Hardware-In-the-Loop,HIL),通过MATLAB/Simulink的自动代码生成技术,控制器能够被方便地自动下载到硬件中,用于HIL仿真和实际飞行测试,实现Sim2Real。根据各仿真平台特性如表 2所示,将各平台对比如主要有以下特点:
01统一性
整个研究框架扩展到所有的无人控制系统,形成一个标准的自动开发、测试与评估框架体系
图 2 无人控制系统框架
02无人机物理特性仿真还原度高
无人机物理特性仿真还原度高。其开发者均为无人机研究团队,具有丰富的无人机领域研究经验;
03易用性
在Windows平台下进行一键安装、一键代码生成、一键固件部署、一键软硬件在环仿真和快速实飞, 非常方便易用。用户不需要了解飞控源码、Linux编程、C/C++编程、网络通信、飞机组装等底层知识,只需具备基础的Simulink(或Python)知识,即可快速将自己的算法经过层层验证并应用于真机上,有助于更专注于算法的开发与测试。
图 3 一键安装界面
04完全分布式构架
所有应用软件都可以在同一台或多台电脑上多开,并且各个应用之间可以通过UDP网络相互收发消息,这种分布式的构架非常适合于大规模带视觉的无人机集群仿真测试;
图 4 分布式仿真框架
05支持多种机型仿真
支持小车、固定翼、垂直起降飞行器(VTOL)等多种机型。用户可以在Simulink中根据规范的接口搭建机架模型,然后自动生成DLL文件用于HIL仿真。进一步实验平台能被拓展到任意无人系统中;
图 5 多种无人载具
06支持无人机集群仿真支持无人机集群仿真。在同一局域网下,开发者可以使用CopterSim连接多个Pixhawk进行硬件或软件在环仿真。同时,还可以使用Simulink或者C++程序控制飞行器,控制指令会由Mavlink协议经过串口(数传)或者网络(WIFI)发送给Pixhawk;
图 6 无人机集群仿真
07提供高逼真的3D视景
提供源码和教程帮助开发者在虚幻(Unreal Engine,UE)中搭建高度逼真的3D场景,用于室内外环境仿真或者基于视觉算法的开发;场景支持物理碰撞引擎,全球地形和地图,OSGB+Cesium倾斜摄影视景地图导入,自定义GPS坐标,任意多窗口切换观察,RGB、深度、灰度、IMU、激光雷达等传感器数据输出,支持共享内存或者UDP图片直发指定IP地址,可用于机载计算机硬件在环SLAM仿真。
图 7 室外大场景倾斜摄影
图 8 多场景切换仿真
08支持基于视觉的控制
基于UE的三维视景平台还支持视角切换功能,可以获取方便地获取到多个视角的图像数据。还支持通过共享内存的方式在Simulink、Python、C/C++等代码平台中实时获取到图像数据并进行处理,处理得到的视觉数据可以通过UDP再返回给CopterSim或者Simulink控制,形成带有视觉的硬件在环仿真闭环。
09支持多种故障注入
可实现的故障类型包括模型故障、通信故障和环境故障等。
图 9 故障注入框架图
同时,与其他无人系统开发和测试平台相比,如表 2所示。
表 2 各仿真平台特性
03RflySim平台核心组件介绍
RflySim平台包含了众多在进行无人系统建模、仿真、算法验证等开发过程中所涉及到的软件,其中,核心组件有CopterSim、QGroundControl、RflySim3D/RflySimUE5、Python38Env、Win10WSL子系统、SITL/HITLRun一键运行脚本、MATLAB自动代码生成工具箱、Simulink集群控制接口、PX4 Firmware源码、RflySim配套资料文件以及配套硬件系统。用户通过对这些核心组件的学习即可快速上手无人系统的开发和测试工作。
图 10 RflySim软硬件组件与整体流程的相互关系
3.1 CopterSim
CopterSim是RflySim平台核心软件之一,它是针对Pixhawk/PX4自驾仪平台开发的一款硬件在环仿真软件,可以在软件中配置多旋翼的模型,通过USB串口与Pixhawk自驾仪连接来实现硬件在环仿真,达到室内模拟室外飞行测试的效果。主要由两大部分组成—模型和通信。模型是指可根据所设置的模型参数,进行计算后直接就可进行仿真;并支持运行动态模型(DLL),并连同其他软件构成软/硬件在环仿真。CopterSim是所有数据通信的中心;飞控与CopterSim通过串口(硬件在环HITL)或网络TCP/UDP(软件在环SITL)进行连接,使用MAVLink进行数据传输,实现控制闭环,模拟室外飞行情形;CopterSim发送飞机位姿、电机数据到三维引擎,实现可视化展示;转发MAVLink消息到Python视觉或QGC地面站,传输飞机实时状态,实现顶层规划控制;等等。同时,CopterSim软件对MAVLink数据进行压缩后以UDP结构体形式发给集群控制软件,达到通信精简目的(大规模集群需求)。
图 11 CopterSim软件的数据通信结构图
3.2 RflySim3D/RflySimUE5
Unreal Engine具有强大的图形引擎,支持高品质的3D图形和视觉效果;内置的蓝图可视化脚本系统,使得开发者可以使用图形化的方式来创建复杂的逻辑和交互行为,而无需编写代码;拥有庞大的社区支持和资源库,包括模型、纹理、音效、插件等等,这些资源可以帮助开发者加快开发进程和提高模型品质;支持多个平台,包括PC、主机、移动设备和虚拟现实设备等等;开发者可以根据自己的需求来自定义和扩展引擎的功能和工具,使得Unreal Engine适用于各种类型的游戏和应用程序开发。RflySim3D/RflySimUE5是基于Unreal Engine引擎开发的无人系统高逼真仿真软件,继承了Unreal Engine引擎的各种优势,通过UDP的形式与平台其他软件进行通信,实现高逼真的无人系统仿真,同时,可通过屏幕抓取、共享内存等方式将视觉图像数据传输到QGroundControl、MATLAB、Python等软件,实现无人系统的视觉算法验证仿真,如图 12所示。
图 12 RflySim3D/RflySimUE5显示主界面
同时,针对电脑配置较低的用户,RflySim平台提供另外两种三维仿真软件,分别为:FlightGear和3DDisplay。FlightGear的开发团队来自世界各地,包括程序员、飞行员、物理学家和飞机制造商等领域的专家,提供了多种不同类型的飞机模型和场景,包括各种民用和军用飞机模型,以及多种不同的场景和环境模拟。它是一款非常受欢迎的开源飞行模拟器软件,可以通过UDP接收Simulink发送的飞行状态,方便地观测Simulink仿真时飞机的飞行状态。3DDisplay是由北航可靠飞行控制研究组开发的虚拟飞行模拟器软件,提供了三维模型和虚拟环境,支持多种飞机模型和场景。用户可根据个人电脑的配置情况,自由切换RflySim3D/RflySimUE5、FlightGear、3DDisplay三款仿真软件。
3.3 QGroundControl地面站
无人机地面站是无人机应用控制系统的关键组成部分,操作员可以通过鼠标、触摸屏、遥控手柄操作地面站以达到控制无人机的目的,并且通过在地面站上设定航点信息以及规划航线,可以使无人机按照预设的路径飞行,并在飞行途中完成航点任务,包括拍照,飞机动作,录像等。目前主流开源地面站为 QGroundControl 和 MissionPlanner,而QGroundControl是专为 PX 4软件最新架构的开源地面站,其使用 QT 编辑器 C++语言编写其核心代码,其支持源代码修改和功能二次开发,即适合无人机地面站研究实验也适合无人机地面站功能的定制及修改。相比来说QGroundControl的优势有:1)开源性:QGroundControl是一个完全开源的软件,这意味着用户可以根据需要自由修改和定制它。2)易于性:用户界面非常清晰、现代化和易于使用,使用户可以快速进行任务规划和飞行计划。3)多平台支持:QGroundControl可在多种操作系统上运行,如Windows、Linux和MacOS等。4)模块化架构:QGroundControl的模块化架构使得开发人员可以轻松地添加和扩展新功能,而不会影响到现有的功能和性能。总体而言,QGroundControl是一个现代化、易于使用、开源且高度可定制的地面站软件,它在多平台支持、多语言支持、模块化架构等方面具有明显的优势。
3.4 Python38Env
Python是一种高级的、面向对象的解释型编程语言。它最初由Guido van Rossum于1989年创建,现在已经成为一种流行的编程语言,用于开发Web应用程序、数据分析、人工智能、科学计算、网络编程等等。Python是一种简单易学、易读、易编写的语言,因此也被广泛用于教学和入门级编程。Python38Env是一个Python 3.8的编程语言的虚拟环境,包含了numpy、pymavlink、OpenCV、pyulog等库,可快速进行无人系统的相关算法开发,无需用户部署python运行环境和各种功能库。
3.5 MATLAB自动代码生成工具箱
MATLAB自动代码生成工具箱是一个MATLAB的扩展工具包,用于从Simulink模型中生成C代码、可执行文件、静态库和动态库等各种形式的可执行文件。这些可执行文件可以直接在嵌入式平台上运行,而不需要进行手动编写和调试。支持多种嵌入式平台,包括ARM Cortex-M和A系列处理器、NXPMPC55xx和MPC56xx系列、Pixhawk系列等。该模块库中包含GPS数据模块、电池数据模块、uORB模块等众多模块。基于RflySim和Pixhawk Support Package平台,用户可实现:①在Simulink中设计和模拟控制算法;② 从Simulink模型自动生成C代码和PX4固件,并将其直接烧录到Pixhawk板上;③使用MATLAB脚本和函数配置和校准Pixhawk板及其外围设备;④实时读写与Pixhawk板的数据;等等。
3.6 SITL/HITL批处理脚本
批处理技术是指计算机可分组处理收集到的若干任务,整个过程完全自动化,无需人工干预,这也可以称为工作负载自动化 (WLA) 和作业调度。它具有速度和成本节约、准确性、操作简单等优点。RflySim基于批处理技术开发了众多批处理脚本,让用户可以快速一键启动部署多架、多种、多样无人系统组合式仿真。提高了无人系统开发和仿真速度。平台较常用的批处理脚本:①SITLRun.bat:是开启多机软件在环仿真的批处理文件,其本质上是通过脚本方式启动并配置RflySim平台的部分软件和选项,② HITLRun.bat:是开启多机硬件在环仿真的批处理文件,插入多个飞控之后,再双击该批处理文件,根据提示输入想要参与仿真的Pixhawk串口号,即可开启多机的硬件在环仿真(以输入串口顺序进行飞机ID排序)。除此之外RflySim平台还提供众多批处理脚本文件,如:SITLRunPos.bat、SITLRunLowGPU.bat、SITLRunMAVLink.bat、HITLRunPos.bat、HITLPosSysID.bat、HITLPosStr.bat等等用户可通过编辑器打开这些文件,根据个人需求修改其中的参数,实现自定义开发,快速开始仿真或算法的验证。
3.7 PX4 Firmware源码
PX4由瑞士苏黎世联邦理工学院(ETH)计算机视觉与几何实验室的一个软硬件项目PIXHAWK演变而来,该飞控系统完全开源,为全球各地的飞控爱好者和研究团队提供一款低成本高性能的高端自驾仪。经过来自工业界和学术界的世界级开发人员多年的开发与完善,目前PX4飞控系统已经形成完善合理的软件架构,配合Pixhawk系列自驾仪硬件平台上,构成了Pixhawk PX4自驾仪软硬件平台,可控制多旋翼、固定翼、飞艇等多种载具,是目前世界范围内广泛应用的开源无人机自驾仪软硬件平台。RflySim平台支持一键部署PX4编译环境,可自定义选择不同的PX4固件编译命令和固件版本,平台会将选定的PX4 Firmware源代码部署在设定的安装路径上,如果固件存在,会删除旧的固件文件夹,并进行全新部署,极大的提高了PX4环境部署的效率。
3.8 Win10WSL子系统
Win10WSL子系统是一种Windows操作系统上的子系统,用户可在Windows系统中运行Linux应用程序,使用Linux命令行界面(CLI)并安装Linux发行版,RflySim平台一键安装的Linux系统为Ubuntu18.04.5,主要是用于PX4源代码的编译,本平台还提供另外两种编译环境来实现Windows平台下对Linux编译环境的模拟,分别是:基于Msys2 的Msys2Toolchain编译环境和基于Cygwin的CygwinToolchain编译器。用户可根据自己的PX4版本选择不同的编译环境,且在一键部署安装界面不同的选择即可完成不同编译环境的切换。
3.9 Simulink集群控制接口
RflySim平台基于Simulink S函数开发了集群控制接口,如图 13所示,该接口是通过Simulink S函数通过C++混编实现,配合Simulink自带的UDP模块优点,具有效率高、运算小、延迟低、更可靠、扩展性强等优点。用户可通过复制粘贴的方式,将该模块加载到自己的控制系统中,帮助用户快速实现无人系统集群控制开发。
图13 集群控制接口界面
3.10 RflySim配套资料文件
RflySim平台提供非常完善的学习资料及例程文件,通过PPT课件资料和RflySimAPIs例程文件,使用户循序通过渐进、层层递进的学习方式,从无人系统底层控制算法→中层决策算法→顶层学习算法的开发与验证,一站式搭建、开发出自己所需的无人系统。
3.11 配套硬件系统
RflySim平台提供了一套完整的配套硬件系统,包括四旋翼无人机、飞控、遥控器等组件。这些组件均能与平台完美兼容,可以在RflySim平台中是实现软、硬件在环仿真实验,基于生成的固件实现无人机在真实环境下的飞行。目前支持的飞机有飞思X150、飞思X200、飞思X450等四旋翼无人机,其中飞思X150为室内集群控制科研全新设计的微型四旋翼无人机,支持的飞控有Pixhawk系列、卓翼racer、卓翼H7、MindPX、MindRacer等,Pixhawk系列目前支持Pixhawk1、Pixhawk 4、Pixhawk6X等飞控,后期将长期支持Pixhawk 1、Pixhawk6X、卓翼H7三款飞控。支持的遥控器有乐迪AT9S Pro、天地飞ET07、福斯i6s、FutubaT14SG等等。
04RflySim平台主要功能介绍
4.1 飞控底层开发功能
RflySim采用基于模型设计(Model-Based Design,MBD)的思想,可用于无人系统的控制和安全测试。通过以下五个阶段:建模阶段、控制器设计阶段、软件在环仿真阶段(Software-In-the-Loop,SIL)、硬件在环仿真阶段(Hardware-In-the-Loop,HIL)和实飞测试阶段。通过MATLAB/Simulink的自动代码生成技术,控制器能够被方便地自动下载到硬件中,用于HIL仿真和实际飞行测试。
图 14 RflySim基于模型设计框架
在MATLAB/Simulink 中提供了多旋翼控制器设计的相关接口,用户(初学者、学生或者工程师)可以利用自己所学知识快速进行控制器的设计与验证。在控制器设计完成后,本平台提供代码生成与下载功能,可以将设计的 Simulink 控制算法生成 C/C++ 代码,然后将其编译进入PX4自驾仪固件中,并自动下载到自驾仪中。本平台还提供硬件在环仿真测试功能,用户可以在真实 Pixhawk 自驾仪系统上对飞行效果进行初步模拟测试,排除实飞实验可能存在的各种问题。测试通过之后,将 Pixhawk 自驾仪装在一个多旋翼硬件系统上,就可以进行室内和室外的飞行实验,通过实验验证来评估设计控制算法的性能。
4.2 无人载具系统统一建模框架
无人载具系统统一建模框架将整个无人载具系统分解为两个部分:机身系统与控制系统。机身系统与控制系统之间进行着传感器数据与控制信号。而机身系统又可以细分为四个子系统:机体子系统、执行器子系统、三维环境子系统和传感器子系统。•机体子系统包含了机身、运行环境、力与力矩等内部子系统模块,是对机体在环境的运动、能耗和故障特性的整体描述;•执行器子系统包含了飞行器与外界环境的相互作用,它接收来之控制系统的控制信号,然后产生的力与力矩来驱动机身运动;•传感器子系统主要用于描述控制软件之外的所有电子硬件模型,主要包含传感器数据、通信协议、连接接口等特性;•三维环境子系统主要用于描述无人飞行的三维视景环境(包括树木、障碍物、公路等),用于为自主控制系统提供视觉数据的模拟。在整个建模框架中,机身系统需要进行高精度建模,并且在实时仿真计算机中实现,最后连接控制系统软件或硬件,构成软件在环仿真或硬件在环仿真闭环。
图 15 无人载具系统统一建模框架
上述建模框架可以在Simulink等可视化建模与仿真软件中快速实现,在整个仿真模型搭建完毕后,可以利用自动代码生成的方法生成不同实时仿真计算机环境下的仿真软件,并且通过替代其中特定的子系统模块可以快速扩展得到不同类型的载具模型。所示为Simulink中搭建大多旋翼仿真模型示例,它包含了基本的运动仿真功能以及故障注入功能,能够非常逼真地仿真各种多旋翼的运动动态。同时,RflySim提供Simulink无人动力学建模模版,支持多种旋翼类型,便于模型开发与扩展;提供标准输入输出接口,可在Simulink中自行搭建任意构型无人模型;支持Simulink自动代码生成为DLL文件的形式导入到硬件在环仿真器中;动力系统组件数据库覆盖市面上2000款以上组件产品,支持从数据库中选择合适的电机、螺旋桨等组件组装不同构型多旋翼(三、四、六、八旋翼)并估算性能(悬停时间、最大拉力等)与模型参数(质量、转动惯量、螺旋桨拉力系数等),用于多旋翼动力学仿真。
4.3 无人系统仿真场景开发功能
RflySim基于Unreal Engine实时三维渲染引擎开发了面向无人的实时视景软件RflySim3D/RflySimUE5,它可以接收局域网内的所有飞机数据并集中实时显示在场景中,同时支持单独配置并获取到特定飞机的特定机载摄像头。此软件也支持自行设计并导入三维场景和飞机模型,且操作非常简单。支持直接使用UE4场景库中的海量三维场景和飞机模型;同时支持用3Ds Max和AutoCAD等软件自行制作三维场景和飞机模型并导入UE4。下图分别展示了平台目前自带的四旋翼室内飞行、小车街区行驶、六旋翼森林穿梭和固定翼山脉巡航的三维场景。
图 16 高逼真三维场景示例
同时典型场景搭建设计模块,能够自定义场景类型,提供典型场景模块设计SDK,对场景内的环境、设施及行人进行自定义。支持通过UDP/ROS动态改变场景地图、改变飞机三维样式、动态创建障碍物(其他飞机、跟踪靶标、人物、标定板、桌椅等)、动态改变飞机视角(位置、方向、焦距等)、改变三维引擎输出图像分辨率等。
图 17 RflySim3D/RflySimUE5通信框架
4.4 无人系统视觉控制开发功能
无人系统视觉控制主要是通过对无人的环境感知,通过网络通讯节点接收视觉模块发送的无人视觉传感器数据,利用图像算法或人工智能完成视觉的导航或态势感知。顶层控制模块通过综合操控人员的指挥信息、无人的状态信息(姿态、速度、位置、电量、健康程度等)、视觉感知的结果等信息,完成无人的上层决策,并将底层控制指令发送给无人自驾仪。
图 18 RflySim平台视觉模块通信框架
图 19 RflySim平台视觉穿环
RflySim平台支持外部传感器接入,我们将这些传感器数据分为两类:一类直连飞控的外部传感器(磁罗盘、差分GPS、光流测速等),另一类是直连机载计算机的视觉传感器(双目、Lidar、深度相机等)飞控传感器通过Simulink等程序直接生成传入Pixhawk飞控,视觉传感器通过三维环境引擎生成,随图像传入机载计算机,如图 19所示。RflySim提供传感器基本参数与安装位置的深度相机传感器模块SDK,用户可以通过设置相关参数对无人机载视觉传感器进行设计朝向、焦距、视场角等,自定义机载视觉模块;根据用决策的输入输出接口协议,提供决策系统输入/输出接口。
图20 RflySim平台视觉模块仿真框架
基于rflysim3D的三维视景平台支持视角切换功能,可以获取方便地获取到多个视角的图像数据。还支持通过共享内存或窗口图像抓取的方式在 Simulink、Python、C/C++等代码平台中实时获取到图像数据并进行处理,处理得到的视觉数据可以通过UDP 再返回给 CopterSim 或者 Simulink 控制,形成带有视觉的硬件在环仿真闭环。
采用Python/C/Simulink接口直接读取RflySim3D的窗口图像,减少中间环节,720P多窗口图像读取消耗用时间在5ms以内(200Hz以上),且不会干扰RflySim3D三维仿真程序的运行
支持开启任意个RflySim3D窗口,每个窗口可以独立配置显示视角(模拟机载相机或者地面观察视角等)
支持通过键盘快捷键调整,也支持通过UDP发送指令来控制RflySim3D的视角/机载相机显示参数。
提供的控制接口底层直接收发Mavlink数据,由于使用跨平台的Python语言,直接拷贝机载计算机就能使用。(后续会提供Simulink视觉接口,支持代码生成)
4.5 无人系统集群控制开发功能
RflySim支持一键启动多机集群仿真功能,支持MATLAB/Simulink、Python端集群仿真开发,支持多架软件在环、硬件在环及软、硬件相结合的虚实集群仿真,支持局域网内多台电脑的分布式集群仿真。同时,随着飞机数量的增加,网络通信负载越来越大,为了在有限带宽下实现更多数量的无人机集群仿真,需要对通信进行优化,目前平台的数据协议主要有两种:MAVLink数据和UDP压缩结构体,基于这两种数据协议,RflySim提出了5种压缩的数据协议,实现上百架的无人机集群仿真。
图 21 大规模无人机集群仿真
图 22 RflySim平台集群硬件在环仿真
同时,该系统借助大规模集群分布式控制仿真系统平台,可实现大规模无人机集群仿真、分布式无人机集群控制研究、分布式无人机集群视觉感知算法验证、无人机飞行控制及通信算法验证等功能。系统框架如图 23所示。
图23 系统框架图
4.6 无人协同控制决策算法设计功能
RflySim的无人协同控制决策算法设计模块,具有顶层集群规划指挥层、组网通讯节点层、集群决策层、底层控制层等大规模无人集群控制系统。
1)支持集中式的无人集群控制策略,在指挥中心可以获取所有无人数据并统一进行轨迹规划与安全防护;
2)支持分布式的无人集群控制策略,每个飞机可获取临近无人的信息,并进行自主决策;
3)支持集中式控制算法的软/硬件在环仿真验证;
4)支持局域网内多台电脑上的多个软/硬件在环仿真系统组网,形成整体的集群仿真系统,并实现集中显示与控制
5)支持集群控制算法快速移植到真机飞行平台中,进行试飞测试;
4.7 分布式网络通讯模块
RflySim采用分布式组网架构,不同的仿真模型可以运行在同一台电脑或者不同的电脑上。打开多个模型仿真器并连接多个Pixhawk/PX4自驾仪硬件就可以形成多无人集群的仿真环境。由于单台电脑的性能是有限的,可以通过局域网内多台电脑间进行相互通信的形式进一步扩展整体飞机数量。
图 24 多无人集群模型仿真拓扑结构
05RflySim平台未来功能预览
5.1兼容ROS的顶层视觉/决策算法开发
RflySim平台可在本地电脑下开发和测试单一的视觉功能,整个开发过程均在Windows下进行,具有易用性强、效率高、入门门槛低、成本低等特点。在完成本地电脑的纯软件在环仿真后,可将Python/C视觉感知与控制程序直接部署到机载计算机中的Linux/ROS中,使用飞控固件替换软件在环仿真模式,实现算法迁移。进一步直接将Pixhawk/PX4飞控的PWM输出口插在机架动力系统上,图像获取接口连接相机,即可完成真机迁移。整个迁移过程无缝衔接,不需要任何额外修改。
图 25 软件在环向硬件在环迁移
图 26 硬件在环向真机迁移
5.2无人系统故障建模与注入开发
RflySim故障注入架构如下图所示。其由实物模块、仿真模块与评估模块组成。实物模块由飞控硬件组成,负责与仿真计算机连接,接收来自外部的控制指令并作出姿态响应,组成半物理仿真闭环,可通过飞控进行硬件在环的实时故障注入。仿真模块由CopterSim、RflySim3D、QGC组成,负责整机的故障消息发送和三维故障注入,进行实时的故障模拟。评估模块负责输出故障注入之后的安全状况。自动化测试平台,可在数据库里提前定义好测试用例,自动循环测试生成数据。
故障用例包含三大类型故障:模型故障:故障模型在Simulink中开发,通过生成动态DLL模型嵌入CopterSim的模型接口进行仿真。提供Simulink模型和外部触发接口,可自行加入任意类型故障。通信故障:所有通信链路经过统一接口转发,可模拟延迟、丢包等故障。环境故障:通过在UE中创建三维障碍物并导入RflySim3D,在飞机执行任务中注入三维障碍物故障。
5.3 无人系统安全、健康评估系统开发
抽象来说,安全是指不因人、机、媒介的相互作用而导致系统损失、人员伤害、任务受影响或造成的损失,泛指没有危险、不出事故的状态。而无人机处于安全或不安全的状态,其实是一个二值逻辑。但在工程中,这种二值假设并不适合描述复杂的控制系统,RflySim平台引入模糊风险空间来描述无人机的安全,根据模糊综合评价输出安全等级,最终形成了一套从故障安全等级定义→特征风险指标分析→健康状态划分→自动化测试与评估的安全评估方案。
5.4 基于FPGA实时仿真系统开发
FPGA(Field Programmable Gate Array)芯片是一种可编程逻辑器件,它具有:可重构性:FPGA可以被重新编程来实现不同的逻辑功能,这使得它们非常灵活,可以适应不同的应用需求;高性能:由于FPGA可以定制化地设计,因此可以实现非常高效的逻辑运算。此外,FPGA通常具有并行计算能力,可以处理大量数据,因此在某些应用中比传统的处理器更快。低功耗:由于FPGA可以被编程来执行特定的任务,因此它们可以更有效地利用能量,从而减少功耗。实时性:FPGA可以实时处理输入数据,这使得它们在需要实时响应的应用中具有很大的优势。基于RflySim平台在软件层面的可信硬件平台、基于MATLAB的可信软件平台以及可信仿真模型组成了基于FPGA实时仿真系统。
图 27 可信仿真系统
图 28 基于FPGA实时仿真系统框架
5.5RflySim Cloud产品简介
随着大规模集群仿真、智能强化学习平台、一键部署/无需部署功能、硬件在环虚实结合仿真等需求越来越多,RflySim Cloud云端化产品也将在未来发布。产品将提供快速部署、持续集成更新、无缝扩充等机制,并可增加产品的基础特性指标,增强用户使用体验,降低开发运维成本。通过云端化、SaaS化建设,可快速构建模拟仿真系统与人工智能等系统的连接,形成整合优势,产品整体云端环境部署框架如图 29所示。
图29 云端环境部署
RflySim Cloud云端化产品将延续RflySim平台的众多优点,同时,产品将提供海量模型数据,装备/环境模型一应俱全;基于docker等快速虚拟化部署,无需复杂的开发环境部署。仿真性能可水平扩充,资源按需使用;内置海量数据预训练的智能感知、图像识别、通讯链路、路径规划等基础算法模型帮助用户快速构建仿真应用。
图 30 RflySim Cloud云端化产品界面
页:
[1]