帮助中心帮助中心
选择子映射在地图
ndtMapOut = selectSubmap (ndtMapIn roi)
ndtMapOut = selectSubmap (ndtMapIn、中心、深圳)
例子
ndtMapOut= selectSubmap (ndtMapIn,roi)选择一个submap无损检测中的地图ndtMapIn使用指定的地区的利益roi。
ndtMapOut= selectSubmap (ndtMapIn,roi)
ndtMapOut
ndtMapIn
roi
使用这个函数限制搜索空间定位在使用粗位置估计。
ndtMapOut= selectSubmap (ndtMapIn,中心,深圳)选择一个submap指定的中心中心和大小深圳子映射。
ndtMapOut= selectSubmap (ndtMapIn,中心,深圳)
中心
深圳
全部折叠
加载一个正态分布变换(无损检测)地图从垫文件。
data =负载(“ndtMapParkingLot.mat”);ndtMap = data.ndtMapParkingLot;
从第二个加载点云扫描和姿势估计垫文件。
data =负载(“parkingLotData.mat”);ptCloudScans = data.parkingLotData.ptCloudScans;initPoseEsts = data.parkingLotData.initPoseEsts;
无损检测地图显示。
显示(ndtMap)
改变视角的顶视图。
视图(2)
选择submap围绕第一个估计。
中心= initPoseEsts (1) .Translation;深圳= (70 50 20);ndtMap = selectSubmap (ndtMap,中心、深圳);
为可视化的当前位置和半径的距离阈值更新子映射。
半径= 0.5;distThresh = 15;
循环的点云,在地图上定位,并根据需要更新选中的子映射。
numScans =元素个数(ptCloudScans);为n = 1: numScans ptCloud = ptCloudScans (n);initPose = initPoseEsts (n);poseTranslation = initPose.Translation;[isInside, distToEdge] = isInsideSubmap (ndtMap poseTranslation);submapNeedsUpdate = ~ isInside…% submap外电流构成| |任何(distToEdge (1:2) < distThresh);%当前姿势接近submap边缘如果submapNeedsUpdate ndtMap = selectSubmap (ndtMap poseTranslation, sz);结束%的点云扫描定位地图。currPose = findPose (ndtMap ptCloud initPose);%的位置估计显示为一个圈。pos = [currPose.Translation(1:2)半径);showShape (“圆”、pos、“颜色”,“r”);%停下来查看变化。暂停(0.05)结束
pcmapndt
无损检测地图,作为一个指定pcmapndt对象。
感兴趣的区域,指定为一个6-element向量的形式xminxmaxyminymaxzminzmax]。
中心的submap转换指定为向量的形式xcyc佐]。
submap沿着每个轴的大小,转换指定为向量的形式xszyszzsz]。
无损检测地图,作为一个返回pcmapndt对象与一个更新SelectedSubmap财产。
SelectedSubmap
如果选定的子映射区域地图的限制之外,所选的子映射限制地图限制所描述的XLimits,YLimits,ZLimits的属性pcmapndt对象。
XLimits
YLimits
ZLimits
使用submap规模大到足以包含位置估计的不确定性和传感器的使用范围findPose。一个更大的子映射可以增加计算时间在每个调用findPose函数,但它也可以减少子映射的频率更新。
findPose
isInsideSubmap
显示
showShape
你有一个修改版的这个例子。你想打开这个例子与编辑?
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
选择一个网站翻译内容,看到当地事件和提供。根据你的位置,我们建议您选择:。
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。
联系你当地的办公室