ArduPilot固件编译与烧录全程指南

📚 共计 30 章节
01
ArduPilot概述
项目历史、硬件平台(Pixhawk/Cube/Pix32)、固件类型(ArduCopter/Plane/Rover)及选型建议
选型生态
02
开发环境搭建 (Linux)
Ubuntu 20.04/22.04安装、国内源、Git、编译工具链(gcc-arm-none-eabi, python3-pip)
环境Linux
03
源码获取与目录结构
Git克隆官方仓库、顶层目录(libraries/ArduCopter/Tools)、切换稳定分支
Git结构
04
编译环境配置 (一)
安装Python依赖(future/pyserial/empy)、配置Python工具链、环境验证
Python依赖
05
编译环境配置 (二)
MAVLink生成器、子模块(git submodule update --init)、解决依赖缺失
MAVLink子模块
06
首次编译 (ArduCopter)
waf编译系统、选择目标板(--board Pixhawk1)、编译命令与输出日志
waf首次
07
编译参数详解
waf的configure/build/clean、--board板型列表、--debug与--release区别
参数模式
08
编译常见错误解决
Python版本冲突、缺少头文件、链接错误、内存溢出、权限问题
排错经验
09
固件输出文件
.elf/.hex/.bin/.px4格式、固件大小检查、生成文件存放路径
格式输出
10
固件烧录工具介绍
Mission Planner、QGroundControl、MAVProxy、dfu-util、openocd
工具烧录
11
使用Mission Planner烧录
下载安装、连接飞控(USB/数传)、COM口与波特率、加载固件并烧录
MP图形化
12
使用QGroundControl烧录
QGC安装、固件烧录界面、板型与版本选择、在线/离线模式
QGC跨平台
13
命令行烧录 (dfu-util)
进入DFU模式、dfu-util安装、烧录命令格式、验证结果
命令行DFU
14
命令行烧录 (openocd)
安装openocd、JTAG/SWD接口、烧录脚本、调试与烧录结合
openocdJTAG
15
Bootloader更新
Bootloader作用、更新方法(MP/QGC/命令行)、损坏恢复
Bootloader底层
16
首次上电与验证
飞控上电检查、LED状态灯、传感器校准提示、地面站验证固件版本
上电验证
17
传感器校准
加速度计、陀螺仪、磁力计、水平校准、气压计
传感器校准
18
RC遥控器校准
接收机绑定、通道映射、行程校准、失控保护设置
遥控器RC
19
电机与电调校准
电调行程校准、电机顺序测试、螺旋桨安装方向
电机电调
20
编译自定义参数
修改default.parm、添加自定义参数、编译时嵌入参数
参数自定义
21
添加自定义硬件驱动
AP_HAL架构、编写GPIO驱动、注册到编译系统
驱动HAL
22
修改飞控算法 (一)
定位ArduCopter主循环、修改姿态PID、重新编译测试
算法PID
23
修改飞控算法 (二)
自定义飞行模式框架、注册新模式、编译验证
模式扩展
24
SITL仿真测试
安装SITL环境、启动仿真、连接地面站、测试固件修改
SITL仿真
25
SITL高级用法
多机仿真、硬件在环(HITL)、场景设置、自动化测试脚本
HITL自动化
26
固件版本管理
Git分支管理、补丁文件、合并上游更新、解决冲突
Git版本
27
持续集成与自动化编译
GitHub Actions自动编译、编译矩阵、生成发布固件
CIActions
28
固件签名与安全
签名原理、生成密钥、安全启动、完整性验证
安全签名
29
固件升级策略
OTA升级、差分升级、回滚机制、失败处理
OTA升级
30
综合实战:从源码到实飞
需求分析→代码修改→编译→烧录→校准→试飞→调参 完整流程
实战全流程