ros2_control - humble
|
A Low-pass filter class. More...
#include <low_pass_filter.hpp>
Public Member Functions | |
LowPassFilter (double sampling_frequency, double damping_frequency, double damping_intensity) | |
~LowPassFilter () | |
Destructor of LowPassFilter class. | |
bool | configure () |
Configure the LowPassFilter (access and process params). | |
bool | update (const T &data_in, T &data_out) |
Applies one iteration of the IIR filter. | |
bool | is_configured () const |
void | set_params (double sampling_frequency, double damping_frequency, double damping_intensity) |
Internal computation of the feedforward and feedbackward coefficients according to the LowPassFilter parameters. | |
bool | update (const geometry_msgs::msg::WrenchStamped &data_in, geometry_msgs::msg::WrenchStamped &data_out) |
A Low-pass filter class.
This class implements a low-pass filter for various data types based on an Infinite Impulse Response Filter. For vector elements, the filtering is applied separately on each element of the vector.
In particular, this class implements a simplified version of an IIR filter equation :
\(y(n) = b x(n-1) + a y(n-1)\)
where:
and the Low-Pass coefficient equation:
where:
For manual instantiation, you should first call configure() (in non-realtime) and then call update() at every update step.
bool control_toolbox::LowPassFilter< T >::update | ( | const T & | data_in, |
T & | data_out | ||
) |
Applies one iteration of the IIR filter.
data_in | input to the filter |
data_out | filtered output |