**
Descriptions of Input Vectors**

__The State Transition Equation for A
Wheelchair in 2D Spaces__

Let each state of the robot be represented as **(x, y, ө)**,
where **(x, y)** denotes the coordinates of the robot in a 2D configuration
space, **ө** denotes the facing direction of the robot. Then we have the
following State Transition Equation (also see Differential Models, Steven
LaValle, 2001):

*
x
= s*cos ө*

*
y
= s*sin ө*

*
ө
= s/L*tan ф*

Where

**s **
—speed of the robot

**L**—length
of the robot

**ф**—steering
angle.

An input vector has a following format

__Implementation__

See model2d.cpp of Motion Strategy Library, line 326

MSLVector Model2DRigidCar::StateTransitionEquation

(const MSLVector &x, const MSLVector &u)

{

MSLVector dx(3);

dx[0] = u[0]*cos(x[2]);

dx[1] = u[0]*sin(x[2]);

dx[2] = u[0]*tan(u[1])/CarLength;

return dx;

}

__Examples__

An input file

* 2 1.0
0.0*

*
2 1.0 0.4*

*
2 1.0 -0.4*

means that each state of the robot can derive **three**
new states by applying the above State Transition Equations:

1. going straight forward,

2. making a right turn while going forward, and

3. making a left turn while going forward.

If an initial state and a goal state are given, the path planning problem in fact is a search-tree problem:

In Motion Strategy Library (MSL), this tree-like structure is the foundation for utilizing search strategies such as Rapidly-Exploring Random Trees (RRT) and A*.

Another Inputs file

*
2 1.0 0.0*

*
2 1.0 0.1*

*
2 1.0 -0.1*

*
2 -1.0 0.0*

*
2 -1.0 0.1*

*
2 -1.0 -0.1*

means that each state of the robot can derive **six**
new states by applying the State Transition Equations:

1. going straight forward,

2. making a right turn while going forward,

3. making a left turn while going forward,

4. going straight backward,

5. making a right turn while going backward, and

6. making a left turn while going backward.

__Important Highlights__

·
Value of **s** (i.e., speed) can be any float number between
-1.0 and 1.0. A vector (2, 0, 0.2) will enable a robot to rotate clockwise by
0.2 (rad) at the same position.

· In the geometric description of a robot, (0, 0) denotes the middle point of the axle of the wheels, which also corresponds the position of the robot in a 2D configuration space.