█ 【无人机学习】无人机基础知识


█ 系列文章目录

提示:这里是收集了无人机的相关文章

  • 【无人机学习】无人机基础知识
  • 【无人机学习】Mission Planner(pc端)和QGroundControl(android端)
  • 【无人机学习之DroidPlanner】FlightActivity的启动过程
  • 【无人机学习之DroidPlanner】msg_heartbeat心跳处理(含MAVLink协议)
  • 【无人机学习之DroidPlanner】msg_sys_status系统状态
  • 【无人机学习之QGroundControl】android端App初解1
  • 【无人机学习之QGroundControl】android端App初解2-APMPowerComponent(含QML的介绍)
  • 【无人机学习之QGroundControl】android端App初解3-ParameterEditorController

█ 文章目录

  • █ 【无人机学习】无人机基础知识
  • █ 系列文章目录
  • █ 文章目录
  • █ 读前说明
  • █ Arduino的前世今生
  • █ 地面站
  • █ 烧写固件
  • █ 连接飞控
  • █ 相关资料
  • █ 免责声明

█ 读前说明

  • 本文通过学习别人写demo,学习一些课件,参考一些博客,学习相关知识,如有涉及侵权请告知
  • 本文可能只简单罗列了一些相关的代码实现过程,复制了一些大神的高论,如内容有误请自行辨别
  • 涉及到的逻辑以及说明可能只做了简单的介绍,主要当做笔记,了解过程而已,如有不同看法,欢迎下方评论

官方源码:https://github.com/diydrones/ardupilot
Firmware是PX4的程序,Ardupilot是APM的程序。编译Ardupilot要用到firmware里的驱动等,APM的代码是不够清晰(约700K行的核心代码)。建议看PX4的代码。


█ Arduino的前世今生

⚡️Arduino是一块电路板的名字

Massimo Banzi之前是意大利Ivrea一家高科技设计学校的老师。他的学生们经常抱怨找不到便宜好用的微控制器。

2005年冬天, Massimo Banzi跟David Cuartielles讨论了这个问题。 David Cuartielles是一个西班牙籍晶片工程师,当时在这所学校做访问学者。两人决定设计自己的电路板,并引入了Banzi的学生David Mellis为电路板设计编程语言。两天以后,David Mellis就写出了程式码。又过了三天,电路板就完工了。

Massimo Banzi喜欢去一家名叫di Re Arduino的酒吧,该酒吧是以1000年前意大利国王Arduin的名字命名的。为了纪念这个地方,他将这块电路板命名为Arduino。

Arduino主要以AVR单片机为核心控制器的单片机应用开发板/学习板,类似RaspberryPI(树莓派)、香蕉派开发板、pcDuino开发板、正点原子板、STM32开发板等等

⚡️Arduino是一个开源的开发平台

为了保持开放源码理念,采用Creative Commons(CC)的授权,公开了硬件设计图,在这样的授权下,任何人都可以生产电路板,甚至还能重新设计和销售原设计,人们不需要支付任何费用,不用取得Arduino团队的许可

Arduino的开发人员开发了简单的函数,许多应用库,不用直接去操作寄存器就可以直接操作硬件电路,还开发一套简洁的IDE(集成开发环境、上位机软件)来写代码,编译,调试,下载。

一套容易使用的工具、价格低廉、电路结构简单、方法调用简单,启动时会调用 setup()函数来初始化变量,引脚模式等。(每次上电或复位后运行一次)之后循环执行loop() 函数,用来控制Arduino板的硬件动作。

  • Arduino采用C和C++混合编程,采用成熟的开源gnu来编译。
  • Arduino只是一个开源的开发平台,支持多种MCU,包括atmel公司的AtmelTiny系列、avr8、ARM Cortex M0、ARM Cortex M3、ST公司的ARM Cortex M3处理器,TI公司的energia平台也采用了Arduino的平台结构,可以用于开发MSP430、C2000等。

⚡️ArduPilot/APM是一款开源自动导航系统(如飞行器)

APM(ArduPilotMega,Atmega2560微处理器) 是在2007年由DIY无人机社区(DIY Drones)推出的飞控产品,是当今最为成熟的开源硬件项目。APM基于Arduino的开源平台,对多处硬件做出了改进。ArduPilot的“Ardu”部分取自Arduino。

建立在Arduino平台上的APM飞控板,等同于一个Arduino单片机,可以直接在Arduino的开发环境下进行开发。

通过开源软件Mission Planner,开发者可以配置APM的设置

