【路径规划】基于麻雀搜索算法的栅格法路径规划 机器人路径规划【Matlab代码#21】

news2025/1/15 17:44:50

文章目录

    • 1. 原始SSA算法
    • 2. 机器人路径规划环境创建
    • 3. 路径规划模型建立
    • 4. 部分代码展示
    • 5. 仿真结果展示
    • 6. 资源获取方式

1. 原始SSA算法

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

2. 机器人路径规划环境创建

对机器人工作空间的进行环境建模是机器人路径规划研究的重要前提。栅格法为环境建模提供了一种简洁有效的方法,是目前为止应用最广泛的机器人工作环境建模方法。
通过二维平面坐标对机器人的局部运动空间进行划分,如下面图所示。栅格编号用来表示机器人和障碍物的具体位置,其中非障碍物栅格称为自由栅格。机器人在当前栅格可以沿其邻域方向移动,以栅格45为例,机器人可以选择的自由栅格包括25、44、46、64、65。
在这里插入图片描述
栅格法地图一般通过如下所示的障碍物矩阵来描述。其中0表示此处没有障碍物,1表示此处有障碍物。
在这里插入图片描述

3. 路径规划模型建立

在基于HHO算法的路径规划中,设定哈里斯鹰种群每一次迭代更新的位置坐标,代表机器人的一条移动路线。通过HHO优化算法,从二维栅格地图中找寻从起始点到目标点符合约束条件的最优路径。约束条件设定如下:

1)地图边界和障碍物约束条件
机器人的移动路径必须限定在栅格地图边界内,并且在可移动区域内,机器人的移动路径禁止穿越障碍物节点。

2)路径连续条件
机器人在通行区域内的移动路径,需避免路径重叠和迂回。假设移动机器人在 t t t时刻的坐标为 ( x t , y t ) (x_{t},y_{t}) (xt,yt),则下一时刻机器人位置坐标 ( x t + 1 , y t + 1 ) (x_{t+1},y_{t+1}) (xt+1,yt+1)需要满足 x t + 1 > x t x_{t+1}>x_{t} xt+1>xt或者 y t + 1 > y t y_{t+1}>y_{t} yt+1>yt

3)路径最短条件
为实现移动机器人路径规划,机器人需在满足边界约束和路径连续条件的基础上,寻找从起始点到目标点的最短路径。将路径的欧氏距离作为算法
的适应度函数,适应度最小的路径即为最优路径。
将路径上每两个相邻点之间的欧式距离相加即可得到总路径长度。

4. 部分代码展示

%% 地图矩阵
G=[0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 
   0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 
   0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 
   0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 
   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 
   0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 
   0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0;
   0 1 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0; 
   0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0; 
   0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0; 
   0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0; 
   0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0; 
   0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0; 
   0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0; 
   1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0; 
   1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0; 
   0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0; 
   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0; 
   0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0; 
   0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0;];

% 交换G(1,1)和G(20,1),G(2,1)和G(19,1)
for i=1:20/2
    for j=1:20
        m=G(i,j);
        n=G(21-i,j);
        G(i,j)=n;
        G(21-i,j)=m;
    end
end
%% 
S = [1 1];     % 起点
E = [20 20];   % 终点
G0 = G;
G = G0(S(1):E(1),S(2):E(2)); 
[Xmax,dimensions] = size(G);        
dimensions = dimensions - 2;             

%% 参数设置
max_gen = 200;          % 最大迭代次数
num_polution = 50;      % 种群数量
X_min = 1;  
[global_best,final_goal] = SSA(num_polution,max_gen,dimensions,G,Xmax,X_min);

5. 仿真结果展示

在这里插入图片描述

在这里插入图片描述

6. 资源获取方式

A资源获取说明
A资源获取说明

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

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

相关文章

法规标准-GB/T 33577标准解读(2017版)

GB/T 33577是做什么的? GB/T 33577全名为智能交通系统-前方车辆碰撞预警系统(FVCWS)-性能要求和测试步骤,其中主要是对FVCWS系统的功能要求、性能要求及测试步骤进行了介绍。由于ISO 15623-2013内容与本法规内容相同,故可沿用此法规内容 FV…

【谷粒商城之消息队列RabbitMQ】

本笔记内容为尚硅谷谷粒商城消息队列RabbitMQ部分 目录 一、概述 二、简介 三、Docker安装RabbitMQ 四、Springboot整合RabbitMQ 1、引入spring-boot-starter-amqp 2、application.yml配置 3、测试RabbitMQ 1. AmqpAdmin-管理组件 2.RabbitTemplate-消息发送处理组件…

Wikidata实操

1. Wikidata 简介 Wikidata 即维基数据,是维基百科的一个项目。个项目已经在维基百科德国分部开始进行,项目完成之后,将会交给维基百科基金会进行操作和维护。(具体百度即可,不多赘述) 官网:htt…

操作系统考试复习—第三章 优先级倒置 死锁问题

当前OS广泛采用优先级调度算法和抢占方式,然而在系统中存在着影响进程运行的资源从而可能产生"优先级倒置"现象 具体解释为:在原本的调度算法设计中,高优先级进程可以抢占低优先级的CPU资源,先执行高优先级任务。但是存…

【STM32】在使用STM32Cube.IDE时更改时钟频率后代码跳进异常中断

