FMT ICF5实时仿真,不止于飞控

news2024/11/18 22:54:30

基于ICF5的实时仿真

作为FMT的首款自研的国产开源飞控硬件平台,ICF5不仅功能强大,而且高颜值和高性价比获得了用户的一致好评。

FMT ICF5飞控

ICF5购买链接​item.taobao.com/item.htm?id=705459383848&ali_refid=a3_430620_1006:1123834906:N:O3mcoUggvOmuxWcZ5TrtiQ%3D%3D:69fa2cb78214f2a9eeb73ab7c59bb9ba&ali_trackid=162_69fa2cb78214f2a9eeb73ab7c59bb9ba&spm=a21n57.1.0.0#detail

但是ICF5的功能不仅限于一款飞控平台,ICF5还可以作为实时仿真目标机提供了实时仿真的接口,能够运行无人机或者其它被控对象的物理模型并开展半实物(Hardware-in-loop, HIL)或者纯硬件(Simulator-in-hardware,SIH)实时仿真。相比于动辄上万或者上十万的实时仿真机,ICF5可谓是“真香”。

ICF5支持基于模型设计(Model-based design,MBD),可以使用Simulink搭建被控系统的模型。目前ICF5内置了多款无人机的被控对象模型,也可以基于FMT来轻松搭建其它的被控对象模型。

多旋翼被控对象模型MC-Plant​github.com/Firmament-Autopilot/FMT-Model/tree/master/model/Plant/MC-Plant

固定翼被控对象模型FW-Plant​github.com/Firmament-Autopilot/FMT-Model/tree/master/model/Plant/FW-Plant

MC-Plan

 

模型可以直接生成C/C++代码烧录到ICF5中实时运行。

代码生成

 

运行数据可以被ICF5记录下来,并导入Matlab中查看。

数据分析

半实物仿真

半实物仿真,亦称硬件在环仿真,是一种实时仿真技术,它将真实的硬件与计算机仿真技术相结合,用于测试和验证嵌入式系统的性能。在HIL仿真中,嵌入式系统被连接到仿真器或模拟器上,并与真实的物理设备进行交互,以模拟实际环境中的操作和反馈。通过HIL仿真,可以更全面、准确地评估嵌入式系统的性能和可靠性,以及它们与周围环境的交互。

ICF5可以作为仿真机运行被控系统模型,同时还提供了丰富的硬件接口,如串口,SPI,IIC,USB,网口,CAN等用于跟外部控制器和仿真电脑进行数据交换。

HIL仿真

纯硬件仿真

纯硬件仿真类似于半实物仿真,都是基于硬件的仿真技术。他们的主要区别在于,纯硬件仿真时将被控系统模型和控制器合二为一,即在一个硬件上同时运行Plant和Controller。他的好处是可以简化硬件结构和成本,同时也省去了中间通信所带来的信号延时和带宽问题。

SIH仿真

仿真步骤

以纯硬件仿真为例,下面介绍一下使用ICF5进行实时仿真的基本步骤:

1. 获取FMT-Firmware的最新代码。可从如下Github地址拉取。

FMT-Firmware​github.com/Firmament-Autopilot/FMT-Firmware

2. 在fmtconfig.h中打开FMT_USING_SIH的宏,即开启SIH仿真功能。

3. 输入scons -j4编译多旋翼固件(默认)。如果要编译固定翼的固件,请使用scons -j4 --vehicle=Fixwing

4. 将固件下载到ICF5飞控中。飞控运行起来后,可以在控制台输出中看到Plant模型已经被加载。

5. 将遥控器连接到飞控(也可以选择不使用遥控),同时连接上地面站。然后可以像操作真实飞机一样进行仿真测试。比如使用遥控器控制飞行,或者使用地面站绘制航点等。

仿真演示案例

下面演示一些实际的仿真案例。

基于ICF5的多旋翼绕8 SIH仿真

基于ICF5的固定翼SIH仿真

ICF5用户案例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/585445.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

常见的主流自动化测试框架,这5种真的帮助巨大

今天我们要向大家介绍的是常见5种主流自动化测试框架,包括优缺点等内容,供大家参考学习。 1.ATF 自动化测试框架AutoTestFramework是B/S架构框架,可实现Selenium等多种自动化测试全流程、团队化管理的高级框架平台,通过集成自动化…

Zookeeper+消息队列Kafka

一、Zookeeper 概述 官方下载地址:Index of /dist/zookeeper 1.1 Zookeeper 定义 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 1.2 Zookeeper 工作机制 Zookeeper从设计模式角度来理解:是一个基于观察者模式设…

PyCharm配置Opencv(多人亲测可用)

23/5/29更新: 之前由于只安装opencv-python-contrib这个包,导致Opencv版本过高,有些算法无法使用, 所以这里更新安装opencv-contrib-python这个包,具体如下配置。 ————————————————————————…

【C++】map和set的使用及其模拟实现

文章目录 一、map和set的使用1. 关联式容器2. 键值对3. 关联式容器的使用3.1 set3.2 multiset3.3 map3.4 multimap 二、map和set的模拟实现1. 红黑树的实现(封装map和set版本)1.1 节点的实现1.2 KeyOfT(仿函数)1.3 红黑树的插入Insert1.4 迭代器iterator 2. set的模拟实现3. ma…

