1. RflySim¶
1.1. RflySim是什么¶
RflySim是由北航可靠飞行控制组(http://rfly.buaa.edu.cn)发布的生态系统或者说工具链。它由全权副教授指导,戴训华博士主导开发,采用基于模型设计(Model-Based Design,MBD)的思想,可用于无人系统的控制和安全测试。因MATLAB/Simulink支持MBD的整个设计阶段,我们选择它们作为控制/视觉/集群算法开发的核心编程平台;同时,因Python是免费的且有丰富的视觉处理库,我们也支持它作为顶层视觉与集群算法开发。除了MATLAB/Simulink 和 Python,RflySim还有其他开源的软件和工具,也包括我们为此专门设计的软件和工具。
- RflySim是一套专门为教育和研究打造的基于 Pixhawk /PX4 和MATLAB/Simulink的快速开发平台。
- 基于Windows平台,一键安装。
- 采用基于模型的开发理念,应用软件在环(SIL)和硬件在环(HIL)仿真加速开发过程。
- RflySim允许开发者无需接触C++,而是直接使用MATLAB/Simulink设计底层控制器(如姿态控制器和位置控制器)和顶层应用(如顶层决策和自主飞行),并直接将其部署到多旋翼自驾仪上。
- 可以很方便的修改多旋翼模型的参数来适配你自己的多旋翼飞行器进而采用SIL和HIL验证控制算法。
基于RflySim的开发通常包括以下五个阶段:建模阶段、控制器设计阶段、软件在环仿真阶段(Software-In-the-Loop,SIL)、硬件在环仿真阶段(Hardware-In-the-Loop,HIL)和实飞测试阶段。通过MATLAB/Simulink的自动代码生成技术,控制器能够被方便地自动下载到硬件中,用于HIL仿真和实际飞行测试。
目前,RflySim根据硬件在环仿真方式的差别分为两个版本,即 教育版 和 商业版 。
- 教育版RflySim 强调易用性,使用个人电脑就可以运行模型,通过串口与控制板进行通信。
- 商业版RflySim 强调可靠性,使用FPGA实时仿真器运行模型、传感器芯片,采用高速通信接口与控制板通信。
1.2. 特色¶
- (1)教育版RflySim的优势
与其他仿真器(如AirSim, Gazebo等)相比,教育版RflySim有下面几个优点:
- 1)易用性。
- 在Windows平台下进行一键安装、一键代码生成、一键固件部署、一键软硬件在环仿真和快速实飞, 非常方便易用。用户不需要了解飞控源码、Linux编程、C/C++编程、网络通信、飞机组装等底层知识,只需具备基础的Simulink(或Python)知识,即可快速将自己的算法经过层层验证并应用于真机上,有助于更专注于算法的开发与测试。
- 2)分布式构架。
- RflySim的构架完全是分布式的。RflySim中的所有应用软件都可以在同一台或多台电脑上多开,并且各个应用之间可以通过UDP网络相互收发消息。这种分布式的构架非常适合于大规模带视觉的无人机集群仿真测试。
- 3)无人机集群仿真。
- 在同一局域网下,读者可以使用CopterSim连接多个Pixhawk进行硬件或软件在环仿真。同时,读者还可以使用Simulink或者C++程序控制飞行器,控制指令会由Mavlink协议经过串口(数传)或者网络(WIFI)发送给Pixhawk.
- 4)多种机型仿真。
- RflySim支持小车、固定翼、垂直起降飞行器(VTOL)等多种机型。用户可以在Simulink中根据规范的接口搭建机架模型,然后自动生成DLL文件用于HIL仿真。进一步实验平台能被拓展到任意无人系统中。
- 5)高逼真的3D环境。
- 我们提供了源码和教程帮助用户在虚幻4 (Unreal Engine 4 ,UE4)中搭建高度逼真的3D场景,用于室内外环境仿真或者基于视觉算法的开发。
- 6)基于视觉的控制。
- 基于UE4的三维视景平台还支持视角切换功能,可以获取方便地获取到多个视角的图像数据。还支持通过共享内存的方式在Simulink、Python、C/C++等代码平台中实时获取到图像数据并进行处理,处理得到的视觉数据可以通过UDP再返回给CopterSim或者Simulink控制,形成带有视觉的硬件在环仿真闭环。
- (2)商业版RflySim的优势
商业版RflySim使用高性能的实时仿真计算机,用实时系统来模拟飞机动态,并用FPGA来模拟所有的飞控传感器芯片,再将芯片级别信号直接连接(屏蔽原有机载传感器)到飞控处理器上,从而实现真正意义上的硬件在环仿真。商业版RflySim的目标是为各种不同的机型和自驾仪系统提供一个统一测试框架。商业版RflySim的软硬件结构如下图所示,与教育版RflySim或其他仿真平台相比,它具有以下优势:
- 1)可拓展性。
- 模型在Simulink中搭建并通过自动代码生成部署到实时计算机,因此用户只需在Simulink中改变机型特性,就可以使用本平台模拟任意的载具系统,包括无人机(多旋翼、固定翼、垂直起降等)、无人车、无人船等。
- 2)实用性。
- 即插即测,不需要接触或修改飞控软件,只需要知道飞控使用的传感器硬件型号,即可多任意品牌飞控硬件进行黑箱测试。
- 3)标准性。
- 平台采用模块化图形编程,每个模型组件尽量使用经过认证的标准模型,来保证模型标准化。整个仿真软件通过自动代码生成得到,确保了开发过程标准化,排除了人工的差异与疏忽对仿真模型的影响。
- 4)自动化。
- 只要建模足够全面且精确,本平台可以模拟室外飞行实验的正常与故障情形,而且可以自动化进行测试、用例遍历与安全性评估,提高无人系统的可靠性。