5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 1459|回复: 9
打印 上一主题 下一主题

飞控自主起飞、着陆、手柄、遥控器控制、失控返航切换,有限状态自动机能完美解决么?

[复制链接]
跳转到指定楼层
楼主
发表于 2014-3-18 02:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题。

最近正在写自主起飞、着陆的逻辑。想问问也在写飞控的同学,用编译原理的有限状态自动机,能完美的解决飞控自主起飞、着陆、手柄、遥控器控制、失控返航切换的算法逻辑么?

试过DJI的飞控,当在地面站中多切换2次暂停与继续之后,飞机会突然空中熄火炸掉。怀疑就是因为DJI的地面站算法逻辑出了问题,在切换时激活BUG,造成熄火。
这几天正好在写起飞、着陆的逻辑,感觉把自主起飞、着陆、手柄、遥控器控制、失控返航等等各种状态放在一起考虑,问题就变得太复杂了,很担心自己的算法写得不完备。

也经历过这个痛苦阶段的同学来分享一下经验吧。

多谢关注!

欢迎继续阅读楼主其他信息

沙发
发表于 2014-3-18 09:59 | 只看该作者
不错,,有 条件 玩DJI ,能找出 Bug 很好。。。

其实:以整个 自主 起飞,续航,降落,为主线条。。

然后:再在“主线条”的各个环节,加上:异常处理机制

就可以 超越 昂贵无理 的 DJI 了。。超越它!!

3
发表于 2014-3-18 10:18 | 只看该作者
LZ算是高级DIY者了,顶你没商量。期待楼主写出更加完美的程序,做出更好更便宜的飞控,造福广大模友。并祝一切顺利!
4
发表于 2014-3-18 15:15 | 只看该作者
顶一个
5
发表于 2014-3-18 16:01 | 只看该作者
高级DIY者!顶!没商量!期待楼主写出完美的程序,做出更好更便宜的飞控,造福广大模友。并祝一切顺利!
6
发表于 2014-3-18 16:54 | 只看该作者
你想复杂了。。。
用不着状态机这种东西。跟编译原理也半毛钱关系扯不上。
楼主是在堆砌华丽的词语吗
另外个人认为这个论坛里没几个懂状态机的。请移步其他专业论坛吧。。。
7
发表于 2014-3-21 12:58 | 只看该作者
1. 它有记忆的能力,能够记住自己当前的状态。2. 它可以接收输入,根据输入的内容和自己的状态,修改自己的状态,并且可以得到输出。3. 当它进入某个特殊的状态(停机状态)的时候,它不再接收输入,停止工作。

这是状态机的特点吗?
8
发表于 2014-3-22 19:29 | 只看该作者
高端,不懂
9
发表于 2014-3-22 21:02 | 只看该作者
观望
10
 楼主| 发表于 2014-3-23 00:51 | 只看该作者
本帖最后由 skypup 于 2014-3-23 00:54 编辑

举个例子。

设飞行器模式为油动直升机,当触发了“遥控器失控+电台无应答”事件,目前代码有一段逻辑是:
螺距设为悬停时数值,保持 0.5m/s 下降率,直至螺距减小至最小值时,熄火。

如果遇到这样的情况:
发动机着车半小时(为了使人员撤离到几十KM外),这时遥控器已经处于失控保护状态;当电台发出自主起飞指令后,发动机油门开始缓缓加大。
若在数秒后,在发动机还未定速时,由于电台通讯不稳定,触发了“遥控器失控+电台无应答”事件。
这时,软件开始执行失控返航逻辑。

由于并没有判断是从什么状态进入到失控返航逻辑。代码直接把油门与螺距加到悬停时数值,并开始缓缓减小。
后果,因为还未达到定速就给出一个很大的螺距,可能造成飞机摇晃甚至大桨触地(曾因为小车大螺距直接造成2架油直炸机,间接造成至少1次炸机)。


目前的解决方法是,在失控返航的逻辑中,加入判断,避免在还未定速前发生小车大螺距的情况。
如果对于每种特殊情况,都增加一小段代码。一段时间后代码会变得非常臃肿,排错变得越来越困难。




于是,尝试用有限状态自动机模型避免在代码中可能存在的潜在风险。


您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表