多目标优化算法求解无人机三维路径规划

news/2024/4/19 1:33:49

一、无人机模型

无人机三维路径规划是无人机在执行任务过程中的非常关键的环节,无人机三维路径规划的主要目的是在满足任务需求和自主飞行约束的基础上,计算出发点和目标点之间的最佳航路。

1.1路径成本

无人机三维路径规划的首要目标是寻找起飞点和目标点之间最短路程的飞行路径方案。一般地,记无人机的飞行路径点为 W i j = ( x i j , y i j , z i j ) W_{i j}=\left(x_{i j}, y_{i j}, z_{i j}\right) Wij=(xij,yij,zij)即在第 i i i 条飞行路径中第 j j j个路径点的无人机三维空间位置,则整条飞行路径 X i X_{i} Xi 可表示为包含 n n n 个路径点的三维数组。将 2 个路径点之间的欧氏距离记作路径段 ∥ W i j W i , j + 1 → ∥ \left\|\overrightarrow{W_{i j} W_{i, j+1}}\right\| WijWi,j+1 ,则与无人机飞行路径成本函数 F 1 F_{1} F1 为:
F 1 ( X i ) = ∑ j = 1 n − 1 ∥ W i j W i , j + 1 → ∥ F_{1}\left(X_{i}\right)=\sum_{j=1}^{n-1}\left\|\overrightarrow{W_{i j} W_{i, j+1}}\right\| F1(Xi)=j=1n1 WijWi,j+1

1.2威胁成本

无人机通过躲避障碍物来确保安全作业航迹。设定障碍物威胁区为圆柱体形式,其投影如下图所示,记圆柱体中心坐标为 C k C_{k} Ck,半径为 R k R_{k} Rk,外围为碰撞威胁区 D D D,则无人机的避障威胁成本与其路径段 ∥ W i j W i , j + 1 → ∥ \left\|\overrightarrow{W_{i j} W_{i, j+1}}\right\| WijWi,j+1 和障碍物中心 C k C_{k} Ck的距离 d k d_{k} dk 成反比。
在这里插入图片描述

