主要内容

场景的读者

将驾驶场景读入模型

  • 库:
  • 自动驾驶工具箱/驾驶场景和传感器建模

  • 场景读写块

描述

场景的读者类创建的场景文件中读取道路和参与者驾驶场景设计应用程序或从drivingScenario对象。该块在自我载体的坐标系统或场景的世界坐标中输出演员的姿势。您还可以输出车道边界或输出自我车辆姿态,以供在3D模拟环境中使用。该模块还允许输出自我车辆状态,其中包括加速度测量,用于传感器模型。

为了从输出的参与者姿态和车道边界生成对象和车道边界检测,将姿态和边界输出传递给传感器块。使用这些传感器生成的合成检测来测试传感器融合算法、跟踪算法和其他自动驾驶辅助系统(ADAS)算法的性能。要可视化这些算法的性能,请使用鸟瞰的范围

方法的输入,可以从场景中读取自我载体,也可以指定在模型中定义的自我载体场景的读者块。使用此选项可测试闭环车辆控制器算法,如自动紧急制动(AEB)、车道保持辅助(LKA)或自适应巡航控制(ACC)。

限制

  • 场景的读者块不从场景文件中读取传感器数据驾驶场景设计在Simulink中重现传感器金宝app®,在app中,打开包含传感器的场景文件。然后,从应用程序工具条中选择出口>导出传感器Simulink模金宝app型.将生成的传感器块复制到现有模型中。另外,选择出口>导出Simul金宝appink模型并从生成的数据开始一个新的模型场景的读者块和传感器块。

  • 大型道路网络,包括ASAM OpenDRIVE®道路网络可能需要几分钟才能读取到模型中。

港口

输入

全部展开

自我车辆姿态,指定为包含MATLAB结构的Simulink总线。金宝app

结构必须包含这些字段。

描述
ActorID

场景定义的参与者标识符,指定为正整数。

位置

参与者的位置,指定为形式为[的实值向量xyz].单位是米。

速度

速度(v)的演员x-y- - - - - -,z-directions,指定为形式为[的实值向量vxvyvz].单位是米每秒。

演员的滚动角度,指定为实值标量。单位是度。

球场

actor的俯仰角,指定为实值标量。单位是度。

偏航

动器的偏航角,指定为实值标量。单位是度。

AngularVelocity

角速度(ω)的演员x-,y- - - - - -,z-directions,指定为形式为[的实值向量ωxωyωz].单位是度每秒。

在将角色从自我运载工具坐标转换为世界坐标以供在3D模拟环境中使用时,输出自我运载工具姿态。例如,请参见从虚幻引擎仿真环境中可视化传感器数据

依赖关系

要启用该端口,请按如下顺序设置参数:

  1. 设置角色输出的坐标系统参数车辆坐标

  2. 设置自我载体的来源参数输入端口

输出

全部展开

场景参与者姿势,作为包含MATLAB结构的Simulink总线返回。金宝app

该结构具有这些字段。

描述 类型
NumActors 演员人数 非负整数
时间 当前模拟时间 实值标量
演员 演员的姿势 NumActors-length演员姿态结构数组

每个演员的姿势结构演员有这些字段。

描述
ActorID

场景定义的参与者标识符,指定为正整数。

位置

参与者的位置,指定为形式为[的实值向量xyz].单位是米。

速度

速度(v)的演员x-y- - - - - -,z-directions,指定为形式为[的实值向量vxvyvz].单位是米每秒。

演员的滚动角度,指定为实值标量。单位是度。

球场

actor的俯仰角,指定为实值标量。单位是度。

偏航

动器的偏航角,指定为实值标量。单位是度。

AngularVelocity

角速度(ω)的演员x-,y- - - - - -,z-directions,指定为形式为[的实值向量ωxωyωz].单位是度每秒。

自我载体的姿态被排除在演员数组中。

要从块中返回参与者姿势,必须运行整个驾驶场景模拟直至完成。

场景车道边界,作为包含MATLAB结构的Simulink总线返回。金宝app

该结构具有这些字段。

描述 类型
NumLaneBoundaries 车道边界数 非负整数
时间 当前模拟时间 真正的标量
LaneBoundaries 车道边界从最左边的车道开始相对于自我车辆。 NumLaneBoundaries车道边界结构的长度数组

各车道边界结构在LaneBoundaries有这些字段。

描述

坐标

