主要内容

lidarScan

创建存储2-D激光雷达扫描的对象

描述

一个lidarScan对象包含一个二维激光雷达(光探测和测距)扫描的数据。激光雷达扫描是对距离为(范围),由传感器以特定角度测量环境中的障碍物().使用这个激光扫描对象作为其他机器人算法的输入,例如matchScanscontrollerVFH(导航工具箱),或monteCarloLocalization(导航工具箱)

创建

描述

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

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

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

属性

全部展开

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

数据类型:|

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

数据类型:|

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

数据类型:|

激光雷达读数的数量,以标量返回。这个标量也等于这个的长度范围向量或者行数笛卡儿

数据类型:

对象的功能

情节 显示激光或激光雷达扫描读数
removeInvalidData 移除无效的距离和角度数据

例子

全部折叠

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

x = linspace (2, 2);范围= abs((1.5)。* x。^ 2 + 5);范围(45:55)= 3.5;角= linspace(-π/ 2,π/ 2,元素个数(范围);

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

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

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

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

图中包含一个轴对象。轴对象与标题LiDAR扫描包含2个对象的类型线。这些对象表示所有点,有效点。

创建参考激光雷达扫描使用lidarScan.指定范围和角度为向量。

refRanges = 5 * 1 (1300);refAngles = linspace(-π/ 2π/ 2300);refScan = lidarScan (refRanges refAngles);

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

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

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

构成= matchScans (currScan refScan);

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

currScan2 = transformScan (currScan,姿势);次要情节(2,1,1);持有情节(currScan)情节(refScan)标题(“原始扫描”)举行次要情节(2,1,2);持有情节(currScan2)情节(refScan)标题(“对齐扫描”) xlim([0 5])保持

图中包含2个轴对象。标题为“原始扫描”的轴对象1包含2个类型为line的对象。标题为“对齐扫描”的轴对象2包含2个类型为line的对象。

扩展功能

另请参阅

介绍了R2020b