gtsam
Loading...
Searching...
No Matches
gtsam::gnss::LeverArm Struct Reference

Detailed Description

Lever-arm helper for GNSS factors that key on a body Pose3.

Owns the lever arm (body-frame translation from the body origin to the GNSS antenna) and an optional ecef_T_nav transform. Centralizes the two operations that every "Arm" GNSS factor needs:

  1. Map a body Pose3 (optionally expressed in a local nav frame) plus a lever arm to an ECEF antenna position.
  2. Push a 1x3 Jacobian w.r.t. the antenna position back through the lever arm and (optional) ecef_T_nav compose to produce the 1x6 Jacobian w.r.t. the pose tangent.

Public Member Functions

 LeverArm (const Point3 &leverArm)
 LeverArm (const Point3 &leverArm, const Pose3 &nav)
Point3 antennaPosition (const Pose3 &pose, PoseFrame *frame=nullptr) const
 Compute the antenna ECEF position for pose.
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.
bool equals (const LeverArm &other, double tol) const

Public Attributes

Point3 b {0, 0, 0}
 Lever arm in body frame [m].
std::optional< Pose3 > ecef_T_nav
 Optional ECEF-from-nav transform.

Classes

struct  PoseFrame
 Intermediate quantities cached by antennaPosition() so antennaPoseJacobian can compute the pose Jacobian without recomputing the rotation/compose. More...

Member Function Documentation

◆ antennaPoseJacobian()

Matrix16 gtsam::gnss::LeverArm::antennaPoseJacobian ( const Matrix13 & H_antenna,
const PoseFrame & frame ) const

Convert a 1x3 Jacobian (d/d antenna position) into a 1x6 Jacobian w.r.t.

the pose tangent space, using the cached frame from antennaPosition().

◆ antennaPosition()

Point3 gtsam::gnss::LeverArm::antennaPosition ( const Pose3 & pose,
PoseFrame * frame = nullptr ) const

Compute the antenna ECEF position for pose.

If frame is non-null it is filled with the chain-rule data needed by antennaPoseJacobian(). Pass null when no Jacobian is required.


The documentation for this struct was generated from the following files:
  • /tmp/gtsam-4.3.0-doxygen.rsXPUS/source/gtsam/navigation/GnssCommon.h
  • /tmp/gtsam-4.3.0-doxygen.rsXPUS/source/gtsam/navigation/GnssCommon.cpp