|
gtsam
|
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:
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... | |
| 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().
| 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.