路径规划 | 随机采样算法:PRM、RRT、RRT-Connect、RRT*

article/2025/10/24 12:38:31

基于图搜索的路径规划算法主要用于低维度空间上的路径规划问题,它在这类问题中往往具有较好的完备性,但是需要对环境进行完整的建模工作,在高维度空间中往往会出现维数灾难。为了解决这些问题,本文将介绍基于随机采样的路径规划算法。这类算法适用于高维度空间,它们以概率完备性(当时间接近无限时一定有解)来代替完备性,从而提高搜索效率。

基于随机采样的路径规划算法又分为单查询算法(single-query path planning)以及渐近最优算法(asymptotically optimal path planning),前者只要找到可行路径即可,侧重快速性,后者还会对找到的路径进行逐步优化,慢慢达到最优,侧重最优性。本文介绍的单查询方法为概率路图算法(Probabilistic Road Map, PRM)快速随机扩展树算法(Rapidly-exploring Random Tree, RRT)RRT-Connect算法,渐近最优算法有RRT*算法

概率路图算法(Probabilistic Road Map, PRM)

PRM算法首先使用随机采样的方式在环境中建立路径网络图,将连续的空间转换为离散的空间,然后在路径网络图上进行路径规划,解决在高维空间中搜索效率低的问题。

算法流程如下:

  • 采样:在地图中随机撒点,剔除落在障碍物上的点
    img

  • 生成概率路图:根据点与点间的距离是否存在直线通路将上步中得到的采样点进行连接
    img

  • 搜索路径:使用图搜索算法(如Dijkstra算法)在上步得到的路图中搜索出一条从起点到终点的最短路径
    img

其中采样点的数量采样点间存在通路的最大距离是路径规划成功与否的关键。

采样点太少,可能会导致路径规划失败,下图(a)中不能生成完整的路图,导致规划失败;而通样是300个采样点,图(b)则能生成一个完整的路图
img
采样点数量增加,搜索到的路径会逐渐接近最短路径,但同时搜索效率会降低,如下图:
img
采样点间存在通路的最大距离对规划结果的影响和以上类似:距离太小,会导致规划失败;距离太大,会降低搜索效率。如下图(a),由于设置的最大距离太小,不能生成一张完整的路图,导致规划失败;而图(b)虽然能找到路径,但是生成的路图中存在很多冗余通路。
img
PRM算法参数少、结构简单,能够提高高维空间搜索效率,也能在生成概率路图时添加机器人的运动学约束,使最终生成的路径符合机器人的运动学模型。同时,随机采样得到的概率路图只需要建立一次就可以一直使用,重用性强。但由于采样过程是完全随机的,得到的节点大多数都偏离最终路径,会增加额外的计算量。

快速随机扩展树算法(Rapidly-exploring Random Tree, RRT)

RRT算法是一种单查询(single-query)算法,目标是尽可能快的找到一条从起点到终点的可行路径。它的搜索过程类似于一棵树不断生长、向四周扩散的过程,它以起点作为根节点构建一棵搜索树 T T T
在这里插入图片描述

它的算法流程用伪代码描述如下:


T . i n i t ( x i n i t ) T.init(x_{init}) T.init(xinit)

f o r for for i = 1 , . . . , n i = 1, ..., n i=1,...,n d o do do

x r a n d ← S a m p l e F r e e i x_{rand}←SampleFree_i xrandSampleFreei;

x n e a r ← N e a r e s t ( T , x r a n d ) x_{near}←Nearest(T, x_{rand}) xnearNearest(T,xrand);

x n e w ← S t e e r ( x n e a r , x r a n d ) x_{new}←Steer(x_{near}, x_{rand}) xnewSteer(xnear,xrand);

i f if if O b t a c l e F r e e ( X n e a r , x n e w ) ObtacleFree(X_{near}, x_{new}) ObtacleFree(Xnear,xnew) t h e n then then

T . a d d _ v e r t e x ( x n e w ) T.add\_vertex(x_{new}) T.add_vertex(xnew)

T . a d d _ e d g e ( x n e a r , x n e w ) T.add\_edge(x_{near}, x_{new}) T.add_edge(xnear,xnew)

V ← V ∪ { x n e w } ; E ← E ∪ { x n e a r , x n e w } V←V\cup\{x_{new}\}; E←E\cup\{x_{near}, x_{new}\} VV{xnew};EE{xnear,xnew};

r e t u r n return return G = ( V , E ) G=(V, E) G=(V,E);


