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”,“上”);标题(“场景”);
显示演员的姿态和概要文件。
allActorPoses = actorPoses(场景)
allActorPoses =242×1结构体数组字段:辊距偏航AngularVelocity ActorID位置速度
allActorProfiles = actorProfiles(场景)
allActorProfiles =242×1结构体数组字段:ActorID ClassID长度宽度高度OriginOffset MeshVertices MeshFaces RCSPattern RCSAzimuthAngles RCSElevationAngles
因为有障碍在这个场景中,每个障碍部分被认为是一个演员,actorPoses
和actorProfiles
函数返回所有平稳和非平稳的演员的姿势。只获得非平稳的姿态和概要演员如汽车和自行车,首先获得相应的演员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);情节(场景)
添加一个自我车辆的场景。在世界坐标位置的车辆(-20)和东方的偏航角是-15度。
自我=演员(场景中,“ClassID”,1“位置”(-20 0),“偏航”,-15);
获得自我的道路边界车辆使用的坐标roadBoundaries
函数。指定自我车辆作为输入参数。
rbEgo1 = roadBoundaries(自我);
显示结果上鸟瞰的阴谋。
cep = birdsEyePlot;枸杞多糖= laneBoundaryPlotter (cep),“DisplayName的”,“路”);rbEgo1 plotLaneBoundary (lbp)
获得在世界坐标通过道路边界roadBoundaries
函数。指定的场景作为输入参数。
rbScenario = roadBoundaries(场景);
获得自我的道路边界车辆使用的坐标driving.scenario.roadBoundariesToEgo
函数。
rbEgo2 = driving.scenario.roadBoundariesToEgo (rbScenario、自我);
显示道路边界上鸟瞰的阴谋。
cep = birdsEyePlot;枸杞多糖= laneBoundaryPlotter (cep),“DisplayName的”,“道路边界”);plotLaneBoundary(枸杞多糖,{rbEgo2})
输入参数
场景
- - - - - -驾驶场景
drivingScenario
对象
驾驶的情况下,指定为一个drivingScenario
对象。
交流
- - - - - -演员
演员
对象|车辆
对象
演员属于一个drivingScenario
对象,指定为一个演员
或车辆
对象。要创建这些对象,可以使用演员
和车辆
函数,分别。
输出参数
rbdry
——道路边界
单元阵列
道路边界,作为细胞数组返回。单元阵列中的每个单元格都包含一个实值N3矩阵代表道路边界在该方案中,N是道路的数量界限。矩阵的每一行对应于(x,y,z)一个道路边界顶点的坐标。
输入参数是一个驾驶场景时,路坐标对驾驶的世界坐标的场景。当输入参数是一个演员,道路坐标系坐标的演员。
数据显示道路的数量界限rbdry
包含各种道路类型。
单路——一个路边界 | 十字路口——一个道路边界 |
---|---|
|
|
迂回的——两个道路边界 | 以数字——三路边界 |
---|---|
|
|
版本历史
介绍了R2017a
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。