【笔记:3D航路规划算法】二、RRT*

目录

  • RRT*于RRT的不同之处
    • 1、路径优化:
    • 2、成本计算:
    • 3、重连线步骤:
  • 图解
    • 1、初始化
    • 2、路径搜索
    • 3、效果展示
  • 总结

3D路径规划是在三维空间中寻找从起点到终点的最短或最优路径的一种技术。它广泛应用于无人机导航、机器人运动规划、虚拟现实等领域

RRT*于RRT的不同之处

1、路径优化:

  • RRT:仅寻找一条从起点到终点的路径,不保证是最优路径。
  • RRT*:在寻找路径的过程中,不断优化路径,通过重连线步骤逐步逼近最优路径。

2、成本计算:

  • RRT:不进行成本计算,路径成本可能较高。
  • RRT*:每次添加新节点后,计算路径成本,通过重连线步骤降低路径成本。

3、重连线步骤:

  • RRT:无重连线步骤。
  • RRT*:每次添加新节点后,检查附近节点并尝试通过新节点来重新连接,以优化路径。

图解

1、初始化

在初始化上,比RRT多了一个参数rewire_count
该参数使得在每次添加新节点到树中后,需要检查并可能重新连接的附近节点的数量

2、路径搜索

可以看到这是在某一次循环时,生成的随机点x_new
在这里插入图片描述
假设rewire_count为3,这样就找到了3个点,分别为near_1near_2near_3
在这里插入图片描述
接下来获取x_newnear_1near_2near_3的成本
在这里插入图片描述
成本计算时是从起点位置到near_*位置的边长,加上蓝色虚线的距离,这就得到了3条路径的成本值,以其中near_2举例说明
在这里插入图片描述
得到3条路径后,连接最小成本得路径,这里很明显是near_1x_new路径最短
在这里插入图片描述
开始将虚线⚪中的路径进行重连线

for _, near in round:near_cost = path_cost(self.trees[tree].E, self.z_start, near)new_cost = path_cost(self.trees[tree].E, self.z_start, x_new) + segment_cost(x_new, near)if new_cost < near_cost and self.X.collision_free(near, x_new, self.r):self.trees[tree].E[near] = x_new

还是循环这3个点,

  • near_cost = 计算从起点start到这near的路径长度
  • new_cost = 计算起点startx_new路径长度+ x_newnear 路径长度
  • 当new_cost < near_cost时,同时x_newnear 的路径没有和障碍物相交
    • near的父节点设置为x_new

x_newnear_1near_2near_3,三条路线中,near_2明显与障碍物相交,所以不考虑,就只剩这两条路线了
在这里插入图片描述
其中橘黄色路线明显不符合new_cost < near_cost,因为near_cost是在new_cost的基础上增加了x_newnear_1
粉红色的路线符合new_cost < near_cost,很明显粉色长度大于最下面那一根橙色线长度,并且没有经过障碍物
所以将near_3的父节点变为x_new
在这里插入图片描述
最终就得到了
在这里插入图片描述
相比于之前,路径成本更低了,RRT*就是这么优化的,最后一步从终点反推起点生成路径

3、效果展示

在这里插入图片描述
可以看到比RRT更加丝滑
3D效果展示

总结

接着RRT的苍蝇继续,但是这次的苍蝇屁股上长了个眼睛*
在飞的时候如果看到了身后有一个节点,那就认为它是其父节点

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

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

相关文章

人工智能技术的分析与探讨

《人工智能技术的分析与探讨》 摘要&#xff1a; 本文深入探讨了人工智能技术在多个领域的应用&#xff0c;包括智能感知、智能语音、智能问答、智能机器人、智能制造、智能医疗等。详细阐述了这些技术在当前的应用现状和主要场景&#xff0c;展示了一些典型的应用案例&#…

初识git工具~~上传代码到gitee仓库的方法

目录 1.背景~~其安装 2.gitee介绍 2.1新建仓库 2.2进行相关配置 3.拉取仓库 4.服务器操作 4.1克隆操作 4.2查看本地仓库 4.3代码拖到本地仓库 4.4关于git三板斧介绍 4.4.1add操作 4.4.2commit操作 4.4.3push操作 5.一些其他说明 5.1.ignore说明 5.2git log命令 …

大模型额外篇章三:vercel搭建openai中转服务器

文章目录 一、起因和注意1)起因2)注意二、实现方法(原理:透传)1)nginx方案2)node服务3)纯 js 方案4)选择国外的域名服务商(DNS 解析路径缩短,建议方案国外提供 CDN 云服务商结合自建云服务业务做负载均衡)三、实践(vercel部署OpenAI代理服务器)四、测试搭建的Ope…

SQLException:Operation not allowed after ResultSet closed

运行代码时出现的错误&#xff1a; 这是在运行简单的JDBC访问数据库时出现的问题&#xff0c;原因是在ResultSet方法中添加了close()关闭方法,如图&#xff1a; ResultSet 是通过 query 方法获得的&#xff0c;并且在 try-catch 块中没有显式地关闭它。这实际上是 一个常见的…

创建一个基于Python的Python代码插入工具

在这篇博客中&#xff0c;我将分享如何使用Python创建一个简单的Python代码插入工具。这个工具允许用户插入不同部分的代码&#xff0c;包括导入语句、GUI代码、方法定义和主执行代码&#xff0c;并将它们组合在一起。我们将从设置基本的wxPython应用程序开始&#xff0c;然后逐…

基于Java+SpringMvc+Vue技术的慈善捐赠平台设计与实现(源码+LW+部署讲解)

项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功以及课程答疑&#xff01; 软件开发环境及开发工具&#xff1a; 操作系统&#xff1a;Windows 10、Windows 7、Windows 8 开发语言&#xff1a;java 前端技术&#xff1a;JavaScript、VUE.j…

