Using Parametric Curves to Describe Motions Motion Curves Using Parametric Curves to Describe Motions
Outline Trajectories vs. Paths (5 minutes) Important features of trajectories (5 minutes) Single axis construction(15 minutes) Multi-axis construction (10 minutes) Limitations (10 minutes)
Trajectories vs. Paths So far the emphasis was on a curve’s shape A parametric curve however is much more expressive, and can be used to describe a dynamic process, like motion We call this motion description a trajectory
Trajectories vs. Paths To describe a shape/path we used the entire set of points that are the projection of the domain [a, b] by the curve c(t) To describe a motion we will treat c(t) as the position at time t
Trajectories vs. Paths The difference? Parametrization matters c(t) in [0, 1] and c(2t) [0, 0.5] are no longer equivalent, they would describe the same path/shape, but different motions Regularity is no longer assumed (we can stop, we can go back)
Important features of trajectories Minimal domain (minimal time) [0, T] Explicitly bound derivatives Edge (start/end) conditions
Important features of trajectories Explicitly bound derivatives For velocity and acceleration the need is clear Generally accepted that Jerk (x’’’) limits have benefits (especially when human interaction is involved) Some works show instances where higher limits reduce position error, and vibrations, but it is still an open question as to the extent higher limits are useful
Single axis construction The expected solution is Bang-zero-bang highest derivative is maximum, minimum or zero This result is related to Pontryagin's minimum (or maximum) principle PONTRYAGIN, Lev Semenovich. Mathematical theory of optimal processes. CRC Press, 1987.
Single axis construction As a consequence the solution will be the mth integration of a piecewise constant function
Single axis construction M = 1
Single axis construction M = 2
Single axis construction An observation: the general structure can be described recursively
Single axis construction The structure can also be constructed recursively
Single axis construction The algorithm (extremely shortened version) Guess we will cruise at a certain velocity (recursively) Construct a velocity solution from the initial conditions to the cruising velocity (order m-1) (recursively) Construct a velocity solution from the cruising velocity to the final conditions (order m-1) Calculate the difference between the distance travelled by the two velocity curves and the required distance (∆) add a cruising phase so that ∆ is eliminated If the cruising phase has positive time try guessing a higher speed, if it has a negative time guess a lower cruising speed
Single axis construction Calculating ∆ in step 4 is done by polynomial integration In step 5 we can terminate if the cruising phase is short enough (sufficient accuracy is achieved) Step 5 is basically a binary search for the best cruising velocity
Single axis construction The terminating step of the recursion is when we get to a low enough m, and we can solve the problem directly. m=1 is trivial m=2 can also be solved (quadratic equations) m=3 has some algorithms m > 3 other solutions assume start/end at rest
Single axis construction The choice of m depends on the application Higher m is smoother and easier to follow, lower m is faster
Single axis construction Asymmetric bounds
Single axis construction Non monotonous trajectory
Single axis construction Sample calculation times
Multi-axis construction Multi axis trajectories are constructed by synchronizing multiple single-axis trajectories
Multi-axis construction Synchronization is done by slowing down faster trajectories This is trivial for trajectories start/end at rest For trajectories that start and end in motion a modification of the algorithm is needed We add a parameter Tmax and if a solution is quicker than this we guess a slower speed
Multi-axis construction The (shortened) multi axis algorithm is: Tmax is set to 0 Solve all single axis trajectories with Tmax If all trajectories finish at close enough times we’re done, otherwise set Tmax to the slowest time, and go to 2 The domain of valid motion times is not necessarily continuous
Multi-axis construction Sample trajectories (or rather their paths) T1 = 0.743 T2 = 0.701 T3 = 0.683 T4 = 0.620
Multi axis construction The smoothness of the path and smoothness of the trajectory are not the same
Multi-axis construction A More complex Motion
Multi-axis construction Another robot
Multi-axis construction Trajectories for the last example
Limitations We assumed that ∆ is a monotonous function of the cruising velocity This is not always true
Multi-axis construction Runtime in general is 2n-1 times the single axis trajectory calculation time (n being the number of axes/dimensions)
Limitations We assumed there is a constant velocity phase not always true even for rest-to-rest motion
Demo Show Demo