飞控FirmamentAutopilot介绍

FMT Model

FMT Model 为 基于 Matlab/Simulink平台编写的一个完整的仿真模型框架和算法模型库。支持模型在环仿真 (Model-in-the-loop Simulation, MIL),软件在环仿真 (Software-in-the-loop Simulation, SIL) 和开环仿真 (Open-loop Simulation)。

FMT Model 的模型库包括一套完整的无人机算法模型。可以分为导航系统,飞行管理系统,控制系统和被控对象模型四个部分。每个部分包含多种类的算法模型,以支持不同的算法和被控对象。

其架构如下图所示:

其中算法库通过Github Submodule的方式进行组织,用户可以用来独立维护自己的算法模型,并添加到FMT Model的仿真框架中。FMT提供种类丰富而且功能完善的仿真模型,可以很容易的基于已有模型或者提供的模型模板进行二次开发。

FMT Model 算法模型库主要由四类模型组成:

· INS : 惯性导航系统。通过多传感器融合算法得到被控对象的状态信息(如姿态、速度和位置等)以及各个传感器的健康状况信息等。

· FMS : 飞行管理系统。主要负责飞行逻辑相关的控制,内部主要由状态机实现。包括飞行模式控制,自动起飞降落,轨迹跟踪控制,安全检测等功能。

· Controller : 控制器模型。基于 FMS 输出的指令信息和 INS 输出的状态信息进行速度环、姿态环和角速度环的控制。控制器的输出经由控制分配将控制信号转成作动器(电机)信号。

· Plant : 被控对象模型,如无人机,无人车/船,机器人等。对象模型包括了动力学模型,作动器模型,环境模型和传感器模型。通过对不同的被控对象进行科学的建模,以达到对不同被控对象进行闭环仿真的目的。

可以看到由于引入了被控模型Plant,从而构成了一个完整的闭环。Plant模拟真实世界中的被控对象,如无人机,无人船等,它接收控制器的控制信号,然后更新状态信息(姿态,速度,位置等)并由其内部的传感器模型生成传感器数据供导航模型进行数据融合。

Plant输出状态信息供Virtualization可视化模块进行3维显示。可视化模块可以使用Simulink自带的Simulink 3D,也可以使用外部的,如UE4,Webots,Gazebo等。

通过外接遥控输入(Pilot Cmd)或者自行构造输入指令,我们就可以像操控真机一样来对整个系统进行完整功能的仿真。仿真完成后,我们可以通过Simulink Data Inspector来查看任意的数据。

仿真能力

模型在环仿真和开环仿真,可以大大简化调试难度并优化算法,也更容易发现设计中的问题。特别是开环仿真,能提供“黑匣子”一样的功能,仅需记录少量的模型输入数据,即可通过开环仿真得到算法模型输出和所有内部信号的数据,方便问题定位和算法优化,大大提高测试效率。

代码生成

基于Simulink开发的模型,其代码生成功能已经非常成熟,生成的代码特别清晰,且比一般的工程师写的代码更好。可以大大提高编码效率,并减少因人为编码而导致的错误。

文档自动化

基于模型的设计可以帮助我们实现文档自动化,大部分文档可以让计算机帮助我们完成。