Print-friendly PDF Version

How do we build a next-state planner that produces an arbitrary trajectory?   Perhaps the simplest way is to first record that trajectory, and then transform that trajectory into a set of parameters for the next-state planner.  Here we will use the approach described by Stefan schaal and his colleagues {Ijspeert et al. 2002/d} to produce a next-state planner that generates minimum jerk trajectories and zigzag trajectories.  The parameters describe the control policy for our next-state planner.

            The next-state planner has two inputs, and (target position and estimated end-effector position), and one output, (desired change in end-effector position).  It has four internal states, labeled , , , and a few time constants , , etc.  A set of differential equations describe the dynamics of this system:

(1)

(2)

(3)

(4)

(5)

In this formulation, represents end-effector position at the start of the movement, and is a measure of the fraction of the distance progressed to the target.  The distance is encoded via a set of nonlinear basis function :

(6)

The parameters of this system are the weights and the time constants , , etc.

            Suppose that we wish the system to generate a plan such that the end-effector moves from its initial position to target position and second.  Further, suppose that we wish the desired movement to be minimum jerk.  Therefore, we have:

  (7)

(These functions are defined for the period and maintain their final value for times greater than .)  Because at this stage we are concerned with finding the parameters that produce our plan, we are going to assume that in Eqs. (3) and (5) that , i.e., our planned movement is precisely executed.  Therefore, Eqs. (3) and (5) become

(8)

(9)

The fact that we want the movement to end at around 1 second dictates the time constants of the differential equations.  For example, the larger we set and , the faster the system will want to converge to the goal.  In this example, we will set the time constants to be:

We plug in in Eq. (2), calculate , and using rectangular integration iterate this equation to compute .  A similar procedure is done for Eq. (1) to compute .  Next, we compute from Eq. (8) and use the result to compute in Eq. (4).  The basis functions encode this space.  In this example, we used 25 bases with centers equally disturbed over the range of 0-1 with .  Therefore, all the elements of Eq. (9) are now known except for the weights The weights appear linearly in the equation and can be found using linear algebra.

            To see how well the parameters produce our intended trajectory, we run Eqs. (1-5) and compare the planned trajectory with our intended one in Eq. (7).