lidarSensor
模拟激光雷达传感器
描述
的lidarSensor
系统对象™模拟安装在自我车辆上的激光雷达传感器,并输出给定场景的点云数据。生成的数据是基于传感器姿态和场景中出现的演员的自我车辆坐标系。您可以使用drivingScenario
(自动驾驶工具箱)对象来创建包含参与者和轨迹的场景,然后使用lidarSensor
对象。
使用此对象模拟激光雷达传感器:
创建
lidarSensor
对象并设置其属性。调用带有参数的对象,就像调用函数一样。
要了解更多关于System对象如何工作的信息,请参见什么是系统对象?
创建
描述
创建一个激光雷达
= lidarSensorlidarSensor
具有默认属性值的对象。您可以使用该对象为给定的3d环境生成激光雷达点云数据。
使用一个或多个名称-值参数设置对象的属性。例如,激光雷达
= lidarSensor (名称=值
)lidarSensor (UpdateRate = 0.2)
创建一个lidarSensor
对象生成点云检测0.2
秒。
属性
除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放
函数解锁它们。
如果属性是可调,您可以随时更改其值。
有关更改属性值的更多信息,请参见在MATLAB中使用系统对象设计系统.
SensorIndex
- - - - - -传感器的唯一标识符
1
(默认)|正整数
传感器的唯一标识符,指定为正整数。在多传感器系统中,该指标将不同的传感器彼此区分开来。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
HostID
- - - - - -ActorID
自我的载体
1
(默认)|正整数
ActorID
自我载体的,被指定为正整数。自我载具是装着传感器的行为人,而且ActorID
是参与者的唯一标识符。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
UpdateRate
- - - - - -连续传感器更新之间的时间间隔
0.1
(默认)|积极的标量
两个连续传感器更新之间的时间间隔,指定为正标量。的lidarSensor
对象按此属性指定的间隔生成新的检测。该值必须是模拟时间的整数倍。在更新间隔之间从传感器请求的更新不包含检测。单位以秒为单位。
数据类型:单
|双
位置
- - - - - -传感器中心位置
[1.5 0 1.6]
(默认)|[xy高度]
传感器中心位置,指定为形式为[的三元素矢量xy高度].的价值x而且y表示传感器相对于的位置x- - -y自我车辆坐标系的-坐标轴。高度是传感器离地面的高度。默认值定义了安装在轿车车顶前缘的激光雷达传感器。单位是米。
数据类型:单
|双
取向
- - - - - -传感器定位
[0 0 0]
(默认)|形式的三元向量[卷球场偏航]
传感器方向,指定为形式为[卷球场偏航].这些值是关于自我交通工具坐标系的。单位以度为单位。
卷-滚转角度是围绕前后轴的旋转角度,即x自我车辆坐标系的-轴。正面的滚转角度相当于顺时针方向的旋转x设在。
球场-俯仰角是围绕左右轴旋转的角度,这是y自我车辆坐标系的-轴。正面的滚转角度相当于顺时针方向的旋转y设在。
偏航-偏航角是围绕垂直轴旋转的角度,即z自我车辆坐标系的-轴。正面的滚转角度相当于顺时针方向的旋转z设在。当从上面观看车辆时,这个旋转呈现逆时针方向。
数据类型:单
|双
MaxRange
- - - - - -传感器最大检测范围
120
(默认)|积极的标量
激光雷达传感器的最大探测范围,指定为正标量,单位为米。传感器无法检测超出这个范围的道路和行为者。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
RangeAccuracy
- - - - - -传感器量程测量精度
0.002
(默认)|积极的标量
传感器量程测量的精度,指定为正标量。单位是米。
数据类型:单
|双
HasNoise
- - - - - -点云数据增加了噪音
真正的
(默认)|假
点云数据添加了噪声,指定为真正的
或假
.当设置为真正的
,该函数向点云中的每个点添加随机高斯噪声RangeAccuracy
属性作为一个标准偏差。否则,数据无噪声。
数据类型:逻辑
HasOrganizedOutput
- - - - - -组织输出点云
真正的
(默认)|假
组织输出点云,指定为真正的
或假
.
真正的
-函数返回表单的有组织的点云米——- - - - - -N3,米高程通道的数量是多少N是点云中的方位角通道数。假
-函数返回表单的无组织点云P3,P是点云中的点数。
数据类型:逻辑
AzimuthResolution
- - - - - -激光雷达传感器的方位分辨率
0.16
(默认)|积极的标量
激光雷达传感器的方位角分辨率,指定为度数为正的标量。
数据类型:单
|双
ElevationResolution
- - - - - -激光雷达传感器的高程分辨率
1.25
(默认)|积极的标量
激光雷达传感器的仰角分辨率,指定为度数为单位的正标量。
数据类型:单
|双
AzimuthLimits
- - - - - -激光雷达传感器的方位极限
(-180 180)
(默认)|双元素向量
激光雷达传感器的方位角极限,指定为形式为[最小值马克斯].取值范围必须在此范围内(-180、180)
,马克斯必须大于最小值.单位以度为单位。
数据类型:单
|双
ElevationLimits
- - - - - -激光雷达传感器的海拔限制
20 [-20]
(默认)|双元素向量
激光雷达传感器的海拔极限,指定为形式为[的双元矢量最小值马克斯].取值范围必须在此范围内(-180、180)
,马克斯必须大于最小值.单位以度为单位。
数据类型:单
|双
ElevationAngles
- - - - - -激光雷达传感器的仰角
[]
(默认)|N元向量
激光雷达传感器的仰角,指定为N元向量。N为高程通道数。取值范围必须在此范围内(-180、180)
.单位以度为单位。
数据类型:单
|双
ActorProfiles
- - - - - -演员的身体特征
[]
(默认)|结构|l-element数组的结构
场景中演员的身体特征,指定为结构或l-element数组的结构。l是场景中演员的数量。
若要为驾驶场景生成参与者配置文件结构数组,请使用actorProfiles
(自动驾驶工具箱)函数。您也可以手动创建这些结构。该表显示有效的结构字段。
场 | 描述 | 价值 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ActorID |
参与者的唯一标识符。在有多个参与者的场景中,这个值将区分不同的参与者。 | 正整数 | ||||||||||||||
ClassID |
参与者的用户定义分类ID。
|
积极的标量 | ||||||||||||||
长度 |
演员的长度,以米为单位。 | 积极的标量 | ||||||||||||||
宽度 |
演员的宽度,以米为单位。 | 积极的标量 | ||||||||||||||
高度 |
演员的身高,以米为单位。 | 积极的标量 | ||||||||||||||
OriginOffset |
动作者的旋转中心与几何中心的偏移量。旋转中心,或原点,位于演员的底部中心。对于车辆来说,旋转中心是后轴中心下方的地面点。 |
这种形式的三元素向量 |
||||||||||||||
MeshVertices |
网格表示中参与者的顶点。 | N-by-3的数字矩阵,其中每一行定义了三维空间中的一个顶点。 | ||||||||||||||
MeshFaces |
在网格表示的演员的脸。 | 米-by-3的整数矩阵,其中每一行表示一个由顶点id定义的三角形,顶点id是MeshVertices . |
||||||||||||||
MeshTargetReflectances |
行动者的每个三角形面的材料反射率。 | 米-by-1数字向量,其中米是actor的三角形面数。每个值都必须在该范围内[0, 1] . |
使用
描述
输入参数
tgtPoses
- - - - - -演员在现场摆姿势
l-结构的元素数组
演员在场景中摆姿势,指定为l-结构的元素数组。每个结构都对应一个参与者。l使用的参与者数量。
方法可以生成此结构actorPoses
(自动驾驶工具箱)函数。您也可以手动创建这些结构。每个结构都有以下字段:
场 | 描述 | 价值 |
---|---|---|
ActorID |
参与者的唯一标识符。 | 积极的标量 |
位置 |
演员相对于自我交通工具坐标系的位置,单位是米。 | 形式为[的向量X y z ] |
速度 |
速度(V),单位是米每秒,沿着x- - - - - -,y- - - - - -,z——方向。 | 形式为[的向量 默认值: |
卷 |
演员滚动角度的角度。 | 数字标量 默认值: |
球场 |
演员的俯仰角以度为单位。 | 数字标量 默认值: |
偏航 |
演员的偏航角度,以度为单位。 | 数字标量 默认值: |
AngularVelocity |
角速度(ω),以度/秒为单位,沿着x- - - - - -,y- - - - - -,z——方向。 | 形式为[的向量 默认值: |
时间
- - - - - -仿真时间
积极的标量
模拟时间,指定为正标量。的lidarSensor
对象按指定的间隔生成新的检测UpdateRate
财产。的值UpdateRate
属性必须是模拟时间间隔的整数倍。更新间隔之间从传感器请求的更新不会生成点云。
数据类型:单
|双
输出参数
ptCloud
-点云数据
pointCloud
对象
从场景生成的点云数据,返回为pointCloud
对象。
isValidTime
-有效的模拟时间
0
|1
有效的模拟时间,返回为逻辑0
(假
)或1
(真正的
).取值为0
控件指定的更新间隔之间请求的更新UpdateRate
财产。
集群
-演员分类数据
米——- - - - - -N-by-2 array |P2矩阵
场景中演员的分类数据,返回为米——- - - - - -N-by-2数组用于有组织的点云或P-by-2矩阵的无组织点云。第一列包含ActorID
S,第二列包含ClassID
S。米,N组织的点云中的行数和列数和P是无组织点云中的点数。
对象的功能
要使用对象函数,请将System对象指定为第一个输入参数。例如,释放名为obj
,使用以下语法:
发行版(obj)
例子
生成激光雷达点云数据
加载合成场景数据,其中包含使用drivingScenario
(自动驾驶工具箱)对象添加到工作区中。
sceneData = load(“scene_data.mat”);sceneActorProfiles = scendata . actorprofiles;scenetargetpose = scenedata . targetpose;
加载目标材料反射率数据。
reflecancedata = load(“scene_target_reflectances.mat”);targetReflectance = reflecancedata . targetReflectance;
定义每个参与者的反射率。
为i = 1:numel(sceneActorProfiles) sceneActorProfiles(i)。meshtargetreflecances = targetReflectance{i};结束
创建一个lidarSensor
系统对象,并为该对象定义参与者概要文件。
激光雷达= lidarSensor(AzimuthResolution=0.5);激光雷达。ActorProfiles = sceneActorProfiles;
创建一个pcplayer
对象来可视化激光雷达传感器点云检测。
Player = pcplayer([-100 100],[-20 20],[0 5]);
在有效的模拟时间生成并可视化点云检测。
为i = 1:5:numel(scenetargetposed)如果(~ player.isOpen)打破结束[ptCloud,isValid] = lidar(scenetargetpose {i},i*0.1);如果(isValid)视图(球员,ptCloud)结束结束
版本历史
在R2022a中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。