RRT(rapidly exploring random tree)算法学习笔记,机器人自主探索,路径规划
一、算法描述:
1、主要思想
简单来说, RRT算法是一种树型算法,它由一个起始点Xinit作为树的起始节点(或者叫根节点),然后从这个起始点进行随机生长,通过随机采样增加叶子节点Xnew的方式,生成一个随机扩展树,当随机树中的叶子节点包含了目标点或进入了目标区域,便从随机树中找到一条由从初始点到目标点的路径
2、拟解决的问题
(1)在一个未知环境中,使机器人快速对环境进行建模。
(2)或使机器人在一个未知环境中到达目标点。
3、适用环境: 二维及多维空间
4、特点:
(1)优点:①适合多维空间, 可以使机器人能够快速有效地搜索高维空间,从而实现对目标点的路径规划。
②原理简单,适用性强,无需预知环境,也可完成对机器人的路径规划。
(2)缺点:路径规划的效果受规划时间、地形复杂程度以及生长步长的影响,而且规划好的路径不一定是最优路径。
图1 RRT路径规划效果图
二、算法内容描述
Algorithm RRT |
1: 定义初始点Xinit; 2:while 2: 随机产生一个随机点Xrand; 3: 找到RRT中距离Xrand 距离最近的点Xnearest; 4: 朝Xrand方向生长δ步长的距离,产生Xnew; 5: if Xnew无碰撞 and 不位于未知区域 6: 将Xnew加入RRT的节点 7: else 删除Xnew; 8: end if 9: end while |
主要思想: 1.随机采样一个点
2.向随机点方向生长δ 条件判定
3.满足即加入RRT,否则舍弃
三、基于RRT的机器人自主探索算法优缺点
优点: 1.快速提取地图的前沿点;
2.双前沿点探测器(局部+全局)提高探索效率和灵活性;
3.倾向于对未知区域进行探索;
缺点: 1.对于具有狭窄通道和狭窄入口的区域,RRT生长困难,探索效率低;
2.探索过程的后期,RRT生长缓慢。
GitHub源码: rrt_exploration & rrt_exploration_tutorials
RRT(rapidly exploring random tree)算法学习笔记,机器人自主探索,路径规划相关推荐
- rapidly exploring random tree(快速搜索随机树)路径规划
直接上程序 %% 流程初始化 clear all; close all; pic_num=1;%制作gif所需参数 x_I=1; y_I=1; % 设置初始点 x_G=600; y_G=600; % ...
- 【运动规划】RRT快速搜索随机树 Rapidly Exploring Random Tree
Randomized Kinodynamic Planning Steven M. LaValle James J. Kuffner, Jr. 1. Exploring the State Space ...
- 【路径规划】基于matlab GUI粒子群算法机器人避障路径规划(手动设障)【含Matlab源码 924期】
⛄一.简介 1 粒子群算法的概念 粒子群优化算法(PSO:Particle swarm optimization) 是一种进化计算技术(evolutionary computation).源于对鸟群捕 ...
- RRT(Rapidly-exploring Randomized Trees)算法学习笔记
参考资料:RRT算法原理图解 RRT(Rapidly-Exploring Random Tree)算法是一种基于采样的路径规划算法,常用于移动机器人路径规划,适合解决高维空间和复杂约束下的路径规划问题 ...
- l2-004 这是二叉搜索树吗?_算法学习笔记(45): 二叉搜索树
二叉搜索树(Binary Search Tree, BST)是一种常用的数据结构,在理想情况下,它可以以 的复杂度完成一系列修改和查询,包括: 插入一个数 删除一个数 查询某数的排名(排名定义为比该数 ...
- 基于MVS的三维重建算法学习笔记(五)— 立体匹配经典算法PatchMatch论文翻译及要点解读
基于MVS的三维重建算法学习笔记(五)- 立体匹配经典算法PatchMatch论文翻译及要点解读 声明 问题提出 问题建模 通过PatchMatch获取平面参数--Inference via Patc ...
- 白鲸优化算法学习笔记
白鲸优化算法学习笔记 1. 引言 白鲸优化算法(Whale Optimization Algorithm,简称WOA)是一种基于自然界中的白鲸行为而发展起来的启发式优化算法.该算法模拟了白鲸群体的寻食 ...
- 数据结构与算法 学习笔记(8):字典、集合、哈希表
数据结构与算法 学习笔记(8):字典.集合.哈希表 本次文章记录的是和字典.集合.哈希表等数据结构相关的LeetCode算法题(题号与LeetCode对应),包括其构造和使用,针对每一题或一类题给出了 ...
- 大顶堆删除最大值_算法学习笔记(47): 二叉堆
堆(Heap)是一类数据结构,它们拥有树状结构,且能够保证父节点比子节点大(或小).当根节点保存堆中最大值时,称为大根堆:反之,则称为小根堆. 二叉堆(Binary Heap)是最简单.常用的堆,是一 ...
最新文章
- 苹果设置网易邮箱收件服务器,如何在iPhone 3/4、iPod touch的邮件应用程序中使用IMAP服务...
- 17、Spring Boot普通类调用bean【从零开始学Spring Boot】
- 在IT的世界里,分享是一种快乐.
- Git停止跟踪rm -r --cached与ignore区别
- (笔记)Mysql命令drop database:删除数据库
- Echarts数据可视化toolbox工具框,开发全解+完美注释
- 网络工程师成长日记368-榆林通信大楼项目回忆录
- JDK = JRE + 编译器 + api + tools
- 一阶系统开环传递函数表达式_自动控制总结:第五章、线性系统的校正方法
- 台式电脑卸载了wifi精灵之后能够联网但是无法上网
- android压力测试之monkey详解
- ZOJ 3549 Little keng
- hdu-1052 Tian Ji -- The Horse Racing
- JAVA8实战 -- Lamdba表达式
- 用java实现简单的银行管理系统
- Ensemble Average(系综平均)(集平均)
- 计算机视觉技术的应用实例,图像识别技术都有哪些?图像识别技术原理及应用实例...
- Vue中使用百度地图做路径分析并根据起终点坐标模拟道路里程桩
- pip:ffi.h: No such file or directory“
- 一个类似JQuery的精简版框架
热门文章
- SaaS营销网站剖析:SaaS主页,你给用户的第一印象
- 为什么 Java 与 Python 在对待成员变量的访问控制方式截然相反?
- 2021年这些高频面试知识点最后再发一次,跳槽薪资翻倍
- Selenium Webdriver——去哪儿网输入实例
- TensorFlow系列——feature_column特征工具说明
- 【javaScript】JavaScript中一个等号、二个等号、 三个等号 的区别(详细例子)
- 对抗恶意软件,反病毒软件还有戏吗?
- 【GitLens】VsCode插件,查看代码是谁写的
- VmWare虚拟机断电报错各种修复方案
- win10环境下安装elasticsearch实践