【算法应用】基于粒子群算法PSO求解无人机集群路径规划问题

目录

    • 1.无人机路径规划模型
    • 2.粒子群算法PSO原理
    • 3.结果展示
    • 4.参考文献
    • 5.代码获取


1.无人机路径规划模型

路径最优性

为了实现UAV的高效运行,计划的路径需要在某一特定标准上达到最优。UAV飞行路径Xi表示为UAV需要飞过的一系列n个航路点,每个航路点对应搜索地图中的一个路径节点,其坐标为Pij = (xij, yij, zij)。通过计算两个节点之间的欧几里得距离,计算出路径长度相关的成本F1:
F 1 ( X i ) = ∑ j = 1 n − 1 ∥ P i j P i , j + 1 → ∥ F_1\left(X_i\right)=\sum_{j=1}^{n-1}\left\|\overrightarrow{P_{ij}P_{i,j+1}}\right\| F1(Xi)=j=1n1 PijPi,j+1

安全性和可行性约束

除了最优性外,计划的路径还需要通过引导UAV避开操作空间中出现的障碍来确保UAV的安全运行。设K为所有威胁的集合,每个威胁假设为一个圆柱体,其投影中心坐标为Ck,半径为Rk。对于给定的路径段 ∥ P i j P i , j + 1 → ∥ \left\|\overrightarrow{P_{ij}P_{i,j+1}}\right\| PijPi,j+1 ,与威胁相关的成本与其到Ck的距离dk成正比。考虑UAV的直径D和碰撞区的危险距离S,可以计算威胁成本F2:
F 2 ( X i ) = ∑ j = 1 n − 1 ∑ k = 1 K T k ( P i j P i , j + 1 → ) F_2(X_i)=\sum_{j=1}^{n-1}\sum_{k=1}^KT_k(\overrightarrow{P_{ij}P_{i,j+1}}) F2(Xi)=j=1n1k=1KTk(PijPi,j+1 )
T k ( P i j , P i j + 1 ) = { 0 , if  d k > S + D + R k , ( S + D + R k ) − d k , if  D + R k < d k ≤ S + D + R k , ∞ , if  d k ≤ D + R k . T_k(P_{ij}, P_{ij+1}) = \begin{cases} 0, & \text{if } d_k > S + D + R_k, \\ (S + D + R_k) - d_k, & \text{if } D + R_k < d_k \leq S + D + R_k, \\ \infty, & \text{if } d_k \leq D + R_k. \end{cases} Tk(Pij,Pij+1)= 0,(S+D+Rk)dk,,if dk>S+D+Rk,if D+Rk<dkS+D+Rk,if dkD+Rk.
飞行高度约束

UAV飞行高度通常受到两个极限的约束,即最小和最大高度。设最小和最大高度分别为hmin和hmax。与航点Pij相关的高度成本计算:
H i j = { ∣ h i j − ( h max ⁡ + h min ⁡ ) 2 ∣ , if h min ⁡ ≤ h i j ≤ h max ⁡ ∞ , otherwise , (3) H_{ij}=\begin{cases}|h_{ij}-\frac{(h_{\max}+h_{\min})}{2}|,&\text{if}h_{\min}\leq h_{ij}\leq h_{\max}\\\infty,&\text{otherwise},\end{cases}\tag{3} Hij={hij2(hmax+hmin),,ifhminhijhmaxotherwise,(3)
其中,hij表示相对于地面的飞行高度。将所有航路点的Hij求和,得到飞行高度成本F3:
F 3 ( X i ) = ∑ j = 1 n H i j (4) F_3(X_i)=\sum_{j=1}^nH_{ij}\tag{4} F3(Xi)=j=1nHij(4)

平滑度约束

UAV平滑度是对UAV方位角和俯仰角约束,这些是生成可行路径的关键。
UAV转弯角度:
ϕ i j = arctan ⁡ ( ∥ P i j ′ P i , j + 1 ′ → × P i , j + 1 ′ P i , j + 2 ′ → ∥ P i j ′ P i , j + 1 ′ → . P i , j + 1 ′ P i , j + 2 ′ → ) (5) \phi_{ij}=\arctan\left(\frac{\left\|\overrightarrow{P_{ij}^{\prime}P_{i,j+1}^{\prime}}\times\overrightarrow{P_{i,j+1}^{\prime}P_{i,j+2}^{\prime}}\right\|}{\overrightarrow{P_{ij}^{\prime}P_{i,j+1}^{\prime}}.\overrightarrow{P_{i,j+1}^{\prime}P_{i,j+2}^{\prime}}}\right)\tag{5} ϕij=arctan PijPi,j+1 .Pi,j+1Pi,j+2 PijPi,j+1 ×Pi,j+1Pi,j+2 (5)
UAV俯仰角度:
ψ i j = arctan ⁡ ( z i , j + 1 − z i j ∥ P i j ′ P i , j + 1 ′ → ∥ ) (6) \psi_{ij}=\arctan\left(\frac{z_{i,j+1}-z_{ij}}{\left\|\overrightarrow{P_{ij}^{\prime}P_{i,j+1}^{\prime}}\right\|}\right)\tag{6} ψij=arctan PijPi,j+1 zi,j+1zij (6)
计算平滑成本F4为:
F 4 ( X i ) = a 1 ∑ j = 1 n − 2 ϕ i j + a 2 ∑ j = 1 n − 1 ∣ ψ i j − ψ i , j − 1 ∣ (7) F_4(X_i)=a_1\sum_{j=1}^{n-2}\phi_{ij}+a_2\sum_{j=1}^{n-1}\mid\psi_{ij}-\psi_{i,j-1}\mid\tag{7} F4(Xi)=a1j=1n2ϕij+a2j=1n1ψijψi,j1(7)

考虑路径Xi的最优性、安全性和可行性约束,总体成本函数可以定义为:
F ( X i ) = ∑ k = 1 4 b k F k ( X i ) (8) F(X_i)=\sum_{k=1}^4b_kF_k(X_i)\tag{8} F(Xi)=k=14bkFk(Xi)(8)

三维坐标 P i j = ( x i j , y i j , z i j ) ∈ X i P_{ij}=(x_{ij},y_{ij},z_{ij})\in X_{i} Pij=(xij,yij,zij)Xi到球形坐标 u i j = ( ρ i j , ψ i j , ϕ i j ) ∈ Ω i u_{ij}=(\rho_{ij}, \psi_{ij}, \phi_{ij}) \in \Omega_{i} uij=(ρij,ψij,ϕij)Ωi转换:
x i j = x i , j − 1 + ρ i j s i n ψ i j c o s ϕ i j , y i j = y i , j − 1 + ρ i j s i n ψ i j s i n ϕ i j , z i j = z i , j − 1 + ρ i j c o s ψ i j . (9) \begin{aligned}x_{ij}&=x_{i,j-1}+\rho_{ij}sin\psi_{ij}cos\phi_{ij},\\y_{ij}&=y_{i,j-1}+\rho_{ij}sin\psi_{ij}sin\phi_{ij},\\z_{ij}&=z_{i,j-1}+\rho_{ij}cos\psi_{ij}.\end{aligned}\tag{9} xijyijzij=xi,j1+ρijsinψijcosϕij,=yi,j1+ρijsinψijsinϕij,=zi,j1+ρijcosψij.(9)

2.粒子群算法PSO原理

【智能算法】粒子群算法(PSO)原理及实现

3.结果展示






4.参考文献

[1] Phung M D, Ha Q P. Safety-enhanced UAV path planning with spherical vector-based particle swarm optimization[J]. Applied Soft Computing, 2021, 107: 107376.

5.代码获取

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

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

相关文章

电脑ip地址每次开机会换吗?全面解析

在探讨“电脑IP地址每次开机会换吗”这一问题时&#xff0c;我们首先需要明确的是&#xff0c;IP地址的更换情况并非一成不变&#xff0c;而是受到多种因素的影响&#xff0c;其中最核心的是IP地址的类型——动态IP还是静态IP。这两种类型的IP地址在分配方式、稳定性以及使用场…

sqli-labs靶场 less 8

文章目录 sqli-labs靶场less 8 布尔盲注 sqli-labs靶场 每道题都从以下模板讲解&#xff0c;并且每个步骤都有图片&#xff0c;清晰明了&#xff0c;便于复盘。 sql注入的基本步骤 注入点注入类型 字符型&#xff1a;判断闭合方式 &#xff08;‘、"、’、“”&#xf…

docker-Dify外接Fastgpt知识库

参考地址&#xff1a;https://mp.weixin.qq.com/s/crQrneHZ0sT-c04YanofSw 总体步骤 部署fda(fastgpt-dify-adapter)docker 部署dify&#xff0c;fastgpt在fastgpt创建open apikey&#xff0c;复制知识库id&#xff1b;在dify外接fastgpt知识库&#xff1b; docker安装 下载…

Django学习笔记

Django学习笔记 安装django pip install django创建APP 用django来写后端的时候&#xff0c;要把各个功能分散到各个创建好的APP去实现 在终端输入 python manage.py startapp app01(APP名称)APP内部文件 admin.py django默认提供了admin后台管理 apps.py app启动类 mo…

向量数据库是什么,它有什么作用?

环境&#xff1a; 向量数据库 问题描述&#xff1a; 向量数据库是什么&#xff0c;它有什么作用 解决方案&#xff1a; 向量数据库是一种专门设计用于高效处理高维向量数据的系统&#xff0c;主要用于存储、索引、查询和检索高维向量数据&#xff0c;特别适合处理非结构化数…

【SPP】蓝牙串口协议应用层深度解析:从连接建立到实战开发

目录 一、SPP应用层协议框架与角色模型 1.1 分层协议栈模型 1.2 设备角色模型&#xff08;DevA 与 DevB 交互&#xff09; 二、连接建立流程&#xff1a;从 SDP 到 RFCOMM 2.1 服务发现&#xff08;SDP&#xff09;流程&#xff08;SDP 记录关键参数&#xff09; 2.2 连接…

【Portainer】Docker可视化组件安装

Portainer Portainer 是用于管理容器化环境的一体化平台工程解决方案&#xff0c;提供广泛的定制功能&#xff0c;以满足个人开发人员和企业团队的需求。 官方地址: https://www.portainer.io/ 安装 在 WSL / Docker Desktop 上使用 Docker 安装 Portainer CE 通过命令或UI页…

【第33节】windows原理:初探PE文件

目录 一、PE文件概述 二、DOS头部 三、DOS头部与NT头部之间 四、NT头部 五、文件头区段 六、了解个别概念 七、扩展头 八、区段头表 一、PE文件概述 PE文件是有特定格式的文件&#xff0c;像后缀名是EXE的可执行文件、后缀名是DLL的动态链接库文件、sys格式的驱动文件&…

谷粒微服务高级篇学习笔记整理---异步线程池

多线程回顾 多线程实现的4种方式 1. 继承 Thread 类 通过继承 Thread 类并重写 run() 方法实现多线程。 public class MyThread extends Thread {Overridepublic void run() {System.out.println("线程运行: " Thread.currentThread().getName());} }// 使用 pub…

网络运维学习笔记(DeepSeek优化版) 024 HCIP-Datacom OSPF域内路由计算

文章目录 OSPF域内路由计算&#xff1a;单区域的路由计算一、OSPF单区域路由计算原理二、1类LSA详解2.1 1类LSA的作用与结构2.2 1类LSA的四种链路类型 三、OSPF路由表生成验证3.1 查看LSDB3.2 查看OSPF路由表3.3 查看全局路由表 四、2类LSA详解4.1 2类LSA的作用与生成条件4.2 2…

飞桨PP系列新成员PP-DocLayout开源,版面检测加速大模型数据构建,超百页文档图像一秒搞定

背景介绍 文档版面区域检测技术通过精准识别并定位文档中的标题、文本块、表格等元素及其空间布局关系&#xff0c;为后续文本分析构建结构化上下文&#xff0c;是文档图像智能处理流程的核心前置环节。随着大语言模型、文档多模态及RAG&#xff08;检索增强生成&#xff09;等…

以科技赋能,炫我云渲染受邀参加中关村文化科技融合影视精品创作研讨会!

在文化与科技深度融合的时代浪潮下&#xff0c;影视创作行业经历着前所未有的变革。影视创作行业发展态势迅猛&#xff0c; 同时也面临着诸多挑战。为促进影视创作行业的创新发展&#xff0c;加强业内交流与合作&#xff0c; 3月25日下午&#xff0c;海淀区文化创意产业协会举办…

NFS挂载异常排查记录

互相PING服务器看是否通&#xff1b;在ubuntu下看下服务器是否正常运行。导出目录是否导出了。最后发现在挂载目录的地方目录路径和后面没有加空格。

flutter 专题 七十一 Flutter 自定义单选控件

在Flutter 应用开发中&#xff0c;经常会遇到各种单选效果&#xff0c;虽然官方提供了Radio组件&#xff0c;但是并不能满足我们实际的开发需求&#xff0c;所以往往还需要自定义控件才能满足平时的开发需求。下面就平时开发中用到的单选进行介绍&#xff1a; 自定义SegmentBa…

在Cesium中使用ThreeJs材质(不是场景融合哦)

在Cesium中使用ThreeJs材质(不是场景融合哦&#xff09;_哔哩哔哩_bilibili

浅谈Thread类及常见方法与线程的状态(多线程编程篇2)

目录 前言 1.Thread类及常见方法 Thread类中常见的属性 1. getId() 2. getName() 3. getState() 4. getPriority() 5. isDaemon() 6. isAlive() 7. isInterrupted() 2.Thread类中常见的方法 Thread.interrupt() (中断线程) Thread.start()(启动线程) 1. 覆写 run…

Elasticsearch:人工智能时代的公共部门数据治理

作者&#xff1a;来自 Elastic Darren Meiss 人工智能&#xff08;AI&#xff09;和生成式人工智能&#xff08;GenAI&#xff09;正在迅速改变公共部门&#xff0c;从理论探讨走向实际应用。正确的数据准备、管理和治理将在 GenAI 的成功实施中发挥关键作用。 我们最近举办了…

使用事件监听器来处理并发环境中RabbitMQ的同步响应问题

RabbitListener 是 Spring AMQP 提供的核心注解&#xff0c;用于简化 RabbitMQ 消息监听器的创建。以下是对 RabbitListener(queues "balloonWords.queue") 的详细解析&#xff1a; 一、基础功能 队列监听 通过 queues 属性指定监听的队列名称&#xff08;如 "…

2025年数智化电商产业带发展研究报告260+份汇总解读|附PDF下载

原文链接&#xff1a;https://tecdat.cn/?p41286 在数字技术与实体经济深度融合的当下&#xff0c;数智化产业带正成为经济发展的关键引擎。 从云南鲜花产业带的直播热销到深圳3C数码的智能转型&#xff0c;数智化正重塑产业格局。2023年数字经济规模突破53.9万亿元&#xff…

自动驾驶04:点云预处理03

点云组帧 感知算法人员在完成点云的运动畸变补偿后&#xff0c;会发现一个问题&#xff1a;激光雷达发送的点云数据包中的点云数量其实非常少&#xff0c;完全无法用来进行后续感知和定位层面的处理工作。 此时&#xff0c;感知算法人员就需要对这些数据包进行点云组帧的处理…