经典/启发式/改进启发式算法应用于机器人路径规划

news2024/11/27 8:39:46

在这里插入图片描述
在这里插入图片描述

路径规划是移动机器人导航规划中的一个十分重要且关键的研究课题。

移动的机器人总是在动态、复杂和不可控的环境中工作,比如对核电站的检查和变电站的检查。然而,复杂的动态工作环境要求移动的机器人能够调整其运动路线,以自主完成任务。使机器人能够实现自主移动的最关键因素之一是路径规划。

移动机器人路径规划技术,就是机器人在遵循一些优化指标(比如时间最短、路程最优和能耗最低等)前提下,在运行环境中规划出从起始点到目标点不发生碰撞的最优路径。

目前,移动的机器人路径规划的三大难题是环境建模、算法收敛速度和易陷入局部最优解。其中环境建模可以通过2D的栅格地图解决;而收敛速度和避免局部最优则涉及优化算法的设计或其他算法集成。

路径规划方法可以分为以下2种:

经典方法(如A*、Dijkstra算法),这类方法求解速度较快,但若存在多个最小值时,其不能保证得到最优解。

元启发式方法(即依托各类新型优化算法),此类方法简单灵活,能够跳出局部最优,受到许多学者的青睐。

本文作者将通过经典、元启发式算法求解机器人路径规划,并引入作者的原创改进算法进行对比分析。

00 文章目录

1 环境建模

2 优化算法

3 实验结果

4 源码获取​

01 环境建模

本文将移动机器人的环境设置为二维平面空间,使用栅格法建立环境模型。栅格法是地图建模中的一种经典方法,能直观地表达环境空间信息且信息数据易存储。在栅格地图中,障碍物的位置和大小是已知的,并且障碍物的大小和位置在机器人的运动过程中不会改变。

下图展示了2个二维栅格环境

在这里插入图片描述

在这里插入图片描述

分别表征了简单和复杂的工作环境栅格地图中,障碍物栅格为深色区域,可行栅格为浅色区域,每个栅格的8 个直接相邻的栅格为可直接通行栅格,机器人可在其中的可行栅格中根据一定规则选取下一前行栅格,相邻栅格间的距离用栅格中点之间的欧几里得距离表示。

在这里插入图片描述

[图:张军,张婷,于士坤.应用蚁群算法的全局路径规划改进[J].新乡学院学报,2023,40(06):25-28+51.]

假设机器人从起始点总共经过 M 步到达目标点,则目标函数为移动机器人的无碰路径长度 L,并使其长度达到最短:
在这里插入图片描述

式中,d(m)为欧式距离。

02 优化算法

本文中作者采用

经典算法:A*

启发式算法:WOA、PSO、GWO以及作者的原创改进算法AAMCWOA。

其具体原理这里不再阐述。

03 实验结果

在简单栅格地图中,运行程序结果如下:
在这里插入图片描述

其路径长度及运行时间如下:
在这里插入图片描述

在复杂栅格地图中,运行程序结果如下:
在这里插入图片描述

其路径长度及运行时间如下:
在这里插入图片描述

可以看到通过启发式算法较之经典方法进行路径规划,能有效跳出局部最优,但其计算复杂度较大。

04 源码获取

1.经典的A*算法应用于栅格路径规划获取:

见GZH:KAU的云实验台

其文件如下:

在这里插入图片描述

2.A*、GWO、WOA、PSO算法应用于栅格(简单/复杂)路径规划获取:

见GZH:KAU的云实验台

支持主程序一键运行,能够生成各算法运行结果(路径长度、运行时间)的excel表格

在这里插入图片描述

在这里插入图片描述

3.A*、GWO、WOA、PSO、AAMCWOA算法应用于栅格(简单/复杂)路径规划获取:

见GZH:KAU的云实验台

支持主程序一键运行,能够生成各算法运行结果(路径长度、运行时间)的excel表格

在这里插入图片描述

在这里插入图片描述

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

如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看 (ง•̀_•́)ง(不点也行)

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

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

相关文章

【AI视野·今日Sound 声学论文速览 第三十四期】Thu, 26 Oct 2023

AI视野今日CS.Sound 声学论文速览 Thu, 26 Oct 2023 Totally 9 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers Dynamic Processing Neural Network Architecture For Hearing Loss Compensation Authors Szymon Drgas, Lars Bramsl w, Archontis Poli…

多标签页文件管理器 - Win系统

多标签页文件管理器 - Win系统 前言My Files-X Free360文件夹升级Win11 前言 Win10系统自带的文件管理器不支持多标签页功能,本文推荐几款多标签页文件管理器,可以在一个文件管理器窗口中打开多个标签页。 My Files-X Free 此文件管理器支持多标签页&…

Linux友人帐之网络编程基础邮件服务器与DHCP服务器

