Skip to content

Basilisk v2.9.0

Choose a tag to compare

@schaubh schaubh released this 30 Jan 00:38
e969f0c
  • Deploy both release docs at https://avslab.github.io/basilisk and developer beta
    docs at https://avslab.github.io/basilisk/developer.
  • Added releaseGuide on releasing a new version of Basilisk.
  • Updated merge workflow to deploy develop branch documentation to https://avslab.github.io/basilisk/develop and master
    branch documentation to https://avslab.github.io/basilisk.
  • Migrated supportData handling to a Pooch-based fetch system.
  • Removed supportData files from wheels and source distributions to reduce package size.
  • Added automatic MD5 registry generation via makeRegistry.py for versioned supportData.
  • Updated documentation to include workflow for adding new supportData files and regenerating the registry.
  • Removed automated version bumping on merges to develop. Version bumps will be handled manually moving forward.
  • Added SWIG as a python package dependency in requirements_dev.txt and updated installation instructions.
  • Updated CI to no longer automatically publish git tags and publish wheels to PyPI. This process will be handled manually.
  • Added cp313 wheel builds for Python 3.13 and newer to support updated SWIG and ABI changes.
  • Added bskPrinciples-11 capability. Now enabled for extForceTorque, constraintDynamicEffector,
    and thrusterDynamicEffector attachable to spinningBodyOneDOFStateEffector,
    spinningBodyTwoDOFStateEffector, and spinningBodyNDOFStateEffector.
  • Added support for linearTranslationOneDOFStateEffector to attach dependent effectors.
  • Improved documentation structure by separating build-from-source instructions from pip installation instructions.
  • Added custom reaction wheel: "NanoAvionics RW0" to src/utilities/simIncludeRW.py
  • Added TLE handling utilities in tleHandling to parse TLE files and convert to orbital elements
  • Removed deprecated use of astro constants from src/utilities/astroFunction.py.
    Users should be astrodynamics constants from Basilisk.architecture.astroConstants.
  • Made statistical unit tests more robust
  • Fix typo in how gravityEffector compute the planets gravity potential contributions
  • Added fault modeling capability to magnetometer module.
  • Added new module MJSystemCoM to extract the system center of mass position and velocity from a MuJoCo simulation.
  • Added new module MJSystemMassMatrix to extract the system mass matrix from a MuJoCo simulation.
  • Added new module MJJointReactionForces to extract the reaction forces and torques acting on the joints from a MuJoCo simulation.
  • Added new module hingedJointArrayMotor to determine the motor torques for an array of hinged joints.
  • Added new module jointMotionCompensator to determine the hub torques required to negate the effect of hinged joint motor torques on the spacecraft hub motion.
  • Updated locationPointing module to save omega_RN_B to the attGuidOutMsg. This may effect
    the performance of other modules that use this output message.
  • Refactored the CI build system scripts
  • Removed deprecated use of Basilisk.simulation.planetEphemeris.ClassicElementsMsgPayload.
    Users need to use ClassicalElements() defined in orbitalMotion.
  • Added documentation to constraintDynamicEffector explaining the required execution order
  • Fixed bug with recording message payload entries that are 2D arrays. This bug was introduced with the faster recording
    strategy added in version 2.8.0.
  • Add a desired relative attitude between spacecraft in constraintDynamicEffector.
  • Added new example scenarios demonstrating extended use of constraintDynamicEffector:
    scenarioConstrainedDynamicsManeuverAnalysis, scenarioConstrainedDynamicsComponentAnalysis,
    and scenarioConstrainedDynamicsFrequencyAnalysis.
  • Added a new stepper motor simulation module stepperMotor. This kinematic profiler module is useful to
    simulate the actuation of motor-driven prescribed spacecraft components.
  • Made individual structures for each degree of freedom in spinningBodyNDOFStateEffector and
    linearTranslationNDOFStateEffector.
  • Capitalized all structures in linearTranslationOneDOFStateEffector and linearTranslationNDOFStateEffector.
  • The way body-fixed locations are added to Vizard data is changed. Now Vizard retains a copy of the
    list of locations and only incremental changes have to be sent using the vizSupport.changeLocation()
    method. This drastically reduces the Vizard data size.
  • The support file vizSupport is updated to only have enableUnityVisualization() check
    if vizInterface has been built or not. Example scripts check if vizSupport.vizFound is true
    to execute vizInterface related code.
  • In vizSupport, in the method setInstrumentGuiSetting(), corrected the spelling of
    showTransceiverFrustrum to be showTransceiverFrustum. The prior argument name has
    been deprecated.
  • For vizInterface.settings, changed the name of viewCameraConeHUD to viewCameraFrustrumHUD
  • Added support for Vizard 2.3.1 features
  • Refactor and optimize Event checking in SimulationBaseClass. Time-based events can be specified by a more efficient
    conditionTime instead of a conditionFunction. This is especially useful for large numbers of events.
  • Added option for exactRateMatch=False when creating events which causes events to be checked whenever the
    eventRate has elapsed since the last check (as opposed to only when the current time is an exact multiple of the
    eventRate).
  • ConfigureStopTime now supports specifying the stop condition as <= (default, prior behavior) or >= (new).
    The new option is useful when the user wants to ensure that the simulation runs for at least the specified time,
    instead of at most the specified time.
  • Fixed documentation quote typos that caused documentation build errors with doxygen version 1.15 and newer.
  • Configured the prescribedMotionStateEffector module for attachment of other state effectors to it
    rather than the spacecraft hub.
  • Configured the spinningBodyOneDOFStateEffector, spinningBodyTwoDOFStateEffector, and
    linearTranslationOneDOFStateEffector modules for optional attachment to the prescribed motion state effector.
  • Added two example branching scenarios to illustrate the prescribed motion branching capability. See
    scenarioPrescribedMotionWithTranslationBranching and scenarioPrescribedMotionWithRotationBranching.
  • Fixed a bug where spinningBodyOneDOFStateEffector and spinningBodyNDOFStateEffector
    both registered their states under the same name, resulting in overwriting and a BSK_ERROR.
  • Added support for hingedRigidBodyStateEffector to be the parent for Dynamic Effectors.
  • Added SWIG Eigen typemaps for passing Eigen products or returning Eigen products to/from director methods.
  • Added a required time duration that must be satisfied for the imaging to be considered successful in simpleInstrumentController module.
  • Added a new scenario that simulates a debris strike on a flexible solar array scenarioImpact.
  • Updated imuSensor to remove deprecated direct setting of walkBoundsGyro and walkBoundsAccel.
    The module now outputs a zero'd output message on the first run.
  • Updated Basilisk python dependencies to include the latest range of allowable packages
  • Improved documentation of orbitalMotion
  • Avoid reloading and re-unloading SPICE kernels when multiple simulations run in the same process. This
    fixes the problem with Spice becoming very slow when multiple simulation are run in parallel, addresses
    the Spice kernel load limit of 5000 kernels, and prevents a rare bug where kernels are corrupted when
    loaded from multiple simulations at the same time.
  • Added support for Vizard version 2.3.2
  • Added optional prescribed 1-DOF helical screw motion to the prescribedRotation1DOF kinematic profiler module.
  • Added a new prescribed helical screw motion example scenario. See scenarioPrescribedScrewMotion.
  • Added SysModelMixin, a utility class in py_sys_model.i that can be used for subclasses
    of SysModel (sys_model) that have virtual methods to be implemented in Python. The class will automatically
    add better error logging for all methods implemented in Python and will add a sanity check that the
    C++ class constructor is called (otherwise, hard-to-parse errors will be raised). Refactored
    pyStatefulSysModel.i to use this mixin.
  • Added support for setting the position and velocity of MJBody with pure translational motion.
  • Added getAxis and isHinge to MJJoint.
  • Migrated supportData handling to a Pooch-based fetch system.
  • Removed supportData files from wheels and source distributions to reduce package size.
  • Made FacetSRPDynamicEffector variables numFacets and numArticulatedFacets private
    variables. Their use as public variables has been deprecated since December 2024.
  • Adds support for updating noise parameters in magnetometer during simulation
  • Deprecated use of shadowFactor in favor of illuminationFactor
  • Added scenarioAttitudeFeedbackRWMuJoCo, similar to scenarioAttitudeFeedbackRW but using
    MuJoCo dynamics.
  • Added the modules simpleAntenna and antennaPower.