目录
参考论文:Theta*: Any-Angle Path Planning on Grids
A*算法局限性:A*可以快速找到网格路径(即受网格边缘约束的路径),但网格路径通常不是真正的最短路径(即地形中的最短路径),因为它们的潜在标题被人为地限制为45度的倍数。
即:A*算法寻找的路径角度限制在45°的倍数,不是真正的最短路径
A*存在两种路径平滑方法:PS-A*和Theta*
PS-A*是一种后处理方法。这种后处理技术来找到一条看上去真实的路径是十分困难的。一个原因是A*搜索只保证找到最短路径的其中一条,然而一些路径可能会比其他路径更有效率的来执行平滑处理。比如A*能非常有效率的在2D网格中找到一条路径,它找到的路径是非常难以做平滑处理的且看起来非常不真实,因为它偏向于找对角线的路径。
参考论文:Near Optimal Hierarchical Path-Finding
Theta*:用于任何角度路径规划,它沿网格边缘传播信息,而不限制网格边缘的路径。不需要后处理。
该算法相对于A*:
1.使用网格的角点而不是网格中心点
2.允许一个顶点的父节点是任意点
PS-A*和Theta*算法都是基于A*算法的改进
下列为PS-A*和Theta*算法伪代码
Theta*流程图:
Theta*算法结果:
Theta*算法有点多,我放到资源里,有需要的自取
另外推荐一篇论文,可以约束机器人的拐弯角速率ARC-Theta*算法
论文:Angular rate-constrained path planning algorithm for unmanned surface vehicles
ARC-Theta*:通过适应机器人的转向能力来限制视距和角速度的范围。因此,当节点在Theta*上展开时,计算每个LOS的角速率。
角速率r定义为给定机器人的速度V与转弯半径r的比值:R = V/R
ARC-Theta*我做了一部分,但是没有加入路径平滑部分,因为后续不是我的课题目标,就没有继续优化了。
祝各位生活愉快~