ArduPilot 自定义飞控模式开发实战
📚 共计 30 章节
01
ArduPilot概述与环境搭建
ArduPilot简介、源码获取、Linux开发环境搭建、编译第一个固件。
入门
环境
02
ArduPilot代码架构解析
代码目录结构、核心库(AP_HAL、AP_Math等)、任务调度器(Scheduler)工作机制。
架构
核心
03
飞行模式基础概念
模式的定义、模式切换逻辑、模式与任务(Mission)的关系。
概念
模式
04
自定义模式框架搭建
创建新的模式类、继承AC_Mode基类、注册模式到模式管理器。
框架
开发
05
模式初始化与退出
init()函数实现、exit()函数实现、状态机设计。
状态机
生命周期
06
模式主循环逻辑
run()函数实现、控制频率设定、与姿态控制器的交互。
主循环
控制
07
用户控制输入处理
遥控器通道映射、get_pilot_input()函数、摇杆值归一化。
遥控器
输入
08
位置与速度控制基础
位置控制器(AC_PosControl)入门、速度控制器(AC_VelControl)入门。
位置
速度
09
姿态控制基础
姿态控制器(AC_AttitudeControl)入门、角度与角速率控制。
姿态
控制
10
自定义模式中的参数系统
添加模式专属参数、参数定义与注册、参数动态调整。
参数
调参
11
传感器数据融合
读取GPS、IMU、气压计数据、EKF状态估计简介。
传感器
EKF
12
避障功能集成
使用AP_Proximity库、集成激光雷达或超声波传感器、避障逻辑编写。
避障
传感器
13
光流与视觉定位
光流传感器数据读取、视觉里程计集成、室内定位模式实现。
视觉
光流
14
自定义模式中的任务支持
任务指令解析、任务执行逻辑、任务中断与恢复。
任务
Mission
15
高级控制算法
LQR控制器实现、模型预测控制(MPC)入门、在自定义模式中应用。
LQR
MPC
16
自定义模式中的日志系统
添加自定义日志消息、使用DataFlash库、日志分析与调试。
日志
调试
17
地面站通信与MAVLink
MAVLink消息定义、自定义消息发送与接收、QGroundControl集成。
MAVLink
地面站
18
自定义模式中的安全机制
地理围栏(Fence)集成、电池低电量保护、遥控器信号丢失处理。
安全
围栏
19
多旋翼模式开发实战
悬停模式、定点模式、跟随模式。
多旋翼
实战
20
固定翼模式开发实战
巡航模式、自动降落模式、盘旋模式。
固定翼
自动
21
无人车模式开发实战
阿克曼转向控制、差速转向控制、路径跟踪。
无人车
转向
22
无人船模式开发实战
水面航行控制、航点跟踪、避障。
无人船
水面
23
自定义模式中的串口设备通信
串口驱动编写、与外部设备(如云台、机械臂)通信。
串口
外设
24
自定义模式中的I2C/SPI设备驱动
I2C设备驱动编写、SPI设备驱动编写、传感器融合。
I2C
SPI
25
自定义模式中的PWM输出
PWM输出配置、舵机控制、ESC控制。
PWM
舵机
26
自定义模式中的RC输入处理
SBUS、PPM、DSM协议解析、自定义输入映射。
RC
协议
27
自定义模式中的故障保护
故障检测逻辑、自动降落/返航触发、用户自定义故障处理。
故障
安全
28
自定义模式性能优化
代码优化技巧、实时性保障、内存管理。
优化
性能
29
自定义模式测试与调试
SITL仿真测试、HITL硬件在环测试、实机飞行测试。
测试
SITL
30
综合项目:完整自定义飞行模式
编队飞行模式、精准农业喷洒模式等综合实战。
综合
项目