如何能够较好掌握飞控系统设计？有没有比较好的书籍推荐？
飞控开发目前为止只推荐一本书全权老师的《多旋翼飞行器设计与控制》，书里非常系统的讲解了目前最流行的旋翼飞控开发的各个模块。 当然看懂这本书也不容易，当你绞尽脑汁，去弄懂书里的内容时，你就会了解一个飞控系统是如何构成的，需要哪些知识，因为飞控是个交叉学科会有很多知识点，但是只要你有了自己的知识框架，你就知道下一步该学习哪些知识，慢慢构建自己的飞控知识体系。 同时这么久的飞控学习，有点学习心得也分享一下： 不要通过开源代码去学飞控!!!! 不要通过开源代码去学飞控!!!! 不要通过开源代码去学飞控!!!! 为什么不要，因为 飞控知识 到 飞控代码 的过程中，除了算法需要一些离散化，和一些迭代过程，还伴随着作者自己对算法的理解，选择，和编程习惯。 如果你试图从 飞控代码 ，反推 飞控算法 ，除非你本身对这个算法已经非常熟悉，否者即使你编程能力强，操作系统，嵌入式，编程语言，这些知识都非常强，你看代码依然会很迷茫，你看到懂每一行代码，但却不知道为什么要这样写。 最快速的路线应该是你对算法已经有一定的了解，你知道这个算法应该应用在飞控系统中的哪个环节，你知道这个算法有什么用，然后你很好奇这个算法怎么通过编程实现的？你找来了开源代码作为参考，相互对应下，你更加理解了算法，同时也知道了算法如何通过编程实现。 当然这个过程往往也不会这么顺利，可能你找的开源代码过于复杂，即使你比较熟悉算法，依然看不懂，被程序加工后的算法函数，起码你已经可以明确，目前你看不懂是因为一些变成技巧导致的，你就可专心去攻克这个问题。 所以首先明确到底是哪个步骤导致你的学习很难进行下去！ 大部分人应该都会被困在这里一段时间吧，毕竟飞控涉及的专业知识太多了，但是通常你只需要深入理解其中一个部分，所以我的建议是先构建专业知识的框架。 如果你还不知道你到底想学哪个部分我先给你一个图感受一下。  这是一个简单的模块划分： 1.无人机上的传感器获取数据 2.导航系统通过传感器数据得到当前飞机导航数据包括位置，速度，姿态等等 3.决策层提供目标，决策可以是遥控，也可以是自动导航 4.根据当前的导航信息，和决策层给出的目标，进行控制，是飞机以达到目标为目的进行动作 5.控制器给出输出，通过控制分配，给每个电机PWM，使电机以一定的速度转动。 6.电机转动，飞机当前的导航信息发生变化。 7.回到第一步，获取传感器数据，以得到最新的飞机导航信息。 这个简单的划分可以看到，无人机系统其实是有非常多的模块组成的，初学者并不需要每个部分都升入了解，但是你需要有这么个框架概念，你就可以定位你需要的知识属于哪个部分，你才能去针对性的学习。 如何构建你自己的知识框架呢？你要是之前问我，我也没有答案，因为我的学习过程，都是通过关键词的搜索。 但是现在我有更好的答案：《多旋翼飞行器设计与控制》全权 ，全权老师这本书是我看过最全面的书籍，非常适合旋翼的学习，是我手边现在最常翻阅的书籍。 2.编程技巧的阻碍 如果你之前只接触过简单的单片机编程，其实我也不建议，一开始就直接看 APM ，PX4 ，他们的系统过于庞大，很容易打击学习的积极性，一会就放弃了，可以找一些自己能看懂的比较简单的飞控代码看，关键词【小四轴】，代码会简单一些，但是麻雀虽小五脏俱全，该有的都有，依然是很好的入门资料。学习的时候千万不要贪心，就选择自己能看懂的资料就行，递增难度，学习贵在坚持，能坚持学下去，以后都能看懂。 其实看懂代码并不需要特别强的编程能力，因为只是阅读而已， 给出一些关键字：【构造函数】【重载】【启动脚本】【uorb】【创建线程】，有专业只是，和这几个概念也能看懂 PX4 ，apm 的代码了。 阅读工具：understand (强列推荐) 具体读代码的小技巧可以看我之前的文章 3.PX4，APM的阻碍 如果你有一定的专业知识，同时编程能力也比较优秀，恭喜你，成为一名优秀的飞控工程师就只需要一点点耐心。 这时候你可以充分利用开源界两大教科书（APM ，PX4），不论什么时候他们依然是最好的参考资料，但是同时也会给学习的人带来而外的迷茫。 因为这两个参考资料太过耀眼，你可能会把他们作为金科玉律，以至于你可能会非常困惑，为什么他要这么做，跟书上的不太一样？ 但我想说的是，他们是很好的代码，但是依然有很多作者的偏好，所以很多地方不过就是作者做了一些取舍，做了一些选择，不要迷失在深究为什么作者为什么这样写，反倒是你可以提出质疑，如果是我，我会怎么处理这个问题。不要被代码支配，代码只是帮助你学习的一个工具而已。 ps:我觉的我写的文章也不错，挺适合飞控学习的，哈哈，欢迎交流  