UAV | 多算法在多场景下的无人机路径规划(Matlab)

news2024/10/2 12:19:10

在这里插入图片描述

近年来,无人机(unmanned aerial vehicle,UAV)由于其灵活度高、机动性强、安全风险系数小、成本低等特点,被广泛应用于搜索巡逻、侦察监视、抢险救灾、物流配送、电力巡检、农业灌溉等军用或民用任务。路径规划是无人机执行任务的关键,也是自主无人机在工程应用上的主要挑战。

现有的无人机路径规划算法主要分为经典算法和元启发式算法,经典算法包括:A*算法、快速搜索随机数RRT等,但这些算法在面对复杂环境时搜索效率较低,收敛迟缓。而元启发式算法即在启发式算法基础上改进的一种智能优化算法,路径优化问题是典型的NP-hard问题,其常带有复杂约束,一般的求解器很难找到精确解,但PSO、GA、GWO等智能优化算法能够有效求解复杂的组合优化问题,因而在无人机路径规划的研究中已经得到广泛的应用。

因此,本文将元启发式算法应用于几个不同复杂程度的地形模型,同时,考虑到一些智能优化算法容易陷入局部最优解,因此本文也引入作者的一些原创改进算法以进一步提升其全局搜索性能。

00 文章目录

1 UAV路径规划问题建模

2 智能优化算法、原创改进算法原理

3 代码目录

4 仿真实验

5 源码获取

01 UAV路径规划问题建模

在复杂的地形中,无人机按照路径规划结果从起始点飞向目标点。在飞行过程中,无人机可能面临地形障碍、火力威胁、雷达扫描区域等障碍物,同时有燃料消耗,最大爬升和最大转弯能力等约束,为保证UAV的安全协调飞行,路径规划算法需要得到连接起点和终点的最佳路径。

假设无人机保持预先给定的飞行速度。这样,路径规划问题就被简化为一个静态的折线规划问题。考虑无人机的运行要求,因此通过计算航程长度成本、飞行高度成本、威胁成本和平滑成本,定义无人机路径规划的成本函数,其数学表示如下:

在这里插入图片描述

其中,Xi是决策变量,为n个航站点(x,y,z)的列表,bk为各成本函数的权重,Fk为第k个成本函数。下面具体介绍一下这4个成本函数。本篇中的成本函数的参考文献为[1]。

1.1 航程长度成本

无人机的飞行路线的长度应尽可能短,以保存无人机的燃料消耗,其通过多个段的总和来计算。将两个节点之间的欧几里得距离作为每个段的长度,然后计算特定路径P的路径长度成本如下:

在这里插入图片描述

1.2 威胁成本

除了路径长度最优之外,路径规划中的路径还必须要确保无人机的安全运行,可能会遇到被称为威胁区域的禁飞区(例如雷达探测、防空装备攻击或天气威胁等)。考虑到威胁建模的复杂性和获取真实数据的困难性,本文对威胁环境进行了抽象化处理,将威胁区域抽象为一个半径为定值的圆柱体,威胁区域的作用半径等同于圆柱体的半径,设置威胁区域的目的是为了满足无人机的飞行环境,让无人机成功避开威胁区域以完成飞行任务。其图像如下:

在这里插入图片描述

设M为所有存在威胁的障碍物集合;障碍物模型为圆柱体,其投影的圆心为Cm;Rm为障碍物的半径;D为无人机的直径,相邻两个路径节点与原点的垂直距离为dm,S表示障碍物的危险区域,该值取决于无人机的定位精度与飞行环境。如果无人机处于静态环境中且 GPS 信号良好,那么 S 的值可能是几十米;如果环境中存在移动的物体或GPS信号差,那么S的值将超过百米。对于一个路径,其威胁成本计算式为:
在这里插入图片描述

当无人机在危险区域以外的地方飞行时,不存在碰撞的风险,其威胁为零;而当无人机经过危险区域时,dm越小威胁越大;当无人机途经碰撞区域时,无人机会碰撞坠毁,此时设定该路径的威胁赋值为无穷。

1.3高度成本

UAV飞行高度通常由最小高度hmin和最大高度hmax约束,例如,对于测量和搜索时,需要由相机以特定分辨率和视角收集视觉数据。如图所示,
在这里插入图片描述

图源文献[1]

则高度成本计算如下:

在这里插入图片描述

可以看出,高度成本将保持平均高度并惩罚超出范围的值。

1.4 平滑成本

无人机的飞行角度控制参数主要包括水平转向角和垂直俯仰角,这两个参数变量必须满足无人机的实际角度约束,否则轨迹规划模型无法生成可行的飞行路径。如图所示,
在这里插入图片描述

图源文献[1]

水平转向角φij是投影在水平面Oxy上的两个连续路径段之间的角度,水平转向角计算为:

在这里插入图片描述

垂直俯仰角ψij是投影在竖轴上的两个连续路径段之间的角度,则垂直俯仰角计算为:
在这里插入图片描述

则平滑成本计算如下:
在这里插入图片描述

