路径规划算法:基于入侵杂草优化的路径规划算法- 附代码

路径规划算法:基于入侵杂草优化的路径规划算法- 附代码

文章目录

  • 路径规划算法:基于入侵杂草优化的路径规划算法- 附代码
    • 1.算法原理
      • 1.1 环境设定
      • 1.2 约束条件
      • 1.3 适应度函数
    • 2.算法结果
    • 3.MATLAB代码
    • 4.参考文献

摘要:本文主要介绍利用智能优化算法入侵杂草算法来进行路径规划。

1.算法原理

入侵杂草算法原理请参考:https://blog.csdn.net/u011835903/article/details/108491479

1.1 环境设定

在移动机器人的路径优化中,每个优化算法的解代表机器人的一条运动路径。优化算法会通过优化计算在众多路径中找出一条最优路径。
优化算法的设定必须和机器人运动环境模型相对应。不失一般性,假设在用栅格法对机器人运动环境建模后得出的结果是 m×n 的矩形区域,坐标值从 1 开始,如图1 。其中坐标原点栅格代表机器人的初始位置,坐标 (m,n)对应的栅格代表机器人的移动目标位置。优化算法设定的一个重要内容是确定优化算法的数学表达形式,在这里这个问题转化为用一个向量表示机器人的移动路径。经过分析发现,尽管栅格法建立的模型对空间进行了离散化,但本质上机器人的移动路径依然是连续的。

在这里插入图片描述

图1.栅格地图

1.2 约束条件

对于机器人的路径优化来说,其运动路径必须局限在栅格空间内,即搜索不能越过栅格的矩形边界。此外,还应受障碍物的限制,即机器人的运动轨迹不能穿过存在障碍物的栅格区域。

1.3 适应度函数

在本文的建模方法中,本文路径规划目标是路径长度最短。路径的长度可以表示为:

L ( P a t h ) = ∑ i = 0 n − 1 ( x l i + 1 − x l i ) 2 + ( y l i + 1 − y l i ) 2 (1) L(Path) = \sum_{i=0}^{n-1}\sqrt{(xl_{i+1} - xl_i)^2 + (yl_{i+1} - yl_{i})^2}\tag{1} L(Path)=i=0n1(xli+1xli)2+(yli+1yli)2 (1)
其中(x,y)是路径中间点的坐标

利用入侵杂草算法对上式进行寻优,找到最短路径。入侵杂草算法参数设定如下:

%% 入侵杂草算法参数设置
dim=length(noLM);%维度,即为非障碍物个数。
numLM0=round((EndPoint(1)-StartPoint(1))/4);%每次迭代选取的的中间路径点个数,可调
lb=0;%下边界
ub=1;%上边界
Max_iteration = 100;%最大迭代次数
SearchAgents_no = 30;%种群数量
fobj = @(x)fun(x,noS,noE,numLM0,net);%适应度函数

2.算法结果

在这里插入图片描述

3.MATLAB代码

本程序中,支持1.地图任意创建保存。2.其实点任意更改。

4.参考文献

[1]罗阳阳,彭晓燕.基于改进PSO的四轮移动机器人全局路径规划[J].计算机仿真,2020,37(07):373-379.

[2]鲁丹. 粒子群算法在移动机器人路径规划中的应用研究[D].武汉科技大学,2009.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【SA8295P 源码分析】03 - SA8295P QNX Host 上电开机流程分析

【SA8295P 源码分析】03 - SA8295P QNX Host上电开机流程分析 一、阶段1 固件开机自检 (SM BIST):APPS PBL加载XBL后触发 INT_RESET进行Warm Reset二、阶段2 固件开机自检 (SM BIST):加载TZ,初始Hypervisor,启动QNX Kernel&#x…

Flume实践

1 NetCat方式 ]# ./bin/flume-ng agent --conf conf--conf-file ./conf/flume_netcat.conf --name a1 -Dflume.root.loggerINFO,console [rootmaster ~]# yum -y intalll telnet 发数据: ]# telnet master 44444 数据接收,是在终端上接收的&#xff0…

从组件化角度聊聊设计工程化

目录 设计系统 设计系统的定义 设计系统的优势 设计系统存在的问题 设计工程化 设计系统探索 设计系统落地实践 Design Token Design Token 实践 设计工程化理想方案构想 展望 参考文献 近几年围绕业务中台化的场景,涌现出了许多低代码平台。面对多组件…

Qt翻金币小游戏详细教程(内涵所有源码、图片资源)

一、项目简介 翻金币项目是一款经典的益智类游戏,我们需要将金币都翻成同色,才视为胜利。首先,开始界面如下: 点击start按钮,进入下层界面,选择关卡: 在这里我们设立了20个关卡供玩家选择&…

Jmeter组件:Random CSV Data Set Config(随机读取文件数据)

一、Jmeter组件:Random CSV Data Set Config(随机读取文件数据) 功能:该组件可以随机读取CSV文件中的每一行的数据 二、下载插件:(jmeter-plugins-random-csv-data-set-xx.jar),并放到lib/ext目录下,重启jmeter 也可以在Jmeter…

Nginx基本使用以及部署前端项目

