首页 > 编程语言 >粒子群算法应用——二维栅格路径规划

粒子群算法应用——二维栅格路径规划

时间:2024-10-18 18:51:12浏览次数:3  
标签:PP end MM 路径 地图 算法 栅格 二维

粒子群算法详见:粒子群优化算法及应用-CSDN博客

目录

1栅格地图

1.1 什么是栅格地图

1.2 栅格地图绘制

2 基本原理

3 结果展示


1栅格地图

1.1 什么是栅格地图

栅格地图是一种将环境或地图区域均匀划分为一系列大小一致的网格单元,并为每个单元分配特定属性信息的地图表示方法,它简单有效、易于实现,并广泛应用于自动驾驶、机器人导航、游戏开发等领域,用于环境感知、定位、路径规划和导航避障等功能。那么每个格子如何区分自己的状态是障碍物/墙,还是空地呢?这里可以赋予每个格子不同的值,比如0代表空地,1代表障碍物/墙。

图1 栅格地图

1.2 栅格地图绘制

在 MATLAB 中绘制栅格地图通常涉及将二维数据表示为图像或矩阵,其中每个像素或单元格表示地图上的特定区域。(1)创建一个二维矩阵,表示栅格地图的占据情况(例如,0 表示空地,1 表示障碍)。(2)绘制栅格地图:使用 imagesc , pcolor或者fill函数来绘制栅格地图,并添加颜色条和标签来增强可读性。下面是一个示例:

function map=map(MM,G)
axis([0,MM,0,MM]) 
for i=1:MM 
for j=1:MM 
if G(i,j)==1 
x1=j-1;y1=MM-i; 
x2=j;y2=MM-i; 
x3=j;y3=MM-i+1; 
x4=j-1;y4=MM-i+1; 
fill([x1,x2,x3,x4],[y1,y2,y3,y4],[0,0,0]); 
hold on 
else 
x1=j-1;y1=MM-i; 
x2=j;y2=MM-i; 
x3=j;y3=MM-i+1; 
x4=j-1;y4=MM-i+1; 
fill([x1,x2,x3,x4],[y1,y2,y3,y4],[1,1,1]); 
hold on 
end  
end 
hold on
end 
hold on 
axis([0 MM 0 MM])%限制图的边界
title('PSO栅格路径规划'); 
xlabel('坐标x'); 
ylabel('坐标y');
map="ditu";
end

2 基本原理

在栅格地图中进行路径规划时,适应度函数(fitness function)通常用于评估路径的优劣。适应度函数的设计取决于具体的路径规划算法和目标,例如最短路径、最少转弯次数、避开障碍物等。

%% 计算路径的距离
function [PathLength,Outpath] = fun(x,begins,ends,num,net,point)
DistAll = [];
Outpath = [];
[~,S]=sort(x);%对数据排序
PP = S(1:num);%重排序后的节点中,选取前num个节点,构成路径节点
[~,index]=sort(point(PP,1));
PP=PP(index);
path=[begins,PP,ends];
for i=1:length(path)-1
    [Path,Dist]=shortestpath(net,path(i),path(i+1));
    DistAll=[DistAll,Dist]; %存放相邻节点之间的距离
    Outpath=[Outpath,Path];%存放路径
end
PathLength = sum(DistAll);%路径长度
end

3 结果展示

10x10的栅格地图:

30x30的栅格地图:

50x50的栅格地图:

100x100的栅格地图:

这个代码的适用性很不错,只需要改一下你的地图就可以直接使用,参数都不用改!

 关注私信我代码获取

1 部分理论引用网络文献,若有侵权联系我整改!

2 优化算法有关的可以找我合作!!!

标签:PP,end,MM,路径,地图,算法,栅格,二维
From: https://blog.csdn.net/liutianbao2018/article/details/143025705

