summaryrefslogtreecommitdiff
path: root/src/state.h
diff options
context:
space:
mode:
authorMartin Miller2017-04-04 16:10:26 -0500
committerMartin Miller2017-04-04 16:10:26 -0500
commit2c0ce68acd031b67fdffaea3b2e50cca4f487633 (patch)
treecbaeca5d911fefaca0468c6aa469a5bfc7cf0c6d /src/state.h
parent0c8912c5dc1ec3c752f8648ca2a8181275ba2654 (diff)
downloadrefslam-2c0ce68acd031b67fdffaea3b2e50cca4f487633.zip
refslam-2c0ce68acd031b67fdffaea3b2e50cca4f487633.tar.gz
Full state mostly implemented.
STATESIZE 9 works just as it does for experiment04032017 tag. The quaternion covariance is not being set correctly yet.
Diffstat (limited to 'src/state.h')
-rw-r--r--src/state.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/state.h b/src/state.h
index f330b67..b04ae9c 100644
--- a/src/state.h
+++ b/src/state.h
@@ -15,7 +15,6 @@
//#define FASTMOTIONMODEL // Uncomment this to perform motion model update on all features at once
#define DORANSAC /* */
//#define INLIERTEST /* */
-#define STATESIZE 13 /* Set to 13 for quaternion estimation, or 9 for quaternion as input */
using Eigen::Dynamic;
using Eigen::Matrix;
using Eigen::MatrixXd;
@@ -48,6 +47,7 @@ class State
MatrixXd F(const Vector3d &w, double dt);
MatrixXd H ( const std::vector<measurement_t> &z );
MatrixXd blockSI( const std::vector<measurement_t> &z );
+ Quaterniond qhat();
#else
MatrixXd F(const Quaterniond &q, const Vector3d &w, double dt);
MatrixXd H ( const Quaterniond &q, const std::vector<measurement_t> &z );
@@ -74,6 +74,8 @@ class State
const std::vector<measurement_t> &z);
void Pkk1 ( const Vector3d &ang, const double dt);
void ransacUpdate(std::vector<measurement_t> &z);
+ void quaternion_covariance();
+ void qhat(const Quaterniond &q);
#else
void handle_measurements( const std::vector<measurement_t> & z, const Quaterniond &q);
void kalmanUpdate( const MatrixXd &h, const MatrixXd &S,