机器人路径规划之栅格地图(一)

您所在的位置:网站首页 gvg是什么 机器人路径规划之栅格地图(一)

机器人路径规划之栅格地图(一)

2024-07-17 12:38| 来源: 网络整理| 查看: 265

什么是栅格地图

栅格地图:即以机器人出生点为中心,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随机障碍物的,满足我们在这个地图上验证路径规划算法

在这里插入图片描述 在C语言中验证算法时,可以用二维数组承接这个field矩阵中的数据

/* * 1-白色-空地 * 2-黑色-静态障碍 * 3-红色-动态障碍 * 4-黄色-起始点 * 5-品红-目标点 * 6-绿色-到达目标点的规划路径 * 7-青色-动态规划的路径 */ const int kRows = 10; const int kCols = 20; uint8_t mymap[kRows][kCols] = { {1, 1 ,1, 1, 1 ,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2}, {4, 1 ,1, 2, 1 ,1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2}, {1, 1 ,1, 2, 1 ,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2}, {1, 1 ,2, 1, 1 ,1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1}, {1, 1 ,1, 2, 2 ,1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2}, {1, 1 ,2, 1, 1 ,2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1}, {2, 1 ,1, 1, 1 ,1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1}, {2, 1 ,1, 2, 1 ,1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 5}, {1, 1 ,2, 1, 1 ,1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1}, {2, 2 ,1, 1, 1 ,1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1}, };


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3