基于蚁群算法的三维路径规划(matlab实现)

作品简介

1 理论基础

1.1 三维路径规划问题概述

    三维路径规划指在已知三维地图中,规划出一条从出发点到目标点满足某项指标最优,并且避开了所有三维障碍物的三维最优路径。现有的路径规划算法中,大部分算法是在二维规划平面或准二维规划平面中进行路径规划。一般的三维路径规划算法具有计算过程复杂、信息存储量大、难以直接进行全局规划等问题。已有的三维路径规划算法主要包括A*算法、遗传算法、粒子群算法等,但是A*算法的计算量会随着维数的增加而急剧增加,遗传算法和粒子群算法只是准三维规划算法。

    ​ 蚁群算法具有分布计算、群体智能等优势,在路径规划上具有很大潜力,在成功用于二维路径规划的同时也可用于三维路径规划,本章采用蚁群算法进行水下机器人三维路径规划。

1.2 三维空间抽象建模

    三维路径规划算法首先需要从三维地图中抽象出三维空间模型,模型抽象方法如下:首先把三维地图左下角的顶点作为三维空间的坐标原点A,在点A中建立三维坐标系,其中,x轴为沿经度增加的方向,y轴为沿纬度增加的方向,z轴为垂直于海平面方向。在该坐标系中以点A为顶点,沿x轴方向取三维地图的最大长度AB,沿y轴方向取三维地图的最大长度AA',沿z轴方向取三维地图的最大长度AB,这样就构造了包含三维地图的立方体区域ABCD-A'B'C'D',该区域即为三维路径的规划空间。三维路径规划空间如图1所示。三维路径空间建立起来之后,采用等分空间的方法从三维空间中抽取出三维路径规划所需的网格点。首先沿边AB把规划空间ABCD-A'B'C'D'进行等分,得到n+1个平面Ⅱi(i=1,2,…,n),然后对这n+1个平面沿边AD进行m等分,沿边AA'进行l等分,并且求解出里面的交点。平面划分如图2所示。

    

    ​    ​通过以上步骤,整个规划空间ABCD-A'B'’C'D'就离散化为一个三维点集合,集合中的任意一点对应着两个坐标,即序号坐标a1(i,j,k)(i=0,1,2,…,n,j=0,1,2,…,m,k=0,1,2, …,l)和位置坐标a2 (xi ,yi, zi), 其中,i,j,k分别为当前点a沿边AA,边AD,边AA'的划分序号。蚁群算法即在这些三维路径点上进行规划,最终得到连接出发点和目标点满足某项指标最优的三维路径。

2案例背景

2.1问题描述

    采用蚁群算法在跨度为21 km×21 km的一片海域中搜索从起点到终点,并且避开所有障碍物的路径,为了方便问题的求解,取该区域内最深点的高度为0,其他点高度根据和最深点高度差依次取得。路径规划起点坐标为(1,10,800),终点坐标为(21,4,1 000),规划环境和起点、终点如图3所示。整个搜索空间为21 km×21 km的海域,其中,起点坐标为(1,10,800),终点坐标为(21,4,1 000)。

    基于蚁群算法的三维路径搜索算法的算法流程如图4所示。

     

    ​   其中,三维环境建模模块根据1.2节抽取出三维环境数学模型;搜索节点模块根据启发函数搜索下个节点;信息素更新模块更新环境中节点的信息素值。

2.3 信息素更新

    蚁群算法使用信息素吸引蚂蚁搜索,信息素位置设定及更新方法对于蚁群算法的成功搜索具有非常重要的意义。在1.2节中已经把整个搜索空间离散为一系列的三维离散点,这些离散点为蚁群算法需要搜索的节点。因此,把信息素存储在模型的离散点中,每个离散点都有一个信息素的值,该点信息素的大小代表对蚂蚁的吸引程度,各点信息素在每只蚂蚁经过后进行更新。信息素的更新包括局部更新和全局更新两部分,局部更新是指当蚂蚁经过该点时,该点的信息素就减少,局部更新的目的是增加蚂蚁搜索未经过点的概率,达到全局搜索的目的。局部信息素更新随着蚂蚁的搜索进行,信息素更新公式为

2.4可视搜索空间

    取α轴方向作为三维路径规划的主方向,水下机器人沿工轴方向前进,为了降低规划复杂程度,将水下机器人的运动简化为前向运动、横向运动和纵向运动三种运动方式。在前向运动一定单位长度距离Lx,max情况下,设定机器人最大横向移动允许距离为Ly,max,最大纵向移动距离为Lz,max。这样,当蚂蚁沿着α轴方向前进时,当位于点H(i,j,k)时,对下一个点的搜索就存在一个可视区域,可视区域如图5所示。

    这样,当蚂蚁由当前点向下一个点移动时,可搜索的区域限制在蚂蚁搜索可视区域之内,简化了搜索空间,提高了蚁群算法的搜索效率。

