主要内容

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

Lane

车道在道路上的 RoadRunner 场景

自 R2025a 起

    说明

    Lane 对象表示当前 RoadRunner 场景中道路上的一条车道。您可以使用 Lane 对象通过编程方式添加车道,并修改车道属性,例如车道的类型和行驶方向。您还可以指定车道标记以及车道外边界的宽度。

    创建对象

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

    • 要从您的 RoadRunner 场景中检索 Lane 对象,请提取 road 对象的 Lanes 属性。例如,rrLane1 = rrRoad.Lanes(1) 从道路 rrRoadLanes 属性中提取第一个 Lane 对象。

    • 您可以使用 addLaneToLeftaddLaneToRight 函数,分别在现有车道左侧或右侧(相对于道路方向)添加新车道。

    属性

    全部展开

    车道的行驶方向,指定为表格中列出的值之一。

    描述
    "Undirected"车辆可在道路上沿任意方向行驶。
    "Forward"车辆沿道路前进方向行驶。例如,若将此车道方向设置在从左向右行驶的道路上,车辆只能沿车道从左向右直行。
    "Backward"车辆逆向行驶。例如,若将此车道方向设置在从左向右行驶的道路上,车辆只能沿车道向后行驶,即从右向左移动。
    "Bidirectional"车辆可在道路的正向和反向行驶。

    车道类型,指定为本表所列值之一。

    描述
    "Driving"普通车道专供车辆通行,不作其他用途。
    "Biking"自行车专用车道。
    "Shoulder"车道代表道路边缘的软边界。本车道专用于紧急停车或车辆故障。
    "Border" 车道代表道路边缘的硬边界,紧邻道路边界。车辆不得驶出此车道。
    "Restricted"高乘载车辆专用车道。
    "Center Turn"双向道路中间的车道,专用于转弯。
    "Median"两条行驶方向相反的行驶车道之间的非行驶车道
    "Raised Median"中央分隔带,位于两个行驶方向相反的车道之间,带有隆起的区域。
    "Curb"车道代表道路边缘的路缘。车辆常在此车道停靠接送乘客。
    "Sidewalk"行人专用车道。
    "Parking"车道旁设有一条供车辆停放的车道。
    "Stop"高速公路紧急停车车道。
    "Road Works"非行车道,用于标示道路施工车道封闭。
    "Tram"有轨电车专用车道。
    "Rail"轻轨车辆专用车道。
    "Entry"加速车道与行驶车道平行
    "Exit"减速车道与行驶车道平行
    "Off Ramp"驶出高速公路并前往当地道路的匝道
    "On Ramp"从当地道路进入高速公路的匝道
    "None"非行驶车道,用于指定道路最外边缘的空间

    此 属性 为只读。

    车道的宽度轮廓,以 LaneWidthProfile 对象形式表示。车道的宽度轮廓定义了车道外边界的几何形状。

    此 属性 为只读。

    车道标记轮廓,以 LaneMarkingProfile 对象形式表示。车道的标记轮廓定义了车道外侧边界的标记。

    对象函数

    addLaneToRight在指定车道右侧添加车道
    addLaneToLeft在指定车道左侧添加车道

    示例

    全部折叠

    创建一个包含单条水平道路的 RoadRunner 场景,并添加两条方向相反的行车道。

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

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

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

    在当前工程中使用 newScene 函数创建一个新的 RoadRunner 场景,并指定路跑者对象 rrApp

    newScene(rrApp);

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

    rrApi = roadrunnerAPI(rrApp);

    从创作 API 对象 rrApiScene 属性中提取场景对象。提取的 Scene 对象可用于指定添加场景元素(如道路和车道)的场景。

    scn = rrApi.Scene;

    使用 addLineArcRoad 函数在场景中添加一条长度为 100 米的水平线弧形道路。通过指定道路控制点在 RoadRunner 局部坐标系 X 轴和 Y 轴上的位置来确定道路的位置。这些控制点定义了道路起始与终点的位置。您可以修改控制点的位置,以调整道路相对于场景原点的位置和方向。您还可以在线弧曲线的起点和终点之间添加控制点,以调整道路曲线的弯度和半径。

    controlPoints = [-50 0; 50 0];
    rrHorizontalRoad = addLineArcRoad(scn,controlPoints);

    从道路对象 rrHorizontalRoadReferenceLane 属性中提取道路的参考车道。参考车道定义了 RoadRunner 场景中道路的中心车道或参考线。该车道无宽度,作为定位所有其他车道的基础,RoadRunner 以此为基准线向外排列。

    refLane = rrHorizontalRoad.ReferenceLane;

    Roadrunner scene canvas with a reference lane

    使用提取的 refLane 对象,通过 addLaneToLeftaddLaneToRight 函数在道路参考车道两侧添加车道。然后,使用新增车道的 LaneTypeTravelDirection 属性分别指定每条车道的类型和行驶方向。首先,在水平道路左侧添加一条前进方向的行车道。

    horizontalLane1 = addLaneToLeft(refLane);
    horizontalLane1.LaneType = "Driving";
    horizontalLane1.TravelDirection = "Forward";

    Roadrunner scene canvas with a driving lane to the left of the reference lane

    然后,在水平道路右侧添加另一条行驶方向相反的车道。

    horizontalLane2 = addLaneToRight(refLane);
    horizontalLane2.LaneType = "Driving";
    horizontalLane2.TravelDirection = "Backward";

    Roadrunner scene canvas with two driving lanes, one with a forward and one with a backward travel direction

    版本历史记录

    在 R2025a 中推出