其中 x i n i t x_{init} xinit表示起点, T T T表示随机树,在算法开始时,将起点 x i n i t x_{init} xinit加入到随机树。接下来使用 S a m p l e F r e e SampleFree SampleFree函数在自由空间中随机采样,获得一个采样点 x r a n d x_{rand} xrand,再使用 N e a r e s t Nearest Nearest函数获得随机树中距离 x r a n d x_{rand} xrand最近的一个节点 x n e a r x_{near} xnear;使用 S t e e r Steer Steer函数在 x n e a r x_{near} xnear x r a n d x_{rand} xrand的连线上距离 x n e a r x_{near} xnear步长 u u u的位置生成一个节点 x n e w x_{new} xnew,使用 O b t a c l e F r e e ObtacleFree ObtacleFree函数判断 x n e a r x_{near} xnear x n e w x_{new} xnew间是否存在直线通路,若存在则将 x n e w x_{new} xnew加入到随机树 T T T的节点集合中,同时将 x n e a r e s t x_{nearest} xnearest作为 x n e w x_{new} xnew的父节点,将边 ( x n e a r e s t , x n e w ) (x_{nearest}, x_{new}) (xnearest,xnew)加入到随机树 T T T的边集中

扩展流程如图:
img
上述是基础的RRT算法流程,它的采样过程是完全随机的,还可以在采样时以一定的概率直接采样终点作为 x r a n d x_{rand} xrand,加快搜索速度。

RRT作为一种随机采样的规划算法,它的复杂度也不受地图的离散程度影响,在高维空间中仍具有很高的搜索效率。但是前面提到RRT是一种单查询算法,只管尽快地找到可行路径,所以最终路径并不是最优的,甚至会非常“绕”。

RRT-Connect

RRT-Connect在RRT的基础上引入了双树扩展环节,分别以起点和目标点为根节点生成两棵树进行双向扩展,当两棵树建立连接时可认为路径规划成功。通过一次采样得到一个采样点 x r a n d x_{rand} xrand,然后两棵搜索树同时向采样点 x r a n d x_{rand} xrand方向进行扩展,加快两棵树建立连接的速度。相较于单树扩展的RRT算法,RRT-Connect加入了启发式步骤,加快了搜索速度,对于狭窄通道也具有较好的效果。
在这里插入图片描述
但是RRT-Connect和RRT一样,都是单查询算法,最终路径并不是最优的。接下来介绍基于随机采样的渐近最优路径规划算法

RRT*

RRT*算法是一种渐近最优算法。
在这里插入图片描述

算法流程与RRT算法流程基本相同,不同之处就在于最后加入将 X n e w X_{new} Xnew加入搜索树 T T T父节点的选择策略

RRT*算法在选择父节点时会有一个**重连(Rewire)**过程,也就是在以 X n e w X_{new} Xnew为圆心、半径为 r r r的邻域内,找到与 X n e w X_{new} Xnew连接后路径代价(从起点移动到 X n e w X_{new} Xnew的路径长度)最小的节点 X m i n X_{min} Xmin,并重新选择 X m i n X_{min} Xmin作为 X n e w X_{new} Xnew的父节点,而不是 X n e a r X_{near} Xnear。重连过程的示意图如下:
img

参考

Lavalle S M . Rapidly-Exploring Random Trees: A New Tool for Path Planning[J]. Research Report, 1999.
Jr J , Lavalle S M . RRT-Connect: An Efficient Approach to Single-Query Path Planning[C]// Proceedings of the 2000 IEEE International Conference on Robotics and Automation, ICRA 2000, April 24-28, 2000, San Francisco, CA, USA. IEEE, 2000.
Karaman S , Frazzoli E . Sampling-based Algorithms for Optimal Motion Planning[J]. The International Journal of Robotics Research, 2011, 30(7):846-894.


http://chatgpt.dhexx.cn/article/LZ4awnlc.shtml

相关文章

基于matlab的RRTRRT*算法实现以及可视化

学习记录-基于采样的路径规划算法 内容来源RRT主要步骤动态效果展示优缺点:自己进行的改进尝试 RRT*主要步骤NearCChooseParentrewire总结及动态效果图 Informed RRT*其他优化RRT的方式总结 内容来源 记录学习深蓝路径规划课程-基于采样的路径规划一节的作业和笔记…

RRT基本概念

原文地址 快速探索随机树(RRT)是一种通过随机构建空间填充树来有效搜索非凸,高维空间的算法。树是从搜索 空间中随机抽取的样本逐步构建的,并且本质上倾向于朝向大部分未探测区域生长。 RRT由Steven M. LaValle 和James J. Kuf…

SQLSERTVER安装教程

很久没有安装过这个了,今天安装有点生疏了,这里记录一下分享 分为三块块1、下载地址,2、安装图解 ,3、安装失败问题 1、sqlserver 2008 r2 百度下载地址链接:下载 cn_sql_server_2008_r2_enterprise_x86 Microsoft…

sqlserver安装目录_SQL Server 2016数据库安装

SQL SERVER 2016较之前的SQL安装有些不同,下面详细介绍如何将SQL SERVER 2016安装到Windows的服务器。 一、第一阶段,SQL安装 1.首先具备SQL SERVER 2016的安装介质。一般可能是下载的为ISO光盘镜像文件。在Windows Server 2016操作系统和Windows 10的系统中可以使用鼠标的右…

Sql Server安装时遇到polybase问题

错误:以域格式(域\用户名)指定账户。对于本地用户,请采用(本地主机\用户名)格式。 在安装时选了polybase,需要手动输入账户,如果不需要该服务或没有账户,可以不要勾选po…

