关于MAVLink协会(dronecode公司)和Ardupilot公司相关软件的介绍(收集整理)

MAVLink 协会(dronecode公司)产品:  MAVLink(无载具数据传输协议)、MavSDK(基于mavlink协议的支持多种编程语言的二次开发接口)、qgroundcontrol(地面站)、PX4(飞控固件)

Ardupilot公司产品:             MAVProxy(消息转发器)、Pymavlink(基于python的mavlink开发接口)、 APM Planner(地面站)、MissionPlanner(地面站-包含飞控固件等全套)

==========================MAVLink ===========================

1、MAVLink(官方介绍文档入口)

如何编译ML

MAVLink是一种非常轻量级的消息传输协议, 用于地面控制终端(地面站)与无人机之间 (以及机载无人机组件之间) 进行通信。

Mavlink 遵循现代混合发布-订阅和点对点设计模式: 数据流作为 topics 发送/发布的, 而配置子协议 (如 路径点协议 或 参数协议)是基于重传机制的点对点模式。

消息内容定义于与之关联的xml 文件中。 每个xml文件对应一个特定的MAVLink系统,并为该系统定义了专属的消息集(亦被称之为“语支dialect”)。 大部分 地面站和自动驾驶仪所采用的“通用消息集”定义于 common.xml中 (大多数“语支”均是基于“通用消息集“构建 的:即,大多数“语支”所对应的xml文件里,均包含了common.xml) 。

代码生成器根据这些 XML 消息定义为特定编程语言创建软件库,然后无人机、地面控制站和其他 MAVLink 系统可以使用这些软件库进行通信。生成的库通常是 MIT 许可的,因此可以在任何闭源应用程序中不受限制地使用,而无需发布闭源应用程序的源代码。

Note 基于C封装的MAVLink库,是一个 header-only库, 其针对资源受限系统有限的ram 和闪存,进行了高度优化。 这种库,已经过现场验证, 并部署在许多产品中, 充当不同厂家组件之间的交互性接口。

主要特征

  • 高效性。 MAVLink 1每个数据包只有8个字节的开销, 包括起始标志和数据包丢弃检测。 MAVLink 2只有14个字节的开销 (但它是一个更安全且可扩展的协议)。 因为MAVLink不需要任何额外的帧, 所以它非常适合通信带宽非常有限的应用程序。
  • 可靠性。 自2009年以来, MAVLink一直被用于多种载具、地面站 (和其他节点) 之间的通信,而这些通信信道中,不乏各种挑战性(如高延迟、噪声) 。 同时,Mavlink也具备检测数据包丢失、损坏和数据包身份验证的功能。
  • Many different programming languages can be used, running on numerous microcontrollers/operating systems (including ARM7, ATMega, dsPic, STM32 and Windows, Linux, MacOS, Android and iOS).
  • 单个网络上最多可容纳255个并行系统 (载具、地面站等)。
  • 支持offboard和 onboard通信 (例如,地面站和无人机之间的通信(offboard), 以及无人机自动驾驶仪与启用MAVLink的无人机摄像头之间的通信(onboard))。

MAVLink(Ardupilot介绍文档)

ArduPilot 支持 MAVLink 协议,用于与地面站和配套计算机进行通信。这些页面解释了该接口的详细信息

外部参考

自主任务命令

任务命令存储在飞行控制器的 eeprom 中,并在飞行器切换到自动模式时一一执行。虽然与上面链接的实时 MAVLink 接口没有直接关系,但可用命令是MAVLink MAV_CMD 列表的子集

另请参阅:直升机任务指挥列表

载具参数参考

2、MavSDK

Mavsdk是mavlink主要的API库类。开发者使用Mavsdk来发现和访问载具(系统),并以此对无人机内的信息获取和实行控制(例如遥测任务等)。

MAVSDK是各种编程语言的库集合,用于与无人机、相机或地面系统等MAVLink系统接口。

这些库提供了一个简单的 API,用于管理一辆或多辆载具,提供对载具信息和遥测的编程访问,以及对任务、移动和其他操作的控制。