目录 1、前言2、问题与复现办法3、解决的问题的过程 1、前言 这是在项目中无意发现的问题,其实有同样更复杂的工程可以运行,但是后来发现新建一个简单工程反而运行不了了,但是同样更复杂的工程可以运行说明本来同事原来已经不知道在哪里找到…

Vmware安装Kali

需要准备两个东西,kali镜像和VMware软件 下载kali iso 下载界面有三个可选择的 install是安装版,安装使用; Live版可以直接启动运行; netinstaller是网络安装,需要从网络上下载,文件本身只有引导作用&…

Idea Jrebel 报错:Cannot reactivate, offline seat in use ...

Idea Jrebel 报错:Cannot reactivate, offline seat in use ... 一、问题描述 在使用idea Jrebel续期的时候,修改idea激活服务器地址时,遇到报错:Cannot reactivate, offline seat in use. Click Work online in JRebel configura…

基于aspnet个人博客网站dzkf6606程序

系统使用Visual studio.net2010作为系统开发环境,并采用ASP.NET技术,使用C#语言,以SQL Server为后台数据库。 1.系统登录:系统登录是用户访问系统的路口,设计了系统登录界面,包括用户名、密码和…

探索卡尔曼滤波在位姿估计中的魅力:无人机与自动驾驶的关键技术揭秘

摘要:在本博客中,我们将探讨卡尔曼滤波在位姿估计领域的应用,特别是在无人机和自动驾驶场景中的重要性。我们将详细介绍卡尔曼滤波的原理、优势及其在无人机、自动驾驶等实际案例中的应用。此外,我们还将关注卡尔曼滤波在其他领域…

【服务器数据恢复】同友存储上的虚拟机数据恢复案例

服务器数据恢复环境: 同友存储,底层由数块物理硬盘组建的raid5磁盘阵列,存储池划分若干lun,每个lun下有数台虚拟机。 服务器故障: 未知原因导致存储崩溃,无法启动,虚拟机全部丢失,其…

linux中基础开发工具的使用

1.linux中的软件包管理器 1.1什么是软件包 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很…

软件管理员密码的作用 如何设置软件管理员密码?

在使用夏冰加密软件的过程中,很多软件都是可以设置软件管理员密码的。那么你知道管理员密码有什么用吗?又该如何设置软件管理员密码呢?下面我们来了解一下吧。 软件管理员密码是什么意思? 软件管理员密码就是软件的密码&#xff…

毕业5年,技术越来越好,混的却越来越差...

别人都是越来越好,而我是越来越差! 17年,从一个普通的本科毕业,那个时候的我,很迷茫,简历上的求职岗位都不知道写什么,因为家里是农村的,朴实的父母也帮不上什么忙,关于…

KDBR-IV变压器空负载短路损耗测试仪

一、产品概述 本产品是我公司针对不良电力用户偷逃基本电费、私自增容问题而研发设计的仪器,用于变压器容量、空载、负载等特性参数测量的高精密仪器。本仪器为多功能测量仪器,相当于往常两种测试仪器:即变压器容量测试仪变压器特性参数测试仪…

【因子挖掘】遗传规划概述

在多因子选股的框架下,因子的产生通常有两条途径: 先有逻辑,后有公式:根据经济学逻辑、历史经验、直觉进行人工构造一些因子; 例如:动量(Momentum)因子:当最近的股价呈现…

Cadence Allegro 布局操作Move命令的应用

在布局的时候,常常需要对一些元素去进行移动位置以方便进行设计。 1、执行菜单命令Edit-Move,此时PCB界面的左下角会显示Move,就表示正在执行移动命令,如图1所示。 图1 移动命令 2、在PCB界面右边的Find面板中所选择需要进行移动…

Charles抓包工具使用

一、Charles的安装与激活 安装 官方地址:https://www.charlesproxy.com/ 根据自己系统安装最新版本即可 安装后可直接打开使用 激活 打开Charles -> 【Help】 -> 【Register Charles】 -> 输入 Registered Name : https://zhile.io Lic…

智能座舱的“宏大蓝图”和“残酷现实”

配图来自Canva可画 2023年上海车展各大车企发布新车、新配置和新战略好不热闹,“智能驾驶”、“智能座舱”等关键词频频出现,智能化已然成为车企技术比拼的关键。 Unity中国发布最新智能座舱解决方案,可为车企提供成熟、可量产落地的HMI&…

学系统集成项目管理工程师(中项)系列17b_范围管理(下)

1. 创建工作分解结构WBS 1.1. 自上而下的分解结构 1.2. 把项目可交付成果和项目工作分解成较小的、更易于管理的组件的过程 1.3. 用来确定项目范围的 1.3.1. 包括分包出去的工作 1.3.1.1. 【21上选40】 1.4. 输入 1.4.1. 项目范围管理计划 1.4.2. 项目范围说明书 1.4.…

AI教父变成“吹哨人” 他到底在警觉什么?

“我现在对自己过去的工作感到后悔,我找借口来安慰自己:就算我没做,别人也会做的。”有AI“教父”之称的杰弗里辛顿 (Geoffrey Hinton)在接受媒体采访时透露出悔意。 作为AI深度学习领域的代表性人物,辛顿一生都在该领域深耕&…