1 #ifndef _POSE_ESTIMATION_UKF_HPP 2 #define _POSE_ESTIMATION_UKF_HPP 6 #include <ukfom/ukf.hpp> 7 #include <ukfom/mtkwrap.hpp> 8 #include <boost/shared_ptr.hpp> 9 #include <base/Time.hpp> 10 #include <boost/noncopyable.hpp> 15 template<
typename Manifold>
23 typedef ukfom::mtkwrap<Manifold>
WState;
42 ukf.reset(
new MTK_UKF(initial_state, state_cov));
56 state_cov =
ukf->sigma();
112 throw std::runtime_error(
"Delta time is negative!");
121 throw std::runtime_error(
"Delta time is greater then the allowed maximum!");
142 template<
int DIM,
typename scalar_type>
143 void checkMeasurment(
const Eigen::Matrix<scalar_type, DIM, 1>& mu,
const Eigen::Matrix<scalar_type, DIM, DIM>& cov)
const 145 if(!mu.allFinite() || !cov.allFinite())
146 throw std::runtime_error(
"Measurement or covariance contains non-finite values!");
150 boost::shared_ptr<MTK_UKF>
ukf;
base::Time last_measurement_time
Definition: UnscentedKalmanFilter.hpp:152
const Covariance & getProcessNoiseCovariance() const
Definition: UnscentedKalmanFilter.hpp:129
virtual ~UnscentedKalmanFilter()
Definition: UnscentedKalmanFilter.hpp:35
bool getCurrentState(State &state) const
Definition: UnscentedKalmanFilter.hpp:67
const base::Time & getLastMeasurementTime() const
Definition: UnscentedKalmanFilter.hpp:131
double min_time_delta
Definition: UnscentedKalmanFilter.hpp:154
void initializeFilter(const State &initial_state, const Covariance &state_cov)
Definition: UnscentedKalmanFilter.hpp:40
double getMaxTimeDelta() const
Definition: UnscentedKalmanFilter.hpp:134
Definition: UnscentedKalmanFilter.hpp:16
boost::shared_ptr< MTK_UKF > ukf
Definition: UnscentedKalmanFilter.hpp:150
void setLastMeasurementTime(const base::Time &last_measurement_time)
Definition: UnscentedKalmanFilter.hpp:132
UnscentedKalmanFilter()
Definition: UnscentedKalmanFilter.hpp:27
void predictionStepFromSampleTime(const base::Time &sample_time)
Definition: UnscentedKalmanFilter.hpp:83
MTK_UKF::cov Covariance
Definition: UnscentedKalmanFilter.hpp:25
ukfom::mtkwrap< Manifold > WState
Definition: UnscentedKalmanFilter.hpp:23
bool isInitialized() const
Definition: UnscentedKalmanFilter.hpp:128
double getMinTimeDelta() const
Definition: UnscentedKalmanFilter.hpp:136
void setMinTimeDelta(double min_time_delta)
Definition: UnscentedKalmanFilter.hpp:137
Definition: UnscentedKalmanFilter.hpp:20
Definition: GeographicProjection.hpp:9
virtual void predictionStepImpl(double delta_t)=0
bool getCurrentState(State &state, Covariance &state_cov) const
Definition: UnscentedKalmanFilter.hpp:51
unsigned getStateSize() const
Definition: UnscentedKalmanFilter.hpp:127
ukfom::ukf< WState > MTK_UKF
Definition: UnscentedKalmanFilter.hpp:24
Manifold State
Definition: UnscentedKalmanFilter.hpp:22
void checkMeasurment(const Eigen::Matrix< scalar_type, DIM, 1 > &mu, const Eigen::Matrix< scalar_type, DIM, DIM > &cov) const
Definition: UnscentedKalmanFilter.hpp:143
void setMaxTimeDelta(double max_time_delta)
Definition: UnscentedKalmanFilter.hpp:135
Covariance process_noise_cov
Definition: UnscentedKalmanFilter.hpp:151
void predictionStep(double delta_t)
Definition: UnscentedKalmanFilter.hpp:107
double max_time_delta
Definition: UnscentedKalmanFilter.hpp:153
void setProcessNoiseCovariance(const Covariance &noise_cov)
Definition: UnscentedKalmanFilter.hpp:130