相关文章

  • 安全帽AI检测算法在工业安全领域的全面解析及开源代码及相关项目
    在各类施工现场,安全帽的佩戴是保障工人生命安全的重要措施。为了确保工人正确佩戴安全帽,安全帽检测算法发挥着关键作用。而在实际应用中,结合AI智能分析网关V4与EasyCVR视频汇聚智能分析平台,更是能将安全帽检测的效果发挥到极致。例如,在某大型建筑工地,通过在施工现场安装多个摄......
  • 数据驱动的未来:AI智能分析网关V4车辆违停算法与智慧城市交通管理
    在现代交通管理中,车辆违停问题一直是影响城市交通秩序和安全的重要因素。AI智能分析网关V4车辆违停算法则可以更高效地管理车辆违停现象。AI车辆违停算法通常基于计算机视觉技术。首先,通过摄像头采集道路上的图像或视频信息。这些摄像头可以安装在路口、路段等关键位置,以实现对不......
  • 必学排序算法——插入排序
    目录前言、一、什么是插入排序算法二、插入排序的特点三、算法基本步骤四、算法图解五、c代码模板六、经典例题1.去掉最低工资和最高工资后的工资平均值代码题解2.删除某些元素后的数组均值3.学生分数的最小差值七、结语前言、插入排序算法是必须掌握的一种基础算......
  • 必学的简单排序算法——选择排序(c++)
    标题前言一、什么是选择排序二、算法图解三、经典例题1、颜色分类题解思路代码题解2、至少是其他数字两倍的最大数解题思路代码题解3、寻找两个正序数组的中位数解题思路代码题解前言排序算法虽然简单,但是我也要掌握熟练应用,因为学习算法这个复杂的过程,我们应该......
  • 【初窥算法】动态规划之背包问题
    背包问题概述背包问题(KnapsackProblem)是计算机科学和运筹学中的一个经典问题,通常描述为:给定一组物品,每种物品都有自己的重量和价值,在限定的最大承重(背包容量)下,如何选择物品使得背包内物品的总价值最大。背包问题有多种表现形式,包括但不限于:0/1背包问题:有n种物品,每种物品......
  • Snowflake算法js(实现)
    Snowflake算法是一种分布式环境下的唯一ID生成算法,最初由Twitter开发并在其内部使用。该算法旨在生成全局唯一、递增的64位整数ID,同时具备高性能的特点。以下是Snowflake算法的一些关键特点及其工作原理:特点全局唯一性:生成的ID在分布式环境中几乎可以保证全局唯一。时间有序:生......
  • 安全帽AI检测算法在工业安全领域的全面解析及开源代码及相关项目
    在各类施工现场,安全帽的佩戴是保障工人生命安全的重要措施。为了确保工人正确佩戴安全帽,安全帽检测算法发挥着关键作用。而在实际应用中,结合AI智能分析网关V4与EasyCVR视频汇聚智能分析平台,更是能将安全帽检测的效果发挥到极致。例如,在某大型建筑工地,通过在施工现场安装多个......
  • 数据驱动的未来:AI智能分析网关V4车辆违停算法与智慧城市交通管理
    在现代交通管理中,车辆违停问题一直是影响城市交通秩序和安全的重要因素。AI智能分析网关V4车辆违停算法则可以更高效地管理车辆违停现象。AI车辆违停算法通常基于计算机视觉技术。首先,通过摄像头采集道路上的图像或视频信息。这些摄像头可以安装在路口、路段等关键位置,以实现......
  • 基于灰狼优化算法(GWO)解决柔性作业车间调度问题(Matlab代码实现)
     ......
  • ROS2安装turtlebot4机器人,运行ign gazebo仿真加载机器人模型(用于评测catorgrapher算法
    前言本人最近做了一个任务,需要评测catorgrapher算法的精度,这个过程中需要使用到ros2仿真过程中机器人的真实轨迹和估计轨迹,在/odom和/sim_ground_true_pose话题中提取到机器人的真实轨迹,同时改变catorgraper的源码,在启动catorgraper算法后产生tum格式轨迹文件,最后使用evo进行......