2.5 蚁群搜索策略

    蚂蚁从当前点移动到下一个点时,根据启发函数来计算可视区域内各点的选择概率,启发函数为

3 仿真结果为:

    ​    ​采用蚁群算法进行三维路径规划,规划空间范围为20km×20 km的海域,根据1.2节的内容把规划空间抽象为21km×21km×21km的规划空间,其中,x轴,y轴方向每个节点的间距为1km,z轴方向每个节点间距为200m。路径起点在规划空间的序号为[1 10 4], 终点在规划空间的序号为[21 4 5]。算法的基本设置为种群规模为20,算法迭代为400次,路径规划结果和最优个体适应度变化如图6和图7所示。

4 总结

    以蚁群算法为代表的群智能已成为当今分布式人工智能研究的一个热点,许多源于蜂群和蚁群模型设计的算法已越来越多地被应用于企业的运转模式的研究。美国五角大楼正在资助关于群智能系统的研究工作——群体战略(swarm strategy),它的一个实战用途是通过运用成群的空中无人驾驶飞行器和地面车辆来转移敌人的注意力,让自己的军队在敌人后方不被察觉地安全活动。英国电信公司和美国世界通信公司以电子蚂蚁为基础,对新的电信网络管理方法进行了试验。群智能还被应用于工厂生产计划的制订和运输部门的后勤管理。美国太平洋西南航空公司采用了一种直接源于蚂蚁行为研究成果的运输管理软件,结果每年至少节约1000万美元的费用开支。英国联合利华公司率先利用群智能技术改善其一家牙膏厂的运转情况。美国通用汽车公司、法国液气公司、荷兰公路交通部和美国一些移民事务机构也都采用这种技术来改善其运转。

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

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

相关文章

分享一种快速移植OpenHarmony Linux内核的方法

移植概述 本文面向希望将 OpenHarmony 移植到三方芯片平台硬件的开发者,介绍一种借助三方芯片平台自带 Linux 内核的现有能力,快速移植 OpenHarmony 到三方芯片平台的方法。 移植到三方芯片平台的整体思路 内核态层和用户态层 为了更好的解释整个内核…

HP Z440不重启进入bios,在服务器系统里修改bios的配置

HP Z440不重启进入bios,在服务器系统里修改bios的配置 在某些情况下,你可以在不重启并进入BIOS/UEFI设置界面的情况下,直接从操作系统内部修改BIOS配置。这通常通过特定的软件工具实现,这些工具能够与系统的固件层进行交云&#…

校园跑腿的含义是什么?大学里校园跑腿的特点有哪些?

校园跑腿是指校园内的一种学生间互助服务活动,即学生通过平台发布需求,由其他学生以跑腿的方式提供相应服务,以获取服务费。这种服务模式为需求者提供便利,同时也为提供服务的学生带来一定的收入。 大学里校园跑腿的特点主要有以…

git实战教程

Git实战教程涵盖了Git的基本操作以及如何在日常开发中高效地使用Git进行版本控制。以下是一些Git实战的基础操作步骤,以帮助您快速入门和熟悉Git的使用: ### Git基础操作流程 1. **安装Git** - 下载并安装适用于您操作系统的Git客户端,比…

若依分离版 —引入echart连接Springboot后端

1. vue引入echart &#xff08;1&#xff09;首先安装ECharts库。可以通过npm npm install echarts --save &#xff08;2&#xff09;在vue页面中添加一个容器元素来显示图表 <el-card class"mt20"><div id"ha" ref"main"><…

六、保持长期高效的七个法则(二)Rules for Staying Productive Long-Term(2)

Rule #5 - If your work changes, your system should too. 准则五&#xff1a;如果你的工作变了&#xff0c;你的系统也应该改变。 For some, work will be consistent enough to not need major changes.You simply stick to the same system and you’ll get the results y…

fbx smpl转换

目录 3.7 3.8版本&#xff1a; c sdk 3.9 自己编译 下面的库和代码结合 测试ok 大神编译了各个版本 smpl转fbx windows 可行代码 3.7 3.8版本&#xff1a; https://github.com/Shiiho11/FBX-Python-SDK-for-Python3.x c sdk vs2019 https://www.autodesk.com/develop…

openGauss 分区

分区 可获得性 本特性自openGauss 1.1.0版本开始引入。 特性简介 数据分区是在一个节点内部对数据按照用户指定的策略做进一步的水平分表&#xff0c;将表按照指定范围划分为多个数据互不重叠的部分。 客户价值 对于大多数用户使用场景&#xff0c;分区表和普通表相比具有…

