Main Content

Road

Specify road in RoadRunner scene

Since R2025a

    Description

    The Road object represents an instance of a road in the current RoadRunner scene. You can use the Road object to modify the reference curve that the road layout is based on, such as by modifying travel direction, adding lanes, and adding lane markings.

    Creation

    You can create a Road object in these ways:

    • The addLineArcRoad function creates a new line-arc curve at the specified position in the specified scene.

    • The addSegmentedRoad function creates a new segmented curve at the specified position in the specified scene.

    • The addClothoidFitRoad function creates a segmented curve type road in the specified scene by using a clothoid curve fit for the horizontal road curve and a cubic fit for the vertical road curve.

    Properties

    expand all

    Vertical curve of the road, specified as one of these objects:

    • QuadraticVerticalRoadCurve object — Represents a quadratic vertical road curve. RoadRunner interpolates the height between node positions and smoothly curves the road through the blend range.

    • CubicVerticalRoadCurve object — Represents a cubic vertical road curve. To interpolate the road curve height between the start and end nodes, RoadRunner interpolates both the elevation and the slope between those nodes.

    Horizontal curve of the road, specified as one of these objects:

    • LineArcRoadCurve object — Represents a line-arc road curve that uses control points to define the curve.

    • SegmentedRoadCurve object — Represents a segmented road curve that supports using line, arc, spiral, and parametric cubic road segments to define the curve.

    Reference lane of the road, specified as a ReferenceLane object. The reference lane enables you to specify the relative positions, sequence, and lane marking profiles of the Lanes on the road.

    Lanes of the road, specified as a Lane object or an array of Lane objects.

    Examples

    collapse all

    Use the addLineArcRoad function to add two intersecting roads to the scene scn. Then, use the addLaneToLeft and addLaneToRight functions to add lanes to each side of both roads.

    Create a roadrunner object, specifying the path to an existing project. For example, this code shows the path to a project, on a Windows® machine, located at "C:\RR\MyProject". This code assumes that RoadRunner is installed in the default location, and returns an object, rrApp, that provides functions for performing basic tasks such as opening, closing, and saving scenes and projects.

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

    Note

    If you are opening RoadRunner from MATLAB® for the first time, or if you have changed the RoadRunner installation location since you last opened it from MATLAB, you can use the roadrunnerSetup function to specify new default project and installation folders to use when opening RoadRunner. You can save these folders between MATLAB sessions by selecting the Across MATLAB sessions option from the corresponding drop down.

    Create an object for the RoadRunner authoring API, rrApi, that references the object for the current RoadRunner instance rrApp. The rrApi object enables you to programmatically author scenes and scenarios, such as by adding and modifying roads, actors, and logic components, using MATLAB.

    rrApi = roadrunnerAPI(rrApp);
    
    Extract the scene and scenario objects from the Scene and Scenario properties of the authoring API object rrApi, respectively. The extracted Scene object enables you to specify the scene in which to add scene components such as roads and lanes. The extracted Scenario (RoadRunner Scenario) object enables you to specify the scenario in which to add scenario components such as actors and logic.
    scn = rrApi.Scene;
    scnro = rrApi.Scenario;
    Extract the object for your RoadRunner project from the Project property of the authoring API object rrApi. The extracted Project object enables you to specify the project folder for the current RoadRunner session from which to retrieve asset objects. You can use the asset objects to assign assets to roads in your scene, or to actors in your scenario.
    prj = rrApi.Project;

    Use addLineArcRoad to Add Roads

    Use addLineArcRoad to add two roads, road1 and road2, to the scene. Specify the positions of the roads by specifying the positions of their control points along the X- and Y-axes of the RoadRunner local coordinate system. Set the control points of road1 to -100 and 100 on the X-axis. Then, to create an intersection, specify the positions of the control points for road2 as 50 and -50 on the Y-axis.

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

    By default, roads do not have any lanes and RoadRunner displays only their reference lanes in the scene editor. To add lanes to roads, extract the reference lane objects from the ReferenceLane properties of road1 and road2.

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

    Use the addLaneToLeft and addLaneToRight functions to add lanes to the left and right of both roads by specifying their ReferenceLane objects.

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

    You can use Road objects to create road networks in your scene to use for scenario simulation in RoadRunner Scenario. For more information on creating roads in RoadRunner, see the Road Plan Tool (RoadRunner).

    Version History

    Introduced in R2025a