gramods
Loading...
Searching...
No Matches
EFFOAW.hh
1
5#ifndef GRAMODS_MISC_EFFOAW
6#define GRAMODS_MISC_EFFOAW
7
8#include <gmMisc/config.hh>
9
10#ifdef gramods_ENABLE_Eigen3
11
12#include <deque>
13#include <map>
14#include <cstddef>
15#include <limits>
16#include <numeric>
17#include <memory>
18
19#include <math.h>
20
21#include <Eigen/Eigen>
22
23BEGIN_NAMESPACE_GMMISC
24
34class EFFOAW {
35
36public:
37
40 EFFOAW();
41
42 ~EFFOAW();
43
46 void setHistoryLength(size_t N);
47
50 size_t getHistoryLength() const;
51
54 void setHistoryDuration(double t);
55
58 double getHistoryDuration() const;
59
70 double getLastSampleTime(size_t id, size_t N = 0);
71
82 void addSample(size_t id, Eigen::Vector3d position, double time);
83
92 void removeLastSample(size_t id);
93
104 Eigen::Vector3d estimateVelocity(size_t id, double error, size_t *samples = nullptr) const;
105
120 Eigen::Vector3d estimatePosition(size_t id, double error, double time, size_t *samples = nullptr) const;
121
130 void cleanup(double time = -1);
131
132private:
133
134 struct Impl;
135 std::unique_ptr<Impl> _impl;
136
137};
138
139END_NAMESPACE_GMMISC
140
141#endif
142#endif
This is an end-fitting first-order adaptive window estimator of velocity from samples allowing jitter...
Definition EFFOAW.hh:34
Definition EFFOAW.cpp:10