自动驾驶

无人机的自动驾驶AutoPilot可从三个场景来理解:

  1. 指定目的地后让它自己飞过去,且可以指定途经点,整个流程即执行航线规划。这些点是三维的,即经纬度+海拔高度。

  1. 在水平面方向飞行时保持高度

  1. 让它悬停

第一个场景相对好理解,三维点只是比起日常用的高德地图多了高度这个维度。由于地球是个球体,当两个地球表面的点足够远时,例如广州和纽约,我们难以应用“两点之间直线最短”的方案来直接过去,因为不可能穿过地底。所以飞过去时无人机需要不低于一定高度,不能坠毁,然后才是像看平面地图一样按二维的经纬度计算不断靠近目标。

此时就需要结合第二个场景“保持高度”一同考虑了。无人机怎么知道自己的高度呢?靠这些部件。

  1. 气压(高度)计,得到海拔高度,即距离海平面的高度。不同海拔,气压强度是不同的。在三千米范围内,每升高12米,大气压减小大约133帕。

  1. 超声波传感器,在离地表5米内时,它的精度最高,得到的是离地距离。原理就跟雷达一样,发射超声波并接受反射,通过收发时间差和声波速度得到距离。

  1. 光流传感器。它配有摄像头,通过对比运动过程中的图像变化,得到不同方向的位移速度,再通过一定算法得到粗略的位移量。它应用了机器视觉(computer vision),原理可理解为类似于光学鼠标。

无人机会通过算法综合各种部件的数据来评估高度,并非靠单一部件。

自动驾驶的第三个场景“悬停”,就是俗话说的“不动”,但空中的“不动”需要考虑重力和风力。自动驾驶能让人不操控的情况下,保持经纬度和高度不变,也就是通过控制自身姿态和电机转速,抵消重力和风力的影响。如果单对抗重力,想人工控制螺旋桨转速来保持高度不变,还是有可能的,但面对不断变换速度和方向的风而言,人的反应速度不足以让经纬度变化幅度保持很小。

总结而言,无人机自动驾驶就是按预期目标自动调整姿态,而这是通过控制各个螺旋桨电机的转速实现的。更具体的场景请参考“飞行模式”一节。

其它部件

  • 全球卫星定位系统GPS:在导航和定点时获取相关位置信息

  • 加速度计:获取相对于机体坐标系的加速度

  • 陀螺仪:飞行姿态感知

  • 磁传感器:测量获取磁偏角。指南针,获取机头指向。

  • 惯性导航单元:包含加速度计、角速度计(陀螺仪)和气压高度计。不依赖外界信息来定位的导航系统,就是惯性导航。GPS依赖卫星,没信号就导航不了,所以不属于惯导。

  • 无线传输,可以是WiFi、4G、无线电、电台

  • 主控芯片:接受传感器数据,处理计算后,通过电路控制电机转速。

  • 主板:集成所有部件的电路板

  • 螺旋桨和电机

  • 电池

上文提到的所有部件的集合,即除支撑作用的机架外,整体被称为(广义上的)【飞控】!

地面站

地面站狭义是指PC上的Mission Planner或QGroundControl这两个软件。广义上则是个形象的称呼,所有在地面能遥控飞机的东西都算地面站。因为具有控制功能的代码做成了SDK可以集成到任意App上,所以实际上的地面站可以有很多种。主要功能有:无线电通信、航点规划(mission)、日志读取展示分析、地图、手柄控制等。

遥控器

无线电遥控器也是一种地面站,只是只有单纯的控制功能。遥控器的4个必备操作是控制无人机的偏航yaw、俯仰pitch、横滚roll和油门throttle。油门即电机转速,体现为飞行速度。yaw+pitch+roll三个角度值一起构成描述了无人机的姿态attitude。

【点击】=>pitch yaw roll是什么

飞行模式

这节对理解无人机操控较重要,请看参考资料。【点击】=>ArduPilot飞行模式介绍

列表式汇总: 飞行模式介绍。

切换到自动模式并解锁,如果飞控内保存有mission就会执行航线。

接口与协议

MAVLink,请参见第五章MAVLink协议和Java库 。

其它非无人机特有的总线、协议、接口,有CAN、串口转USB、数模转换等。

综合加深认知

请快速浏览一下这篇文章,可对前述内容加深认识。【点击】=>APM飞控完全教学指南

还有 飞控的职责和实现原理简述。

控制算法

这些算法都用于处理各种传感器的输入数据,从而得出对电机的调整数值,进而控制无人机姿态。

请看现成资料了,数学学得好的话这不算难:

  • 卡尔曼滤波算法EKF,https://baike.baidu.com/item/EKF/9375021

  • 比例-积分-微分算法PID,https://baike.baidu.com/item/PID%E7%AE%97%E6%B3%95/4660106

  • 方向余弦矩阵,https://zhuanlan.zhihu.com/p/270608927

  • 曲线航线的算法——两点三次埃尔米特(hermite)插值算法,https://blog.csdn.net/BreederBai/article/details/98208325

编程语言

MAVLink的基础库生成是用python。飞控固件都是C++,有shell和lua脚本。Mission Planner是C#,QGroundControl是Qt C++。

