Hybird A*算法

  • 操作步骤:
  • 小结

  路径规划做为机器人导航中的一个重要的技术,一个好的路径规划可以极大地提高后续跟踪控制的效果,对机器人的运行好坏程度有非常直观的表现。从最初搜索一条有效路径(如Dijkstra、A*、RRT等),到现如今通过前端搜索,后端优化的方式得到一条考虑机器人运动学、动力学,安全性的高质量路径,众多学者、工程师提出了非常有效的路径规划方法。
  Hybird A* 算法只需通过搜索就可以得到一条平滑的高质量路径,在计算效率上有一定的优势(特别是在宽阔的位置)。本文需要有一定的路径规划基础,如掌握A*算法。
   具体算法可以参考:

Hybire A* 算法源程序 (需要安装ROS及相应依赖包)

操作步骤:

  1. 将初始位置节点放入列表openlist和列表closelist中;
  2. 如果openlist为空,没有有效路径,结束程序,否则,从openlist中选出启发值最小的节点 NodeminNode_{min}Nodemin​并移除出openlist;
  3. 根据规则生成连接节点 NodeminNode_{min}Nodemin​ 和目标点 NodegoalNode_{goal}Nodegoal​ 的曲线,如果曲线有效,则成功完成路径搜索,否则,根据机器人运动学模型以NodeminNode_{min}Nodemin​ 为起点扩展新的节点 NodenewNode_{new}Nodenew​,并计算相应的距离、启发值等;
  4. 如果节点 NodenewNode_{new}Nodenew​ 不在closelist中,则将节点 NodenewNode_{new}Nodenew​加入到closelist和openlist中,否则,以节点到起点的距离为判断标准更新openlist和closelist中与节点 NodenewNode_{new}Nodenew​对应的节点;
  5. 如果目标节点NodegoalNode_{goal}Nodegoal​ 在closelist中,则成功完成路径搜索,否则继续从步骤2开始运行;
      以上Hybird A* 算法与基础A*算法的主要区别是在步骤3的“根据规则生成连接节点 NodeminNode_{min}Nodemin​ 和目标点 NodegoalNode_{goal}Nodegoal​ 的曲线”。这里的“规则”非常丰富,无人驾驶上用得比较多的是Reeds-shepp,以及Dubins、高次曲线、贝塞尔曲线等,也可以根据自己的需求定义曲线。以下为曲线示意图。
图1 图2 图3 图4

小结

  1. Hybird A* 算法以较低的成本生成一条比较光滑的路径,但不是最优;
  2. 可以用不同方法生成多条曲线,选择其中一条最优的做为最终路径,如路径最短、曲率变化平缓等;
  3. 当步骤3的扩展步长较大时或曲线生成的条件过严,在地形狭窄的地方有可能无法搜索出路径;
  4. 同一个栅格只能存在一个节点;
图1 图2
图3 图4

Hybird A* 算法相关推荐

  1. python 非线性规划_自动驾驶运动规划-Hybird A*算法(续)

    Hybird A*算法保证生成的路径是车辆可实际行驶的,但它仍然包含很多不必要的车辆转向操作,我们可以对其进行进一步的平滑和优化. Objective Function 对于Hybird A*生成的车 ...

  2. Hybird A*算法

    1, 什么是Reeds-Shepp 和Dubins曲线 Reeds-Shepp曲线和Dubins曲线 A与HybridA差异及entrypoint解析

  3. 常用的优化理论类型介绍

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 一.常用优化的概念 1.凸优化与非凸优化 2.建立优化问题一般思想 ...

  4. (3)【全局路径规划】图搜索的路径探索方法--DFS\BFS\DFS-ID、贪心算法、Dijkstra和A*、JPS、.hybird A*、

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 图搜索的方法 0.基础知识介绍 1)图的概念 2)规划配置空间(C- ...

  5. 算法题+JVM+自定义View,隔壁都馋哭了

    反思 昨晚去北京大望路阿里面试, 产生了严重的挫败感, 羞愧难当. 比不得从大学就有目标有理想, 一直在为目标努力学习技术的同学, 在大学唯一能拿得出手的就是参加了电子设计大赛, 学了点嵌入式的知识. ...

  6. 【每周一篇】常用推荐算法总结

    本文主要来源:阿里云天池技术圈常用推荐算法(50页干货) 部分进行总结和详细解释(原文属于比较精炼没有侧重点的提纲) 适合和我一样的推荐算法小白和入门者 主要内容 一.推荐系统简介 信息过载 从海量信 ...

  7. 机器学习中的数学——粒子群算法(Particle Swarm Optimization, PSO)(三):改进的粒子群算法

    分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...

  8. 近十年的VI-SLAM算法综述与发展(附链接)

    本文转载自INDEMIND,作者半不闲居士@CSDN.文章仅用于学术分享. 本文约7000字,建议阅读14分钟 本文为作者在从事Slam相关工作中对这几年遇到以及改进过相关VIO算法内容总结. 1.背 ...

  9. 了解Hybird和小程序和react-native的技术架构

    1. Hybrid App 1.1 Hybrid app的优势 Hybrid app是介于native和web之间的一种混合app,它既有native良好的用户体验和兼容性特点,又具有web跨平台和快 ...

  10. 重点:机器学习总结之各算法常用包和函数

    基本操作常用函数及包 预测函数:predict() type="prob"判别该量度的昆虫归类为A.B和C的概率:type="response":判别该量度的昆 ...

最新文章

  1. 新书上市 | C程序员! 这可能是你搞定指针最轻松的方式
  2. c语言答案填空选择,C语言试题配答案
  3. Java8新特性之函数式接口
  4. vue vue的table表格自适应_vue table autoHeight(vue 表格自动高度)
  5. XidianOJ 1090 爬树的V8
  6. spring与struts2整合出现错误HTTP Status 500 - Unable to instantiate Action
  7. poj3463 最短路和次短路 计数
  8. 三星note10显示无法连接服务器,三星Note10+ 体验后遇到的小麻烦
  9. matlab 打开文件bin
  10. Java基础系列:读取yml文件
  11. Word 前一页以表格结尾的空白页的删除
  12. 手把手简单制作一个 Java 木马程序
  13. Windows 此电脑->设备与驱动器->图标管理
  14. 还有不了解cookie的么,什么是cookie?cookie一直在用么?
  15. sql数据库本地服务器不显示,sql数据库本地服务器不显示
  16. (2000-2020高精度世界人口密度地图下载分享【附下载链接】
  17. 对于‘用C#编写一个员工工资计算’问题的代码编写风格和结构设计考虑的比较【发现自己还是太弱,大家可以在评论区中提出我代码中的不足】
  18. 苹果发布了没有太多更新的 iOS 13 beta 8;一次编码、到处运行;SwiftUI 的两个特性;如何让网站加载更快...
  19. MySQL数据库简单的操作命令
  20. JS模块化(一):Commonjs

热门文章

  1. python中的chardet模块
  2. unity读取Json文件
  3. 大数据与云计算课后习题
  4. Pycharm通过ssh远程连接服务器
  5. 真实业务订单 拆单 架构与实战
  6. 五款交友APP对比评测,哪款交友app好用?
  7. IC芯片卡读写类(泛型模式)
  8. 设计模式:(工厂模式)
  9. html中字体 楷体_(收藏)css怎么设置字体为楷体?
  10. ReportMachine