01
ArduPilot与任务规划器概述
ArduPilot历史、任务规划器角色、二次开发价值与场景
概念背景
02
开发环境搭建 (Windows)
VS2022 · Git · 克隆ArduPilot/Mission Planner源码
环境Windows
03
开发环境搭建 (Linux/Ubuntu)
Mono · .NET SDK · 环境变量 · 编译Mission Planner
环境Linux
04
Mission Planner源码结构分析
解决方案文件 · 核心项目 · 插件机制初探
架构源码
05
C#基础回顾 (面向Mission Planner)
委托与事件 · async/await · WinForms控件生命周期
C#WinForms
06
MAVLink协议深度解析
v1.0 vs v2.0 · HEARTBEAT/GPS/ATTITUDE · 解析流程
协议MAVLink
07
Mission Planner通信层
SerialPort/UDPClient · MAVLink接口封装 · 缓冲区管理
通信串口
08
第一个插件:Hello World
创建插件项目 · 实现Plugin接口 · 注册与调试
插件入门
09
UI定制:添加自定义Tab页
WinForms Designer · TabPage创建 · 控件绑定与刷新
UITab
10
数据可视化:实时绘制飞行数据
ZedGraph控件 · 绑定MAVLink流 · 动态曲线更新
图表实时
11
地图集成:GMap.NET使用
离线地图 · 自定义标记 · 地图点击事件处理
地图GMap
12
航点管理:读取与写入航点
WPL文件解析 · MAVLink上传 · 航点校验逻辑
航点任务
13
参数读写:读取飞控参数
PARAM_REQUEST_LIST · 缓存与批量写入 · 文件导入导出
参数飞控
14
日志分析:解析飞行日志
BIN/LOG解析 · LogAnalyzer · 姿态/GPS/电池报告
日志分析
15
模拟器集成:连接SITL
启动ArduPilot SITL · UDP桥接 · 控制虚拟无人机
模拟SITL
16
高级UI:自定义控件开发
继承UserControl · 双缓冲绘图 · 鼠标拖拽/缩放
控件绘图
17
多无人机支持:管理多个连接
连接池 · 切换焦点 · 多窗口状态显示
多机并发
18
地理围栏功能:实现地理围栏
多边形绘制 · 点与多边形关系 · 越界告警
围栏安全
19
任务命令扩展:自定义MAVLink命令
新命令ID · 生成与发送 · 飞控响应处理
命令扩展
20
图像与视频流:集成摄像头画面
AForge.NET / OpenCVSharp · 视频解码 · OSD叠加
图像视频
21
脚本化与自动化:Python脚本集成
IronPython调用API · 自动化测试 · 批量任务生成
脚本Python
22
数据持久化:SQLite数据库应用
存储飞行记录 · 历史查询 · CSV导出
数据库SQLite
23
国际化与多语言
资源文件(.resx) · 动态切换语言 · 翻译工具链
i18n多语言
24
性能优化
UI线程分离 · 控件虚拟化 · GC优化 · Profile工具
性能优化
25
打包与部署
ClickOnce · Inno Setup · 依赖项处理
部署安装
26
版本控制与协作
Git分支策略 · Pull Request · GitHub Actions CI
GitCI
27
安全与权限
串口权限 · UDP绑定 · 防恶意插件 · 代码签名
安全权限
28
社区与生态
ArduPilot论坛 · Discord · 贡献指南 · GPLv3
社区开源
29
实战项目:自定义地面站面板
需求分析 · UI设计 · 编码测试 · 用户反馈迭代
实战项目
30
课程总结与未来展望
核心知识点 · PX4/ROS2 · 职业发展路径
总结进阶