机器人路径规划之栅格地图(一) |
您所在的位置:网站首页 › gvg是什么 › 机器人路径规划之栅格地图(一) |
什么是栅格地图
栅格地图:即以机器人出生点为中心,x轴和y轴的分辨率为单个格子大小,当x轴分辨率=y轴分辨率时,则每个格子为一个正方形,分辨率越小则表示地图精度越高,比如一个格子大小为1cm × 1cm,那么机器人定位精度就是1cm。可以想象成一个巨大的网把一个地面罩住,网面碰到东西则认为是障碍物/墙,没有碰到障碍物则可以认为是空地。 那么每个格子如何区分自己的状态是障碍物/墙,还是空地呢?这里可以赋予每个格子不同的值,比如0代表空地,1代表墙。这个值的内容也可以扩展,比如2代表已经走过,3代表未被走过等等。 基于matlab构建栅格地图 % MATLAB 绘制栅格地图的核心函数和思想 % colormap:为栅格地图创建自定义颜色。如黄色栅格代表的起点,红色栅格代表的终点,黑色栅格代表的障碍物 % sub2ind:将行列索引转为线性索引 ind2sub:将线性索引转为行列索引 % image:利用colormap建立的颜色图,将数组信息显示为图像 clc clear close all 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;这样生成出来的栅格地图是10*20随机障碍物的,满足我们在这个地图上验证路径规划算法
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |