pose_estimation
OrientationEstimator.hpp
Go to the documentation of this file.
1 /* Generated from orogen/lib/orogen/templates/tasks/Task.hpp */
2 
3 #ifndef POSE_ESTIMATION_ORIENTATIONESTIMATOR_TASK_HPP
4 #define POSE_ESTIMATION_ORIENTATIONESTIMATOR_TASK_HPP
5 
6 #include "pose_estimation/OrientationEstimatorBase.hpp"
7 #include <boost/shared_ptr.hpp>
8 #include <pose_estimation/orientation_estimator/OrientationUKF.hpp>
9 #include <pose_estimation/orientation_estimator/OrientationUKFConfig.hpp>
10 #include <pose_estimation/Measurement.hpp>
11 #include <pose_estimation/StreamAlignmentVerifier.hpp>
12 
13 namespace pose_estimation {
14 
29  class OrientationEstimator : public OrientationEstimatorBase
30  {
32  protected:
33  boost::shared_ptr<pose_estimation::OrientationUKF> orientation_estimator;
34  boost::shared_ptr<pose_estimation::StreamAlignmentVerifier> verifier;
35  Eigen::Affine3d imu_in_body_translation;
36  Eigen::Quaterniond imu_in_body_rotation;
37  Eigen::Matrix3d cov_angular_velocity;
38  Eigen::Matrix3d cov_acceleration;
39  Eigen::Matrix3d cov_velocity_unknown;
42  States last_state;
43  States new_state;
44 
45 
46  virtual void imu_sensor_samplesTransformerCallback(const base::Time &ts, const ::base::samples::IMUSensors &imu_sensor_samples_sample);
47  virtual void velocity_samplesTransformerCallback(const base::Time &ts, const ::base::samples::RigidBodyState &velocity_samples_sample);
48 
52  virtual bool addHeadingOffset(double heading_offset, double variance);
53 
57  void predictionStep(const base::Time& sample_time);
58 
59  bool initializeFilter(const Eigen::Quaterniond& orientation, const Eigen::Matrix3d& orientation_cov, const OrientationUKFConfig& filter_config);
60 
61  bool setProcessNoise(const OrientationUKFConfig& filter_config, double sensor_delta_t);
62 
63  public:
68  OrientationEstimator(std::string const& name = "pose_estimation::OrientationEstimator");
69 
75  OrientationEstimator(std::string const& name, RTT::ExecutionEngine* engine);
76 
80 
95  bool configureHook();
96 
102  bool startHook();
103 
118  void updateHook();
119 
126  void errorHook();
127 
131  void stopHook();
132 
137  void cleanupHook();
138  };
139 }
140 
141 #endif
142 
virtual void imu_sensor_samplesTransformerCallback(const base::Time &ts, const ::base::samples::IMUSensors &imu_sensor_samples_sample)
Definition: OrientationEstimator.cpp:25
boost::shared_ptr< pose_estimation::OrientationUKF > orientation_estimator
Definition: OrientationEstimator.hpp:33
void cleanupHook()
Definition: OrientationEstimator.cpp:317
void errorHook()
Definition: OrientationEstimator.cpp:309
void predictionStep(const base::Time &sample_time)
Definition: OrientationEstimator.cpp:134
OrientationEstimator(std::string const &name="pose_estimation::OrientationEstimator")
Definition: OrientationEstimator.cpp:11
Eigen::Affine3d imu_in_body_translation
Definition: OrientationEstimator.hpp:35
Eigen::Matrix3d cov_acceleration
Definition: OrientationEstimator.hpp:38
virtual bool addHeadingOffset(double heading_offset, double variance)
Definition: OrientationEstimator.cpp:113
bool startHook()
Definition: OrientationEstimator.cpp:206
bool setProcessNoise(const OrientationUKFConfig &filter_config, double sensor_delta_t)
Definition: OrientationEstimator.cpp:179
void stopHook()
Definition: OrientationEstimator.cpp:313
Definition: pose_estimationTypes.hpp:10
boost::shared_ptr< pose_estimation::StreamAlignmentVerifier > verifier
Definition: OrientationEstimator.hpp:34
~OrientationEstimator()
Definition: OrientationEstimator.cpp:21
States last_state
Definition: OrientationEstimator.hpp:42
Eigen::Matrix3d cov_angular_velocity
Definition: OrientationEstimator.hpp:37
bool velocity_unknown
Definition: OrientationEstimator.hpp:41
void updateHook()
Definition: OrientationEstimator.cpp:260
bool configureHook()
The following lines are template definitions for the various state machine.
Definition: OrientationEstimator.cpp:200
virtual void velocity_samplesTransformerCallback(const base::Time &ts, const ::base::samples::RigidBodyState &velocity_samples_sample)
Definition: OrientationEstimator.cpp:74
friend class OrientationEstimatorBase
Definition: OrientationEstimator.hpp:31
States new_state
Definition: OrientationEstimator.hpp:43
Eigen::Matrix3d cov_velocity_unknown
Definition: OrientationEstimator.hpp:39
Eigen::Quaterniond imu_in_body_rotation
Definition: OrientationEstimator.hpp:36
base::Time last_velocity_sample_time
Definition: OrientationEstimator.hpp:40
bool initializeFilter(const Eigen::Quaterniond &orientation, const Eigen::Matrix3d &orientation_cov, const OrientationUKFConfig &filter_config)
Definition: OrientationEstimator.cpp:147
The task context provides and requires services. It uses an ExecutionEngine to perform its functions...
Definition: OrientationEstimator.hpp:29