Skip to content
quangounet edited this page Sep 29, 2014 · 48 revisions

Trajectory string

Consider a trajectory of dimension n and composed of p chunks, of durations T[0],...,T[p-1]. Each chunk is given by n polynomials. Assume that the jth polynomial of ith chunk is given by (weak coefficients first):

P[i,j,0] + P[i,j,1]*x + ... + P[i,j,d]*x^d.

Then the string describing the trajectory will be given by:

T[0]
n
P[0,0,0]     P[0,0,1] ...     P[0,0,d]
...
P[0,n-1,0]   P[0,n-1,1] ...   P[0,n-1,d]
...
...
T[p-1]
n
P[p-1,0,0]   P[p-1,0,1] ...   P[p-1,0,d]
...
P[p-1,n-1,0] P[p-1,n-1,1] ... P[p-1,n-1,d]

Constraint string

Consider a system of dimension n.

The first line of the constraint string must consist of one float value, discrtimestep, which is the time step to discretize the system dynamics and compute the Maximum Velocity Curves.

The following lines describe the constraints that the system is subject to.

Kinematic limits

Here the velocity and acceleration of each dof is limited. The acceleration and velocity limits are assumed to be symmetrical. Then the constraint string will be given by:

discrtimestep
vmax[0] vmax[1] ... vmax[n-1]
amax[0] amax[1] ... amax[n-1]

Torque limits

Here the velocity and torque of each dof is limited. The velocity limits are assumed to be symmetrical. Then the constraint string will be given by:

discrtimestep
vmax[0]   vmax[1]  ...  vmax[n-1]
taumin[0] taumin[1] ... taumin[n-1]
taumax[0] taumax[1] ... taumax[n-1]

General quadratic constraints

Here the velocity is symmetrically limited. In addition, there are m general constraints of the form (see our paper « A general, fast, and robust implementation of the time-optimal path parameterization algorithm » for details about quadratic constraints)

ai sddot + bi sdot^2 + ci  ≤ 0 for 0 ≤ i ≤ m-1.

Assume furthermore that the trajectories has been discretized into N time steps (NB: an error will be returned if discrtimestep*(N-1) ≠ trajectoryduration).

Then the constraint string will be given by:

discrtimestep
vmax[0] vmax[1] ... vmax[n-1]
a[0,0]   a[0,1]  ...  a[0,m-1]
b[0,0]   b[0,1]  ...  b[0,m-1]
c[0,0]   c[0,1]  ...  c[0,m-1]
...
a[N-1,0] a[N-1,1] ... a[N-1,m-1]
b[N-1,0] b[N-1,1] ... b[N-1,m-1]
c[N-1,0] c[N-1,1] ... c[N-1,m-1]

Polygon constraints

To do. See also the paper http://www.ntu.edu.sg/home/cuong/docs/overactuated.pdf

Friction limits (unstable)

Here the velocity limits are assumed to be symmetrical. Suppose there are M bottles. The ZMP of each bottle, which depends on its height, must be limited in its supporting area. Let the bottle[i] has dimension of 2bottlex[i] x 2bottley[i] x 2bottleh[i]. As for the simplified version of friction constraint, the friction force must be in the friction pyramid given by the friction coefficient mu. Then the constraint string will be given by:

discrtimestep
vmax[0] vmax[1] ... vmax[n-1]
M
bottlex[0]     bottley[0]     bottleh[0]
bottlex[1]     bottley[1]     bottleh[1]
...
bottlex[M-1]   bottley[M-1]   bottleh[M-1]
mu

Tuning parameters

  • integrationtimestep : time step for integrating the profiles ; if not set or 0, then will be automatically determined

  • reparamtimestep : time step for reparameterizing the trajectory ; if not set or 0, then will be automatically determined

  • passswitchpointnsteps : number of steps to go through a switch points ; set to 5 by default

  • extrareps : number of extra repetitions to do time parameterization ; set to 0 by default