summaryrefslogtreecommitdiff
path: root/src/main.h
diff options
context:
space:
mode:
authorMartin Miller2017-03-18 14:32:52 -0500
committerMartin Miller2017-03-18 14:32:52 -0500
commitfde220c19346797c4d55c2f479f7efb2f8c9073a (patch)
treed1399a0c230ac38037909432a42ed7070ae8455b /src/main.h
parentaeadc3d4f2a9a7a626a6c44f0bd0a0892c7a8251 (diff)
downloadrefslam-fde220c19346797c4d55c2f479f7efb2f8c9073a.zip
refslam-fde220c19346797c4d55c2f479f7efb2f8c9073a.tar.gz
Add support for INSCOVS.
The position and velocity covariances are rotated into the correct frames: NED and FRD.
Diffstat (limited to 'src/main.h')
-rw-r--r--src/main.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/main.h b/src/main.h
index 2139248..aa97995 100644
--- a/src/main.h
+++ b/src/main.h
@@ -17,6 +17,11 @@
#define MAXLINE 8192
#define MAXFILENAME 1024
+// A struct for storing PVA covariance.
+typedef struct {
+ Eigen::Matrix3d position,velocity,attitude;
+} covariance_t;
+
// A struct for storing x,y,z data.
typedef struct {
double x,y,z;
@@ -69,6 +74,7 @@ typedef struct {
gps position;
UTM utm;
velocity_t velocity;
+ covariance_t covariance;
} message;
int parseLine(char *line, message *msg);
@@ -77,6 +83,7 @@ timestamp update_dt(const timestamp t, timestamp *t_old);
#ifdef USE_ROS
void imuCallback();
#else /* ----- not USE_ROS ----- */
+void covCallback(const message &msg, Eigen::Matrix<double,9,9> &P, const Eigen::Quaternion<double> &q);
void imgCallback(const message *msg);
void imuCallback(const message &msg, Eigen::Matrix<double,9,1> &X, const Eigen::Quaternion<double> &q, const timestamp dt);
void pvaCallback(const message &msg, Eigen::Matrix<double,9,1> &X, Eigen::Quaternion<double> &q);