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.