将飞行环境下的障碍物威胁区集合记作 K K K,障碍物威胁成本惩罚系数记作 γ c γ_{c} γc ,则与无人机避障威胁相关的成本函数 F 2 F_{2} F2为:
F 2 ( X i ) = ∑ j = 1 n − 1 ∑ k = 1 K T k ( W i j W i , j + 1 → ) F_{2}\left(X_{i}\right)=\sum_{j=1}^{n-1} \sum_{k=1}^{K} T_{k}\left(\overrightarrow{W_{i j} W_{i, j+1}}\right) F2(Xi)=j=1n1k=1KTk(WijWi,j+1 )
其中:
T k ( W i j W i , j + 1 → ) = { 0 ( d k > D + R k ) γ c ( ( D + R k ) − d k ) ( R k < d k < D + R k ) 1000 ( d k < R k ) T_{k}\left(\overrightarrow{W_{i j} W_{i, j+1}}\right)=\left\{\begin{array}{ll} 0 & \left(d_{k}>D+R_{k}\right) \\ \gamma_{c}\left(\left(D+R_{k}\right)-d_{k}\right) & \left(R_{k}<d_{k}<D+R_{k}\right) \\ \ 1000 & \left(d_{k}<R_{k}\right) \end{array}\right. Tk(WijWi,j+1 )= 0γc((D+Rk)dk) 1000(dk>D+Rk)(Rk<dk<D+Rk)(dk<Rk)

1.3飞行高度成本

无人机的飞行高度通常受到最小高度 h m i n h_{min} hmin 和最大高度 h m a x h_{max} hmax 的约束限制,如下图 所示,其中 T i j T_{ij} Tij 为地形的高度, Z i j Z_{ij} Zij为无人机相对于海平面的高度。
在这里插入图片描述

将无人机在路径点 W i j W_{ij} Wij处距离基准地形地面的高度记作 h i j h_{ij} hij,即 Z i j Z_{ij} Zij T i j T_{ij} Tij 的差,则与无人机当前路径点 W i j W_{ij} Wij相关的成本函数 H i j H_{ij} Hij 为:
H i j = { γ h ( h i j − h max ⁡ ) ( h i j > h max ⁡ ) 0 ( h min ⁡ < h i j < h max ⁡ ) γ h ( h min ⁡ − h i j ) ( 0 < h i j < h min ⁡ ) 1000 ( h i j < 0 ) H_{i j}=\left\{\begin{array}{ll} \gamma_{h}\left(h_{i j}-h_{\max }\right) & \left(h_{i j}>h_{\max }\right) \\ 0 & \left(h_{\min }<h_{i j}<h_{\max }\right) \\ \gamma_{h}\left(h_{\min }-h_{i j}\right) & \left(0<h_{i j}<h_{\min }\right) \\ \ 1000 & \left(h_{i j}<0\right) \end{array}\right. Hij= γh(hijhmax)0γh(hminhij) 1000(hij>hmax)(hmin<hij<hmax)(0<hij<hmin)(hij<0)
同时,将无人机飞行高度超出约束限制条件的惩罚系数记作 γ h γ_{h} γh,则与无人机飞行路径相关的成本函数 F 3 F_{3} F3为:
F 3 ( X i ) = ∑ j = 1 n H i j F_{3}\left(X_{i}\right)=\sum_{j=1}^{n} H_{i j} F3(Xi)=j=1nHij

1.4飞行转角成本

无人机的飞行转角控制参数主要包括水平转弯角和竖直俯仰角,这 2 个参数变量必须符合无人机的实际转角约束限制,否则航迹规划模型无法生成具有可行性的飞行路径。如下图所示, ∥ W i j W i , j + 1 → ∥ \left\|\overrightarrow{W_{i j} W_{i, j+1}}\right\| WijWi,j+1 ∥ W i j + 1 W i , j + 2 → ∥ \left\|\overrightarrow{W_{i j+1} W_{i, j+2}}\right\| Wij+1Wi,j+2 表示无人机飞行路径中的 2 个连续路径段, W i j ′ W i , j + 1 ′ → \overrightarrow{W_{i j}^{\prime} W_{i, j+1}^{\prime}} WijWi,j+1 W i j + 1 ′ W i , j + 2 ′ → \overrightarrow{W_{i j+1}^{\prime} W_{i, j+2}^{\prime}} Wij+1Wi,j+2 是其在xoy 平面的投影。
在这里插入图片描述

记𝒌为轴正方向的单位向量,则 W i j + 1 ′ W i , j + 2 ′ → \overrightarrow{W_{i j+1}^{\prime} W_{i, j+2}^{\prime}} Wij+1Wi,j+2 的计算式和水平转弯角 α i j α_{ij} αij、竖直俯仰角 β i , j + 1 β_{i,j+1} βi,j+1 计算式为:
W i j ′ W i , j + 1 ′ → = k × ( W i j W i , j + 1 → × k ) α i j = arctan ⁡ ( W i j ′ W i , j + 1 ′ → × W i , j + 1 ′ W i , j + 2 ′ ‾ W i j ′ W i , j + 1 ′ → ⋅ W i , j + 1 ′ W i , j + 2 ′ ‾ ) β i j = arctan ⁡ ( z i , j + 1 − z i j ∥ W i j ′ W i , j + 1 ′ → ∥ ) \begin{array}{c} \overrightarrow{W_{i j}^{\prime} W_{i, j+1}^{\prime}}=\boldsymbol{k} \times\left(\overrightarrow{W_{i j} W_{i, j+1}} \times \boldsymbol{k}\right) \\ \alpha_{i j}=\arctan \left(\frac{\overrightarrow{W_{i j}^{\prime} W_{i, j+1}^{\prime}} \times \overline{W_{i, j+1}^{\prime} W_{i, j+2}^{\prime}}}{\overrightarrow{W_{i j}^{\prime} W_{i, j+1}^{\prime}} \cdot \overline{W_{i, j+1}^{\prime} W_{i, j+2}^{\prime}}}\right) \\ \beta_{i j}=\arctan \left(\frac{z_{i, j+1}-z_{i j}}{\left\|\overrightarrow{W_{i j}^{\prime} W_{i, j+1}^{\prime}}\right\|}\right) \end{array} WijWi,j+1 =k×(WijWi,j+1 ×k)αij=arctan(WijWi,j+1 Wi,j+1Wi,j+2WijWi,j+1 ×Wi,j+1Wi,j+2)βij=arctan WijWi,j+1 zi,j+1zij
同时,将无人机的水平转弯角和竖直俯仰角超出约束限制条件的惩罚系数分别记作 a 1 a_{1} a1 a 2 a_{2} a2,则与无人机飞行转角相关的成本函数 F 4 F_{4} F4 为:
F 4 ( X i ) = a 1 ∑ j = 1 n − 2 α i j + a 2 ∑ j = 1 n − 1 ∣ β i j − β i , j − 1 ∣ F_{4}\left(X_{i}\right)=a_{1} \sum_{j=1}^{n-2} \alpha_{i j}+a_{2} \sum_{j=1}^{n-1}\left|\beta_{i j}-\beta_{i, j-1}\right| F4(Xi)=a1j=1n2αij+a2j=1n1βijβi,j1

1.5无人机三维路径规划的目标函数

综合考虑与无人机飞行路径 X i X_{i} Xi 相关的最短路径成本、最小威胁成本,以及飞行高度成本和飞行转角成本等限制,基于多因素约束的多目标函数构建如下:其中第一个目标函数 f 1 f_{1} f1为最短路径成本,第二个目标函数 f 2 f_{2} f2为威胁成本,飞行高度成本和飞行转角成本飞行的总和,具体定义如下为:
f 1 ( X i ) = F 1 ( X i ) f_{1}\left(X_{i}\right)=F_{1}\left(X_{i}\right) f1(Xi)=F1(Xi)
f 2 ( X i ) = F 2 ( X i ) + F 3 ( X i ) + F 4 ( X i ) f_{2}\left(X_{i}\right)=F_{2}\left(X_{i}\right)+F_{3}\left(X_{i}\right)+F_{4}\left(X_{i}\right) f2(Xi)=F2(Xi)+F3(Xi)+F4(Xi)

参考文献:
[1]吕石磊,范仁杰,李震,陈嘉鸿,谢家兴.基于改进蝙蝠算法和圆柱坐标系的农业无人机航迹规划[J].农业机械学报:1-19

[2]褚宏悦,易军凯.无人机安全路径规划的混沌粒子群优化研究[J].控制工程:1-8

[3]MD Phung, Ha Q P . Safety-enhanced UAV Path Planning with Spherical Vector-based Particle Swarm Optimization: 2021.

[4]陈明强,李奇峰,冯树娟等.基于改进粒子群算法的无人机三维航迹规划[J].无线电工程,2023,53(02):394-400.

[5]徐建新,孙纬,马超.基于改进粒子群算法的无人机三维路径规划[J].电光与控制:1-10

[6]骆文冠,于小兵.基于强化学习布谷鸟搜索算法的应急无人机路径规划[J].灾害学:1-10


http://www.ppmy.cn/news/73379.html

相关文章

tomcat加载顺序

一、 1、启动一个WEB项目的时候&#xff0c;WEB容器会去读取它的配置文件web.xml&#xff0c;读取<listener>和<context-param>两个结点。 2、紧急着&#xff0c;容创建一个ServletContext&#xff08;servlet上下文&#xff09;&#xff0c;这个web项目的所有部…

C++应届生程序员进入公司需要注意的五个细节,希望对大家有帮助

今天想跟大家分享一下应届C程序员实习生在进入公司后需要注意哪些问题。 C程序员是一种非常重要的职业&#xff0c;主要负责使用C语言编写各种软件程序。C是一种面向对象的编程语言&#xff0c;常用于开发操作系统、游戏引擎、嵌入式系统、图像处理等领域。因此&#xff0c;C程…

秘塔写作猫

秘塔写作猫是集AI智能写作、多人协作、改写润色、文本校对等功能为一体的AI原生创作平台&#xff0c;可以帮助不同群体大幅提升写作效率和生产力。 接下来小编就带大家了解一下该软件具体的一些功能&#xff0c;不论你是学生、上班族还是自媒体从业者等&#xff0c;该工具绝对可…

【Linux】ko文件查询内部信息方法

objdump命令 在 Linux 中&#xff0c;可以使用 objdump 命令来反汇编 ko 文件并查看其中的宏定义值。 以下是如何使用 objdump 命令查看 ko 文件中的宏定义值的示例&#xff1a; objdump -d <ko文件> | grep <宏名称>其中&#xff0c;-d 参数表示反汇编目标文件…

【物联网技术对生活的影响与展望】

随着科技日新月异的发展&#xff0c;物联网&#xff08;IoT&#xff09;技术正在快速地影响着我们的生活。它是将各种设备和物品连接在一起&#xff0c;通过互联网使它们可以相互交流和传递数据的技术。它的应用范围广泛&#xff0c;可以涵盖从智能家居到工业网络的各个领域。 …

2-《Java进阶》

[TOC](2-《Java进阶》 一. java多线程&#xff08;非常重要&#xff09;1.1. 线程java多线程实现方式主要有&#xff1a;1.继承Thread 2.实现Runnable3.实现CallableRunnable 与 Callable的区别&#xff1a;1.2. 线程的状态有哪些&#xff1f;1.3. 线程的状态转换及控制1.4. Ja…

ES6中Promise对象

1.Promise 说明&#xff1a;Promise是异步编程的一种解决方案。简而言之&#xff0c;也就是存者未来发生的事件的容器。 Promise提供统一的API,各种异步操作都可以用同样的方法进行处理。 特点&#xff1a;对象的状态不受外界影响。Promise对象代表一个异步操作&#xff0c;存…

Linux MISC 驱动实验

misc 的意思是混合、杂项的&#xff0c;因此 MISC 驱动也叫做杂项驱动&#xff0c;也就是当我们板子上的某 些外设无法进行分类的时候就可以使用 MISC 驱动。MISC 驱动其实就是最简单的字符设备驱 动&#xff0c;通常嵌套在 platform 总线驱动中&#xff0c;实现复杂的驱动。 M…

Less和sass安装及使用

CSS预处理器 由来 CSS本身不是一种编程语言。你可以用它开发网页样式&#xff0c;但是没法用它编程。换句话说&#xff0c;CSS基本上是设计师的工具&#xff0c;不是程序员的工具。它并不像其它程序语言&#xff0c;比如说JavaScript等&#xff0c;有自己的变量、常量、条件语…

C#中使用git将项目代码上传到远程仓库的操作

一、远程仓库创建操作&#xff08;远程仓库使用的是gitHub&#xff09; 1、登录GitHub官网&#xff0c;注册登录账号后&#xff0c;点击创建仓库 2、仓库名称命名&#xff0c;如下所示&#xff1a; 3、创建成功如下所示&#xff1a;获得https协议&#xff08;https://github.c…

JuiceFS 在多云存储架构中的应用 | 深势科技分享

2020 年末&#xff0c;谷歌旗下 DeepMind 研发的 AI 程序 AlphaFold2 在国际蛋白质结构预测竞赛上取得惊人的准确度&#xff0c;使得 “AI 预测蛋白质结构” 这一领域受到了空前的关注。今天我们邀请到同领域企业&#xff0c;深势科技为大家分享其搭建基础平台时的实践与思考。…

在阿里做了6年软件测试,4月无情被辞,想给划水的兄弟提个醒

先简单交代一下背景吧&#xff0c;某不知名 985 的本硕&#xff0c;17 年毕业加入阿里&#xff0c;以“人员优化”的名义无情被裁员&#xff0c;之后跳槽到了有赞&#xff0c;一直从事软件测试的工作。之前没有实习经历&#xff0c;算是6年的工作经验吧。 这6年之间完成了一次…

python 图片保存成视频

&#x1f468;‍&#x1f4bb;个人简介&#xff1a; 深度学习图像领域工作者 &#x1f389;工作总结链接&#xff1a;https://blog.csdn.net/qq_28949847/article/details/128552785 链接中主要是个人工作的总结&#xff0c;每个链接都是一些常用demo&#xff0c…

洛谷 池塘计数 floor-fill BFS 模板题

&#x1f351; OJ专栏 &#x1f351; P1596 Lake Counting 题面翻译 由于近期的降雨&#xff0c;雨水汇集在农民约翰的田地不同的地方。我们用一个 N M ( 1 ≤ N ≤ 100 , 1 ≤ M ≤ 100 ) N\times M(1\leq N\leq 100, 1\leq M\leq 100) NM(1≤N≤100,1≤M≤100) 的网格图表…

Qt——Qt控件之显示窗口-QLabel标签控件的使用总结(例程:QLabel显示文本标签及图片)

【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《项目案例分享》 《极客DIY开源分享》 《嵌入式通用开发实战》 《C++语言开发基础总结》 《从0到1学习嵌入式Linux开发》

【CSS 选择器应用在QSS】第二天

CSS 选择器应用在QSS 【1】元素选择器&#xff08;元素通用性&#xff09;【2】id 选择器&#xff08;唯一性&#xff09;【2.1】CSS【2.2】QSS 【3】类选择器【3.1】CSS【3.2】QSS 【4】类选择器&#xff08;只针对指定元素&#xff09;【4.1】CSS【4.2】QSS 【5】通用选择器【…

语音合成工具_bark

1 介绍 多语言的文字转语音模型。 地址: https://github.com/suno-ai/bark 2 模型原理 Bark通过三个Transformer模型&#xff0c;将文本转换为音频。 2.1 文本到语义Token 输入&#xff1a;由Hugging Face的BERT标记器分词的文本 输出&#xff1a;编码生成音频的语义Token…

【面试高频 time: 2023-5-18】做分布式文件存储,如何保证分布式存储的高性能与高可用?

大家可以想到基本就是副本备份、双活、多活这种架构 在系统中通过复制协议将数据同步到多个存储节点&#xff0c;并确 保多个副本之间的数据⼀致性&#xff0c;当某个存储节点出故障 时&#xff0c;系统能够⾃动将服务切换到其他的副本 在分布式存储中⾼性能与⾼可⽤是⽭盾的&…

手把手教你怎么搭建自己的ChatGPT和Midjourney绘图(含源码)

AI程序采用NUXT3LARAVEL9开发&#xff08;目前版本V1.1.7&#xff09; 授权方式&#xff1a;三个顶级域名两次更换 1.AI智能对话-对接官方和官方反代&#xff08;markdown输出&#xff09;PS:采用百度与自用库检测文字 2.AI绘图-根据关键词绘图-增加dreamStudio绘画-增加mid…

Requests的使用例子

Requests库是一个Python HTTP客户端库&#xff0c;用于向Web服务器发送HTTP请求。它提供了简单而直观的API&#xff0c;使得向Web服务器发送HTTP请求变得非常容易。以下是Requests库的一些功能和示例&#xff1a; 1、发送HTTP GET请求 发送HTTP GET请求非常简单&#xff0c;只…