主要内容

robotLidarPointCloudGenerator

从网格生成点云

自从R2022a

描述

robotLidarPointCloudGenerator系统对象™从统计模拟激光雷达传感器生成检测。系统对象使用统计传感器模型来模拟添加随机噪声的激光雷达探测。所有的检测都是相对于车载传感器的坐标框架。您可以使用robotLidarPointCloudGenerator对象创建的robotSensor,包括静态网格、机器人平台和传感器。

生成激光雷达点云:

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

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

有关系统对象如何工作的详细信息,请参见什么是系统对象?

创建

描述

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

例子

激光雷达= robotLidarPointCloudGenerator (名称=值使用一个或多个名称-值对参数设置属性。例如,robotLidarPointCloudGenerator (UpdateRate = 100, HasNoise = false)创建了一个激光雷达点云生成器,以100 Hz的更新速率报告检测,无噪声。

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放功能解锁它们。

如果属性为可调,您可以随时更改其值。

有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计

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

例子:UpdateRate = 100

数据类型:|

激光雷达传感器的最大探测距离,以米为单位指定为正实标量。传感器检测不到超出这个范围的物体。

例子:MaxRange = 100

数据类型:|

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

例子:RangeAccuracy = 0.001

数据类型:|

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

例子:AzimuthResolution = 0.6000

数据类型:|

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

例子:ElevationResolution = 0.6000

数据类型:|

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

例子:AzimuthLimits = (-60 100)

数据类型:|

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

例子:ElevationLimits = (-60 100)

数据类型:|

将噪声添加到激光雷达传感器测量中,指定为真正的.将此属性设置为真正的为传感器测量增加噪声。否则,测量结果没有噪声。传感器向每个点添加随机高斯噪声,其均值等于零,标准偏差由RangeAccuracy财产。

例子:HasNoise = false

数据类型:逻辑

将生成的数据输出为组织好的点云位置,指定为真正的

当此属性设置为真正的,位置的属性pointCloud对象是——- - - - - -N有组织点云的-by-3矩阵。是多少个仰角通道,和N是方位角通道数。

当此属性设置为,位置的属性pointCloud对象是-by-3矩阵的无组织的点列表。是仰角通道数和方位角通道数的乘积。

例子:HasOrganizedOutput = false

数据类型:逻辑

使用

描述

例子

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

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

输入参数

全部展开

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

目标对象数据

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

例子:struct("Mesh",scale(extendedObjectMesh('长方体'),[100 100 2]),"Position",[0 0 -10],"Orientation",四元数([1 00 00]))

数据类型:结构体

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

例子:0

数据类型:|

输出参数

全部展开

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

生成点云的有效时间,作为逻辑返回0)或1真正的).isValidTime0的倍数时,请求的更新时间updateRate属性值。

数据类型:逻辑

对象的功能

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

发行版(obj)

全部展开

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

例子

全部折叠

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

创建传感器模型

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

lidar = robotLidarPointCloudGenerator(HasOrganizedOutput=false);

创建地板

使用extendedObjectMesh对象为目标对象创建网格。定义目标对象相对于传感器框架的位置和方向。

目标= struct(“网”、规模(extendedObjectMesh (“长方体”),[100 100 2]),...“位置”,[0 0 -10],...“定位”,四元数([1 0 0 0]));

从地板生成点云

ptCloud =激光雷达(目标,0);

可视化

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

表演(翻译(target.Mesh target.Position));持有scatter3 (ptCloud.Location (: 1) ptCloud.Location (:, 2), ptCloud.Location (:, 3))

图中包含一个轴对象。axis对象包含patch和scatter类型的2个对象。

版本历史

R2022a中引入