# getAttribute

Get runtime attribute of actor

Since R2022a

## Syntax

``runtimeAttr = getAttribute(actorSim,runtimeAttrName)``

## Description

example

````runtimeAttr = getAttribute(actorSim,runtimeAttrName)` returns the specified runtime attribute of the `ActorSimulation` object `actorSim`. When you use this function inside the `stepImpl` method of MATLAB® System object™, the function returns the states from the previous time step except the actor `ID`.```

## Examples

collapse all

Create a `ScenarioSimulation` object for a scenario with multiple actors.

```rrApp = roadrunner("C:\Project\TestHighwayRoute"); openScenario(rrApp,"myScenario1"); sim = createSimulation(rrApp);```

Start the simulation.

`set(sim,"SimulationCommand","Start");`

Pause the simulation.

`set(sim,"SimulationCommand","Pause");`

Get all actors from the simulation.

```actorsim = get(sim,"ActorSimulation"); ```

Get the first two actors from the list.

```one = actorsim(1); two = actorsim(2); ```

Get the ID of the first actor.

`id = getAttribute(one,"ID")`
```id = uint64 1 ```

`pose = getAttribute(one,"Pose")`
```pose = 0.1096 0.9940 -0.0000 -28.1452 -0.9940 0.1096 0.0000 -3.2291 0.0000 0.0000 1.0000 -0.0000 0 0 0 1.0000 ```

Get the velocity of the second actor.

`velocity = getAttribute(two,"Velocity")`
```velocity = 6.9507 2.8702 0.0000 ```

Get the angular velocity of the first actor.

`angvelocity = getAttribute(two,"AngularVelocity") `
```angvelocity = 0 0.23 0 ```

Get the wheel poses of the second actor.

`wheelposes = getAttribute(two,"WheelPoses")`
```wheelposes(:,:,1) = 0.9972 -0.0671 -0.0330 -0.5672 -0.0747 -0.8946 -0.4405 1.3838 0 0.4417 -0.8971 0.3441 0 0 0 1.0000 wheelposes(:,:,2) = 0.9974 -0.0650 -0.0320 0.5672 -0.0725 -0.8948 -0.4406 1.3838 0 0.4417 -0.8971 0.3441 0 0 0 1.0000 wheelposes(:,:,3) = 1.0000 0 0 -0.5672 0 -0.8971 -0.4417 -1.3295 0 0.4417 -0.8971 0.3441 0 0 0 1.0000 wheelposes(:,:,4) = 1.0000 0 0 0.5672 0 -0.8971 -0.4417 -1.3295 0 0.4417 -0.8971 0.3441 0 0 0 1.0000 ```

Get the map location of the first actor.

`ml = getAttribute(one,"LaneLocation")`
```ml = struct with fields: IsOnLane: 1 LocationOnLane: [1×1 struct] ```

Check whether the actor is on its lane.

`ml.IsOnLane`
```ans = logical 1 ```

Get information about the lane the actor is on.

`ml.LocationOnLane`
```ans = struct with fields: LaneID: '{7c2e895c-6b90-4892-aa6e-9ed116db53b5}' Position: 0.5359 Angle: 0.0014 ```

## Input Arguments

collapse all

Actor from which to return runtime attribute, specified as an `ActorSimulation` object.

Name of runtime attribute to be retrieved, specified as one of these values.

• `"ID"`

• `"Pose"`

• `"Velocity"`

• `"AngularVelocity"`

• `"WheelPoses"`

• `"LaneLocation"`

• `"Children"`

• `"Parent"`

Data Types: `string` | `char`

## Output Arguments

collapse all

Runtime attribute of actor, returned as a scalar, array, structure, or object, depending on the value of the input argument `runtimeAttrName`.

Value of `runtimeAttrName`Value of `runtimeAttr`
`"ID"`Actor identifier, returned as a scalar of data type `uint64`.
`"Pose"`Position and orientation of actor in the RoadRunner Scenario coordinate system, returned as a 4-by-4 array. See What Is a RoadRunner Pose Matrix? for more information.
`"Velocity"`Velocity of actor in the x-, y- and z- directions, returned as a 1-by-3 vector. Units are in meters per second.
`"AngularVelocity"`Angular velocity of actor in the x-, y-and z- directions, returned as a 1-by-3 vector. Units are in radians per second.
`"WheelPoses"`

Runtime pose of each wheel of vehicle-type actor, returned as a 4-by-4-by-N array. N is the number of wheels of the vehicle-type actor.

`WheelPoses` is returned for wheels starting on the leftmost side of the front axle, and moving to the right. After the first axle is complete, the leftmost wheel on the second axle is taken into consideration before moving to the right, and so on.

`"LaneLocation"`Location of actor with respect to the lane it is mapped to.
`"Children"`

Immediate children of specified actor, if any, returned as an array of `ActorSimulation` objects.

If the specified actor does not have any child actors, then an empty array is returned.

`"Parent"`

Immediate parent of specified actor, returned as an `ActorSimulation` object.

If the specified actor itself is a parent, then the `ActorSimulation` object corresponding to the world actor is returned.

This table describes the fields of the `LaneLocation` structure.

Field NameDescription
`IsOnLane`Boolean value indicating if the actor is located on a lane. An actor is considered to be on a certain lane if its model origin lies in between the left and right boundaries of this lane.
`LocationOnLane`Current lane of actor, returned as a `struct`. If an actor straddles several lanes, the most aligned lane is returned.

The table describes the fields of the `LocationOnLane` structure of the `LaneLocation` structure.

Field NameDescription
`LaneID`UUID identifier of the most aligned lane, returned as a string.
`Position`Position of the actor on the lane-center polyline (in s-value). The s-value is a `double` value within [0, 1] that indicates a position on a 3-D polyline with 0 at the start and 1 at the end of the polyline.
`Angle`Angle between the actor travel direction and tangent at the lane position. Units are in radians.

## Version History

Introduced in R2022a