class mola::factors::FactorGnssMapEnuConstVel
Overview
GNSS position factor for a fix stamped dt seconds after (or before, if negative) the keyframe it is attached to.
Like FactorGnssMapEnu, but the antenna is first moved to the fix time with the keyframe’s own body-frame twist (constant over dt, to first order):
p_body(dt) = sensorOnVehicle + dt * (v + w x sensorOnVehicle) ENU = T_enu2map * T_map2i * p_body(dt)
so a vehicle moving at speed |v| is not pulled by |v| * dt towards a fix that was taken elsewhere. With dt = 0 it is FactorGnssMapEnu.
Keys: T_enu2map (Pose3), T_map2i (Pose3), v_i (Point3, body frame), w_i (Point3, body frame).
#include <FactorGnssMapEnuConstVel.h> class FactorGnssMapEnuConstVel: public gtsam::ExpressionFactorN< gtsam::Point3, gtsam::Pose3, gtsam::Pose3, gtsam::Point3, gtsam::Point3 > { public: // construction FactorGnssMapEnuConstVel(); FactorGnssMapEnuConstVel( gtsam::Key kT_enu2map, gtsam::Key kT_map2i, gtsam::Key kV, gtsam::Key kW, const gtsam::Point3& sensorOnVehicle, double dt, const gtsam::Point3& observedENU, const gtsam::SharedNoiseModel& model ); // methods gtsam::NonlinearFactor::shared_ptr clone() const; gtsam::Expression<gtsam::Point3> expression(const std::array<gtsam::Key, NARY_EXPRESSION_SIZE>& keys) const; void print( const std::string& s, const gtsam::KeyFormatter& keyFormatter = gtsam::DefaultKeyFormatter ) const; bool equals(const gtsam::NonlinearFactor& expected, double tol = 1e-9) const; };
Construction
FactorGnssMapEnuConstVel()
Default constructor for serialization.
FactorGnssMapEnuConstVel( gtsam::Key kT_enu2map, gtsam::Key kT_map2i, gtsam::Key kV, gtsam::Key kW, const gtsam::Point3& sensorOnVehicle, double dt, const gtsam::Point3& observedENU, const gtsam::SharedNoiseModel& model )
Parameters:
kT_enu2map |
Key for the ENU-to-map transform |
kT_map2i |
Key for the keyframe pose in map coordinates |
kV |
Key for the keyframe linear velocity (body frame) |
kW |
Key for the keyframe angular velocity (body frame) |
sensorOnVehicle |
GNSS antenna position in the vehicle frame |
dt |
Fix time minus keyframe time [s] |
observedENU |
Measured GNSS position in ENU |
model |
Noise model (3D position uncertainty) |
Methods
gtsam::NonlinearFactor::shared_ptr clone() const
Returns:
Deep copy of this factor
void print( const std::string& s, const gtsam::KeyFormatter& keyFormatter = gtsam::DefaultKeyFormatter ) const
Print factor details
bool equals(const gtsam::NonlinearFactor& expected, double tol = 1e-9) const
equals