这篇文章整理了多旋翼无人机路径规划的理论学习顺序:从运动规划的基本概念出发,逐步学习多旋翼动力学、轨迹表示、动力学约束规划、轨迹优化,以及滚动规划与安全性分析。

学习范围先限定为常规固定桨轴多旋翼的单机三维运动规划,从已知静态环境入手,再扩展到未知环境、动态障碍和多机协同。

每个阶段开头列出了本系列中对应的文章,可以边看路线边读具体推导。

一、总体学习路线

1. 学习顺序

第一阶段:数学与数值计算基础

第二阶段:最优化理论与数值优化方法

第三阶段:规划问题建模、构型空间与环境表示

第四阶段:图搜索算法

第五阶段:采样式运动规划

第六阶段:多旋翼动力学与微分平坦性

第七阶段:连续轨迹表示与 Minimum Snap

第八阶段:动力学约束下的搜索

第九阶段:避障轨迹优化与安全飞行走廊

第十阶段:MINCO 与时空联合优化

第十一阶段:最优控制、轨迹跟踪与 MPC

第十二阶段:在线重规划与安全性理论

第一阶段:数学与数值计算基础

第二阶段:最优化理论与数值优化方法

第三阶段:规划问题建模、构型空间与环境表示

第四阶段:图搜索算法

第五阶段:采样式运动规划

第六阶段:多旋翼动力学与微分平坦性

第七阶段:连续轨迹表示与 Minimum Snap

第八阶段:动力学约束下的搜索

第九阶段:避障轨迹优化与安全飞行走廊

第十阶段:MINCO 与时空联合优化

第十一阶段:最优控制、轨迹跟踪与 MPC

第十二阶段:在线重规划与安全性理论

这个顺序可以根据已有基础调整:数学和优化可以边学边补;图搜索与采样规划可以对照学习;理解多旋翼动力学后,可以同时学习轨迹生成与最优控制。

2. 各阶段的学习重点

阶段 核心问题 重点理论与算法
1. 数学基础 如何表达、求导和分析规划问题? 二次型、矩阵分解、微积分、微分方程、数值条件性
2. 最优化 如何求解目标与约束构成的数学问题? 凸性、KKT、QP、Newton、L-BFGS、SQP
3. 规划建模 在什么空间中规划,怎样表达障碍? 构型空间、障碍膨胀、体素地图、距离场、碰撞检测
4. 图搜索 如何在离散图中寻找低代价路径? Dijkstra、A*、启发函数、增量搜索
5. 采样规划 如何用有限采样探索连续空间? PRM、RRT、RRT*、概率完备性、渐近最优性
6. 动力学与平坦性 几何运动如何对应飞行器状态与输入? 刚体动力学、姿态表示、欠驱动、微分平坦性
7. 轨迹表示 如何构造带时间且足够平滑的运动? 分段多项式、Minimum Jerk / Snap、Bézier、B 样条
8. 动力学搜索 搜索时如何同时考虑运动状态与输入? 运动基元、状态传播、Kinodynamic A*、边值问题
9. 避障优化 如何联合处理平滑性、障碍与动力学限制? 距离罚函数、ESDF-free 思路、安全飞行走廊
10. 高效参数化 如何降低轨迹优化维度并联合优化时间? MINCO、带状线性系统、梯度传播、时间分配
11. 最优控制 如何把参考轨迹与反馈执行联系起来? LQR、直接法、MPC、递归可行性
12. 重规划与安全 局部可行解怎样衔接为持续安全的运动? 滚动规划、轨迹拼接、备用轨迹、不变性

其中,多旋翼动力学与微分平坦性、连续轨迹生成、动力学约束搜索、避障轨迹优化、时空联合优化和滚动规划安全性,是后续学习的主线。

二、第一阶段:数学与数值计算基础

本系列对应文章:线性代数、矩阵分解、多元微积分、微分方程与状态空间、概率论

1. 重点理论

