栅格地图路径规划:基于孟加拉虎优化( Savannah Bengal Tiger Optimization ,SBTO)算法的移动机器人路径规划(提供MATLAB代码)

一、孟加拉虎优化算法

孟加拉虎优化( Savannah Bengal Tiger Optimization ,SBTO)算法模拟了孟加拉虎的群体狩猎行为,采用了猎物搜索、隐身接近和攻击狩猎三种策略。
在这里插入图片描述
在这里插入图片描述

参考文献:
[1]Yujing Sun, Xingguo Xu. Savannah Bengal Tiger Optimization (SBTO): A Novel Metaheuristic Algorithm for Constrained Optimization Problems, 29 October 2024, PREPRINT (Version 1) available at Research Square
https://doi.org/10.21203/rs.3.rs-5298106/v1

二、移动机器人路径规划及栅格地图环境搭建

移动机器人路径规划是移动机器人研究的核心领域之一,旨在为机器人从起点到目标点生成一条安全、无碰撞且最优的路径。路径规划根据环境信息的已知程度,分为全局路径规划和局部路径规划。全局路径规划假设环境信息已知,适用于静态环境;局部路径规划则适用于环境信息未知或部分已知的动态环境。随着机器人技术的发展,路径规划算法不断演进,从传统的栅格法和人工势场法,发展到现代的智能优化算法,如遗传算法、粒子群优化算法(PSO)、麻雀搜索算法(SSA)、灰狼优化算法和鲸鱼优化算法等。

  • 栅格法:将环境划分为二维或三维的栅格,机器人在栅格间移动。该方法简单直观,但存储需求随空间增大而剧增,决策速度下降。
  • 人工势场法:通过模拟引力和斥力引导机器人移动,但容易陷入局部最优解和死锁现象。
  • 智能优化算法:如蚁群算法通过模拟蚂蚁释放信息素的行为,能够找到最优路径,但存在收敛速度慢的问题。改进的蚁群算法通过引入跳点搜索和信息素更新策略,提高了收敛速度和路径平滑度。麻雀搜索算法基于麻雀觅食行为,具有结构简单、收敛速度快的优点,适用于路径优化问题。

栅格地图是路径规划中常用的环境表示方法,通过将工作空间划分为二维栅格来简化环境建模。每个栅格用序号标识,无障碍物的栅格为可行栅格(标记为0),有障碍物的栅格为不可行栅格(标记为1)。栅格的尺寸根据障碍物尺寸和安全距离设置。通过障碍物膨胀,可以确保机器人在路径规划时避开障碍物。

在20x20的栅格环境中,每个栅格的坐标通过以下公式计算:
在这里插入图片描述

x=mod(Ni/N)−0.5 x = \text{mod}(N_i / N) - 0.5 x=mod(Ni/N)0.5
y=N−ceil(Ni/N)+0.5 y = N - \text{ceil}(N_i / N) + 0.5 y=Nceil(Ni/N)+0.5
其中,NiN_iNi 是栅格的序号,NNN 是每列的栅格数量。栅格中心位置作为其在坐标系中的坐标。路径规划问题转化为在栅格地图上寻找从起始点到目标点的有序栅格子集,这些栅格子集的中心连线即为规划路径。
参考文献:

[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.

三、部分MATLAB及结果

clc
clear
close all
tic
%% 地图
global G S E
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 1 0 0 0 0; 
   0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0; 
   0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 
   0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0; 
   0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0; 
   0 1 1 1 0 0 0 0 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 0 0 0 0 0 1 1 0 0; 
   0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0; 
   0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0; 
   0 0 1 0 0 0 0 1 1 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 1 1 1 1 0; 
   0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0; 
   1 1 1 1 0 0 0 0 0 0 0 0 0 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 1 0 0 1 1 0; 
   0 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0; 
   0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0;];
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];  %终点
[ub,dimensions] = size(G);        
dim = dimensions - 2;   

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

四、完整MATLAB代码见下方名片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值