主要内容

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

Road

RoadRunner 场景中指定道路

自 R2025a 起

    说明

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

    创建对象

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

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

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

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

    属性

    全部展开

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

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

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

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

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

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

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

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

    示例

    全部折叠

    使用 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 在场景编辑器中仅显示其参考车道。要为道路添加车道,请从 road1road2ReferenceLane 属性中提取参考车道对象。

    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 中推出