Documentation
Module Catalog
Find simulation modules, flight software algorithms, and module templates. Select a module name to open its documentation. Some modules require optional build features; see the module guide for requirements.
228 modules
Module |
Language |
Category |
Description |
|---|---|---|---|
C++ |
Simulation / environment |
This document describes how albedo is modeled in the Basilisk software. The purpose of this module is to calculate albedo value at the given instrument locations. |
|
C++ |
Simulation / power |
This module evaluates the power draw of an antenna device. It reads the antennaSetStateInMsg containing the current antenna state and calculates the power draw accordingly. |
|
C++ |
Simulation / deviceInterface |
The arrayMotorTorqueToSingleActuators module is an adapter that converts an array motor torque command message into a set of scalar actuator command messages. The module reads a single input message of type ArrayMotorTorqueMsgPayload,… |
|
C |
FSW algorithms / attGuidance |
This module reads in the attitude reference message and adjusts it by a fixed rotation. This allows a general body-fixed frame B to align with this corrected reference frame R_c. |
|
C |
FSW algorithms / attGuidance |
This module is intended to be the last module in the guidance module chain. It’s input is the reference motion message generated by a prior module. It’s output is at the guidance attitude tracking errors relative to a moving reference… |
|
C |
Module templates |
This is an auto-created sample C module. The description is included with the module class definition |
|
C++ |
Module templates |
This is an auto-created sample C++ module. The description is included with the module class definition |
|
C++ |
Simulation / dynamics / DynOutput |
A class to perform a range of boresight related calculations. The module PDF Description contains further information on this module’s function, how to run it, as well as testing. |
|
C++ |
Simulation / sensors |
The goal of the camera module is to simulate a camera in the Basilisk codebase. Although images are provided by the visualization, they are renders of the Unity engine and are not necessarily representative of a camera. The module reads in… |
|
C++ |
Simulation / forceTorque |
The CannonballDrag module computes quasi-steady aerodynamic drag force and the associated torque acting at a site fixed on a body. It outputs force and torque expressed in a site-fixed reference frame. The model follows the classical… |
|
C |
FSW algorithms / attGuidance |
This module point one body-fixed axis towards a primary celestial object. The secondary goal is to point a second body-fixed axis towards another celestial object. |
|
C++ |
FSW algorithms / imageProcessing |
This module implements any convolutional neural for image processing. More precisely, the module uploads a trained model and reads it using the OpenCV library. This module is then used on an image in order to extract a radius and center. |
|
C |
FSW algorithms / transDetermination |
This module allows the user to specify a set of Chebyshev coefficients to fit a space ephemeris trajectory. Next the input time is used to determine where a given body is in space. |
|
C++ |
Simulation / mujocoDynamics |
The CmdForceInertialToForceAtSite module converts a commanded force vector expressed in the inertial frame into an equivalent force vector expressed in a site-fixed frame. The resulting site-frame force is published as a… |
|
C |
Module templates |
The C module template demonstrates message handling, a simple vector calculation, reset behavior, and variable logging. On every update, it copies an optional input vector and adds an increasing counter to the first component. It is a… |
|
C++ |
Simulation / sensors |
This class is designed to model the state of a single coarse sun sensor attached to a spacecraft. It emulates the “counts” that will typically be output by the ADC on board of a spacecraft. |
|
C++ |
FSW algorithms / attGuidance |
Module to maneuver a spacecraft subject to hard rotational constraints. This module enables the user to add keep-in and keep-out zones that must not be violated by certain user-specified body-frame directions during the maneuver. See the… |
|
C++ |
Simulation / dynamics |
The constraint effector class is used to define a physical connection between two separate spacecraft. This class takes in the connection location on each spacecraft in their respective body frames as well as a relative vector between… |
|
C++ |
Module templates |
The C++ module template demonstrates message handling, a simple vector calculation, reset behavior, and accessors for private variables. On every update, it copies an optional input vector and adds an increasing counter to the first… |
|
C |
FSW algorithms / sensorInterfaces |
This module is responsible for correcting the raw CSS output values to the expected cosine values. This requires a pre-calibrated Chebyshev residual model which calculates the expected deviation from the expected CSS cosine output given a… |
|
C |
FSW algorithms / attDetermination |
A weighted least-squares minimum-norm algorithm is used to estimate the body-relative sun heading using a cluster of coarse sun sensors. Using two successive sun heading evaluation the module also computes the inertial angular velocity… |
|
C++ |
Simulation / vizard |
This module reads in simulation data of one or more spacecraft, likely created outside of Basilisk, and creates associated Basilisk messages such that vizInterface can stream of save a Vizard compatible data file. This makes it possible to… |
|
C++ |
Simulation / environment |
This module provides the GEO electron and ion flux based on 82 satellite-years as discussed in this paper by M. H. Denton and on this website. A Fortran module can be downloaded from this website which computes the electron and ion flux… |
|
C |
FSW algorithms / effectorInterfaces |
This module computes individual torque rod dipole commands taking into account saturation limits. |
|
C++ |
Simulation / communication |
This document describes how the downlinkHandling module maps radio link quality into realistic data transfer outcomes. |
|
C++ |
Simulation / dynamics |
Drag dynamics class used to compute drag effects on spacecraft bodies. This class is used to implement drag dynamic effects on spacecraft using a variety of simple or complex models, which will include cannonball (attitude-independent)… |
|
C++ |
Simulation / dynamics |
Class to represent a solar array of two panels. The first panel is hinged on a single axis to the spacecraft body. The second panel is hinged to the first panel by a parallel axis on the opposite end of the first panel from the spacecraft… |
|
C |
FSW algorithms / transDetermination |
This module reads in a message with an array of accelerometer measurements and integrates them to determine an accumulated \Delta\mathbf{v} value. |
|
C |
FSW algorithms / effectorInterfaces |
This module implements a DV attitude effector management algorithm. This algorithm is used to control both the RCS and DV thrusters when executing a trajectory adjustment. |
|
C |
FSW algorithms / dvGuidance |
This method takes its own internal variables and creates an output attitude command to use for burn execution. It also flags whether the burn should be happening or not. |
|
C |
FSW algorithms / dvGuidance |
This module creates a time varying attitude reference frame message that allows the orbit correction burn direction to rotate at a constant rate. |
|
C++ |
Simulation / environment |
This module computes the Earth Radiation Pressure (ERP) flux received at the satellite location using the Knocke et al. (1988) patch model [Knocke1988]. At each time step the visible Earth disk is discretised into latitude/longitude zones.… |
|
C++ |
Simulation / environment |
The eclipse module is responsible for determining whether or not a spacecraft is experiencing a solar eclipse and how much of it is occluded. The module works on a list of spacecraft state messages, as well as a list of planets. |
|
C++ |
Simulation / deviceInterface |
Module that acts as an encoder to the reaction wheel speeds. It models both the discretization of the speed measurement, as well as signal status such as nominal, off and stuck. |
|
C |
FSW algorithms / transDetermination |
This module reads in the position and velocity of multiple orbital bodies and outputs position and velocity of each body relative to a single other orbital body position and velocity. Up to 10 input ephemeris messages can be connected. |
|
C++ |
Simulation / environment |
This class is used to take ephemeris data from the environmental models and convert it over to a FSW representation so that the ephemeris from SPICE can be patched into the FSW directly instead of generating data from an ephemeris model. |
|
C |
FSW algorithms / transDetermination |
Converter that takes an ephemeris output message and converts it over to a translational state estimate message. |
|
C |
FSW algorithms / formationFlying |
This module computes the control thrust force of the Electrostatic Tractor Relative Motion Control. A servicing satellite and a debris (or other satellite) are charged to different electrostatic potentials, resulting in an attractive force… |
|
C |
FSW algorithms / attGuidance |
This module guidance modules creates constant Euler angle rate rotations about a primary axis to create dynamic reference frames. |
|
C++ |
Simulation / environment |
Evaluate an exponential atmosphere model at a given height above a planetary surface. For more information on this module see this PDF Description. |
|
C++ |
Simulation / dynamics |
This module applies external forces and torque to a body. It can represent disturbances due to outgassing or thrusters, or directly apply requested control forces and torque. |
|
C++ |
Simulation / dynamics |
dynamicEffector Class used to provide a direct pulsed external torque on body The module PDF Description contains further information on this module’s function, how to run it, as well as testing. The current timing and reset semantics are… |
|
C++ |
Simulation / dynamics |
Drag dynamics class used to compute drag effects on spacecraft bodies |
|
C++ |
Simulation / deviceInterface |
The faceted spacecraft module maps spacecraft facet geometry from the local facet frames to the spacecraft hub body frame. The module supports both fixed facets and single-axis articulating facets. For all facets, the facet geometry… |
|
C++ |
Simulation / deviceInterface |
The faceted spacecraft projected area module computes the per-facet and total projected area of a faceted spacecraft model using a provided heading direction vector. The module can be configured for three different heading direction types.… |
|
C++ |
Simulation / dynamics |
The faceted spacecraft solar radiation pressure (SRP) module computes the aggregate force and torque acting on the spacecraft due to impinging photons from the Sun. The inertial Sun state information must be subscribed to the module… |
|
C++ |
Simulation / dynamics |
This dynamic effector module uses a faceted spacecraft model to calculate the force and torque acting on a spacecraft due to solar radiation pressure (SRP). The force and torque are calculated about the spacecraft body frame origin point… |
|
C |
FSW algorithms / opticalNavigation |
This module is a fault detection module for optical navigation. It uses a scenario in which two image processing methods are implemented, and then can be compared in different ways. |
|
C |
FSW algorithms / effectorInterfaces |
This module maps commanded forces and torques defined in the body frame of the spacecraft to a set of thrusters. It is capable of handling Center of Mass (CoM) offsets and non-controllable axis. In contrast to thrForceMapping, this module… |
|
C++ |
FSW algorithms / formationFlying |
This module computes the barycenter of a swarm of satellites. The barycenter can either be computed in the regular cartesian way (using a weighted average of the position and velocity vectors) or using the weighted average of the orbital… |
|
C++ |
Simulation / dynamics |
This class is an instantiation of the stateEffector abstract class and implements an effector representing a fuel tank. This fuel tank has one state associated with it and is the mass of the fuel inside the tank. The module is a fuel tank… |
|
C++ |
Simulation / dynamics |
This module, a sub-class of dynamicEffector, implements a first order gravity gradient torque acting on a spacecraft. It is written in a general manner such that one or more gravitational objects are considered. This allows a continues… |
|
C++ |
Simulation / environment |
This module allows the user to specify a single celestial-body fixed ground location L. Reading in the planet’s ephemeris state the position of L relative to the planet origin and the inertial frame are evaluated at output as a message. |
|
C++ |
Simulation / environment |
This module checks that a vector of mapping points are visible to a spacecraft instrument, outputting a vector of access messages for each mapping point. |
|
C |
FSW algorithms / attDetermination |
This module implements and tests a Switch Unscented Kalman Filter in order to estimate an arbitrary heading direction. More information on can be found in the PDF Description |
|
C++ |
FSW algorithms / formationFlying |
This module computes an inertial control force command for deputy spacecraft relative motion using a Hill-frame proportional-derivative (PD) law with additional feedforward compensation terms. The chief translational navigation input is… |
|
C |
FSW algorithms / attGuidance |
This attitude guidance module computes the orbital Hill reference frame states. |
|
C |
FSW algorithms / formationFlying |
This module converts two inertial spacecraft positions into a Hill-frame relative position and velocity. |
|
C |
FSW algorithms / formationFlying |
This module acts as an attitude reference generator based on attitude-driven formation control laws whose gain matrices are derived elsewhere. Specifically, it: |
|
C++ |
Simulation / deviceInterface |
Linear deployment profiler for single hinged rigid body. |
|
C++ |
FSW algorithms / effectorInterfaces |
The hingedJointArrayMotor module utilizes a tracking controller to determine the motor torques for an array of hinged joints based on commanded angles, angular rates, angular accelerations, and the current system configuration. |
|
C++ |
Simulation / dynamics |
This module implements an ideal proportional-derivative (PD) hinge controller. It calculates a commanded hinge torque from sensed and reference hinge angles and angular rates. Despite the module name, it does not model the electrical or… |
|
C++ |
Simulation / sensors |
Outputs measured angle and angle rate for a hinged rigid body. By default the angle measurement does not contain any measurement errors. The module can be configured to add gaussian noise, a bias or a discretization error to the measured… |
|
C |
FSW algorithms / effectorInterfaces |
This module implements a simple Proportional-Integral-Derivative (PID) control law to provide the commanded torque to a spinningBodyOneDOFStateEffector. |
|
C++ |
Simulation / dynamics |
The hinged rigid body class is an instantiation of the state effector abstract class. The integrated test is validating the interaction between the hinged rigid body module and the rigid body hub that it is attached to. In this case, a… |
|
C |
FSW algorithms / imageProcessing |
Converter that takes a limb message and camera information and outputs a relative position to the object. This algorithm was developed by J. Christian. |
|
C++ |
FSW algorithms / imageProcessing |
Module reads in a message containing a pointer to an image and writes out the circles that are found in the image by OpenCV’s HoughCricle Transform. |
|
C++ |
Simulation / mujocoDynamics |
The IgbmAtmDensity module applies scalar inhomogeneous geometric Brownian motion (IGBM) noise to atmospheric density by specializing InhomogeneousGeometricBrownianMotion. It scales incoming atmospheric density by the stochastic… |
|
C++ |
Simulation / dynamics |
The IgbmNoiseStateEffector module is a spacecraft StateEffector that propagates a single scalar correction \delta whose multiplicative factor (1+\delta) follows an inhomogeneous geometric Brownian motion (IGBM). |
|
C |
FSW algorithms / sensorInterfaces |
Converts incoming IMU data in the sensor platform frame P to the spacecraft body frame B. |
|
C++ |
Simulation / sensors |
Sensor model to simulate an IMU. |
|
C |
FSW algorithms / attGuidance |
This attitude guidance module create a reference attitude message that points in fixed inertial direction. The module PDF Description contains further information on this module’s function, how to run it, as well as testing. |
|
C |
FSW algorithms / attGuidance |
Module to compute the Inertial-3D spinning pointing navigation solution. This spin can be relative to an inertial frame or relative to an input reference frame message. |
|
C++ |
FSW algorithms / formationFlying |
The inertialCartFeedback module computes an inertial-frame deputy force command for translational tracking of a desired deputy inertial state. This module uses Lyapunov control theory described in chapter 14 of Analytical Mechanics of… |
|
C |
FSW algorithms / attDetermination |
This module filters incoming star tracker measurements and reaction wheel data in order to get the best possible inertial attitude estimate. The filter used is an unscented Kalman filter using the Modified Rodrigues Parameters (MRPs) as a… |
|
C++ |
Simulation / deviceInterface |
This module converts instantaneous reference joint angle changes to either filtered or time-profiled reference joint angles, rates, and accelerations. |
|
C++ |
FSW algorithms / effectorInterfaces |
The jointMotionCompensator module determines the hub torques required to negate the effect of hinged joint motor torques on the spacecraft hub motion. |
|
C++ |
Simulation / mujocoDynamics |
The JointPIDController module implements a proportional-integral-derivative (PID) controller for scalar MuJoCo joints (rotational or translational). It reads measured and desired joint state messages, computes a control output, and… |
|
Python |
FSW algorithms / effectorInterfaces |
This module allocates commanded translational force and body torque across thrusters mounted on articulated arms. It solves for joint angle commands and thruster force commands using the arm configuration message and spacecraft state… |
|
C++ |
FSW algorithms / orbitControl |
Lambert’s problem aims at finding an orbit given two position vectors \mathbf{r}_{1} and \mathbf{r}_{2} and the time if flight t_{flight} between these two locations. That is, given the two position vectors \mathbf{r}_{1} and… |
|
C++ |
FSW algorithms / orbitControl |
This module computes the required Delta-V to change the spacecraft velocity to the desired velocity {}^N\mathbf{v}_{desired} at maneuver time t_{maneuver}. The desired velocity and maneuver time are obtained by the… |
|
C++ |
FSW algorithms / orbitControl |
This module solves Lambert’s problem using either the algorithm by R.H. Gooding (longer, extensive report available here ) or the algorithm by D. Izzo. Given two position vectors \mathbf{r}_{1} and \mathbf{r}_{2} as well as a requested… |
|
C++ |
FSW algorithms / orbitControl |
This module computes the required inertial spacecraft velocity {}^N\mathbf{v}_{B/N} to satisfy the desired relative velocity to the surface {}^S\mathbf{v}_{rel,des} at position {}^N\mathbf{r}_{B/N} and (maneuver) time t. The module takes… |
|
C++ |
FSW algorithms / orbitControl |
This module computes the required Delta-V to change the spacecraft velocity to the one obtained by the lambertSolver module and checks if the resulting trajectory comes too close to the central body or too far away from the desired target… |
|
C++ |
FSW algorithms / imageProcessing |
Module reads in a message containing a pointer to an image and writes out the pixels that are on the lit limb of the planet. |
|
C++ |
Simulation / dynamics |
This class in an instantiation of the state effector class and implements an effector representing a oscillating particle |
|
C++ |
Simulation / mujocoDynamics |
The LinearTimeInvariantSystem module provides a reusable, stateful continuous-time linear time-invariant (LTI) model of the form \dot{\mathbf{x}} = \mathbf{A}\mathbf{x} + \mathbf{B}\mathbf{u} and \mathbf{y} = \mathbf{C}\mathbf{x} +… |
|
C++ |
Simulation / dynamics / linearTranslationalBodies |
The N-DoF linear translation body class is an instantiation of the state effector abstract class with N degrees of freedom. The integrated test is validating the interaction between the linear translation body module and the rigid body hub… |
|
C++ |
Simulation / dynamics / linearTranslationalBodies |
The linear translation body class is an instantiation of the state effector abstract class. The integrated test is validating the interaction between the linear translation body module and the rigid body hub that it is attached to. In this… |
|
C++ |
Simulation / communication |
This document describes how the linkBudget module operates within the Basilisk astrodynamics simulation framework. The purpose of this module is to provide a radio link budget calculation between two antennas, enabling the simulation of… |
|
C |
FSW algorithms / attGuidance |
This module computes attitude guidance and reference messages for two imaging modes: |
|
C |
FSW algorithms / attControl |
Module applies a low pass filter to the attitude control torque command. |
|
C++ |
Simulation / environment |
Evaluate a centered dipole magnetic field model about a planet for a range of spacecraft locations. For more information on this module see this PDF Description. |
|
C++ |
Simulation / environment |
Evaluate a magnetic field model about Earth for a range of spacecraft locations using the World Magnetic Model (WMM). |
|
C++ |
Simulation / sensors |
This document describes how Three-Axis Magnetometer (TAM) devices are modeled in the Basilisk software. The purpose of this module is to implement magnetic field measurements on the sensor frame S. |
|
C++ |
Simulation / onboardDataHandling / instrument |
This module receives a vector of accessMsgPayloads and outputs a vector of DataNodeUsageMsgPayloads for each accessible point. This module is meant to keep track of which points have been imaged, and which have not, passing the output… |
|
C |
FSW algorithms / formationFlying |
See the module documentation. |
|
C++ |
Simulation / dynamics |
The MeanRevertingNoiseStateEffector module is a spacecraft StateEffector that propagates a single scalar mean-reverting stochastic state. |
|
C++ |
Simulation / mujocoDynamics |
The MJJointReactionForces module extracts the reaction forces and torques acting on the joints from the MuJoCo scene. It also indexes the kinematic tree, parent body, type, and starting degree-of-freedom for each joint. |
|
C++ |
Simulation / mujocoDynamics |
The MJSystemCoM module extracts the total system CoM position and velocity from a MuJoCo scene with a single spacecraft. For variable-mass bodies, the reported velocity is the time derivative of the reported center-of-mass position, |
|
C++ |
Simulation / mujocoDynamics |
The MJSystemMassMatrix module extracts the full system mass matrix. It also stores the number of spacecraft in the scene, indexes their starting joint, and the types of joints used. |
|
C++ |
Simulation / thermal |
Module that computes the motor temperature. It takes into account mechanical power efficiency, as well as friction, as sources of heat. There is also a dissipative term due to the temperature gradient between the motor and the air… |
|
C++ |
Simulation / deviceInterface |
Interface module to convert an array of motor input voltages to an array of motor torques. |
|
C |
FSW algorithms / attControl |
This module provides a general MRP feedback control law. This 3-axis control can asymptotically track a general reference attitude trajectory. The module is setup to work with or without N reaction wheels with general orientation. If the… |
|
C |
FSW algorithms / attControl |
This module provides a MRP based PD attitude control module. It is similar to mrpFeedback, but without the RW or the integral feedback option. The feedback control is able to asymptotically track a reference attitude if there are no… |
|
Rust |
FSW algorithms / attControl |
mrpPDRust provides modified Rodrigues parameter (MRP) proportional-derivative attitude control. It is a native Rust counterpart to mrpPD and is similar to mrpFeedback, but it does not include reaction-wheel or integral-feedback terms. When… |
|
C |
FSW algorithms / attGuidance |
This module creates a dynamic reference frame attitude state message where the initial orientation relative to the input reference frame is specified through an MRP set, and the angular velocity vector is held fixed as seen by the… |
|
C |
FSW algorithms / attControl |
The intend of this module is to implement an MRP attitude steering law where the control output is a vector of commanded body rates. To use this module it is required to use a separate rate tracking servo control module, such as… |
|
C++ |
Simulation / environment |
Atmosphere class used to calculate temperature / density above a body using multiple models. This class is used to hold relevant atmospheric properties and to compute the density for a given set of spacecraft relative to a specified… |
|
C++ |
Simulation / dynamics |
This module uses the Multi-Sphere-Method (MSM) to evaluate the mutual electrostatic force and torque interactions between a series of spacecraft object. The charging is specified through a voltage where the object is assumed to have a… |
|
C++ |
Simulation / dynamics |
This module converts magnetic torque bar dipoles to body torques. |
|
C |
FSW algorithms / attControl |
This module computes the torque produced by the magnetic torque bars and applies it to the current commanded body torque as a feedforward term. |
|
C |
FSW algorithms / attControl |
This module computes the appropriate wheel torques and magnetic torque bar dipoles to bias the wheels to their desired speeds. Note that there is no gurantee that the wheel speeds will converge to their bias when less than 3 orthornormal… |
|
C |
FSW algorithms / attControl |
This module computes the desired Body frame torque to dump the momentum in the reaction wheels. |
|
C |
FSW algorithms / transDetermination |
This module takes in a series of navigation messages and constructs a navigation output message using a select subset of information from the input messages. For more information see the PDF Description. |
|
C++ |
Simulation / mujocoDynamics |
The NBodyGravity module computes gravitational forces on one or more targets due to one or more gravity sources and applies those forces in a MuJoCo simulation. It supports arbitrary gravity models and can be tied to MuJoCo sites or bodies… |
|
C++ |
Simulation / dynamics |
This class is an instantiation of the stateEffector class and is a N-hinged rigid body effector. This effector is a rigid body attached to the hub through a torsional spring and damper that approximates a flexible appendage. See Allard,… |
|
C |
FSW algorithms / transDetermination |
This module takes the TDB time, current object time and computes the state of the object using the time corrected by TDB and the stored Chebyshev coefficients. |
|
C |
FSW algorithms / attDetermination |
This module implements and tests a Extended Kalman Filter in order to estimate the sunline direction. |
|
C |
FSW algorithms / attGuidance |
This module computes a reference attitude frame that simultaneously satisfies multiple pointing constraints. The first constraint consists of aligning a body-frame direction {}^\mathcal{B}\hat{h}_1 with a certain inertial reference… |
|
C |
FSW algorithms / attGuidance |
This module implements a opNav point attitude guidance routine. |
|
C++ |
Simulation / dynamics / DynOutput |
An orbital element/cartesian position and velocity converter. The module PDF Description contains further information on this module’s function, how to run it, as well as testing. |
|
C++ |
FSW algorithms / orbitControl |
The OrbElemOffset module combines two classical orbital element messages into a single output element set. One input provides the nominal (main) orbit, and the second provides element offsets. By default, all fields are added element wise,… |
|
C++ |
Simulation / onboardDataHandling |
The PartitionedStorageUnit class is a model of storage unit functionality that aims to split up the storage unit into “partitions” or buffers, just as a flight storage system would, for each data type (instrument 1, instrument 2,… |
|
C++ |
Simulation / navigation |
This module simulates a camera pinhole model that computes landmark pixels as seen by a spacecraft. It reads the planet’s ephemeris and spacecraft state messages as inputs. It outputs a vector of landmark messages. |
|
C |
FSW algorithms / opticalNavigation |
This module filters position measurements that have been processed from planet images in order to estimate spacecraft relative position to an observed body in the inertial frame. It is similar to the relativeOD filter except that it… |
|
C |
FSW algorithms / imageProcessing |
Converter that takes a image processing message and camera information and outputs a relative position to the object. |
|
C++ |
Simulation / environment |
The planetEphemeris module uses classical heliocentric orbit elements to specify a planet’s position and velocity vectors. |
|
C++ |
Simulation / navigation |
Takes in a spacecraft position message and spice planet message and provides the heading to the planet in the s/c body frame. |
|
C++ |
Simulation / navigation |
This module is used to generate noisy ephemeris data, similar to what simpleNav does for spacecraft states. These noisy states can either serve as a stand-in for a filter that estimates the body’s ephemeris or as measurements input into… |
|
C++ |
Simulation / dynamics |
This module encodes the polyhedron gravity model as described in Werner and Scheeres 1996. It inherits from the abstract class gravityModel and computes the gravity acceleration and potential with the constant density polyhedron equations. |
|
C++ |
Simulation / deviceInterface |
This module profiles linear translational motion for a rigid body connected to a rigid spacecraft hub. The body frame of the translating body is designated by the frame \mathcal{P}. The states of the translating body are profiled relative… |
|
C++ |
Simulation / dynamics |
The prescribed motion state effector class is an instantiation of the state effector abstract class. This module is used to connect a prescribed motion component to the spacecraft hub. The states of the prescribed component are purely… |
|
C |
FSW algorithms / effectorInterfaces |
This module profiles a PrescribedRotationMsgPayload message for a specified 2 DOF rotation for a secondary rigid body connected to a rigid spacecraft hub at a hub-fixed location, \mathcal{M}. The body frame for the prescribed body is… |
|
C++ |
Simulation / deviceInterface |
This module profiles a 1 DOF rotation for a spinning rigid body connected to a rigid spacecraft hub. The body frame of the spinning body is designated by the frame \mathcal{P}. The spinning body’s states are profiled relative to a hub-… |
|
C |
FSW algorithms / attControl |
This module implements a PRV steering attitude control routine. |
|
C++ |
Simulation / dynamics |
Radiation pressure dynamics class used to compute |
|
C |
FSW algorithms / attGuidance |
This module is able to manage a series of dynamic guidance strategies. |
|
C |
FSW algorithms / sensorInterfaces |
The purpose of this module is to read in the IMU sensor body message from message type IMUSensorBodyMsgPayload, and store it in the output message of type NavAttMsgPayload. The output message of type NavAttMsgPayload is used as a common… |
|
C |
FSW algorithms / attControl |
This module implements a nonlinear rate servo control uses the attiude steering message and determine the ADCS control torque vector. |
|
C++ |
Simulation / power |
This module evaluates the power draw of a reactionWheelStateEffector. It reads a message with the RW states containing the wheel speed and motor torque value. These are used to evaluate the power required to change the wheel speed. In… |
|
C++ |
Simulation / dynamics |
This state effector models reaction wheels attached to a spacecraft hub, including wheel-speed states, motor torques, friction, and the resulting spacecraft coupling. It supports balanced wheels, simple jitter, and fully coupled jitter.… |
|
C |
FSW algorithms / opticalNavigation |
This module filters position measurements that have been processed from planet images in order to estimate spacecraft relative position to an observed body in the inertial frame. The filter used is an unscented Kalman filter, and the… |
|
Rust |
Module templates |
This basic Rust Basilisk module can be copied as a starting point for a new Rust module. It demonstrates both an individual message connection and a fixed-size array of two message connections. The module reads optional input messages,… |
|
C |
FSW algorithms |
See the module documentation. |
|
C |
FSW algorithms / effectorInterfaces |
This module maps a desired torque to control the spacecraft, and maps it to the available wheels using a minimum norm inverse fit. |
|
C |
FSW algorithms / effectorInterfaces |
This module computes the RW motor voltage from the command torque. |
|
C |
FSW algorithms / effectorInterfaces |
This module uses the Reaction Wheel (RW) null space to slow down the wheels. The resulting motor torques are super imposed on top of the attitude feedback control RW motor torques. More information can be found in the PDF Description. |
|
C++ |
Simulation / deviceInterface |
The saturationSingleActuator module applies optional saturation limits to a scalar actuator command. The module reads a SingleActuatorMsgPayload input message containing a scalar command u. When saturation is enabled, the command is… |
|
C++ |
Simulation / deviceInterface |
The scalarJointStatesToRWSpeed module is an adapter that converts a set of scalar joint state messages into a single reaction wheel speed message. The module reads N input messages of type ScalarJointStateMsgPayload, each containing a… |
|
C |
FSW algorithms / sensorInterfaces |
Module to perform continuous instrument control if attitude error and attitude rate are within specified tolerances. If within the specified tolerances, the module will send an imaging command to the instrument. Applicable use case could… |
|
C++ |
Simulation / thermal |
This module models the temperature of a sensor. It takes into account thermal emission, absorption, and conversion of electrical energy to thermal energy within the sensor. The sensor is assumed to be a flat plate with an insulated backing. |
|
C++ |
Simulation / communication |
This document describes how the simpleAntenna module operates within the Basilisk astrodynamics simulation framework. The purpose of this module is to provide a simplified representation of an antenna for spacecraft-to-spacecraft and… |
|
C++ |
Simulation / power |
The SimpleBattery class is a minimal model of battery functionality that considers: |
|
C |
FSW algorithms / attGuidance |
This method applies a two-level deadbanding logic (according to the current average simple compared with the set threshold) and decides whether control should be switched ON/OFF or not. |
|
C++ |
Simulation / onboardDataHandling / instrument |
This module provides first-order modeling of data generation from a simple instrument at a fixed baud rate. Specifically, it writes out a DataNodeUsageMsgPayload describing its data name and baud rate at each time step. |
|
C |
FSW algorithms / sensorInterfaces |
This module generates a command in the form of a DeviceCmdMsgPayload that turns on a simpleInstrument if the spacecraft a.) has access to a groundLocation and b.) the associated attitude error and attitude rate error from an attitude… |
|
C++ |
Simulation / sensors |
This module simulates a spacecraft mass sensor. It receives the mass properties from a spacecraft object using a simulation type message, and converts it into a FSW type message to be used in flight software modules. |
|
C++ |
Simulation / navigation |
Simple navigation model used to provide error-ed truth (or truth). This class is used to perturb the truth state away using a gauss-markov error model. It is designed to look like a random walk process put on top of the nominal position,… |
|
C++ |
Simulation / power |
The SimplePowerMonitor class is a minimal representation of the PowerStorageBase base class that could represent an electrical battery. It tracks the integrated net power of a set of attached devices analagous to the behavior of the… |
|
C++ |
Simulation / power |
This module is intended to serve as a basic power node with a constant power load or draw. Specifically, it: |
|
C++ |
Simulation / power |
This module provides first-order modeling of power generation from an attitude and orbitally coupled solar panel. Specifically, it: |
|
C++ |
Simulation / onboardDataHandling |
The SimpleStorageUnit class is a model of storage unit functionality that keeps only one “partition” or buffer that all data is stored in. This module considers: |
|
C++ |
Simulation / onboardDataHandling |
This module provides first-order modeling of data downlinking from a simple transmitter at a fixed baud rate. Specifically, the transmitter reads a DataStorageStatusMsgPayload from the storage unit it is subscribed to, searches for the… |
|
C++ |
Simulation / sensors |
The Simple Voltage Estimator module is used to provide error-ed truth (or truth) spacecraft electric potentials, similar to the simpleNav module that provides error-ed truth (or truth) spacecraft states. This class is used to perturb the… |
|
C++ |
Simulation |
The clock synchronization module is used to slave the simulation to realtime. The module is controlled by specifying an acceleration factor which can be adjusted dynamically if the timeInitialized factor is also reset dynamically. |
|
C++ |
FSW algorithms / smallBodyNavigation |
This module provides a navigation solution for a spacecraft about a small body. A hybrid extended Kalman filter estimates relative spacecraft position and velocity with respect to the small body and the attitude and attitude rate of the… |
|
C++ |
FSW algorithms / smallBodyNavigation |
This module provides a navigation solution for a spacecraft about a small body. An unscented Kalman filter estimates relative spacecraft position and velocity with respect to the small body, and the non-Keplerian acceleration term. |
|
C++ |
FSW algorithms / orbitControl |
This module is provides a feedback control law for waypoint-to-waypoint control about a small body. The waypoints are defined in the Hill frame of the body. |
|
C |
FSW algorithms / effectorInterfaces |
This module is used to calculate the required rotation angle for a solar array that is able to rotate about its drive axis. The degree of freedom associated with the rotation of the array about the drive axis makes it such that it is… |
|
C++ |
Simulation / environment |
Takes in a spacecraft position message and sun position message and calculates the solar \text{W/m}^2 at the spacecraft location. It also allows for an optional eclipse message to be considered in the solar flux calculation. |
|
C++ |
Simulation / dynamics |
This module provides the spacecraft rigid body translational and rotation motion. It is the typical module used to simulate the 6-DOF spacecraft motion. This spacecraft module is setup such that additional spacecraft effectors can be added… |
|
C++ |
Simulation / environment |
The spacecraftChargingDynamics class is derived from the the parent class DynamicObject. This module integrates the electric potential of two spacecraft (a servicer and a target) in a plasma environment using a first order ordinary… |
|
C++ |
Simulation / environment |
The spacecraftChargingEquilibrium module computes spacecraft equilibrium (floating) electric potentials in a plasma environment using two sequential 1-D root solves (by enforcing a zero net current condition on each spacecraft surface).… |
|
C++ |
Simulation / environment |
This module determines if one satellite has a line of sight vector to another satellite. An oblate planet is modeled through the equatorial and the polar radius. If the line of sight vector between two satellites is above this surface,… |
|
C |
FSW algorithms / formationFlying |
The primary purpose of this module is to provide an attitude reference output to make sure that a vector given in the deputy spacecraft’s body frame points to the chief spacecraft. The position of the chief- and deputy spacecraft in the… |
|
C |
FSW algorithms / formationFlying |
The primary purpose of this module is to schedule burn timing and attitude for spacecraft formation reconfiguration. Basic idea is described in section 14.8.3 of Analytical Mechanics of Space Systems. Based on keplerian dynamics, formation… |
|
C++ |
Simulation / dynamics |
This is an instantiation of the dynamicObject abstract class that is a spacecraft with stateEffector’s and dynamicEffector’s attached to it. The spacecraftDynamics allows for both translation and rotation. stateEffector’s such as RWs,… |
|
C++ |
Simulation / onboardDataHandling |
This module provides a model of access-dependent data downlink from a simple transmitter at a fixed baud rate. Specifically, the transmitter reads a DataStorageStatusMsgPayload from the storage unit it is subscribed to, searches for the… |
|
C++ |
Simulation / environment |
The spaceWeatherData module reads a CelesTrak-style space-weather CSV table and publishes the 23 SwDataMsgPayload output messages required by msisAtmosphere. On every simulation update step the module determines the current UTC calendar… |
|
C++ |
Simulation / dynamics |
See the module documentation. |
|
C++ |
Simulation / dynamics |
This class in an instantiation of the state effector class and implements an effector representing spherical pendulum. |
|
C++ |
Simulation / environment |
The SPICE interface class gets time and planetary or spacecraft body information from the JPL ephemeris library |
|
C++ |
Simulation / dynamics / spinningBodies |
The N-degree-of-freedom spinning body class is an instantiation of the state effector abstract class. The integrated test is validating the interaction between the N-DoF spinning body module and the rigid body hub that it is attached to.… |
|
C++ |
Simulation / dynamics / spinningBodies |
The spinning body class is an instantiation of the state effector abstract class. The integrated test is validating the interaction between the spinning body module and the rigid body hub that it is attached to. In this case, a 1-DoF… |
|
C++ |
Simulation / dynamics / spinningBodies |
The two-degree-of-freedom spinning body class is an instantiation of the state effector abstract class. The integrated test is validating the interaction between the 2-DoF spinning body module and the rigid body hub that it is attached to.… |
|
C++ |
Simulation / sensors |
Sensor model to simulate a Star Tracker. |
|
Python |
Simulation / navigation |
This module combines attitude information from one spacecraft state message with translational information from another spacecraft state message. The merged output is useful when a simulation has separate attitude and center-of-mass state… |
|
C |
FSW algorithms / sensorInterfaces |
This module takes the star tracker sensor data in the platform frame and converts that information to the format used by the ST nav in the body frame. |
|
C++ |
Simulation / deviceInterface |
The stepper motor module simulates the actuation of a stepper motor. Given the initial motor angle \theta_0, a fixed motor step angle \Delta\theta, a fixed motor step time \Delta t, and an input message containing an integer number of… |
|
C++ |
Simulation / mujocoDynamics |
The StochasticAtmDensity module applies scalar mean-reverting stochastic noise to atmospheric density by specializing MeanRevertingNoise. It scales incoming atmospheric density by a stochastic multiplicative factor and republishes the… |
|
C++ |
Simulation / mujocoDynamics |
The StochasticDragCoeff module applies scalar mean-reverting stochastic noise to aerodynamic drag coefficient by specializing MeanRevertingNoise. It perturbs dragCoeff in a DragGeometryMsgPayload and republishes the modified geometry… |
|
C++ |
Simulation / environment |
This module extends the groundLocation concept to model a strip imaging target on a celestial body’s surface. Instead of a single fixed point, the user defines a ground strip by specifying a start and an end location (both body-fixed). The… |
|
C |
FSW algorithms / attDetermination |
This module implements and tests a Extended Kalman Filter in order to estimate the sunline direction. |
|
C |
FSW algorithms / attDetermination |
This module computes an ephemeris-based sunline heading. |
|
C |
FSW algorithms / attDetermination |
This module implements and tests a Switch Extended Kalman Filter in order to estimate the sunline direction. |
|
C |
FSW algorithms / attDetermination |
This module implements and tests a Switch Unscented Kalman Filter in order to estimate the sunline direction. The theory used in this module can be found in this paper. |
|
C |
FSW algorithms / attDetermination |
This module implements and tests a Unscented Kalman Filter in order to estimate the sunline direction. |
|
C |
FSW algorithms / effectorInterfaces |
This method takes the estimated body-observed sun vector and computes the current attitude/attitude rate errors to pass on to control. |
|
C |
FSW algorithms / attGuidance |
This module provides the attitude guidance output for a sun pointing mode. This could be used for safe mode, or a power generation mode. The input is the sun direction vector which does not have to be normalized, as well as the body rate… |
|
C++ |
Simulation / environment |
The purpose of this module is to implement a tabular atmospheric model that returns density and temperature values at a specified altitude and planet. The module linearly interpolates tables and is a child of the base class Atmosphere. |
|
C |
FSW algorithms / sensorInterfaces |
This module reads in a message of type TAMSensorBodyMsgPayload, outputs the magnetometer measurement vector in vehicle’s body coordinates tam_B to the output message tamOutMsg. |
|
C++ |
Simulation / deviceInterface |
Models the addition of noise, bias, and faults to temperature measurements. |
|
C |
FSW algorithms / effectorInterfaces |
A thruster force message is read in and converted to a thruster on-time output message. The module ensures the requested on-time is at least as large as the thruster’s minimum on time. If not then the on-time is zeroed, but the… |
|
Python |
FSW algorithms / effectorInterfaces |
This module converts thruster force commands into thruster on-time commands. Each positive force command is normalized by the configured maximum thrust, scaled by the control period, clipped to the control period, rounded to the nearest… |
|
C |
FSW algorithms / effectorInterfaces |
A Schmitt trigger logic is implemented to map a desired thruster force value into a thruster on command time. |
|
C |
FSW algorithms / effectorInterfaces |
This module is reads in a desired attitude control torque vector and maps it onto a set of thrusters. |
|
C++ |
FSW algorithms / effectorInterfaces |
The thrJointCompensation module determines the motor torques for an array of hinged joints as required to ensure zero acceleration of the joints during thruster firing. |
|
C |
FSW algorithms / effectorInterfaces |
This module reads in the desired impulse that each thruster must produce to create inertial momentum change to despin the RWs. |
|
C |
FSW algorithms / attControl |
This module reads in the Reaction Wheel (RW) speeds, determines the net RW momentum, and then determines the amount of angular momentum that must be dumped. |
|
C++ |
Simulation / mujocoDynamics |
The thrOnTimeToForce module converts commanded thruster on times into thruster force outputs to be used in a MuJoCo simulation. If a new commanded on-time is received for a thruster that on-time replaces any remaining on-time for that… |
|
C++ |
FSW algorithms / stateEstimation |
This module estimates the location of the center of mass (CM) of the entire spacecraft system based on a series of torque measurements. The module assumes the ability to measure and provide the control torques delivered to the system at… |
|
C++ |
Simulation / dynamics / Thrusters |
Thruster dynamics class used to provide thruster effects on body. This class is used to hold and operate a set of thrusters that are located on the spacecraft. It contains all of the configuration data for the thruster set, reads an array… |
|
C |
FSW algorithms / effectorInterfaces |
This module computes a reference orientation for a dual-gimballed platform connected to the main hub. The platform can only perform a tip-and-tilt type of rotation, and therefore one degree of freedom is blocked. A thruster is mounted on… |
|
C |
FSW algorithms / effectorInterfaces |
This module simulates receives the measured tip and tilt angles of the thruster platform, together with the thruster configuration information expressed in platform-frame coordinates. The purpose of this module is to output the thruster… |
|
C++ |
Simulation / dynamics / Thrusters |
This module provides an implementation of the behavior of thrusters. Thrusters are modeled dynamically using a first-order ordinary differential equation, which is compatible with variable time step integrators. With this module, there are… |
|
C |
FSW algorithms / effectorInterfaces |
This algorithm is used to control both the RCS and DV thrusters when executing a trajectory adjustment. |
|
C |
FSW algorithms / effectorInterfaces |
This module computes a Body frame reequested dipole given a requested body torque and magnetic field vector. |
|
C |
FSW algorithms / effectorInterfaces |
This module schedules two control torques such that they can be applied simultaneously, one at the time, or neither is applied, and combines them into one output msg. This is useful in the case of a system with two coupled degrees of… |
|
C++ |
Simulation / forceTorque |
The TwoHingeDamper module converts the position and rates of a two-hinge spherical pendulum into the generalized torques produced by an isotropic Cartesian damper at the bob. For rod length L and Cartesian damping coefficient d, set… |
|
C |
FSW algorithms |
See the module documentation. |
|
C |
FSW algorithms / attGuidance |
This attitude guidance module computes the velocity reference frame states. |
|
C++ |
Simulation / vizard |
This module provides an interface to package up Basilisk messages and pass them onto the Vizard application. This allows for the Basilisk simulation data to be recorded to a file for play-back, or for live streaming of the simulation data.… |
|
C++ |
FSW algorithms / effectorInterfaces |
The vscmgGimbalRateServo module maps a desired wheel acceleration and gimbal rate for each VSCMG to a corresponding motor torque command for both the reaction wheel and gimbal. |
|
C++ |
Simulation / dynamics |
This state effector class implements a variable speed control moment gyroscope or VSCMG device. |
|
C++ |
FSW algorithms / effectorInterfaces |
The vscmgVelocitySteering module maps the required spacecraft control torque vector (\boldsymbol{L}_r) to a corresponding reference wheel acceleration and gimbal rate for each VSCMG. |
|
C++ |
FSW algorithms / attGuidance |
Module that reads the reorientation maneuver of a spacecraft from a text file, likely created outside of Basilisk, and outputs an Attitude Reference Message. This module makes it possible to reproduce on Basilisk attitude orientation… |
|
C++ |
Simulation / environment |
Zero wind model representing atmospheric conditions with no wind perturbations beyond co-rotation. The module is a sub-class of the windBase base class. See that class for the nominal messages used and general instructions. |
No modules match these filters. Try a different search or clear the filters.