主要内容

车辆

添加车辆驾驶场景

描述

风投=车辆(场景)添加一个车辆对象,风投开车的场景,场景。车辆已经默认属性值。

车辆是一种特殊类型的演员长方体(盒子形状)对象,它有四个轮子。更多细节关于汽车的定义,请参阅演员和车辆位置和尺寸

例子

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

请注意

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

例子

全部折叠

创建一个驾驶场景包含一个弯曲的路,两个笔直的道路,和两个演员:一辆汽车和一辆自行车。两个角色都沿着路60秒钟。

创建驾驶场景对象。

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

使用道路中心创建弯曲的路点弧后800米半径的一个圆。弧始于0°,结束于90°,采样在5°的增量。

ang = [0:5:90] ';R = 800;roadcenters = R * [cosd (ang)信德(ang) 0(大小(ang))];roadwidth = 10;cr =路(场景、roadcenters roadwidth);

添加两个笔直的道路使用默认宽度,使用道路中心分两端。第一个直路道路边缘增加障碍。

roadcenters = [700 0 0;100 0 0];sr1 =路(场景,roadcenters);障碍(场景,sr1)屏障(场景,sr1,“RoadEdge”,“左”)roadcenters = (400 400 0;0 0 0];路(场景,roadcenters);

道路边界。

rbdry = roadBoundaries(场景);

一辆汽车和一辆自行车添加到场景。位置汽车的开头第一个直路。

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

自行车位置更远。

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

画出场景。

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

图包含一个坐标轴对象。坐标轴对象与标题的场景中,包含X (m), ylabel Y (m)含有1221块类型的对象,线。

显示演员的姿态和概要文件。

allActorPoses = actorPoses(场景)
allActorPoses =242×1结构体数组字段:辊距偏航AngularVelocity ActorID位置速度
allActorProfiles = actorProfiles(场景)
allActorProfiles =242×1结构体数组字段:ActorID ClassID长度宽度高度OriginOffset MeshVertices MeshFaces RCSPattern RCSAzimuthAngles RCSElevationAngles

因为有障碍在这个场景中,每个障碍部分被认为是一个演员,actorPosesactorProfiles函数返回所有平稳和非平稳的演员的姿势。只获得非平稳的姿态和概要演员如汽车和自行车,首先获得相应的演员IDs使用scenario.Actors.ActorID财产。

movableActorIDs = [scenario.Actors.ActorID];

然后,使用这些id只过滤非平稳演员的姿态和概要文件。

movableActorPoseIndices = ismember ([allActorPoses.ActorID], movableActorIDs);movableActorPoses = allActorPoses (movableActorPoseIndices)
movableActorPoses =2×1结构体数组字段:辊距偏航AngularVelocity ActorID位置速度
movableActorProfiles = allActorProfiles (movableActorPoseIndices)
movableActorProfiles =2×1结构体数组字段:ActorID ClassID长度宽度高度OriginOffset MeshVertices MeshFaces RCSPattern RCSAzimuthAngles RCSElevationAngles

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

场景= drivingScenario (“StopTime”3);

添加一个双车道道路场景。

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

添加另一个路相交第一个路成直角t形。

roadCenters = (20.3 - 38.4 0;20 3 0];laneSpecification = lanespec (2);路(场景、roadCenters“道”laneSpecification)
ans =道路的属性:名称:“RoadID: 2 RoadCenters: [2 x3双]RoadWidth: 7.3500 BankAngle: [2 x1双]标题:[2 x1双)

自我车辆添加到场景和定义它的锚点。自我车辆速度设置为20 m / s,产生自我车辆的轨迹。

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、锚点、速度)

non-ego工具添加到场景。设置non-ego车辆产卵和火后两次仿真通过指定向量进入时间和退出时间。请注意,每个条目时间价值小于相应的退出时间价值。

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

定义non-ego车辆的路径点。设置non-ego车辆速度30 m / s,生成它的轨迹。

路点= [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、锚点、速度)

添加另一个non-ego车辆的场景。设置第二个non-ego车辆产卵一次仿真通过指定一个条目期间作为一个积极的标量。因为你不指定一个退出时间,这个汽车仍将在场景中,直到结束的场景。

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

