主要内容

uavLidarPointCloudGenerator

从网格生成点云

描述

uavLidarPointCloudGenerator系统对象™从一个统计模拟激光雷达传感器产生检测。系统对象使用统计传感器模型来模拟添加随机噪声的激光雷达探测。所有的检测都是关于车载传感器的坐标系。你可以使用uavLidarPointCloudGenerator对象,使用uavSensor,包括静态网格、无人机平台和传感器。

生成激光雷达点云:

  1. 创建uavLidarPointCloudGenerator对象,并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

要了解更多关于System对象如何工作的信息,请参见什么是系统对象?

创建

描述

例子

激光雷达= uavLidarPointCloudGenerator创建一个统计传感器模型,为激光雷达生成点云。该传感器模型将具有默认属性。

激光雷达= uavLidarPointCloudGenerator(名称,值)使用一个或多个名称-值对设置属性。例如,uavLidarPointCloudGenerator (UpdateRate, 100,“HasNoise”,0)创建一个激光雷达点云发生器,以100赫兹的更新速度报告检测,无噪声。

属性

全部展开

除非另有说明,属性是nontunable,这意味着您不能在调用对象之后更改它们的值。对象在调用时锁定,而释放函数打开它们。

如果一个属性是可调,您可以随时更改它的值。

有关更改属性值的更多信息,请参见在MATLAB中使用系统对象进行系统设计

激光雷达传感器的更新速率,指定为正实标量(Hz)。此属性设置新检测发生的频率。

例子:20.

数据类型:

传感器的最大检测范围,指定为正实标量。传感器不能检测超出此范围的物体。单位是米。

例子:120

数据类型:

距离测量的精度,指定为正的实标量,单位为米。此属性设置传感器范围测量的一个标准偏差精度。

例子:0.001

数据类型:|

激光雷达传感器的方位分辨率,指定为正数实标量。方位角分辨率定义了激光雷达传感器可以区分两个目标的方位角上的最小距离。

例子:0.6000

数据类型:|

激光雷达传感器的仰角分辨率,指定为正实标量,单位为度。仰角分辨率定义了激光雷达能够区分两个目标的最小仰角距离。

例子:0.6000

数据类型:|

激光雷达的方位限制,指定为形式为[最小值马克斯].单位是度。

例子:(-60 100)

数据类型:|

激光雷达的高度限制,指定为格式为[最小值马克斯].单位是度。

例子:(-60 100)

数据类型:|

将噪声添加到激光雷达传感器测量中,指定为真正的.将此属性设置为真正的增加传感器测量的噪音。否则,测量就没有噪声。

例子:

数据类型:逻辑

输出生成的数据作为组织点云,指定为真正的.将此属性设置为真正的输出有组织的点云。否则,输出是无组织的。

例子:

数据类型:逻辑

使用

描述

ptCloud=激光雷达(tgtsimTime生成一个激光雷达点云对象ptCloud从指定的目标对象,tgt,在指定的模拟时间simTime

ptCloudisValidTime] =激光雷达(tgtsimTime此外回报isValidTime哪一个指定如果指定simTime是传感器更新间隔的倍数(1/UpdateRate).

输入参数

全部展开

目标对象数据,指定为结构或结构数组。每个结构对应一个网格。该表显示了对象用于生成检测的属性。

目标对象数据

描述
一个extendedObjectMesh对象表示目标对象在其自身坐标系中的几何形状。
位置 定义目标相对于传感器坐标系的坐标位置的三元素向量。
取向 一个四元数物体或3 × 3矩阵,包含欧拉角,定义目标相对于传感器框架的方向。

电流模拟时间,指定为正实标量。的激光雷达对象定期调用激光雷达点云发生器,以按照定义的频率生成新的点云updateRate财产。价值UpdateRate属性必须是模拟时间间隔的整数倍。在更新间隔之间从传感器请求的更新不会生成点云。单位是秒。

输出参数

全部展开

点云数据,返回为pointCloud对象。

生成点云的有效时间,按逻辑返回0)或1).isValidTime0当请求的更新时间不是updateRate属性值。

数据类型:逻辑

对象的功能

要使用对象函数,请指定System对象作为第一个输入参数。例如,释放名为system的对象的系统资源obj,使用下面的语法:

发行版(obj)

全部展开

一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 使内部状态复位系统对象

例子

全部折叠

这个例子展示了如何使用统计激光雷达传感器模型从一个网格生成点云。

创建传感器模型

创建一个统计传感器模型,激光雷达,使用uavLidarPointCloudGenerator系统对象。

激光雷达= uavLidarPointCloudGenerator (“HasOrganizedOutput”、假);

创建地板

使用extendedObjectMesh对象来为目标对象创建网格。

tgt。网= scale(extendedObjectMesh(“长方体”), [100 100 2]);

定义目标对象相对于传感器帧的位置。

tgt。Position = [0 0 -10];

定义目标相对于传感器帧的方向。

tgt。方向=四元数([1 0 0]);

从地板生成点云

ptCloud =激光雷达(tgt, 0);

可视化

使用翻译函数将对象网格转换到其指定的位置并使用显示函数来形象化它。使用scatter3函数来绘制存储在其中的点云ptCloud。

图显示(翻译(tgts.Mesh tgts.Position));持有scatter3 (ptCloud.Location (: 1) ptCloud.Location (:, 2),...ptCloud.Location (:, 3));

图中包含一个轴对象。axis对象包含两个类型为patch, scatter的对象。

另请参阅

介绍了R2020b