路径规划(RRT)

article/2025/10/8 17:14:36

路径规划的核心内容是:在有碰撞的环境中,规划出一条从起始点到目标点的无碰撞路径。

路径规划算法特点总结:

完备性:起始点与目标点之间有路径解存在,那么一定可以找到解,若找不到解则说明一定没有解存在;
概率完备性:是指若起始点与目标点之间有路径解存在,只要规划及搜索时间足够长,就一定能够确保找到一条路径解;
最优性:规划得到的路径在某个评价指标上是最优的 ;
渐进最优性:是指经过有限次规划迭代后得到的路径是接近最优的的次优路径,且每次迭代都是与最优路径更加接近,是一个逐渐收敛的过程。

关于路径规划算法,按照算法类型可以分为:
基于搜索的算法:其中重要包括Dijkstra算法、A算法、D算法等,这一类算法是完备且最优的;

基于采样的算法:RRT、RRT-Connect、RRT*(快速扩展随机树及其变种),PRM(构建概率路线图)等,由于采样点的随机性导致这类算法是概率完备的,规划出的路径不是最优的,只能说是规划出一条可行路径,其中RRT*算法是渐进最优的路径规划算法;

基于智能优化的算法:主要包括遗传算法、蚁群算法、粒子群算法等。这类算法是完备的但是不是最优的。

路径规划算法主要包括以上三种类型,从路径规划的速度方面来说:

RRT系列>A*>Dijkstra算法>智能优化算法

经过查阅相关文献可知,若用A算法进行路径规划,倘若存在最优路径必能找到,但是但对于高维空间的路径规划问题,A算法并不适用。RRT算法与A*算法相比,不需要对空间进行栅格化处理,无需对环境进行结构化建模,适合在高维空间进行路径规划。在这里主要对RRT算法进行简单的介绍。

RRT是一种基于随机采样的路径规划算法,在已知路径起始点和终点的前提下,随机产生一个采样点Xrand,在树上找到一个与Xrand最接近的节点Xnear,连接Xrand与Xnear,在该直线上以步长Ei得到节点Xnew作为显得树节点,以此方式进行树的扩展:

在这里插入图片描述

扩展得到下一树节点:
图片

在进行节点扩展的过程中,需要进行碰撞检测,若新的树枝即Xnear与Xnew与障碍物之间发生碰撞,则去除该条路径;
图片

按照以上流程进行搜索,直到Xnew与终点goal的距离小于小于我们所设定的某个极小值,停止搜索,直接将Xnew与终点相连,一条可行路径产生。

传统的RRT算法路径搜索效率低,且搜索到的路径不是最优路径,为了提高路径搜索效率,在传统的RRT算法的基础上提出了基于双向搜索的RRT-Connect算法,该算法是分别在起始点与目标点处同时扩展两棵树,扩展树的方式与传统的RRT算法相同,直至两棵树连接到一起,一条可行路径产生。
图片

RRT*算法通过以下两种方式对RRT算法进行改进:
父节点的重新选择

重新布线

详细介绍如下:

图片

传统的RRT算法是在产生Xnew节点后,直接将Xnear与Xnew节点连接,产生一个新的树枝;RRT*算法在这里对父节点进行了重新选择,以Xnew为圆心以R为半径进行画圆,
图片

将Xnew与圆圈内的节点Xnear、X1、X2连接起来,比较通过何种方式到达Xnew的路径消耗最短,

图片

若通过Xnear到达Xnew的的路径消耗要比通过Xnear到达X1或者通过Xnear到达X1、X2再到达Xnew的路径消耗短的话,直接将Xnear到达Xnew进行连接;
图片

以上部分实现的是RRT*算法中的父节点的重新选择部分。在重新选择完父节点之后,进行重新布线操作,重新布线操作是针对周围节点来说,是否有通过新产生的节点到达周围节点的距离消耗要比原有路径要小,以图中到达X2节点的路径来说,通过新产生的节点Xnew到达X2要比原有的路径消耗要短,那么就对原有路径进行重新布线,如下与所示:
图片

RRT*算法随着采样点的不断增加,不断优化直至找到目标点或达到最大设定循环次数;该算法随着迭代次数的不断增加,路径逐渐优化,所以该算法是一种渐进最优的路径规划算法,但是,该算法消耗时间较长,路径规划效率较低。

详细的RRT*算法的代码程序大家可以通过关注公众号获得!!
在这里插入图片描述


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

相关文章

改进的 A*算法的路径规划(路径规划+代码+毕业设计)

更多视觉和自动驾驶项目请见: 小白学视觉 自动驾驶项目 引言 近年来,随着智能时代的到来,路径规划技术飞快发展,已经形成了一套较为成熟的理论体系。其经典规划算法包括 Dijkstra 算法、A算法、D算法、Field D算法等&#xff0c…

总结 | 六大路径规划算法

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:https://zhuanlan.zhihu.com/p/51372134, 知乎ID:搬砖的旺财 1.自…

无人驾驶路径规划(一)全局路径规划 - RRT算法原理及实现

前言:由于后续可能要做一些无人驾驶相关的项目和实验,所以这段时间学习一些路径规划算法并自己编写了matlab程序进行仿真。开启这个系列是对自己学习内容的一个总结,也希望能够和优秀的前辈们多学习经验。 一、无人驾驶路径规划 众所周知&a…

