Betaflight飞控之FAILSAFE机制

这篇具有很好参考价值的文章主要介绍了Betaflight飞控之FAILSAFE机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 源由

之前对航模飞控之FAILSAFE机制做了一个简单的探讨,并根据自己的理解做了简单的需求整理。

为了更好的了解现行Betaflight开源飞控对上述情况的处理方法,以及采用何种策略进行救援,能将损失减到最小。

接下来一起来看下Betaflight的设计逻辑。

注:以下内容主要来自Wiki文档以及部分代码的理解,因个人的理解,以及时间的变化,可能实际代码会有所变更。如果发现有出入的地方,也请小伙伴们能评论给出大家的意见和建议,谢谢!

2. 设计

在逻辑上分为几个步骤:

  • Step 1:signal validation:触发源验证
  • Step 2:failsafe stage 1:
  • Step 3:failsafe stage 2

注1:某些FAILSAFE策略执行过程呈现时间段性质,中途可能存在变数,就会出现不同的异常情况。
注2:笔者之前遇到的就是在RTL时,出现了GPS信号丢失,导致失控坠落的问题。

从软件设计角度,实现功能还不是最难的,而最为可贵的是对异常场景的分析,以及软件应对的方法。这就对设计者提出更高的要求。

现在的神经网络、AI算法等,其实更多是去解决多维度、多因素情况下的解决方案。从另一个层面,也可以看出对于这种问题的建模凸显了研发人员对于业务的抽象理解能力。这也就是为什么很多研发人员只会用已有的模型,无法通过模型调优或者重新建模来解决实际问题,因为这里最为关键的一环是业务模型的理解和抽象。

好,回到我们的正题上,设计上分为两个方面来讨论:

  1. 触发方式
  2. FAILSAFE策略

2.1 触发方式

鉴于Betaflight是FPV飞控开源软件,其作为第一人称视角的飞行控制,主要控制设备是遥控器。

  • 遥控开关触发
  • 遥控信号丢失

注:当接收机故障,输出信号和正常遥控器连接时输出信号一样的时候,飞控将无法感知遥控信号丢失的场景。

2.1.1 遥控开关触发

  • “阳光”用例:1–>2–>3–>4–>5–>6
  • Failsafe Stage1:1–>[2, 3]阶段过程,开关中断执行
  • Failsafe Stage2:1–>2–>3–>[4, 5]阶段过程,开关中断执行
    Betaflight飞控之FAILSAFE机制,xFlight,DIY Drones,FAILSAFE,Betaflight

2.1.2 遥控信号丢失

  • “阳光”用例:1–>2–>3–>4–>5–>6–>7–>8–>9–>10
  • RXLOSS Hold:[1, 4]阶段过程,信号闪断恢复
  • Failsafe Stage1:1–>2–>3–>4–>5–>[6, 7]阶段过程,信号恢复
  • Failsafe Stage2:1–>2–>3–>4–>5–>6–>7–>[8, 9]阶段过程,信号恢复
    Betaflight飞控之FAILSAFE机制,xFlight,DIY Drones,FAILSAFE,Betaflight

2.2 FAILSAFE策略

通过文档研读,目前有四种策略:

  1. Drop mode
  2. Landing mode
  3. GPS Return mode
  4. “Just Drop” mode

注:其中"Just Drop" 有点类似后门或者异常处理的一种模式,用户并非明显能感知或者通过配置得到。

2.2.1 Drop mode

Betaflight飞控之FAILSAFE机制,xFlight,DIY Drones,FAILSAFE,Betaflight

2.2.2 Landing mode

Betaflight飞控之FAILSAFE机制,xFlight,DIY Drones,FAILSAFE,Betaflight

2.2.3 GPS Return mode

Betaflight早前实现的是GPS救援,并非RTL功能,因为他是期望靠近飞手的时候,飞手直接遥控接管着陆。

因此,#4这个步骤实现的并非理想,不过目前Betaflight4.4.2看上去,该功能已经比较好了。
Betaflight飞控之FAILSAFE机制,xFlight,DIY Drones,FAILSAFE,Betaflight

3. GPS救援状态机

通常来说Drop/Landing策略是比较容易理解的,而真正相对来说比较复杂的是GPS ReturnHome功能。要不,为什么说不要轻易远航,因为远航涉及很多异常。

就近飞哪怕是炸机,捡下飞机就是了,而远航不仅不一定能捡到,还有下方可能是住宅,可能是马路、街道,甚至可能是高速公路,如果出现意外,那就不是简单的捡飞机问题了。

因此,我们必须对飞控固件有充分的理解和认识,只有这样才能应对各种意外场景。

注:话虽这么说,毕竟我也是炸机了,对吧,哈哈!!!需要不断学习。

这个是GPS救援的状态机,主要关注以下几点:

  • RESCUE_IDLE:最终稳定状态(GPS救援功能未触发)
  • RESCUE_INITIALIZE:GPS救援功能打开后进入的第一个状态
  • RESCUE_ABORT:GPS信号异常或者其他异常,会进入该状态(会导致disarm,如果还么有降落,那就直接炸机了)