模块 需要掌握的内容 与后续学习的联系
线性代数 向量空间、二次型、特征值、正定与半正定、稀疏矩阵 表达平滑代价、动力学与约束
矩阵分解 LU、QR、Cholesky、SVD、最小二乘 理解线性系统的求解条件与数值稳定性
多元微积分 梯度、Jacobian、Hessian、链式法则、Taylor 展开 推导目标函数与约束的导数
微分方程 状态空间模型、线性化、离散化、初值问题 描述运动与状态传播
概率基础 条件概率、随机变量、高斯分布、协方差、随机采样 理解采样规划与不确定性建模
数值分析 条件数、变量尺度、正则化、舍入误差、有限差分 理解数学问题与数值求解之间的差异

2. 关键公式与推导

理解二次函数

f(x)=12x⊤Qx+c⊤xf(x)=\frac{1}{2}x^\top Qx+c^\top x

在 Q=Q⊤Q=Q^\top 时满足

∇f(x)=Qx+c,∇2f(x)=Q.\nabla f(x)=Qx+c,\qquad \nabla^2f(x)=Q.

重点理解 Q⪰0Q\succeq0、Q≻0Q\succ0 与凸性、严格凸性的关系,以及约束如何影响解的存在性和唯一性。

3. 思考题

  • 为什么不宜默认通过显式求逆来求解线性方程组?
  • 问题本身的病态与求解方法的数值不稳定有什么区别?
  • 轨迹时间尺度为何会影响多项式矩阵的条件数?

相关阅读:最优化教材中的数学预备章节。[1][2]

三、第二阶段:最优化理论与数值优化方法

1. 先学习问题性质,再学习求解方法

重点掌握凸集、凸函数、局部最优与全局最优、等式与不等式约束、拉格朗日函数、KKT 条件和对偶性。

区分线性规划(LP)、二次规划(QP)、二阶锥规划(SOCP)与一般非线性规划(NLP)。这些是问题类别;Newton、SQP 和内点法等是求解方法,不能混为一类。

2. 重点算法

方法 重点掌握的原理
梯度下降 下降方向、步长、收敛条件与变量尺度
Newton 法 二阶局部模型、Hessian、局部收敛与全局化策略
Gauss–Newton 非线性最小二乘结构与 Hessian 近似
BFGS / L-BFGS 割线条件、曲率近似、有限内存思想
线搜索与信赖域 如何控制局部近似的有效范围
SQP 将非线性约束问题逐步近似为二次规划
罚函数与增广拉格朗日 如何处理约束违反,以及罚参数的影响
内点法 障碍函数、可行域内部迭代与中心路径

3. 关键推导:等式约束二次规划

考虑

min⁡x  12x⊤Qx+c⊤x,Ax=b.\min_x\;\frac12x^\top Qx+c^\top x, \qquad Ax=b.

从拉格朗日函数推导一阶条件:

[QA⊤A0][xλ]=[−cb].\begin{bmatrix} Q&A^\top\\ A&0 \end{bmatrix} \begin{bmatrix} x\\\lambda \end{bmatrix} = \begin{bmatrix} -c\\b \end{bmatrix}.

进一步理解约束可行性、AA 的秩、QQ 在可行方向上的正定性与解的唯一性之间的关系。[2]

4. KKT 条件的适用范围

KKT 条件的必要性需要相应正则性条件;在凸问题中,满足适当条件的 KKT 点可用于判定全局最优。非凸问题中的驻点不能直接等同于全局最优。[2]

相关阅读:《Convex Optimization》;非线性优化内容结合轨迹优化讲义阅读。[2][3]

四、第三阶段:规划问题建模、构型空间与环境表示

本系列对应文章:构型空间、地图与碰撞检测

1. 区分路径、轨迹与控制

概念 数学对象 回答的问题
几何路径 q(s), s∈[0,1]q(s),\ s\in[0,1] 从哪里经过?
时间轨迹 x(t), t∈[0,T]x(t),\ t\in[0,T] 何时到达,以怎样的状态运动?
控制输入 u(t)u(t) 如何通过动力学产生该运动?

学习如何明确起终条件、目标集合、状态空间、控制空间、代价函数和可行域。[1]

2. 构型空间与障碍表示