================================传统ardupilot飞控================================

  • 2007年 – 克里斯·安德森(Chris Anderson) 创立一个DIY Drones网络社区 https://diydrones.com/
  • 2008年 – Jordi Munoz 制作了一个可以自动飞行的传统直升机无人机并赢得了第一届Sparkfun AVC大赛.,并将源码上传到了 DIY Drones网络社区 中。
  • 2009年 – Chris Anderson 和 Jordi Munoz二人合作成立了 3D Robotics(3DR) 公司
  • 2009年5月 – Jordi在3D Robotics 发布了第一款Ardupilot 红色飞控主板,
  • 2010年 – 3D Robotics 推出了APM1。
  • 2011年 – 3D Robotics发布了APM2。(2011年2月大疆发布了风火轮F550和F330)
  • 2012年 – 3D Robotics发布了APM2.5/2.6。(2012年2月大疆推出风火轮F450)
  • 部分人认为:APM(Ardupilot)基本上是个玩具项目,代码复杂度比较低,PX4的代码(nuttx嵌入式实时操作系统)复杂度就高了很多。
  • 此时芯片界已经有了STM32系列计算能力非常强的芯片,APM2.5/2.6采用的avr atmeg8单片机(8位的处理器)高负荷运行也到了被淘汰的时刻,传统的ardupilot到此结束,全新的飞控操作系统时代开始了

