查看: 628|回复: 5

如何能够较好掌握飞控系统设计?有没有比较好的书籍推荐 ...

[复制链接]

24

主题

683

帖子

1336

积分

金牌飞友

Rank: 6Rank: 6

积分
1336
飞币
651
注册时间
2017-8-13
发表于 2022-10-24 22:36:03 | 显示全部楼层 |阅读模式
本题已收录至知乎圆桌 » 玩转无人机,更多无人机(Drone)操控、应用、研发方面的话题欢迎关注讨论。

256

主题

291

帖子

801

积分

高级飞友

Rank: 4

积分
801
飞币
508
注册时间
2017-7-17
发表于 2022-10-24 22:49:10 | 显示全部楼层
飞控开发目前为止只推荐一本书全权老师的《多旋翼飞行器设计与控制》,书里非常系统的讲解了目前最流行的旋翼飞控开发的各个模块。
当然看懂这本书也不容易,当你绞尽脑汁,去弄懂书里的内容时,你就会了解一个飞控系统是如何构成的,需要哪些知识,因为飞控是个交叉学科会有很多知识点,但是只要你有了自己的知识框架,你就知道下一步该学习哪些知识,慢慢构建自己的飞控知识体系。
同时这么久的飞控学习,有点学习心得也分享一下:
不要通过开源代码去学飞控!!!!
不要通过开源代码去学飞控!!!!
不要通过开源代码去学飞控!!!!
为什么不要,因为 飞控知识 到 飞控代码 的过程中,除了算法需要一些离散化,和一些迭代过程,还伴随着作者自己对算法的理解,选择,和编程习惯。
如果你试图从 飞控代码 ,反推 飞控算法 ,除非你本身对这个算法已经非常熟悉,否者即使你编程能力强,操作系统,嵌入式,编程语言,这些知识都非常强,你看代码依然会很迷茫,你看到懂每一行代码,但却不知道为什么要这样写。
最快速的路线应该是你对算法已经有一定的了解,你知道这个算法应该应用在飞控系统中的哪个环节,你知道这个算法有什么用,然后你很好奇这个算法怎么通过编程实现的?你找来了开源代码作为参考,相互对应下,你更加理解了算法,同时也知道了算法如何通过编程实现。
当然这个过程往往也不会这么顺利,可能你找的开源代码过于复杂,即使你比较熟悉算法,依然看不懂,被程序加工后的算法函数,起码你已经可以明确,目前你看不懂是因为一些变成技巧导致的,你就可专心去攻克这个问题。
所以首先明确到底是哪个步骤导致你的学习很难进行下去!
1.专业知识的阻碍

大部分人应该都会被困在这里一段时间吧,毕竟飞控涉及的专业知识太多了,但是通常你只需要深入理解其中一个部分,所以我的建议是先构建专业知识的框架
如果你还不知道你到底想学哪个部分我先给你一个图感受一下。


