主要内容

显示

绘图扫描和机器人姿势

描述

例子

显示(slamObj绘制添加到输入lidarSLAM物体与激光雷达叠加在其底层姿态图中。

显示(slamObj、名称、值)使用名称,值对参数。例如,“姿势”,“关闭”中关闭底层姿态图的显示slamObj

=显示(___返回使用任何前面语法绘制的激光雷达SLAM数据的轴句柄。

例子

全部折叠

使用一个lidarSLAM对象迭代添加和比较激光雷达扫描,并构建机器人轨迹的优化姿态图。要从相关的姿势和扫描中获取占用图,请使用buildMap函数。

加载数据并设置SLAM算法

的单元格数组lidarScan对象。激光雷达扫描是由ClearPath Robotics公司的Husky®机器人在停车场收集的。通常情况下,激光雷达的扫描频率很高,而且SLAM不需要每次扫描。因此,通过只选择每40次扫描来对扫描进行采样。

负载garage_fl1_southend.mat扫描扫描=扫描(1:40:结束);

为了建立SLAM算法,需要指定激光雷达的范围、地图分辨率、环路闭合阈值和搜索半径。针对特定的机器人和环境调整这些参数。创建lidarSLAM对象使用这些参数。

maxRange = 19.2;%米分辨率= 10;每米细胞百分比slamObj = lidarSLAM(分辨率,maxRange);slamObj。LoopClosureThreshold = 360;slamObj。LoopClosureSearchRadius = 8;

迭代添加扫描

使用一个循环,添加扫描到SLAM对象。对象使用扫描匹配将每个添加的扫描与之前添加的扫描进行比较。为了改进映射,对象会在检测到循环闭包时优化姿态图。每10次扫描,显示存储的姿势和扫描。

i = 1:数字(扫描)addScan(slamObj,扫描{i});如果rem(i,10) == 0 show(slamObj);结束结束

查看占用率图

将所有扫描添加到SLAM对象后,构建一个occupancyMap通过调用映射buildMap扫描和摆姿势。使用与SLAM对象相同的映射分辨率和最大范围。

[scansSLAM,pose] = scansandpose (slamObj);occMap = buildMap(扫描slam,姿势,分辨率,maxRange);图显示(occMap)“车库占用图”

输入参数

全部折叠

激光雷达SLAM对象,指定为lidarSLAM对象。对象包含SLAM算法参数、传感器数据和用于构建地图的底层姿态图。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:“姿势”,“关闭”

用于绘制姿态图的轴,指定为由逗号分隔的对组成“父”或者UIAxes对象。看到uiaxes

显示激光雷达姿态,由逗号分隔的对组成“姿势”而且“上”“关闭”

输出参数

全部折叠

用于绘制地图的坐标轴,返回为UIAxes对象。看到uiaxes

版本历史

R2019b引入

Baidu
map