计算机网络基础:2.TCP/IP模型中的各层协议、IP地址

一、TCP/IP模型中的各层协议 接着第一篇餐厅运营的例子来解释一下TCP/IP五层模型中的每一层协议&#xff1a; 1. 应用层&#xff08;餐饮一体机&#xff09; 在TCP/IP模型中&#xff0c;应用层直接与用户交互&#xff0c;提供网络服务。这一层将OSI模型的应用层&#xff08;点…

Keras入门:一维线性回归问题

目录 一、一维变量线性回归 1. 数据生成 2. 建立训练模型 3. 作图 4. 完整代码 一、一维变量线性回归 1. 数据生成 import keras import numpy as np import matplotlib.pyplot as plt #matplotlib inline xnp.linspace(0, 100, 30) #0~100之间&#xff0c;生成30个数 y…

前端 SSE 长连接

使用 const options {withCredentials: true, // 默认 false}const eventSource new EventSource(/api, options);eventSource.addEventListener(open, () > {});eventSource.onmessage (event) > {}; // 或addEventListener(message,callback)eventSource.addEvent…

AV1技术学习:Transform Coding

对预测残差进行变换编码&#xff0c;去除潜在的空间相关性。VP9 采用统一的变换块大小设计&#xff0c;编码块中的所有的块共享相同的变换大小。VP9 支持 4 4、8 8、16 16、32 32 四种正方形变换大小。根据预测模式选择由一维离散余弦变换 (DCT) 和非对称离散正弦变换 (ADS…

董宇辉离职,我一点都不意外!只不过感觉来的太快

下面这张图&#xff0c;是我在半年多前写的一段随笔&#xff0c;没想到来的这么快&#xff01; 碰巧的是今天中午&#xff0c;在开发者群里有两位老铁自曝&#xff0c;本以为能公司干到老&#xff0c;但公司却不给机会&#xff0c;已经不在是公司员工了。 最近&#xff0c;晓衡…

Axious的请求与响应

Axious的请求与响应 1.什么是Axious Axious是一个开源的可以用在浏览器和Node.js的异步通信框架&#xff0c;它的主要作用就是实现AJAX异步通信&#xff0c;其功能特点如下&#xff1a; 从浏览器中创建XMLHttpRequests ~从node.js创建Http请求 支持PromiseAPI 拦截请求和…

多表查询的内连接与外连接

目录 1. 内连接 1.1 概述 1.2 等值连接 1.3 非等值连接 1.4 自连接 2. 外连接 2.1 概述 2.2 左/右连接 2.3 全连接 3. 多张表连接 1. 内连接 1.1 概述 查询满足条件的两张表数据&#xff0c;也就是两张表的交集&#xff1b; 内连接使用过程中&#xff0c;尽量对表重…

【杰理蓝牙开发】AC695x 音频部分

本文主要记录 杰理蓝牙audio接口的使用&#xff0c;包括ADC和DAC原理的介绍和API接口的使用。 【杰理蓝牙开发】AC695x 音频部分 0. 个人简介 && 授权须知1. ADC【音频数据采集】硬件部分1.1 单片机引脚1.2 硬件电路设计1.3 MIC 输入通路解释 2. 【DAC】音频信号编解码…

Springboot项目的行为验证码AJ-Captcha(源码解读)

目录 前言1. 复用验证码2. 源码解读2.1 先走DefaultCaptchaServiceImpl类2.2 核心ClickWordCaptchaServiceImpl类 3. 具体使用 前言 对于Java的基本知识推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;【Java项目…

夯实数字经济的“新基建”-基于大数据与区块链技术的新型基础设施

随着我国数据市场的蓬勃发展&#xff0c;构建契合数据特性、加速数据流通与价值释放的新型数据基础设施变得尤为关键。数字基础设施作为数字经济蓬勃发展的基石&#xff0c;其完善与否直接关系到数据能否有效存储、顺畅流通及高效利用&#xff0c;进而促进数据资源向数据资产的…

33.【C语言】实践扫雷游戏

预备知识&#xff1a; 第13篇 一维数组 第13.5篇 二维数组 第28篇 库函数 第29篇 自定义函数 第30篇 函数补充 0x1游戏的运行&#xff1a; 1.随机布置雷 2.排雷 基本规则&#xff1a; 点开一个格子后&#xff0c;显示1&#xff0c;对于9*9&#xff0c;代表以1为中心的去…

nginx转发netty长链接(nginx负载tcp长链接配置)

首先要清楚一点&#xff0c;netty是长链接是tcp连接不同于http中负载在http中配置server监听。长连接需要开启nginx的stream模块(和http是并列关系) 安装nginx时注意开启stream&#xff0c;编译时加上参数 --with-stream &#xff08;其他参数根据自己所需来加&#xff09; …

网闸(Network Gatekeeper或Security Gateway)

本心、输入输出、结果 文章目录 网闸(Network Gatekeeper或Security Gateway)前言网闸主要功能网闸工作原理网闸使用场景网闸网闸(Network Gatekeeper或Security Gateway) 编辑 | 简简单单 Online zuozuo 地址 | https://blog.csdn.net/qq_15071263 如果觉得本文对你有帮助…

嵌入式C++、STM32、MySQL、GPS、InfluxDB和MQTT协议数据可视化:智能物流管理系统设计思路流程(附代码示例)

目录 项目概述 系统设计 硬件设计 软件设计 系统架构图 代码实现 1. STM32微控制器与传感器代码 代码讲解 2. MQTT Broker设置 3. 数据接收与处理 代码讲解 4. 数据存储与分析 5. 数据分析与可视化 代码讲解 6. 数据可视化 项目总结 项目概述 随着电子商务的快…