HybridAStar(混合式A星)理论和代码学习
文章平均质量分 79
解析代码
一骑红尘荔枝来
这个作者很懒,什么都没留下…
展开
-
【HybridAtar论文阅读笔记】【Practical Search Techniques in Path Planning for Autonomous Driving】
🔤我们描述了一种实用的路径规划算法,该算法为在未知环境中运行的自动驾驶汽车生成了平稳的路径,在该环境中,机器人的传感器在线检测到障碍物。这项工作是受到2007年DARPA城市挑战赛的激励和实验验证的,机器人车必须自动驾驶停车场。我们的方法有两个主要步骤。第一步使用了众所周知的A搜索算法的变体,该变体应用于车辆的3D运动状态空间,但具有修改后的状态更高规则,可在A的离散节点中捕获车辆的连续状态。 (从而保证路径的运动可行性)。然后,第二步通过数字非线性优化提高了解决方案的质量,从而导致局部(且经常全局)最佳.原创 2022-07-01 22:39:34 · 3394 阅读 · 11 评论 -
混合式A星代码解析_4 修正优化算法smoothPath.cpp
本函数采用了递归调用的模式,不断去找的前任节点,不断更新路径,知道为空指针,意味着已经到了节点.5.2 smoothPath()功能:把回溯到的路径进行优化参数:步骤:5.2.1 初始化参数包括voronoi的尺寸,最大叠代次数和路径长度.的数据结构是.而,意味着的意思就是中节点的数量.totalWeight计算公式中的变量都是超参数,是固定值.5.2.2 开始叠代优化(1)从第三个点开始选取,每次选5个(2)如果有尖角,则跳过该点如下图所示,左2就是一个尖角.(3)分原创 2022-06-19 18:44:36 · 833 阅读 · 0 评论 -
混合式A星代码解析_3 A星算法程序algorithm.cpp
(1)状态空间(2)节点A星搜索的每个状态都是一个节点,算法中用到了两种类型:2D节点就是传统A星所使用的节点,主要是为了加入障碍物约束.3D节点是基于RR曲线生成的,是为了加入动力学约束.(3)表在A星搜索的过程中,有两种类型的表和,拓展过的点会加入到中,未被拓展过的节点加入中.关于Algorithm::hybridAStar函数的输入和返回参数,在algorithm.h中,有详细的说明.这里首先分析算法处理流程:4.2.2 设置一个二项堆BH来存放数据关于二项堆的概念,可看这个博客:参考博客原创 2022-06-19 01:20:33 · 1172 阅读 · 1 评论 -
混合式A星代码解析_2 规划主程序Planner.cpp
在main.cpp中,起主要作用的就是:规划算法都是在HybridAStar::Planner这个类内部进行运算的.所以主要分析以下类.在planner.h中,定义了很多对象,用于最终生成规划路径.hybridA星生成的路径:用于优化路径的平滑器:平滑后的路径:搜索的可视化:障碍物检测:voronoi图:规划时的珊格占用点:3.1 构造函数 Planner::Planner( )主要是订阅和发布消息(1)订阅消息(2)发布消息规划路径主函数采用结构的是只有当规划的起点和终点都有效时,才会原创 2022-06-19 01:19:44 · 969 阅读 · 0 评论 -
混合式A星代码解析_1 概述和框架
混合式A星代码解析,代码来自Kurzer, Karl.原创 2022-06-19 01:18:39 · 1616 阅读 · 0 评论