旋翼无人机的两类主要算法

先说一个旋翼类无人机系统的算法主要有两类:姿态检测算法、姿态控制算法。

姿态控制、被控对象(即四旋翼无人机)、姿态检测三个部分构成一个闭环控制系统。被控对象的模型是由其物理系统决定,我们设计无人机的算法就是设计姿态控制算法、姿态检测算法。

1:姿态检测算法:姿态的三个自由度可以用欧拉角表示,也可以用四元数表示。姿态检测算法的作用就是将加速度计、陀螺仪等传感器的测量值解算成姿态,进而作为系统的反馈量。常用的姿态检测算法有卡尔曼滤波、互补滤波等。

2:姿态控制算法:控制飞行器姿态的三个自由度,以给定姿态与姿态检测算法得出的姿态偏差作为输入,被控对象模型的输入量作为输出(例如姿态增量),从而达到控制飞行器姿态的作用。最常用的就是PID控制及其各种PID扩展(分段、模糊等)、高端点的有自适应控制。当然,姿态控制算法里面又常用角速度、角度双闭环控制,所以常常有PD外环+PID内环等等。

无人机的稳定决定一切

造出一架合格的无人机并不需要花里胡哨的app,稳定决定一切。而稳定又是靠传感器决定的,传感器不准怎么办?当然是靠滤波算法。

加速度计、陀螺仪等传感器的数据,在现实中,是很“脏”的,也就是说被各种噪声污染得很厉害。要从大量噪声中过滤出真实的传感器数据,这就在姿态测算里涉及到滤波。

大疆的滤波算法就是一个非常核心的竞争力。因此无人机公司的核心产品的核心滤波算法,全公司也就只有那么一两个人知道,他们平时坐在研发的一个小角落里,深藏不露。

卡尔曼滤波

网上广为流传着几篇关于卡尔曼滤波的科普文章,但是都夹杂着一堆复杂的公式,不知道你看后是一种什么样的感觉,我看时,看的我如坠云雾里。我希望能看到一篇没有复杂数学公式的文章,却一直没找到。

于是我想写一篇,讲讲自己对卡尔曼滤波的浅显理解。

我觉得卡尔曼滤波算法本质上是一个递推反馈算法。它分两部分:时间更新方程和测量状态更新方程。其中,前者负责递推,后者负责反馈(将先验估计和新的测量变量结合,以构造改进后的后验估计)。

时间更新方程可视为预估方程,测量更新方程可视为校正方程。

这个是预估方程:

x表示状态变量;左上角带“—”的量表示先验;“ ^ ”表示估计。

“先验”与“后验”是相对的俩概念,“先验”的意思就是仅仅用之前的状态来估计出来的;而“后验”是在我们进行了测量,知道了测量变量 z 之后的。也就是说,“先验”与“后验”的区别就是有没有进行测量。

预估方程可以这么理解:因为卡尔曼滤波算法的前提条件是:系统是线性的。所以即使不用测量,我们也可以根据“线性”这个特征得到一个先验状态值。

这个是校正方程:

中间的那个式子做一下整理就容易理解了:把先验状态变量提出来放到一块儿。

那这个校正方程就可以这么理解了:有了测量值之后,我们便有了两个可用的量了,即测量值z和先验状态值,那我们就根据这两个量之前的表现来各自给他们分配一个权重(之前表现越好的量,其权重就越高),这个权重就是卡尔曼增益。那么什么是表现好表现不好呢,表现好意思就是测量结果稳定,方差很小,表现不好就是估计值或观测值不稳定、方差很大。

最后再付一个图基本就差不多了。

讲到这儿我觉得基本就可以了,最起码在以后生疏之后再看一遍这篇文章,基本就能回想起卡尔曼。

要不最后再说说卡尔曼滤波算法能干嘛吧,我觉得基本上的应用有两个,一个是测量,一个是预测。

一架飞机在天上飞,我们想知道这架飞行在任一时刻所处的位置、速度等状态参数,那我们就得用测量装置进行测量,这样问题就来了。因为测量装置存在随机干扰,所以它测得的结果中就会夹杂着大量随机干扰,这时测量装置返回来的状态参数是不靠谱的。

那怎么办呢?这就用到了卡尔曼滤波算法,因为卡尔曼滤波的核心是“预测+校正”,所以在测量上,我们用到的就是校正出来后验状态变量。

卡尔曼在博士毕业的时候拿着卡尔曼滤波算法作为他毕业论文的主题,唉……差距啊,他这么吊,也不知道他爸妈知不知道。

看到这儿你可能还有点蒙,我们再来通俗的举例子说明。

假设你有两个传感器,测的是同一个信号。可是它们每次的读数都不太一样,怎么办?

取平均。

再假设你知道其中贵的那个传感器应该准一些,便宜的那个应该差一些。那有比取平均更好的办法吗?

加权平均。

怎么加权?假设两个传感器的误差都符合正态分布,假设你知道这两个正态分布的方差,用这两个方差值,(此处省略若干数学公式),你可以得到一个“最优”的权重。

接下来,重点来了:假设你只有一个传感器,但是你还有一个数学模型。模型可以帮你算出一个值,但也不是那么准。怎么办?

把模型算出来的值,和传感器测出的值,(就像两个传感器那样),取加权平均。

OK,最后一点说明:你的模型其实只是一个步长的,也就是说,知道x(k),我可以求x(k+1)。问题是x(k)是多少呢?

答案:x(k)就是你上一步卡尔曼滤波得到的、所谓加权平均之后的那个、对x在k时刻的最佳估计值。

于是迭代也有了。

这就是卡尔曼滤波。

知道一点卡尔曼滤波比较好

