Skip to content

Acceleration FeedForward

Ajay Shankar edited this page Jan 28, 2022 · 1 revision

Freyja supports feed-forward accelerations from the trajectory (in world/Cartesian space) in order to improve tracking. This is applicable only to trajectories that are continuous up to (at least) 2nd order, i.e., the velocity curve has no corners.

Note that feed-forward is useful for "pre-shaping" the controller's response to a trajectory, and is different from applying acceleration constraints. The resultant behaviour can be unexpected if not handled correctly, and thus this feature should be used carefully (= test/simulate first!).

ROS Interfaces

  1. Controller parameter(s):
    enable_flatness_ff : bool
    true enables the controller to accept acceleration feedfoward data from a trajectory.
    false makes the controller reject acceleration data even if provided by user.

  2. Topic:
    /reference_state : freyja_msgs/ReferenceState
    The elements an, ae, ad correspond to acceleration feed-forward from the differentially flat output space of a 3D trajectory. These must be the 2nd derivatives of the position elements in the reference. These are zero by default (ROS constructor).

    Providing acceleration in your trajectory is not sufficient to enable this feature. See the parameter in (1) above.
    The 2nd derivative must be "in sync" with the position and velocity references.