scenarioSmallBodyNavUKF

Overview

This scenario demonstrates how to use the smallBodyNavUKF() for translational state and non-Keplerian gravity acceleration estimation about a small body. In this example, Vesta is chosen (supportData/LocalGravData/VESTA20H.txt). However, any small body could be selected as long as the appropriate gravitational parameter is set.

In this scenario, Module: simpleNav and Module: planetEphemeris provide measurements to the UKF in the form of NavTransMsgPayload and EphemerisMsgPayload input messages. The UKF takes in these measurements at each timestep and updates the state estimate, outputting this state estimate in its own standalone message, a SmallBodyNavUKFMsgPayload.

../_images/test_scenarioSmallBodyNavUKF.svg

Note

This module is only meant to demonstrate the possibility of estimating non-Keplerian acceleration in a small body environment. Therefore, realistic measurement modules do not exist to support this module, and not every source of uncertainty in the problem is an estimated parameter.

The relative position estimate and the estimation error and covariance may be found in the plots below.

../_images/scenarioSmallBodyNavUKF3.svg ../_images/scenarioSmallBodyNavUKF6.svg

The relative velocity estimate and the estimation error and covariance may be found in the plots below.

../_images/scenarioSmallBodyNavUKF4.svg ../_images/scenarioSmallBodyNavUKF7.svg

The non-Keplerian acceleration estimate (inhomogeneous gravity field) and the estimation error and covariance may be found in the plots below.

../_images/scenarioSmallBodyNavUKF5.svg ../_images/scenarioSmallBodyNavUKF8.svg

The spacecraft trajectories as seen from the inertial and asteroid fixed frame may be found in the plots below.

../_images/scenarioSmallBodyNavUKF1.svg ../_images/scenarioSmallBodyNavUKF2.svg

The script is found in the folder basilisk/examples and executed by using:

python3 scenarioSmallBodyNavUKF.py
scenarioSmallBodyNavUKF.plot_3Dposition(r_truth, title='None')[source]

Plot the relative position in 3D.

scenarioSmallBodyNavUKF.plot_acc_error(time, a_err, P)[source]

Plot the non-Keplerian acceleration estimation error and associated covariance.

scenarioSmallBodyNavUKF.plot_acceleration(time, a_truth, a_est)[source]

Plot the non-Keplerian acceleration result.

scenarioSmallBodyNavUKF.plot_pos_error(time, r_err, P)[source]

Plot the position estimation error and associated covariance.

scenarioSmallBodyNavUKF.plot_position(time, r_truth, r_est)[source]

Plot the relative position result.

scenarioSmallBodyNavUKF.plot_vel_error(time, v_err, P)[source]

Plot the velocity estimation error and associated covariance.

scenarioSmallBodyNavUKF.plot_velocity(time, v_truth, v_est)[source]

Plot the relative velocity result.