概念与开发无人系统运动 · #bezpiLOTa · KAIROS DRONE AGENT文档
#bezpiLOTa→入门→工作原理
入门 / 架构

飞控执行严格实时的飞行控制回路。伴随 SBC 负责视频、路由、API 和外部通信。Mission Control 选择 USB 直连、LAN 路径或远程中继,同时保持职责分离。

概念

端到端流程被描述为目标架构;在 KairOS 完成测量前,延迟和频率仍为设计目标。

KairOS 仓库 ↗
03连接模式
1 Hz伴随设备心跳
2 Hz目标云端遥测
MAVLINK主要协议
01
整体视图

两台机载计算机,各司其职

飞控管理电机、稳定、GPS 和传感器。伴随计算机——Raspberry Pi、Radxa、Jetson 或其他 Linux SBC——运行 KairOS Drone Agent,并不替代飞控,而是增加视频、遥测中继、云连接、无线电、REST API 和扩展。

地面 Mission Control 在浏览器中运行。它可通过 WebSerial 直连飞控,通过 LAN 访问 Drone Agent,或通过 MQTT/Convex 和 WebRTC 信令连接远程中继。Ground Agent 用于 WFB-ng 场景,将无线电接收转化为易用的本地 Web 链路。

02
数据流

遥测、指令与视频的完整循环

01

飞控 → 代理

MAVLink UART 通常使用 115200–921600 波特;代理等待心跳并识别固件。

02

代理 → 本地使用方

路由器将原始 MAVLink 分发至 IPC 套接字、WebSocket、云服务和健康状态。

03

代理 → 云端

目标链路通过 HTTP/MQTT 路径发布约 2 Hz 遥测和状态。

04

相机 → 浏览器

V4L2 采集经 H.264 编码、MediaMTX/RTSP,进入所选 WHEP、WebRTC 或 WFB-ng 传输。

05

GCS → 飞控

解锁、模式、任务等指令沿同一所选路径返回;飞控执行解锁前规则。

06

ACK → UI

指令确认和新的心跳/状态返回后,UI 才更新状态。

03
三种连接模式

USB 直连、局域网和远程 P2P

模式传输使用时机目标参考值
USB 直连WebSerial → 飞控,无需代理台架、配置、校准、固件设计目标 <10 ms
LAN 直连REST :8080, MAVLink WS :8765, WHEP :8889室内、近距离、开发、现场 LAN目标:视频 50–150 ms;遥测 <100 ms
远程 P2P4G/互联网、MQTT SDP 信令、WebRTC、Convex远程观察与第二路径目标:视频 100–300 ms;遥测 2–5 Hz

自动传输应先用约四秒寻找 LAN 路径,再转入约十四秒窗口的 P2P 信令。这些均为设计时间间隔,取决于网络,不构成 KairOS SLA。

05
视频管线

从 V4L2 采集到原生 H.264 播放

01

采集

通过 V4L2 打开 USB UVC 或 MIPI CSI;启动前检查可用格式和分辨率。

02

编码

ffmpeg 使用 H.264 High Profile、Level 4.1、yuv420p 和低延迟标志;存在硬件编码器时优先选择。

03

发布

编码流发布到 MediaMTX/RTSP,作为后续传输的源。

04

LAN

WHEP 直接向本地浏览器提供 WebRTC。

05

远程

MQTT 传递 SDP 信令,随后媒体通过 P2P WebRTC,或必要时经中继传输。

06

无线电

wfb_tx 通过 WFB-ng 发送 H.264;Ground Agent 接收并在本地重新发布。

nobuffer、low_delay 和较小探测缓冲可缩短队列,但实际延迟由采集、编码器、码率、FEC、无线电、网络和浏览器解码共同决定。KairOS 将按具体配置公布测量结果,而非单一通用数字。

H.264 视频流驾驶舱:航向、速度、高度、GPS、电池、小地图、录制指示和飞行指令。
界面 / 视觉示例操作员界面上的视频流

相机画面叠加 HUD、小地图、飞行模式和录制指示。界面单独标注 H.264 格式。

06
云端中继

MQTT 负责实时通信,Convex 负责状态和指令队列

目标 KairOS Agent 以约 2 Hz 向 MQTT 发布遥测。MQTT-to-Convex 桥接以每设备约三秒去抖聚合状态,浏览器通过响应式查询接收。指令写入 Convex,代理轮询取得待处理项,将其转换为 MAVLink 并返回 ACK。

text远程数据路径
Telemetry: FC → Agent → MQTT → bridge → Convex → Mission Control
Commands: Mission Control → Convex queue → Agent poll → MAVLink → FC
Video: Camera → Agent → MQTT SDP → P2P WebRTC → Browser
07
Ground Agent 角色

现场节点将无线电接收转换为本地接口

客户端路径
笔记本Wi-Fi AP、以太网或 USB CDC-NCM 网络共享
手机/平板同一局域网中的浏览器或 KairOS Android 路线
现场显示器HDMI + Chromium 自助终端
Mission Control包含视频/遥测源的地面站配置

配置字面值为 ground-station。它与 Drone Agent 使用同一代码库,但启用的服务不同:接收替代机载编码,AP/网络共享/自助终端替代以飞控为中心的接入流程。

08
Mission Control 状态

状态存储区分飞行器、遥测、任务和传输

状态存储职责
drone-manager节点、连接路径和当前飞行器
telemetry-store实时状态和 300 样本环形缓冲区
mission-store航点、模式、验证、上传状态
video-store数据源、传输、播放和错误
settings-storeIndexedDB 持久化和迁移
ground-station-store接收器、中继路径、数据源和现场 IO
六个代理的机队概览:包含视频、遥测和资源的卡片,以及在线、过期、离线筛选器。
界面 / 视觉示例机队概览中的单节点状态

每个代理拥有独立视频、遥测和资源指标。筛选器及状态说明为何必须区分节点可用性与数据新鲜度。

09
解锁时会发生什么

解锁是经过确认的链路,不是本地开关

01

操作员意图

Mission Control 在明确确认后调用 protocol.arm()。

02

协议

创建 MAV_CMD_COMPONENT_ARM_DISARM,即指令 #400。

03

传输

帧通过 WebSocket/LAN 或 Convex/云路径到达代理。

04

串口

代理将指令转发给飞控,不代替飞控仲裁解锁前检查。

05

飞控验证

固件检查传感器、GPS、电池、安全开关、EKF 和已配置失控保护。

06

状态确认

HEARTBEAT base_mode 位 7 和 ACK 经 IPC/MQTT 返回;UI 仅在确认后显示 ARMED。