10 #include <initializer_list>
14 #include <wpi/ArrayRef.h>
15 #include <wpi/circular_buffer.h>
16 #include <wpi/deprecated.h>
18 #include "frc/filters/Filter.h"
81 WPI_DEPRECATED(
"Use LinearFilter class instead.")
92 WPI_DEPRECATED(
"Use LinearFilter class instead.")
94 std::initializer_list<double> fbGains);
103 WPI_DEPRECATED(
"Use LinearFilter class instead.")
115 WPI_DEPRECATED(
"Use LinearFilter class instead.")
117 std::initializer_list<double> ffGains,
118 std::initializer_list<double> fbGains);
136 double timeConstant,
double period);
176 double timeConstant,
double period);
190 double timeConstant,
double period);
206 double Get()
const override;
207 void Reset()
override;
220 std::vector<double> m_inputGains;
221 std::vector<double> m_outputGains;
PIDSource interface is a generic sensor source for the PID class.
Definition: PIDSource.h:20
LinearDigitalFilter(PIDSource &source, wpi::ArrayRef< double > ffGains, wpi::ArrayRef< double > fbGains)
Create a linear FIR or IIR filter.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Definition: ArrayRef.h:42
void Reset() override
Reset the filter state.
static LinearDigitalFilter SinglePoleIIR(PIDSource &source, double timeConstant, double period)
Creates a one-pole IIR low-pass filter of the form: y[n] = (1 - gain) * x[n] + gain * y[n-1] where ...
double PIDGet() override
Calculates the next value of the filter.
A class that enforces constraints on the differential drive kinematics.
Definition: SPIAccelerometerSim.h:16
static LinearDigitalFilter HighPass(PIDSource &source, double timeConstant, double period)
Creates a first-order high-pass filter of the form: y[n] = gain * x[n] + (-gain) * x[n-1] + gain * y...
double Get() const override
Returns the current filter estimate without also inserting new data as PIDGet() would do.
Interface for filters.
Definition: Filter.h:21
static LinearDigitalFilter MovingAverage(PIDSource &source, int taps)
Creates a K-tap FIR moving average filter of the form: y[n] = 1/k * (x[k] + x[k-1] + … + x[0])
This class implements a linear, digital filter.
Definition: LinearDigitalFilter.h:72