本文档涵盖 QGroundControl 中的核心飞行器表示和多飞行器管理系统。它解释了如何在应用程序中对单个飞行器进行建模和管理,以及如何协调多飞行器。有关任务规划和飞行模式的信息,请参阅任务规划系统。有关通信链路和协议的详细信息,请参阅核心架构。
目的和架构概述
车辆类别和多车辆管理系统为 QGroundControl 中无人机、地面车辆及其他自主系统的表示和控制奠定了基础。该系统以车辆类别为中心Vehicle,封装了所有特定于车辆的状态、功能和通信,同时MultiVehicleManager协调多个车辆实例并管理主动车辆的选择。
核心组件架构

车型内部结构
该类Vehicle作为单个自动驾驶汽车的中心表示,继承自VehicleFactGroup提供对车辆遥测和状态数据的结构化访问。
车辆类组件图

车辆主要特性和状态
该类Vehicle公开了许多用于 QML 绑定和状态管理的属性:
| 房产类别 | 关键属性 | 目的 |
|---|---|---|
| 身份 | id,,firmwareTypevehicleType | 车辆识别 |
| 状态 | armed,,,flyinglandingguidedMode | 飞行状态追踪 |
| 位置 | coordinate,,homePositionarmedPosition | 位置管理 |
| 沟通 | messagesReceived,,messagesSentmessagesLost | 链路健康监控 |
| 功能 | flightModes,,guidedModeSupportedorbitModeSupported | 功能可用性 |
资料来源:src/车辆/车辆.h136-227 src/车辆/车辆.h254-286
多车辆管理
单例MultiVehicleManager协调多个车辆实例,提供统一的车辆选择和管理接口。
多车经理职责

车辆发现和创建过程
当收到 MAVLink 心跳消息时,飞行器发现过程开始:

车辆生命周期管理
车辆初始化序列
车辆初始化遵循结构化状态机方法:

车辆删除流程
当所有通信链路丢失时,车辆将被删除:

沟通管理
车辆链接管理
每辆车都有自己的VehicleLinkManager处理通信链路和 MAVLink 消息路由的装置:
MAVLink 消息处理
飞行器通过结构化管道处理 MAVLink 消息:
固件插件集成
车辆系统与固件插件架构紧密集成,以处理特定于车辆的行为和功能。
固件插件关系
UI 集成和 QML 绑定
车辆系统公开了用于用户界面绑定和交互的广泛 QML 属性。
QML 属性架构
车辆状态绑定
关键车辆属性通过自动更改通知公开给 QML 绑定:
| 财产 | 类型 | 目的 | 信号 |
|---|---|---|---|
armed | 布尔值 | 车辆防抱死状态 | armedChanged |
flying | 布尔值 | 飞行状态 | flyingChanged |
coordinate | QGeoCoordinate | 当前位置 | coordinateChanged |
flightMode | QString | 当前飞行模式 | flightModeChanged |
guidedModeSupported | 布尔值 | 导模能力 | 持续的 |
messagesSent | 单位 | 沟通统计数据 | messagesSentChanged |
资料来源:src/车辆/车辆.h136-227
这个综合车辆管理系统为 QGroundControl 中的所有车辆交互提供了基础,从最初的发现到持续的操作和控制。
6675

被折叠的 条评论
为什么被折叠?



