[深入浅出多旋翼飞控开发]概述篇][二][多旋翼飞控技术综述]
Github
作者:Sky
要学习多旋翼飞控,第一步得先弄清楚飞控的整体框架和大致工作流程,对飞控有了一个整体的认识之后,我们再逐步去学习各个技术细节。现代社会趋向于分工明确,对于多数人来说,可能没有那么多时间去深入学习了解每一个模块,毕竟个人时间精力有限,什么都学的结果就是什么都学不好。所以看完本章节,在对各个部分有了初步的认知和理解之后,可以再去选择自己感兴趣的方向进行深入研究。
如图1,一个小型高集成度的多旋翼飞控可以分为四大部分:硬件层、软件驱动层、飞行状态感知与控制层、飞行任务层
-
**硬件层:**指飞控的实体部分,其中包含主控制器,陀螺仪、加速度和磁力计等各类传感器,信号输入与输出接口等;
-
**软件驱动层:**指主控制器正常运行所需要的软件程序,以及在上面运行的实时操作系统(RTOS),还有各类传感器的驱动程序;
-
**飞行感知与控制层:**多旋翼要实现飞行功能,首先需要正确感知自身的飞行状态,包括三维姿态、速度和位置,得到飞行状态后,再通过控制算法,实现对姿态、速度和位置的闭环反馈控制;
-
**飞行任务层:**通常来讲,我们的最终目的并不只是让飞机飞起来,停在空中就完了。而是要让飞机去执行各种任务,常见的有航拍、编队、测绘、植保等,这个过程中,需要我们人为地给飞机发送飞行指令或者预先编写好任务程序。
一.硬件层
如果不是电子信息类专业的同学,可能对于飞控的硬件构成不会太感兴趣,但是在学习飞控之前,我们必须要了解我们所选择的硬件方案和选择它的理由,为下一步学习打好基础。
首先是飞控的大脑:主控制器,好比电脑的CPU,基本上所有计算工作都在这上面进行。根据最终产品的体积大小及成本,还有飞控程序所需运算能力的综合评判,通常我们会选择一款合适的单片机(MCU)作为飞控主控。
回顾开源飞控的发展历史,可以看到,飞控主控从8位的Atmel AVR单片机发展到了32位的ARM-Cortex-M核单片机,从Cortex-M3到M4,最后到了M7,综合性能愈发强大,从M4内核开始增加的浮点运算单元,极大地提升了单片机的运算能力,使其基本能满足飞控的高频率计算需求。而早期基于8位机的飞控,运算频率和控制频率不到100Hz,而现在基本达到500Hz或更高。
目前综合成本及性能来看,Cortex-M4的单片机最适合做飞控主控,其中使用最广泛的,便是意法半导体的STM32F4系列。如果追求高性能,如DJI在最新几款新产品上面,均使用了Atmel的Cortex-M7核的单片机。在ST单片机中,M4内核的F3系列及F41X系列在追求小体积和低成本的情况下也不失为一个好选择。
其次则是各类传感器,飞控上常用的有陀螺仪、加速度计、磁力计、气压计、GPS及视觉传感器,它们好比人类的眼睛、耳朵、鼻子、皮肤,给人提供了视觉、听觉、嗅觉、触觉,如果失去