一、邮件服务器概述 1.1邮件服务基础 邮件服务器是一种计算机程序,它通过电子邮件协议接收、存储、处理和发送电子邮件。邮件服务器可以与电子邮件客户端程序(如Outlook、Thunderbird等)或Web邮件界面(如Gmail、Outlook.com等&am…

非常经典的一道SQL报错注入题目[极客大挑战 2019]HardSQL 1(两种解法!)

题目环境: 没错,又是我,这群该死的黑客竟然如此厉害,所以我回去爆肝SQL注入,这次,再也没有人能拿到我的flag了 做了好多这个作者出的题了,看来又要上强度了 判断注入类型 username:a…

CSAPP第四章:Y86 SEQ(指令顺序执行)的硬件结构

SEQ硬件结构的抽象表示。 程序计数器放在寄存器中(左下角,起点)。先向上,再向右 取指:将程序计数器寄存器作为地址,指令存储器读取一个指令的字节,PC增加器计算valP(程序计数器增加后的值)。 解码:寄存器…

产品经理如何独立从0-1着手甲方项目,或者负责一个产品?

作为产品经理,独立从0到1着手甲方项目或负责一个产品是一项重要的任务。以下是一些步骤和建议,可以帮助产品经理成功地完成这个任务。 1. 研究市场和竞争对手:在开始任何项目之前,产品经理应该对市场进行深入研究,并了…

PyTorch:GPU的使用

在深度学习领域,神经网络模型训练所需的计算量巨大,这就对计算资源提出了高要求。为了处理这一问题,图形处理器(GPU)被引入到深度学习中,其并行计算能力可以极大加速神经网络的训练过程。PyTorch作为一款出…

【数据分享】1961—2022年全国范围的逐日降水栅格数据

降水数据是我们在各项研究中最常用的气象指标之一!之前我们给大家分享过来源于国家青藏高原科学数据中心发布的1901-2022年1km分辨率逐月降水栅格数据以及1901-2022年1km分辨率逐年降水栅格数据(均可戳我跳转)!很多小伙伴拿到数据…

【Qt之QWizard问题】setPixmap()设置logo、background、watermark无效不显示解决方案

问题原因: 使用QWizard或者QWizardPage设置像素图,结果设置完不显示效果。 设置示例: setPixmap(QWizard::WatermarkPixmap, QPixmap("xxx/xxx/xxx.png"));setPixmap(QWizard::BackgroundPixmap, QPixmap("xxx/xxx/xxx.png&…

【星海出品】云存储 ceph

https://ceph.com/en/ 建议运行带有两个网络的Ceph存储集群:公共(前端)网络和集群(后端)网络。为了支持两个网络,每个Ceph节点都需要有多个NIC。 Monitor 一个Ceph集群需要多个Monitor组成的小集群&#x…

【C++】【Opencv】cv::GaussianBlur、cv::filter2D()函数详解和示例

本文通过函数详解和运行示例对cv::GaussianBlur和cv::filter2D()两个函数进行解读,最后综合了两个函数的关系和区别,以帮助大家理解和使用。 目录 cv::GaussianBlur()函数详解运行示例 filter2D()函数详解运行示例 总结两个函数联…

关于 Git 你了解多少?

1. 什么是Git? Git 是一个版本控制系统,由林纳斯托瓦兹创建。它旨在管理项目代码的更改,以便团队成员可以协作开发和维护代码库。Git 可以让用户跟踪代码的更改、回滚错误的更改、合并代码等。Git 还具有分支和标签的功能,使得团队成员可以在…

002 OpenCV dft 傅里叶变换

目录 一、傅里叶变换 1.1 傅里叶变换概念 1.2 opencv中傅里叶变换 二、实验代码 一、环境 本文使用环境为: Windows10Python 3.9.17opencv-python 4.8.0.74 二、傅里叶变换 2.1 傅里叶变换概念 傅里叶变换(Fourier Transform)是一种…

手把手教你搭建属于自己的快递小程序

在数字化时代,小程序已经成为各行各业连接用户、提供服务、创造价值的重要工具。其中,快递寄件小程序因其实用性和广泛的需求,成为很多企业和开发者关注的焦点。本文将详细介绍如何快速创建快递寄件小程序,以及如何利用它实现盈利…

Zabbix钉钉机器人告警

目录 一.在钉钉群里添加机器人 二.配置钉钉告警脚本 1.安装python依赖模块python-requests 2.配置钉钉告警配置脚本zabbix_ding.conf 3.创建告警日志并且授权。 4.配置钉钉告警执行脚本dingding.py 5.测试 三.配置zabbix告警 1.创建媒介 2.给用户添加报警媒介 3.配置…

day28_JQuery

今日内容 零、 复习昨日 一、正则表达式 二、JQuery 零、 复习昨日 js已经学完,js是让页面动态变化 1) 基本语法(变量,运算,逻辑,函数) 2) 事件(给标签绑定不同的事件) 3) dom(改变标签内容,属性,样式)一、引言 1.1 jQuery概述 原生js获得dom对象: var obj document.getElem…

2018年五一杯数学建模A题徐州潘安湖风景区游览路线设计解题全过程文档及程序

2019年五一杯数学建模 A题 徐州潘安湖风景区游览路线设计 原题再现 徐州是一个老工业基地和资源型城市,煤炭开采历史长达130年。长期煤炭开采在徐州累计形成采煤塌陷区达数十万亩。位于徐州市贾汪区西南部、紧邻马庄的潘安湖湿地公园原来就是徐州最大的、塌陷最严…

你知道如何科学的学习吗?-关于个人成长的思考

背景 最近在翻看自己工作后的笔记,从有道云笔记到印象笔记,到本地笔记,到自己使用github搭建的博客,到语雀笔记,使用了不同的平台工具;零零总总记录了许多学习笔记、个人成长笔记、职业规划等内容。现在看…

十、http客户端Feign

目录 一、使用Feign客户端 1、修改pom文件 2、在启动类OrderApplication中加入注释 3、创建客户端接口 4、装配UserClient,并且进行远程调用 5、发送请求,查看服务调用情况 二、定义Feigin的配置 方式一:配置文件方式 (1&…

项目Git分支管理规范

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 一、分支管理 项目中,一般会创建三个常用分支: develop:开发环境的稳定分支,公共开发环境基于该分支构建。pre-release:测试…