houghCircles, pixelLineConverter) to extract geometric measurements, which are then filtered by the modules on this page.
Relative OD UKF
Filters planet-image position measurements to estimate spacecraft position in the inertial frame.
Pixel-line bias UKF
Extends the relative OD UKF with pixel and line measurement bias estimation.
Fault detection
Merges or selects between two OpNav measurement sources with configurable fault tolerance.
Heading SuKF
Estimates an arbitrary heading direction from OpNav measurements (see Attitude Determination).
Relative OD UKF (relativeODuKF)
This module filters position measurements derived from planetary images to estimate the spacecraft’s relative position with respect to the observed body, expressed in the inertial frame. It uses an Unscented Kalman Filter (UKF). The raw image measurements are first processed by houghCircles and pixelLineConverter to produce the OpNavMsgPayload inputs this filter consumes.
Messages
| Variable | Type | Direction | Description |
|---|---|---|---|
opNavInMsg | OpNavMsgPayload | Input | Processed position measurement from image pipeline |
navStateOutMsg | NavTransMsgPayload | Output | Estimated spacecraft position and velocity |
filtDataOutMsg | OpNavFilterMsgPayload | Output | Filter state, covariance, and residuals |
Pixel-line bias UKF (pixelLineBiasUKF)
Extends the relative OD UKF by incorporating pixel and line measurement biases directly into the filter state. Instead of relying on pre-converted position measurements, it reads detected circle data (OpNavCirclesMsgPayload) and integrates the pixel-to-line transformation into the measurement model. This makes it more robust to systematic camera calibration errors.
Messages
| Variable | Type | Direction | Description |
|---|---|---|---|
circlesInMsg | OpNavCirclesMsgPayload | Input | Detected planet limb circle data |
cameraConfigInMsg | CameraConfigMsgPayload | Input | Camera intrinsic parameters |
attInMsg | NavAttMsgPayload | Input | Spacecraft attitude |
navStateOutMsg | NavTransMsgPayload | Output | Estimated position and velocity |
filtDataOutMsg | PixelLineFilterMsgPayload | Output | Full filter state including pixel/line biases |
Fault detection (faultDetection)
Compares two independent OpNav measurement sources and produces a single fused or selected output. You configure a fault mode that determines how the two inputs are combined and how failures are handled.
Fault modes
| Mode | Behavior |
|---|---|
0 | Least restrictive: uses whichever measurement is available; merges both when both are present. |
1 | Moderate: uses the primary measurement when both are available; checks secondary for dissimilarity. |
2 | Most restrictive: primary is only used when the secondary confirms it. |
Messages
| Variable | Type | Direction | Description |
|---|---|---|---|
navMeasPrimaryInMsg | OpNavMsgPayload | Input | Primary navigation measurement |
navMeasSecondaryInMsg | OpNavMsgPayload | Input | Secondary navigation measurement |
cameraConfigInMsg | CameraConfigMsgPayload | Input | Camera configuration |
attInMsg | NavAttMsgPayload | Input | Spacecraft attitude |
opNavOutMsg | OpNavMsgPayload | Output | Fused or selected navigation measurement |
The
sigmaFault parameter controls how far the two measurements must disagree (in units of their combined covariance) before a fault is declared. A value of 3 corresponds to a 3-sigma threshold.Small-body navigation (EKF and UKF)
For proximity operations around small bodies, see thesmallBodyNavEKF and smallBodyNavUKF modules documented in State estimation. Those filters jointly estimate spacecraft relative position, velocity, and the small body’s attitude and spin rate.