如何学习开源飞控

电子说

1.3w人已加入

描述

今天主要想聊一下开源飞控的学习。现如今,开源飞控也已经发展的相对成熟很多,所以今天重新整理一下这个问题。

为什么要学?

首先还是要搞清楚自己为什么要学开源飞控?要根据自己的需求来,比如你是要做一个精准降落项目,需要用到飞控与视觉模块的交互处理;又或者你是一个飞行爱好者,组装一个飞行器平时飞了玩;又或者你是一个飞控开发人员,但是没有相关的经验等等。所以要搞清楚你的需求是什么,再决定自己是否要学?因为这会引申到你如何去学?

如何学?

这里我将开源飞控的学习主要分成三大类:

使用级别学习;

二次开发应用(SDK级别学习);

源码级别学习,这里又分成两种:一种需求是能够修改开源飞控源码,改造成自己所需;另一种则是参考开源飞控的源码,打造自己系统的需求。

使用级别学习

重点掌握飞控的使用说明,掌握流程,如何安装,如何根据地面站完成指示的各项校准、检查等;紧接着就是如何调试飞控的PID参数,以及其余各项指标参数,从而达到最佳性能;这里需要做到的就是能够知道各种报错提示以及开放的参数代表什么意思;可以看出,这个级别的应用是不需要看代码的。

二次开发应用(SDK级别学习)

这种情况下,飞控对你而言只是其中一个部件,因为大部分的商品飞控开放程度不够,因此你只能选用开源飞控做项目。

比如,要做一个精准降落的项目,你关注的系统本身是识别,而飞控以及飞行器只是测试平台,所以要能够将你的导航系统与飞控系统进行数据交互,乃至发送控制指令(开源飞控能够接收外部指令,完成任务)。

这种情况下,你无需阅读飞控源码,只需看下官方的开发手册,打通通信链路,知道如何发送控制指令即可,当然,要会用是前提;这部分的需求,现今是最多的,很多项目需求本身已经并不关注飞行平台本身了,而是需要板载计算机处理复杂任务,控制飞行器。所以,需要利用到开源飞控的sdk接口。

源码级别学习:修改开源飞控

这部分的需求,你就需要能够掌握全局了。不仅仅要对整个架构熟悉,小到具体各个模块功能以及实现细节,都需要熟练掌握。这部分的工作量是相当大的。

可以由全局到细节进行学习,首先掌握各个模块组成,了解各个模块功能,然后整理出各个模块的数据流向,最后再深入到模块代码内部,进行精细阅读。当然,涉及到算法的实现细节,就看是否有算法修改的需求了。

这部分的需求,前几年比较多一些,很多厂商的飞控方案是基于开源飞控修改而来的。

参考学习

如果是自研飞控的研发人员,针对开源飞控,可以挑选自己感兴趣的功能实现进行阅读。简单粗暴的办法就是直接移植,但是缺点就是,如果不能搞清楚基本原理,常常移植错误。

笔者发现很多人在接触开源飞控的时候,学的过于庞杂,不得要领,所以一定要记住自己的学习目的,再去有效学习,毕竟一个人的精力有限,很难做到面面俱到。但是,又要在关键的核心地方掌握基本原理,否则就会迷迷糊糊,两者之间的分寸把握就在个人了。

参考资料

首先是各个开源飞控的官方说明文档资料,其次是现今网络资料也是非常的丰富,从环境搭建到源码分析,一应俱全。

需要注意的是一定要在实践中学习,也就是从项目需求出发进行学习,根据实际的结果进行反馈验证。

审核编辑 :李倩

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分