Main Content

SimulationTimeCondition

Specify Simulation Time condition

Since R2025a

    Description

    A SimulationTimeCondition object represents a Simulation Time condition in the RoadRunner scenario logic. The SimulationTime condition specifies for the associated phase to end after the specified amount of time has elapsed since the start of the simulation. You can use the SimulationTimeCondition object to programmatically modify the attributes of the corresponding Simulation Time condition by changing the property values of the object.

    Creation

    By default, RoadRunner Scenario automatically adds a Simulation Time condition to the scenario root phase when you create a new scenario. However, you can also create a SimulationTimeCondition object in these ways:

    • The setEndCondition function creates and assigns a condition of the specified type to the end of a specified phase. Specify the conditionType argument as "SimulationTimeCondition" to create a SimulationTimeCondition object associated with the specified phase.

    • The setFailCondition function assigns a condition of the specified type to the Fail Conditions of the scenario root phase. Specify the conditionType argument as "SimulationTimeCondition" to create a SimulationTimeCondition object associated with the scenario Fail Conditions.

    Properties

    expand all

    Name of the condition, specified as a string scalar or character vector.

    Note

    You can specify the Name property of SimulationTimeCondition in MATLAB®, but RoadRunner Scenario does not display the Name property of conditions in the user interface.

    Amount of time, in seconds, that satisfies the condition, specified as a positive scalar. RoadRunner Scenario measures the time elapsed since the start of the simulation against the value of Time.

    Data Types: double

    Examples

    collapse all

    By default, RoadRunner Scenario automatically adds a Simulation Time condition, with a Time value of 60.00 seconds, to the scenario root phase when you create a new scenario. This specifies for the simulation to end after 60 seconds, regardless of the state of other logic phases or conditions. To modify the default Simulation Time condition, extract the SimulationTimeCondition object from the root phase of the scenario PhaseLogic object.

    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.

    Open an existing scene in RoadRunner by using the openScene function, specifying the roadrunner object rrApp and the filename of the specific scene that you want to open. Then, use the newScenario function to create a new scenario.

    openScene(rrApp,"ScenarioBasic.rrscene")
    newScenario(rrApp)

    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;

    To get a PhaseLogic object, rrLogic, that represents the RoadRunner scenario logic, extract the PhaseLogic property of the scenario object scnro.

    rrLogic = scnro.PhaseLogic;
    

    To modify the default scenario Simulation Time condition, first extract the RootPhase property of the phase logic object rrLogic. Then, extract the SimulationTimeCondition object from the EndCondition property of the root phase rootPhs.

    To set a new simulation time for the scenario, specify a value for the Time property of the SimulationTimeCondition object simTime.

    rootPhs = rrLogic.RootPhase;
    simTime = rootPhs.EndCondition;
    simTime.Time = 10;

    To simulate the scenario, you must first add a Vehicle actor to the scenario. Use the getAsset function to extract a VehicleAsset object, mySedan, that represents the Sedan.fbx asset in the project prj. Then, use the addActor function, specifying the scenario object scnro, the asset object, and the location at which to place the actor.

    Place the vehicle actor car at the world origin, specified as [0 0 0]. If you do not know the exact coordinates at which you want to place the actor, you can relocate the actor based on an existing point or anchor. For example, you can use findSceneAnchor to reference an existing anchor in the scene, then use anchorToPoint to relocate the actor from its current location to the location specified by the referenced anchor. For more information, see findSceneAnchor and anchorToPoint.

    mySedan = getAsset(prj,"Vehicles/Sedan.fbx","VehicleAsset");
    car = addActor(scnro,mySedan,[0 0 0]);
    anchorPoint = findSceneAnchor(scnro,"ScenarioStart");
    carPoint = car.InitialPoint;
    anchorToPoint(carPoint,anchorPoint,PosePreservation="reset-pose")

    Run the simulation by using the simulateScenario function. RoadRunner simulates the scenario for the time specified by simTime.

    simulateScenario(rrApp)

    Version History

    Introduced in R2025a