scenarioSmallBodyNav

Overview

This scenario demonstrates how to use the smallBodyNavEKF() for state estimation about a small body. In this example, Bennu is used. 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 EKF in the form of NavTransMsgPayload, NavAttMsgPayload, and EphemerisMsgPayload input messages. The EKF takes in these measurements at each timestep and updates the state estimate, outputting this state estimate in its own standalone message, a SmallBodyNavMsgPayload, as well as navigation output messages - NavTransMsgPayload and EphemerisMsgPayload.

Note

This module is only meant to provide a somewhat representative autonomous small body proximity operations navigation solution for POMDP solvers. Therefore, realistic measurement modules do not exist to support this module, and not every source of uncertainty in the problem is an estimated parameter.

Attention

To see the asteroid Bennu in Vizard the asteroid asset bundle must be installed. See the Vizard Download web page.

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

../_images/scenarioSmallBodyNav1.svg ../_images/scenarioSmallBodyNav3.svg

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

../_images/scenarioSmallBodyNav2.svg ../_images/scenarioSmallBodyNav4.svg
In the next four plots, the attitude and rate estimates and error plots of the small body frame with respect to the

inertial frame are displayed.

../_images/scenarioSmallBodyNav5.svg ../_images/scenarioSmallBodyNav6.svg ../_images/scenarioSmallBodyNav7.svg ../_images/scenarioSmallBodyNav8.svg

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

python3 scenarioSmallBodyNav.py
scenarioSmallBodyNav.plot_ast_attitude_error(time, sigma_err, P)[source]

Plot the asteroid attitude estimation error and associated covariance.

scenarioSmallBodyNav.plot_ast_rate_error(time, omega_err, P)[source]

Plot the asteroid rate estimation error and associated covariance.

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

Plot the position estimation error and associated covariance.

scenarioSmallBodyNav.plot_position(time, meas_time, r_BO_O_truth, r_BO_O_est, r_BO_O_meas)[source]

Plot the relative position result.

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

Plot the position estimation error and associated covariance.

scenarioSmallBodyNav.plot_velocity(time, meas_time, v_BO_O_truth, v_BO_O_est, v_BO_O_meas)[source]

Plot the relative velocity result.

scenarioSmallBodyNav.run(show_plots)[source]

The scenarios can be run with the followings setups parameters:

Parameters:

show_plots (bool) – Determines if the script should display plots