主要内容

lidarScan

创建用于存储二维激光雷达扫描的对象

描述

一个lidarScan对象包含单个2-D激光雷达(光探测和测距)扫描的数据。激光雷达扫描是对距离为(范围)以特定角度从传感器测量到环境中的障碍物().使用此激光扫描对象作为其他机器人算法的输入,如matchScanscontrollerVFH,或monteCarloLocalization

创建

描述

例子

扫描= lidarScan (范围创建一个lidarScan对象的范围而且,表示从激光雷达传感器收集的数据。的范围而且输入是相同长度的向量,并直接设置为范围而且属性。

扫描= lidarScan (创建一个lidarScan对象使用输入笛卡尔坐标作为n2矩阵。的笛卡儿属性直接从此输入设置。

扫描= lidarScan (scanMsg创建一个lidarScan对象的提升(ROS工具箱)ROS消息对象。

属性

全部展开

激光雷达的距离读数,以米为单位的矢量。这个向量的长度等于,矢量元素以米为单位。

数据类型:|

激光雷达的距离读数角度,指定为矢量。这个向量的长度等于范围,矢量元素以弧度为单位。角度是围绕正极逆时针方向测量的z设在。

数据类型:|

激光雷达读数的笛卡尔坐标,返回为(x, y)矩阵。在激光雷达坐标范围内,是正确的x是积极向上的y是在左边。

数据类型:|

激光雷达读数的个数,作为标量返回。标量也等于向量的长度范围而且向量或者其中的行数笛卡儿

数据类型:

对象的功能

情节 显示激光或激光雷达扫描读数
removeInvalidData 删除无效的范围和角度数据
transformScan 基于相对姿态的激光扫描变换

例子

全部折叠

指定激光雷达数据为距离和角度的向量。这些值包括传感器范围之外的读数。

X = linspace(-2,2);范围= abs((1.5).*x。^2 + 5);range (45:55) = 3.5;角度= linspace(-pi/2,pi/2,numel(ranges));

通过指定范围和角度创建激光雷达扫描。画出激光雷达扫描的所有点。

扫描= lidarScan(范围,角度);情节(扫描)

图中包含一个轴对象。标题为LiDAR Scan的axis对象包含一个类型为line的对象。

根据指定的最小值和最大值范围删除无效点。

minRange = 0.1;maxRange = 7;scan2 = removeInvalidData(扫描,“RangeLimits”, (minRange maxRange]);持有情节(scan2)传说(“点”“有效点”

图中包含一个轴对象。标题为LiDAR Scan的坐标轴对象包含2个类型为line的对象。这些对象表示所有点,有效点。

创建一个lidarScan对象。将范围和角度指定为向量。

refRanges = 5*ones(1300);refAngles = linspace(-pi/2,pi/ 2300);refScan = lidarScan(refRanges,refAngles);

翻译激光扫描由一个(x, y)偏置的(0.5, 0.2)

transformScan = transformScan(refScan,[0.5 0.2 0]);

将激光扫描旋转20度。

rotateScan = transformScan(refScan,[0,0,deg2rad(20)]);

创建一个参考激光雷达扫描使用lidarScan(机器人系统工具箱).指定范围和角度为向量。

refRanges = 5*ones(1300);refAngles = linspace(-pi/2,pi/ 2300);refScan = lidarScan(refRanges,refAngles);

使用transformScan(机器人系统工具箱)函数,生成第二个激光雷达扫描在x, y偏置的(0.5, 0.2)

currScan = transformScan(refScan,[0.5 0.2 0]);

匹配参考扫描和第二扫描,估计它们之间的位姿差异。

pose = matchScans(currScan,refScan);

使用transformScan函数通过使用相对位姿差将第二个扫描转换为第一个扫描的帧来对齐扫描。绘制原始扫描和对齐扫描。

currScan2 = transformScan(currScan,pose);次要情节(2,1,1);持有图(currScan)“原始扫描”)举行次要情节(2,1,2);持有图(currScan2)“对齐扫描”xlim([0 5]

图中包含2个轴对象。标题为Original Scans的Axes对象1包含2个类型为line的对象。标题为“对齐扫描”的axis对象2包含2个类型为line的对象。

扩展功能

版本历史

R2019b引入