路径规划——搜索算法详解(三):RRT算法详解与MATLAB代码

本文讲解案例来自于古月学院,该篇也是对笔者学习内容的总结,有需要的朋友可以直接跳转到课程(新人福利8节课特惠价才12!不是广告哈,大家看需求选择,可以先看我的讲解。)。

前两篇我们介绍了Djkstra算法与Floyd算法,前者解决的是从固定起点到固定终点的最短距离的问题,后者解决的是图中任意两个路径点的最短路径问题,当节点数较多时Floyd算法可能会耗费更多时间,大家看需求选择吧。不过两种算法都是广度优先搜索算法,一定能搜出全局最优路径,遇到障碍物时需要重新规划。

本篇将介绍随机采样搜索算法(RRT),相比于上述两种方法,RRT为基于采样的搜索方法,该方法能够快速搜索路径,但是由于是随机搜索生成的路径,一般不是最优的,理论上具备概率完备性,即当搜索时间足够时可以得到最优路径,这是一种时间和路径最优上的权衡。值得注意的是,如果规划的时间不够长、迭代次数太少,可能无法找出实际存在的路径。

什么时候用RRT?

其优点是搜索速度快,因此适用于多自由度机器人规划问题(如机械臂)。

一、RRT算法原理与流程

 算法流程图如下,大家可以稍微留个印象,过程很简单!

流程讲解:

1. 节点拓展流程:

起点、终点、障碍物如图1所示,此时随机采样一个点,如图2黄色点所示

在原有路径点中,找到距离采样点最近的点(由于起始路径只有起点,故起点即为最近点)。如图4所示,设定一个生长步长,以最近点与采样点的连线为采样角度,生长步长为距离,生成下一个路径点,此时判断该路径点与上一节点(起点)的连线是否与障碍物发生碰撞。当没有碰撞时将该点作为下一路径点(后面有发生碰撞时候的处理方法)。

循环以上过程,采样、寻找最近点、确定拓展方向、按照步长拓展新节点、判断是否发生碰撞、确定下一节点。

如图8-10所示,此时拓展的节点与障碍物发生了碰撞,此时丢弃此次拓展,并且重新进行采样,重复以上拓展步骤(如图11-12所示)。

2. 判断到达目标点:

由于拓展的节点直接与终点重叠的概率很小,所以当拓展到的节点距离终点在一定距离内时便认为已经搜索成功,此时只需要不断查询上一节点即可生成搜索路径(黄色折线),此时搜索完成。

二、RRT算法MATLAB仿真:

Adamaser/Path-Planning (github.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/571058.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

13.处理指定目录下的所有文件夹里的特定文件

1.命题要求 1)对于指定4K_phone目录下,有好几个文件夹,比如quality_15,quality_17,quality_19,等等quality_xx。获取每一个quality_xx文件夹里的1_teacher.txt。 例如,./4K_phone/quality_15/1_teacher.txt、./4K_pho…

基于nodejs+vue饮食分享平台python-flask-django-php

本系统采用了nodejs语言的express框架,数据采用MySQL数据库进行存储。进行开发设计,功能强大,界面化操作便于上手。本系统具有良好的易用性和安全性,系统功能齐全,可以满足饮食分享管理的相关工作。 前端技术&#xff…

前端面试题---->JavaScript

const声明的对象属性和数组的值可以被修改吗?为什么 原因:当使用const声明一个对象或数组时,实际上是保证了对象或数组的引用不会被修改,但对象或数组本身的属性或元素是可以被修改的。这是因为const只能保证指向的内存地址不变&a…

30---SDRAM电路设计

视频链接 SDRAM电路设计01_哔哩哔哩_bilibili SDRAM电路设计 1、SDRAM简介 SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器。 同步是指其时钟频率和CPU前端总线的系统时钟相同,并且内部命令的发送与数据的传输都以…

设计模式深度解析:深入浅出的揭秘游标尺模式与迭代器模式的神秘面纱 ✨

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,坚持默默的做事。 深入浅出的揭秘游标尺模式与迭代器模式的神秘面纱 开篇: 欢迎来到设计模式的神秘…

Leetcode 3.26

Leetcode Hot 100 一级目录1.每日温度 堆1.数组中的第K个最大元素知识点:排序复杂度知识点:堆的实现 2.前 K 个高频元素知识点:优先队列 一级目录 1.每日温度 每日温度 思路是维护一个递减栈,存储的是当前元素的位置。 遍历整个…

iphone11promax硬件参数

1.截图 2.震动和静音方面还是不行的 3.相关的电子参数信息 4.出处 【苹果iPhone 11 Pro Max 4GB/64GB/全网通参数】Apple iPhone 11 Pro Max 4GB/64GB/全网通手机参数_规格_性能_功能-ZOL中关村在线

批量删除 rabbitmq中随机队列

批量删除 amq.gen–* 随机队列 操作错误产生了无效随机队列,需要批量删除 过滤列出指定amq.gen–队列 # 列出 指定 vhost/qq 以amq.gen开头的所有队列 rabbitmqctl list_queues --vhost / | grep ^amq.gen-# 批量删除队列 #由于list_queues会列出队列名称以及对应…

2022 年甘肃省职业院校技能大赛 高职组 网络系统管理竞赛 网络构建模块试题

2022 年甘肃省职业院校技能大赛 高职组网络系统管理竞赛 网络构建模块试题 目 录 考试说明… 3 任务描述… 3 任务清单… 3 (一)基础配置… 3 (二)有线网络配置… 4 (三)无线网络配置… 6 (四&a…

找茬游戏小程序源码系统:封面广告+插屏广告 自带流量主低成本 带完整的安装代码包以及搭建教程

近年来,小程序市场持续火爆,各类小程序层出不穷。找茬游戏小程序作为其中的一种,以其独特的游戏形式和良好的用户体验,吸引了大量用户。然而,对于许多开发者和商家来说,开发一款高质量的找茬游戏小程序并非…

ArcGIS二次开发(一)——搭建开发环境以及第一个简单的ArcGIS Engine 程序

Arcgis10.2、Arcgis Engine10.2与Microsoft Visual Studio 2012的版本进行安装 1、推荐教程与安装包2、安装顺序3、安装成功测试VS新建项目可以创建ArcGIS项目,并且在VS中拖拽ArcGIS工具 4、搭建第一个简单的ArcGIS Engine 程序 ArcEngine和VS版本是有对应的&#x…

让你的Mac重焕新生!CleanMyMac X软件2024全面评测

让你的Mac重焕新生!CleanMyMac X全面评测:一招解决卡顿、内存不足等问题,让你的Mac速度飞起来! 在当今数字化时代,我们的生活和工作中离不开电脑的支持。 而对于Mac用户来说,如何保持电脑的流畅运行和高效…