【分布式】分片存储服务器

完成了配置路由服务器之后,我们来到了对存储服务器的重构 在我们加入配置服务器组之后,我们发现我们的kvserver,也就是存储服务器还是单点的: 同样,我们可以借助之前实现的raft对单点进行拓展,我们可以设置…

【LeetCode热题100】打卡第7天:盛最多水的容器

文章目录 盛最多水的容器⛅前言🔒题目🔑题解 盛最多水的容器 ⛅前言 大家好,我是知识汲取者,欢迎来到我的LeetCode热题100刷题专栏! 精选 100 道力扣(LeetCode)上最热门的题目,适合…

自制Arduino 风格开发板 - HK32F030MF4P6 紧凑开发板

模仿Arduino Nano 做一个HK32F030M 的紧凑开发板,排针间距和Arduino Nano 相同,整体尺寸略小,适合插在面包板上。兼容HK32F030MF4P6 和0301M,板载CH340N 串口和DS1307 时钟模块。开源工程地址:HK32F030MF4P6 紧凑开发板…

Python学习36:文本分析与加密

类型:字符串‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬ 描述‪‬‪…

测试百科:白盒测试用例的设计

正文 语句覆盖:每条语句至少执行一次。判定覆盖:每个判定的所有可能结果至少出现一次。(又称“分支覆盖”)条件覆盖:每个条件的所有可能结果至少执行一次。判定/条件覆盖:一个判定中的每个条件的所有可能结…

PyTorch-网络模型的保存和读取

1. 模型的保存 方法一:保存模型的结构模型的参数 陷阱:需要让文件访问到你自己的模型定义方式,可以用import的方式引入先前的模型定义。 model_save.py import torch import torchvisionvgg16 torchvision.models.vgg16(weightsNone) # …

Linux— 网络编程套接字

目录 预备知识 认识端口号 理解源端口号和目的端口号 认识TCP协议 认识UDP协议 网络字节序 socket编程接口 socket 常见API sockaddr结构 sockaddr 结构​编辑 sockaddr_in 结构 in_addr结构 地址转换函数 简单的UDP网络程序 实现一个简单的英译汉的功能 简易的远程…

注解-反射-XML配置原理

java刚开始原本是直接在方法中创建对象执行程序等,部分代码重复率高,后来就发展成方法封装调用,再后来出现的像spring框架等,引入了XML配置,使得程序更加简洁,方便等,其中XML配置也是基于java反…

java 线程安全和多线程

文章目录 前言一、ThreadLocal是什么?二、synchronized 和 ReentrantLock 都是 Java 中提供的可重入锁,二者的主要区别有以下 5 个:三、线程安全的集合类有哪些?四、说一下你对CompletableFuture的理解四、项目中是如何创建线程池…

R语言生物群落(生态)数据统计分析与绘图(从数据整理到分析结果展示)

R 语言作的开源、自由、免费等特点使其广泛应用于生物群落数据统计分析。生物群落数据多样而复杂,涉及众多统计分析方法。以生物群落数据分析中的最常用的统计方法回归和混合效应模型、多元统计分析技术及结构方程等数量分析方法为主线,通过多个来自经典…

C++类和对象三

文章目录 类和对象三初始化列表用途与特性 explicit关键字再谈构造函数static成员static的特性 友元友元函数友元函数特性 友元类友元类特性 内部类概念特性 匿名对象拷贝对象时的一些编译器优化 类和对象三 初始化列表 初始化列表:以一个冒号开始,接着…

【源码解析】Spring Bean生命周期源码解析

Spring启动核心 AbstractApplicationContext#refresh,Spring刷新容器的核心方法。最关键的就是 AbstractApplicationContext#invokeBeanFactoryPostProcessors,扫描BeanAbstractApplicationContext#finishBeanFactoryInitialization,生成Be…

【MySql】InnoDB一棵B+树可以存放多少行数据?

文章目录 背景一、怎么得到InnoDB主键索引B树的高度?二、小结三、最后回顾一道面试题总结参考资料 背景 InnoDB一棵B树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞…

[C语言实现]带你手撕带头循环双链表

目录 什么是双链表? 带头结点的优势: 双链表的实现: 什么是循环双链表? 众所周知,顺序表的插入和删除有时候需要大量移动数据,并且每次开辟空间都可能会浪费大量内存和CPU资源,于是我们有了链表,我们之…

【实用篇】SpringCloud01

SpringCloud01 1.认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 1.0.学习目标 了解微服务架构的优缺点 1.1.单体架构 单体架构&#xff…

基于复旦微 JFM7K325T 全国产FPGA的高速数据采集、图像处理方案

板卡概述 PCIE-XM711 是一款基于 PCIE 总线架构的高性能数据预处理 FMC载板,板卡采用复旦微的 JFM7K325T FPGA 作为实时处理器,实现 各个接口之间的互联。该板卡可以实现 100%国产化。 板卡具有 1 个 FMC(HPC)接口,1 路…