重点掌握构型空间、自由空间、障碍空间、Minkowski 和、机器人包络与障碍物膨胀。

对于固定形状且只考虑平移的机器人,障碍区域可通过与机器人形状的反射集做 Minkowski 和来构造。使用球形保守包络可以简化姿态相关碰撞问题,但会引入保守性;非球形包络随姿态旋转时,不能随意忽略姿态对碰撞的影响。[1]

3. 地图与碰撞检测

重点学习占据栅格、三维体素、八叉树、距离场,以及已知空闲、已占据、未知区域的区别。理解 TSDF 的截断表面距离信息与 ESDF 的欧氏距离信息不能简单互换。

碰撞检测应覆盖点、线段、曲线段与机器人包络。重点关注离散检查与连续时间安全判断之间的区别。[1][8][9]

4. 思考题

  • 为什么无人机中心不碰撞,并不代表机体不碰撞?
  • 为什么未知区域不能自动视为空闲?
  • 为什么轨迹上的有限个采样点安全,并不能直接证明整段轨迹安全?

五、第四阶段:图搜索算法

本系列对应文章:从 Dijkstra 到 A*

1. 优先掌握 Dijkstra 与 A*

A* 的核心评价函数为

f(n)=g(n)+h(n),f(n)=g(n)+h(n),

其中 g(n)g(n) 表示已找到的起点到当前节点的路径代价,h(n)h(n) 估计剩余代价。

重点理解启发函数的可采纳性与一致性:

h(n)≤h∗(n),h(n)\le h^*(n),

h(n)≤c(n,n′)+h(n′).h(n)\le c(n,n')+h(n').

应结合非负边代价、节点重开策略与终止条件,理解不同 A* 版本的最优性条件,而不是仅记住“使用启发函数就能保证最优”。[1]

2. 算法学习顺序

顺序 算法 理论重点
1 Dijkstra 最短路径、松弛操作、代价有序扩展
2 A* 启发函数、可采纳性、一致性、最优性条件
3 JPS 规则栅格上的对称路径裁剪与适用条件
4 Theta* 视线连接与任意角路径
5 LPA* / D* Lite 图中代价变化后的增量修复

其中 Dijkstra 与 A* 是主线,其余方法用于理解搜索加速、路径表达和增量更新的不同思路。

3. 思考题

  • 图上的最优路径与连续空间中的最优路径有什么区别?
  • 网格分辨率和邻接规则如何改变搜索问题?
  • 为什么增量修复地图中的边代价,还不能解决动态障碍的时间冲突问题?

相关阅读:《Planning Algorithms》的离散规划与搜索相关内容。[1]

六、第五阶段:采样式运动规划

本系列对应文章:RRT、RRT*

1. 重点算法

算法 核心思想 重点理解
PRM 用采样点和局部连接构建路线图 多次查询、图连通性与局部规划器
RRT 通过随机采样扩展搜索树 最近邻、扩展策略、Voronoi 偏置
RRT-Connect 双向树交替扩展与连接 两棵树的连接方式及连接可行性
RRT* 选择更优父节点并重连邻域 邻域规模、代价传播与渐近最优性
Informed RRT* 利用已有解限制有改善潜力的采样区域 代价下界与采样区域的关系,作为扩展阅读

2. 概率完备性与渐近最优性

概率完备性:在相应可行性、采样和局部连接假设下,采样数量增加时,找到可行解的概率趋于 1。

渐近最优性:在相应假设下,随着采样数量增加,最优已知解的代价以指定的概率意义趋近最优值。

两者回答不同问题,均不能直接解释为有限计算时间内必定找到全局最优解。[1][4]

3. 思考题

  • RRT 为什么倾向于扩展尚未充分探索的区域?狭窄通道为何困难?
  • RRT 与 RRT* 的目标、结构和理论保证有哪些区别?
  • 几何空间中的直线连接为什么未必适用于带动力学约束的状态空间?

相关阅读:《Planning Algorithms》采样规划章节;Karaman 与 Frazzoli 的最优采样规划论文。[1][4]

七、第六阶段:多旋翼动力学与微分平坦性

