Struct LanderCraterMeasurement

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Struct Documentation

struct LanderCraterMeasurement : public lupnt::ErrorStateMeasurement

One crater-landmark bearing (terrain-relative navigation): the unit line-of-sight from the lander’s down-looking camera to a mapped crater whose Moon-fixed position is known, expressed in the vehicle body frame.

Predicted body line-of-sight is R_b2n^T (r_crater - r) / |r_crater - r|, so the residual constrains both horizontal position and attitude. The angular noise sigma_rad is applied per line-of-sight component (small-angle unit-vector approximation).

Public Functions

Vec3d PredictedLosBody(const Vec3d &r, const Mat3d &R_b2n) const

Predicted unit line-of-sight in the body frame: R_b2n^T (r_crater - r) / |r_crater - r|.

Parameters:
  • rLander position, Moon-fixed frame [m].

  • R_b2n – Body-to-nav rotation.

virtual MeasData Compute(const NavErrorContext &nom, MatXd *H = nullptr) const override

Error-state model: predicted body line-of-sight, R = sigma_rad^2 I, and (if H != nullptr) the 3 x error_state_size Jacobian coupling position (R_b2n^T d(u_n)/d(r)) and attitude (R_b2n^T [u_n]_x). Returns an empty value vector for a degenerate (zero-range) geometry.

Public Members

double timestamp = 0.0

measurement epoch [s].

Vec3d r_crater = Vec3d::Zero()

known landmark position, Moon-fixed frame [m].

Vec3d los_body = Vec3d::Zero()

measured unit line-of-sight in the body frame.

double sigma_rad = 1.0e-3

bearing noise 1-sigma [rad].

std::string id

landmark identifier.

Config config

error-state index mapping.

struct Config

Error-state mapping for the crater-bearing model.

Public Members

int i_dr = 0

position-error offset in the error state

int i_dth = 6

attitude-error offset in the error state