车道边界坐标,指定为实值N-by-3矩阵,其中N是车道边界坐标的个数。车道边界坐标定义了沿道路中心,在距离车辆指定纵向距离的边界上的点的位置。

  • 在MATLAB中,通过使用“XDistance”的名称-值对参数laneBoundaries函数。

  • 属性指金宝app定这些距离计算边界距离自我载具(m)参数。场景的读者块或用于计算车道边界的与父车道的距离参数。模拟三维视觉检测生成器块。

这个矩阵还包括与自我飞行器零距离的边界坐标。这些坐标分别位于自我车辆原点的左侧和右侧,原点位于后轴的中心下方。单位是米。

曲率

车道边界的每一行都有曲率坐标矩阵,指定为实值N1的向量。N是车道边界坐标的个数。单位是弧度每米。

CurvatureDerivative

的每一行车道边界曲率的导数坐标矩阵,指定为实值N1的向量。N是车道边界坐标的个数。单位是弧度每平方米。

HeadingAngle

初始车道边界航向角,指定为实标量。车道边界的航向角相对于车辆的航向。单位是度。

LateralOffset

车辆自身位置与车道边界的横向偏移,指定为实标量。对自我车辆左侧车道边界的偏移为正。自我载体右边的偏移量是负的。单位是米。在这幅图中,自我车辆偏离左车道1.5米,偏离右车道2.1米。

自我车辆在行驶车道

BoundaryType

车道边界标记的类型,指定为以下值之一:

  • “无名”-不存在物理车道标志

  • “固体”-单行不折线

  • “冲”-单线虚线车道标志

  • “DoubleSolid”-两条完整的线

  • “DoubleDashed”-两条虚线

  • “SolidDashed”-实线在左边,虚线在右边

  • “DashedSolid”-虚线在左边,实线在右边

强度

车道边界标记的饱和强度,指定为从0到1的实标量。值为0对应于颜色完全不饱和的标记。标记是灰色的。值为1对应于颜色完全饱和的标记。

宽度

车道边界宽度,指定为正实标量。在双线车道标记中,两行和行之间的间距使用相同的宽度。单位是米。

长度

虚线中的虚线长度,指定为正实标量。在双线车道标记中,两条线使用相同的长度。

空间

虚线中虚线之间的间隔长度,指定为正实标量。在虚线双线车道标记中,两条线使用相同的空间。

返回的车道边界结构的数目取决于输出的车道边界参数值。

依赖关系

要启用该端口,请按如下顺序设置参数:

  1. 设置角色输出的坐标系统参数车辆坐标

  2. 设置输出的车道边界参数自我车道边界所有车道边界

自我车辆姿态,作为包含MATLAB结构的Simulink总线返回金宝app。

结构必须包含这些字段。

描述
ActorID

场景定义的参与者标识符,指定为正整数。

位置

参与者的位置,指定为形式为[的实值向量xyz].单位是米。

速度

速度(v)的演员x-y- - - - - -,z-directions,指定为形式为[的实值向量vxvyvz].单位是米每秒。

演员的滚动角度,指定为实值标量。单位是度。

球场

actor的俯仰角,指定为实值标量。单位是度。

偏航

动器的偏航角,指定为实值标量。单位是度。

AngularVelocity

角速度(ω)的演员x-,y- - - - - -,z-directions,指定为形式为[的实值向量ωxωyωz].单位是度每秒。

依赖关系

要启用该端口,请按如下顺序设置参数:

  1. 设置角色输出的坐标系统参数车辆坐标

  2. 设置自我载体的来源参数场景

  3. 选择输出自我车辆姿态参数。

自我车辆状态,作为包含MATLAB结构的Simulink总线返回。金宝app

结构必须包含这些字段。

描述
位置

参与者的位置,指定为形式为[的实值向量xyz].单位是米。

速度

速度(v)的演员x-y- - - - - -,z-directions,指定为形式为[的实值向量vxvyvz].单位是米每秒。

取向

参与者的方向,指定为[的实值向量]横摇俯仰偏航)的角度。单位是度。

AngularVelocity

角速度(ω)的演员x-,y- - - - - -,z-directions,指定为形式为[的实值向量ωxωyωz].单位是度每秒。

加速度

加速度(一个)的演员x-y- - - - - -,z-directions,指定为形式为[的实值向量一个x一个y一个z].单位是米每秒的平方。

依赖关系

