多目标应用:基于多目标雾凇算法(MORIME)的移动机器人路径规划研究(提供MATLAB代码)

news2024/11/13 14:51:13

 一、机器人路径规划介绍

移动机器人(Mobile robot,MR)的路径规划是 移动机器人研究的重要分支之,是对其进行控制的基础。根据环境信息的已知程度不同,路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或局部已知的局部路径规划。随着科技的快速发展以及机器人的大量应用,人们对机器人的要求也越来越高,尤其表现在对机器人的智能化方面的要求,而机器人自主路径规划是实现机器人智能化的重要步骤,路径规划是指规划机器人从起点位置出发,无碰撞、安全到达指定目标位置的最优路径。目前,常用的移动机器人全局路径规划方法很多,如栅格法和人工势场法。对于栅格法,当空间增大时,所需存储空间剧增,决策速度下降;而人工势场法容易产生局部最优解问题和死锁现象。随着智能控制技术的发展,出现了如遗传算法算法、粒子群优化算法、麻雀搜索算法、灰狼优化算法、鲸鱼优化算法等。

参考文献:

[1]史恩秀,陈敏敏,李俊,等.基于蚁群算法的移动机器人全局路径规划方法研究[J].农业机械学报, 2014, 45(6):5.DOI:CNKI:SUN:NYJX.0.2014-06-009.

[2]朱庆保,张玉兰.基于栅格法的机器人路径规划蚁群算法[J].机器人, 2005, 27(2):5.DOI:10.3321/j.issn:1002-0446.2005.02.008.

[3]曹新亮,王智文,冯晶,等.基于改进蚁群算法的机器人全局路径规划研究[J].计算机工程与科学, 2020, 42(3):7.DOI:CNKI:SUN:JSJK.0.2020-03-027.

二、栅格地图环境搭建

首先建立移动机器人工作环境,设移动机器人的工作空间为二维空间(记为RS),工作环境中的障碍物即为机床。在机器人运动过程中,障碍物为静止且大小不发生变化。按栅格法划分RS,移动机器人在栅格间行走。无障碍物的栅格为可行栅格,有障碍物的栅格为不可行栅格。栅格集包含所有栅格。栅格标识有:直角坐标法和序号法。本文采用序号标识法。

在移动机器人工作空间下按从左到右,从上到下的顺序,依次标记为序号1,2,3,···,n,每一个序号代表一个栅格。为了避免移动机器人与障碍物发生碰撞,可以将障碍物膨胀,障碍物在占原有栅格的同时,再占多个栅格,按 个栅格算。这种划分方法简单实用,能够满足环境模型与真实情况相符。从而使移动机器人在路径规划时畅通无阻。令S={1,2,3,···,N}为栅格序号集。根据上述对应关系,可知g(0,0)的序号为1,g(1,0)序号为2,直至g(X,Y)的序号为n。规划起始位置、目标位置均为任意且都属于S(但不在同一栅格内)。

在实际工作环境中,移动机器人工作环境是复杂多变的,且为三维空间。为了便于研究,本文对环境进行简化建模。栅格法是一种常用的环境表示方法,因其简单方便(二维环境),环境建模的复杂性小,因而本文环境建模采用栅格法。在栅格地图中,工作环境被划分为很多栅格,其中包括有障碍物和无障碍的栅格,在仿真程序中用0表示此栅格无障碍物,机器人可以通过此栅格,用1表示栅格有障碍物,机器人无法通过,需选择其他栅格。栅格的尺寸大小可根据工作环境中的障碍物尺寸以及安全距离进行设置。为了实现程序仿真,需要对栅格进行标识,如下图所示,以20x20的栅格环境为例来说明。

如上图所示,白色栅格表示无障碍物的栅格,黑色栅格则表示有障碍物的栅格,在地图中对每个栅格编号,不同序号的栅格在坐标系中的坐标可用下式来表示:

x=mod(Ni/N)-0.5

y=N-ceil(Ni/N)+0.5

