聊聊路径规划算法(四)——滚动在线RRT算法和BUG算法

2024-04-20 05:28

本文主要是介绍聊聊路径规划算法(四)——滚动在线RRT算法和BUG算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基本RRT算法更偏向于遍历所有自由空间直到获取可行路由性,这使得它不能够进行未知或动态环境条件中的机器人实时运动计划。利用滚动计划的思路可以将RRT算法加以完善,使之更具有实时规划能力。

 滚动规划

机器人在不确定的或动态周围环境中行走时,可以探知在其传感器区域内或限定区域的周围环境讯息。机器人可以使用局部信息制定局部运动规划,并使用适当的评估标准达到部分总体目标。然后机器人可以在到达部分总体目标以后,继续制定新的部分计划。就这样,不断实施直至抵达新全局目标。

滚动规划算法的基本原理:

环保信息系统预测:在滚动的每一次,机器人通过检测到的视野内的环保信息系统、或任何存在的环保信息系统,建立保护模式,包含设定在已知范围内的环保节点类型信息系统等;

局部的优化:把这些环境信息模式视为下一次优化的窗口,并在此基础上,按照子目标点的实际情况和特定的优化对策,设计出下一次的最佳子总体目标,接着再依据子总体目标的环境信息模式,选用局部规划算法,先设定向子总体目标前进的部分路线,再执行当前对策,即依所制定的部分路线前进若干步骤,窗口也随之往前滑动;

反馈信息修正:通过局部最优路线,驱动机器人走过一个路线时,机器人将检测到新的未知信号,此时可通过其在行进中检测到的信息数据调整或修正原有的环境模式,进行滚动和下步的局部设计。

这里,部分子目标是在滚动窗口中对某个全局目标的进行条件反射,它需要远离障碍物,并符合一些优化目标。子目标的选定方式,体现了对全局优势的追求和对局部整体受限信息条件的折衷,是在给定的社会环境条件下企图进行整体性考虑的天然选项。

通过滚动窗口的路径规划算法把实时检测到的局部环境信号,以滚动方法实现网络设计。在滑动的每一次,将针对已检测到的环境保护局部信息,采用启发式策略生成环境优化子目标,在当前的视窗中完成环境保护局部路径计划,进而执行当前决策(依局部规划路径推移一次),随着滚动窗口推移,将持续地获取最新的环境信息,以便于在滚动中进行环境优化和反馈信息的整合。同时由于环境规划问题压缩在滚动窗口中,其与环境保护全局计划比较的运算工作量将大为减轻。

采用滚动窗口的路径规划方式的具体步骤为:

第一步为0:先对起始、终端、环境、机器人的视线半径、步长等完成初始化;

步骤1:若终点抵达,则规划中止;

操作2:对当前滚动窗内的所有环境消息予以刷新;

步骤3:产生局部子目标;

过程4:基于子目标和现存条件信息,在当前滚动窗口内计划一个经过调整的局部有效路线;

方法5:按规划的局部路径走进每一步,步长必须等于视野半径;

步骤6:返回步骤1。

滚动在线RRT算法流程

在一个滚动窗口内,随机树以当前区域为开始节点,并建立传感器区域内的所有随机树。结构方式与最基本RRT算法相同。但能够使在全局条件中随机树产生朝目标方向发展的态势,在运动规划时导入启发信号,以降低随机树的随机性,并增加搜索效果[7]。

以Road(x1,x2)指代随意树中二个位置节点间的道路价格,Dis(x1,x2)指代随意树中二个位置节点间的欧几里德距离。相似于Astar方法,本方法为随意树中各个节点设定一种估值参数:f(x)=g(x)+h(x)。当中g(x)=Road(x,xrand)为随意节点,而xrand则代表到树中目的结点x所需的道路时间。H(x)是启发的估值参数,在此处可取随意节点xrand到目标节点xgoal的距离作为估计值,h(x)=Dis(xrand,xgoal)。所以,f(x)就代表了从目的节点x经随机结点xrand至目的地节点xgoal的路线估量值。遍历滚动窗内随机树T时,若取估量函数中较小值的结点xnear,则f(xnear)=min(f(x))。它允许随机树按照距离为目标节点估计值f(x)很小的地方开始延伸,如图所示。


综上,在滚动窗内随机树建立的具体实施方法包括:

1.对滚动窗口随机树T初始化后,T起始时只包括了起始地址S;

2.滚动窗口自由空间中,随机选取了一种状态的xrand;

3.基于最短路线的思想寻找在树T中,与xrand距离最近的结点xnear;

4.选择输入u,将机器人状态由xnear到xnew;

5.确定了xnew是否满足回归分析,不满足则返回第四步骤;

6.将xnew看作随机树T的一个新结点时,u将被写在连接结点xnear的xnew的边上。

滑动窗口的目标空间在进行了K的抽样以后,将遍历随机树,就能够按照启发的估计思路找出当前滑窗口目标空间xsub,xsub是指在当前滑窗口中的每个子树中,所估计最小的节点。选定子目标后,在机器人前完成到达子目标点,并开始下一次的滚动RRT规划工作。过程就这样重复下去,直到抵达了子目标点G。

点击聊聊路径规划算法(四)——滚动在线RRT算法和BUG算法 - 古月居可查看全文

这篇关于聊聊路径规划算法(四)——滚动在线RRT算法和BUG算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/919379

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

聊聊springboot中如何自定义消息转换器

《聊聊springboot中如何自定义消息转换器》SpringBoot通过HttpMessageConverter处理HTTP数据转换,支持多种媒体类型,接下来通过本文给大家介绍springboot中... 目录核心接口springboot默认提供的转换器如何自定义消息转换器Spring Boot 中的消息

浅谈MySQL的容量规划

《浅谈MySQL的容量规划》进行MySQL的容量规划是确保数据库能够在当前和未来的负载下顺利运行的重要步骤,容量规划包括评估当前资源使用情况、预测未来增长、调整配置和硬件资源等,感兴趣的可以了解一下... 目录一、评估当前资源使用情况1.1 磁盘空间使用1.2 内存使用1.3 CPU使用1.4 网络带宽二、

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

kkFileView在线预览office的常见问题以及解决方案

《kkFileView在线预览office的常见问题以及解决方案》kkFileView在线预览Office常见问题包括base64编码配置、Office组件安装、乱码处理及水印添加,解决方案涉及版本适... 目录kkFileView在线预览office的常见问题1.base642.提示找不到OFFICE组件

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

Linux在线解压jar包的实现方式

《Linux在线解压jar包的实现方式》:本文主要介绍Linux在线解压jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux在线解压jar包解压 jar包的步骤总结Linux在线解压jar包在 Centos 中解压 jar 包可以使用 u

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.