【Spring】SpringBoot整合MybatisPlus的基本应用

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 一、MybatisPlus简介 先来看一下官方的简介吧。 MyBatis-Plus &#xff08;简称 MP&#xff09;是一个 MyBatis的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为 简化开发、提高效率而生。Myb…

安卓Android 架构模式及UI布局设计

文章目录 一、Android UI 简介1.1 在手机UI设计中&#xff0c;坚持的原则是什么1.2 安卓中的架构模式1.2.1 MVC (Model-View-Controller)设计模式优缺点 1.2.2 MVP(Model-View-Presenter)设计模式MVP与MVC关系&#xff1a; 1.2.3 MVVM(Model—View—ViewModel ) 设计模式1.2.4 …

关于 C/C++ 1Z(17)开源项目 openppp2 协同程式切换工作流

下述为开源项目 openppp2&#xff08;github&#xff09;构建工作在 C/C 17 的 stackful 有栈协同程式的工作流切换示意图&#xff1a; 在 openppp2 之中采用人工手动方式管理协同程式之间的切换&#xff0c;每个中断过程只是保存线程栈信息&#xff08;如寄存器、当前#PC EIP&…

Python PyQt5——QPainter 绘图用法与代码示例

QPainter是Qt框架中的一个类&#xff0c;用于在Qt基于应用程序中进行绘图和绘制图形。 使用QPainter&#xff0c;可以绘制各种形状&#xff0c;如线条、矩形、椭圆和多边形&#xff0c;以及文本和图像。它提供了用于指定颜色、画笔、笔刷和变换的方法。 QPainter 在 PyQt5 中…

Deferred library xxx was not loaded

Deferred 延迟修饰词作用下的文件库尚未完成载入

总结jvm中GC机制(垃圾回收)

前言 本篇博客博主将介绍jvm中的GC机制&#xff0c;坐好板凳发车啦~~ 一.GC相关 1.1回收栈内存 对于虚拟机栈&#xff0c;本地方法栈这部分区域而言&#xff0c;其生命周期与相关线程相关&#xff0c;随线程而生&#xff0c;随线程而灭。并且这三个区域的内存分配与回收具有…

maya安装笔记

目录 linux系统安装 linux系统安装 2020 Ubuntu安装maya2020全过程以及遇到的问题_ubuntu maya安装包-CSDN博客 下载地址&#xff1a; https://up.autodesk.com/2020/MAYA/18BBDBD5-9A15-4095-8D5E-089938EB8E24/Autodesk_Maya_2020_1_ML_Linux_64bit.tgz 参考&#xff1a…

成熟在用的二级医院手术麻醉系统源码 医疗管理系统源码 自主版权

成熟在用的二级医院手术麻醉系统源码 医疗管理系统源码 自主版权 手术麻醉临床信息系统有着完善的临床业务功能&#xff0c;能够涵盖整个围术期的工作&#xff0c;能够采集、汇总、存储、处理、展现所有的临床诊疗资料。通过该系统的实施&#xff0c;能够规范麻醉科的工作流程…

jnpf3.6私有化部署

文件内容 project web > 特别说明&#xff1a;源码、JDK、MySQL、Redis等安装或存放路径禁止包含中文、空格、特殊字符等## 一 技术栈- 主框架&#xff1a;Spring Boot Spring Framework - 持久层框架&#xff1a;MyBatis-Plus - 数据库连接池&#xff1a;Alibaba Druid -…

OpenCV与AI深度学习 | 实战 | YOLOv8自定义数据集训练实现手势识别 (标注+训练+预测 保姆级教程)

本文来源公众号“OpenCV与AI深度学习”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;实战 | YOLOv8自定义数据集训练实现手势识别 (标注训练预测 保姆级教程) 0 导 读 本文将手把手教你用YoloV8训练自己的数据集并实现手势识别…

小波包变换(WPT)和OMP实现压缩感知

压缩感知(Compressed Sensing)是一种信号处理理论,它可以从非常少量和不完整的采样中恢复信号,并且在图像处理、医学成像、通信等领域有着广泛的应用。下面是压缩感知算法的一般实现步骤和细节: 1. 压缩感知基本原理 压缩感知的基本思想是,信号通常具有一种稀疏性或者低…

IDEA中连接SQLserver数据库(DataGrip相同连接)

IDEA中连接SQLserver数据库(DataGrip相同连接) 1. 打开IDEA-database组件 2. 新建SQL server连接 3. 填写信息进行连接 填写连接名称&#xff0c;连接主机IP&#xff0c;端口&#xff0c;默认端口1433&#xff0c;数据库用户名密码&#xff0c;默认数据库用户名是sa 第一次连接…