================================PIXHAWK================================

  • 2013年 – ETH Zurich (苏黎世联邦理工大学)的计算机视觉与几何实验室 Lorenz Meier ,发布了第一代实验版本(不好固定,使用复杂): 双飞控处理器PX4FMU/PX4IO硬件。( 后演变为PX4)
  • 2013年11月 – 3DR找到了PX4团队,将PX4FMU和PX4IO整合到一块板子上,发布了Pixhawk硬件( 2013年11月大疆发布了"悟’)(Pixhawk是一块硬件,PX4的代码和APM的代码都能烧录到Pixhawk上运行。)
  • 2015年4月 – 3DR烧掉了从风险投资哪里获得的1000万美元投资推出的solo惨败,裁掉了150名员工,并且决定不再涉足硬件市场,专心致力于商用无人机软件系统的开发。
  • 2016年9月 – 大疆发布了御
  • 2016年10月 – 大疆发布精灵4pro
  • 2016年11月 – 大疆发布MG-1S农业植保机
  • 2017年3月 – 大疆发布MG-1S RTK版农业植保机
  • 2017年5月 – 大疆发布了晓

最初APM1自动导航板是基于Arduino开发环境的。成长比Arduino环境更快时,就不再使用Arduino运行库,并使用修改版的Arduino集成开发环境,来支持用于基于AVR的APM1与APM2板的ArduPilot。

不仅支持Arduino兼容硬件,还支持烧写PX4Firmware(与平台无关的自动驾驶仪软件/固件)的Pixhawk v2,为表示当前代码的跨平台特性,我们把“Ardu”前缀从软件项目取消,改为了“APM” 前缀(APM:Copter,APM:Plane,APM:Rover等)。

PX4地面控制站被称为QGroundControl,

Pixhawk(32位ARM处理器)世界上最出名的开源飞控的硬件厂商3DR最新推出了最新一代飞控系统(第二代产品)。它的前世就是大名鼎鼎的APM(APM使用8位的处理器)。

█ 地面站

  • 欣飞鸽:2020-06-07 QGC地面站的学习使用_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

  • 开源飞控(无人机核心板):APM飞控和Pixhawk飞控

  • MP(Mission Planner),PIX飞控和APM系列专用开源地面站软件,主要支持apm飞控,使用C#编写,只能在windows下运行,官方支持中文。

  • QGC(QGroundControl),支持MAVLink的无人机,为ArduPilot或PX4 Pro动力车辆提供配置;源代码存储在Github中,开源,使用c++编写,使用Qt进行开发的,跨平台支持windows linux android ios mac os ,官方版不支持中文,不过也有汉化版。

  • pixhawk硬件可以烧写apm,-mp,也可以烧写.qgc

█ 烧写固件

  1. 无人机连接pc:(usb连接)

  2. 打开MP(Mission Planner):
    以下两个图都可以

  3. 查看参数
    选择【com12串口】,点击【连接】,选择【配置/调试】,选择【全部参数表】或【全部参数树】(参数都是一样,显示方式不同)

  4. 查看接收机波特率
    ADSB是什么?通过飞机上GPS接收机(、静压管或大气计算机、FMS、应答机)和遥控器上的ADS-B接收机(、显示系统)等一套系统,监视飞机的位置等信息。

  5. 串口参数

█ 连接飞控

  1. 不带屏遥控器 连接 qgc 使用方法:

  1. 不带屏遥控器 连接 tower 使用方法:

  2. 带屏遥控器 连接 tower 使用方法:

  3. 遥控器连接不上无人机:
    可以尝试通过助手修改【遥控器接收机】的串口波特率(可能是57600也有可能是115200)


█ 相关资料

提示:这里是参考的相关文章

  1. 教程: 五大篇章,带你走进神秘的Arduino世界

  2. 教程: Arduino 教程_w3cschool

  3. MP和 QGC使用的mavlink协议(官网英文版): MAVLINK Common Message Set、2019-02-26 MAVLink学习之路01_认识MAVLink - 知乎

  4. 欣飞鸽视频教程:2020-06-07 QGC地面站的学习使用_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili 、qt无人机地面站设计与制作视频教程-学习视频教程-腾讯课堂(欢迎大家加入欣飞鸽总动员,qq群聊号码:879466897)

  5. 2016-2-21 开源自动导航系统 ArduPilot/APM

  6. 2018-06-19 科普:Arduino的前世今生 - 企鹅号 - 盟渡天启 - 云+社区 - 腾讯云

  7. 2019-12-26 无人机开发之一:Pixhawk与Arduino简述 - 不学习不快乐 - 博客园

  8. 2020-07-05 px4讲解(一)历史起源_qq_32261101的博客-CSDN博客

  9. 2020-04-03 开源飞控APM/PX4的发展史(转) - 简书

  10. 2020-02-28 ArduPilot与Pixhawk什么关系? - 知乎

  11. 2018-09-12 中国国内无人机开源飞控系统简介_杜鹃纸巾的博客-CSDN博客

  12. 2019/12/26 无人机开发之一:Pixhawk与Arduino简述 - osc_22zrmzfz的个人空间 - OSCHINA - 中文开源技术交流社区

  13. 不止用于无人机:2017-03-21 Arduino高级应用教程 | 高精度自动导航的越野平衡小车_手机搜狐网

  14. 开课吧笔记: 2020-07-09 00无人机简介以及课程介绍2020-07-03_猪猪的博客-CSDN博客

  15. 开课吧笔记: 2020-07-16 01无人机简介2020-07-11(作业:网上调研无人机公司和前景)_猪猪的博客-CSDN博客

  16. 开课吧笔记(社区): 2020-07-24 我现在发现开课吧的智能无人机课程里面也讲GAAS_诗筱涵的博客-CSDN博客

  17. 开课吧报名广告《完成你的第一个无人机》: 2020-06-27 超酷炫!智能无人机中文教程重磅上线!_GitHubDaily-CSDN博客

  18. 飞控社区(已关闭,不维护):飞控使用 - APM飞控/Pixhawk飞控 - 开源飞控讨论

  19. ardupilot英文教程(内容很详细,适用于小白菜鸟):Copter Home — Copter documentation

  20. 2016-1-15【APM Android增强型地面站】 - 飞鱼地面站 - 模吧、【2016-11-16 大四学生开发的飞鱼F4塔式飞控】

  21. 2016-1-15 QGroundcontrol 开源地面站本地编译_31号楼的某个房间-CSDN博客

  22. 阿木实验室:任务飞行 — P系列无人机-wiki 1.0 文档

  23. 什么是adsb? - 知乎

  24. 2016-09-28 干货 丨无人机六种动力驱动及常见接口盘点

  25. 2020-12-15 无人机飞控连接搭载设备的接口有哪些

  26. 教材 基本概念 | PX4 自动驾驶用户指南

█ 免责声明

博主分享的所有文章内容,部分参考网上教程,引用大神高论,部分亲身实践,记下笔录,内容可能存在诸多不实之处,还望海涵,本内容仅供学习研究使用,切勿用于商业用途,若您是部分内容的作者,不喜欢此内容被分享出来,可联系博主说明相关情况通知删除,感谢您的理解与支持!

提示:转载请注明出处:
https://blog.csdn.net/ljb568838953/article/details/112479889

【无人机学习】无人机基础知识相关推荐

  1. python语言的单行注释以井号开头_推荐|零基础学习Python基础知识

    原标题:推荐|零基础学习Python基础知识 Python是一种面向对象.解释型计算机程序设计语言.语法简洁清晰,强制用空白符作为语句缩进. Python具有丰富和强大的库,又被称为胶水语言.能把其他 ...

  2. Hadoop学习笔记—15.HBase框架学习(基础知识篇)

    Hadoop学习笔记-15.HBase框架学习(基础知识篇) HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问.HBase的目标是存储并处理大型的数据.HBase ...

  3. 关于图计算图学习的基础知识概览:前置知识点学习(PGL)[系列一]

    关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL)) 0.1图计算基本概念 首先看到百度百科定义: 图计算(Graph Processin ...

  4. 快速学习mysql_快速学习MySQL基础知识

    这篇文章主要梳理了 SQL 的基础用法,会涉及到以下方面内容: SQL大小写的规范 数据库的类型以及适用场景 SELECT 的执行过程 WHERE 使用规范 MySQL 中常见函数 子查询分类 如何选 ...

  5. 三 计算机知识的重要性分析,学习计算机基础知识对中专学生的重要性分析

    学习计算机基础知识对中专学生的重要性分析 [摘 要]本文主要介绍了计算机基础知识的内容,阐述了学习计算机基础知识对中专学生的作用,并且通过对计算机基础操作的学习,提高中专学生的计算机应用水平.希望本文 ...

  6. 谈计算机知识对学生的作用,浅谈学习计算机基础知识对中专学生的重要性

    [摘 要]本文主要介绍了计算机基础知识的内容,阐述了学习计算机基础知识对中专学生的作用,并且通过对计算机基础操作的学习,提高中专学生的计算机应用水平.希望本文可以让中专学生认识到学习计算机基础知识的重 ...

  7. 《机器学习》理论——速读学习1 基础知识

    <机器学习>理论--速读学习1 基础知识 该系列文章系个人读书笔记及总结性内容,任何组织和个人不得转载进行商业活动! Time: 2021-12-05 学习目标:我需要了解神经网络除了工程 ...

  8. A.关于图计算图学习的基础知识概览:前置知识点学习(Paddle Graph L)【一】

    图学习图神经网络算法专栏简介:主要实现图游走模型(DeepWalk.node2vec):图神经网络算法(GCN.GAT.GraphSage),部分进阶 GNN 模型(UniMP标签传播.ERNIESa ...

  9. 直播平台怎么搭建,你要先来学习音频基础知识

    直播平台怎么搭建,你要先来学习音频基础知识 概述 本片文章主要介绍音频基础,在做音频开发之前首先必须要对音频的相关概念了解.以下是具体内容概述: 常见的音频格式 WAV MP3 WMA RA APE ...

  10. 学习编程基础知识,进阶成为更优秀的程序员

    "脚本小子"常常从某些网站上复制脚本代码,然后到处粘贴,却并不明白其中的方法与原理 ​​当你看到编程语言编进教材的时候,看到一个文科生也在编写Python程序进行数据分析的时候,你 ...

最新文章

  1. Flask-请求上下文
  2. 使用 Pandas, Jinja 和 WeasyPrint,轻松创建一个 PDF 报表
  3. 201609计算机控制技术作业三,计算机控制技术大作业2015..doc
  4. php简单环境,PHP 简单的环境搭建
  5. CSS3属性——(一)
  6. mac 使用 pf 做端口转发
  7. echarts3.0版本断点连线的处理
  8. ClassNotFoundException和NoClassDefError之间的区别
  9. [Windows API] Listing the Files in a Directory,可用来数文件夹下有多少个子文件(夹)...
  10. 2018 为自己加油!
  11. 爬虫中国天气网数据并可视化
  12. C#收集中控ZKTeco考勤数据
  13. ARM 体系架构及其工作原理
  14. 三、电容屏原理(2)
  15. 【UCSC Genome Browser】比老东家还出名的基因组数据库
  16. 设计一个对向车道的左转待转区提高十字路口的并行通行率
  17. discuz远征游戏通用网站模板
  18. 大厂Java八股文面试真题汇总,2022秋招必备,面试不慌
  19. Mac outlook设置HTML,设置苹果MAC 端outlook客户端说明
  20. Mysql 中 case when then else end 用法

热门文章

  1. Unity Shader入门精要--第4 章 学习Shader 所需的数学基础:矩阵
  2. 二阶无源低通滤波器幅频特性曲线_一文看懂二阶lc低通滤波器的设计及原理
  3. 二阶压控电压源低通滤波器的传递函数
  4. 利用intellij idea工具如何反编译.jar
  5. iOS 12.0-12.1.2 完整越狱教程
  6. Apple watch无法登陆网易云音乐
  7. c语言万年历完整源代码,C语言万年历的源程序
  8. 固态硬盘测试软件怎么测速,AS SSD Benchmark(SSD硬盘测速工具),如何发挥最佳性能?...
  9. 【2022最新Java面试宝典】—— TCP,UDP,Socket,Http网络编程面试题(47道含答案)
  10. matlab 二维离散傅立叶变换,二维离散傅里叶变换.PPT