如何能够较好掌握飞控系统设计?有没有比较好的书籍推荐 ...-1.jpg
这是一个简单的模块划分:
1.无人机上的传感器获取数据
2.导航系统通过传感器数据得到当前飞机导航数据包括位置,速度,姿态等等
3.决策层提供目标,决策可以是遥控,也可以是自动导航
4.根据当前的导航信息,和决策层给出的目标,进行控制,是飞机以达到目标为目的进行动作
5.控制器给出输出,通过控制分配,给每个电机PWM,使电机以一定的速度转动。
6.电机转动,飞机当前的导航信息发生变化。
7.回到第一步,获取传感器数据,以得到最新的飞机导航信息。
这个简单的划分可以看到,无人机系统其实是有非常多的模块组成的,初学者并不需要每个部分都升入了解,但是你需要有这么个框架概念,你就可以定位你需要的知识属于哪个部分,你才能去针对性的学习。
如何构建你自己的知识框架呢?你要是之前问我,我也没有答案,因为我的学习过程,都是通过关键词的搜索。
但是现在我有更好的答案:《多旋翼飞行器设计与控制》全权 ,全权老师这本书是我看过最全面的书籍,非常适合旋翼的学习,是我手边现在最常翻阅的书籍。
2.编程技巧的阻碍
如果你之前只接触过简单的单片机编程,其实我也不建议,一开始就直接看 APM ,PX4 ,他们的系统过于庞大,很容易打击学习的积极性,一会就放弃了,可以找一些自己能看懂的比较简单的飞控代码看,关键词【小四轴】,代码会简单一些,但是麻雀虽小五脏俱全,该有的都有,依然是很好的入门资料。学习的时候千万不要贪心,就选择自己能看懂的资料就行,递增难度,学习贵在坚持,能坚持学下去,以后都能看懂。
其实看懂代码并不需要特别强的编程能力,因为只是阅读而已,
给出一些关键字:【构造函数】【重载】【启动脚本】【uorb】【创建线程】,有专业只是,和这几个概念也能看懂 PX4 ,apm 的代码了。
阅读工具:understand (强列推荐)
具体读代码的小技巧可以看我之前的文章
<a href="http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s/WjcG5VidyI2Ky9t8yESPUQ" data-draft-node="block" data-draft-type="link-card" data-image="http://pic4.zhimg.com/v2-a14ff85271e2150e3dfabecee918b43f_180x120.jpg" data-image-width="960" data-image-height="541" class=" wrap external" target="_blank" rel="nofollow noreferrer">[教程]打造自己的工作流3.PX4,APM的阻碍
如果你有一定的专业知识,同时编程能力也比较优秀,恭喜你,成为一名优秀的飞控工程师就只需要一点点耐心。
这时候你可以充分利用开源界两大教科书(APM ,PX4),不论什么时候他们依然是最好的参考资料,但是同时也会给学习的人带来而外的迷茫。
因为这两个参考资料太过耀眼,你可能会把他们作为金科玉律,以至于你可能会非常困惑,为什么他要这么做,跟书上的不太一样?
但我想说的是,他们是很好的代码,但是依然有很多作者的偏好,所以很多地方不过就是作者做了一些取舍,做了一些选择,不要迷失在深究为什么作者为什么这样写,反倒是你可以提出质疑,如果是我,我会怎么处理这个问题。不要被代码支配,代码只是帮助你学习的一个工具而已。
ps:我觉的我写的文章也不错,挺适合飞控学习的,哈哈,欢迎交流

26

主题

707

帖子

1387

积分

金牌飞友

Rank: 6Rank: 6

积分
1387
飞币
678
注册时间
2017-8-23
发表于 2022-10-24 22:55:02 | 显示全部楼层
3转眼已经2019年了。有兴趣从事无人机行业或正在从事无人机行业的工程师数量似乎也随着资本的退去而减少。
这里还是推荐一些飞控系统设计相关的优秀书籍,尤其对多旋翼飞控设计有较大帮助。

  • 《多旋翼飞行器设计与控制》
这本书凝结了北航众多老师与学生的心血,通篇覆盖了多旋翼飞行器设计的大多数知识点。
从多旋翼飞行器的系统构成到导航系统,控制系统的设计、多旋翼飞行器的建模与参数辨识方法均有不同程度的涉及。
适合不同层次的工程师阅读学习。对新手而言,能够深入浅出地了解整个多旋翼飞行器设计当中的主要问题;对于资深工程师而言,也能够从中收获一些新的见解与知识,能够对实际工程提供较大帮助。
2. 《自动控制原理》
这本书不多说,相信每个控制算法工程师都会阅读和学习,他是自动控制的基础教程。
3. 《卡尔曼滤波与组合导航系统》
这本书可以作为导航算法入门的教程。
4. 其他
如c和c++入门的相关书籍以及matlab相关的入门书籍都是必看书籍之一。

<hr/>最后,给自己的专栏打个广告。我会尽量保证周更一篇多旋翼飞行器技术开发相关的文章。其中包括手把手指导新手入门的文章,也有实际工程中遇到的疑难问题解析。希望广大多旋翼无人机研发工程师多多关注、交流,你们的建议就是我改进的方向!
多旋翼无人机技术开发深度剖析

