为什么a*算法采用哈密尔顿距离作为启发函数比不在位数为启发函数的性能要好?_【论文研读】路径规划中的Hybrid A*算法...

8848b37fb88305764d8c326d8b9bb338.png

本文目的

由于在carla-autoware的示例中使用了hybrid A* 算法,所以本文基于以下两篇文章对hybrid A* 算法过程进行整理:(文中挑选了一些个人认为便于理解算法的图片,均来自于以下这两篇文章)

  1. 《Practical Search Techniques in Path Planning for Autonomous Driving》
  2. 《Path Planning in Unstructured Environments: A Real-time Hybrid A* Implementation for Fast and Deterministic Path Generation for the KTH Research Concept Vehicle》
  3. 第二篇论文ROS实现的github链接:https://github.com/karlkurzer/path_planner

其实我觉得对这两篇文章还有一些理解不到位的地方,望指正!下周看完autoware对应的源码之后再来更新这篇。

一、算法简介

解决的问题

该算法解决的问题是:假设无人车有充分的感知和定位能力,则其能够在线重新规划,生成障碍物地图,并且能够在未知环境中行驶。

其他算法中常见问题

开发实际无人驾驶的路径规划器存在的问题:

  1. 机器人的控制空间、轨迹空间都是连续的,而现存算法基本都是适用于离散情况的,所以生成的路径是不光滑的。
  2. 不满足机器人的非完整性约束

算法的大致过程

  1. 在连续坐标系下进行启发式搜索(改进了A*算法)
  2. 第二个阶段用数值非线性优化的方法(即共轭梯度下降法)对生成路径的“质量”进行提升,使其至少是局部最优的。(下文对这两个过程进行详细说明)

二、STAGE 1: 启发式搜索+损失函数设计

第一个阶段其实是对传统的A* 算法进行改进,与之不同的是,hybrid A* 是在连续坐标系下进行启发式搜索,并且能够保证生成的轨迹满足车辆非完整性约束(下文对车辆的非完整性约束进行补充),但算法运行过程中该路径并不一定是全局最优的,尽管如此,这条路径是在全局最优解的“附近”(这里的全局最优解指的是由传统A* 算法生成的)。下图(来自文献1)可以很好地解释传统A* 与hybrid A* 的异同。两种算法都是基于网格世界的(grid world),A* 是赋予每个网格的中心点相应的损失并且算法只访问这些中心点,而hybrid A* 是先在这些网格中挑选满足车辆3D连续状态的点,并将损失赋值给这些点。(下图中间的图是用其他A* 变体算法实现的)

961daf2bef85b78164fa048864ff1c48.png

1. 搜索中所用的两种启发函数

在传统的A* 算法中,由于启发函数的选取不同,运行算法后节点扩张(expansion)的效率也就不同(目的是希望算法在遍历最少的节点的情况下找到最优路径)。传统的A* 算法的启发函数一般是2D欧几里得距离,而hybrid A* 算法构造了两个启发函数。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值