式中,a1和a2分别为水平转向角和垂直俯仰角的惩罚系数。

1.5 环境建模

本文使用真实的数字高程模型DEM地图进行作为无人机路径规划问题中的环境。选择了一个澳大利亚圣诞岛的DEM,以及另一个具有不同地形结构的数据地图。对其增添不同的威胁物以对不同复杂度的地形进行模拟,最终共生成4个地形以供路径规划,地形环境如下:

在这里插入图片描述

1.6 解的编码

文献[1]中创新从地方之一就是他用的是球形矢量坐标而不是我们通常的直角坐标,球形坐标可以表示如下:
在这里插入图片描述

他用径向距离r,极角θ,方位角φ来表示位置,若三维直角坐标是(x,y,z),那么球坐标就是(r,θ,φ)。这种编码方式的优点在于,若将优化算法中的解的种群按r,θ,φ编码,那么其可以描述出某个点到下一个点的运动轨迹,并且也可以完美使其运动轨迹满足于平滑成本中的转向角和俯仰角的要求,与随机产生n个直角坐标相比,这种方式产生的解质量更高、更容易产生可行解,当固定速度飞行时,可以固定其r。

举一个容易理解的例子:

在这里插入图片描述

若采用直角坐标系进行初始化种群,则是下面的紫色线,其xyz都是随机产生,因此下一个节点虽然可以在空间的任何位置,但节点间没有关联,容易产生不满足于约束的解,而球形坐标能够基于上一个点进行运动,获得可行解的几率更高。

球形坐标与直角坐标的转换关系如下:

在这里插入图片描述

其中,ρ就是径向距离r,ψ就是极角θ,φ就是方位角φ

02智能优化算法、原创改进算法原理

本文使用了灰狼、鲸鱼、粒子群等共6种智能优化算法,并引入了作者的原创改进算法

03 代码目录

在这里插入图片描述

代码仅有MATLAB版本,包含乱码解决方案,若运行出现问题可联系我。

部分代码如下:

在这里插入图片描述

可以看到,作者已基本整理的和函数测试的代码格式一致,非常方便大家进行修改。

04 仿真实验

其中,绘图的结果和我在程序中设定的各成本函数的权值有关
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

另外,作者也引入了在往期文章中的原创改进算法,部分结果如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

05 源码获取

1.作者的此版本的代码基础即是文献[1]中的开源代码,这份代码对UAV的编程学习有很大的帮助

大家可以 搜索该文献获取其代码 或 GZH(KAU的云实验台)后台回复:UAV2 获取其 github地址。

2.本文代码:

GZH(KAU的云实验台)后台回复:UAVB

3.包含作者原创改进算法的代码:

如改进的灰狼、鲸鱼和哈里斯鹰,但由于算法的随机性,其结果并不能每次都是算法中的最优,因此若想要该部分算法的可以和作者了解一下再决定,获取方式:

引入MSGWO的UAV —— GZH(KAU的云实验台)后台回复

UAVGWO

引入AAMCWOA的UAV —— GZH(KAU的云实验台)后台回复

UAVWOA

引入SDMQHHO的UAV —— GZH(KAU的云实验台)后台回复

​UAVHHO

参考文献

[1]PHUNG M D, HA Q P. Safety-enhanced UAV path planning with spherical vector-based particle swarm optimization [J]. Ap⁃ plied Soft Computing, 2021, 107: 107376.

另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。

如果这篇文章对你有帮助或启发,可以点击右下角的赞/再看 (ง •̀_•́)ง(不点也行),若有定制需求,可私信作者。

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

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

相关文章

我的NPI项目之设备系统启动(二) -- 系统启动阶段和分区的区别

系统启动的就几大阶段: 基于高通平台的Android OS启动过程,简单的说,可以分为一下几个部分: 之前一个比较老的平台大概是这样: 现在比较新的5G平台: 差别在这里,重点了解一下新平台的情况。xb…

Java BIO、NIO、AIO、Netty知识详解(值得珍藏)

1. 什么是IO Java中I/O是以流为基础进行数据的输入输出的,所有数据被串行化(所谓串行化就是数据要按顺序进行输入输出)写入输出流。简单来说就是java通过io流方式和外部设备进行交互。 在Java类库中,IO部分的内容是很庞大的,因为它涉及的领…

深度学习 Day24——J3-1DenseNet算法实战与解析

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制🚀 文章来源:K同学的学习圈子 文章目录 前言1 我的环境2 pytorch实现DenseNet算法2.1 前期准备2.1.1 引入库2.1.2 设…

静态网页设计——宠物狗狗网(HTML+CSS+JavaScript)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 感谢大佬的视频: https://www.bilibili.com/video/BV1nk4y1X74M/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术:HTMLCSSJS(…

【Java EE初阶六】多线程案例(单例模式)

1. 单例模式 单例模式是一种设计模式,设计模式是我们必须要掌握的一个技能; 1.1 关于框架和设计模式 设计模式是软性的规定,且框架是硬性的规定,这些都是技术大佬已经设计好的; 一般来说设计模式有很多种,…

