2#include <NDEVR/Vertex.h>
5#pragma warning( disable : 4127)
7#include <Eigen/Geometry>
24 GlobalPosition(
int id,
double timestamp)
25 : timestamp(timestamp)
30 virtual ~GlobalPosition() {}
34 virtual Eigen::Vector3d getRelativeFromOrigin(
const GlobalPosition& origin)
const = 0;
36 virtual Eigen::MatrixXd getCovariance()
const = 0;
44 class GpsMeasurement :
public GlobalPosition
56 GpsMeasurement(
const int id,
const double& latitude,
const double& longitude,
const double& altitude,
const double& timestamp,
const Eigen::Matrix3d& covariance,
const Eigen::Vector3d noise = Eigen::Vector3d(0., 0., 0.)) :
57 GlobalPosition(id, timestamp), lat_lon_location(latitude, longitude, altitude), noise(noise), covariance(covariance) {}
58 Vertex<3, fltp08> lat_lon_location;
59 Eigen::Vector3d noise;
60 Eigen::Matrix3d covariance;
62 Eigen::Vector3d getRelativeFromOrigin(
const GlobalPosition& origin)
const override;
63 Eigen::MatrixXd getCovariance()
const override;
71 class MocapMeasurement :
public GlobalPosition
74 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
89 MocapMeasurement(
const int id,
90 const double& x,
const double& y,
const double& z,
91 const double& qx,
const double& qy,
const double& qz,
92 const double& qw,
const double& timestamp,
93 const Eigen::Matrix3d& covariance,
94 const Eigen::Vector3d noise = Eigen::Vector3d(0., 0., 0.))
95 : GlobalPosition(id, timestamp)
97 , covariance(covariance)
99 position = Eigen::Vector3d(x, y, z);
100 rotation = Eigen::Quaterniond(qw, qx, qy, qz);
102 Eigen::Vector3d position;
103 Eigen::Quaterniond rotation;
104 Eigen::Vector3d noise;
105 Eigen::Matrix3d covariance;
106 Eigen::Vector3d getRelativeFromOrigin(
const GlobalPosition& origin)
const override;
107 Eigen::MatrixXd getCovariance()
const override;
117 GPSCalib(
const Eigen::Vector3f& tbg)
The primary namespace for the NDEVR SDK.