其中,mod为取余运算,ceil表示向后取整,Ni是对应栅格的标号,N表示每 列的栅格数量,取栅格中心位置作为栅格在坐标系中的坐标。这样机器人全局路径规划的问题就转变成了利用算法在栅格地图上寻找由起始点到目标点的有序的栅格子集,这些栅格子集的中心连线便是算法寻找的路径。

参考文献:

[1]史恩秀,陈敏敏,李俊,等.基于蚁群算法的移动机器人全局路径规划方法研究[J].农业机械学报, 2014, 45(6):5.DOI:CNKI:SUN:NYJX.0.2014-06-009.

[2]曹新亮,王智文,冯晶,等.基于改进蚁群算法的机器人全局路径规划研究[J].计算机工程与科学, 2020, 42(3):7.DOI:CNKI:SUN:JSJK.0.2020-03-027.

三、机器人路径规划多目标模型

3.1路径成本

当机器人从起点向目标点移动时,通常选择最短的一条路径。将一条路径上每 条线段的长度累加求和即可得到路径总长度。任何两点形成的线段都是根据欧氏距 离来计算的,其中,P = [P0, P1, …, Pi, Pi + 1, … Pn, Pn + 1]代表路径 P,S = P0代表起 点,T = Pn + 1代表目标点。路径长度目标计算方法如下式

其中,Pi =(xi, yi)和 Pi + 1 = (xi + 1, yi + 1)是路径中的两个连续点,d(Pi, Pi + 1)是 路径中的线段距离;Length(P)表示由所有线段相加得到的总路径长度;n 表示路 径中的点数量。

3.2平滑成本

路径平滑度表示路径的弯曲程度,换句话说,只有当路径是平滑的,机器人 在移动时才会使用较少的能量。为了衡量可行路径的平滑度,使用两个连续路段之 间的夹角 Ang [Pi, Pi + 1, Pi + 2]表示。路径平滑度的计算方法如下式

其中 Pi,Pi + 1和 Pi + 2是路径上的三个相邻节点。

3.3目标函数

移动机器人(Mobile robot,MR)的路径规划的目标函数f1f2分别是路径成本最小平滑成本最小

参考文献:

 [1]于振翱. 面向多目标优化的移动机器人路径规划方法研究[D]. 山东:聊城大学,2023. 

[2]杨嘉. 基于改进NSGA-Ⅱ算法的移动机器人路径规划研究[D]. 陕西:长安大学,2021.

四、MORIME求解移动机器人路径规划

多目标雾凇算法(Multi-objective rime optimization algorithm,MORIME)是一种在2024年提出的启发式多目标优化算法,由Pradeep Jangir等人开发。该算法的设计灵感来源于自然界中的雾凇现象,通过模拟雾凇在物体表面逐渐形成并包裹物体的过程,来寻找最优解。MORIME算法在多个领域如机器学习、优化问题和网络调度中都有应用。

参考文献:
[1] Pradeep Jangir, Sundaram B. Pandya, Kanak Kalita, Jasgurpreet Singh Chohan, Laith Abualigah, Saurav Mallik11, Hong Qin. "Multi-Objective RIME algorithm-based Techno-Economic analysis for security constraints load dispatch and power flow including uncertainties model of Hybrid Power Systems." Energy Reports. 
-[2]Su, Hang, et al. "RIME: A Physics-Based Optimization." Neurocomputing, vol. 532, Elsevier BV, May 2023, pp. 183–214, doi:10.1016/j.neucom.2023.02.010. 


 

4.1部分代码

close all
clear
clc
dbstop if all error
addpath("./MORIME/")
global G S E
MultiObj= fun_info();%获取无人机模型信息
params.maxgen=100;  % 最大迭代次数
params.Np=50;      % 种群大小
params.Nr=100;      %外部存档大小(不得小于种群大小)
[Xbest,Fbest] = MORIME(params,MultiObj);
%% 获取算法得到的所有路径存于Result中
for i=1:size(Xbest,1)
    global_best = round(Xbest(i,:));
    route = [S(1) global_best E(1)];
    path=generateContinuousRoute(route,G);
    % path=shortenRoute(path);
    path=GenerateSmoothPath(path,G);
    Result(i).BestPosition= path;
    Result(i).BestFit=Fbest(i,:);