SQL Server 安装教程

目录 第一阶段:安装SQL Server向导 第二阶段:安装SQL Server 第三阶段:安装SQL Server管理工具 运行SSM 参考链接 第一阶段:安装SQL Server向导 以下以中文版为例: 中文版官网:https://www.microsoft.com/…

SQL Server 基础操作(一)安装数据库

Windows server 2012 R2系统 安装SQL Server 2008数据库 1.创建虚拟机---安装Windwos server 2012 R2 操作系统 2.安装windows server 2012 R2系统完成后,更换SQL Server 2008 iso镜像 3.安装.NET Framework 3.5,一直点击下一步在.NET Framework 3.5选项…

sqlserver 2016 安装

1、环境介绍 操作系统:windows server 2016 sqlserver版本: sqlserver 2016 下载地址: https://msdn.itellyou.cn/ 2、双击下载下来的镜像,打开setup开始安装 3、选择全新安装 4、选择输入秘钥,下一不 5、接受许可…

SQLserver的安装

SQLserver的安装 一、SQLserver的安装步骤 1.SQLserver的下载:官网下载网址 下载Developer版本即可。 2.运行完成后安装类型选择“基本” ,之后选择合适的语言和安装位置。 3.显示“成功完成安装”后,不急于点击完成退出,应点…

SQL Server无法安装问题

SQL Server无法安装问题 一、软件安装“无法使用此产品的安装源,请确认安装源存在并且你可以访问它安装过程中遇到无法访问您试图使用的功能所在的网络位置问题一、软件安装“无法使用此产品的安装源,请确认安装源存在并且你可以访问它 原因:之前版本卸载没有卸载干净(主要…

mysql 2005 安装教程_sql2005 安装教程 图文

SQL2005安装安装步骤 安装Microsoft SQL Server 2005 数据库步骤: 第一步:将Microsoft SQL Server 2000安装光盘放入光驱中,在光驱目录下,点击Setup.exe安装程序开始安装过程, 或使用镜像安装文件。选择“基于X86的操作…

SQLserver2005 安装

解压cs_sql server_2005_ent_x64_dvd.iso镜像文件。打开Servers文件夹找到setup.exe双机点击安装。出现程序兼容助手提示,点击运行程序。 3、用户许可协议,选择我接受,点击下一步。 4、安装必要组件,点击安装。 5、安装必要组件&a…

Elasticsearch插件:elasticsearch-sql安装和使用

使用此插件,您可以使用熟悉的SQL语法查询elasticsearch。您还可以在SQL中使用ES函数。 有两种方法可以使用此插件: 使用其余的api http://localhost:9200/_sql?sqlselect * from indexName limit 10 2. 或者通过浏览器访问 http://localhost:9200/…

sqlserver2012安装教程

前言: 我们实验室开发前端界面一般用.net,然后数据库用微软的Sqlserver,搭配起来做一些系统框架还是很方便的。记得本科的时候安装Sqlserver的时候好像出了点问题,不知道是不是因为先安装了VS,然后这一次我打算先安装Sqlserver&am…

SQLServer2008安装教程

因为对接老系统的数据,上面使用的SQLServer2008,所以本机也需要SQLServer2008作对接。 首当其冲的就是SQLServer2008的安装。 1.下载sqlServer2008的安装包 2.在安装包中点击setup.exe 2.选择安装,再选择全新安装 3.安装规则检测&#xff…

SQL server安装问题汇总

SQLTOC 欢迎使用Markdown编辑器 安装SQL Server遇到的几个问题 1.安装过程中最后出现“数据库引擎服务安装失败”,报错代码:1722,安装时选择“全新SQL server安装或向现有安装添加功能”,安装成功了。 2.安装过程出现“以前的某…

MySQL可视化工具HeidiSQL安装与使用

之前mysql可视化工具一直使用navicat for mysql工具,后来想学一下其他的数据库,把navicat for MySQL卸载后,网上找教程下载安装了navicat premium,但是破解之后的一段时间内,激活码失效了,由于navicat for mysql工具安装也需要破解,便不想安装了,就找到这款免费的MySQL可视化工…

SQL安装步骤及可能遇到的错误

SQL Server 2017下载内容分为两部分SQL Server 2017 Developer和SQLserver Mamngement Studio 第一部分: 1.官网下载SQL Server 2017 Developer https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.打开安装软件,选择自定义 3选择语…

mysql安装步骤

针对windows操作系统,使用mysql8免安装版本。 1、在官网下载对应的压缩文件,放到本地文件夹下,解压缩。 2、配置Path环境变量:指向mysql的bin文件夹路径,C:\software\mysql-8.0.23-winx64\bin。 3、在mysql根目录下…

我的老公是IT男

我家老公是个资深IT男,结婚这么多年以来,工作日一起吃晚餐的次数屈指可数!因为要加班~ 对老公的工作谈不上支持,但至少不能扯后腿吧。 晚上自己吃饭自己遛弯,倒也还清净。 成家立业后,才觉出…