# setup

Set up the mobile robot state propagator

Since R2021b

## Syntax

``setup(mobileProp)``

## Description

example

````setup(mobileProp)` sets up the `mobileRobotPropagator` object based on the properties of the object. If you change the properties of the object, use this object function before you use the object to sample controls, propagate the system, or calculate distances. NoteOverride this function to implement custom functionality to run in the setup. ```

## Examples

collapse all

Create a state propagator and specify the distance metric for estimating propagation cost.

`propagator = mobileRobotPropagator(DistanceEstimator="dubins");`

Create a Dubins state space.

`dubinsSpace = stateSpaceDubins([0 25; 0 25; -pi pi]);`

Update the state space of the state propagator using the created state space.

```propagator.StateSpace = dubinsSpace; setup(propagator)```

Create a `navPath` object based on multiple waypoints in a Dubins space.

```path = navPath(dubinsSpace); waypoints = [8 10 pi/2; 7 14 pi/4; 10 17 pi/2; 10 10 -pi]; append(path,waypoints)```

Interpolate that path so that it contains exactly 250 points.

```numStates = 250; interpolate(path,numStates)```

Extract the sequence of motions from the path.

```q1 = path.States(1:end-1,:); % Initial states q2 = path.States(2:end,:); % Final states```

Estimate the cost of propagating to target state.

`cost = distance(propagator,q1,q2);`

Generate a series of control commands and number of steps to move from the current state `q1` with control command `u` toward the target state `q2`.

```u = zeros(size(q1,1),propagator.NumControlOutput); steps = zeros(size(q1,1),1); for i = 1:size(q1,1) [u(i+1,:),steps(i)] = sampleControl(propagator,q1(i,:),u(i,:),q2(i,:)); end```

Create a control-based path object with the specified state propagator and a sequence of specified states, controls, targets, and durations.

```states = path.States; controls = u(2:end,:); targets = q2; durations = steps*propagator.ControlStepSize; path2 = navPathControl(propagator,states,controls,targets,durations);```

Visualize the results.

```figure grid on axis equal hold on plot(path2.States(:,1),path2.States(:,2),".b") plot(waypoints(:,1),waypoints(:,2),"*r","MarkerSize",10)```

## Input Arguments

collapse all

Mobile robot state propagator, specified as a `mobileRobotPropagator` object.

## Version History

Introduced in R2021b