228

主题

255

帖子

714

积分

高级飞友

Rank: 4

积分
714
飞币
455
注册时间
2017-7-31
发表于 2022-10-24 23:04:56 | 显示全部楼层
首先须明确飞控系统设计是一项艰巨的任务,图1给出了目前飞行控制系统设计与验证的详细流程。另外,在自主控制的框架内,飞控系统担负的任务也越来越多,如图2。已经从单纯的控制扩展到感知,规划,决策,控制等诸多领域,已成为无人机绝对的核心。

如何能够较好掌握飞控系统设计?有没有比较好的书籍推荐 ...-1.jpg

如何能够较好掌握飞控系统设计?有没有比较好的书籍推荐 ...-2.jpg

(1) 飞行控制系统控制律设计人员需要掌握许多领域的知识,例如控制理论,控制系统结构,空气动力学、飞行动力学、航空和气动伺服弹性、飞机载荷、质量和平衡、仿真和建模方法。面对现代复杂的飞行控制系统,控制律设计的真正问题之一就是更快更早地掌握所需的知识。对于控制律设计人员而言,没有可以借鉴的设计手册,也缺乏合适的设计原则。技能的获取主要来自于实践,在有限的几个新项目和时间的流逝之间,的确存在着组合,经验的获取问题。所以,经验的总结是重要的,但有时也容易被忽略掉的。~刘林《最佳实践知识库》

入门图书推荐
。。。。。。。。。。。。。。。。。。
1.固定翼无人机推荐《Small Unmanned Aircraft Theory and Practice》
Beard, R.W. and McLain, T.W.: Small Unmanned Aircraft: Theory and Practice. (eBook and Hardcover)涵盖了从底层的增稳控制、状态估计,到上层的航路规划、视觉控制。最赞的是每一章都配有相应的matlab仿真程序,一步步做下来,最终将会实现一个功能强大的无人机程序。ps:中文版已经有人在翻译了。
2.多旋翼设计推荐北航全权教授的课程《多旋翼无人机设计与控制》课件下载地址:
Reliable Flight Control Group
全老师也写了一本书,《多旋翼无人机设计与控制》,不过应该是英文版的,近期会出版,我个人非常期待。
3.论文、公开课等
另外,我收集整理了一些多旋翼方面的资料,可以看这里
Drone - ExbotWiki
4. 开源代码
开源项目也有很多了,结构好一点的推荐px4
功能多一些的推荐arduipilot
5. 实践
搞理论是一方面,既然是“设计”,那就是要针对具体的工程实践。我见过太多只会“设计”的博士甚至教授,搞理论是没的说,但他的设计离开电脑后能否run起来?自己也不确定。所以 学习->设计->实践->总结问题->再设计 这样的一个闭环还是要有的。
说到最后,即便是玩最便宜的多旋翼,还是需要一点小钱的。
继续补充一段《最佳实践知识库》
==Ծ‸Ծ==
    (2) 由于历史的原因,通常设计不是从零开始,而是在已有的设计基础上进行的。这就意味着某些设计可能会继承已有设计的缺陷,会在已有基础上增加新的内容和功能,也会继承一些重大问题的解决方法,这些系统可能会变得非常复杂,以至于几乎无人能够全面了解系统的全部功能。
    (3) 在某些情况下,无法将设计需求转换为较好的量化指标,那么FCS 设计成败主要取决于控制律设计者个人的经验和枝巧,以及对于控制律设计作为飞行控制系统的一个完整部分所固有的软件和硬件方面的限制条件的洞察能力。因此,真正的设计需求或许只可能存在于经验丰富的设计者的头脑中,这些设计者能够正确地理解可用的信息,并能对可能失去的东西做出合理的判断。
    (4) 设计周期往往非常漫长,任何一个设计者在其设计生涯中可能只能接触到个别设计案例,因此有一部分经验是来自其他人。

26

主题

659

帖子

1298

积分

金牌飞友

Rank: 6Rank: 6

