Ruckig 0.10.1
Motion Generation for Robots and Machines

In comparison to the Community Version, Ruckig Pro allows to generate more complex trajectories defined by intermediate waypoints. Therefore, Ruckig takes a list of positions as input and calculates a trajectory reaching them successively before moving to the target state. As this is a much harder problem than solving statetostate motions (as the Community Version does), Ruckig Pro is not able to guarantee for a timeoptimal trajectory. In fact, trajectory planning with intermediate waypoints is a nonconvex problem and therefore NPhard. However, Ruckig calculates much faster trajectories than other approaches for a wide range of trajectory types, primarily due to the joint calculation of the path and its time parametrization. On top, Ruckig is realtime capable and considers jerkconstraints.
In this regard, following information help to obtain robust and ideal optimization results:
Ruckig.calculator.waypoints_calculator.number_global_steps = 96
and Ruckig.calculator.waypoints_calculator.number_local_steps = 16
with their respective default values. For a higher number of waypoints, we recommend to reduce the number of global steps and increase the number of local steps, e.g. to global_steps=16
and local_steps=256
. Additionally, there is the Ruckig.calculator.waypoints_calculator.number_smoothing_steps = 0
parameter for smoothing the trajectory. It is turned off by default, and a higher number (e.g. in the range 0  64) will improve the smoothing.Ruckig::filter_intermediate_positions
method) first. Fortunately, a straight line of dozens of waypoints is not a typical usecase seeking for near timeoptimal trajectories. For a single DoF, Ruckig automatically filters waypoints without loss of generality.