赞
踩
目录
随着开源无人机飞行控制器的不断发展,越来越多优秀的代码与算法不断涌现,无人机领域的技术不断趋于成熟,也使得无人机领域的门槛一再降低,现在国内工科高校中,普遍都设有无人机实验室。对于无人机入门,网络上有太多的资料,只是这些资料重原理却轻代码,很多时候我们知道无人机的结构与飞行原理,却不知道怎么写代码让它飞起来。
本系列文章就将带领大家从零开始,写出一套属于自己的飞控代码,拥有一架属于自己的多旋翼无人机。但需要注意的是,本系列文章并不是无人机入门级文章!笔者会手把手教大家基于C语言开发出一套飞控代码,但不会每一个知识点都详细的列出来。如果读者碰到不懂的专用名词和术语,希望大家能多多百度。笔者偶尔也会插一些题外话以及个人理解,希望读者批评改正。
我们基于意法半导体公司的STM32F407系列微控制器来设计我们的无人机飞控。至于别的型号的单片机的话,无非是修改一些引脚或者参数配置罢了,总的设计思路是相差不大的。
无人机飞行控制器,可理解为无人机的大脑,其核心是微控制器。微控制器基于外部传感器(如姿态传感器,GPS,光流等)返回的数据,经过一系列处理与融合后,控制无人机的飞行姿态。
可理解为一个体积小,功耗低的芯片。与之相应的还有微处理器,在无人机或者一些工业领域,对系统有实时性要求,我们就会用到微控制器,往往还会搭配上嵌入式操作系统。相比于微控制器,微处理器则用来处理数据,例如数字信号处理器(DSP)。如果读者希望自己的无人机能够做路径规划,目标跟踪等功能。就需要加上机器视觉技术,往往是双目视觉,这时候就需要微处理器来做图像处理。
市面上的飞控通常会集成六轴姿态传感器,气压计。这样的飞控就能使无人机拥有自稳和定高的功能。六轴对于初学者来说已经够用了,只是六轴的航向角数据会漂移,需要加磁力计以校正。
对于无人机来说,传感器是不可或缺的。我们往往可以通过观察无人机外接的传感器,来判断这个无人机所拥有的功能。比如无人机上面装了GPS,那么这个无人机就能定点以及航线规划。或者你看到无人机下方有个摄像头,那么这个无人机或许就能巡线或追踪小车。
飞控算法的核心就是通过传感器的数据来估计无人机的状态,或者说成姿态。在此基础上采用一定的控制算法使无人机按照我们所期望的方式运行。但是飞控接收到的传感器数据中包含了噪声。这时我们就需要使用滤波算法来降噪。常用的滤波算法有卡尔曼滤波,滑动平均滤波,FIR滤波等。
那么什么是所谓的“控制算法”呢?比如我期望无人机能巡线,那么我可以外加一个openmv来识别黑线,在openmv中使用线性回归算法,得到黑线的截距和角度,再将这两个数据整合到飞控的PWM波输出中,以控制无人机巡线。小白看到这可能一脸懵了,但请耐心看下去。后面笔者会详细展开讲滤波和定时器以及PWM波,还有遥控器的PPM波解码。
无人机姿态,比如悬停,上升和下降。还有三种简单却重要的姿态,横滚(roll),俯仰(pitch),偏航(yaw)。希望读者能理解并记住这三种姿态。因为之后我们会用这三个姿态数据来控制无人机。
想要码出一套代码是不容易的,每一个优秀的程序员都该有自己的copy库。网上的开源代码不少,但我们copy过来之后还得能看得懂,能修改。如果你不仅copy代码,还一成不变的copy硬件的话,就有点说不过去了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。