一、开源Ardupilot / APM
APM是在2007年由DIY无人机社区(DIY Drones)推出的飞控系统。也是迄今为止最为成熟的开源自动导航系统,可支持多旋翼、固定翼、直升机和无人驾驶车等无人设备。
APM基于Arduino的开源平台,对多处硬件做出了改进,包括加速度计、陀螺仪和磁力计组合惯性测量单元(IMU)。由于APM良好的可定制性,APM在全球航模爱好者范围内迅速传播开来。通过开源软件Mission Planner,开发者可以配置APM的设置,接收并显示传感器的数据,使用Google map 完成自动驾驶等功能,但是Mission Planner仅支持windows操作系统。
目前,APM飞控已经成为开源飞控成熟的标杆,针对多旋翼 APM飞控支持各种四、六、八轴产品,并且连接外置GPS传感器以后能够增稳,并完成自主起降、自主航线飞行、回家、定高、定点等丰富的飞行模式。APM能够连接外置的超声波传感器和光流传感器,在室内实现定高和定点飞行。
APM系列发展至今,APM2.5和APM2.6已经是ardupilot飞控最终版本,APM给我们带来非常强大的功能,非常的成熟可靠,潜能被充分挖掘出来,功能也非常的丰富。但源于APM系列8位CPU计算与存储的能力已经远远不能够满足未来的运用需求了,APM系列产品的终结也是势在必行。
APM系列支持如下自动导航板:
· PX4 – 一款32位基于ARM的自动导航仪,支持很多高级特性,使用NuttX实时操作系统;
· APM2 – 一款受欢迎的AVR2560 8位自动导航仪;
· APM1(已终止开发) – 一款基于AVR2560的自动导航仪,使用分离式结构。
由于ArduPilot/APM源码基于AP-HAL硬件抽象层编写,使代码能支持更多自动导航板变为可能。
APM开发语言与工具:
用于ArduPilot/APM的主要飞行代码使用C++编写。支持工具使用多语言编写,最常用的是python。目前,主要载具代码编写为“.pde”文件,由Arduino构建系统得来。pde文件是预处理为.cpp文件构建的一部分。pde文件中包含的声明也能提供构建规则,说明需要包含与连接到哪些库。
地面站:
ArduPilot/APM支持多种地面站用于计划与控制飞行。飞行固件使用MAVLink协议,它允许飞机被任何MAVLink兼容设备控制。
· 使用最广泛的地面站就是Mission Planner,使用用于Windows的C#语言编写。Mission Planner的源码可以在github上查看。Mission Planner也能通过 mono运行在Linux与MacOS 上。
· QGroundControl也是地面站的一个选择,使用C++的Qt库编写
· 对于面相命令行与可编脚本地面站,你可以使用 MAVProxy
· 对于android平板,你可以使用ArdroPilot或者 DroidPlanner
其他特征:
主控芯片:AvrAtmega1280/2560
主要传感器:Atmega168/328。双轴陀螺,IMU(单轴陀螺,三轴加速度计,三轴磁力计模块)。气压计,AD芯片。
编译环境:Arduino IDE
开发语言:arduino
开发软件:Arduino IDE界面友好简单,Arduino语言类似于C语言
采用算法:两级PID控制方式,第一级是导航级,第二级是控制级
硬件平台:
APM2.5:板载电子罗盘;
APM2.6:电子罗盘外置和GPS融合了。
优缺点:
优势 |
1. APM使用人数多,资料丰富齐全,特别是经典款APM2.5,上手快 2. 功能完全满足使用 3. apm固件相对PX4成熟 4. 有震动,姿态的日志记录,出现问题有据可查 |
劣势 |
1. 处理器相比F407落后,但是够用 2. 传感器分散,集成度不高 |
二、开源PX4 / PIXHAWK系列
PX4系列:
PIXHAWK是根据飞控设计需求,结合PX4系列飞控发展而来的PX4飞控单块电路板版本, PX4系列最初有两个版本:PX4FMU与PX4IO。
PX4是一个由Lorenz Meier所在的瑞士小组所开发的学校项目,其拥有一个32位处理器,提供更多内存、运用分布处理方式并且包含一个浮点运算协处理器。相比APM,PX4 具有相对于前者10倍以上的CPU性能及其他更多方面的改进,Diydrones和3DRobotics把PX4系统视作他们下一代飞控的基础。
PIXHAWK系列:
由3DR联合APM小组与PX4小组于2014年推出的PIXHAWK飞控是PX4飞控的升级版本,拥有PX4和APM两套固件和相应的地面站软件。该飞控是目前全世界飞控产品中硬件规格最高的产品,也是当前爱好者手中最炙手可热的产品。
PIXHAWK拥有168MHz的运算频率,并突破性地采用了整合硬件浮点运算核心的Cortex-M4的单片机作为主控芯片,内置两套陀螺和加速度计MEMS传感器,互为补充矫正,内置三轴磁场传感器并可以外接一个三轴磁场传感器,同时可外接一主一备两个GPS传感器,在故障时自动切换。
基于其高速运算的核心和浮点算法,PIXHAWK使用最先进的定高算法,可以仅凭气压高度计便将飞行器高度固定在1米以内。它支持目前几乎所有的多旋翼类型,甚至包括三旋翼和H4这样结构不规则的产品。它使飞行器拥有多种飞行模式,支持全自主航线、关键点围绕、鼠标引导、“FollowMe”、对尾飞行等高级的飞行模式,并能够完成自主调参。
PIXHAWK飞控的开放性非常好,几百项参数全部开放给玩家调整,靠基础模式简单调试后亦可飞行。PIXHAWK集成多种电子地图,爱好者们可以根据当地情况进行选择。PIXHAWK被定位为下一代无人机飞控,系统具备的所有特征,均符合未来无人机飞控系统未来发展的基础需求,未来将会有更大的发展空间。
技术规格
处理器
32位 STM32F427 ARM Cortex M4 核心外加 FPU(浮点运算单元)
168 Mhz/256 KB RAM/2 MB 闪存
32位 STM32F103 故障保护协处理器
传感器
Invensense MPU6000 三轴加速度计/陀螺仪
ST Micro L3GD20 16位陀螺仪
ST Micro LSM303D 14位加速度计/磁力计
MS5611 MEAS 气压计
舵机端口7V高压与高电流输出
所有的外围设备输出都有过流保护,所有的输入都有防静电保护
5个UART串口,1个支持大功率,两个有硬件流量控制
Spektrum DSM/DSM2/DSM-X 卫星输入
Futaba SBUS输入(输出正在完善中)
PPM sum信号
RSSI(PWM或者电压)输入
3.3 与 6.6 ADC 输入
尺寸
重量 38g
长 81.5 mm x 宽 50 mm x 高 15.5 mm
Pixhawk的接口分配
PWM,PPM-SUM和SBUS模式下的舵机与电调的连接方法
Pixhawk接口图
* 备注:
上图中针脚1在右边:串口 1 (Telem 1),串口 2 (Telem 2) ,串口 (GPS) 针脚:6 = GND, 5 = RTS, 4 = CTS, 3 = RX, 2 = TX, 1 = 5V。
开源飞控系统在广大飞控爱好者、机构的开发维护下,功能日渐强大,系统趋于完善。而且,开源系统的开发维护都是基于Google Code、GitHub等开放式开发平台,开发者们为了保证远程协作的顺利进行,通常会维护一个详尽具体的说明文档,这也是开源飞控系统一个突出的特点,即整套飞控系统的开发说明文档十分详细,入门教程丰富,非常适合新手学习、了解,或者基于现有飞控系统做二次开发。
PX4、APM等开源飞控凭借完善强大的功能以及相关技术支持,为无人机产品线的开发铺平了道路。大量实践表明:一名电子或者自动化相关专业的硕士研究生甚至本科生发烧友,或者相关专业从业人员,都可以按照相关手册、教程在较短的时间内开发出一台功能齐备的无人机样机,这也是随后出现的井喷现象的一个技术基础。
编辑:黄飞
评论
查看更多