9. scenario_LambertGuidance
9.1. Overview
This BSK Sim scenario demonstrates how to use the Lambert solver module package, consisting of
lambertPlanner()
, lambertSolver()
and lambertValidator()
, as well as the modules that can be used for the
second maneuver of the Lambert transfer arc, lambertSurfaceRelativeVelocity()
and lambertSecondDV()
. In this
scenario, the goal is to reach a target position and velocity at final time tf (equal to time of the second
maneuver tm2) by performing two maneuvers.
The first maneuver at time tm1 is done by solving Lambert’s problem. The Lambert problem is set up using Module: lambertPlanner, which provides the information in the form of LambertProblemMsgPayload to Module: lambertSolver. Lambert’s problem is solved within Module: lambertSolver, which writes the LambertSolutionMsgPayload and LambertPerformanceMsgPayload output messages. Finally, Module: lambertValidator processes the content of those messages, computes the required Delta-V, and only writes a non-zero Delta-V message within DvBurnCmdMsgPayload if no constraints are violated (minimum orbit radius and final distance from targeted location) and the Delta-V solution has converged.
The second maneuver at time tm2 is performed at the end of the Lambert transfer arc to match a desired velocity at that
point. In the case of this scenario, the desired velocity is obtained from the lambertSurfaceRelativeVelocity()
module to such that the relative velocity to the central body surface is zero.
The script is found in the folder basilisk/examples/BskSim/scenarios
and executed by using:
python3 scenario_LambertGuidance.py
The simulation is a more complex simulation than the earlier tutorial for the Lambert solver modules in scenarioLambertSolver.
9.2. Custom Dynamics Configurations Instructions
The modules required for this scenario are identical to those used in scenario_BasicOrbit.
9.3. Custom FSW Configurations Instructions
The five Lambert modules were added to the BSK_Fsw framework.
The first maneuver event is triggered when a user calls self.modeRequest = ‘lambertFirstDV’ in any
bskSim()
simulation, and the second maneuver using
self.modeRequest = ‘lambertSecondDV’
9.4. Illustration of Simulation Results
showPlots = True
- scenario_LambertGuidance.run(showPlots)[source]
The scenarios can be run with the followings setups parameters:
- Parameters:
showPlots (bool) – Determines if the script should display plots