01
课程导论与地面站架构概览
无人机地面站定义、主流软件对比、核心模块与技术栈选型 (Python+PyQt5+MAVLink)
概览架构
02
开发环境搭建
Python 3.10+、PyQt5、pymavlink、pyserial、Git 与 IDE 推荐
环境工具
03
PyQt5 基础与第一个窗口
信号与槽、事件循环、QMainWindow、QApplication 与 QWidget
PyQt5窗口
04
地面站 UI 布局设计
QVBoxLayout / QGridLayout、QTabWidget、QDockWidget 主界面原型
布局UI
05
MAVLink 协议深度解析
v1.0 vs v2.0、消息帧结构、HEARTBEAT/GPS_RAW_INT 等编码解码
协议MAVLink
06
串口通信与数据收发
pyserial 枚举/打开串口、波特率、串口调试助手、粘包处理
串口通信
07
pymavlink 库实战
创建 MAVLink 连接、HEARTBEAT 解析、COMMAND_LONG 指令、回调处理
pymavlink实战
08
地面站通信模块封装
CommunicationManager、串口/UDP 双模式、订阅-发布、自动重连
封装模块
09
实时数据显示仪表盘
QLCDNumber、QProgressBar、QTableWidget、刷新频率与防卡顿
仪表盘实时
10
姿态数据显示(人工地平仪)
QPainter 绘制地平仪、坐标系变换、实时动画与刻度标签
姿态地平仪
11
地图组件集成(一)
离线地图方案、QWebEngineView+Leaflet.js、平移缩放、无人机标记
地图Leaflet
12
地图组件集成(二)
航迹绘制(Polyline)、动态更新、航点标记与右键菜单、截图保存
航迹交互
13
航点规划系统(一)
航点数据结构、QTableWidget 编辑、添加/删除/插入/排序
航点规划
14
航点规划系统(二)
地图点击添加、拖拽调整、序号连线、导出 .waypoints 文件
交互导出
15
航点任务上传与执行
MISSION 协议上传、读取任务列表、起飞/降落/返航、进度监控
任务MAVLink
16
遥控器摇杆数据可视化
RC_CHANNELS 解析、QSlider/QDial 模拟、二维坐标图、校准提示
摇杆可视化
17
飞行日志解析与回放
.bin/.tlog 解析、Matplotlib 嵌入、回放控制(播放/暂停/调速)
日志回放
18
参数管理系统
PARAM_VALUE/PARAM_SET、搜索过滤、变更历史与恢复
参数管理
19
视频流接入与显示
OpenCV 读取、QLabel+QPixmap 显示、录制截图、延迟处理
视频OpenCV
20
多无人机支持
UAV class、多机连接与数据隔离、切换控制、地图多机显示
多机架构
21
模拟器联调(SITL)
ArduPilot SITL 安装、UDP 连接、模拟飞行与故障注入测试
SITL模拟
22
地面站主题与国际化
QSS 定制皮肤、中英文切换(QTranslator)、用户偏好(QSettings)
主题i18n
23
数据持久化与数据库
SQLite 存储、Pandas 分析、导出 CSV/Excel 报告
数据库持久化
24
自定义 MAVLink 消息
XML 定义、生成 Python 代码、收发自定义消息
扩展MAVLink
25
地面站安全机制
心跳超时报警、紧急停止(Kill Switch)、TLS/SSL、双重确认弹窗
安全报警
26
插件系统架构设计
插件接口 AbstractPlugin、importlib 加载、API 与示例(语音播报)
插件架构
27
地面站性能优化
QThread 耗时任务、QGraphicsView 渲染、内存泄漏、pyinstaller 打包
优化打包
28
地面站自动化测试
pytest 单元测试、QTest UI 测试、模拟飞控集成、GitHub Actions
测试CI
29
项目实战:构建完整地面站
整合模块、用户登录与权限、项目文档、部署发布
实战完整
30
课程总结与进阶方向
全流程回顾、QGC 源码分析、Web地面站、AI辅助、社区资源
总结进阶