概述
Mission Planner 是一款地面控制站 (GCS) 应用程序,主要为使用 ArduPilot 开源自动驾驶仪系统的车辆设计。它提供了一个全面的界面,用于任务规划、车辆配置、实时监控以及对无人机、飞机、直升机、探测车、船只和潜艇等自动驾驶车辆的控制。
本文档概述了 Mission Planner 的软件架构、核心组件及其交互方式。它解释了 Mission Planner 中的关键系统,并可作为理解代码库的起点。
系统目的和功能
任务规划器是人类操作员和自动驾驶汽车之间的主要接口。其主要功能包括:
- 实时飞行监控和遥测可视化
- 任务规划和航点管理
- 车辆配置及参数调校
- 固件更新和设备校准
- 地图可视化和地理空间数据管理
- 飞行日志分析和可视化
- 通过各种通信方式连接车辆
核心架构
下图展示了 Mission Planner 的高层架构:
数据流架构
下图说明了数据如何流经任务规划器系统:
关键组件
MainV2 - 应用程序核心
类MainV2
是应用程序的核心。它:
- 管理主要应用程序生命周期
- 处理与车辆的通信
MainSwitcher
通过控件管理多个视图- 处理来自用户的输入
- 维护应用程序状态
通信系统-MAVLinkInterface
MAVLinkInterface 负责处理所有使用 MAVLink 协议的联网飞行器的通信。它:
- 管理自动驾驶仪的串行连接
- 处理传入的 MAVLink 消息
- 向车辆发送命令
- 管理多个车辆连接
- 跟踪车辆状态信息
用户界面 - 航班数据视图
飞行数据视图是监控飞行器状态的主要界面。它包括:
- 平视显示器 (HUD),用于姿态可视化
- 地图显示位置追踪
- 各种格式的遥测数据
- 车辆控制接口
- 状态信息选项卡
用户界面 - 飞行计划器视图
飞行计划器视图用于创建、编辑和管理自主任务。它包括:
- 用于放置航点的交互式地图
- 任务详细信息的命令列表编辑器
- 先进的任务规划工具
- 地理围栏和集结点编辑器
飞机状态管理
任务规划器通过该类跟踪并维护有关联网飞行器的综合信息CurrentState
,该类存储的遥测数据包括:
类别 | 数据点 |
---|---|
姿态 | 横滚、俯仰、偏航 |
位置 | 纬度、经度、海拔 |
移动 | 地速、空速、垂直速度 |
状态 | 武装状态、飞行模式、电池电量 |
传感器 | GPS、指南针、加速度计状态 |
系统 | CPU使用率、通信链路质量 |
该状态通过来自车辆的 MAVLink 消息实时更新,使其成为所有飞行器信息的中央存储库。