TimestampSynchronizer.h
Go to the documentation of this file.
1 #ifndef TIMESTAMPSYNCHRONIZER_H
2 #define TIMESTAMPSYNCHRONIZER_H
3 
27 #include <string>
28 
29 #include <ros/ros.h>
30 
31 #include "HoltWinters.h"
32 #include "Mediator.h"
33 
34 #include <timesync/TimesyncDebug.h>
35 
39 {
40 public:
41  class Options;
42 
46  TimestampSynchronizer(const Options defaultOptions = Options());
47 
59  double sync(double currentSensorTime, double currentRosTime, unsigned int seqNumber_external);
60 
61  void setTimeOffset(double timeOffset);
62  void setMedianFilter(bool useMedianFilter, int medianFilterWindow = 0);
63  void setUseHoltWinters(bool useHoltWinters);
64  void setAlfa_HoltWinters(double alfa_HoltWinters);
65  void setBeta_HoltWinters(double beta_HoltWinters);
66 
67  // gain scheduling in the Holt-Winters filter for faster initialization
68  void setAlfa_HoltWinters_early(double alfa_HoltWinters_early);
69  void setBeta_HoltWinters_early(double beta_HoltWinters_early);
70  void setEarlyClamp(bool earlyClamp, int earlyClampWindow = 0);
71 
75  void reset();
76 
84  class Options {
85  public:
86  Options() { };
87  bool useMedianFilter = true;
88  int medianFilterWindow = 3000;
89  bool useHoltWinters = true;
90  double alfa_HoltWinters = 1e-3;
91  double beta_HoltWinters = 1e-4;
92  double alfa_HoltWinters_early = 1e-1;
93  double beta_HoltWinters_early = 1e-2;
94  bool earlyClamp = true;
95  int earlyClampWindow = 500;
96  double timeOffset = 0.0;
97  double initialB_HoltWinters = -3e-7;
98  };
99 
100 
101 private:
103 
106  std::unique_ptr<Mediator<double> > pmediator_;
108 
110  unsigned int seqCounter_;
111 
112  void init();
113  void initMediator();
116 
118 };
119 
120 #endif
TimestampSynchronizer(const Options defaultOptions=Options())
void setTimeOffset(double timeOffset)
void setUseHoltWinters(bool useHoltWinters)
void setEarlyClamp(bool earlyClamp, int earlyClampWindow=0)
void setAlfa_HoltWinters(double alfa_HoltWinters)
double sync(double currentSensorTime, double currentRosTime, unsigned int seqNumber_external)
HoltWintersSmoothFilter holtWinters_
void setAlfa_HoltWinters_early(double alfa_HoltWinters_early)
void setBeta_HoltWinters(double beta_HoltWinters)
void setMedianFilter(bool useMedianFilter, int medianFilterWindow=0)
std::unique_ptr< Mediator< double > > pmediator_
void setBeta_HoltWinters_early(double beta_HoltWinters_early)


timesync_ros
Author(s): Juraj Oršulić
autogenerated on Mon Jun 10 2019 15:28:33