end

%% 获取 路径成本最小 与 平滑成本最小
if size(Fbest,1)>1
    idx=min(Fbest);
else
    idx=Fbest;
end
KK=find(Fbest(:,1)==idx(1));
IDX(1)=KK(1);
KK=find(Fbest(:,2)==idx(2));
IDX(2)=KK(1);

https://mbd.pub/o/bread/mbd-ZpqYmplw

https://mbd.pub/o/bread/mbd-ZpqYmpdx

https://mbd.pub/o/bread/mbd-ZpqYmZ5s

https://mbd.pub/o/bread/mbd-ZpqYmZxr

​https://mbd.pub/o/bread/mbd-ZpqYmZpu
%%  画图pareto前沿图
dbclear all
figure
plot(Fbest(:,1),Fbest(:,2),'r*');
xlabel('路径成本')
ylabel('平滑成本')
legend('MORIME')

4.2部分结果

五、完整MATLAB代码

见下方联系方式

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

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

相关文章

Leetcode3243. 新增道路查询后的最短距离 I

Every day a Leetcode 题目来源:3243. 新增道路查询后的最短距离 I 解法1:广度优先搜索 暴力。 每次加边后重新跑一遍 BFS,求出从 0 到 n−1 的最短路。 代码: /** lc appleetcode.cn id3243 langcpp** [3243] 新增道路查询…

一款免费开源功能强大的截图工具

Ksnip是一款功能强大的跨平台开源截图工具,基于Qt开发,支持Linux、Windows和macOS操作系统。Ksnip的主要特点包括多种截图模式和丰富的标注功能。 核心功能 截图模式:自定义矩形区域截图全屏截图当前显示器截图活动窗口截图鼠标下的窗口截图…

Eureka原理大起底:从菜鸟到高手,轻松玩转服务注册与发现的艺术!Eureka不只是个名字,它是微服务世界的‘万能钥匙’,解锁无限可能!

第一章 引言 Eureka原理,作为服务发现领域的一个重要理论,对于构建高可用的分布式系统具有指导意义。随着微服务架构的兴起,服务之间的发现和通信变得尤为关键,Eureka原理为解决这一问题提供了有效的方案。本文旨在深入探讨Eurek…

【精选】基于Hadoop的用户网站浏览分析的设计与实现(全网最新定制,独一无二)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

联盟 | ITNIO TECH颂量 X PartnerShare,助力跨境企业高效出海

*本文章转载自ITNIO TECH颂量 在全球化浪潮中,高效是出海企业在全球市场竞争中获胜的重要秘诀之一。因此,跨境企业除了需要单一的技术或服务,还需要能够整合多种资源、提供一站式解决方案的合作伙伴。ITNIO TECH颂量宣布与SaaS推广分销联盟系…

前端面试题-手撕代码题

1. 实现 Promise.all,或者 实现 Promise.allSettled (1)promise.all: 传入一个promise数组,其中所有promise都变为成功状态,返回一个数组,数组内是各个promise的返回;若任意传入的promise变为…

16:螺丝孔和MARK点布局

正版mark布局 ①正面3个。背面3个 ②离板边5mm 螺丝孔 板边

Mako 试玩|编译速度6到飞起!

嗨!我是小谷,大家好久不见~ 今天想和大家分享的技术是 Mako , 一款编译构建速度比 webpack 快 10 倍~100 倍的前端构建工具。 网上有传言将 Mako 比作前端脚手架里的 鲨鱼心脏 ,有了它,前端工程师工作的幸…

重塑未来:碳捕集与存储(CCS)的革命性突破与可持续发展路径

随着全球气候变化的加剧,减少二氧化碳(CO₂)排放已成为应对气候变化的关键任务之一。碳捕集与存储(CCS)技术因其能够直接从源头捕捉CO₂并将其安全存储,避免其进入大气层,而受到广泛关注。CCS被…

QT做一个USB HID设备识别软件

1.下载 HidApi库:GitHub - yigityuce/HidApi: Human Interface Device Api (HidApi) with C 2.pro文件添加 DEFINES - UNICODE LIBS -lsetupapi 3.建立三个对象 HidApi hidApi;HidDevice hidDev;//HID设备HidDeviceList devList;//HID设备列表 4.对 HID 设备进…

大连网站建设手机网页页面设计

在现代社会,随着智能手机的普及,越来越多的用户选择通过手机访问网站,这使得移动端网页设计的重要性日益凸显。大连作为一个经济和文化中心,网站建设行业也在不断发展。针对大连的网站建设,手机网页页面设计需要特别注…

在街子古镇游的台湾自媒体人

刚刚看到《网易首页 > 网易号》于昨(8月31日逾23时)天深夜发布《崇州看点》的新闻报道《台湾自媒体人天府游记,被崇州的这个地方深深吸引……》,虽觉得新鲜但并不感到惊奇。因为在去年12月5日,《人民日报海外版》和…

CAS单点登录说明文档

CAS单点登录说明文档 目录 1. 下载CAS 2. 下载xmlsectool 3. 安装xmlsectool 4. 打包CAS 5. 连接服务器 6. 安装Tomcat服务器 7. 创建CAS程序 8. 修改CAS界面 9. 修改CAS服务端口 10. 修改CAS服务名称 11. 修改CAS日志路径 12. 创建数据库 13. 启动CA…

PD快充协议

表格中电压电流档位的电流都是在该电压下输出的最大电流。在充电的过程当中,充电器输出的电流会根据充电设备的需求进行动态调整,不是说握手了20V 5A档位充电器输出的电流就一直都是5A。 这个屏幕显示了几种常见的快充协议及其支持的电压、电流和功率。这…

kubeadm部署 Kubernetes(k8s) 高可用集群【V1.28 】

kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。 calico.yaml kubernertes-dashboard.yaml 1. 安装要求 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 10台机器,操作系统Openeuler22.03 LTS SP4硬件配置&…

2024年【制冷与空调设备运行操作】找解析及制冷与空调设备运行操作实操考试视频

题库来源:安全生产模拟考试一点通公众号小程序 制冷与空调设备运行操作找解析参考答案及制冷与空调设备运行操作考试试题解析是安全生产模拟考试一点通题库老师及制冷与空调设备运行操作操作证已考过的学员汇总,相对有效帮助制冷与空调设备运行操作实操…

【大模型】Agent基础知识

目录 1. 基本框架2. 常见推理模式2.1 ReAct: Synergizing Reasoning and Acting in Language Models2.2 Reflection2.3 LATS: Language Agents Tree Search 3. 微调3.1 全模型微调(Full Model Fine-Tuning)3.2 冻结部分层微调(Layer-wise Fin…

IPC核间通信底层原理:以PL320为例

什么是IPC核间通信 讲到IPC可能很多同学想到的是InterProcess Communication进程间通信,但是本文主要是讲另一种Inter-processor communication,处理器间通信,也叫核间通信,名字很像不要搞混。 为什么需要核间通信 现在的芯片系统非常复杂…

企业微信dll,最新版dll

1.基础信息获取,如登录用户信息、联系人列表、群组列表等。 2.联系人操作,如修改备注、添加删除联系人等。 3.群操作,如创建群聊、邀请添加成员、修改群信息等。 4.消息发送,支持文本、图片、文件、位置等不同类型消息的发送。 5.支持通过DLL调用实现自动化功能,如机器人自动回…

Python一些可能用的到的函数系列131 发送钉钉机器人消息

说明 来自顾同学的助攻 钉钉机器人可以用来发送一些重要的系统消息,例如磁盘将满等等。原本还可以有更强的功能,就是监听群里的消息,然后做出反应,不过这个好像要买企业版,贵的毫无意义。 钉钉发消息有几种模式&#…