标签:drop 高级 完全 mission ebe ike 3d打印 can 包括
发展历程:APM-->PX4FMU/IO-->Pixhawk:
Arduino就是主要以以AVR单片机为核心控制器的单片机应用开发板(当然也有其他核心的例如STM32版本的但是不是官方的,还有intel的伽利略),或者是学习板啥的,Arduino开发人员开发了简单的函数,还有许多应用库,这样就不用直接去操作寄存器了,使得没有很好的单片机基础的人员也可以使用Arduino做出自己想要的东西。Arduino的开发人员还开发了一个简洁的IDE(集成开发环境)也就是写代码,编译,调试,下载的上位机软件。
Arduino只是一个开源的开发平台,它可以支持多种MCU,包括atmel公司的AtmelTiny系列、avr8、ARM Cortex M0、ARM Cortex M3、ST公司的ARM Cortex M3处理器,TI公司的energia平台也采用了Arduino的平台结构,可以用于开发MSP430、C2000等。
从原理上,Arduino平台不受MCU限制,但是当前只是支持有限的MCU。当前已经支持有名的ESP8266,ESP32等ARM内核板开发。但是Arduino核心板大部分使用的是AVR单片机作为核心。Arduino有一个硬件抽象层,实现了硬件无关层和硬件相关层的分离。Arduino采用C和C++混合编程,采用成熟的开源gnu来编译。 Arduino有大量的类库支持,同时从简到繁有大量的应用例子,可以很快地基于类库和例子实现用户的应用。但是如果想了解底层的实现,也可以看到底层实现的源码。Arduino主要用于前端的以控制为主的环境,如机器人控制前端,四轴飞行器前端控制,3D打印机前端控制等。对简单的控制系统,只用Arduino开发就可以了。
PX4FMU/IO与Pixhawk官网地址:
APM(ArduPilotMega) 是在2007年由DIY无人机社区(DIY Drones)推出的飞控产品,是当今最为成熟的开源硬件项目。APM基于Arduino的开源平台,对多处硬件做出了改进,包括加速度计、陀螺仪和磁力计组合惯性测量单元(IMU)。由于APM良好的可定制性,通过开源软件Mission Planner,开发者可以配置APM的设置,接受并显示传感器的数据。目前APM飞控已经成为开源飞控成熟的标杆,可支持多旋翼、固定翼、直升机和无人驾驶车等无人设备。
APM以Atmega2560微处理器为主要架构,硬件包括:三轴陀螺仪、三轴加速度计、测量高度的空气压力传感器、10Hz GPS 模块、监视电池状态的电压传感器、4Mb板上数据记录存储器(任务数据自动记录,并可以导出为 KML 格式)、内建硬件失效处理器(在失控时可以返回出发点)、(可选) 三轴磁力计、(可选) 空速传感器、(可选) 电流传感器。建立在Arduino平台上的APM飞控板,等同于一个Arduino单片机,可以直接在Arduino的开发环境下进行开发。
Pixhawk世界上最出名的开源飞控的硬件厂商3DR最新推出了最新一代飞控系统。它的前世就是大名鼎鼎的APM,由于APM的处理器已经接近满负荷(APM使用8位的处理器),没有办法满足更复杂的运算处理,所以硬件厂商采用了目前最新标准的32位ARM处理器,第一代产品是PX4系列,它分为飞控处理器PX4FMU和输入输出接口板PX4IO。PX4系列可以单独使用PX4FMU(但是接线很复杂),也可以配合输入输出接口板PX4IO来使用,但是因为没有统一的外壳,不好固定,再加上使用复杂,所以基本上属于一代实验版本。通过PX4系列的经验,厂商终于简化了结构,把PX4FMU和PX4IO整合到一块板子上,并加上了骨头形状的外壳,优化了硬件和走线,也就是这款第二代产品Pixhawk。Pixhawk的特点如下:
硬件透明:
它里面用的什么芯片,什么传感器一目了然,并且几乎所有的总线、外设都会引出,这样不但以后可以兼容一些其他外设,而且对于有开发能力的用户,都很方便,但这不是关键,最关键是放心!就拿这个Pixhawk来说,他是双处理器,一个擅长于强大运算的32 bit STM32F427 Cortex M4 核心 168 MHz/256 KB RAM/2 MB Flash处理器,还有一个主要定位于工业用途的协处理器32 bit STM32F103它的特点就是安全稳定。所以就算主处理器死机了,还有一个协处理器来保障安全。至于其他传感器陀螺仪、加速度、气压计等,大家自己可以查阅官网http://www.pixhawk.com。github上有硬件板的PCB图与原理图网址。.sch和.brd文件需要使用Altium Designer viewer打开。因为原理图文件和PCB文件只有只读权限。
安全性和实用性:
刚刚上面说到处理器的安全设计,但是软件也是一个关键的因素,目前为止,这款飞控系统有2套固件系统,一套是APM移植过来的APM Copter,另一套则是由ETH Zurich (苏黎世联邦理大学)的计算机视觉与几何实验室的PIXHAWK项目、并得到了自主系统实验室和自动控制实验室的支持 ,以及一些出色的个人,包括 APM Copter、3D Robotics 和 international 3DR distributors的开发人员。专门为PX4系列开发的固件系统。经实测两套固件都能实现稳定飞行,前期在地面上需要做好相应的初始化。ArduCopter固件使用mission plan地面站,PX4Firmware采用Qgroundcontrol地面站。
(1)APM2.5与2.6是传统ardupilot飞控的最新(也是最终)版本;
(2)PX4FMU与PX4IO 是这个新飞控家族的最初两个版本: Px4FMU 概览 与 Px4IO 概览;
(3)Pixhawk是结合 PX4FMU / PX4IO改进而开发出的PX4飞控的单块电路板版本;
(4)APM 8位CPU在储存和CPU计算能力上不足;
(5)PX4FMU / PX4IO 是由一个Lorenz Meier所在的瑞士小组所开发的学校项目;
(6)PX4拥有一个32位处理器,提供更多内存、运用分布处理方式并且包含一个浮点运算协处理器;
(7)与APM相比,PX4 / Pixhawk具有其10倍以上的CPU性能和更多其他方面的改进;
(8)Pixhawk是由DIYDrones、3DR和最初的瑞士PX4团队联合开发的;
(9)开发的重点是Pixkawk,所以PX4系统的开发可能会滞后并且某些问题可能很久都不会得到解决;
(10)APM系统已经走到了它的终点,PX4FMU/IO系统只是开发Pixhawk的过渡。
Pixhawk是硬件平台,PX4是pixhawk的原生固件,专门为pixhawk开发的。PX4的GitHub代码,PX4的硬件信息
APM(Ardupilot Mega)也是硬件,Ardupilot是APM的固件,所以称ArduPilot固件也叫APM。APM的GitHub代码
Ardupilot由一群爱好者开发维护的,从最早的APM1,APM2开始,后来软件代码不断状大,原来的APM2的硬件不能胜任最新代码,再后来开发者就把Ardupilot代码转移到了Pixhawk平台上,兼容了Pixhawh硬件平台,所以就导致现在Pixhawk上有两套飞控代码的原因,所以在pixhawk硬件平台上可以运行PX4固件(原生固件),也可以运行APM固件。
APM固件程序比较混乱,零散。维护者多,代码风格不太统一,而且是单片机这种调用程序,不好入门。但是成熟稳定,支持硬件多。 PX4固件,在nuttx嵌入式实时操作系统上运行。采用多任务,模块化设计。相对来说方便入门,代码风格比较统一。但是支持硬件少,相比APM固件不太稳定。
标签:drop 高级 完全 mission ebe ike 3d打印 can 包括
原文地址:https://www.cnblogs.com/hellocxz/p/12104923.html