这些库可以在无人机上的配套计算机上使用,也可以在地面上的地面站或移动设备上使用。

MAVSDK 是跨平台的:Linux、macOS、Windows、Android 和 iOS。

最重要的类是:

  • Mavsdk:发现并连接到车辆(系统)。
  • System:代表联网车辆(例如直升机或垂直起降无人机)。它通过下面列出的类提供对车辆信息和控制的访问。
  • Info:有关系统硬件和/或软件的基本版本信息。
  • Telemetry:获取车辆遥测和状态信息并设置遥测更新率。
  • Action:简单的无人机动作,包括武装、起飞和着陆。
  • Mission:航点任务创建和上传/下载。任务是从MissionItem对象创建的。
  • Offboard:使用速度命令控制无人机。
  • Geofence:指定地理围栏。
  • Gimbal:控制云台。
  • Camera:控制相机。
  • FollowMe:无人机跟踪 SDK 提供的位置。
  • Calibration:校准传感器(例如:陀螺仪、加速度计和磁力计)。
  • LogFiles:从车辆下载日志文件。

以下 API 提供对底层 MAVLink 消息/类型的更直接访问。它们只能在上述主要 API 缺少功能的情况下使用。

 

3、qgroundcontrol

QGroundControl为 PX4 或 ArduPilot 驱动的车辆提供完整的飞行控制和车辆设置。它为初学者提供简单直接的使用,同时仍然为有经验的用户提供高端功能支持。

主要特征:

  • ArduPilot 和 PX4 Pro 动力车辆的完整设置/配置。
  • 对运行 PX4 和 ArduPilot(或使用 MAVLink 协议进行通信的任何其他自动驾驶仪)的车辆的飞行支持。
  • 自主飞行的任务规划。
  • 飞行地图显示显示车辆位置、飞行轨迹、航路点和车辆仪表。
  • 带有仪器显示覆盖的视频流。
  • 支持管理多辆车。
  • QGC 可在 Windows、OS X、Linux 平台、iOS 和 Android 设备上运行。

 

  软件使用指南

 开发者指南

 

4、PX4

PX4 是专业的自动驾驶固件系统

PX4为从竞速和物流无人机到地面车辆和潜水艇的各种载具提供动力

 ============================Ardupilot============================

1、MAVProxy 

MAVProxy和MAVExplorer软件(下载):

 

开发入门

用于基于 MAVLink 的系统的无人机地面站软件包

MAVProxy 是一款适用于无人机的功能齐全的 GCS,设计为简约、便携且可扩展的 GCS,适用于任何支持 MAVLink 协议的自主系统(例如使用 ArduPilot 的系统)。MAVProxy 是一款功能强大的基于命令行的“开发者”地面站软件。它可以通过附加模块进行扩展,或与另一个地面站(例如 Mission Planner、APM Planner 2、QGroundControl 等)配合使用,以提供图形用户界面。

它具有许多关键功能,包括能够通过 UDP 通过网络将无人机的消息转发到其他设备上的多个其他地面站软件。

开发人员(尤其是 SITL)通常使用 MAVProxy 来测试新版本。

MAVProxy 首先由CanberraUAV开发,旨在支持与 ArduPilot 一起使用伴随计算和多个数据链路。它已发展成为 ArduPilot 生态系统中最通用的工具之一,用户现在在其他 GCS 工具中看到的许多功能都可以追溯到 MAVProxy。

特征

  • 它是一个基于命令行、控制台的应用程序。MAVProxy 中包含一些插件来提供基本的 GUI。

  • 可以联网并在任意数量的计算机上运行。

  • 它是便携式的;它应该在任何具有 python、pyserial 和select()函数调用的 POSIX 操作系统上运行,这意味着 Linux、OS X、Windows 等。

  • 轻量级设计意味着它可以轻松地在小型上网本上运行。

  • 它支持可加载模块,并具有支持控制台、移动地图、操纵杆、天线跟踪器等的模块

  • 命令的 Tab 补全。

截图

_images/mavproxy_linux.jpg

MAVProxy 在 Ubuntu 下运行

_images/mavproxy_windows.jpg

在 Windows 10 下运行的 MAVProxy

 

