主要内容

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

insertNode

R2026b

在跨段序列中插入节点

自 R2025a 起

    描述

    spanNode = insertNode(spanSequence,distance) 在跨段序列中指定距离处插入一个新节点。插入的节点通过充当其局部控制点,实现了对跨段序列的精确操控。每个节点的位置由其与道路基准线起点的距离来确定。

    示例

    示例

    全部折叠

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

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

    注意

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

    在 RoadRunner 中使用 newScene 函数创建新场景,指定 roadrunner 对象 rrApp。

    newScene(rrApp)
    

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

    rrApi = roadrunnerAPI(rrApp);
    
    从创作 API 对象 rrApi 的 Scene 属性中提取场景对象。提取的 Scene 对象可用于指定添加场景组件(如道路和车道)的场景。
    scn = rrApi.Scene;

    从创作 API 对象 rrApi 的 Project 属性中提取 RoadRunner 工程的对象。提取的 Project 对象可让您指定当前 RoadRunner 会话的工程文件夹,以便从中检索素材对象。您可以使用素材对象为场景中的车道添加车道标记。

    prj = rrApi.Project;

    使用 addLineArcRoad 函数向场景中添加一条具有线弧形水平曲线类型的道路。通过指定道路控制点在 RoadRunner 局部坐标系的 X- 和 Y- 轴上的位置来确定道路的位置。将道路的控制点分别设置在 X- 轴上的 -100 和 Y- 轴上的 50。

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

    从道路 rrRoad 的 ReferenceLane 属性中提取参考车道。提取的属性 ReferenceLane 定义了道路的中线。

    refLane = rrRoad.ReferenceLane;

    使用 getAsset 函数获取用于虚实黄线标记和实黄线标记的 LaneMarkingStyle 对象。这些对象定义了用于标记参考车道车道标记轮廓中跨段的车道标记素材。

    dashedSolidYellowMarkingStyle = getAsset(prj, "<PROJECT>/Assets/Markings/DashedSolidYellow.rrlms", "LaneMarkingStyle");
    solidDoubleYellowMarkingStyle = getAsset(prj, "<PROJECT>/Assets/Markings/SolidDoubleYellow.rrlms", "LaneMarkingStyle");

    使用 refLane 对象的 LaneMarkingProfile 属性提取参考车道的车道标记轮廓。

    refLaneMarkingProfile = refLane.LaneMarkingProfile;

    在车道标记轮廓中,使用 insertNode 函数在三个 30 米跨段处插入节点。该方案通过在 30 米、60 米和 90 米处插入节点,将车道标记轮廓划分为四个跨段。

    insertNode(refLaneMarkingProfile, 30);
    insertNode(refLaneMarkingProfile, 60);
    insertNode(refLaneMarkingProfile, 90);
    

    输入参数

    全部折叠

    跨段序列,指定为 SpanSequence 对象。

    节点沿跨段序列的距离,以数值标量形式指定。单位为米。该距离相对于跨段序列的起始点进行测量,且必须位于 [0, total length of the span sequence] 范围内。

    默认情况下,RoadRunner 中的跨段序列包含两个固定节点--一个位于起始处(0 米),另一个位于终点(等于跨段序列的总长度)。这些节点定义了初始跨段,且无法重新定位。您可以在跨段序列中自定义距离处添加额外节点。

    数据类型: double

    输出参量

    全部折叠

    在跨段序列中插入的新节点,以 SpanSequenceNode 对象形式返回。

    版本历史记录

    在 R2025a 中推出