ArduPilot避障算法集成与实机测试
📚 共计 30 章节
01
课程导论与预备知识
ArduPilot避障体系概述、硬件选型(激光雷达/双目/超声波)、开发环境搭建(Ubuntu+MAVSDK+QGC)
导论
环境
02
源码编译与固件烧录
从GitHub拉取最新代码、配置编译环境、选择板卡类型(Pixhawk/CubeOrange)、编译与烧录流程
编译
烧录
03
传感器驱动集成(I2C/SPI/UART)
以VL53L1X激光测距为例,讲解传感器驱动在ArduPilot中的注册、初始化与数据读取
驱动
I2C
04
避障数据预处理
传感器数据滤波(中值/卡尔曼)、坐标系对齐(机体坐标系转NED)、异常值剔除
滤波
坐标系
05
避障算法基础:势场法
人工势场法(APF)数学推导、斥力/引力场计算、在ArduPilot中的代码实现
APF
势场
06
VFH+算法集成
向量场直方图(VFH)原理、极坐标直方图构建、候选方向选择与平滑
VFH+
直方图
07
DWA算法集成
动态窗口法(DWA)速度空间采样、轨迹预测与代价评估函数设计
DWA
动态窗口
08
TEB算法集成
定时弹性带(TEB)图优化模型、约束条件(动力学/障碍物)与实时求解
TEB
优化
09
全局规划与局部避障融合
A*全局路径生成、局部避障修正、路径跟踪控制器(L1/PID)适配
A*
融合
10
避障模块架构解析
AP_ObstacleAvoidance类结构、避障状态机(无避障/绕行/悬停)、参数配置
架构
状态机
11
编写自定义避障插件
基于AP_ObstacleAvoidance基类派生新类、重写核心虚函数(update/pre_arm_check)
插件
派生
12
避障参数调优(一)
传感器参数(RNG类型/最大距离/角度偏移)、避障使能参数(AVOID_ENABLE/CRUISE)
参数
传感器
13
避障参数调优(二)
行为参数(绕行距离/高度变化/速度限制)、安全参数(最小安全距离/紧急刹车阈值)
行为
安全
14
仿真环境搭建
使用Gazebo+ArduPilot SITL进行避障仿真、配置障碍物场景(静态/动态障碍物)
Gazebo
SITL
15
仿真测试与算法验证
在SITL中运行避障算法、分析日志(binlog)、评估避障成功率与路径平滑度
仿真
验证
16
实机测试准备
飞控固件刷写、传感器安装校准、GPS/罗盘校准、避障模式(Loiter/Guided)设置
实机
校准
17
实机测试(一):静态障碍物
测试流程设计、安全预案(RTL/紧急降落)、数据记录
静态
安全
18
实机测试(二):动态障碍物
移动障碍物场景(行人/车辆)、避障响应时间与重规划能力
动态
响应
19
实机测试(三):密集场景
森林/室内走廊场景、避障算法鲁棒性评估
密集
鲁棒性
20
避障日志分析
使用Mission Planner/MAVExplorer解析binlog、提取避障关键数据(距离/速度/状态机)
日志
binlog
21
避障性能评估指标
成功率、路径长度比、飞行时间、最小距离、计算耗时(CPU占用率)
指标
评估
22
常见问题排查(一)
传感器数据异常(跳变/丢失)、避障不触发、误避障(虚警)分析与解决
排查
虚警
23
常见问题排查(二)
飞控卡死/重启、避障与位置控制冲突、参数设置不当导致震荡
冲突
震荡
24
避障算法融合策略
多传感器融合(激光+视觉)、多算法投票机制、自适应算法切换
融合
投票
25
基于深度学习的避障集成
YOLO目标检测与深度估计、在ArduPilot中集成ONNX Runtime推理
YOLO
ONNX
26
避障与任务规划协同
避障触发时任务暂停/恢复、航点跳过机制、动态航点重规划
任务
航点
27
特定机型适配
四旋翼/固定翼/VTOL的避障差异、不同机型参数调整要点
机型
VTOL
28
避障安全机制设计
多重保护(硬件看门狗/软件超时)、避障失效时的降级策略(悬停/降落)
安全
降级
29
避障算法优化与部署
代码优化(内存/CPU)、实时性保障(任务优先级/中断)、固件空间优化
优化
部署
30
课程总结与项目实战
综合项目(自主巡检避障飞行)、课程回顾、进阶学习路径推荐
实战
总结