作为一个无人机从业者,或许你不是搞算法的、或许你也不是搞飞控的,你可能只是做结构的、业务的,这都没有关系。但要作为一个资深的无人机从业者,对于无人机的来龙去脉,技术等方面的全面了解,笔者认为是有必要的。

其实,"算法"到最后最是数学问题,整理再多,不会用全白搭!就是网上很多的源码直接抄,用在你的代码里,你不明白原理,还是白搭!

作为资深的无人机从业者,卡尔曼滤波你不能不知道 通俗易懂的来说卡尔曼滤波相关推荐

  1. 始卡尔曼滤波算法(KF)、扩展卡尔曼滤波算法(EKF)以及无迹卡尔曼滤波算法(UKF)三者之间的区别?

    原始卡尔曼滤波算法(KF).扩展卡尔曼滤波算法(EKF)以及无迹卡尔曼滤波算法(UKF)三者之间的区别? 原文:https://www.zhihu.com/question/22714163/answ ...

  2. 【双卡尔曼滤波】基于simulink仿真的双卡尔曼滤波

    1.软件版本 matlab2017b 2.本算法理论知识 设计了一种新的永磁同步电机双扩展卡尔曼滤波观测器.该观测器用于永磁同步电机无位置传感器 控制,可以实时估计永磁同步电机转子位置,转速和定子绕组 ...

  3. python卡尔曼滤波室内定位_基于核函数与卡尔曼滤波的室内定位方法

    随着当今社会的发展,基于位置的服务变得越来越重要.室外定位技术以全球定位系统为基础,包括美国的GPS定位系统,俄罗斯的GLONASS定位系统以及我国自主研制的北斗卫星导航定位系统,利用这些定位系统可以 ...

  4. 图说卡尔曼滤波(C++实现)

    什么是卡尔曼滤波? 对于这个滤波器,我们几乎可以下这么一个定论:只要是存在不确定信息的动态系统,卡尔曼滤波就可以对系统下一步要做什么做出有根据的推测.即便有噪声信息干扰,卡尔曼滤波通常也能很好的弄清楚 ...

  5. 解决交通拥堵、监测核辐射、野外搜救…无人机将有哪些神应用?

    导读:随着应用的不断发展,无人机市场有望迅速发展.本节的目的是概述自主飞行技术的广泛潜在应用:灾难响应.事故监测(安全保障).搜索和救援等. 作者:雅斯米娜·贝索伊·塞班(Yasmina Bestao ...

  6. DJI AirWorks|赛尔无人机携手大疆航测生态布局全球市场

    美国时间8月25日,为期4日的 DJI 大疆创新 AirWorks 2020 线上峰会正式启动.在全球新冠疫情的影响下,本届 AirWorks 2020 转为线上数字化模式举行.即便如此,大疆仍坚持不 ...

  7. 大疆从无人机中来,极飞到无人机中去

    配图来自Canva可画 目前来看,无论是无人机公司还是无人机服务公司,都或多或少地将自己的思路限制在了"无人机"这个框架内,但大疆在消费级无人机市场的统治力,又迫使其他无人机企业不 ...

  8. 卡尔曼滤波含义理解与公式推导(原作者王一哲,兰景公司,景贤计划)

    卡尔曼滤波是数据融合处理以及现代信号处理中十分重要,但是读书的时候在我电过于注重形式,对其内涵认识不足,工作之后才发现廖桂生老师在矩阵分析的课程上说的太对了,其实对于数学的定义的理解以及公式背后的含义 ...

  9. 基于STM32的四旋翼无人机项目(二):MPU6050姿态解算(含上位机3D姿态显示教学)

    前言:本文为手把手教学飞控核心知识点之一的姿态解算--MPU6050 姿态解算(飞控专栏第2篇).项目中飞行器使用 MPU6050 传感器对飞行器的姿态进行解算(四元数方法),搭配设计的卡尔曼滤波器与 ...

最新文章

  1. Apache Tuscany 宣布停止维护
  2. idea 端口被占用
  3. 赛门铁克卸载工具_神奇的安卓恶意软件 xHelper:自卸载且无法删除
  4. Algorithm:贪心策略之区间覆盖问题
  5. 带你重新认识ZooKeeper!java数组长度可变吗
  6. AMD CPU驱动被曝漏洞,可使 KASLR崩溃、密码泄露
  7. 运筹学在不同环境下的决策 -- 学习记录
  8. C/C++二维数组的传参方法总结
  9. flutter字体不跟随系统_Flutter小技巧总结之flutter 适配宽高,字体
  10. 用WPF+MongoDB开发房产信息收集器(3)——MongoDB入门
  11. android 改变音乐格式,音乐速度变更器app-音乐速度变更器下载v9.4.4-hu安卓版-西西软件下载...
  12. C#--打包安装项目
  13. OV5640的初始化
  14. 安卓系统实现播放器变速功能
  15. duilib入门简明教程(1)
  16. PTA习题 计算某年某月某日是该年中的第几天
  17. 阿里云免费教你使用营销引擎
  18. linux 配置 Apache mysql php最新版
  19. 小班安全使用计算机教案,【实用】小班安全教案4篇
  20. pta 构造哈夫曼树-有序输入 优先队列做法

热门文章

  1. ajax跨域请求Flask后台
  2. mac下日期、时间戳互转
  3. 腾讯云CentOS 7 上安装Nginx
  4. 你们肯定都不相信每天能准时下班了
  5. 特权同学笔记-榨干FPGA片上存储资源
  6. 深入grootJs(进阶教程)
  7. openSSL命令、PKI、CA、SSL证书原理
  8. Javascript弹出对话框 确定取消转到不同页面
  9. IE 域组策略对服务器无效的原因
  10. Photoshop阴影与内阴影