chrono::utils::ChMotionFilterThirdOrder Class Reference


Third-order nonlinear filter for smoothing basic motion laws (e.g.

step, linear ramp) given maximum (symmetrical) velocity, acceleration and jerk constraints. Output is analogous to a Double-S (aka. Constant Jerk) motion profile. NB: this filter is affected by some chattering on jerk control variable, thus it works best if small time step is provided.

#include <ChFilters.h>

Inheritance diagram for chrono::utils::ChMotionFilterThirdOrder:
Collaboration diagram for chrono::utils::ChMotionFilterThirdOrder:

Public Member Functions

 ChMotionFilterThirdOrder (double vmax, double amax, double jmax, double timestep)
void Config (double vmax, double amax, double jmax, double timestep)
 Configure filter parameters.
virtual void Reset () override
 Reset state variables.
double Filter (double raw_setpos, double raw_setvel, double raw_setacc)
 Given instantaneous raw position, velocity and acceleration setpoints, compute filtered pos/vel/acc/jerk and return filtered position.
double GetFilteredJerk () const
 Get last filtered jerk computed.
- Public Member Functions inherited from chrono::utils::ChMotionFilter
virtual double GetFilteredPos () const
 Get last filtered position computed.
virtual double GetFilteredVel () const
 Get last filtered velocity computed.
virtual double GetFilteredAcc () const
 Get last filtered acceleration computed.

Additional Inherited Members

- Protected Attributes inherited from chrono::utils::ChMotionFilter
double m_filtpos = 0
 filtered position setpoint
double m_filtvel = 0
 filtered velocity setpoint
double m_filtacc = 0
 filtered acceleration

The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono/utils/ChFilters.h
  • /builds/uwsbel/chrono/src/chrono/utils/ChFilters.cpp