【笔记:3D航路规划算法】一、随机搜索锚点(python实现,讲解思路)
目录
- 关键概念
- 3D路径规划算法
- 1. A*算法
- 2. 快速随机锚点
- 1. 初始化:
- 2. 实例化搜索算法:
- 3. 路径生成:
- 4. 绘制图像:
3D路径规划是在三维空间中寻找从起点到终点的最短或最优路径的一种技术。它广泛应用于无人机导航、机器人运动规划、虚拟现实等领域
关键概念
-
节点和网格:
- 在3D路径规划中,节点表示三维空间中的位置,通常用(x, y, z)坐标表示。
- 网格是将三维空间离散化的方式,可以是规则的立方体网格或其他形式的分区。
-
代价函数:
- 代价函数用于评估从一个节点移动到另一个节点的代价,通常包括距离和可能的障碍物影响。
- 常见的距离度量包括欧几里得距离、曼哈顿距离等。
-
启发式函数:
- 启发式函数用于估计当前节点到目标节点的代价,在A*算法中非常重要。
- 例如,三维欧几里得距离可以用作启发式函数。
-
障碍物:
- 障碍物表示在三维空间中不可通过的区域。
- 在路径规划中需要检测和避开这些区域。
3D路径规划算法
1. A*算法
A算法是最常用的路径规划算法之一,它结合了启发式搜索和实际代价来找到最优路径。以下是A算法在3D空间中的步骤:
-
初始化:
- 创建起点节点和终点节点。
- 将起点节点添加到开放集合(open set)中。
-
搜索过程:
- 从开放集合中取出代价最小的节点。
- 生成当前节点的所有邻居节点。
- 对每个邻居节点进行评估,如果节点在障碍物中,跳过该节点。
- 如果邻居节点是终点节点,记录路径并结束搜索。
- 否则,计算邻居节点的代价,并将其添加到开放集合中。
-
路径构建:
- 从终点节点开始回溯到起点节点,构建最终路径。
2. 快速随机锚点
随机锚点是一种适用于高维空间的路径规划算法,通过随机采样和锚点的扩展找到路径。
1. 初始化:
创建一个搜索空间
space_size = np.array([(0, 1000), (0, 1000), (0, 1000)]) # 搜索空间的维度
Z = search_tree(space_size)
生成若干障碍物,这里均为长方体,简单一点可以构建2个顶点就可以制作好障碍物
还需要输入起始位置和目标位置,不能让这两点在障碍物中
n = 100 # n个障碍物
z_start = (0, 0, 0) # 起始位置
z_end = (1000, 1000, 1000) # 目标位置
Cuboid = generate_random_cuboid(Z, z_start, z_end, n)
2. 实例化搜索算法:
q = 50 # 在路径规划过程中,每次扩展时,新的节点之间的最大距离。这个距离越大,扩展速度越快,但可能会导致不够精细的路径
r = 1 # 检测新生成的路径是否与障碍物相交的最小边长度。如果新生成的边长度小于 r,则需要检查该边是否与障碍物相交
max_explore = 512 # 在路径规划过程中最多允许采样的次数。如果达到这个次数还没有找到有效路径,则算法会超时
p = 0.5 # 检查连接到目标的概率。在每次扩展时,有一定的概率直接尝试将新节点连接到目标位置。这个概率值越大,算法越倾向于直接尝试连接到目标,而不是继续随机扩展。
xxx = XXX(Z, q, z_start, z_end, max_explore, r, p)
3. 路径生成:
- 将起点添加到空间中
- 开始循环
- 随机生成一个锚点
- 找到随机锚点距离最近的空间节点(一开始就是起点)
- 找到随机锚点和空间节点,距离为空间节点q的一个点
- 检查锚点是否在长方体内,如果不在则返回
- 判断锚点和空间节点的边是否在障碍物内,若不在,则相连
- 根据检测概率p检查当前新锚点是否可以连接到目标,如果可以则视为成功推出循环
- 从终点反推起点生成路径
4. 绘制图像:
可旋转探索效果展示
相关文章:
【笔记:3D航路规划算法】一、随机搜索锚点(python实现,讲解思路)
目录 关键概念3D路径规划算法1. A*算法2. 快速随机锚点1. 初始化:2. 实例化搜索算法:3. 路径生成:4. 绘制图像: 3D路径规划是在三维空间中寻找从起点到终点的最短或最优路径的一种技术。它广泛应用于无人机导航、机器人运动规划、…...
ubuntu如何彻底卸载android studio?
最新版的ubuntu已经使用snap进行软件管理了,我用snap-store安装android studio以后,在安装plugin的时候强制退出后,直接再也进不去了,启动就报错。 先后进行了如下操作依然不行: 1 重装snap-store和android studio都…...
使用Windows Linux 子系统安装 Tensorflow,并使用GPU环境
在Microsoft Store商店安装Ubuntu 20.04 使用 nvidia-smi 命令查看GPU信息,查看支持的CUDA版本,这里最高支持11.7 安装cuda工具集 进入官网:CUDA Toolkit Archive | NVIDIA Developer,现在对应版本,点击 配置平台&…...
C++案例三:猜数字游戏
文章目录 介绍代码说明设置随机种子生成随机数猜测循环完整代码运行效果介绍 猜数字游戏是一个经典的编程练习,通过这个案例可以学习到基本的输入输出、随机数生成、条件判断和循环结构。 代码说明 设置随机种子 std::srand(static_cast<unsigned int>(std::time(nu…...
LNMP架构部署及应用
部署LNMP架构流程 1.安装Nginx(上传软件包,执行脚本) yum -y install pcre-devel zlib-devel gcc gcc useradd -M -s /sbin/nologin nginx tar zxf nginx-1.12.0.tar.gz cd nginx-1.12.0 ./configure --prefix/usr/local/nginx --usernginx…...
【医学影像】X86+FPGA:支持AI医学影像设备应用的工控主板,赋能CT、MRI、X线、超声等医学影像设备
支持AI医学影像设备应用的工控主板 在我国人口老龄化问题不断加剧,对影像诊断需求持续增长,和国家利好高端医学影像市场发展的系列法规和政策接连出台的大环境下,AI医学影像设备产业迎来发展黄金期。紧跟发展大势,基于12/13代 In…...
【PostgreSQL】PostgreSQL简史
博主介绍:✌全网粉丝20W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
Linux的热插拔UDEV机制和守护进程
目录 一、Linux的热插拔UDEV机制 二、守护进程 2.1 守护进程概念和基本特点: 2.2 显示进程信息: 2.3 守护进程和后台进程的区别: 2.4 创建守护进程的步骤和守护进程的特征: 2.4.1 创建守护进程的步骤: 2.4.2 守…...
laravel框架基础通识-新手
常用目录及其解析 routes 该目录为路由目录 一般根据api uri可以反向查找对应路由及其controller,目录下的文件名一般和url的第一级对应为了规范,然后根据根据里面具体分组和别名对应拼接对应路由url,后面对应的则是controller,…...
c++ extern 关键字
C中的extern关键字和跨语言互操作 变量的声明与定义 extern关键字用于声明在另一个翻译单元(文件)中定义的变量或函数。通过extern关键字,可以在多个文件中访问全局变量或函数。 变量声明示例 文件:main.cpp #include <io…...
Meta KDD Cup 2024 CRAG: Comphrehensive RAG Benchmark参赛指南(写了一半跑去改大论文了所以没正式参赛)
诸神缄默不语-个人CSDN博文目录 因为比赛过程正好和我毕业答辩的时间段高度重合,所以我……最后其实还是相当于没有成功参赛。 呃反正现在已经咕咕咕了,就把当时写了一半(一小半)的参赛指南发一下吧。 官网:AIcrowd …...
系统架构设计师教程 第3章 信息系统基础知识-3.7 企业资源规划(ERP)-解读
系统架构设计师教程 第3章 信息系统基础知识-3.7 企业资源规划(ERP) 3.7.1 企业资源规划的概念3.7.2 企业资源规划的结构3.7.2.1 生产预测3.7.2.2 销售管理(计划)3.7.2.3 经营计划(生产计划大纲)3.7.2.4 …...
windows实现自动化按键
1.选择目标窗口 获取窗口句柄 void KeyPresser::selectWindow() {SetWinEventHook(EVENT_SYSTEM_FOREGROUND, EVENT_SYSTEM_FOREGROUND, NULL, WinEventProc, 0, 0, WINEVENT_OUTOFCONTEXT);selectedWindowLabel->setText("请点击目标窗口..."); }void CALLBACK …...
阿里云 https证书部署
一.申请证书 二.查看状态 查看状态,已签发是完成了申请证书 三.部署 我在nginx服务器上部署 具体操作链接:阿里云文档 修改前 修改后 四.重启ngnix 五.验证是否成功 在浏览器输入域名查看...
DX-10A信号继电器 柜内安装,板前接线 约瑟JOSEF
DX-10型闪光信号继电器型号: DX-10A闪光信号继电器; DX-10B闪光信号继电器; DX-10C闪光信号继电器; 用途 DX-10 闪光继电器用于电力系统断路器的位置信号灯不对应闪光,该继电器是为了适应当前推广使用发光二极管节能指示灯而…...
芯片光刻后的晶片多层组合构成的吗
是的,芯片(尤其是集成电路芯片)确实是通过光刻后的晶片多层组合构成的。在芯片制造过程中,光刻是一个至关重要的步骤,用于在硅片(或称为晶片)上刻画出精确的电路图案。然而,一个完整…...
OpenGL-ES 学习(7) ---- VBO EBO 和 VAO
目录 VBO(Vertex Buffer Object)EBO(Element Buffer Object)VAO(Vertex Array Object) VBO(Vertex Buffer Object) EBO(Element Buffer Object) VBO(Vertex Buffer Object) 实际是指顶点缓冲器对象 在 opengl-es 2.0 的编程中,用于绘制图元的顶点数据是从 CPU 传…...
github如何实现和gitlab的同步
要实现 GitHub 和 GitLab 之间的同步,你可以使用以下几种方法。这里介绍两种常用的方法:使用 GitLab CI/CD 和使用镜像仓库。 方法1:使用 GitLab CI/CD 通过 GitLab CI/CD,可以在每次推送到 GitLab 时自动同步到 GitHub。以下是…...
内网隧道——隧道技术基础
文章目录 一、正向连接与反向连接1.1 正向连接1.2 反向连接 二、端口转发三、端口映射四、端口复用五、代理和隧道的区别六、常见隧道穿透分类 环境: kali:192.168.92.6,MSF v6.3.25 win7:192.168.92.7 一、正向连接与反向连接 1…...
NAS新品“翻车”后,绿联科技要上市了
在消费电子市场回暖的东风中,又一消费电子知名企业登陆A股。 近日,深圳市绿联科技股份有限公司(下称“绿联科技”)开启申购,将在创业板上市。本次上市,绿联科技的发行价为21.21元/股,发行数量为…...
kafka-client如何打印连接日志
在Kafka客户端中打印连接日志,通常涉及配置日志框架来捕获和输出Kafka客户端在建立连接过程中的相关信息。由于Kafka客户端使用SLF4J(Simple Logging Facade for Java)作为日志门面,实际的日志实现(如Log4j2、Logback等…...
1、springboot3 vue3开发平台-后端-项目构建
文章目录 1. 创建项目1.1 前置环境条件1.2 项目创建 2. 模块配置2.1 父工程配置概述2.2 配置启动模块2.3 父工程相关依赖管理 1. 创建项目 1.1 前置环境条件 idea2023, jdk17 1.2 项目创建 创建父工程并删除不需要的文件目录: 右键父工程依次创建其他模块 最…...
修改了mybatis的xml中的sql不重启服务器如何动态加载更新
目录 一、背景 二、注意 三、代码 四、使用示例 五、其他参考博客 一、背景 开发一个报表功能,好几百行sql,每次修改完想自测下都要重启服务器,启动一次服务器就要3分钟,重启10次就要半小时,耗不起时间呀。于是在…...
Intel和AMD用户再等等!微软确认Win11 24H2年底前登陆
微软近日确认,Windows 11 24H2版本将于2024年底前正式登陆使用英特尔和AMD处理器的PC。 根据微软介绍,Windows 11 24H2将作为传统功能更新,将在今年晚些时候提供给所有设备。 此前,微软已向搭载骁龙X Plus和X Elite系列处理器的Co…...
Web开发:图片九宫格与非九宫格动态切换效果(HTML、CSS、JavaScript)
目录 一、业务需求 二、实现思路 三、实现过程 1、基础页面 2、图片大小调整 3、图片位置调整 4、鼠标控制切换 5、添加过渡 四、完整代码 一、业务需求 默认显示基础图片; 当鼠标移入,使用九宫格效果展示图片; 当鼠标离开&#…...
价格较低,功能最强?OpenAI 推出 GPT-4o mini,一个更小、更便宜的人工智能模型
OpenAI美东时间周四推出“GPT-4o mini”,入局“小而精”AI模型竞争,称这款新模型是“功能最强、成本偏低的模型”,计划今后整合图像、视频、音频到这个模型中。 OpenAI表示,GPT-4o mini 相较于 OpenAI 目前最先进的 AI 模型更加便…...
【学习笔记】无人机系统(UAS)的连接、识别和跟踪(八)-无人机探测与避让(DAA)机制
目录 引言 5.6 探测与避让(DAA)机制 5.6.1 基于PC5的探测与避让(DAA)机制 引言 3GPP TS 23.256 技术规范,主要定义了3GPP系统对无人机(UAV)的连接性、身份识别、跟踪及A2X(Airc…...
网络结构-组件-AI(九)
深度学习网络组件 RNN公式讲解计算示意图讲解 CNN计算示意 Normalization(归一化层)Normalization常见两种方式 Dropout层 RNN 循环神经网络(recurrent neural network) 主要思想: 即将整个序列划分成多个时间步,将每一个时间步的…...
弹性网络回归(Elastic Net Regression)
弹性网络回归(Elastic Net Regression)的详细理论知识推导 理论背景 弹性网络回归结合了岭回归(Ridge Regression)和Lasso回归(Lasso Regression)的优点,通过引入两个正则化参数来实现特征选择…...
【深度学习】FaceChain-SuDe,免训练,AI换脸
https://arxiv.org/abs/2403.06775 FaceChain-SuDe: Building Derived Class to Inherit Category Attributes for One-shot Subject-Driven Generation 摘要 最近,基于主体驱动的生成技术由于其个性化文本到图像生成的能力,受到了广泛关注。典型的研…...
学做ps的网站有哪些/东莞网站制作十年乐云seo
在类中的静态函数里面不能使用$this因为静态不用实例化就生成了内存空间,而类需要实例化之后才生成内存空间,两个内存不在一起所以不能互相访问。所以下面的写法是错误的;class Book extends Goods {public $anthor;public $publisher;static…...
谷歌做英文网站/女教师遭网课入侵直播录屏曝光i
课程内容是完整的,只是目录收集和编号的有点乱,大家下载后的都是正常的,不用担心(28)\\02-跟着江哥狂虐H5跨平台开发系列-认识HTML-第一次更新\\视频;目录中文件数:9个├─(28) 07-HTML作用(掌握)-李南江.mp4├─(29) 08-HTML发展…...
温州专业手机网站制作哪家便宜/曼联目前积分榜
这里我介绍2种方法 (1)利用别人写好的脚本编译,相对来说省力一点 上Github下载别人写好的脚本文件,网址 https://github.com/jayrambhia/Install-OpenCV 解压缩后,进入Ubuntu/2.4,有不同版本的OpenCV脚本文件。这里我们选择open…...
山东网站app制作/北京朝阳区优化
clickHouse的简单介绍,详细介绍请查看官网或者百度1)clickhouse非hadoop体系2)使用sql语句,对于熟悉关系数据的人员入门相对简单3)clickhouse最好用来读,不要用来变更,写用批量的方式4)各种日志数据我们可以用flume同步到clickhou…...
永州公司做网站/河南关键词排名顾问
接口callable <V> 类型参数 V-call方法的结构类型 public interface Callable<V> 返回结果并且可能抛出的异常的任务。实现者定义一个不带任何参数的的call()方法, Callable 接口类似于Runnable ,两者都是为了哪些真实实例可能被另一个线程执行的类…...
自己服务器建设网站/百度查询关键词排名工具
大家在利用镶嵌数据集管理影像的过程中,遭受过影像黑边的困扰吗?所谓的黑边就是在影像接边处有黑色的区域,严重影响视觉效果。 图 镶嵌数据集黑边示意 我们先来分析一下黑边产生原因:在使用镶嵌数据集管理影像数据的过程中&#…...