前言 最近学习了一下Nginx,整理了一个博客,主要参考的是狂神说的b站视频教程,文章链接如下:狂神说Nginx快速入门 一、下载、启动Nginx 1.下载Nginx 到Nginx官方选择自己电脑适用的稳定版本下载,我下载的的windows版…

ChatGPT免费使用的方法有哪些?

目录 一、ChatGpt是什么? 二、ChatGPT国内免费使用的方法: 第一点:电脑端 第二点:手机端 三、结语: 一、ChatGpt是什么? ChatGPt是美国OpenAI [1] 研发的聊天机器人程序 。更是人工智能技术驱动的自然语…

图像算法工程师岗位的主要职责(合集)

图像算法工程师岗位的主要职责 一、确定岗位的职责 1.根据工作任务的需要确立工作岗位名称及其数量; 2.根据岗位工种确定岗位职务范围; 3.根据工种性质确定岗位使用的设备、工具、工作质量和效率; 4.明确岗位环境和确定岗位任职资格; 5.确定各个岗位之间的相互关系; 6.根据岗位…

Solidity基础七

无论风暴将我带到什么岸边,我都将以主人的身份上岸 目录 一、Solidity的单位 1. 货币Ether 2. 时间单位Time 二、地址的形成 三、以太坊的账户 1.内部账户(简称CA) 2.外部账户(简称EOA) 3.内部账户和外部账户…

【Linux性能优化】你知道什么是平衡负载么

什么是平衡负载 首先大家思考一下,当你发现自己的服务变慢时,你会首先使用什么命令来排查?我通常做的第一件事,就是执行top或者uptime命令来了解系统的负载情况。比如像下面这样,我在命令行里输入top命令,…

[高光谱]使用PyTorch的dataloader加载高光谱数据

本文实验的部分代码参考 Hyperspectral-Classificationhttps://github.com/eecn/Hyperspectral-Classification如果对dataloader的工作原理不太清楚可以参见 [Pytorch]DataSet和DataLoader逐句详解https://blog.csdn.net/weixin_37878740/article/details/129350390?spm1001…

网络货运平台源码 管理平台端+司机端APP+货主端APP源码

网络货运平台系统源码,网络货运平台源码 管理平台端司机端APP货主端APP 遵循政策要求的八项基本功能,结合货主、实际承运人、监管方等多方业务场景,构建人、车、货、企一体的标准化网络货运平台系统。具有信息发布、线上交易、全程监控、金融…

数据库基础——6.排序与分页

这篇文章来讲一下数据库的排序与分页 目录 1.排序数据 1.1排序规则 1.2 单列排序 1.3 多列排序 2.分页 2.1 背景 2.2 实现规则 2.3 拓展 1.排序数据 1.1排序规则 使用 ORDER BY 子句排序 ASC(ascend):升序 ; DESC&a…

vue项目中使用depcheck检查缺失的依赖项目

使用depcheck检查缺失的项目依赖 由来:今天在做地铁的时候,刷短视频发现一个非常好用的东西,分享一下 它可以帮助我们找出问题,在 package.json 中,每个依赖包如何被使用、哪些依赖包没有用处、哪些依赖包缺失。它是解…

2023年,推荐10个让你事半功倍的CSS在线生产力工具

1、CSS Gradient CSS Gradient 是一个在线工具,可以帮助用户创建并生成 CSS 渐变代码。用户可以使用该工具中提供的图形用户界面来调整颜色、方向和渐变类型,然后生成相应的 CSS 代码。用户可以将生成的代码复制并粘贴到自己的 CSS 样式表中&#xff0c…

Linux——操作系统详解

目录 一.操作系统的含义 1.操作系统是什么? 2.那么操作系统为什么要对软硬件资源进行管理呢?这样做的好处在哪里? 3.操作系统又是怎么进行管理的? 如何理解“先描述,再组织”? 二.总结: …

音乐小白乐器选择,如何学一手才艺,推荐尤克里里

乐器难度说明 注意:这里的难度说明是音准的难度,就是能不能发出标准的声音 乐器按照演奏方式分类,分为 演奏方式乐器举例难度等级难度说明敲击木鱼,架子鼓,钢琴1敲击乐是音最准的,敲哪个地方就发什么音&…

记录--超长溢出头部省略打点,坑这么大,技巧这么多?

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 在业务中,有这么一种场景,表格下的某一列 ID 值,文本超长了,正常而言会是这样: 通常,这种情况都需要超长省略溢出打点&#xff0…

Kali-linux Gerix Wifi Cracker破解无线网络

Gerix Wifi Cracker是另一个aircrack图形用户界面的无线网络破解工具。本节将介绍使用该工具破解无线网络及创建假的接入点。 9.3.1 Gerix破解WEP加密的无线网络 在前面介绍了手动使用Aircrack-ng破解WEP和WPA/WPA2加密的无线网络。为了方便,本小节将介绍使用Geri…

学习RabbitMQ高级特性

目标: 了解熟悉RabbitMQ的高级特性 学习步骤: 高级特性主要分为以下几点, 官网介绍 1、消息可靠性投递 【confirm 确认模式、return 退回模式】 2、Consumer ACK 【acknowledge】 3、消费端限流 【prefetch】 4、TTL过期时间 【time to live】 5、死信队…