预告|ROS中超好用固定翼仿真开源平台即将上线!

迅翼计划于年底推出基于ROS环境的固定翼上层仿真开发平台。该平台将采用PX4与Gazebo架构,充分融合ROS、PX4和Gazebo三大生态系统,致力于打造最简便、易用的固定翼上层算法仿真平台。
无论您是初学者,还是正在寻找适合的仿真平台进行算法验证,甚至希望基于此平台完成项目开发,该平台都将成为您可靠、便捷且易于上手的理想选择。当然我们正在寻找一些内测用户,如果您有相关基础,且希望提前使用,请与我私聊。

底层动力学仿真平台

在之前关于导航、制导与控制(GN&C,Guidance, Navigation, and Control)点此跳转的文章中,第1.3节所提到的“控制”特指GN&C系统中偏底层的控制部分,即更倾向于控制理论(Control Theory),主要关注飞行器本身的控制问题。传统的控制理论大多通过数学工具对被控对象的本体进行建模与控制,并深入研究控制律的特性及其适用范围。这部分内容通常被称为底层控制

底层控制仿真的核心在于对飞行器进行六自由度的动力学建模。这种建模需要精确描述飞行器的运动特性,因此在Matlab/Simulink环境中进行仿真是最为方便、直观且高效的方式。这种方法不仅能够准确表达控制系统的动力学特性,还能有效支持底层控制策略的开发与验证。

固定翼上层仿真平台

在点此跳转文章的1.2节(制导)和2.2节(规划)中所涉及的仿真,与前述的底层控制仿真不同,更侧重于上层控制。大多数论文中的仿真或研究通常基于三自由度的简化动力学模型。尽管这种模型能够降低复杂性,但无法达到六自由度动力学仿真的精确特性,因此其结果往往难以真实应用于实际飞行器。

如果希望实现带有六自由度动力学的仿真:

  • 1.2节制导仿真:使用Matlab/Simulink完成六自由度动力学建模和仿真,对于不熟悉固定翼飞行器动力学特性的人员而言,搭建六自由度模型具有一定的难度,需要较强的动力学知识储备和额外的建模工作。
  • 2.2节规划仿真:使用Matlab/Simulink进行规划仿真会进一步增加工作量,不仅需要完整掌握固定翼飞行器知识,还涉及复杂的传感器仿真(如视觉摄像头、激光雷达等),而这些传感器的支持在该环境中几乎不可实现。

因此,我们更推荐在1.2节制导仿真和2.2节规划仿真中使用ROS环境下的PX4+Gazebo仿真平台。这一组合具有以下优势:

  • 支持六自由度动力学仿真:Gazebo内置了多种机型,支持用户对动力学参数进行配置,能够真实模拟飞行器的动态行为。
  • 丰富的传感器仿真:Gazebo可以轻松支持各种传感器(如视觉摄像头、激光雷达等),为规划仿真提供必要的环境支持。
  • 集成化底层控制器:PX4作为成熟的底层控制器,支持多种控制模式,包括作动器直接控制、角速度控制、姿态控制、位置控制和速度控制,可满足任一控制层的需求。
  • 简化开发流程:借助PX4+Gazebo平台,用户无需从零搭建六自由度动力学模型或底层控制逻辑,仅需专注于验证自己的上层算法。这种方式大大减少了开发时间和精力投入。

正因如此,我们选择以上层仿真平台为核心方向,旨在提供更高效、更便捷的工具支持,为用户专注于上层算法研究和验证提供可能。

敢说“最好用”?

本次即将发布的仿真平台将聚焦解决因固定翼无人机欠驱动特性带来的仿真困难,提供多元化上层仿真功能拓展与接口封装,以更好满足固定翼无人机仿真需求。

与四旋翼无人机和无人车等全驱动系统相比,固定翼无人机具有显著的欠驱动动力学特性。具体来说,四旋翼无人机能够在三维空间内自由飞行,控制六个自由度的运动,并且能够调节飞行速度,因此具有很强的灵活性。而无人车虽然不能实现横向平移(除非采用麦克纳姆轮等特殊设计),但它的前进速度可以调节至零,仍具有一定的机动性。与此不同,固定翼无人机一旦起飞,便受到速度和运动自由度的限制:它的飞行需要维持一定的最低速度才能保持升力,同时不能像四旋翼那样实现横向位移或直接的定点悬停。简单来说,固定翼无人机的运动受限于最低速度要求,并且无法像全驱动系统一样在所有方向上自由移动。

为了解决这些问题,我们在MAVROS的基础上,针对固定翼无人机的上层仿真进行了以下功能扩展和接口封装:

  • 高度控制:在原生姿态控制的基础上集成了TECS控制器
  • 横向控制:采用导航向量场计算期望飞行方向,并在此基础上设计了偏航控制器
  • 灵活输入支持:支持直接以期望飞行矢量作为输入进行控制;
  • 无人机类封装:封装了固定翼、垂直起降固定翼等多种机型的常用话题订阅与发布接口
  • 工具类支持:提供常用的PID控制器类模板,以及地理坐标转换姿态转换等实用函数。

