uwv_dynamic_model
VelocityEstimator.hpp
Go to the documentation of this file.
1 /* Generated from orogen/lib/orogen/templates/tasks/Task.hpp */
2 
3 #ifndef UWV_DYNAMIC_MODEL_VELOCITYESTIMATOR_TASK_HPP
4 #define UWV_DYNAMIC_MODEL_VELOCITYESTIMATOR_TASK_HPP
5 
6 #include "uwv_dynamic_model/VelocityEstimatorBase.hpp"
7 #include <queue>
8 #include <deque>
9 #include <vector>
10 #include "numeric/SavitzkyGolayFilter.hpp"
11 
12 namespace uwv_dynamic_model{
13 
28  class VelocityEstimator : public VelocityEstimatorBase
29  {
30  friend class VelocityEstimatorBase;
31  protected:
32 
33 
34  // Secondary model_simulation, use for replaying old effort data and time allying dvl data
35  ModelSimulation* model_simulation2;
36 
37  // Deriving depth data for estimating vertical velocity
38  // Savitzky-Golay coefficients.
39  std::vector<double> filter_coeff;
40  // Depth data samples
41  std::deque<base::samples::RigidBodyState> queueOfDepthData;
42 
43  std::queue<std::pair<base::LinearAngular6DCommand, base::samples::RigidBodyState> > queueOfStates;
44  bool getTransformation(const transformer::Transformation &transformer, Eigen::Affine3d &transformationMatrix);
45 
51  void handleStates(const base::samples::RigidBodyState &state, const base::LinearAngular6DCommand &control_input);
52 
56  void setRuntimeState();
57 
64  base::samples::RigidBodyState updatePoseWithXYVelocity(const base::samples::RigidBodyState &pose, const base::samples::RigidBodyState &dvl_sample);
65 
71  double verticalVelocityEstimation(const base::samples::RigidBodyState &depth_sample);
72 
80  base::samples::RigidBodyState replayModel(const base::samples::RigidBodyState &dvl_sample);
81 
82  public:
87  VelocityEstimator(std::string const& name = "uwv_dynamic_model::VelocityEstimator", ModelSimulator simulator = DYNAMIC);
88 
94  VelocityEstimator(std::string const& name, RTT::ExecutionEngine* engine, ModelSimulator simulator = DYNAMIC);
95 
99 
114  bool configureHook();
115 
121  bool startHook();
122 
137  void updateHook();
138 
145  void errorHook();
146 
150  void stopHook();
151 
156  void cleanupHook();
157  };
158 }
159 
160 #endif
std::deque< base::samples::RigidBodyState > queueOfDepthData
Definition: VelocityEstimator.hpp:41
VelocityEstimator(std::string const &name="uwv_dynamic_model::VelocityEstimator", ModelSimulator simulator=DYNAMIC)
Definition: VelocityEstimator.cpp:7
void cleanupHook()
Definition: VelocityEstimator.cpp:234
ModelSimulation * model_simulation2
Definition: VelocityEstimator.hpp:35
base::samples::RigidBodyState replayModel(const base::samples::RigidBodyState &dvl_sample)
Definition: VelocityEstimator.cpp:37
~VelocityEstimator()
Definition: VelocityEstimator.cpp:19
void errorHook()
Definition: VelocityEstimator.cpp:226
bool getTransformation(const transformer::Transformation &transformer, Eigen::Affine3d &transformationMatrix)
Definition: VelocityEstimator.cpp:208
void stopHook()
Definition: VelocityEstimator.cpp:230
friend class VelocityEstimatorBase
Definition: VelocityEstimator.hpp:30
void handleStates(const base::samples::RigidBodyState &state, const base::LinearAngular6DCommand &control_input)
Definition: VelocityEstimator.cpp:23
base::samples::RigidBodyState updatePoseWithXYVelocity(const base::samples::RigidBodyState &pose, const base::samples::RigidBodyState &dvl_sample)
Definition: VelocityEstimator.cpp:28
void updateHook()
Definition: VelocityEstimator.cpp:112
The task context provides and requires services. It uses an ExecutionEngine to perform its functions...
Definition: VelocityEstimator.hpp:28
void setRuntimeState()
Definition: VelocityEstimator.cpp:220
bool startHook()
Definition: VelocityEstimator.cpp:106
bool configureHook()
The following lines are template definitions for the various state machine.
Definition: VelocityEstimator.cpp:91
std::vector< double > filter_coeff
Definition: VelocityEstimator.hpp:39
double verticalVelocityEstimation(const base::samples::RigidBodyState &depth_sample)
Definition: VelocityEstimator.cpp:71
std::queue< std::pair< base::LinearAngular6DCommand, base::samples::RigidBodyState > > queueOfStates
Definition: VelocityEstimator.hpp:43
Definition: Task.hpp:10