🚀 路径规划·实战
A* → RRT*
📚 30 章 · 从零到项目
01 · 全景
课程导论与算法全景
⭐
路径规划问题定义 · 全局vs局部 · A*与RRT江湖地位 · 课程项目总览
全局
入门
02 · 地图
环境建模与地图表示
栅格地图 · 八叉树地图 · 代价地图 · ROS map_server
栅格
ROS
03 · 基础
基础搜索算法回顾
BFS · DFS · Dijkstra 原理与实现
BFS
Dijkstra
04 · 启发式
启发式搜索入门
启发式函数 (Manhattan, Euclidean, Chebyshev) · 贪心最佳优先
启发式
贪心
05 · 核心
A*算法核心原理
f = g + h 详解 · 算法伪代码 · 最优性证明 (Admissible & Consistent)
A*
最优
06 · 实现
A*手写实现 (Python)
数据结构 (Open/Closed List) · 核心循环 · 路径回溯
Python
编码
07 · 优化
A*算法优化技巧
二叉堆优化Open List · Weighted A* · Jump Point Search 简介
堆
JPS
08 · 实战
A*实战:ROS Navigation
ROS Navigation Stack中的A* · 栅格地图规划 · 可视化
ROS
导航
09 · 进阶
A*进阶:D* 与 LPA*
Dynamic A* (D*) · Lifelong Planning A* (LPA*) 思想引入
动态
增量
10 · 总结
A*总结与作业
常见陷阱 (死循环、非最优) · 作业:实现带权重的A*
作业
权重
11 · 随机
从确定性到随机性
为什么需要随机采样?高维空间中的维度灾难
随机
维度
12 · RRT
RRT算法核心原理
算法伪代码 · 随机采样与最近邻 · 树扩展与碰撞检测
RRT
采样
13 · 实现
RRT手写实现 (Python)
数据结构 (节点与边) · Sample, Nearest, Steer, CollisionFree
Python
RRT
14 · 可视化
RRT算法可视化
Matplotlib实时绘制树扩展 · 分析算法特性
可视化
Matplotlib
15 · 缺陷
RRT算法缺陷分析
非最优性 · 路径不平滑 · 狭窄通道问题
缺陷
分析
16 · RRT*
RRT* 算法:渐进最优
渐进最优性原理 · Rewire过程 · 与RRT对比
RRT*
最优
17 · 实现
RRT* 手写实现 (Python)
增加Cost计算与Rewire逻辑
Python
Rewire
18 · 优化
RRT* 优化:KD-Tree & Bi-RRT*
KD-Tree加速最近邻 · Bi-RRT* 双向搜索
KD-Tree
双向
19 · 实战
RRT系列实战
复杂障碍物环境 · 参数调优 (步长、采样概率)
调参
实战
20 · 总结
RRT总结与作业
作业:实现Bi-RRT并对比RRT
作业
对比
21 · 平滑
路径平滑处理
B样条 · 贝塞尔 · 多项式插值 · Conjugate Gradient Smoothing
平滑
样条
22 · 碰撞
碰撞检测技术
AABB与OBB · GJK算法 · FCL库
碰撞
GJK
23 · 混合
混合算法:A* + RRT
先A*后RRT · Hybrid A* (车辆路径规划)
混合
Hybrid A*
24 · 动态
动态环境路径规划
DWA · TEB · RRT动态变种
DWA
TEB
25 · 多机
多机器人路径规划
协同A* · 优先级规划 · 基于RRT分布式
多机器人
协同
26 · ROS集成
路径规划在ROS中集成
move_base框架 · global_planner与local_planner接口
ROS
move_base
27 · 实战一
项目实战 (一) 仿真环境
Gazebo + TurtleBot3 · 编写自定义全局规划器
Gazebo
TurtleBot
28 · 实战二
项目实战 (二) A*插件
实现A*全局规划器插件 · 仿真中测试
A*插件
测试
29 · 实战三
项目实战 (三) RRT*插件
实现RRT*全局规划器插件 · 对比A*与RRT*性能
RRT*插件
对比
30 · 总结
课程总结与未来展望
路径规划前沿 (Learning-based Planner) · 职业发展建议
前沿
职业