以上封装提升了仿真平台的适用性与开发效率,更好地满足了固定翼无人机的仿真需求。

已有的demo

我们已经实现一些可供大家快速上手的demo演示:

  • 基于导航向量场方法的轨迹跟踪方法

    • demo演示:圆形轨迹

      圆形轨迹跟踪

    • demo演示:螺旋上升

      螺旋上升

    • demo演示:圆柱面与斜面交线

      圆柱面与斜面交线

  • 基于无奇异点导航向量场方法的轨迹跟踪方法

    • demo演示:李萨如曲线

      李萨如曲线

    • demo演示:多项式轨迹(多项式轨迹,轨迹可自定义)

      多项式轨迹

  • 基于LQR控制器的多机leader-follower编队飞行控制

    • demo演示:多机编队(折线轨迹,轨迹可自定义)

      多机编队

后续待发布

  • 基于向量场的固定翼无人机避障
  • 基于无奇异点导航向量场的多无人机编队飞行控制

在单无人机轨迹跟踪上,我们实现了导航向量场和无奇异点导航向量场的轨迹跟踪方法。相较于传统方法,理论上此类方法跟踪精度更高、跟踪代价更小;此外,此类方法计算代价极小,可应用于单片机等低算力平台。

在多无人机轨迹跟踪上,我们创新性的将导航向量场用于了多无人机编队和轨迹跟踪。该方法具有以下优势:

  • 灵活性与精度:相较于传统轨迹跟踪方法,帮助您实现灵活的期望轨迹设计和更精准的跟踪效果;
  • 分布式协调:采用一致性算法进行机间协调。相较于leader-follower这类集中式策略,所采用的分布式策略鲁棒性强、可扩展性好,具有强的应用前景
  • 低通信压力:仅涉及参数的一致性。机间通信信息为自身虚拟坐标,也就意味着仅需要对一个数字进行一致性即可实现三维空间中的编队,相较于传统一致性编队方法通信压力少。

这一系列改进不仅提升了单机与多机的轨迹跟踪性能,也为低算力平台和实际应用提供了高效可行的解决方案。

总结

综上所述,我们的仿真平台已基本具备仿真开发与验证的完整功能,并且完全开源开源!开源!

如果您是以下应用场景:

  • 科研与教学: 高校和研究机构可使用该平台进行算法研究与教学实验;
  • 项目开发: 企业可将其用于快速验证部署制导、规划算法;
  • 个人开发者: 兴趣开发者和无人机爱好者也能快速上手,进行探索和学习。

我们希望这个平台将成为您进行固定翼上层仿真的最佳选择。

如果您对此感兴趣,并希望参与内测,欢迎随时私聊联系我们!未来,我们还将持续优化与扩展,计划适配支持ROS2Ardupilot等更多底层飞控的功能。同时,明年我们预计推出可用于验证上层算法的实物固定翼飞机,敬请期待!

迅翼,让固定翼飞行更自由!

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

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

相关文章

什么是 SQL 注入

目录 什么是 SQL 注入? SQL 注入的基本原理 如何发生 SQL 注入? SQL 注入的工作原理 SQL 注入的危害 常见的 SQL 注入攻击场景 什么是 SQL 注入? SQL 注入(SQL Injection)是一种常见的安全漏洞,攻击…

染色体微阵列(CMA)技术

1. 染色体微阵列(CMA)简介 染色体是细胞核中载有遗传信息的物质,正常人体细胞具有23对染色体,包括22对常染色体和1对性染色体。染色体携带众多基因,决定着细胞功能及个体的发育。染色体数目增多、减少或局部发生微缺失…

安装QT6.8(MSVC MinGW)+QT webengine+QT5.15.2

本篇主要针对只使用过QT5的qmake,没有用过MSVC,VS的老同学。 建议一部分一部分安装,全部勾选安装遇到问题会中断,前功尽弃。 我自己需要的是QT5,编出的软件用在公司设备上。 QT6:建议也安装学习&#xf…

【我在CSDN成长】我的五周年创作纪念日

感叹 五年的时光匆匆而过, 像一阵风,拂过岁月的湖面, 泛起层层涟漪,又悄然离去。 曾经的欢笑与泪水, 那些奋斗的日夜, 如同电影般在脑海中放映, 却已成为遥远的回忆。 五年,说长不长…

使用 Docker Compose 来编排部署LMTNR项目

使用 Docker Compose 来部署一个包含 Linux、MySQL、Tomcat、Nginx 和 Redis 的完整项目的例子。假设我们要部署一个简单的 Java Web 应用,并且使用 Nginx 作为反向代理服务器。 项目目录结构 首先需要确保 Docker 和docker-compose已经安装并正在运行。docker --v…

