Main Content

MovableObject

Specify movable object actor

Since R2025a

    Description

    The MovableObject object represents a movable object actor in the RoadRunner scenario. An actor is an object within a scenario that interacts with scenario logic during simulation. You can use the MovableObject object to programmatically modify the attributes of the corresponding movable object actor in your scenario by changing the property values of the object.

    Creation

    You can create a MovableObject object by using the addActor function. The addActor function creates an actor in the scenario using the specified asset and scene location.

    Properties

    expand all

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

    Numeric identifier of the actor, specified as a positive integer.

    Color of the actor, specified as a four-element vector of the form [R,G,B,A], a string scalar, or a character vector. If specified as a vector, R, G, B, and A represent the red, green, blue, and alpha values for the actor color, respectively. If specified as a string scalar or character vector, you must use a color name, such as "blue", or a hexadecimal value, such as "#0072BD".

    This table lists the named color options, the equivalent RGBA values, and hexadecimal color codes.

    Color NameShort NameRGBA ValueHexadecimal Color CodeAppearance
    "red""r"[1 0 0 1]"#FF0000"

    Sample of the color red

    "green""g"[0 1 0 1]"#00FF00"

    Sample of the color green

    "blue""b"[0 0 1 1]"#0000FF"

    Sample of the color blue

    "cyan" "c"[0 1 1 1]"#00FFFF"

    Sample of the color cyan

    "magenta""m"[1 0 1 1]"#FF00FF"

    Sample of the color magenta

    "yellow""y"[1 1 0 1]"#FFFF00"

    Sample of the color yellow

    "black""k"[0 0 0 1]"#000000"

    Sample of the color black

    "white""w"[1 1 1 1]"#FFFFFF"

    Sample of the color white

    Note

    You can specify the Color property of MovableObject actors in MATLAB®, but actors that use externally referenced models, such as an .fbx file, do not visually reflect changes made to the Color property.

    Asset to use for the actor, specified as a MovableObjectAsset object. For more information on actor asset types, see Actors in RoadRunner Scenario (RoadRunner Scenario).

    Actor behavior, specified as a BehaviorAsset object. By default, actors do not have an assigned BehaviorAsset asset. Actors without BehaviorAsset assets follow the RoadRunner Scenario built-in behavior during simulation.

    Initial location of the actor, specified as a Point object.

    Examples

    collapse all

    Use the getAsset and addActor functions to add a movable object actor that uses the TrafficCone01.fbx asset to your RoadRunner scenario.

    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 scenarios, such as by adding and modifying actors and logic components, using MATLAB.

    rrApi = roadrunnerAPI(rrApp);
    
    Extract the object for your scenario from the Scenario property of the authoring API object rrApi. The extracted Scenario object enables you to specify the scenario in which to add scenario components such as actors and logic.
    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 actors in your scenario.
    prj = rrApi.Project;

    Add a MovableObject actor to the scenario. Use the getAsset function to extract a MovableObjectAsset object, myObj, that represents the TrafficCone01.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 movable object actor cone at the world origin, specified as [0 0 0].

    myObj = getAsset(prj,"Props/TrafficControl/TrafficCone01.fbx","MovableObjectAsset");
    cone = addActor(scnro,myObj,[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.

    anchorPoint = findSceneAnchor(scnro,"ScenarioStart");
    conePoint = cone.InitialPoint;
    anchorToPoint(conePoint,anchorPoint,PosePreservation="reset-pose")

    By default, the initial speed value for MovableObject actors is 0 m/s. To enable the MovableObject actor to move during simulation, extract the phase logic in your RoadRunner scenario from the PhaseLogic property of your scenario object scnro. Use initialPhaseForActor to extract the object for the initial phase of cone from the phase logic object. Then, use the findActions function to extract the ChangeSpeedAction object from the initial phase and change the Speed property to a value greater than 0 m/s.

    rrLogic = scnro.PhaseLogic;
    coneInitPhase = initialPhaseForActor(rrLogic,cone);
    coneSpeed = findActions(coneInitPhase,"ChangeSpeedAction");
    coneSpeed.Speed = 5;

    Run the simulation by using the simulateScenario function. If you do not specify a BehaviorAsset object or logic phases to alter actor behavior, the actor performs the default lane-following behavior.

    simulateScenario(rrApp)

    Version History

    Introduced in R2025a