1.概率路线图(PRM)

概率路线图 Probabilistic Road Map(PRM),是一种图结构,将规划分为两个阶段:学习阶段和查询阶段

  • 学习阶段:

    • 在空间中随机的洒一些采样点,然后删除落在障碍物空间内的采样点
    • 连接距离最近的采样点,然后将路径穿过障碍物的路径删除
  • 查询阶段:
    • 地图简化为图搜索最短路径,可以使用A*或者Dijkstra

2.快速搜索随机树(RRT)

2.1 RRT

  快速搜索随机树 Rapidly-exploring Random Tree(RRT),通过随机采样点并扩展树的方式找到一条路径

  由于每次都需要对比所有点与随机点的距离找到谁最近,这里采用了KD-tree来解决大计算量的问题,这种方法利用计算机中的数据结构,在不考虑改进RRT本身的情况下增加算法速度Kd-treeKd-tree

2.2 Bi-RTT

  与RTT思路相同,但一次随机采样点会让起始点和终止点同时生长一棵树,寻找一条可以使两棵树相连的路径

2.3 RRT*

  RRT算法找到的路径不具有最优性,RRT*尝试解决最优性的问题。RRT*中,采样->寻找最近点->移动一段距离得到新的点这三步初始流程相同

  • 查找Xnew附近范围的点
  • 计算这些附近的点,哪个从起始点到Xnew距离最短
  • 因为Xnear距离Xnew最短,所以我们将Xnew的父节点设置为Xnear
  • 最后更新这附近的路径,因为Xnew到X2距离更短,所以修改X2的父节点
  • 对比:
    • RRT中Xnew的父节点会直接标记为X2,但RRT*中Xnew的父节点会在一个范围内计算它到初始节点的距离择优
    • RRT*中有额外的rewire过程,它重新判断附近节点走哪条路径更优,修改父节点
    • RRT*找到路径后不会结束,而是一直迭代查找更优解直到循环结束

2.4 Kinodynamic-RRT*

考虑动力学的RRT*

2.5 Informed RTT*

