10#include <gtsam/dllexport.h>
40constexpr double OMGE = 7.2921151467e-5;
103 bool equals(
const DoubleDifferenceData& other,
double tol)
const;
119struct GTSAM_EXPORT LeverArm {
123 LeverArm() =
default;
124 explicit LeverArm(
const Point3& leverArm) :
b(leverArm) {}
126 : b(leverArm), ecef_T_nav(nav) {}
133 bool has_nav =
false;
152 bool equals(
const LeverArm& other,
double tol)
const;
typedef and functions to augment Eigen's MatrixXd
Special class for optional Jacobian arguments.
3D Pose manifold SO(3) x R^3 and group SE(3)
double geodist(const Point3 &sat, const Point3 &rcv, Point3 &e, OptionalJacobian< 1, 3 > H_rcv)
Geometric distance with Sagnac correction.
Definition GnssCommon.cpp:16
constexpr double OMGE
WGS-84 Earth rotation rate (rad/s).
Definition GnssCommon.h:40
constexpr double C_LIGHT
Speed of light in a vacuum (m/s).
Definition GnssCommon.h:37
Global functions in a separate testing namespace.
Definition chartTesting.h:28
Vector3 Point3
As of GTSAM 4, in order to make GTSAM more lean, it is now possible to just typedef Point3 to Vector3...
Definition Point3.h:38
OptionalJacobian is an Eigen::Ref like class that can take be constructed using either a fixed size o...
Definition OptionalJacobian.h:40
Template to create a binary predicate.
Definition Testable.h:112
A 3D pose (R,t) : (Rot3,Point3).
Definition Pose3.h:42
Base class storing common members for GNSS measurement factors.
Definition GnssCommon.h:25
double measurement_
Measurement in meters (pseudorange, or carrier phase * wavelength).
Definition GnssCommon.h:27
double satClkBias_
Satellite clock bias in seconds.
Definition GnssCommon.h:31
Point3 satPos_
Satellite position in WGS84 ECEF meters.
Definition GnssCommon.h:29
Shared geometry data for double-difference factors.
Definition GnssCommon.h:74
Point3 satRefRov
Ref satellite ECEF at rover time [m].
Definition GnssCommon.h:79
double observed() const
Observed DD: (rovRef - baseRef) - (rovTarget - baseTarget) [m].
Definition GnssCommon.h:86
Point3 satRefBase
Ref satellite ECEF at base time [m].
Definition GnssCommon.h:81
Point3 satTargetBase
Target satellite ECEF at base time [m].
Definition GnssCommon.h:82
double baseRef
Base observation for ref satellite [m].
Definition GnssCommon.h:76
Point3 basePos
Base station ECEF position [m].
Definition GnssCommon.h:83
Point3 satTargetRov
Target satellite ECEF at rover time [m].
Definition GnssCommon.h:80
double baseTarget
Base observation for target satellite [m].
Definition GnssCommon.h:78
double rovTarget
Rover observation for target satellite [m].
Definition GnssCommon.h:77
double rovRef
Rover observation for ref satellite [m].
Definition GnssCommon.h:75
Lever-arm helper for GNSS factors that key on a body Pose3.
Definition GnssCommon.h:119
Point3 b
Lever arm in body frame [m].
Definition GnssCommon.h:120
Matrix16 antennaPoseJacobian(const Matrix13 &H_antenna, const PoseFrame &frame) const
Convert a 1x3 Jacobian (d/d antenna position) into a 1x6 Jacobian w.r.t.
Definition GnssCommon.cpp:82
Point3 antennaPosition(const Pose3 &pose, PoseFrame *frame=nullptr) const
Compute the antenna ECEF position for pose.
Definition GnssCommon.cpp:68
std::optional< Pose3 > ecef_T_nav
Optional ECEF-from-nav transform.
Definition GnssCommon.h:121
Intermediate quantities cached by antennaPosition() so antennaPoseJacobian can compute the pose Jacob...
Definition GnssCommon.h:130
Matrix3 ecef_R_body
Rotation of the body in ECEF.
Definition GnssCommon.h:131
Matrix66 H_compose
d(ecef_T_body)/d(pose) (only used if has_nav).
Definition GnssCommon.h:132