Betaflight飞控之FAILSAFE机制,xFlight,DIY Drones,FAILSAFE,Betaflight

4. 总结

根据FAILSAFE策略执行流程以及GPS救援状态机的分析,当Betaflight执行救援时,如果遇到异常,仍然存在炸机风险。

当然相关问题,还在和官方沟通中,期待后续能有比较完美的解决方案。

详见:What will BF do when GPS signal lost, during GPS rescure? #11970

5. 参考资料

【1】航模飞控之FAILSAFE机制
【2】Betaflight Failsafe文章来源地址https://www.toymoban.com/news/detail-612760.html

到了这里,关于Betaflight飞控之FAILSAFE机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 主流无人机开源飞控

    无人机是一个宽泛的概念,从美国高空高速的U2军用无人机,到中国最新声名鹊起的“猛龙\\\",再到淘宝网上随处可见的四轴飞行器,无论是外形,性能,还是价格,应用场景,都可谓是天差地别,不可同日而语。军用无人机自诞生之日起,从外形还是发动机,都是直接从有人

    2024年02月22日
    浏览(38)
  • ArduPilot飞控启动&运行过程简介

    ArduPilot从整体的设计框架角度,感觉是更加容易上手,尤其是对一些相对熟悉C语言/嵌入式固件开发的兄弟们来说。 基于Ardunio编程方式 采用C++类方式进行抽象 应用业务模块化 模块考虑重复利用 设备代码工程隔离 ArduPilot自研任务调度 注:飞控由于其历史发展以及时间同步因

    2024年02月08日
    浏览(39)
  • ArduPilot开源飞控系统之简单介绍

    ArduPilot是一个可信赖的自动驾驶系统,为人们带来便利。为此,提供了一套全面的工具,几乎适用于任何车辆、无人机、潜艇、气球等设备。 作为一个开源项目,在用户社区的快速反馈的基础上不断发展。相应的开发团队与社区和商业合作伙伴合作,为ArduPilot添加惠及所有人

    2024年02月12日
    浏览(35)
  • 大疆A3飞控使用|控制参数调整

    全新A3系列飞控系统结合安全可靠和精准控制的特性,以丰富的扩展功能和外设支持开创更多可能,全面满足行业应用的严苛需求。 什么使基础感度 不同的机架、电机与螺旋桨类型决定了不同的基础感度,根据配置的不同选择合适的感度值 俯仰、横杆和航向的基础感度与飞

    2024年02月08日
    浏览(69)
  • Ardupilot开源飞控之Wiki修改操作

    最近为了为了增加一些Ardupilot Wiki内容,对Wiki的编辑提交步骤整理一下,以便后续工作的展开。 修改过程大致可以分为两大类: 页面编辑修改 增删页面修改 原文链接详见:Wiki Editing - Quick Edits Create a Github account if you do not have one already 没有Github账号的同学,需要首先申请G

    2024年02月05日
    浏览(45)
  • 飞管飞控系统仿真应用探究与浅析

    ​ 数字孪生技术是对真实物理实体的虚拟映射与数字化信息的应用再造,因其在产品生产制造与技术运用过程中,可将物理世界和数字世界进行实时交汇与良好互动的特性越来越受到普遍关注与广泛应用。据统计,2021年全球数字孪生市场规模为约500亿元,仍是蓝海市场。预

    2024年02月08日
    浏览(34)
  • 飞控学习笔记-飞行器数学模型(2)

    十字型模型 模型仿真 反扭力 仿真

    2024年02月12日
    浏览(34)
  • 平台使用篇 | RflySim飞控底层实验平台配置介绍

    本课程提供的实验平台总体可以分成两个部分:硬件平台和软件平台。本讲简要介绍各个部分的基本组成及实验开发流程。 平台使用篇-RflySim飞控底层实验平台配置介绍 0 1  电脑配置 1.1推荐配置 •系统:Windows 10 x64系统(版本大于等于1809) •CPU:Intel i7 八代处理器及以上,

    2024年02月12日
    浏览(24)
  • 开源飞控初探(五):MAVLink协议和Java库

    MAVLink协议是一种(应用层)数据协议,不依赖传输协议。传输层可以是TCP、UDP、RS232串口,甚至基于WebSocket。在定义数据的基础上,补充描述了几种子协议(microservice,直译是微服务)的现有实现。协议不保证送达,客户端需要经常检查机器状态确认命令被执行。 具体的数据

    2024年02月12日
    浏览(33)
  • Tello无人机飞控(Python)程序设计

    tello的几个不同的飞控库有什么区别吗,用哪个好些? Tello的几个不同飞控库主要是针对Python开发者提供的控制无人机的工具包,它们各有特点和使用方式。以下是对一些常见Tello飞控库的区别和推荐的概述: 1)tellopy:tellopy是一个功能齐全的库,提供了对Tello无人机的全面控

    2024年02月16日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包