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

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


█ 系列文章目录

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


█ 文章目录


█ 读前说明

  • 本文通过学习别人写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 Set2019-02-26 MAVLink学习之路01_认识MAVLink - 知乎

  4. 欣飞鸽视频教程:2020-06-07 QGC地面站的学习使用_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliqt无人机地面站设计与制作视频教程-学习视频教程-腾讯课堂(欢迎大家加入欣飞鸽总动员,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

  • 17
    点赞
  • 271
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值