本系列对应文章:从轨迹到推力与姿态、微分平坦性怎么判断

1. 姿态与刚体运动

重点掌握世界坐标系、机体坐标系、旋转矩阵、欧拉角、单位四元数,以及 SO(3)SO(3)、SE(3)SE(3) 的基本含义。

理解

R⊤R=I,det⁡R=1,R^\top R=I,\qquad \det R=1,

并始终明确向量和角速度在哪个坐标系中表达。[5]

2. 多旋翼动力学

采用世界坐标系竖直向上、推力沿机体正 zz 轴的约定,忽略空气阻力时:

p˙=v,mv˙=−mge3+fRe3,\dot p=v,\qquad m\dot v=-mg e_3+fRe_3,

R˙=Rω^,Jω˙+ω×Jω=τ.\dot R=R\widehat\omega,\qquad J\dot\omega+\omega\times J\omega=\tau.

其中 ff 为总推力,τ\tau 为机体系力矩,JJ 为惯量矩阵,ω^\widehat\omega 为角速度对应的反对称矩阵。

理解欠驱动、姿态与平移加速度的耦合、总推力与电机分配之间的关系。按“双积分器 → 三积分器 → 刚体动力学 → 含阻力与执行器限制的模型”逐步比较模型保留和省略的约束。[6][12]

3. 微分平坦性

对标准四旋翼模型,重点学习以位置和偏航角为平坦输出的表示:

y=[px,py,pz,ψ]⊤.y=[p_x,p_y,p_z,\psi]^\top.

在适用模型与非奇异条件下,状态和输入可以由平坦输出及其有限阶导数恢复。[6][12]

由平移动力学直接得到

ac=p¨+ge3,f=m∥ac∥,b3=ac∥ac∥.a_c=\ddot p+ge_3,\qquad f=m\|a_c\|,\qquad b_3=\frac{a_c}{\|a_c\|}.

进一步学习如何结合偏航要求恢复姿态,如何通过 jerk、snap 及偏航导数恢复角速度和力矩相关量。

4. 思考题

  • 平坦性与线性化有什么区别?
  • 为什么平坦输出不能任意指定为无约束的曲线?
  • 零合加速度、姿态构造退化等奇异情形会带来什么问题?
  • 为什么只限制速度和加速度,还不足以保证所有执行器输入可行?

相关阅读:《Modern Robotics》姿态相关章节;Minimum Snap 论文;含旋翼阻力的平坦性论文。[5][6][12]

八、第七阶段:连续轨迹表示与 Minimum Snap

本系列对应文章:从路径到轨迹、多项式轨迹、分段多项式轨迹、Minimum Jerk、Minimum Snap、Bézier 曲线、B 样条

1. 分段多项式与连续性

使用局部时间表示第 ii 段轨迹:

pi(t)=∑k=0nci,ktk,t∈[0,Ti].p_i(t)=\sum_{k=0}^{n}c_{i,k}t^k,\qquad t\in[0,T_i].

重点掌握端点状态、航点约束、段间连续性与多项式阶数之间的关系。区分 C0C^0、C1C^1、C2C^2 等连续性要求,并结合平坦性理解不同导数连续性对飞行状态和输入的意义。[6][7]

2. Minimum Jerk 与 Minimum Snap

学习目标函数

Jr=∑i=1M∫0Ti∥pi(r)(t)∥2dt,r=3 或 4.J_r=\sum_{i=1}^{M}\int_0^{T_i}\|p_i^{(r)}(t)\|^2dt, \qquad r=3\ \text{或}\ 4.

在固定分段时间下,把代价写成二次型,并把端点与连续性约束写成线性形式:

min⁡c  c⊤Qc,Aeqc=beq.\min_c\;c^\top Qc,\qquad A_{\mathrm{eq}}c=b_{\mathrm{eq}}.

重点推导代价矩阵、约束矩阵及其稀疏结构。加入一般避障约束或自由时间变量后,不能继续默认整个问题是凸二次规划。[2][6][7]

3. Bézier 与 B 样条

