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算法等,其实更多是去解决多维度、多因素情况下的解决方案。从另一个层面,也可以看出对于这种问题的建模凸显了研发人员对于业务的抽象理解能力。这也就是为什么很多研发人员只会用已有的模型,无法通过模型调优或者重新建模来解决实际问题,因为这里最为关键的一环是业务模型的理解和抽象。
好,回到我们的正题上,设计上分为两个方面来讨论:
- 触发方式
- 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]阶段过程,开关中断执行
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]阶段过程,信号恢复
2.2 FAILSAFE策略
通过文档研读,目前有四种策略:
- Drop mode
- Landing mode
- GPS Return mode
- “Just Drop” mode
注:其中"Just Drop" 有点类似后门或者异常处理的一种模式,用户并非明显能感知或者通过配置得到。
2.2.1 Drop mode
2.2.2 Landing mode
2.2.3 GPS Return mode
Betaflight早前实现的是GPS救援,并非RTL功能,因为他是期望靠近飞手的时候,飞手直接遥控接管着陆。
因此,#4这个步骤实现的并非理想,不过目前Betaflight4.4.2看上去,该功能已经比较好了。
3. GPS救援状态机
通常来说Drop/Landing策略是比较容易理解的,而真正相对来说比较复杂的是GPS ReturnHome功能。要不,为什么说不要轻易远航,因为远航涉及很多异常。
就近飞哪怕是炸机,捡下飞机就是了,而远航不仅不一定能捡到,还有下方可能是住宅,可能是马路、街道,甚至可能是高速公路,如果出现意外,那就不是简单的捡飞机问题了。
因此,我们必须对飞控固件有充分的理解和认识,只有这样才能应对各种意外场景。
注:话虽这么说,毕竟我也是炸机了,对吧,哈哈!!!需要不断学习。
这个是GPS救援的状态机,主要关注以下几点:
- RESCUE_IDLE:最终稳定状态(GPS救援功能未触发)
- RESCUE_INITIALIZE:GPS救援功能打开后进入的第一个状态
- RESCUE_ABORT:GPS信号异常或者其他异常,会进入该状态(会导致disarm,如果还么有降落,那就直接炸机了)
4. 总结
根据FAILSAFE策略执行流程以及GPS救援状态机的分析,当Betaflight执行救援时,如果遇到异常,仍然存在炸机风险。
当然相关问题,还在和官方沟通中,期待后续能有比较完美的解决方案。
详见:What will BF do when GPS signal lost, during GPS rescure? #11970文章来源:https://www.toymoban.com/news/detail-612760.html
5. 参考资料
【1】航模飞控之FAILSAFE机制
【2】Betaflight Failsafe文章来源地址https://www.toymoban.com/news/detail-612760.html
到了这里,关于Betaflight飞控之FAILSAFE机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!