如何利用ChatGPT加速开发与学习:以BPMN编辑器为例

在现代开发中,开发者经常会遇到各种需要编写和学习新技术的任务。ChatGPT作为一种强大的自然语言处理工具,不仅可以辅助编写代码,还可以帮助学习新的编程概念和解决开发中的难题。本文将以开发一个BPMN(业务流程建模与标注&#x…

如何搭建一个小程序:从零开始的详细指南

在当今数字化时代,小程序以其轻便、无需下载安装即可使用的特点,成为了连接用户与服务的重要桥梁。无论是零售、餐饮、教育还是娱乐行业,小程序都展现了巨大的潜力。如果你正考虑搭建一个小程序,本文将为你提供一个从零开始的详细…

Spring Boot教程之十: 使用 Spring Boot 实现从数据库动态下拉列表

使用 Spring Boot 实现从数据库动态下拉列表 动态下拉列表(或依赖下拉列表)的概念令人兴奋,但编写起来却颇具挑战性。动态下拉列表意味着一个下拉列表中的值依赖于前一个下拉列表中选择的值。一个简单的例子是三个下拉框,分别显示…

aws服务--机密数据存储AWS Secrets Manager(1)介绍和使用

一、介绍 1、简介 AWS Secrets Manager 是一个完全托管的服务,用于保护应用程序、服务和 IT 资源中的机密信息。它支持安全地存储、管理和访问应用程序所需的机密数据,比如数据库凭证、API 密钥、访问密钥等。通过 Secrets Manager,你可以轻松管理、轮换和访问这些机密信息…

Redis中HGETALL和ZRANGE命令

Redis中HGETALL和ZRANGE命令 简单来说 HGETALL 命令用于返回哈希表中,所有的字段和值。 ZRANGE 命令用于返回有序集中,指定区间内的成员。 HGETALL 在 Redis 中,HGETALL 是一个用于操作哈希(Hash)数据类型的命令&…

数据结构 【双向哨兵位循环链表】

链表的结构分为8中,其实搞懂了单链表和双向哨兵位循环链表,这部分的知识也就掌握的差不多了。双向哨兵位循环链表的结构如下: 下面我从0构建一个双向哨兵位循环链表。 1、准备工作 构建节点结构体,双向循环链表的每一个…

RabbitMQ的交换机总结

1.direct交换机 2.fanout交换机

MVC、EL、JSTL

1.MVC设计模式 三层: MVC: M(Model)模型:负责业务逻辑处理,数据库访问。 V(View)视图:负责与用户交互。 C(Controller)控制器:负责流程…

map和redis关系

Map 和 Redis 都是用于存储和管理数据的工具,但它们在用途、实现和应用场景上有所不同。下面详细解释 Map 和 Redis 之间的关系和区别。 1. Map 数据结构 定义 Map 是一种数据结构,用于存储键值对(key-value pairs)。每个键都是…

《Python基础》之函数的用法

一、简介 在 Python 中,函数是一段可重用的代码块,用于执行特定的任务。函数可以帮助你将代码模块化,提高代码的可读性和可维护性。 函数的用途 代码重用:通过函数,你可以将常用的代码块封装起来,避免重复…

《Shader入门精要》透明效果

代码以及实例图可以看github :zaizai77/Shader-Learn: 实现一些书里讲到的shader 在实时渲染中要实现透明效果,通常会在渲染模型时控制它的透明通道(Alpha Channel)​。当开启透明混合后,当一个物体被渲染到屏幕上时&…

PICO 获取设备号 SN码

Unity版本 2020.3.42f1c1PICO SDK版本PICO Unity Integration SDK-3.0.5-20241105Pico设备pico 4ultra 注意 此api暂时只测试企业版本 pico 4ultra 代码 using Unity.XR.PICO.TOBSupport;private void Awake() {bool result PXR_Enterprise.InitEnterpriseService();Debug.L…

C++设计模式之组合模式实践原则

在实现组合模式时,为了确保符合软件设计原则,需要考虑以下几个重要方面: 1. 单一职责原则(Single Responsibility Principle, SRP) 考虑:组合模式中的每个类应只负责一个特定的任务。例如,Com…

D 型 GaN HEMT 在功率转换方面的优势

氮化镓 (GaN) 是一种 III-V 族宽带隙半导体,由于在用作横向高电子迁移率晶体管 (HEMT) 时具有卓越的材料和器件性能,因此在功率转换应用中得到越来越多的采用。 HEMT 中产生的高击穿电场 (3.3 MV/cm) 和高二维电子气 (2DEG) 载流子迁移率 (2,000 cm 2 /…

政安晨【零基础玩转各类开源AI项目】探索Cursor-AI Coder的应用实例

目录 Cusor的主要特点 Cusor实操 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! Cursor 是 Visual Studio Code 的一个分支。这使我们能够…