Table of Contents

Synchronized trajectory

For multiple DoFs, synchronization determines how axes arrive at the target.

Time synchronization

All axes start and finish together, but can follow different geometric progress along the path.

otgTimeSync : Struckig.Otg(cycletime := 0.001, dofs := 3) := (
  EnableAutoPropagate := TRUE,
  Synchronization := Struckig.SynchronizationType.TimeSync,
  CurrentPosition := [0.0, 0.0, 0.0],
  TargetPosition :=  [1.0, -1.0, 2.0],
  MaxVelocity :=     [1.0, 1.0, 1.0],
  MaxAcceleration := [1.0, 1.0, 1.0],
  MaxJerk :=         [1.0, 1.0, 1.0]
);

Phase synchronization

Axes maintain a shared phase relation over time, which is useful for coordinated Cartesian motion.

otgPhaseSync : Struckig.Otg(cycletime := 0.001, dofs := 3) := (
  EnableAutoPropagate := TRUE,
  Synchronization := Struckig.SynchronizationType.Phase,
  CurrentPosition := [0.0, 0.0, 0.0],
  TargetPosition :=  [1.0, -1.0, 2.0],
  MaxVelocity :=     [1.0, 1.0, 1.0],
  MaxAcceleration := [1.0, 1.0, 1.0],
  MaxJerk :=         [1.0, 1.0, 1.0]
);

Second-order profile (optional)

If you leave MaxJerk at default infinity values, Struckig computes an acceleration-limited profile.

Tip

For path-following machines, Phase is usually the better default. For independent coordinated arrivals, use TimeSync.