ROS-arbotix安装

方式一:命令行输入: sudo apt-get install ros-melodic-arbotix如果ROS为其他版本,可将melodic替换为对应版本。 方式二: 先从 github 下载源码,然后调用 catkin_make 编译 git clone https://github.com/vanadiumla…

如何把硬盘(分区)一分为二?重装系统的小伙伴不可不看

注意事项:本教程操作不当会导致数据丢失 请谨慎操作 请谨慎操作 请谨慎操作 前言 相信各位小伙伴都会切土豆吧,本教程就是教大家如何切土豆切得好的教程。 啊哈哈哈,开玩笑的。 比如你有一个D盘是200GB,想要把它变成两个100G…

码农的周末日常---2024/1/6

上周总结 按照规划进行开发,处事不惊,稳稳前行 2024.1.6 天气晴 温度适宜 AM 睡觉前不建议做决定是真的,昨天想着睡到中午,今天九点多醒了,得了,不想睡了 日常三连吧,…

商品加入购物篮后就一定能买到?

笔者今天在某网站购买商品时,将商品添加到购物车之后,耽搁了几分钟之后,就发现支付时提示库存不足,我想很多朋友肯定知道平台为啥这样设计?但是我还是想借着这件事来简单介绍一下,有不足之处,还…

HPM6750开发笔记《DMA接收和发送数据UART例程深度解析》

目录 概述: 端口设置: 代码分析: 运行现象: 概述: DMA(Direct Memory Access)是一种计算机系统中的数据传输技术,它允许数据在不经过中央处理器(CPU)的直…

虾皮长尾词工具:如何使用关键词工具优化Shopee产品的长尾关键词

在Shopee(虾皮)平台上,卖家们都希望能够吸引更多的潜在买家,提高产品的曝光率和转化率。而要实现这一目标,了解和使用长尾关键词是非常重要的。本文将介绍长尾关键词的定义、重要性以及如何使用关键词工具来优化Shopee…

【LeetCode:11. 盛最多水的容器 | 双指针】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

数字孪生在增强现实(AR)中的应用

数字孪生在增强现实(Augmented Reality,AR)中的应用可以提供更丰富、交互性更强的现实世界增强体验。以下是数字孪生在AR中的一些应用,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司&#xff…

【C++】STL 算法 ④ ( 函数对象与谓词 | 一元函数对象 | “ 谓词 “ 概念 | 一元谓词 | find_if 查找算法 | 一元谓词示例 )

文章目录 一、函数对象与谓词1、一元函数对象2、" 谓词 " 概念3、find_if 查找算法 二、一元谓词示例1、代码示例 - 一元谓词示例2、执行结果 一、函数对象与谓词 1、一元函数对象 " 函数对象 " 是通过 重载 函数调用操作符 () 实现的 operator() , 函数对…

VMware 安装 macOS虚拟机(附工具包)

VMware 安装 macOS虚拟机,在Windows上体验苹果macOS系统! 安装教程:VMware 安装 macOS虚拟机VMware Workstation Pro 是一款强大的虚拟机软件,可让您在 Windows 电脑上运行 macOS 系统。只需简单几步操作,即可轻松安装…

什么是Alibaba Cloud Linux?完全兼容CentOS,详细介绍

Alibaba Cloud Linux是基于龙蜥社区OpenAnolis龙蜥操作系统Anolis OS的阿里云发行版,针对阿里云服务器ECS做了大量深度优化,Alibaba Cloud Linux由阿里云官方免费提供长期支持和维护LTS,Alibaba Cloud Linux完全兼容CentOS/RHEL生态和操作方式…

企业档案集中式管理什么意思?企业档案集中式管理的特点

企业档案集中式管理是指将企业所有的档案资料集中存放、管理和维护的一种方式。在集中式管理中,企业将所有的档案资料集中存放在一个统一的档案中心或档案馆中,通过专门的档案管理人员负责对档案资料进行分类、整理、存储和检索,确保档案资料…

【Java】实验七

实验要求: 1、编写有复制文本文件功能的记事本程序,界面参考下图,窗口中放置文本区(JTextArea)组件: 当点击“复制文件”菜单项后,出现下面的文件对话框,选择要复制的文件。 点击“打开”按钮后,将选中的文件显示在记事本的文本区,并将该文件复制到同一目录下的“cop…

刚学C/C++,使用的是CLion,想要在同一个项目里面运行多个相互独立脚本?

前言: 正常来说,一般一个项目只会有一个程序入口点。C和C程序的入口点是main函数。在一个项目中,只能有一个main函数,否则编译器会不知道从哪个main函数开始执行。 但是,作为初学者,我就是想用CLio…

Apple M2 Pro芯片 + docker-compose up + mysql、elasticsearch pull失败问题的解法

背景 (1)从github上git clone了一个基于Spring Boot的Java项目,查看readme,发现要在项目的根目录下,执行“docker-compose up”。(2)执行“docker-compose up”的前提是,在macos上要…