表示 重点理论
Bézier 曲线 Bernstein 基、多项式次数、端点性质、凸包性质、导数控制点
B 样条 基函数、次数、节点向量、节点重数、局部支撑、连续性、导数表示

需要区分“控制点是自由空间中的点”和“相关控制点位于同一个凸自由区域”。后者可以结合凸包性质构造轨迹包含的充分条件,前者本身不够。[8][9]

4. 时间归一化

对固定形状的归一化轨迹 pˉ(s)\bar p(s),令 t=Tst=Ts,则

drpdtr=T−rdrpˉdsr,\frac{d^rp}{dt^r}=T^{-r}\frac{d^r\bar p}{ds^r},

∫0T∥p(r)(t)∥2dt=T1−2r∫01∥pˉ(r)(s)∥2ds.\int_0^T\|p^{(r)}(t)\|^2dt =T^{1-2r}\int_0^1\|\bar p^{(r)}(s)\|^2ds.

由此理解时间伸缩对导数与平滑代价的影响。该关系针对固定归一化形状的时间缩放;固定物理端点导数时,需要同时检查边界条件是否仍然成立。

5. 思考题

  • 如何推导一段多项式的 snap 代价?
  • 为什么平滑代价不等于飞行时间或实际电能消耗?
  • 多项式系数、端点导数和样条控制点三种参数化各有什么特点?

相关阅读:Minimum Snap、高效多项式轨迹规划与 Fast-Planner 核心论文。[6][7][9]

九、第八阶段:动力学约束下的搜索

本系列对应文章:Kinodynamic A*

1. 从位置空间转向状态空间

以双积分器为例:

x=[pv],p˙=v,v˙=u.x=\begin{bmatrix}p\\v\end{bmatrix},\qquad \dot p=v,\qquad \dot v=u.

在恒定输入 uu 和传播时间 Δt\Delta t 下:

p+=p+vΔt+12uΔt2,v+=v+uΔt.p^+=p+v\Delta t+\frac12u\Delta t^2, \qquad v^+=v+u\Delta t.

理解运动基元、控制离散化、状态传播、终端状态与可达性。位置相同但速度不同的状态,通常不能视为具有相同后续运动能力。

2. 重点算法与理论

Kinodynamic A* 是主线,重点掌握状态节点定义、运动基元扩展、代价累积、碰撞检查、约束检查、启发函数以及末端连接。[9]

进一步理解状态格点和动力学约束下的采样规划,并比较它们如何处理局部连接问题。[1]

3. 关键推导:最优控制启发函数

学习从放松障碍或部分约束的两点边值问题构造启发函数,例如:

min⁡u,T∫0T∥u(t)∥2dt+ρT,\min_{u,T}\int_0^T\|u(t)\|^2dt+\rho T,

满足简化动力学及给定起终状态。

重点理解为何“放松后的最优代价”可能形成原问题的下界,以及这一结论如何依赖模型、目标和约束之间的包含关系。[9]

4. 思考题

  • 几何 A* 后接平滑器,为什么不等价于动力学搜索?
  • 控制采样和状态离散化如何改变可搜索的解集?
  • 对简化模型可行与对完整多旋翼动力学可行有什么区别?

十、第九阶段:避障轨迹优化与安全飞行走廊

本系列对应文章:B 样条轨迹优化

1. 优化问题的基本形式

设 θ\theta 为轨迹形状参数,TT 为分段时间,考虑

min⁡θ,T  Jsmooth+λtJtime+λoJobs,\min_{\theta,T}\; J_{\mathrm{smooth}}+\lambda_tJ_{\mathrm{time}}+\lambda_oJ_{\mathrm{obs}},

并根据建模选择加入边界、动力学和几何约束。

重点区分目标函数中的偏好、软罚项与必须满足的硬约束,理解权重、量纲、初值和局部极小值的影响。[2][9][11]

2. 基于距离信息的优化

设障碍距离为 d(p)d(p),安全阈值为 dsafed_{\mathrm{safe}},可构造单点罚函数

ϕ(p)=[max⁡(0,dsafe−d(p))]2.\phi(p)=\big[\max(0,d_{\mathrm{safe}}-d(p))\big]^2.