积分
1298
飞币
630
注册时间
2017-9-30
发表于 2022-10-24 23:12:18 | 显示全部楼层
下面这个回答出自我专栏文章《
机器人工程师学习计划 - Phantom Y - 知乎专栏》
===================================================
我觉得学工程技术,很重要的是先从大的整体概念入手,然后再钻进细节。
我假定题主说的是想自己调一个小的四轴飞行器,然后比较清楚地掌握这个过程中的各项技术。希望我这篇回答能够帮到你。不巧的是,目前我没有发现什么比较好的书籍推荐,已有的一些关于四旋翼系统的书要么太浅(上来就教你焊电路),要么太深(上来就教你state estimation),听说
@Liu Top的exbot小组在写一个教材,我是非常期待的。
第一步:自己调一个小四轴飞起来
现在开源社区的人言必pixhawk,其实我觉得从学习的角度来说,pixhawk太贵,而且不适合学习,我比较推荐的是
https://chiplab7.taobao.com/ 这家淘宝店卖的STM32F405飞控,买回来以后自己再随便买个机架(比如DJI F450)、接收机和遥控,就能按照飞控板附带的学习资料、调试软件飞起来。这家店目前好似不公开出售这款飞控了,但是万能的淘宝满满都是业界良心,
LIGHT 开源 飞控 四轴 飞行器 diy 四旋翼 多旋翼 无人机 开发板,这家店看起来也非常棒
第二步:看硬件图、读代码
chiplab7的飞控板附带一大堆学习资料,对加速度计、陀螺和磁感计都有很仔细的解释,硬件链路图也很详细。看完就可以学会怎么给stm32单片机开发程序,当然如果题主自己去另外单独花时间学学stm32单片机开发也是很好的。chiplab7淘宝掌柜的又很认真负责,我学用的时候,发现代码有bug和看不懂的地方,都可以直接找掌柜的问……
看完代码以后,对一个飞控系统的基本模块:姿态解算、控制解算、混控输出、遥控器处理、嵌入式处理就很明白了。然而这里面有很多技术是需要另外学习的。除了基本的嵌入式编程以外,最重要的是要理解姿态解算和控制解算这两块知识。这个代码采用的是最简单的互补滤波算法做为姿态解算模块,然后控制解算是对欧拉角的三个角度做闭环PID控制,基本都是基础的基础了。
第三步:理解核心的数学和控制知识
姿态解算和控制解算涉及的知识有:
1. 刚体姿态的表示、运动学方程和动力学方程。主要是对牛顿-欧拉方程的认识和理解、刚体姿态的欧拉角表示法、姿态与角速度的关系等等。
    这部分说复杂不复杂,说简单也不简单,我同样是没有找到一本完整的书全都介绍过的,是学了好几个不同的书和论文以后搞明白的。现在看起来是从维基百科入手比较靠谱。
2. 自动控制原理。讲PID的书和文章就多了去了,没有太多复杂的书。
3. 线性估计基本原理。其实就是互补滤波:
Reading a IMU Without Kalman: The Complementary Filter 。拿这个关键词百度各种搜就会了。
第四步:小修小改加深理解
chiplab7的飞控是靠气压计定高的,飞行效果非常奔放。这时候可以淘宝买个20块钱的超声波模块,然后自己写个高度环去稳定飞控的定高表现。
我觉得这个过程至关重要,因为高度控制相对来说是个比较直观理解PID控制的方式,而且chiplab7的飞控加高度控制非常好加。工作量不大,因为改善效果很显著,所以可以让人很有成就感,加深继续学习的乐趣。
第五步:重头开始造轮子
知乎著名网友vczh曾经说过,学习要抱着勇于造轮子的心态才能进步。所以在熟悉了别人飞控基础上,可以自己重头造一个飞控的轮子。
首先可以自己从芯片开始重新画一个飞控板,读读stm32的芯片手册、读读各种传感器的芯片手册,自己手画一个飞控的原理图、做PCB layout、制板自己焊元件,全套花不了1000块钱,能够加深很多对硬件的理解。
其次可以重新写一个飞控系统。这个时候基本也到了职业分化的阶段,可能你和你的基友想一起创业造四轴飞行器,在知乎上搜到了YY硕的文章,买了chiplab7的飞控板走完了一二三四步觉得两个人学得挺好,都不含糊,可以开公司造飞机了。这此后两个人就需要做出谁搞观测(IMU、GPS等传感器)谁搞控制(更好的控制器设计)的选择,因为任何一个都是大坑,需要付出相当深入的努力才能做好做稳定。甚至要付出一个博士时间的努力。
另外很可能你和你的基友各自努力搞了搞发现飞机还是有很多异常情况下会炸鸡的问题,而为了解决这些异常情况需要使用非常昂贵的实验设备、花非常大量的时间去做实验才能搞定。这个时候我建议大家还是加入大疆吧……