2、Pymavlink

这是 MAVLink 协议的 Python 实现。它包括一个源代码生成器 (generator/mavgen.py),也可以为其他编程语言创建 MAVLink 协议实现。还包含用于分析飞行日志的工具。

 

3、APM Planner 2

APM Planner 2.0 是一款开源地面站应用程序,适用于 基于MAVlink 的自动驾驶仪,

包括可在 Windows、Mac OSX 和 Linux 上运行的 APM 和 PX4/Pixhawk。

支持功能:

1.配置和校准 ArduPilot 或 PX4 自动驾驶仪以实现自主车辆控制。

2.使用 GPS 航路点和控制事件规划任务。

3.连接 3DR 无线电以查看实时数据并在飞行中启动命令。

安装固件

 链接飞控

 通过mavlink与飞行器通信

 校准:框架类型(针对旋翼机)、加速度计、罗盘、收音机、飞行模式

 APM Planner 2.0是下一代地面控制站。它是Mission Planner和 QGround Control的后代,结合了 Mission Planner 的简单用户界面和 QGround Control 的跨平台功能。

 

缩写

ACC

Accelerometer

加速度计

AHRS

Attitude Heading Reference System

姿态航向参考系统

ALT

Altitude

高度

ATC

Attitude Control

姿态控制

AP

ArduPilot

ArduPilot

APM

ArduPilot autopilot

ArduPilot 自动驾驶仪

ARSPD

AirSpeed

空速

ATT

Attitude

姿态

BATT

Battery

电池

CTUN

Control Tuning

控制调谐

DCM

Discrete Cosine Matrix (first generation position/attitude estimator)

离散余弦矩阵(第一代位置/姿态估计器)

EKF

Extended Kalman Filter (a predictive filter subsystem)

扩展卡尔曼滤波器(预测滤波器子系统)

EK2/3

EKF2/EKF3 (ArduPilot has two generations of EKF based position/attitude estimators in the firmware)

EKF2/EKF3(ArduPilot 固件中有两代基于 EKF 的位置/姿态估计器)

GCS

Ground Control Station

地面控制站

GPS

Global Positioning System

全球定位系统

GYRO

Gyroscope

陀螺仪

IMU

Inertial Measurement Unit

惯性测量单元

INS

Inertial Navigation System

惯性导航系统

PCS

Position Control System

位置控制系统

PM

Power Module

电源模块

RC

Radio Control

无线电控制

TECS

Total Energy Control System (altitude/speed controller for Plane)

总能量控制系统(飞机高度/速度控制器)

WP

Waypoint

航点

 

4、MissionPlanner

Mission Planner 是 ArduPilot 开源自动驾驶仪项目的全功能地面站应用程序

如何编译MP

 

Mission Planner 是飞机、直升机和其他无人载具的地面控制站。它仅与 Windows 兼容。Mission Planner 可用作自动驾驶车辆的配置实用程序或动态控制补充。您可以使用 Mission Planner 执行以下操作:

  • 固件(软件)加载到控制载具的自动驾驶板(即 Pixhawk 系列)中。

  • 设置、配置和调整您的载具以获得最佳性能。

  • 使用 Google 地图/Bing/openstreet地图/自定义 WMS,点击式路径点/围栏/集结点输入。即可规划、保存自主任务并将其加载到自动驾驶仪中。

  • 下载任务日志文件并分析它们

  • 与电脑上的飞行模拟器连接,创建完整的软件在环的(SITL) 无人机模拟器。

  • 为所有ArduPilot载具运行多种车架(飞行旋翼框架)类型的 SITL 模拟。

  • 使用适当的遥测硬件可以:

    • 在运行时监控车辆的状态。

    • 记录遥测日志,其中包含有关机载自动驾驶仪日志的更多信息。

    • 查看并分析遥测日志。以 FPV(第一人称视角)操作您的车辆

 

连接autopilot 与电脑

 

安装固件

 

连接搭载固件的载具

 

 

 

任务规划

 

 

posted @ 2024-05-11 15:04  Mr.石  阅读(329)  评论(0编辑  收藏  举报