在距离可微且罚项激活的位置:

∇ϕ(p)=−2(dsafe−d(p))∇d(p).\nabla\phi(p) =-2\big(d_{\mathrm{safe}}-d(p)\big)\nabla d(p).

进一步学习轨迹参数上的链式求导,以及距离场在最近障碍切换处的非光滑性。

对照理解 Fast-Planner 中的距离场与样条优化,以及 EGO-Planner 在不建立完整 ESDF 时获取避障信息的思路。ESDF-free 不等于不使用环境信息或不进行碰撞判断。[9][10]

3. 安全飞行走廊

用凸多面体表示自由空间中的局部安全区域:

Ci={p∣Aip≤bi}.\mathcal C_i=\{p\mid A_ip\le b_i\}.

重点学习凸分解、相邻走廊的交叠、轨迹段与走廊的对应关系,以及利用 Bézier / B 样条凸包性质构造包含约束。[8]

4. 两条路线的理论比较

比较维度 距离代价路线 安全走廊路线
几何信息 障碍距离、方向或局部引导信息 凸自由区域及其半空间表示
避障表达 常以软罚项或距离约束表达 常以轨迹包含约束表达
需要分析的问题 局部极小值、梯度有效性、罚项是否满足要求 走廊保守性、连通性、轨迹包含条件
不能直接推出的结论 代价低不等于整段连续轨迹安全 有走廊不等于任何参数化轨迹都自动位于其中

5. 思考题

  • 有限权重罚项为什么不能自动保证零约束违反?
  • 碰撞检查和碰撞约束有什么区别?
  • 为什么固定时间下的子问题是凸的,整个时空联合优化问题却未必是凸的?[2][8][11]

十一、第十阶段:MINCO 与时空联合优化

1. MINCO 与 GCOPTER 的关系

MINCO 是面向最小控制努力轨迹的稀疏参数化,不是图搜索或采样扩展算法。GCOPTER 则是在相关参数化、几何约束处理和优化方法之上构建的多旋翼轨迹优化框架。[11]

2. 重点理论

内容 需要理解的问题
最小控制努力结构 哪些最优性条件限制了分段多项式的形式?
中间点与分段时间参数化 如何由较少参数恢复大量多项式系数?
带状线性系统 连续性与局部连接为何带来结构化求解?
梯度传播 目标对系数的梯度如何传播到中间点和时间?
几何约束变换 如何表达点或轨迹与可行区域的关系?
时空联合优化 形状和时间怎样共同影响平滑性与动力学约束?

3. 关键推导

围绕系数恢复关系

A(T)c=b(q),A(T)c=b(q),

学习隐式求导:

A dc=db−(dA)c.A\,dc=db-(dA)c.

再结合目标函数的链式法则,理解如何求取对中间点 qq 和时间 TT 的梯度,而不是显式构造全部中间 Jacobian。[11]

4. 思考题

  • 参数化带来的结构性最优,与外层避障优化的最优性有什么区别?
  • 为什么快速恢复系数,并不意味着非凸规划获得了全局最优解?
  • 时间正值约束及边界条件在参数化中起什么作用?

相关阅读:《Geometrically Constrained Trajectory Optimization for Multicopters》。[11]

十二、第十一阶段:最优控制、轨迹跟踪与 MPC

1. 最优控制问题

学习有限时域最优控制的基本形式:

min⁡x,u,T  ϕ(x(T))+∫0Tℓ(x(t),u(t))dt,\min_{x,u,T}\;\phi(x(T))+\int_0^T\ell(x(t),u(t))dt,

满足动力学、边界条件、状态约束与输入约束。

先理解状态、控制、轨迹和价值函数的关系,再学习直接打靶、直接转录与直接配点。动态规划、Hamilton–Jacobi–Bellman 方程和 Pontryagin 极小值原理可作为进一步的理论扩展。[1][3]

2. LQR 与轨迹跟踪

在线性模型

x˙=Ax+Bu\dot x=Ax+Bu

及二次代价下,重点掌握 Riccati 方程、状态反馈、可稳定性与可检测性条件。进一步理解沿参考轨迹线性化、误差动力学和时变 LQR。[3]

