主要内容

占用网格

概述

占用网格用于表示一个机器人的工作空间是一个离散的网格。环境可以从传感器采集信息实时或从先验知识被加载。激光测距仪、碰撞传感器、摄像机、和深度传感器通常用于找到机器人的环境障碍。

占用网格算法用于机器人路径规划等mobileRobotPRM(机器人系统工具箱)plannerRRT)。它们用于地图应用程序集成传感器信息在一个离散的地图,在寻找无碰撞路径,路径规划和本地化机器人在已知环境中(见monteCarloLocalizationmatchScans)。您可以创建地图有不同的大小和分辨率来适应您的特定应用程序。金宝搏官方网站

3 d入住率地图,看看occupancyMap3D

对于二维占用网格,有两种表示形式:

一个二进制占用网格使用真正的值来表示(障碍)和被占领的工作区价值观代表自由的工作空间。这个网格显示机器人的障碍在哪里,是否可以通过空间移动。使用二进制占用网格应用程序的内存大小是一个因素。

一个概率占用网格使用概率值来创建一个更详细的地图表示。这表示是首选方法使用占用网格。这个表格就是通常被称为一个占用网格。占用网格中的每个细胞有一个值代表细胞的入住率的概率。值接近1代表高的细胞包含一个障碍。值接近于0代表的自由细胞不是占领和障碍。对象的概率值可以给更好的保真度和提高性能的某些算法的应用程序。

二进制和概率占用网格分享几个属性和算法的细节。网格适用于两种类型的入住率和世界坐标网格。通货膨胀函数也适用于这两个网格,但每个网格实现不同。log-odds表示和概率的影响饱和度仅适用于占用网格概率。

世界、网格和当地的坐标

在MATLAB在处理占用网格®,你可以使用世界、当地或网格坐标。

绝对参考系的机器人被称为运营世界坐标系在入住率网格。世界上最执行操作框架,并使用MATLAB函数时的默认选择工具箱。世界坐标作为绝对坐标系与一个固定的来源,并指出可以指定任何决议。然而,位置转换为网格的位置,因为所有数据存储和分辨率限制地图本身。

当地的框架指的是自我中心的车辆导航地图框架。的GridOriginInLocalLocalOriginInWorld属性定义网格的起源在当地坐标和世界上本地坐标系的相对位置坐标。你可以调整这个局部框架使用移动函数。例如使用本地框架作为一个以自我为中心的地图来模拟车辆移动和发送本地障碍,看到的使用范围传感器创建自我中心用房的地图

网格坐标定义的实际分辨率占用网格和有限的位置障碍。网格坐标的原点在左上角的网格,与第一个位置的索引(1,1)。然而,GridLocationInWorld财产的占用网格在MATLAB定义了手机的左下角时网格在世界坐标。当创建一个占用网格对象,属性等XWorldLimitsYWorldLimits定义的输入吗宽度,高度,决议。这个图显示了这些属性的可视化表示,世界和网格坐标之间的关系。

通货膨胀的坐标

二进制和正常占用网格有一个选项为膨胀的障碍。这种通货膨胀是用于添加一个安全系数障碍和创建环境中的机器人和障碍物之间的缓冲区。的膨胀指定的一个占用网格对象转换函数半径细胞的数量的围捕分辨率*半径价值。每个算法都使用这个单元格值分别修改值周围的障碍。

二进制占用网格

膨胀函数将每个细胞和直接膨胀它通过添加占据空间每一点。这个基本的通货膨胀的例子说明了如何使用半径值。

充气障碍二进制占用网格

这个例子显示了如何创建地图,设置障碍的位置和夸大它的半径1米。额外的块图帮助说明了通货膨胀和转移由于转换到网格位置。

创建二进制占用网格。占用的位置(5,5)。

地图= binaryOccupancyMap (10、10、5);setOccupancy(地图,5 [5],1);

膨胀占据空间地图1 m。

充气(图1);显示(图)

