|
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:
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).
|