主要内容

lidarScan

创建用于存储2-D LIDAR扫描的对象

描述

一种lidarScan对象包含一个二维激光雷达(光探测和测距)扫描的数据。激光雷达扫描是对距离为(范围)从传感器测量到特定角度的环境中的障碍物(角度)。使用此激光扫描对象作为其他机器人算法的输入,例如匹配Controllervfh., 或者蒙特克洛克罗科化

创建

描述

例子

扫描= lidarScan (范围创造一个lidarScan对象来自范围,表示从LIDAR传感器收集的数据。这范围输入是相同长度的向量,并直接设置为范围角度属性。

扫描= lidarScan (大车创造一个lidarScan对象使用输入笛卡尔坐标作为一个N- 2矩阵。这笛卡儿属性直接从该输入设置。

扫描= lidarScan (Scanmsg.创造一个lidarScan来自A的对象激光器(ROS工具箱)ROS消息对象。

特性

展开全部

LIDAR的范围读数,指定为矢量。这个矢量的长度与角度,并且矢量元素以米为单位测量。

数据类型:单身的|双倍的

激光雷达读数的距离角度,指定为矢量。这个矢量的长度与范围,并且在弧度中测量矢量元素。角度在正面逆时针逆时针测量Z.-轴。

数据类型:单身的|双倍的

激光雷达读数的笛卡尔坐标,作为一个返回(x, y)矩阵。在激光雷达坐标系中,为正X是前进和积极的y是左边。

数据类型:单身的|双倍的

激光雷达读数数量,作为标量返回。该标量也等于范围角度矢量或行的数量笛卡儿

数据类型:双倍的

对象功能

阴谋 显示激光或激光雷达扫描读数
删除invaliddata. 删除无效的范围和角度数据
transformScan 基于相对姿势的变换激光扫描

例子

全部收缩

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

x = linspace(-2,2);范围= abs((1.5)。* x。^ 2 + 5);范围(45:55)= 3.5;Angles = Linspace(-PI / 2,PI / 2,NUMER(范围));

通过指定范围和角度来创建LIDAR扫描。绘制LIDAR扫描的所有点。

扫描= LIDARSCAN(范围,角度);绘图(扫描)

图包含轴。标题激光扫描扫描的轴包含类型线的对象。

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

minrange = 0.1;maxrange = 7;scan2 = removeInvaliddata(扫描,'rangelimits',[minrange maxrange]);抓住plot(Scan2)传奇('所有点'“有效点”

图包含轴。标题激光扫描扫描的轴包含2个类型的型号。这些对象代表所有点,有效点。

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

稀释= 5 * =(1,300);Refangles = Linspace(-PI / 2,PI / 2,300);REFSCAN = LIDARSCAN(刷新,再生);

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

变换扫描= TransformScan(Refscan,[0.5 0.2 0]);

将激光扫描旋转20度。

RotateCan = TransformScan(Refscan,[0,0,Deg2rad(20)]);

使用引用LIDAR扫描使用lidarScan(机器人系统工具箱)。指定范围和角度作为向量。

稀释= 5 * =(1,300);Refangles = Linspace(-PI / 2,PI / 2,300);REFSCAN = LIDARSCAN(刷新,再生);

使用transformScan(机器人系统工具箱)函数,生成第二个激光扫描扫描X,Y.偏置的(0.5,0.2)

Curscan = TransformScan(Refscan,[0.5 0.2 0]);

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

POSE = MatchScans(Curscan,Refscan);

使用transformScan使用相对姿态差异将第二扫描转换为第一扫描的帧来对准扫描的功能。绘制原始扫描和对齐的扫描。

Curscan2 = TransportScan(Curscan,Pose);子图(2,1,1);抓住绘图(Curscan)情节(REFSCAN)标题('原始扫描')举行次要情节(2,1,2);抓住绘图(Curscan2)情节(REFSCAN)标题(“对齐扫描”) xlim([0 5])保持

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

扩展能力

在R2019B中介绍