summaryrefslogtreecommitdiff
path: root/src/main.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.h')
-rw-r--r--src/main.h78
1 files changed, 4 insertions, 74 deletions
diff --git a/src/main.h b/src/main.h
index 36802fd..2fef291 100644
--- a/src/main.h
+++ b/src/main.h
@@ -1,99 +1,29 @@
#ifndef main_INC
#define main_INC
-//#define USE_ROS /* Uncomment to use with ROS */
-
-#ifndef USE_ROS
+#include <cmath>
#include <cstdio>
#include <cstring>
-#endif /* ----- USE_ROS ----- */
-
-#include <cmath>
#include <Eigen/Dense>
#include <iostream>
#include "body.h"
#include "state.h"
+#include "types.h"
-#define MAXLINE 8192
-#define MAXFILENAME 1024
using Eigen::Matrix;
using Eigen::Matrix3d;
using Eigen::Quaternion;
using Eigen::Vector3d;
-// A struct for storing PVA covariance.
-typedef struct {
- Matrix3d position,velocity,attitude;
-} covariance_t;
-
-// A struct for storing x,y,z data.
-typedef struct {
- double x,y,z;
-} tuple;
-
-// A struct for storing velocity in world frame
-typedef struct {
- double east, north, up;
-} velocity_t;
-
-// A struct for storing attitude data.
-typedef struct {
- double roll,pitch,yaw;
-} attitude_t;
-
-// A struct for storing UTM data.
-typedef struct {
- double northing,easting,up;
- int zone_i;
- char zone_c;
-} UTM;
-
-// A struct for storing GPS data.
-typedef struct {
- double latitude, longitude, altitude;
-} gps;
-
-// Message types
-typedef enum {BESTUTM,IMG,INSCOVS,INSPVAS,RAWIMUS} message_type;
-
-/*
- * The message struct is a general container for all message types. Not all
- * members are used for all messages, so care must be taken not to use garbage
- * values.
- */
-typedef struct {
- int secs,nsecs;
-} timestamp;
-
-typedef struct {
- // These should always be set.
- timestamp stamp;
- message_type msg_type;
-
- // Only the members needed by the msg_type are stored.
- tuple angular_velocity;
- attitude_t attitude;
- char image_names[2][MAXFILENAME];
- tuple linear_acceleration;
- gps position;
- UTM utm;
- velocity_t velocity;
- covariance_t covariance;
-} message;
int parseLine(char *line, message *msg);
timestamp update_dt(const timestamp t, timestamp *t_old);
-#ifdef USE_ROS
-void imuCallback();
-#else /* ----- not USE_ROS ----- */
void covCallback(const message &msg, Matrix<double,9,9> &P, const Quaternion<double> &q);
void imgCallback(const message *msg);
-void imuCallback(const message &msg, Matrix<double,9,1> &X, Matrix<double,9,9> &P,
- const Quaternion<double> &q, const timestamp dt);
+void imuCallback(const message &msg, State &mu, const Quaternion<double> &q, const timestamp dt);
void pvaCallback(const message &msg, Matrix<double,9,1> &X, Quaternion<double> &q);
-void utmCallback(const message &msg, Matrix<double,9,1> &X, Matrix<double,9,9> &P);
-#endif /* ----- not USE_ROS ----- */
+void utmCallback(const message &msg, State &mu);
#endif /* ----- #ifndef main_INC ----- */