为第二个non-ego车辆定义路径点。设置车辆速度50 m / s和生成它的轨迹。

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

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

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

情节和运行模拟的场景。观察non-ego车辆产生和消失的场景模拟运行时。

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

图包含一个坐标轴对象和一个uipanel类型的对象。坐标轴对象包含X (m), ylabel Y (m)包含9补丁,类型的对象。一个或多个行显示的值只使用标记

输入参数

全部折叠

驾驶的情况下,指定为一个drivingScenario对象。

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:车辆(“长度”,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 =路(场景中,[0 0 0;10 0 0]);mainRoad屏障(场景,“ClassID”5);

默认的ClassID0被预留给一个未知或未赋值的类的一个对象。如果你计划导入drivingScenario对象进驾驶场景设计师应用程序,不离开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对象。如果你的场景导入驾驶场景设计师应用程序,那么车辆出现在这个颜色在所有应用程序可视化。如果你的场景导入仿真软件万博1manbetx®,那么车辆出现在这个颜色的鸟瞰的范围

如果你不指定颜色的车辆,该函数分配一个基于默认颜色的顺序对象。更多细节,请参阅ColorOrder财产对象。

为一个自定义颜色,指定一个RGB值或十六进制的颜色代码。

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

  • 十六进制颜色代码是一个字符串标量或字符始于一个散列向量符号(#)后面跟着三个月或六个十六进制数字,它的范围可以从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飞行符”

样品的颜色青色

“红色” “m” (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”

样本的RGB值(0 0.4470 - 0.7410),显示为深蓝色

(0.8500 0.3250 0.0980) “# D95319”

样本的RGB值(0.8500 0.3250 0.0980),它表现为暗橙

(0.9290 0.6940 0.1250) “# EDB120”

样本的RGB值(0.9290 0.6940 0.1250),它表现为暗黄色

(0.4940 0.1840 0.5560) “# 7 e2f8e”

样本的RGB值(0.4940 0.1840 0.5560),它表现为深紫色

(0.4660 0.6740 0.1880) “# 77 ac30”

样本的RGB值(0.4660 0.6740 0.1880),它表现为中绿色

(0.3010 0.7450 0.9330) “# 4 dbeee”

样本的RGB值(0.3010 0.7450 0.9330),它表现为浅蓝色

(0.6350 0.0780 0.1840) “# A2142F”

样本的RGB值(0.6350 0.0780 0.1840),它表现为深红色

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

车辆的旋转中心是其后桥的中点。车辆后部延伸的距离等于后方过剩。车辆向前延伸的距离等于之和轴距和转发过剩。单位是米。

例子:[10;50 0]

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

例子:(4、7、10)

汽车的偏航角,指定为逗号分隔组成的“偏航”和一个真正的标量。偏航是周围的车辆的旋转角吗z设在。偏航时clockwise-positive寻找前进方向的轴,从地面点了。因此,当查看车辆从上到下,比如在一个鸟瞰的情节,counterclockwise-positive偏航。角值包裹范围(-180、180)。单位是在度。

例子:-0.4

螺旋角的车辆,指定为逗号分隔组成的“节”和一个真正的标量。球场是周围的车辆的旋转角吗y设在,clockwise-positive时前进方向的轴。角值包裹范围(-180、180)。单位是在度。

例子:5.8

横摇角的车辆,指定为逗号分隔组成的“滚”和一个真正的标量。是周围的车辆的旋转角吗x设在,clockwise-positive时前进方向的轴。角值包裹范围(-180、180)。单位是在度。

例子:-10年

角速度(ω)的车辆,在世界坐标系中,指定为逗号分隔组成的“AngularVelocity”和一个ωxωyωz实值向量。单位是每秒度。

例子:(20 40 20)

车辆的长度,指定为逗号分隔组成的“长度”和积极的真正的标量。单位是米。

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

长度= 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属性:

长度= FrontOverhang +轴距+ RearOverhang

  • 如果你更新长度,RearOverhang,或轴距财产,维护,车辆对象的增加或减少FrontOverhang属性和其他属性不变。

  • 如果你更新FrontOverhang财产,维护这个方程,车辆对象的增加或减少轴距属性和其他属性不变。

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

例子:0.37

后方的车辆,指定为逗号分隔组成的“RearOverhang”和一个真正的标量。后方过剩是车辆的距离延伸到后轴。如果车辆没有延伸过去的后桥,然后后面过剩是负的。-后过剩是常见的半拖车卡车,卡车的驾驶室不过剩后轮。单位是米。

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

长度= FrontOverhang +轴距+ RearOverhang

  • 如果你更新长度,RearOverhang,或轴距财产,维护,车辆对象的增加或减少FrontOverhang属性和其他属性不变。

  • 如果你更新FrontOverhang财产,维护这个方程,车辆对象的增加或减少轴距属性和其他属性不变。

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

例子:0.32

车辆的前后轮轴之间的距离,指定为逗号分隔组成的的轴距和积极的真正的标量。单位是米。

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

长度= FrontOverhang +轴距+ RearOverhang

  • 如果你更新长度,RearOverhang,或轴距财产,维护,车辆对象的增加或减少FrontOverhang属性和其他属性不变。

  • 如果你更新FrontOverhang财产,维护这个方程,车辆对象的增加或减少轴距属性和其他属性不变。

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

例子:1.51

输出参数

全部折叠

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

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

唯一的财产,您不能修改ActorID,这是一个正整数表示独一无二的,车辆的场景定义ID。

指定运动和可视化工具,使用这些功能:

轨迹

创建演员或驾驶场景中车辆轨迹

smoothTrajectory

创建平滑,jerk-limited演员或驾驶场景中车辆轨迹

chasePlot

自我中心投影角度的阴谋

车辆特征信息,使用这些功能:

actorPoses

位置、速度和方向的演员驾驶场景

actorProfiles

演员的身体和雷达特征驱动的场景

targetOutlines

概述了目标被演员

targetPoses

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

driving.scenario.targetsToEgo

从世界坐标转换目标演员构成自我车辆坐标的场景

driving.scenario.targetsToScenario

演员提出了从自我目标车辆坐标转换为世界坐标的场景

得到的信息公路和车道上的车辆,使用这些功能:

roadBoundaries

得到道路边界

driving.scenario.roadBoundariesToEgo

道路边界转化为自我车辆坐标

currentLane

得到当前车道的演员

laneBoundaries

把演员巷巷边界

laneMarkingVertices

车道标记顶点和在驾驶场景

roadMesh

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

更多关于

全部折叠

演员和车辆位置和尺寸

在驾驶场景中,一个演员是一个长方体(盒子形状)对象与一个特定的长度,宽度和高度。演员也有雷达截面(RCS)模式,dBsm中指定,可以改善通过设置角方位角和仰角坐标。一个演员的位置被定义为中心的底部的脸。这个中心点作为演员的旋转中心,其与地面接触,和它的起源在其本地坐标系。在这个坐标系统:

  • X设在点从演员。

  • Y设在点的演员。

  • Z设在从地面点。

横滚、俯仰和偏航clockwise-positive时的前进方向X- - - - - -,Y- - - - - -,Z分别相互重合。

长方体演员与轴,轴、z轴偏航、俯仰,滚,高度,宽度,长度和位置标记

一个车辆是一个演员,车轮上的移动。车辆有三个额外属性管理前后轮轴的位置。

  • 轴距——前后轮轴之间的距离

  • 前悬——前面的车辆之间的距离和前轴

  • 后方过剩——距离后桥和后面的车辆

与其他类型的演员,一辆车的位置定义的点在地上,低于它的后桥的中心。这个点对应的自然中心的旋转。与nonvehicle演员一样,这一点在当地坐标系原点的车辆,地点:

  • X设在指向前方的车辆。

  • Y设在点离开车辆。

  • Z设在从地面点。

横滚、俯仰和偏航clockwise-positive时的前进方向X- - - - - -,Y- - - - - -,Z分别相互重合。

长方体车辆与轴,轴、z轴偏航、俯仰,滚,高度,宽度,长度,位置,前悬,轴距、后悬置的标签

此表显示了一个常见的演员和他们的尺寸列表。指定这些值演员车辆对象,设置相应的属性。

演员的分类 演员对象 演员属性
长度 宽度 高度 FrontOverhang RearOverhang 轴距 RCSPattern
行人 演员 0.24米 0.45米 1.7米 N /一个 N /一个 N /一个 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