█ 【无人机学习】无人机基础知识
█ 系列文章目录
提示:这里是收集了无人机的相关文章
- 【无人机学习】无人机基础知识
- 【无人机学习】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
█ 文章目录
█ 读前说明
- 本文通过学习别人写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。
================================传统ardupilot飞控================================建立在Arduino平台上的APM飞控板,等同于一个Arduino单片机,可以直接在Arduino的开发环境下进行开发。
通过开源软件Mission Planner,开发者可以配置APM的设置
================================PIXHAWK================================
- 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到此结束,全新的飞控操作系统时代开始了
- 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位的处理器)。
█ 地面站
-
开源飞控(无人机核心板):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
█ 烧写固件
-
无人机连接pc:(usb连接)
-
打开MP(Mission Planner):
以下两个图都可以
-
查看参数
选择【com12串口】,点击【连接】,选择【配置/调试】,选择【全部参数表】或【全部参数树】(参数都是一样,显示方式不同)
-
查看接收机波特率
ADSB是什么?通过飞机上GPS接收机(、静压管或大气计算机、FMS、应答机)和遥控器上的ADS-B接收机(、显示系统)等一套系统,监视飞机的位置等信息。
-
串口参数
█ 连接飞控
- 不带屏遥控器 连接 qgc 使用方法:
-
不带屏遥控器 连接 tower 使用方法:
-
带屏遥控器 连接 tower 使用方法:
-
遥控器连接不上无人机:
可以尝试通过助手修改【遥控器接收机】的串口波特率(可能是57600也有可能是115200)
█ 相关资料
提示:这里是参考的相关文章
-
MP和 QGC使用的mavlink协议(官网英文版): MAVLINK Common Message Set、2019-02-26 MAVLink学习之路01_认识MAVLink - 知乎
-
欣飞鸽视频教程:2020-06-07 QGC地面站的学习使用_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili 、qt无人机地面站设计与制作视频教程-学习视频教程-腾讯课堂(欢迎大家加入欣飞鸽总动员,qq群聊号码:879466897)
-
2019/12/26 无人机开发之一:Pixhawk与Arduino简述 - osc_22zrmzfz的个人空间 - OSCHINA - 中文开源技术交流社区
-
开课吧笔记: 2020-07-16 01无人机简介2020-07-11(作业:网上调研无人机公司和前景)_猪猪的博客-CSDN博客
-
开课吧笔记(社区): 2020-07-24 我现在发现开课吧的智能无人机课程里面也讲GAAS_诗筱涵的博客-CSDN博客
-
开课吧报名广告《完成你的第一个无人机》: 2020-06-27 超酷炫!智能无人机中文教程重磅上线!_GitHubDaily-CSDN博客
-
飞控社区(已关闭,不维护):飞控使用 - APM飞控/Pixhawk飞控 - 开源飞控讨论
-
ardupilot英文教程(内容很详细,适用于小白菜鸟):Copter Home — Copter documentation
-
2016-1-15【APM Android增强型地面站】 - 飞鱼地面站 - 模吧、【2016-11-16 大四学生开发的飞鱼F4塔式飞控】
█ 免责声明
博主分享的所有文章内容,部分参考网上教程,引用大神高论,部分亲身实践,记下笔录,内容可能存在诸多不实之处,还望海涵,本内容仅供学习研究使用,切勿用于商业用途,若您是部分内容的作者,不喜欢此内容被分享出来,可联系博主说明相关情况通知删除,感谢您的理解与支持! |
---|
提示:转载请注明出处:
https://blog.csdn.net/ljb568838953/article/details/112479889