图包含一个坐标轴对象。坐标轴对象与标题二进制占用网格包含一个类型的对象的形象。

原始位置,转换后的网格位置和画原来的圆。从这个情节可以看出,网格中心(4.9 - 4.9),从5[5]的位置。1 m圆是来自那里,发现任何触摸这个圆的细胞标记为占领。这个数字是放大的相关区域。

持有θ= linspace(0, 2 *π);x = 4.9 + cos(θ);% x圆坐标y = 4.9 +罪(θ);% y圆坐标图(5 5‘* b”,“MarkerSize”,10)%原始位置图(4.9,4.9,“xr”,“MarkerSize”,10)%网格中心位置情节(x, y,“- r”,“线宽”2);%半径为1的圆。轴(3.6 [3.6 6 6])ax = gca;斧子。XTick = [3.6:0.2:6];斧子。YTick = [3.6:0.2:6];网格传奇(的原始位置,“网格中心”,“通货膨胀”)

图包含一个坐标轴对象。坐标轴对象与标题二进制占用网格包含4图像类型的对象,线。这些对象代表原始位置,网格中心,通货膨胀。

可以看到从上面的图,甚至细胞几乎没有重叠的通货膨胀半径贴上。

占用网格

膨胀函数使用通货膨胀半径来执行概率性的通货膨胀。概率通货膨胀作为当地最大的运营商和发现概率最高的值附近的细胞。的膨胀函数使用这个定义充气整个网格概率值越高。这种通货膨胀增加任何大小的占领位置并创建一个缓冲区机器人绕开障碍物。这个例子显示了通货膨胀与一系列的概率值。

充气障碍占用网格

这个例子显示了如何膨胀方法执行概率夸大它们的大小和通胀对障碍为区域创建一个缓冲区的概率更高的障碍。

创建一个10 m x 10米空的地图。

地图= occupancyMap (10、10、10);

更新占用世界位置与特定的值pvalues

x = (1.2;2.3;3.4;4.5;5.6);y = (5.0;4.0;3.0;2.0;1.0); pvalues = [0.2 0.4 0.6 0.8 1]; updateOccupancy(map,[x y],pvalues) figure show(map)

图包含一个坐标轴对象。坐标轴对象与标题占用网格包含一个类型的对象的形象。

膨胀占领地区由给定半径。更大的入住率值写在较小的值。你可以复制预先映射到恢复任何不必要的更改。

savedMap = (map)复印件;充气(图0.5)图显示(图)

图包含一个坐标轴对象。坐标轴对象与标题占用网格包含一个类型的对象的形象。

Log-Odds表示的概率值

当使用占用网格的概率值,目标是估计的概率障碍位置用于实时机器人应用程序。的occupancyMap类使用一个log-odds为每个单元格表示的概率值。每个概率值转换成对应的内部存储log-odds值。的值被转换回概率访问时。这种表示方法有效地更新概率值最少的操作。因此,您可以快速将传感器数据集成到地图。

log-odds表示使用以下方程:

请注意

Log-odds值存储为int16值。这种数据类型限制该决议概率值的±0.001但大大提高对创建内存大小,并允许更大的地图。

概率饱和

当更新一个占用网格与观测使用log-odds表示,有一系列的值-∞∞。这个范围意味着如果一个机器人观察位置如闭门多次,这个位置的log-odds值变得不必要的高,或值概率得到饱和。如果门打开时,机器人需要多次观察门的概率从占领自由变化。在动态环境中,您想要地图的变化反应更精确地跟踪动态对象。

为了防止这种饱和,更新ProbabilitySaturation属性,它限制了最小和最大允许当合并多个观测概率值。这个属性是一个上界和下界log-odds值,使地图更新快速变化的环境。默认的最小和最大的饱和值限制(0.001 - 0.999)。对于动态环境,至少建议值(0.12 - 0.97)。考虑修改这个范围内如果地图没有足够迅速更新多个观测。

另请参阅

||

相关的话题