2.基于采样的路径规划:RRT的更多相关文章

  1. 基于pgrouting的路径规划处理

    对于GIS业务来说,路径规划是非常基础的一个业务,一般公司如果处理,都会直接选择调用已经成熟的第三方的接口,比如高德.百度等.当然其实路径规划的算法非常多,像比较著名的Dijkstra.A*算法等.当 ...

  2. 基于Arcgis Engine 10.2(C#)+PostgreSQL 11(Postgis 3)+pgRouting 3.0实现使用数据库进行路径规划

    前言:最近在(被迫)使用ArcGIS Engine10.2(.NET平台)进行二次开发(桌面应用),因为想做一个最短路径查询的功能,而arcgis的网络分析又比较麻烦,于是想到了使用Postgis.但 ...

  3. V-rep学习笔记:机器人路径规划1

     Motion Planning Library V-REP 从3.3.0开始,使用运动规划库OMPL作为插件,通过调用API的方式代替以前的方法进行运动规划(The old path/motion ...

  4. RRT路径规划算法

    传统的路径规划算法有人工势场法.模糊规则法.遗传算法.神经网络.模拟退火算法.蚁群优化算法等.但这些方法都需要在一个确定的空间内对障碍物进行建模,计算复杂度与机器人自由度呈指数关系,不适合解决多自由度 ...

  5. RRT路径规划算法(matlab实现)

    基于快速扩展随机树(RRT / rapidly exploring random tree)的路径规划算法,通过对状态空间中的采样点进行碰撞检测,避免了对空间的建模,能够有效地解决高维空间和复杂约束的 ...

  6. ROS(indigo)RRT路径规划

    源码地址:https://github.com/nalin1096/path_planning 路径规划 使用ROS实现了基于RRT路径规划算法. 发行版 - indigo 算法在有一个障碍的环境找到 ...

  7. [python] A*算法基于栅格地图的全局路径规划

    # 所有节点的g值并没有初始化为无穷大 # 当两个子节点的f值一样时,程序选择最先搜索到的一个作为父节点加入closed # 对相同数值的不同对待,导致不同版本的A*算法找到等长的不同路径 # 最后c ...

  8. 基于谷歌地图的Dijkstra算法水路路径规划

    最终效果图如下: 还是图.邻接表,可以模拟出几个对象=>节点.边.路径.三个类分别如下: Node 节点: using System; using System.Collections.Gene ...

  9. python实现基于百度路径规划接口的坐标对获取两点驾车距离的计算

    今天为大家介绍一种通过python实现坐标对间距离数据的获取方法.接口采用百度开发的路径规划接口. 1.调用接口: 接口:(传入起点坐标串,结束坐标串:ak值需要注册百度开发者) 接口详细说明 htt ...

  10. PRM路径规划算法

    路径规划作为机器人完成各种任务的基础,一直是研究的热点.研究人员提出了许多规划方法:如人工势场法.单元分解法.随机路标图(PRM)法.快速搜索树(RRT)法等.传统的人工势场.单元分解法需要对空间中的 ...

随机推荐

  1. footer固定在页面底部的几种方法(转载)

    几种非常不错的方法,收藏学习:原文见https://blog.csdn.net/m0_37070714/article/details/77587753 方法一:footer高度固定+绝对定位 < ...

  2. .NET周刊【5月第2期 2025-05-11】

    国内文章 C#/.NET/.NET Core优秀项目和框架2025年4月简报 https://www.cnblogs.com/Can-daydayup/p/18865040 本文介绍了每月定期推荐的C ...

  3. Java基于线程池和AQS模拟高并发

    概述   <手写高并发下线程安全的单例模式>主要介绍使用枚举类实现JAVA单例模式,以及在高并发环境下验证此单例模式是线程安全的.本文借助ReentrantLock.CountDownLa ...

  4. 【目录】【中文】【deplearning.ai】【吴恩达课后作业目录】

    [目录][吴恩达课后作业目录] 吴恩达深度学习相关资源下载地址(蓝奏云) 课程 周数 名称 类型 语言 地址 课程1 - 神经网络和深度学习 第1周 深度学习简介 测验 中英 传送门 无编程作业 编程 ...

  5. js判断一个变量是否存在值得简单方法

    在编码过程中,有时候我们需要对一个变量判断其是否有值,这里有一种比较不错的方法判断: !!variable //返回True为存在值,返回False为不存在值 注意是双感叹号"!!" ...

  6. go 进阶训练营 微服务可用性(下)笔记

    降级: 减少工作量,丢弃不重要的请求. 确定具体采用哪个指标作为流量评估和优雅降级的决定性指标: 如 CPU.延迟.队列长度.线程数量.错误等 当服务进入降级时,需要执行什么动作? 流量抛弃或者优雅降 ...

  7. CRM item status error

    订单行项目显示状态的时候报错No status object is available for <Unknown Object>,表里也没有对应行项目的状态信息. 查了相关资料,说是用re ...

  8. 从困境到突破,EasyMR 集群迁移助力大数据底座信创国产化

    在大数据时代,企业对数据的依赖程度越来越高.然而,随着业务的不断发展和技术的快速迭代,大数据平台的集群迁移已成为企业数据中台发展途中无法回避的需求.在大数据平台发展初期,国内数据中台市场主要以国外开源 ...

  9. DotTrace系列:3. 时间度量之墙钟时间和线程时间

    一:背景 1. 讲故事 在用 dotTrace 对程序进行性能评测的时候,有一个非常重要的概念需要使用者明白,那就是 时间度量 (Time measurement),主要分为两种. 墙钟时间 线程时间 ...

  10. 电气设计软件有哪些?EPLAN让你成为专业工程师

    作为一名电气设计师,掌握适合自己的设计软件至关重要.在本文中,我们将向您介绍五款广受欢迎的电气设计软件,无论您是初学者还是专业设计师,这些软件都能帮助您轻松完成各类电气设计任务.让我们一起来了解这些实 ...