要启用该端口,请按如下顺序设置参数:

  1. 设置角色输出的坐标系统参数车辆坐标

  2. 设置自我载体的来源参数场景

  3. 选择输出自我车辆状态参数。

参数

全部展开

场景

驱动场景的来源,指定为以下选项之一:

  • 从文件-在驱动场景设计器文件名参数保存的场景文件的名称驾驶场景设计应用程序。

  • 从工作空间-在MATLAB或模型工作区变量名参数时,指定MATLAB或模型工作区变量的名称drivingScenario对象。

场景文件名,指定为MATLAB搜索路径上的场景文件或场景文件的完整路径。场景文件必须是从驾驶场景设计app。如果自我载体的来源参数设置为场景,那么这个场景必须包含一个自我载体。否则,块在模拟过程中返回错误。

如果指定的场景文件包含传感器,块将忽略它们。若要在模型中包括来自场景的传感器,请参见提示

默认场景文件显示,一辆自我车辆在一条笔直的双车道道路上向北行驶,另一辆车辆在相反的车道上向南行驶。

若要将场景文件添加到MATLAB搜索路径,请使用目录函数。例如,这段代码添加了包含预先构建的Euro NCAP的文件夹集®场景到MATLAB搜索路径。

Path = fullfile(matlabroot,“工具箱”“共享”“drivingscenario”...“PrebuiltScenarios”“EuroNCAP”);目录genpath(路径))

驱动场景设计器文件名参数,然后可以指定位于这些文件夹中的任何场景的名称,而不必指定完整的文件路径。例如:AEB_PedestrianChild_Nearside_50width.mat

在模型中使用完场景后,可以使用rmpath函数。

rmpath (genpath(路径))

依赖关系

若要启用此参数,请设置驾驶场景来源参数从文件

场景变量名,指定为包含有效的MATLAB或模型工作区变量的名称drivingScenario对象。如果在MATLAB和模型工作空间中都出现了同名的场景变量,则块使用模型工作空间中定义的变量。

如果自我载体的来源参数设置为场景,则drivingScenario对象必须包含自我载体。来指定对象中的哪个行动者是自我载体,在自我车辆ActorID参数,指定ActorID该参与者的属性值。

默认变量名,场景的默认名称drivingScenario对象生成的MATLAB函数,从驾驶场景设计默认情况下,该变量不包含在MATLAB或模型工作区中。

依赖关系

若要启用此参数,请设置驾驶场景来源参数从工作空间

输出角色的坐标系统,指定为以下值之一:

  • 车辆坐标-坐标是根据自我载具定义的。当您的场景只有一个自我车辆时,请选择此值。

  • 世界坐标-坐标是根据驾驶场景定义的。在包含多个自我载体的多代理场景中选择此值。属性的模型可视化鸟瞰的范围不支持。金宝app

有关飞行器和世界坐标系的详细信息,请参见自动驾驶工具箱中的坐标系

自我载体的来源,指定为以下选项之一:

  • 场景命令指定的场景中定义的自我载具驱动场景设计器文件名MATLAB或模型工作区变量名参数。自我载体的姿态被排除在演员输出端口。参与者位置位于车辆坐标中,这意味着它们相对于场景中自我车辆的世界坐标位置。

    选择此选项可测试开环ADAS算法,其中自我车辆行为是预定义的,不会随着场景的进展而改变。有关示例,请参见使用驾驶场景测试开环ADAS算法

  • 输入端口-指定自我车辆使用自我的车辆输入端口。自我载具的姿态不包括在演员输出端口。

    使用此选项,模型中的自我车辆必须包含世界坐标中的起始位置。所有其他演员姿势都在车辆坐标中,并相对于自我车辆定位。有关具有已定义位置信息的自我车辆的示例,请参见车道保持辅助车道检测.在定义自我车辆的起始位置时,考虑使用场景中已经定义的位置。通过使用这个位置,如果你设置自我载体的来源场景然后回到输入端口,则无需手动更改起始位置。

    选择此选项可测试闭环ADAS算法,其中自我车辆会随着场景的进展对变化做出反应。有关示例,请参见使用驾驶场景测试闭环ADAS算法

依赖关系

若要启用此参数,请设置角色输出的坐标系统参数车辆坐标

自我车辆的角色ID,指定为正整数。使用此参数模拟使用从对象中读取的自我载体drivingScenario对象。

  • 自我载体的来源设置为场景,设置为anActorID对象中存储的演员属性。drivingScenario对象。检查有效性ActorID值,使用此语法,其中场景是名字吗drivingScenario变量的名字。

    actorid = [scenario.Actors.ActorID]
  • 自我载体的来源设置为输入端口,该参数必须设置为ActorID值为自我的车辆块的输入端口。

