APM概述

最近參與一個項目,在項目中需要使用APM飛控,學深入理解APM飛控的特點,展開學習。項目平臺爲固定翼飛機。
ArduPilot/APM是一款開源自動導航系統,支持多旋翼飛行器,傳統直升機,固定翼飛機與傳統直升機。
用於ArduPilot/APM的主要飛行代碼使用C++編寫。目前,主要載具代碼編寫爲“.pde”文件,由Arduino構建系統得來。

1、支持的硬件平臺

目前ArduPilot/ APM支持以下硬件平臺。
Pixhawk - 次世代PX4,與更多的內存,提高了傳感器和更容易使用的設計。
PX4FMU - 基於一個32位的ARM自動駕駛儀與許多先進的功能,使用NuttX實時操作系統。
VRBrain。
FlyMaple。
BeagleBone黑色 - 在開發,測試平臺在Linux上運行ArduPilot(僅開發版)。
APM2 - 一種流行的AVR2560 8位自動駕駛儀。
APM1(停產) - 一個基於AVR2560獨立傳感器板(又名“oilpan”)
所述ArduPilot/ APM源代碼被寫入該AP-HAL硬件抽象層的頂部上,使得端口代碼能夠廣泛兼容不同的硬件平臺。

2.軟件工程目錄

該ArduPilot系統是由在下面列出的幾個不同的項目。
APM:Plane – 固定翼。
APM:Copter – 多旋翼和直升機。
APM:Rover – 地面車輛。
Mission Planner – 用C#編寫的Windows最常用的地面站也通過mono運行在Linux和MacOS。
APM Planner 2.0 – 用C++使用Qt庫專門爲APM寫的是一個地面站。
MAVProxy – 命令行導向和編寫腳本的地面站(主要用於開發)。
MinimOSD – 在屏上顯示飛行數據。
AndroPilot – android地面站。
DroneAPI – 用於無人機協處理器和Web應用程序開發人員API。
DroidPlanner2 – android地面站。
QGroundControl –用C ++編寫使用Qt庫做的一個替代地面站。
PX4 – PX4FMU板的支持代碼。
MAVLink – 爲地面站,飛行控制器和一些外設包括OSD之間的通信的協議。

     本人主要學習內容包括
     APM:Plane – 固定翼;
     APM Planner 2.0
     PX4 – PX4FMU板的支持代碼
     MAVLink – 爲地面站,飛行控制器和一些外設包括OSD之間     的通信的協議。

ArduPilot 代碼分爲5個主要部分,基本結構分類如下:
· vehicle directories
· AP_HAL
· libraries
· tools directories
· external support code
(1)vehicle directories模型類型
當前共有4種模型:ArduPlane, ArduCopter, APMrover2 and AntennaTracker。都是.pde文件,就是爲了兼容arduino平臺,以後可能會放棄。
固定翼對應ArduPlane模型。
(2)AP_HAL硬件抽象層
硬件抽象層,使得在不同硬件平臺上的移植變得簡單。
其中AP_HAL目錄定義了一個通用的接口。其他的目錄AP_HAL_XXX針對不同硬件平臺進行詳細的定義。例如AP_HAL_AVR目錄對於AVR平臺,AP_HAL_PX4對應PX4平臺,AP_HAL_Linux對應Linux平臺。
(3)tools directories工具目錄
主要提供支持。For examples, tools/autotest provides the autotest infrastructure behind the autotest.diydrones.com site and tools/Replay provides our log replay utility.
(4)external support code外部支持代碼
對於其他平臺,需要外部支持代碼。例如Pixhawk、PX4的支持代碼如下:
· PX4NuttX – 板載實時系統。the core NuttX RTOS used on PX4 boards
· PX4Firmware – PX4固件。the base PX4 middleware and drivers used on PX4 boards
· uavcan – 飛行器CAN通信協議。the uavcan CANBUS implementation used in ArduPilot
· mavlink – Mavlink通信協議。the mavlink protocol and code generator

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章