29

主题

667

帖子

1325

积分

金牌飞友

Rank: 6Rank: 6

积分
1325
QQ
飞币
651
注册时间
2017-8-23
发表于 2022-10-24 23:17:25 | 显示全部楼层
首先你要确定你是不是想学“飞控系统设计”,因为你心里的“飞控系统设计”和实际的“飞控系统设计”有可能不是一回事。
飞控系统(FCS):

如何能够较好掌握飞控系统设计?有没有比较好的书籍推荐 ...-1.jpg
是这样一个大家伙哦,里面甚至涵盖了飞行器设计的知识(不只是工程的内容,还有物理,数学,软件,硬件,系统设计等等)。所以还要明确你的需求,你的意思是“针对飞行器”的控制器设计(算法)?还是更偏向算法程序实现(写一套飞行器控制固件),还是更偏向于飞行控制器(不是系统)实现呢?
因为前者只包含下图的左边和右边的内容(我只截出来了一小部分图):

如何能够较好掌握飞控系统设计?有没有比较好的书籍推荐 ...-2.jpg
如果你是要学关于飞行器的控制器算法设计,我可以推荐你几本书,如果是控制器算法实现,我可以推荐你一些项目,如果是飞行控制器制作,我可以推荐你一些资料。
所以先明确自己的需求,不然你可能不知道从哪里下手,或者看到什么都想学,结果就是蜻蜓点水,半途而废。
如果你的需求是上文中的第一类:Aircraft Control 3rd edition 2015- Stevens Lewis Johnson:

如何能够较好掌握飞控系统设计?有没有比较好的书籍推荐 ...-3.jpg
之前Lewis给我上课的时候就推荐过这本书,他本人更偏重固定翼飞行器,但是这本书中包含固定翼,直升机,多旋翼的模型和控制算法。看完这本书可以根据自己的需要(工作、项目)与兴趣选择进一步的书籍。
第二类,项目的话直接上Github,但是我还是建议去MIT,丹佛大学这些地方搜集以项目为主题的课程报告,比如丹佛大学Kimon(这几天正在上他的课所以举出下面的例子,但类似例子在MIT,Lewis的大学都有)的NACA0015,这些资料里不但含有理论,工程项目细节,关键能让你体会整个研发的过程和设计的步骤与层次,比如:

如何能够较好掌握飞控系统设计?有没有比较好的书籍推荐 ...-4.jpg

如何能够较好掌握飞控系统设计?有没有比较好的书籍推荐 ...-5.jpg
其实这样的内容把第三类需要的资料也包含了。从中你可以知道整个无人机设计的流程,步骤,需要考虑的要素,设计方法,工具(硬件、软件、算法、仿真软件、设备、理论)
当然如果不想这么麻烦的,那就DIY吧,留邮箱。
总结:
1.明确自己的需求
2.选择理论与实践结合起来的书籍或者项目或者资料。然后实践开来。
3.再通过实践来再次问自己需要哪些理论,要学习哪些工具。
实践项目去Github,关键词输入,代码,硬件图文件,修改过程。选择自己感兴趣,用得到的芯片,算法架构等进行尝试。
再次强调不断对自己提问题的重要性,这本身就是探索与寻求的过程,书、工具、项目,这些不是太少,而是太多了,如果不知道自己的需求,没有办法找到合适的匹配项目,很难有好效果。
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

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