依赖关系

若要启用此参数,请按以下顺序设置参数:

  1. 设置驾驶场景来源参数从工作空间

  2. 设置角色输出的坐标系统参数车辆坐标

选择此参数输出自我车辆的姿态自我工具姿势端口。

依赖关系

若要启用此参数,请设置角色输出的坐标系统参数车辆坐标自我载体的来源参数场景

选择此参数可在自我车辆状态端口。

依赖关系

若要启用此参数,请设置角色输出的坐标系统参数车辆坐标自我载体的来源参数场景

属性来创建自我载具的轨迹,以输出自我载具状态smoothTrajectory功能,或通过选择使用平滑的,限制颠簸的轨迹参数中的驾驶场景设计应用程序。

选择此参数将自我车辆定位为跟随路面的仰角。该块更新自我车辆的仰角、横摇、俯仰和偏航,并输出相对于更新的自我车辆坐标的参与者和车道边界。该块不更新自我飞行器的速度或角速度。

在路网高程变化的闭环模拟中使用此参数。

请注意

在不同高程和倾斜角度的道路路口,更新的自我车辆值可能不准确。

在开环模拟中,其中自我载体的来源设置为场景时,自动车辆沿驾驶场景中指定的仰角行驶。

依赖关系

若要启用该参数,请设置角色输出的坐标系统车辆坐标而且自我载体的来源输入端口

模拟的采样时间,以秒为单位,指定为正实标量。不支持继承和连续采样时间。金宝app这个采样时间和这个采样时间是分开的驾驶场景设计应用程序和drivingScenario在模拟过程中使用对象。

车道

输出的车道边界,指定为以下选项之一:

  • 没有一个-不输出任何车道边界。

  • 自我车辆车道边界-输出自我车辆的左右车道边界。

  • 所有车道边界-输出自我车辆行驶的道路的所有车道边界。

如果您选择自我车辆车道边界所有车道边界时,该块返回车道边界输出端口。

依赖关系

若要启用此参数,请设置角色输出的坐标系统参数车辆坐标

与自我车辆的距离,以计算车道边界,指定为N-element实值向量。N是距离值的个数。当从后置摄像头检测车道时,指定负距离。当从前置摄像头检测车道时,指定正距离。单位是米。

默认情况下,该块计算101个车道边界,范围从自我车辆后面150米到自我车辆前面150米。这些距离线性间隔为3米。

例子:1:0.1:10在车辆前方1至10米范围内,每0.1米计算一个车道边界。

依赖关系

若要启用此参数,请设置输出的车道边界参数自我车辆车道边界所有车道边界

车道边界位置上的车道标记,指定为此表中的选项之一。

车道边界位置 描述 例子
车道标记中心 车道边界以车道标记为中心。

一条三车道的道路有四个车道边界:每个车道都有一个标志。

三车道,四车道

车道标记的内边缘 车道边界位于车道标记的内边缘。

一条三车道的道路有六个车道边界:每个车道两个。

三车道,六车道

依赖关系

若要启用此参数,请设置输出的车道边界参数自我车辆车道边界所有车道边界

端口设置

对象中返回的actor姿态总线的名称的源演员输出端口,指定为以下选项之一:

  • 汽车-该块自动创建一个actor姿势总线名称。

  • 财产属性指定角色姿势总线名称演员总线名称参数。

对象中返回的演员姿势总线的名称演员输出端口,指定为有效的总线名称。

依赖关系

若要启用该参数,请设置角色总线名称的源财产

您在驾驶场景中可以拥有的最大参与者数量的来源,指定为以下选项之一:

  • 场景—该块设置的最大演员数为驾驶场景下的演员数。这个值等于NumActors现场的公共汽车返回了演员输出端口。当您更改输入场景时,参与者的最大数量将更新以匹配新的NumActors价值。

  • 财产—使用命令指定最大演员数最大演员人数参数。当您希望跨具有不同数量参与者的场景重用相同的参与者总线时,例如从引用的模型输出参与者时,请选择此选项。

场景中可以拥有的最大参与者数量,指定为正整数。

依赖关系

若要启用此参数,请设置最大演员数量的来源参数财产

