这个专题把无人机路径规划的理论文章按学习顺序串成一条路线。大多数文章都围绕一个具体算例一步一步计算,建议按编号依次阅读;数学基础可以先跳过,遇到需要时再回来查阅。

文章同时归在 路径规划理论 分类下,每篇文章的侧栏也会列出本系列的全部文章。

一、从这里开始

先建立整体认识:路径规划要解决什么问题,理论应当按什么顺序学习。

  1. 无人机路径规划入门:领域全景与学习路线:从路径、轨迹与控制的区别出发,概览无人机路径规划的核心问题、主要研究方向和学习路线。
  2. 多旋翼无人机路径规划:理论学习路线:按十二个阶段梳理多旋翼无人机路径规划的理论学习顺序,从数学与优化、搜索与采样到轨迹优化、MPC 与安全性。

二、数学基础

后面的约束表达、轨迹求解和优化都建立在这些工具上,可以边学后续内容边回来查阅。

  1. 路径规划数学基础(一):线性代数核心知识:围绕 Ax=b 的解与自由度、二次型的形状,整理路径规划中约束表达与优化建模所需的线性代数知识。
  2. 矩阵分解与线性系统求解:从高斯消元到 SVD:比较 LU、Cholesky、QR 与 SVD 的用途,理解残差与条件数,判断线性方程组和最小二乘的解是否可信。
  3. 多元微积分:梯度、Jacobian、Hessian 与链式求导:围绕偏导数、梯度、Jacobian、链式法则与 Hessian,说明代价怎样随变量变化,为轨迹优化中的求导打基础。
  4. 微分方程与状态空间入门:从运动规律到状态传播:从一维运动出发理解微分方程与状态空间,学会用当前状态和加速度预测之后的位置与速度。
  5. 概率基础:从随机变量到无人机路径规划中的随机采样:从随机事件、随机变量到高斯分布与协方差,整理路径规划中不确定性建模与随机采样所需的概率基础。

三、环境与搜索

把真实环境转化为可计算的问题,再用图搜索和随机采样找到一条可行路径。

  1. 无人机规划算法眼中的世界:构型空间、地图与碰撞检测:介绍构型空间、地图表示与碰撞检测,说明规划器怎样把机体形状、障碍物和候选运动转化为可计算的可行性判断。
  2. 从 Dijkstra 到 A*:一步一步找到最短路径:用六个位置的路线图逐步执行 Dijkstra 与 A*,比较两者的扩展顺序,理解启发函数怎样减少搜索。
  3. RRT:一棵搜索树怎样一步步找到路径:在一张带墙的二维地图上逐轮计算 RRT 的采样、最近节点、延伸与碰撞检查,看搜索树怎样找到第一条路径。
  4. RRT*:一棵搜索树怎样一步步改善路径:从一棵已可行的搜索树出发,逐轮演示 RRT* 的选择父节点与重连,把目标路径从 10 米缩短到约 7.76 米。

四、轨迹生成

为几何路径加上时间,用多项式与样条描述平滑运动,再通过优化选出更好的轨迹。

  1. 从路径到轨迹:一步一步安排无人机的运动:以沿通道前进 10 米为例,在速度与加速度限制下逐步算出加速、匀速、减速的时间与位置,理解路径和轨迹的区别。
  2. 多项式轨迹:从起终条件一步一步算出平滑运动:把起终点的位置、速度与加速度要求写成方程,逐步求出三次与五次多项式轨迹,并比较两者的平顺性。
  3. 分段多项式轨迹:一步一步把多段运动接起来:用两段五次多项式经过中间航点,逐步求解系数并检查航点处位置、速度、加速度的连续衔接。
  4. Minimum Jerk:一步一步算出航点速度与加速度:以 Jerk 平方积分为代价,逐步求出两段五次多项式在航点处的最优速度与加速度,并检查整段运动约束。
  5. Minimum Snap:一步一步求出航点 Jerk:在 Minimum Jerk 的基础上再进一阶,用两段七次多项式逐步求出使 Snap 代价最小的航点 Jerk。
  6. Bézier 曲线:一步一步用控制点生成和检查轨迹:用一个绕障算例逐步计算 Bézier 曲线的位置、控制点调整、时间轨迹与速度加速度,并用控制点检查整段避障。
  7. B 样条:一步一步看懂控制点的局部作用:用九个控制点、六段曲线的算例,逐步说明 B 样条如何分段拼接,以及移动一个控制点为什么只影响局部曲线。
  8. B 样条轨迹优化:一步一步计算控制点的移动:以平滑代价和避障代价为目标,逐步计算梯度并迭代移动 B 样条控制点,完整演示一次轨迹优化。

五、动力学与动力学约束搜索

理解轨迹怎样变成推力与姿态,以及为什么可以只规划位置;最后把速度和加速度放回搜索过程。

  1. 从轨迹到推力与姿态:一步一步算出无人机怎样倾斜:从悬停到水平加减速,逐步把轨迹中的加速度换算成多旋翼所需的推力大小和机体倾斜角度。
  2. 微分平坦性怎么判断:从质点、小车到四旋翼无人机:通过质点、小车和四旋翼三个例子解释微分平坦性的判断方法,说明规划器为什么可以只优化位置轨迹。
  3. Kinodynamic A*:一步一步把速度放进搜索:把速度放进搜索状态、用运动基元生成连接,逐轮计算 Kinodynamic A* 怎样找到满足速度与加速度限制的最快运动。
avatar
Dreamer
Dreamer 的技术博客,记录无人机自主飞行、PX4、ROS、SLAM、Jetson 与强化学习的实践教程和研究笔记。
GitHub 主页