3. MPC

学习离散有限时域问题:

min⁡x0:N,u0:N−1∑k=0N−1ℓ(xk,uk)+Vf(xN),\min_{x_{0:N},u_{0:N-1}} \sum_{k=0}^{N-1}\ell(x_k,u_k)+V_f(x_N),

满足

xk+1=f(xk,uk),xk∈X,uk∈U.x_{k+1}=f(x_k,u_k),\qquad x_k\in\mathcal X,\quad u_k\in\mathcal U.

重点理解滚动时域、状态反馈、预测长度、终端代价、终端集合、递归可行性和闭环稳定性。仅仅反复求解有限时域问题,不自动获得这些性质。[3]

4. 思考题

  • 参考轨迹与反馈策略有什么区别?
  • 开环轨迹可行,为什么不等于闭环执行安全?
  • 模型误差、输入限制与跟踪误差如何改变规划结果的可执行性?

十三、第十二阶段:在线重规划与安全性理论

1. 滚动规划与轨迹拼接

重点学习局部目标、有限规划时域、已有轨迹复用、轨迹拼接连续性、计算延迟和状态预测。

尤其要区分重新规划时刻与新轨迹开始执行时刻:存在计算和执行延迟时,新轨迹的起始条件需要与实际接续状态一致。[9]

2. 区分四类性质

性质 理论含义
无碰撞 相对于所用地图与机器人几何模型,轨迹不进入障碍区域
动力学可行 满足所采用动力学模型及状态、输入约束
可跟踪 在给定控制器和误差条件下,参考运动可被足够准确地执行
安全 在明确的不确定性、环境与故障假设下,运动能够保持在规定安全集合内

这些性质需要分别分析,不能由其中一项直接替代其余各项。

3. 重点理论问题

学习连续时间碰撞与约束验证、制动轨迹、备用轨迹、终端安全集合与控制不变性。讨论未知环境时,应明确感知范围、最大速度、制动能力以及延迟之间的关系。

备用轨迹的安全意义不仅在于“存在一条可停止的曲线”,还在于当前状态能够接入该轨迹,且轨迹在已知条件和所用模型下保持可行。[13]

4. 思考题

  • 一次优化可行与递归可行有什么区别?
  • 离散约束满足与连续时间约束满足有什么区别?
  • 安全结论依赖哪些地图、定位、模型和执行误差方面的假设?

相关阅读:MPC 讲义,以及 FASTER 关于未知环境与安全备用轨迹的论文。[3][13]

十四、主线之后的扩展方向

方向 建议追加的理论
动态障碍 时空状态空间、安全时间区间、运动预测与时间相关碰撞约束
不确定性规划 概率模型、机会约束、鲁棒优化、信念空间规划
主动探索 前沿、视点、可见性、信息增益与访问顺序优化
多机协同 联合状态空间、机间避碰、分布式优化与通信假设
安全控制 不变集、可达性分析、控制障碍函数
高动态飞行 阻力模型、执行器限制、姿态与角速度约束、时间最优问题

扩展方向不必一次覆盖。先理解它在主线问题上增加了哪些状态、信息、目标和约束,再学习相应算法。

十五、教材与论文阅读顺序

1. 基础教材

资料 对应阶段 阅读重点
LaValle:《Planning Algorithms》[1] 3–5、8 构型空间、离散搜索、采样规划、微分约束规划
Boyd、Vandenberghe:《Convex Optimization》[2] 1–2、7、9 凸性、二次规划、对偶、KKT、数值求解
Tedrake:《Underactuated Robotics》[3] 2、11–12 轨迹优化、LQR、MPC、可行性与稳定性
Lynch、Park:《Modern Robotics》[5] 6 坐标变换、旋转矩阵、刚体运动

2. 专题论文

按“轨迹生成 → 几何约束 → 动力学搜索与局部优化 → 高效时空优化”的顺序阅读:

顺序 论文或方法 要回答的理论问题
1 Minimum Snap [6] 平坦性如何连接轨迹导数与飞行状态?平滑代价如何构成优化问题?
2 Richter 等的多项式轨迹规划 [7] 边界导数和分段时间如何影响轨迹求解?
3 Safe Flight Corridors [8] 怎样把自由空间转化为可处理的轨迹约束?
4 Fast-Planner 核心论文 [9] 动力学搜索如何与 B 样条优化衔接?
5 EGO-Planner [10] 不构造完整 ESDF 时,避障梯度信息从何而来?
6 MINCO / GCOPTER 对应论文 [11] 如何借助参数化和梯度传播进行时空联合优化?

RRT* 理论论文 [4] 与第五阶段并行阅读;含阻力的平坦性论文 [12] 和 FASTER [13] 分别作为动力学与安全性扩展。

十六、学习时可以回顾的问题

学完一个算法后,可以用下面的问题整理笔记:

维度 需要回答的问题
问题定义 状态、控制、决策变量、起终条件和目标是什么?
建模假设 使用何种动力学、地图与信息假设?忽略了什么?
数学结构 问题是离散还是连续、凸还是非凸、静态还是时变?
核心机制 算法为什么能够找到可行解或改善已有解?
关键推导 哪些公式决定了搜索方向、优化梯度或约束形式?
理论保证 完备性、最优性、可行性、安全性分别在什么条件下成立?
适用边界 哪些模型误差、几何条件或信息变化会使结论失效?
方法联系 它是替换其他方法,还是与其他方法处于不同层次并可组合?

第一遍先弄清概念之间的联系,第二遍再回头细看推导与证明条件,之后按需要深入感兴趣的方向。

参考资料

以下资料作为各阶段的阅读入口;正文中的编号与此处对应。

[1] Steven M. LaValle. Planning Algorithms. 教材主页与免费全文:https://lavalle.pl/planning/。

[2] Stephen Boyd, Lieven Vandenberghe. Convex Optimization. 教材主页:https://web.stanford.edu/~boyd/cvxbook/。

[3] Russ Tedrake. Underactuated Robotics. 在线讲义:https://underactuated.mit.edu/;轨迹优化章节:https://underactuated.mit.edu/trajopt.html。

[4] Sertac Karaman, Emilio Frazzoli. Sampling-based Algorithms for Optimal Motion Planning. https://arxiv.org/abs/1105.1186。

[5] Kevin M. Lynch, Frank C. Park. Modern Robotics. 教材与配套资源:https://modernrobotics.northwestern.edu/nu-gm-book-resource/。

[6] Daniel Mellinger, Vijay Kumar. Minimum Snap Trajectory Generation and Control for Quadrotors. https://ieeexplore.ieee.org/document/5980409。

[7] Charles Richter, Adam Bry, Nicholas Roy. Polynomial Trajectory Planning for Aggressive Quadrotor Flight in Dense Indoor Environments. https://dspace.mit.edu/entities/publication/6918c594-17bc-4fd3-8400-b03d55f280cb。

[8] Sikang Liu 等. Planning Dynamically Feasible Trajectories for Quadrotors Using Safe Flight Corridors in 3-D Complex Environments. 作者资料页:https://ke-sun.github.io/publication/liu-ral-2017/。

[9] Boyu Zhou 等. Robust and Efficient Quadrotor Trajectory Generation for Fast Autonomous Flight. https://arxiv.org/abs/1907.01531。

[10] Xin Zhou 等. EGO-Planner: An ESDF-free Gradient-based Local Planner for Quadrotors. https://arxiv.org/abs/2008.08835。

[11] Zhepei Wang 等. Geometrically Constrained Trajectory Optimization for Multicopters. https://arxiv.org/abs/2103.00190。

[12] Matthias Faessler, Antonio Franchi, Davide Scaramuzza. Differential Flatness of Quadrotor Dynamics Subject to Rotor Drag for Accurate Tracking of High-Speed Trajectories. https://arxiv.org/abs/1712.02402。

[13] Jesus Tordesillas 等. FASTER: Fast and Safe Trajectory Planner for Navigation in Unknown Environments. https://arxiv.org/abs/2001.04420。