快速构建栅格地图-MatLab

利用Matlab快速构建栅格地图

文章目录

  • 利用Matlab快速构建栅格地图
      • 一、写在前面
      • 二、地图分类
      • 三、栅格地图优势
      • 四、核心函数及思想
      • 五、Matlab程序及注释

一、写在前面

​你好,我是禅墨!

{% meting “1888915574” “netease” “song” “autoplay” “volume:0.6” “theme:#4997da” %}

在这之后,会陆续出路径规划系列,重点在几大算法的Matlab的仿真。学习参考来自黎万洪老师,让我们共同进步,加油!

​ 栅格图像,也称光栅图像,是指在空间和亮度上都已经离散化了的图像。我们可以把一幅栅格图像考虑为一个矩阵,矩阵中的任一元素对应于图像中的一个点,而相应的值对应于该点的灰度级,数字矩阵中的元素叫做像素。

二、地图分类

1.尺度地图:

具有真实的物理尺寸,如栅格地图、特征地图、点云地图等,常用于地图构建、定位、SLAM、小规模路径规划。

2.拓扑地图:

不具备真实的物理尺寸,只表示不同地点的连通关系 和距离,如铁路网。

3.语义地图:

加标签的尺度地图,常用于人机交互,如百度地图。

三、栅格地图优势

  • 可以将任意形状轮廓的地图,用足够精细的栅格进行绘制
  • 每一栅格,可以通过不同颜色表征不同含义
  • 基于栅格地图进行路径规划有横、纵、斜三个规划方向,对与室内低速度机器人完全可以按照规划路径行走;对于中高速机器人,可以考虑将规划路径平滑处理,适应非完全约束系统。

四、核心函数及思想

  • colormap: 为栅格地图创建自定义颜色
  • sub2ind: 将行列索引转换为线性索引(自上而下,自左往右)
  • ind2sub:将线性索引转换为行列索引
  • image:利用colormap建立的颜色图,将数组信息显示为图像

五、Matlab程序及注释

% 利用Matlab快速绘制栅格地图

clc
clear
close all

%% 构建颜色MAP图
cmap = [1 1 1; ...       % 1-白色-空地
    0 0 0; ...           % 2-黑色-静态障碍
    1 0 0; ...           % 3-红色-动态障碍
    1 1 0;...            % 4-黄色-起始点 
    1 0 1;...            % 5-品红-目标点
    0 1 0; ...           % 6-绿色-到目标点的规划路径   
    0 1 1];              % 7-青色-动态规划的路径

% 构建颜色MAP图
colormap(cmap);

%% 构建栅格地图场景
% 栅格界面大小:行数和列数
rows = 10;
cols = 20; 

% 定义栅格地图全域,并初始化空白区域
field = ones(rows, cols);

% 障碍物区域
obsRate = 0.3;
obsNum = floor(rows*cols*obsRate);
obsIndex = randi([1,rows*cols],obsNum,1);
field(obsIndex) = 2;

% 起始点和目标点
startPos = 2;
goalPos = rows*cols-2;
field(startPos) = 4;
field(goalPos) = 5;

%% 画栅格图
image(1.5,1.5,field);
grid on;
set(gca,'gridline','-','gridcolor','k','linewidth',2,'GridAlpha',0.5);
set(gca,'xtick',1:cols+1,'ytick',1:rows+1);
axis image;

禅墨云:chanmoyun.gitee.io

你可能感兴趣的:(仿真,路径规划,路径规划)