主要内容

车辆

在驾驶场景中添加车辆

描述

风投=车辆(场景添加一个车辆对象,风投,到驾驶场景,场景.车辆具有默认属性值。

车辆是一种特殊类型的演员长方体(盒形)物体,有四个轮子。有关如何定义车辆的详细信息,请参见演员和车辆的位置和尺寸

例子

风投=车辆(场景名称,值使用一个或多个名称-值对设置车辆属性。例如,您可以设置车辆的位置、速度、尺寸、方向和轴距。你也可以在场景中设定车辆生成或消失的时间。

请注意

您可以在一个驾驶场景中配置车辆来生成和消失,然后导入相关的drivingScenario对象进驾驶场景设计师应用程序认为在驾驶场景中创建的第一辆车是自我车辆,不允许自我车辆在场景中生成或消失。

例子

全部折叠

创建一个包含一条弯曲道路、两条笔直道路和两个角色的驾驶场景:一辆汽车和一辆自行车。两位演员在路上走了60秒。

创建驱动场景对象。

场景= drivingScenario (“SampleTime”0.1”,“StopTime”、60);

沿着半径800米的圆弧,使用道路中心点创建弯曲道路。电弧从0°开始,结束于90°,并以5°增量采样。

ang = [0:5:90] ';R = 800;roadcenters = R*[cosd(angs) sind(angs) zero (size(angs))];roadwidth = 10;路(场景、roadcenters roadwidth);

用默认宽度添加两条直线道路,在每条道路的两端使用道路中心点。

Roadcenters = [7000 00;100 0 0];路(场景,roadcenters)
ans =带有属性的道路:名称:"" RoadID: 2 RoadCenters: [2x3 double] RoadWidth: 6 BankAngle: [2x1 double]
Roadcenters = [400 400 0;0 0 0];路(场景,roadcenters)
ans =带有属性的道路:名称:"" RoadID: 3 RoadCenters: [2x3 double] RoadWidth: 6 BankAngle: [2x1 double]

确定道路界限。

rbdry = roadBoundaries(场景);

在场景中添加一辆汽车和一辆自行车。把车停在第一条直路的起点。

车=车辆(场景中,“ClassID”, 1“位置”(700 0 0),...“长度”3,“宽度”2,“高度”, 1.6);

把自行车停在路的较远的地方。

自行车=演员(场景中,“ClassID”3,“位置”, (706 376 0) ',...“长度”2,“宽度”, 0.45,“高度”, 1.5);

画出场景。

情节(场景中,“中心线”“上”“RoadCenters”“上”);标题(“场景”);

图中包含一个坐标轴。标题为Scenario的轴包含1219个patch、line类型的对象。

展示演员的姿势和侧面。

提出了= actorPoses(场景)
提出了=2×1带有字段的结构数组:行环位置速度横摇俯仰偏航角速度
概要文件= actorProfiles(场景)
概要文件=2×1带有字段的结构数组:ActorID ClassID长度宽度高度原点偏移网格顶点网格面rcpattern RCSAzimuthAngles RCSElevationAngles

创建一个驾驶场景。设置场景的停止时间为3秒。

场景= drivingScenario (“StopTime”3);

在场景中添加一条双车道道路。

道路中心= [0 10 0;53 1 0];lanspec = lanespec([1 1]);路(场景、roadCenters“道”, laneSpecification);

添加另一条路,与第一条路以直角相交,形成一个t形。

道路中心= [20.3 38.4 0;20 3 0];laneSpecification = lanespec (2);路(场景、roadCenters“道”laneSpecification)
ans =带有属性的道路:名称:"" RoadID: 2 RoadCenters: [2x3 double] RoadWidth: 7.3500 BankAngle: [2x1 double]

将ego车辆添加到场景中并定义它的路径点。设置自我飞行器的速度为20米/秒,并生成自我飞行器的轨迹。

egoVehicle =车辆(场景中,“ClassID”, 1...“位置”1.5 - 2.5 [0]);路径点= [2 3 0;13 3 0;21日3 0;31日3 0;43 3 0;47 3 0];速度= 20;smoothTrajectory (egoVehicle、锚点、速度)

在场景中添加一个非自我的载体。通过指定进入时间和退出时间的向量,设置非自我车辆在模拟过程中生成和消失两次。注意,每个条目的时间值小于相应的退出时间值。

nonEgovehicle1 =车辆(场景中,“ClassID”, 1...“位置”30 0], [22,“EntryTime”(0.2 - 1.4),“ExitTime”[1.0 - 2.0]);

定义非自我车辆的路径点。设置非自我飞行器的速度为30米/秒,并生成它的轨迹。

路径点= [22 35 0;22日23日0;22日13 0;22日7 0;18 -0.3 0;12个-0.8 0;5 -0.8 0];速度= 30;smoothTrajectory (nonEgovehicle1、锚点、速度)

向场景中添加另一个非自我载体。通过指定进入时间为正标量,设置第二辆非自我车辆在模拟过程中生成一次。由于您没有指定退出时间,因此该车辆将一直留在场景中,直到场景结束。

nonEgovehicle2 =车辆(场景中,“ClassID”, 1...“位置”(48 1 0),“EntryTime”2);

定义第二辆非自我车辆的路径点。设置车辆速度为50米/秒,并生成其轨迹。

路径点= [48 -1 0;42 1 0;28 1 0;16 1 0;12个1 0];速度= 50;smoothTrajectory (nonEgovehicle2、锚点、速度)

创建一个自定义图形窗口来绘制场景。

无花果=图;集(图,“位置”,[0 0 600 600])“中心”hViewPnl = uipanel(图,“位置”,[0 0 1 1],“标题”“车辆刷出和消失”);hPlt =轴(hViewPnl);

绘制场景并运行模拟。观察模拟运行时,非自我车辆是如何在场景中生成和消失的。

情节(场景中,“锚点”“上”“父”hPlt)推进(场景)暂停(0.1)结束

图包含一个轴和一个uipanel类型的对象。轴包含9个类型为patch, line的对象。

输入参数

全部折叠

驾驶场景,指定为drivingScenario对象。

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:车辆(“长度”,2.2,“宽度”,0.6,“高度”,1.5)创建具有摩托车尺寸的车辆。单位是米。

角色的分类标识符,指定为由逗号分隔的对组成“ClassID”和一个非负整数。

指定ClassID值将具有相似维度、雷达横截面(RCS)模式或其他属性的参与者分组在一起。作为最佳实践,在将参与者添加到drivingScenario对象,确定要使用的角色分类方案。然后,在创建参与者时,指定ClassID名称-值对根据角色分类方案设置分类标识符。

假设您想要创建一个包含以下角色的场景:

  • 两辆车,其中一辆是自我车

  • 一辆卡车

  • 一辆自行车

  • 沿着道路的泽西屏障

代码显示了该场景的一个示例分类模式,其中1指的是汽车,2指的是卡车,3.指自行车和5指的是球衣屏障。汽车有默认的车辆属性。卡车和自行车分别具有典型卡车和自行车的尺寸。

场景= drivingScenario;自我=车辆(场景中,“ClassID”1);车=车辆(场景中,“ClassID”1);卡车=车辆(场景中,“ClassID”2,“长度”, 8.2,“宽度”, 2.5,“高度”, 3.5);自行车=演员(场景中,“ClassID”3,“长度”, 1.7,“宽度”, 0.45,“高度”, 1.7);mainRoad = road(scenario,[0 0 0;10 0 0]);mainRoad屏障(场景,“ClassID”5);

默认的ClassID0为未知或未赋值类的对象保留。如果您计划导入drivingScenario对象进驾驶场景设计师App,不离不弃ClassID属性设置为0.应用程序不识别ClassID0,并返回一个错误。相反,设置ClassID根据应用程序中使用的演员分类方案确定演员的值。

ClassID 类名
1
2 卡车
3. 自行车
4 行人
5 泽西岛的障碍
6 护栏

车辆的名称,指定为逗号分隔的对,包括“名字”以及字符向量或字符串标量。

例子:“名称”、“Vehicle1”

例子:“名称”、“Vehicle1”

数据类型:字符|字符串

车辆在驾驶场景中生成的输入时间,指定为由逗号分隔的对组成“EntryTime”一个正的标量或者一个正的向量。单位是秒,从场景的开始时间开始测量。

指定此名称-值对参数,以便在模拟运行时在指定时间添加或使车辆出现在驾驶场景中。

  • 若要只生成一次车辆,请将进入时间指定为标量。

  • 要多次生成一辆车,请指定进入时间作为矢量。

    • 将向量的元素按升序排列。

    • 向量的长度必须与退出时间向量的长度匹配。

  • 如果车辆有相关的退出时间,那么每个进入时间值必须小于相应的退出时间值。

  • 每个条目的时间值必须小于场景的停止时间。的值可以设置该场景的停止时间“StopTime”财产的drivingScenario对象。

例子:“EntryTime”,2

例子:“EntryTime”,[2 - 4]

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

车辆从驾驶场景中退出的时间,指定为逗号分隔对组成“ExitTime”一个正的标量或者一个正的向量。单位是秒,从场景的开始时间开始测量。

指定此名称-值对参数以在模拟运行时的指定时间从场景中删除或使车辆消失。

  • 若要只取消一次车辆,请将退出时间指定为标量。

  • 若要多次弃车,请将退出时间指定为矢量。

    • 将向量的元素按升序排列。

    • 向量的长度必须与输入时间向量的长度匹配。

  • 如果车辆有一个相关的进入时间,那么每个出口时间值必须大于相应的进入时间值。

  • 每个退出时间值必须小于场景的停止时间。的值可以设置该场景的停止时间“StopTime”财产的drivingScenario对象。

例子:“ExitTime”,3

例子:“ExitTime”,(3 - 6)

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

显示车辆颜色,指定为逗号分隔对组成“PlotColor”和RGB三元组、十六进制颜色代码、颜色名称或短颜色名称。

车辆以指定的颜色显示在所有编程场景可视化中,包括情节函数,chasePlot函数,并绘制函数birdsEyePlot对象。如果您将该场景导入驾驶场景设计师应用程序,然后车辆以这个颜色出现在所有应用程序可视化中。如果您将该场景导入Simulink金宝app®,然后车辆以这种颜色出现在鸟瞰的范围

如果您没有为车辆指定颜色,该函数将根据默认的颜色顺序为车辆指定颜色对象。有关详细信息,请参见ColorOrder财产对象。

对于自定义颜色,指定RGB三元组或十六进制颜色代码。

  • RGB三元组是一个由三个元素组成的行向量,其元素指定颜色的红色、绿色和蓝色组件的强度。强度必须在这个范围内[0, 1];例如,(0.4 0.6 0.7)

  • 十六进制颜色代码是以哈希符号开头的字符向量或字符串标量(),然后是3个或6个十六进制数字,其范围可以是0F.这些值不区分大小写。因此,颜色是代码“# FF8800”“# ff8800”“# F80”,“# f80”是等价的。

或者,您可以通过名称指定一些常见的颜色。该表列出了已命名的颜色选项、等价的RGB三联体和十六进制颜色代码。

颜色名称 短名称 RGB值 十六进制颜色代码 外观
“红色” “r” (1 0 0) “# FF0000”

“绿色” ‘g’ (0 1 0) “# 00 ff00”

“蓝” “b” (0 0 1) “# 0000 ff”

“青色” “c” (0 1 1) “# 00飞行符”

“红色” “米” (1 0 1) “#就”

“黄色” “y” (1 1 0) “# FFFF00”

“黑” “k” (0 0 0) # 000000的

“白色” ' w ' (1 1 1) “# FFFFFF”

这里是RGB三联体和十六进制颜色代码的默认颜色MATLAB®用于许多类型的情节。

RGB值 十六进制颜色代码 外观
[0 0.4470 - 0.7410) “# 0072 bd”

(0.8500 0.3250 0.0980) “# D95319”

(0.9290 0.6940 0.1250) “# EDB120”

(0.4940 0.1840 0.5560) “# 7 e2f8e”

(0.4660 0.6740 0.1880) “# 77 ac30”

(0.3010 0.7450 0.9330) “# 4 dbeee”

(0.6350 0.0780 0.1840) “# A2142F”

车辆的旋转中心的位置,指定为逗号分隔对,包括“位置”和一个xyz实值向量。

车辆的旋转中心是后轴的中点。车辆向后延伸的距离等于后悬垂。车辆向前延伸的距离等于轴距和向前伸出的距离之和。单位是米。

例子:[10; 50 0]

速度(v)的车辆中心x-,y- - -z-directions,指定为逗号分隔的对,由“速度”和一个vxvyvz实值向量。的“位置”名称-值对指定车辆的中心。单位是米每秒。

例子:(4、7、10)

飞行器的偏航角,指定为逗号分隔对,由“偏航”一个实标量。偏航飞行器的旋转角度是绕z设在。偏航是顺时针正,当看轴的向前方向,从地面上。因此,当从上往下观察飞行器时,比如在鸟瞰图上,偏航是逆时针方向的。角度值的范围是[- 180,180]。单位是度。

例子:-0.4

飞行器的俯仰角度,指定为逗号分隔对,由“节”一个实标量。球场飞行器的旋转角度是绕y-轴,且当向轴的正向看时,为顺时针正。角度值的范围是[- 180,180]。单位是度。

例子:5.8

车辆的横摇角度,指定为逗号分隔对组成“滚”一个实标量。飞行器的旋转角度是绕x-轴,且当向轴的正向看时,为顺时针正。角度值的范围是[- 180,180]。单位是度。

例子:-10年

角速度(ω),指定为逗号分隔的对,包括“AngularVelocity”和一个ωxωyωz实值向量。单位是每秒度。

例子:(20 40 20)

车辆的长度,指定为逗号分隔对,由“长度”一个正的实标量。单位是米。

车辆对象的值,该方程定义长度FrontOverhang轴距,RearOverhang属性:

长度=前悬+轴距+后悬

  • 如果你更新长度RearOverhang,或轴距属性,以维持等式车辆对象增加或减少FrontOverhang属性,并保持其他属性不变。

  • 如果你更新FrontOverhang属性,为了维持这个等式车辆对象增加或减少轴距属性,并保持其他属性不变。

当同时设置FrontOverhangRearOverhang属性,以防止车辆对象的FrontOverhang值,设置RearOverhang第一,紧随其后的是FrontOverhang.对象计算新的轴距自动属性值。

例子:5.5

车辆的宽度,指定为逗号分隔对组成“宽度”一个正的实标量。单位是米。

例子:2.0

车辆的高度,指定为逗号分隔的对,包括“高度”一个正的实标量。单位是米。

例子:2.1

扩展对象网格,指定为extendedObjectMesh对象。

车辆的雷达横截面(RCS)模式,指定为逗号分隔对,由“RCSPattern”和一个——- - - - - -P实值矩阵。RCS是方位角和仰角的函数,其中:

单位是分贝每平方米(dBsm)。

例子:5.8

车辆RCS模式的方位角,指定为逗号分隔对,由“RCSAzimuthAngles”和一个P元实值向量。P为方位角的个数。取值范围为[-180°,180°]。

的每个元素RCSAzimuthAngles定义对应列的方位角“RCSPattern”名称-值对。单位是度。

例子:(90:90)

飞行器RCS模式的仰角,指定为逗号分隔对,由“RCSElevationAngles”和一个元实值向量。为仰角数。值的范围是[-90°,90°]。

的每个元素RCSElevationAngles的对应行的仰角“RCSPattern”名称-值对。单位是度。

例子:(0:90)

车辆的前悬垂,指定为逗号分隔对,由“FrontOverhang”一个实标量。前悬垂是车辆超出前轴的距离。如果车辆没有延伸过前轴,那么前悬垂是负的。单位是米。

车辆对象的值,该方程定义长度FrontOverhang轴距,RearOverhang属性:

长度=前悬+轴距+后悬

  • 如果你更新长度RearOverhang,或轴距属性,以维持等式车辆对象增加或减少FrontOverhang属性,并保持其他属性不变。

  • 如果你更新FrontOverhang属性,为了维持这个等式车辆对象增加或减少轴距属性,并保持其他属性不变。

当同时设置FrontOverhangRearOverhang属性,以防止车辆对象的FrontOverhang值,设置RearOverhang第一,紧随其后的是FrontOverhang.对象计算新的轴距自动属性值。

例子:0.37

车辆的后悬挑,指定为逗号分隔对,由“RearOverhang”一个实标量。后悬距是车辆延伸到后轴以外的距离。如果车辆没有延伸过后轴,那么后悬就是负的。负后悬在半挂车卡车是常见的,那里的卡车驾驶室不悬垂后轮。单位是米。

车辆对象的值,该方程定义长度FrontOverhang轴距,RearOverhang属性:

长度=前悬+轴距+后悬

  • 如果你更新长度RearOverhang,或轴距属性,以维持等式车辆对象增加或减少FrontOverhang属性,并保持其他属性不变。

  • 如果你更新FrontOverhang属性,为了维持这个等式车辆对象增加或减少轴距属性,并保持其他属性不变。

当同时设置FrontOverhangRearOverhang属性,以防止车辆对象的FrontOverhang值,设置RearOverhang第一,紧随其后的是FrontOverhang.对象计算新的轴距自动属性值。

例子:0.32

汽车前后轴之间的距离,指定为逗号分隔的一对,由的轴距一个正的实标量。单位是米。

车辆对象的值,该方程定义长度FrontOverhang轴距,RearOverhang属性:

长度=前悬+轴距+后悬

  • 如果你更新长度RearOverhang,或轴距属性,以维持等式车辆对象增加或减少FrontOverhang属性,并保持其他属性不变。

  • 如果你更新FrontOverhang属性,为了维持这个等式车辆对象增加或减少轴距属性,并保持其他属性不变。

当同时设置FrontOverhangRearOverhang属性,以防止车辆对象的FrontOverhang值,设置RearOverhang第一,紧随其后的是FrontOverhang.对象计算新的轴距自动属性值。

例子:1.51

输出参数

全部折叠

驾驶场景车辆,返回为车辆中指定的属于驾驶场景的对象场景

您可以修改车辆对象的属性值。属性名对应于用于创建对象的名称-值对参数。

唯一不能修改的属性是ActorID,这是一个正整数,表示在场景中确定的车辆唯一ID。

要指定和可视化车辆运动,请使用以下功能:

轨迹

在驾驶场景中创建行动者或车辆轨迹

smoothTrajectory

在驾驶场景中创建平滑的、限制陡直的演员或车辆轨迹

chasePlot

自我中心的投射透视图

要了解车辆特性,请使用以下功能:

actorPoses

驾驶场景中行动者的位置、速度和方向

actorProfiles

驾驶场景中行动者的物理和雷达特征

targetOutlines

行动者所看到的目标概要

targetPoses

目标位置和方向相对于自我车辆

driving.scenario.targetsToEgo

将目标行动者的姿态从场景的世界坐标转换为自我车辆坐标

driving.scenario.targetsToScenario

将目标行动者的姿态从自我车辆坐标转换为场景的世界坐标

要获取有关车辆所在道路和车道的信息,可以使用以下功能:

roadBoundaries

得到道路边界

driving.scenario.roadBoundariesToEgo

转换道路边界到自我车辆坐标

currentLane

得到行动者的当前巷

laneBoundaries

得到演员lane的lane边界

laneMarkingVertices

行车场景中的线标顶点和面

roadMesh

在驾驶场景中演员最近的道路的网格表示。

更多关于

全部折叠

演员和车辆的位置和尺寸

在驾驶场景中,an演员是具有特定长、宽、高的长方体(盒形)物体。参与者也有一个雷达横截面(RCS)模式,在dBsm中指定,您可以通过设置角方位角和仰角坐标来细化它。行动者的位置定义为其底面的中心。这个中心点用作行动者的转动中心,它与地面的接触点,以及它在局部坐标系中的原点。在这个坐标系中:

  • X-轴从行动者指向前方。

  • Y-轴点距行动者左侧。

  • Z轴指向地面。

滚动,俯仰和偏航是顺时针正时,看向前的方向X-,Y- - - - - -,Z分别相互重合。

一个车辆是一个在轮子上移动的演员。车辆有三个额外的属性来控制前轴和后轴的位置。

  • 轴距-前后轴间距

  • 前悬-车辆前部与前轴之间的距离

  • 后方过剩-后轴与车辆后部之间的距离

与其他类型的角色不同,车辆的位置是由地面上的点定义的,在其后轴中心以下。这个点对应于飞行器的自然旋转中心。与非车辆行为者一样,这一点是车辆在局部坐标系中的原点,其中:

  • X-轴指向车辆前方。

  • Y-轴点离开车辆。

  • Z轴指向地面。

滚动,俯仰和偏航是顺时针正时,看向前的方向X-,Y- - - - - -,Z分别相互重合。

该表显示了常见参与者及其维度的列表。在中指定这些值演员车辆对象,设置所示的相应属性。

演员的分类 演员对象 演员属性
长度 宽度 高度 FrontOverhang RearOverhang 轴距 RCSPattern
行人 演员 0.24米 0.45米 1.7米 N/A N/A N/A 8 dBsm
车辆 4.7米 1.8米 1.4米 0.9米 1.0米 2.8米 10 dBsm
摩托车 车辆 2.2米 0.6米 1.5米 0.37米 0.32米 1.51米 0 dBsm

介绍了R2017a