多旋翼无人机路径规划:理论学习路线
这篇文章整理了多旋翼无人机路径规划的理论学习顺序:从运动规划的基本概念出发,逐步学习多旋翼动力学、轨迹表示、动力学约束规划、轨迹优化,以及滚动规划与安全性分析。
学习范围先限定为常规固定桨轴多旋翼的单机三维运动规划,从已知静态环境入手,再扩展到未知环境、动态障碍和多机协同。
每个阶段开头列出了本系列中对应的文章,可以边看路线边读具体推导。
一、总体学习路线
1. 学习顺序
这个顺序可以根据已有基础调整:数学和优化可以边学边补;图搜索与采样规划可以对照学习;理解多旋翼动力学后,可以同时学习轨迹生成与最优控制。
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. 关键公式与推导
理解二次函数
在 时满足
重点理解 、 与凸性、严格凸性的关系,以及约束如何影响解的存在性和唯一性。
3. 思考题
- 为什么不宜默认通过显式求逆来求解线性方程组?
- 问题本身的病态与求解方法的数值不稳定有什么区别?
- 轨迹时间尺度为何会影响多项式矩阵的条件数?
相关阅读:最优化教材中的数学预备章节。[1][2]
三、第二阶段:最优化理论与数值优化方法
1. 先学习问题性质,再学习求解方法
重点掌握凸集、凸函数、局部最优与全局最优、等式与不等式约束、拉格朗日函数、KKT 条件和对偶性。
区分线性规划(LP)、二次规划(QP)、二阶锥规划(SOCP)与一般非线性规划(NLP)。这些是问题类别;Newton、SQP 和内点法等是求解方法,不能混为一类。
2. 重点算法
| 方法 | 重点掌握的原理 |
|---|---|
| 梯度下降 | 下降方向、步长、收敛条件与变量尺度 |
| Newton 法 | 二阶局部模型、Hessian、局部收敛与全局化策略 |
| Gauss–Newton | 非线性最小二乘结构与 Hessian 近似 |
| BFGS / L-BFGS | 割线条件、曲率近似、有限内存思想 |
| 线搜索与信赖域 | 如何控制局部近似的有效范围 |
| SQP | 将非线性约束问题逐步近似为二次规划 |
| 罚函数与增广拉格朗日 | 如何处理约束违反,以及罚参数的影响 |
| 内点法 | 障碍函数、可行域内部迭代与中心路径 |
3. 关键推导:等式约束二次规划
考虑
从拉格朗日函数推导一阶条件:
进一步理解约束可行性、 的秩、 在可行方向上的正定性与解的唯一性之间的关系。[2]
4. KKT 条件的适用范围
KKT 条件的必要性需要相应正则性条件;在凸问题中,满足适当条件的 KKT 点可用于判定全局最优。非凸问题中的驻点不能直接等同于全局最优。[2]
相关阅读:《Convex Optimization》;非线性优化内容结合轨迹优化讲义阅读。[2][3]
四、第三阶段:规划问题建模、构型空间与环境表示
本系列对应文章:构型空间、地图与碰撞检测
1. 区分路径、轨迹与控制
| 概念 | 数学对象 | 回答的问题 |
|---|---|---|
| 几何路径 | 从哪里经过? | |
| 时间轨迹 | 何时到达,以怎样的状态运动? | |
| 控制输入 | 如何通过动力学产生该运动? |
学习如何明确起终条件、目标集合、状态空间、控制空间、代价函数和可行域。[1]
2. 构型空间与障碍表示
重点掌握构型空间、自由空间、障碍空间、Minkowski 和、机器人包络与障碍物膨胀。
对于固定形状且只考虑平移的机器人,障碍区域可通过与机器人形状的反射集做 Minkowski 和来构造。使用球形保守包络可以简化姿态相关碰撞问题,但会引入保守性;非球形包络随姿态旋转时,不能随意忽略姿态对碰撞的影响。[1]
3. 地图与碰撞检测
重点学习占据栅格、三维体素、八叉树、距离场,以及已知空闲、已占据、未知区域的区别。理解 TSDF 的截断表面距离信息与 ESDF 的欧氏距离信息不能简单互换。
碰撞检测应覆盖点、线段、曲线段与机器人包络。重点关注离散检查与连续时间安全判断之间的区别。[1][8][9]
4. 思考题
- 为什么无人机中心不碰撞,并不代表机体不碰撞?
- 为什么未知区域不能自动视为空闲?
- 为什么轨迹上的有限个采样点安全,并不能直接证明整段轨迹安全?
五、第四阶段:图搜索算法
本系列对应文章:从 Dijkstra 到 A*
1. 优先掌握 Dijkstra 与 A*
A* 的核心评价函数为
其中 表示已找到的起点到当前节点的路径代价, 估计剩余代价。
重点理解启发函数的可采纳性与一致性:
应结合非负边代价、节点重开策略与终止条件,理解不同 A* 版本的最优性条件,而不是仅记住“使用启发函数就能保证最优”。[1]
2. 算法学习顺序
| 顺序 | 算法 | 理论重点 |
|---|---|---|
| 1 | Dijkstra | 最短路径、松弛操作、代价有序扩展 |
| 2 | A* | 启发函数、可采纳性、一致性、最优性条件 |
| 3 | JPS | 规则栅格上的对称路径裁剪与适用条件 |
| 4 | Theta* | 视线连接与任意角路径 |
| 5 | LPA* / D* Lite | 图中代价变化后的增量修复 |
其中 Dijkstra 与 A* 是主线,其余方法用于理解搜索加速、路径表达和增量更新的不同思路。
3. 思考题
- 图上的最优路径与连续空间中的最优路径有什么区别?
- 网格分辨率和邻接规则如何改变搜索问题?
- 为什么增量修复地图中的边代价,还不能解决动态障碍的时间冲突问题?
相关阅读:《Planning Algorithms》的离散规划与搜索相关内容。[1]
六、第五阶段:采样式运动规划
1. 重点算法
| 算法 | 核心思想 | 重点理解 |
|---|---|---|
| PRM | 用采样点和局部连接构建路线图 | 多次查询、图连通性与局部规划器 |
| RRT | 通过随机采样扩展搜索树 | 最近邻、扩展策略、Voronoi 偏置 |
| RRT-Connect | 双向树交替扩展与连接 | 两棵树的连接方式及连接可行性 |
| RRT* | 选择更优父节点并重连邻域 | 邻域规模、代价传播与渐近最优性 |
| Informed RRT* | 利用已有解限制有改善潜力的采样区域 | 代价下界与采样区域的关系,作为扩展阅读 |
2. 概率完备性与渐近最优性
概率完备性:在相应可行性、采样和局部连接假设下,采样数量增加时,找到可行解的概率趋于 1。
渐近最优性:在相应假设下,随着采样数量增加,最优已知解的代价以指定的概率意义趋近最优值。
两者回答不同问题,均不能直接解释为有限计算时间内必定找到全局最优解。[1][4]
3. 思考题
- RRT 为什么倾向于扩展尚未充分探索的区域?狭窄通道为何困难?
- RRT 与 RRT* 的目标、结构和理论保证有哪些区别?
- 几何空间中的直线连接为什么未必适用于带动力学约束的状态空间?
相关阅读:《Planning Algorithms》采样规划章节;Karaman 与 Frazzoli 的最优采样规划论文。[1][4]
七、第六阶段:多旋翼动力学与微分平坦性
1. 姿态与刚体运动
重点掌握世界坐标系、机体坐标系、旋转矩阵、欧拉角、单位四元数,以及 、 的基本含义。
理解
并始终明确向量和角速度在哪个坐标系中表达。[5]
2. 多旋翼动力学
采用世界坐标系竖直向上、推力沿机体正 轴的约定,忽略空气阻力时:
其中 为总推力, 为机体系力矩, 为惯量矩阵, 为角速度对应的反对称矩阵。
理解欠驱动、姿态与平移加速度的耦合、总推力与电机分配之间的关系。按“双积分器 → 三积分器 → 刚体动力学 → 含阻力与执行器限制的模型”逐步比较模型保留和省略的约束。[6][12]
3. 微分平坦性
对标准四旋翼模型,重点学习以位置和偏航角为平坦输出的表示:
在适用模型与非奇异条件下,状态和输入可以由平坦输出及其有限阶导数恢复。[6][12]
由平移动力学直接得到
进一步学习如何结合偏航要求恢复姿态,如何通过 jerk、snap 及偏航导数恢复角速度和力矩相关量。
4. 思考题
- 平坦性与线性化有什么区别?
- 为什么平坦输出不能任意指定为无约束的曲线?
- 零合加速度、姿态构造退化等奇异情形会带来什么问题?
- 为什么只限制速度和加速度,还不足以保证所有执行器输入可行?
相关阅读:《Modern Robotics》姿态相关章节;Minimum Snap 论文;含旋翼阻力的平坦性论文。[5][6][12]
八、第七阶段:连续轨迹表示与 Minimum Snap
本系列对应文章:从路径到轨迹、多项式轨迹、分段多项式轨迹、Minimum Jerk、Minimum Snap、Bézier 曲线、B 样条
1. 分段多项式与连续性
使用局部时间表示第 段轨迹:
重点掌握端点状态、航点约束、段间连续性与多项式阶数之间的关系。区分 、、 等连续性要求,并结合平坦性理解不同导数连续性对飞行状态和输入的意义。[6][7]
2. Minimum Jerk 与 Minimum Snap
学习目标函数
在固定分段时间下,把代价写成二次型,并把端点与连续性约束写成线性形式:
重点推导代价矩阵、约束矩阵及其稀疏结构。加入一般避障约束或自由时间变量后,不能继续默认整个问题是凸二次规划。[2][6][7]
3. Bézier 与 B 样条
| 表示 | 重点理论 |
|---|---|
| Bézier 曲线 | Bernstein 基、多项式次数、端点性质、凸包性质、导数控制点 |
| B 样条 | 基函数、次数、节点向量、节点重数、局部支撑、连续性、导数表示 |
需要区分“控制点是自由空间中的点”和“相关控制点位于同一个凸自由区域”。后者可以结合凸包性质构造轨迹包含的充分条件,前者本身不够。[8][9]
4. 时间归一化
对固定形状的归一化轨迹 ,令 ,则
由此理解时间伸缩对导数与平滑代价的影响。该关系针对固定归一化形状的时间缩放;固定物理端点导数时,需要同时检查边界条件是否仍然成立。
5. 思考题
- 如何推导一段多项式的 snap 代价?
- 为什么平滑代价不等于飞行时间或实际电能消耗?
- 多项式系数、端点导数和样条控制点三种参数化各有什么特点?
相关阅读:Minimum Snap、高效多项式轨迹规划与 Fast-Planner 核心论文。[6][7][9]
九、第八阶段:动力学约束下的搜索
本系列对应文章:Kinodynamic A*
1. 从位置空间转向状态空间
以双积分器为例:
在恒定输入 和传播时间 下:
理解运动基元、控制离散化、状态传播、终端状态与可达性。位置相同但速度不同的状态,通常不能视为具有相同后续运动能力。
2. 重点算法与理论
Kinodynamic A* 是主线,重点掌握状态节点定义、运动基元扩展、代价累积、碰撞检查、约束检查、启发函数以及末端连接。[9]
进一步理解状态格点和动力学约束下的采样规划,并比较它们如何处理局部连接问题。[1]
3. 关键推导:最优控制启发函数
学习从放松障碍或部分约束的两点边值问题构造启发函数,例如:
满足简化动力学及给定起终状态。
重点理解为何“放松后的最优代价”可能形成原问题的下界,以及这一结论如何依赖模型、目标和约束之间的包含关系。[9]
4. 思考题
- 几何 A* 后接平滑器,为什么不等价于动力学搜索?
- 控制采样和状态离散化如何改变可搜索的解集?
- 对简化模型可行与对完整多旋翼动力学可行有什么区别?
十、第九阶段:避障轨迹优化与安全飞行走廊
本系列对应文章:B 样条轨迹优化
1. 优化问题的基本形式
设 为轨迹形状参数, 为分段时间,考虑
并根据建模选择加入边界、动力学和几何约束。
重点区分目标函数中的偏好、软罚项与必须满足的硬约束,理解权重、量纲、初值和局部极小值的影响。[2][9][11]
2. 基于距离信息的优化
设障碍距离为 ,安全阈值为 ,可构造单点罚函数
在距离可微且罚项激活的位置:
进一步学习轨迹参数上的链式求导,以及距离场在最近障碍切换处的非光滑性。
对照理解 Fast-Planner 中的距离场与样条优化,以及 EGO-Planner 在不建立完整 ESDF 时获取避障信息的思路。ESDF-free 不等于不使用环境信息或不进行碰撞判断。[9][10]
3. 安全飞行走廊
用凸多面体表示自由空间中的局部安全区域:
重点学习凸分解、相邻走廊的交叠、轨迹段与走廊的对应关系,以及利用 Bézier / B 样条凸包性质构造包含约束。[8]
4. 两条路线的理论比较
| 比较维度 | 距离代价路线 | 安全走廊路线 |
|---|---|---|
| 几何信息 | 障碍距离、方向或局部引导信息 | 凸自由区域及其半空间表示 |
| 避障表达 | 常以软罚项或距离约束表达 | 常以轨迹包含约束表达 |
| 需要分析的问题 | 局部极小值、梯度有效性、罚项是否满足要求 | 走廊保守性、连通性、轨迹包含条件 |
| 不能直接推出的结论 | 代价低不等于整段连续轨迹安全 | 有走廊不等于任何参数化轨迹都自动位于其中 |
5. 思考题
- 有限权重罚项为什么不能自动保证零约束违反?
- 碰撞检查和碰撞约束有什么区别?
- 为什么固定时间下的子问题是凸的,整个时空联合优化问题却未必是凸的?[2][8][11]
十一、第十阶段:MINCO 与时空联合优化
1. MINCO 与 GCOPTER 的关系
MINCO 是面向最小控制努力轨迹的稀疏参数化,不是图搜索或采样扩展算法。GCOPTER 则是在相关参数化、几何约束处理和优化方法之上构建的多旋翼轨迹优化框架。[11]
2. 重点理论
| 内容 | 需要理解的问题 |
|---|---|
| 最小控制努力结构 | 哪些最优性条件限制了分段多项式的形式? |
| 中间点与分段时间参数化 | 如何由较少参数恢复大量多项式系数? |
| 带状线性系统 | 连续性与局部连接为何带来结构化求解? |
| 梯度传播 | 目标对系数的梯度如何传播到中间点和时间? |
| 几何约束变换 | 如何表达点或轨迹与可行区域的关系? |
| 时空联合优化 | 形状和时间怎样共同影响平滑性与动力学约束? |
3. 关键推导
围绕系数恢复关系
学习隐式求导:
再结合目标函数的链式法则,理解如何求取对中间点 和时间 的梯度,而不是显式构造全部中间 Jacobian。[11]
4. 思考题
- 参数化带来的结构性最优,与外层避障优化的最优性有什么区别?
- 为什么快速恢复系数,并不意味着非凸规划获得了全局最优解?
- 时间正值约束及边界条件在参数化中起什么作用?
相关阅读:《Geometrically Constrained Trajectory Optimization for Multicopters》。[11]
十二、第十一阶段:最优控制、轨迹跟踪与 MPC
1. 最优控制问题
学习有限时域最优控制的基本形式:
满足动力学、边界条件、状态约束与输入约束。
先理解状态、控制、轨迹和价值函数的关系,再学习直接打靶、直接转录与直接配点。动态规划、Hamilton–Jacobi–Bellman 方程和 Pontryagin 极小值原理可作为进一步的理论扩展。[1][3]
2. LQR 与轨迹跟踪
在线性模型
及二次代价下,重点掌握 Riccati 方程、状态反馈、可稳定性与可检测性条件。进一步理解沿参考轨迹线性化、误差动力学和时变 LQR。[3]
3. MPC
学习离散有限时域问题:
满足
重点理解滚动时域、状态反馈、预测长度、终端代价、终端集合、递归可行性和闭环稳定性。仅仅反复求解有限时域问题,不自动获得这些性质。[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。

