在驾驶场景中添加车辆
添加一个风投
=车辆(场景
)车辆
对象,风投
,到驾驶场景,场景
.车辆具有默认属性值。
车辆是一种特殊类型的演员长方体(盒形)物体,有四个轮子。有关如何定义车辆的详细信息,请参见演员和车辆的位置和尺寸.
创建一个包含一条弯曲道路、两条笔直道路和两个角色的驾驶场景:一辆汽车和一辆自行车。两位演员在路上走了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”,“上”);标题(“场景”);
展示演员的姿势和侧面。
提出了= 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)结束
场景
- - - - - -驾驶场景drivingScenario
对象驾驶场景,指定为drivingScenario
对象。
指定可选的逗号分隔的对名称,值
参数。的名字
参数名和价值
为对应值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
车辆(“长度”,2.2,“宽度”,0.6,“高度”,1.5)
创建具有摩托车尺寸的车辆。单位是米。
“ClassID”
- - - - - -分类标识符0
(默认)|非负整数角色的分类标识符,指定为由逗号分隔的对组成“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);
默认的ClassID
的0
为未知或未赋值类的对象保留。如果您计划导入drivingScenario
对象进驾驶场景设计师App,不离不弃ClassID
属性设置为0
.应用程序不识别ClassID
的0
,并返回一个错误。相反,设置ClassID
根据应用程序中使用的演员分类方案确定演员的值。
ClassID |
类名 |
---|---|
1 |
车 |
2 |
卡车 |
3. |
自行车 |
4 |
行人 |
5 |
泽西岛的障碍 |
6 |
护栏 |
“名字”
- - - - - -车的名字""
(默认)|特征向量|字符串标量车辆的名称,指定为逗号分隔的对,包括“名字”
以及字符向量或字符串标量。
例子:“名称”、“Vehicle1”
例子:“名称”、“Vehicle1”
数据类型:字符
|字符串
“EntryTime”
- - - - - -车辆产卵的进入时间0
(默认)|积极的标量车辆在驾驶场景中生成的输入时间,指定为由逗号分隔的对组成“EntryTime”
一个正的标量或者一个正的向量。单位是秒,从场景的开始时间开始测量。
指定此名称-值对参数,以便在模拟运行时在指定时间添加或使车辆出现在驾驶场景中。
若要只生成一次车辆,请将进入时间指定为标量。
要多次生成一辆车,请指定进入时间作为矢量。
将向量的元素按升序排列。
向量的长度必须与退出时间向量的长度匹配。
如果车辆有相关的退出时间,那么每个进入时间值必须小于相应的退出时间值。
每个条目的时间值必须小于场景的停止时间。的值可以设置该场景的停止时间“StopTime”
财产的drivingScenario
对象。
例子:“EntryTime”,2
例子:“EntryTime”,[2 - 4]
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
“ExitTime”
- - - - - -车辆离开的时间正
(默认)|积极的标量车辆从驾驶场景中退出的时间,指定为逗号分隔对组成“ExitTime”
一个正的标量或者一个正的向量。单位是秒,从场景的开始时间开始测量。
指定此名称-值对参数以在模拟运行时的指定时间从场景中删除或使车辆消失。
若要只取消一次车辆,请将退出时间指定为标量。
若要多次弃车,请将退出时间指定为矢量。
将向量的元素按升序排列。
向量的长度必须与输入时间向量的长度匹配。
如果车辆有一个相关的进入时间,那么每个出口时间值必须大于相应的进入时间值。
每个退出时间值必须小于场景的停止时间。的值可以设置该场景的停止时间“StopTime”
财产的drivingScenario
对象。
例子:“ExitTime”,3
例子:“ExitTime”,(3 - 6)
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
“PlotColor”
- - - - - -车辆显示颜色显示车辆颜色,指定为逗号分隔对组成“PlotColor”
和RGB三元组、十六进制颜色代码、颜色名称或短颜色名称。
车辆以指定的颜色显示在所有编程场景可视化中,包括情节
函数,chasePlot
函数,并绘制函数birdsEyePlot
对象。如果您将该场景导入驾驶场景设计师应用程序,然后车辆以这个颜色出现在所有应用程序可视化中。如果您将该场景导入Simulink金宝app®,然后车辆以这种颜色出现在鸟瞰的范围.
如果您没有为车辆指定颜色,该函数将根据默认的颜色顺序为车辆指定颜色轴
对象。有关详细信息,请参见ColorOrder
财产轴
对象。
对于自定义颜色,指定RGB三元组或十六进制颜色代码。
RGB三元组是一个由三个元素组成的行向量,其元素指定颜色的红色、绿色和蓝色组件的强度。强度必须在这个范围内[0, 1]
;例如,(0.4 0.6 0.7)
.
十六进制颜色代码是以哈希符号开头的字符向量或字符串标量(#
),然后是3个或6个十六进制数字,其范围可以是0
来F
.这些值不区分大小写。因此,颜色是代码“# 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” |
|
“位置”
- - - - - -车辆中心位置(0 0 0)
(默认)|[xyz)实值向量车辆的旋转中心的位置,指定为逗号分隔对,包括“位置”
和一个xyz实值向量。
车辆的旋转中心是后轴的中点。车辆向后延伸的距离等于后悬垂。车辆向前延伸的距离等于轴距和向前伸出的距离之和。单位是米。
例子:[10; 50 0]
“速度”
- - - - - -车辆中心速度(0 0 0)
(默认)|[vxvyvz)实值向量速度(v)的车辆中心x-,y- - -z-directions,指定为逗号分隔的对,由“速度”
和一个vxvyvz实值向量。的“位置”
名称-值对指定车辆的中心。单位是米每秒。
例子:(4、7、10)
“偏航”
- - - - - -飞行器偏航角0
(默认)|真正的标量飞行器的偏航角,指定为逗号分隔对,由“偏航”
一个实标量。偏航飞行器的旋转角度是绕z设在。偏航是顺时针正,当看轴的向前方向,从地面上。因此,当从上往下观察飞行器时,比如在鸟瞰图上,偏航是逆时针方向的。角度值的范围是[- 180,180]。单位是度。
例子:-0.4
“节”
- - - - - -飞行器俯仰角0
(默认)|真正的标量飞行器的俯仰角度,指定为逗号分隔对,由“节”
一个实标量。球场飞行器的旋转角度是绕y-轴,且当向轴的正向看时,为顺时针正。角度值的范围是[- 180,180]。单位是度。
例子:5.8
“滚”
- - - - - -车辆横倾角0
(默认)|真正的标量车辆的横摇角度,指定为逗号分隔对组成“滚”
一个实标量。卷飞行器的旋转角度是绕x-轴,且当向轴的正向看时,为顺时针正。角度值的范围是[- 180,180]。单位是度。
例子:-10年
“AngularVelocity”
- - - - - -车辆角速度(0 0 0)
(默认)|[ωxωyωz)实值向量角速度(ω),指定为逗号分隔的对,包括“AngularVelocity”
和一个ωxωyωz实值向量。单位是每秒度。
例子:(20 40 20)
“长度”
- - - - - -汽车的长度4.7
(默认)|积极的真正的标量车辆的长度,指定为逗号分隔对,由“长度”
一个正的实标量。单位是米。
在车辆
对象的值,该方程定义长度
,FrontOverhang
,轴距
,RearOverhang
属性:
长度=前悬+轴距+后悬
如果你更新长度
,RearOverhang
,或轴距
属性,以维持等式车辆
对象增加或减少FrontOverhang
属性,并保持其他属性不变。
如果你更新FrontOverhang
属性,为了维持这个等式车辆
对象增加或减少轴距
属性,并保持其他属性不变。
当同时设置FrontOverhang
和RearOverhang
属性,以防止车辆
对象的FrontOverhang
值,设置RearOverhang
第一,紧随其后的是FrontOverhang
.对象计算新的轴距
自动属性值。
例子:5.5
“宽度”
- - - - - -车辆的宽度1.8
(默认)|积极的真正的标量车辆的宽度,指定为逗号分隔对组成“宽度”
一个正的实标量。单位是米。
例子:2.0
“高度”
- - - - - -车辆的高度1.4
(默认)|积极的真正的标量车辆的高度,指定为逗号分隔的对,包括“高度”
一个正的实标量。单位是米。
例子:2.1
“网”
- - - - - -扩展对象网格extendedObjectMesh
对象扩展对象网格,指定为extendedObjectMesh
对象。
“RCSPattern”
- - - - - -车辆雷达横截面图[10 10;10 10]
(默认)|问——- - - - - -P实值矩阵车辆的雷达横截面(RCS)模式,指定为逗号分隔对,由“RCSPattern”
和一个问——- - - - - -P实值矩阵。RCS是方位角和仰角的函数,其中:
问仰角的数目是否由“RCSElevationAngles”
名称-值对。
P方位角的数目由方位角指定吗“RCSAzimuthAngles”
名称-值对。
单位是分贝每平方米(dBsm)。
例子:5.8
“RCSAzimuthAngles”
- - - - - -车辆RCS模式的方位角(-180 180)
(默认)|P元实值向量车辆RCS模式的方位角,指定为逗号分隔对,由“RCSAzimuthAngles”
和一个P元实值向量。P为方位角的个数。取值范围为[-180°,180°]。
的每个元素RCSAzimuthAngles
定义对应列的方位角“RCSPattern”
名称-值对。单位是度。
例子:(90:90)
“RCSElevationAngles”
- - - - - -车辆RCS模式的仰角(-90 90)
(默认)|问元实值向量飞行器RCS模式的仰角,指定为逗号分隔对,由“RCSElevationAngles”
和一个问元实值向量。问为仰角数。值的范围是[-90°,90°]。
的每个元素RCSElevationAngles
的对应行的仰角“RCSPattern”
名称-值对。单位是度。
例子:(0:90)
“FrontOverhang”
- - - - - -车辆前悬0.9
(默认)|真正的标量车辆的前悬垂,指定为逗号分隔对,由“FrontOverhang”
一个实标量。前悬垂是车辆超出前轴的距离。如果车辆没有延伸过前轴,那么前悬垂是负的。单位是米。
在车辆
对象的值,该方程定义长度
,FrontOverhang
,轴距
,RearOverhang
属性:
长度=前悬+轴距+后悬
如果你更新长度
,RearOverhang
,或轴距
属性,以维持等式车辆
对象增加或减少FrontOverhang
属性,并保持其他属性不变。
如果你更新FrontOverhang
属性,为了维持这个等式车辆
对象增加或减少轴距
属性,并保持其他属性不变。
当同时设置FrontOverhang
和RearOverhang
属性,以防止车辆
对象的FrontOverhang
值,设置RearOverhang
第一,紧随其后的是FrontOverhang
.对象计算新的轴距
自动属性值。
例子:0.37
“RearOverhang”
- - - - - -车辆后悬挑1.0
(默认)|真正的标量车辆的后悬挑,指定为逗号分隔对,由“RearOverhang”
一个实标量。后悬距是车辆延伸到后轴以外的距离。如果车辆没有延伸过后轴,那么后悬就是负的。负后悬在半挂车卡车是常见的,那里的卡车驾驶室不悬垂后轮。单位是米。
在车辆
对象的值,该方程定义长度
,FrontOverhang
,轴距
,RearOverhang
属性:
长度=前悬+轴距+后悬
如果你更新长度
,RearOverhang
,或轴距
属性,以维持等式车辆
对象增加或减少FrontOverhang
属性,并保持其他属性不变。
如果你更新FrontOverhang
属性,为了维持这个等式车辆
对象增加或减少轴距
属性,并保持其他属性不变。
当同时设置FrontOverhang
和RearOverhang
属性,以防止车辆
对象的FrontOverhang
值,设置RearOverhang
第一,紧随其后的是FrontOverhang
.对象计算新的轴距
自动属性值。
例子:0.32
的轴距
- - - - - -车轴之间的距离2.8
(默认)|积极的真正的标量汽车前后轴之间的距离,指定为逗号分隔的一对,由的轴距
一个正的实标量。单位是米。
在车辆
对象的值,该方程定义长度
,FrontOverhang
,轴距
,RearOverhang
属性:
长度=前悬+轴距+后悬
如果你更新长度
,RearOverhang
,或轴距
属性,以维持等式车辆
对象增加或减少FrontOverhang
属性,并保持其他属性不变。
如果你更新FrontOverhang
属性,为了维持这个等式车辆
对象增加或减少轴距
属性,并保持其他属性不变。
当同时设置FrontOverhang
和RearOverhang
属性,以防止车辆
对象的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 |
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。