主要内容

本页采用了机器翻译。点击此处可查看英文原文。

Road

RoadRunner 场景中指定道路

自 R2025a 起

    说明

    Road 对象表示当前 RoadRunner 场景中道路的一个实例。您可以使用 Road 对象来修改道路布局所基于的参考曲线,例如修改行驶方向、添加车道以及添加车道标记。

    创建对象

    您可以通过以下方式创建一个 Road 对象:

    • addLineArcRoad 函数在指定场景的指定位置创建一条新的线弧曲线。

    • addSegmentedRoad 函数在指定场景的指定位置创建一条新的分割曲线。

    • addClothoidFitRoad 函数通过使用克罗索曲线拟合水平道路曲线,并采用三次曲线拟合垂直道路曲线,在指定场景中创建分段曲线型道路。

    属性

    全部展开

    道路的垂直曲线,指定为以下目标之一:

    • QuadraticVerticalRoadCurve 目标 - 表示二次垂直道路曲线。RoadRunner 在节点位置之间插值高度,并通过混合范围使道路平滑过渡。

    • CubicVerticalRoadCurve 对象 - 表示一个垂直的三维道路曲线。为插值起始节点与终点节点之间的道路曲线高程,RoadRunner 同时对该区间的高程与坡度进行插值处理。

    道路横向曲线,指定为以下目标之一:

    • LineArcRoadCurve对象 — 表示使用控制点定义曲线的线弧道路曲线。

    • SegmentedRoadCurve 对象 — 表示分段道路曲线,支持使用直线、圆弧、螺旋线和参数化三次曲线段来定义曲线。

    道路的参考车道,指定为ReferenceLane 目的。参考车道功能可让您指定道路上 Lanes 的相对位置、顺序及车道标记轮廓。

    道路车道,指定为Lane Lane 对象或 Lane 对象数组。

    道路超高或倾斜角度轮廓,以 SuperElevationCurve 对象指定。超高曲线定义了路面横向倾斜角度沿道路长度方向的连续变化情况。

    超高曲线由以下几个部分组成:

    侧轮廓,指定为 LateralProfile 对象。该属性控制道路宽度方向上的横向高程、坡度和横截面高度变化。

    对象函数

    addLateralHeight增加道路的横向高度变化

    示例

    全部折叠

    使用 addLineArcRoad 函数将两条相交道路添加到场景 scn 中。然后,使用addLaneToLeftaddLaneToRight 为两条道路的两侧各增加车道的功能。

    创造一只roadrunner 对象,指定现有工程的路径。例如,此代码显示 Windows® 计算机上位于 "C:\RR\MyProject" 的工程的路径。此代码假设 RoadRunner 已安装在默认位置,并返回一个名为 rrApp 的对象,该对象提供用于执行基本任务的函数,例如打开、关闭和保存场景及工程。

    rrApp = roadrunner(ProjectFolder="C:\RR\MyProject");

    注意

    若您首次从 MATLAB® 打开 RoadRunner,或自上次从 MATLAB 打开以来更改了 RoadRunner 的安装位置,可使用 roadrunnerSetup 功能指定新的默认工程和安装文件夹,以便在打开 RoadRunner 时使用。您可以在 MATLAB 会话之间通过从对应下拉菜单中选择 Across MATLAB sessions 选项来保存这些文件夹。

    创建一个对象,用于 RoadRunner 创作 API 的 rrApi,该对象引用当前 RoadRunner 实例 rrApp 的对象。rrApi 对象支持通过编程方式创建场景与情境,例如利用 MATLAB 添加和修改道路、交通参与者及逻辑组件。

    rrApi = roadrunnerAPI(rrApp);
    
    分别从创作 API 对象 rrApiSceneScenario 属性中提取场景对象和情境对象。提取的 Scene 对象可用于指定添加场景组件(如道路和车道)的场景。提取的 Scenario (RoadRunner Scenario) 对象使您能够指定添加情境组件(如交通参与者和逻辑)的场景。
    scn = rrApi.Scene;
    scnro = rrApi.Scenario;
    从创作 API 对象 rrApiProject 属性中提取 RoadRunner 工程的对象。提取的 Project 对象可让您指定当前 RoadRunner 会话的工程文件夹,以便从中检索资源对象。您可以使用素材对象将素材分配给场景中的道路,或分配给情境中的交通参与者。
    prj = rrApi.Project;

    使用 addLineArcRoad 添加道路

    使用addLineArcRoad 在场景中添加两条道路,road1road2。通过指定道路控制点在 RoadRunner 局部坐标系 X 轴和 Y 轴上的位置来确定道路的位置。将 road1 的控制点设置为 X 轴上的 -100100。然后,要创建交叉路口,需在 Y 轴上指定 road2 的控制点位置为 50-50

    road1 = addLineArcRoad(scn,[-100 0; 100 0]);
    road2 = addLineArcRoad(scn,[0 50; 0 -50]);

    默认情况下,道路不包含任何车道,RoadRunner 在场景编辑器中仅显示其参考车道。要向道路添加车道,请从ReferenceLane中提取参考车道对象。 road1road2 的属性。

    road1Ref = road1.ReferenceLane;
    road2Ref = road2.ReferenceLane;

    使用addLaneToLeftaddLaneToRight 通过指定ReferenceLane,在两条道路的左右两侧添加车道的功能物体。

    leftLane1 = addLaneToLeft(road1Ref);
    rightLane1 = addLaneToRight(road1Ref); 
    leftLane2 = addLaneToLeft(road2Ref);
    rightLane2 = addLaneToRight(road2Ref);

    您可以在场景中使用 Road 对象创建道路网络,用于在 RoadRunner Scenario 中进行情境仿真。有关在 RoadRunner 中创建道路的更多信息,请参阅 Road Plan Tool

    版本历史记录

    在 R2025a 中推出

    全部展开