数据库课程设计 ——酒店管理系统

源码地址:https://github.com/majunbo2044/Hotel-Management-System/tree/master 一、 需求分析 1.软件需求 (1)酒店管理系统用于满足酒店工作人员和管理人员的需求。 (2)酒店管理人员和工作人员可以为酒店房间加入…

医院管理数据库课程设计

文章目录 前言医院信息管理系统摘要1.概述运行环境2. 1需求分析2.1.1基本分类需求分析2.1.2 主要关系流程分析2.2可行性分析 3.1概念结构设计3.1.1 抽象出系统的实体3.2 设计分E-R图 设计分E-R图3.3.1 全局E-R图4.1逻辑结构设计5.1数据库物理设计与实施6.数据操作要…

数据库课程设计基础需求

数据库课程设计 一、数据库的连接 首先,我们使用高级语言对数据库进行操作,需要我们使用pymysql的模块来与数据库进行连接。 (这里以python语言为例) # 连接数据库 db pymysql.connect(host127.0.0.1, usermy, password123456., dbbuy) # 创建一个游…

教务管理系统数据字典mysql_数据库课程设计报告--教务管理系统设计

数据库课程设计报告--教务管理系统设计 数据库系统课程设计学生姓名: 班 学 号: 指导教师: 中国地质大学年 月 日教务管理系统1、需求分析教务管理系统该教学系统主要提供数据维护、学生选课和教师授课信息查询功能。其实现的功能(即其包含的…

大学《数据库系统》课程设计报告

二话不说,先怼源码: gitHub源码地址 题 目: 教学管理系统 专 业:计算机科学与技术 作 者: 马志成 完成时间:2019年1月3日 一.实验目的 数据库系统课程设计是为了配合数据库原理及应用开发而设置的&#…

数据库成绩管理系统课程设计mysql_数据库学生成绩管理系统课程设计报告

数据库学生成绩管理系统课程设计报告 数据库课程设计报告1.功能需求 本报告主要介绍学生成绩管理系统的数据库设计,从需求分析到数据库的运行与维护都 进行详细的叙述。该系统是利用 SQL 开发出来的。通过 SQL 建立学生成绩管理系统,大大 方便和简化了数…

数据库课程设计报告——员工工资管理系统

这个设计报告是之前在学校里上数据库课程所写的报告 但也通用适用于Java web的课程报告 写的比较早,难免有错误的地方 所用到的对应项目是SSH框架的员工管理系统 如果有不对的地方可以自己借鉴重新编辑 更多相关的资料,查看专栏介绍了解更多 源码已上传h…

数据库课程设计实验报告--图书管理系统

数据库课设图书管理系统 目录 一、系统背景 二、需求分析 (一)系统综合需求 (二)系统逻辑模型 三、系统设计 (一)概念结构设计 (二) 逻辑结构设计 (三)子…

《数据库原理》课程设计报告

《数据库原理》课程设计报告 题目:KTV管理系统 就是记录一下小组做的 以后或许有点用 文章目录 一、简要概述二、需求分析三、 概念结构设计四、逻辑结构设计五、数据库物理实现六、总结 一、简要概述 顾客来到KTV一定会开包房消费,但是包房会有大小之…

数据库课程设计报告(毕业生管理系统)

声明:本片课程设计只列举了数据库设计部分,系统实现部分省略了。如果单纯只做数据库课程设计还是有一定的参考价值的。 由于版权原因,这次源码不能提供给大家了。 报告比较简单,本博主写的比较快,所以难免会有些小问题…

什么是黑盒测试?【黑盒测试技术】的正确打开方式!

黑盒测试介绍 黑盒测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格…

黑盒测试(什么是黑盒测试 黑盒测试的优缺点 黑盒测试中的测试方法)

一、什么是黑盒测试? 黑盒测试就是测试人员把软件产品或阶段性产品看做是一个黑盒子,在测试过程中测试人员只需关心对这个软件黑盒进行操作会得到什么样的结果,而不必深入的去了解软件的内部实现 就是说呢黑盒测试只考虑系统的输入和输出&…

测试所用的技术(黑盒、白盒测试等)

目录 1. 🔍按测试对象划分测试 1.1 🎈界面测试 1.2 🎈可靠性测试 1.3 🎈容错性测试 1.4 🎈文档测试 1.5 🎈兼容性测试 1.6 🎈易用性测试 1.7 🎈安装卸载测试 1.8 &#x1f…

实验二 黑盒测试

、目的和要求 1、掌握应用黑盒测试技术进行测试用例设计。 2、掌握对测试用例进行优化设计方法。 二、实验内容 日期问题 测试以下程序:该程序有三个输入变量month、day、year(month、day和year均…

软件测试-黑盒测试

文章目录 黑盒测试等价类划分例题 边界值分析法例题 判定表法例题 Pair-wise方法黑盒测试的优缺点优点缺点 黑盒测试 软件黑盒测试就是测试者把软件程序想象为一个没打开的黑盒子。测试者不必了解程序的内部情况,不考虑程序内部逻辑结构,只根据程序的输入…

软件测试——黑盒测试

1.概述 黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检验每个功能都是否能够正常使用。 在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测…

黑盒测试基础

黑盒测试方法: 黑盒测试方法:等价类划分法:边界值分析法:因果图法:决策表法:(判定表法)正交试验设计法:错误推测法:功能分解法:*(又叫…