中返回的车道边界总线的名称的源车道边界输出端口,指定为以下选项之一:

  • 汽车-该块自动创建一个车道边界总线名称。

  • 财产属性指定车道边界总线名称车道边界巴士名称参数。

依赖关系

启用该参数。

  1. 设置角色输出的坐标系统参数车辆坐标

  2. 设置输出的车道边界参数自我车辆车道边界所有车道边界

返回的车道边界公共汽车的名称车道边界输出端口,指定为有效的总线名称。

依赖关系

启用该参数。

  1. 设置角色输出的坐标系统参数车辆坐标

  2. 设置输出的车道边界参数自我车辆车道边界所有车道边界

  3. 设置车道边界总线名称的来源参数财产

您在驾驶场景中可以拥有的最大车道边界数量的来源,指定为以下选项之一:

  • 场景—该块设置的最大车道边界数为实际驾驶场景下的车道边界数。这个值等于NumLaneBoundaries现场的公共汽车返回了车道边界输出端口。当您更改输入场景时,车道边界的最大数量将更新以匹配新的NumLaneBoundaries价值。

  • 财产参数指定车道边界的最大数目最大车道边界数参数。当您希望跨具有不同车道边界数量的场景重用相同的车道边界总线时,例如从引用模型输出车道边界时,请选择此选项。

依赖关系

启用该参数。

  1. 设置角色输出的坐标系统参数车辆坐标

  2. 设置输出的车道边界参数所有车道边界

在该场景中可以拥有的最大车道边界数,指定为正整数。

依赖关系

启用该参数。

  1. 设置角色输出的坐标系统参数车辆坐标

  2. 设置输出的车道边界参数所有车道边界

  3. 设置最大数量的车道边界的来源参数财产

中返回的自我车辆姿态总线的名称的源自我工具姿势输出端口,指定为以下选项之一:

  • 汽车-该块自动创建一个自我车辆姿态总线名称。

  • 财产参数指定自我车辆姿态总线名称自我车辆姿态巴士名称参数。

依赖关系

要启用此参数,请选择输出自我车辆姿态参数。

中返回的自我车辆姿态总线的名称自我工具姿势输出端口,指定为有效的总线名称。

依赖关系

要启用此参数,请选择输出自我车辆姿态参数,并设置自我车辆姿态总线名称的来源参数财产

中返回的自我车辆状态总线的名称的源自我车辆状态输出端口,指定为以下选项之一:

  • 汽车-该块自动创建一个自我车辆状态总线名称。

  • 财产属性指定自我车辆状态总线名称自我车辆状态总线名称参数。

依赖关系

要启用此参数,请选择输出自我车辆状态参数。

对象中返回的自我车辆状态总线的名称自我车辆状态输出端口,指定为有效的总线名称。

依赖关系

要启用此参数,请选择输出自我车辆状态参数,并设置自我车辆状态总线名称的源参数财产

对象上显示块输入和输出的坐标系场景的读者框图中的块。

  • 自我的车辆输入和输出总是在世界坐标中。

  • 车道边界输出总是在车辆坐标中。

  • 您可以返回演员车辆坐标或世界坐标的输出,取决于角色输出的坐标系统参数的选择。

模拟
  • 解释执行-使用MATLAB解释器对模型进行仿真。该选项可缩短启动时间。在解释执行模式下,可以调试该块的源代码。

  • 代码生成-使用生成的C/ c++代码模拟模型。第一次运行模拟时,Simulink为该块生成C/ c++代码。金宝app只要模型没有改变,C代码就可以在后续的模拟中重用。这个选项需要额外的启动时间。

提示

  • 为了达到最佳效果,只使用一种活性物质场景的读者每个模型块。要在一个模型中使用多个Scenario Reader块,可以通过在不同的子系统中指定它们来在块之间进行切换。

  • 要在驾驶场景的变化上测试您的算法,您可以在模拟之间更新场景。

    • 如果场景源为场景文件,请在工具中打开场景文件驾驶场景设计App,更新参数,重新保存文件。

    • 如果场景来源为drivingScenario对象,在MATLAB或模型工作区中更新对象。或者,将对象导入到应用程序中,在应用程序中修改场景,然后从应用程序中生成一个新对象。有关详细信息,请参见以编程方式创建驾驶场景变化

  • 当需要在不同参数设置的场景之间切换时,可以使用金宝app仿真软件测试™软件有关示例,请参见高速公路车道跟随自动化测试

扩展功能

版本历史

在R2019a中引入