参考资料

  • 四旋翼飞行器6——光流传感器简介。这篇文章里有实物图

  • 【UAV】光流传感器原理分析及讲解

  • 光流估计——从传统方法到深度学习

  • 看看无人机如何自动保持正常飞行姿态

开源飞控初探(二):无人机技术栈相关推荐

  1. StoneDT开源舆情系统大数据技术栈介绍

    我们目前开源的 舆情系统 分为3个部分,整个系统使用了多种开源技术组件和开源框架,涵盖涉及技术领域广泛,例如:分布式计算.大数据.人工智能.数据中台.数据挖掘.深度学习.java和python的大量实 ...

  2. 开源飞控初探(一):无人机的历史

    这章先纠正大疆带给无人机外行小白的认知. 定义无人机 无人机的正式英文名字是Unmanned Aerial Vehicle,缩写为UAV.有人无人的区分,是看飞机能否一直需要人为操控.最简单的场景是, ...

  3. 开源飞控初探(三)两大开源飞控的历史

    飞控领域的一些术语有历史渊源,了解两大开源飞控的历史可帮助理清这些术语之间的联系和不同场景下的具体意义.有所省略,只摘录有参考价值的内容. 1.PX4和Pixhawk的历史 2008年源于Lorenz ...

  4. 开源飞控初探(六):地面站和SDK

    按照原意,不会带上天,在地面上能控制飞机的系统,都叫地面站,包括PC软件.手机App等.地面站可通过串口.TCP.UDP等多种连接,以MAVLink数据协议向飞控发命令. 载人飞机上的触控屏也会集成S ...

  5. .Net Core微服务架构技术栈的那些事

    一.前言 大家一直都在谈论微服务架构,园子里面也有很多关于微服务的文章,前几天也有一些园子的朋友问我微服务架构的一些技术,我这里就整理了微服务架构的技术栈路线图,这里就分享出来和大家一起探讨学习,同时 ...

  6. 拒绝「技术栈」选择恐惧症

    所谓最小化可行产品(Minimum Viable Product,MVP),就是将产品快速推向客户,从客户反馈中不断进行迭代.更重要的是,MVP 也是研发团队进一步完善产品的基础. 但是,在正式代码之 ...

  7. 转: 拒绝「技术栈」选择恐惧症

    所谓最小化可行产品(Minimum Viable Product,MVP),就是将产品快速推向客户,从客户反馈中不断进行迭代.更重要的是,MVP 也是研发团队进一步完善产品的基础. 但是,在正式代码之 ...

  8. 无人机——开源飞控简介

    注:本文转载自   ExBot易科机器实验室 --开源飞控知多少      http://blog.exbot.net/archives/2154 在纷繁复杂的无人机产品中,四旋翼飞行器以其结构简单. ...

  9. 物联网初探-开发技术栈

    概述 大体上来说,一个典型的物联网项目主要由云.管.端三大部分组成. 端,即终端,它负责真实世界的感知和控制,是物联网的最底层: 管,即管道,它是物联网的网络核心,一切数据和指令均靠管道来传输,它是物 ...

最新文章

  1. Excel导入SQL数据库完整代码
  2. 尚未整理【风控】互联网金融-构建评分卡模型部分知识点
  3. 计算机网络-IP地址的分类
  4. p_re 实验数据库ViPER和ETHZ的下载地址和实验评价标准
  5. app开发上传文件夹到服务器,uni-app 上传(图片上传实战)
  6. USB连接TF卡 SD卡硬件电路
  7. OJ1065: 统计数字字符的个数(C语言)
  8. python字符编码解码,文件编码解码。
  9. Linux双系统容易崩溃吗,一个蛋疼的双系统问题(崩溃)
  10. 配置×××服务器使用L2TP/IPSEC协议
  11. 【性能】雅虎军规(14条常用)笔记
  12. 下载主题jar包并导入到idea
  13. python爬虫猫眼电影TOP100(爬虫入门基础,同步入库)
  14. 守望先锋:源氏跑酷之球图制作分享
  15. 新版标准日本语中级_第二十三课
  16. MCU的GPIO输出模式Open Drain Push/Pull的理解
  17. python 倒计时手机app打卡_摆脱拖延症,这些APP让你的时间更高效!
  18. Python如何实现行人识别-人体识别
  19. web IDE theia-ide安装
  20. celeron处理器_桌面级【CPU】处理器简介——之【intel】篇

热门文章

  1. H7-TooL高速 DAPLINK仿真器,含全功能版 RTT Viewer
  2. pyQT5 AES 加解密
  3. PySpark TopK 问题(分组TopK)(4)
  4. android 提示蓝牙无法配对,Android蓝牙不显示配对对话框
  5. macshell配色
  6. 哈工大2020软件构造Lab2实验报告
  7. 2007你“值”多少钱(薪水,薪酬,工资,待遇,年薪,月薪)
  8. 7-18 出租车计价 (15分)
  9. 电销系统不仅外显手机号,还能自选归属地
  10. MFC学习笔记(一)High Speed Chart 控件使用