主要内容

roadBoundaries

得到道路边界

描述

例子

rbdry= roadBoundaries (场景)返回的道路边界,rbdry驾驶的情况下,场景

rbdry= roadBoundaries (交流)返回的道路边界的演员,交流之前,在驾驶的情况下。

例子

全部折叠

创建一个驾驶场景包含一个弯曲的路,两个笔直的道路,和两个演员:一辆汽车和一辆自行车。两个角色都沿着路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

创建一个驾驶场景包含一个以道路在世界坐标系中指定的场景。场景的世界坐标转换为自我的坐标系统。

创建一个空的驾驶场景。

场景= drivingScenario;

添加一个以道路场景。显示的场景。

roadCenters = [0 0 1 -20 1 20 20 1 -20 -20 -20 20 1 0 0 1);roadWidth = 3;bankAngle = [0 15 15 -15 -15 0];路(场景、roadCenters roadWidth bankAngle);情节(场景)

图包含一个坐标轴对象。坐标轴对象包含X (m), ylabel Y (m)包含4补丁,类型的对象。

添加一个自我车辆的场景。在世界坐标位置的车辆(-20)和东方的偏航角是-15度。

自我=演员(场景中,“ClassID”,1“位置”(-20 0),“偏航”,-15);

图包含一个坐标轴对象。坐标轴对象包含X (m), ylabel Y (m)包含5补丁,类型的对象。

获得自我的道路边界车辆使用的坐标roadBoundaries函数。指定自我车辆作为输入参数。

rbEgo1 = roadBoundaries(自我);

显示结果上鸟瞰的阴谋。

cep = birdsEyePlot;枸杞多糖= laneBoundaryPlotter (cep),“DisplayName的”,“路”);rbEgo1 plotLaneBoundary (lbp)

图包含一个坐标轴对象。坐标轴对象包含X (m), ylabel Y (m)包含一个类型的对象。这个对象表示。

获得在世界坐标通过道路边界roadBoundaries函数。指定的场景作为输入参数。

rbScenario = roadBoundaries(场景);

获得自我的道路边界车辆使用的坐标driving.scenario.roadBoundariesToEgo函数。

rbEgo2 = driving.scenario.roadBoundariesToEgo (rbScenario、自我);

显示道路边界上鸟瞰的阴谋。

cep = birdsEyePlot;枸杞多糖= laneBoundaryPlotter (cep),“DisplayName的”,“道路边界”);plotLaneBoundary(枸杞多糖,{rbEgo2})

图包含一个坐标轴对象。坐标轴对象包含X (m), ylabel Y (m)包含一个类型的对象。这个对象表示道路边界。

输入参数

全部折叠

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

演员属于一个drivingScenario对象,指定为一个演员车辆对象。要创建这些对象,可以使用演员车辆函数,分别。

输出参数

全部折叠

道路边界,作为细胞数组返回。单元阵列中的每个单元格都包含一个实值N3矩阵代表道路边界在该方案中,N是道路的数量界限。矩阵的每一行对应于(x,y,z)一个道路边界顶点的坐标。

输入参数是一个驾驶场景时,路坐标对驾驶的世界坐标的场景。当输入参数是一个演员,道路坐标系坐标的演员。

数据显示道路的数量界限rbdry包含各种道路类型。

单路——一个路边界 十字路口——一个道路边界

弯曲的道路与道路边界标记“1”

4路十字路口道路边界标记“1”

迂回的——两个道路边界 以数字——三路边界

迂回与外部道路边界标记“1”和内部道路边界标记“2”

以与外部道路边界标记“1”和内部道路边界标记“2”和“3”

版本历史

介绍了R2017a