binaryoccupancymap.

使用二进制值创建占用网格

描述

binaryoccupancymap.创建一个二维占用映射对象,您可以用来表示和可视化机器人工作区,包括障碍物。传感器数据和位置估计的集成创造了障碍物的近似位置的空间表示。

占用网格用于机器人算法,如路径规划。它们还用于映射应用程序,例如用于查找无碰撞路径,执行碰撞避免和计算本地化。您可以修改您的占用网格以符合您的特定应用程序。

占用网格中的每个单元格都具有表示该单元格的占用状态的值。占用的位置是表示为的真(1)和一个免费的位置是表示的假(0)

该对象跟踪三个参考帧:世界,本地和,网格。世界框架原产地由gridlocationInworld.,它定义了地图的左下角相对于世界框架。这localorigininworld.属性指定相对于世界帧的本地帧的原点的位置。具有索引的第一个网格位置(1,1)从网格的左上角开始。

笔记

此目的先前是命名的机器人.BinaryoccupancyGrid.

创建

描述

例子

地图= binaryoccupancimap.创建2-D二进制占用网格,宽度和高度为10米。默认网格分辨率是每米的一个单元格。

例子

地图= BinaryoccupAccyMap(宽度高度创建一个代表工作空间的2-D二进制占用网格宽度高度在米。默认网格分辨率是每米的一个单元格。

地图= BinaryoccupAccyMap(宽度高度解析度用这个网格创造一个网格解析度每米细胞中指定的财产。默认情况下,地图是世界坐标。

地图= BiniaroccupAccemap(行,Cols,解析度,“网格”)创建一个大小的2-D二进制占用网格(科尔斯)。

例子

地图= BinaryoccupAccyMap(P.从矩阵中的值创建网格P.。网格的大小与矩阵的大小相匹配,每个单元值从其位置解释在矩阵中。P.包含具有零(0)和零(1)的任何数字或逻辑类型。

地图= BinaryoccupAccyMap(P.解析度从矩阵创建地图解析度每米细胞中指定的财产。

地图= BinaryoccupAccyMap(P.解析度创建一个对象解析度Proeprty每米细胞中指定。

地图= BinaryoccupAccyMap(Sourcemap.使用另一个值创建一个对象binaryoccupancymap.目的。

地图= BinaryoccupAccyMap(Sourcemap.解析度使用另一个值创建一个对象binaryoccupancymap.对象,但是重新开始矩阵以具有指定的分辨率。

输入参数

展开全部

地图宽度,指定为以米为单位的标量。

地图高度,指定为以米为单位的标量。

映射网格值,指定为矩阵。

占用地图对象,指定为abinaryoccupancymap.目的。

特性

展开全部

此属性是只读的。

网格中的行数和列数,存储为表单的两个元素水平向量[Rows Cols]

此属性是只读的。

网格分辨率,作为每个仪表中的单元格存储。

此属性是只读的。

最小值和最大值X- 在本地框架中,存储为形式的两个元素水平向量[min max]。本地框架由localorigininworld.财产。

此属性是只读的。

最小值和最大值y- 在本地框架中,存储为形式的两个元素水平向量[min max]。本地框架由localorigininworld.财产。

此属性是只读的。

最小值和最大值X- 世界框架中的控制,存储为表格的两个元素水平向量[min max]。这些值表明了世界范围X- 网格中的控制。

此属性是只读的。

最小值和最大值y-CoordInates,作为表格的两个元素矢量存储[min max]。这些值表明了世界范围y- 网格中的控制。

世界坐标的网格左下角的位置,指定为双元素矢量,[Xgrid Ygrid]

世界坐标的本地帧的起源的位置,指定为双元素矢量,[xlocal ylocal]。使用移动随着车辆移动,将本地帧移位的功能。

网格左下角在本地坐标中的位置,指定为双元素矢量,[xlocal ylocal]

未指定地图位置的默认值包括地图外的区域,指定为0.或者1

对象功能

检查电动扫描 检查位置的占用值
getOc​​upancy. 获得地点的入住价值
grid2local. 将网格索引转换为本地坐标
grid2world. 将网格指数转换为世界坐标
膨胀 膨胀每个被占用的网格位置
insertray 从激光扫描观察插入射线
local2grid. 将本地坐标转换为网格指数
local2world. 将当地坐标转换为世界坐标
移动 在世界框架中移动地图
占领yatmatrix. 将占用网格转换为矩阵
雷播 沿线计算单元指数
瑞射线 查找光线和占用地图单元的交叉点
setoccupancy. 设定位置的占用价值
展示 显示占用网格值
syncwith. 与重叠地图同步地图
World2Grid. 将世界坐标转换为网格指数
World2local. 将世界坐标转换为当地坐标

例子

全部收缩

创建10米x 10米空映射。

地图= Binaryoccupancimap(10,10,10);

设置世界地点的占用,并显示地图。

x = [1.2;2.3;3.4;4.5;5.6];y = [5.0;4.0;3.0;2.0;1.0]; setOccupancy(map, [x y], ones(5,1)) figure show(map)

通过给定的半径将占用的位置膨胀。

充气(地图,0.5)图显示(地图)

从世界地点获取网格位置。

ij = world2grid(map,[x y]);

将网格位置设置为空闲地点。

SetoCcupancy(地图,IJ,Zeros(5,1),'网格')图显示(地图)

此示例显示如何将图像转换为二进制占用网格,以便使用映射和路径规划。

导入图像。

image = imread('imagemap.png');

基于给定阈值转换为灰度,然后是黑白图像。

灰度= rgb2gray(图像);Bwimage =灰度<0.5;

使用黑白图像作为二进制占用网格的矩阵输入。

Grid = Biniaroccupancap(BWImage);展示(网格)

此示例显示如何转换a.pgm.文件进入A.binaryoccupancymap.用于MATLAB的对象。

使用导入图像Imread.。图像非常大,应该裁剪到相关区域。

image = imread('playpen_map.pgm');Imagecropped =图像(750:1250,750:1250);imshow(Imagecropped)

应删除未知的区域(灰色)并将其视为自由空间。基于阈值创建逻辑矩阵。根据您的图像,此值可能是不同的。占用空间应设置为1(图像中的白色)。

imagebw = ImageCropped <100;imshow(imagebw)

创建binaryoccupancymap.对象使用调整后的地图图像。

地图= BinaryoccupAccAp(imageBw);显示地图)

兼容性考虑因素

展开全部

未来发布的行为变化

扩展能力

C / C ++代码生成
使用MATLAB®Coder™生成C和C ++代码。

也可以看看

话题

在R2015A介绍