LowPassFiniteDifferences.h
Go to the documentation of this file.
1 /*
2  * Copyright 2015-2019 CNRS-UM LIRMM, CNRS-AIST JRL
3  */
4 
5 #include <mc_filter/LowPass.h>
6 
7 namespace mc_filter
8 {
14 template<typename T>
16 {
18 
26  LowPassFiniteDifferences(double dt, double period) : LowPassT(dt, period) { LowPassT::reset(T::Zero()); }
27 
33  void reset(const T & pos, const T & vel)
34  {
35  LowPassT::reset(vel);
36  prevValue_ = pos;
37  }
38 
44  void update(const T & newPos)
45  {
46  T discVel = (newPos - prevValue_) / LowPassT::dt();
47  LowPassT::update(discVel);
48  prevValue_ = newPos;
49  }
50 
51  const T & prevValue() const { return prevValue_; }
52 
53 protected:
55 
56 private:
57  // Prevent calling the single-argument reset from parent's LowPass<T>
58  using LowPass<T>::reset;
59 };
60 } // namespace mc_filter
mc_filter::LowPassFiniteDifferences::prevValue
const T & prevValue() const
Definition: LowPassFiniteDifferences.h:51
mc_filter::LowPass::dt
double dt() const
Definition: LowPass.h:79
mc_filter
Definition: ExponentialMovingAverage.h:14
mc_filter::LowPass
Definition: LowPass.h:22
mc_filter::LowPassFiniteDifferences
Definition: LowPassFiniteDifferences.h:15
mc_filter::LowPass::update
void update(const T &newValue)
Definition: LowPass.h:65
mc_filter::LowPassFiniteDifferences::prevValue_
T prevValue_
Definition: LowPassFiniteDifferences.h:54
mc_filter::LowPass::reset
void reset(const T &value)
Definition: LowPass.h:58
mc_filter::LowPassFiniteDifferences::LowPassFiniteDifferences
LowPassFiniteDifferences(double dt, double period)
Definition: LowPassFiniteDifferences.h:26
mc_filter::LowPassFiniteDifferences::update
void update(const T &newPos)
Definition: LowPassFiniteDifferences.h:44
LowPass.h
mc_filter::LowPassFiniteDifferences::reset
void reset(const T &pos, const T &vel)
Definition: LowPassFiniteDifferences.h:33