.. Copyright (c) 2026, Autonomous Vehicle Systems Lab, University of Colorado at Boulder Version 2.7 Release Notes ========================= .. _bsk-release-2-7-0: Version 2.7.0 (April 20, 2025) ------------------------------ - Updated Linux and Windows CI builds to use ``swig`` 4.2.1 - Updated CI scripts to run on latest macOS and no longer use Ubuntu 20.04 - Updated :ref:`makeDraftModule` to remove redundant comments and implementation of the destructor, using only a header-defaulted destructor with ``= default;`` syntax. - Fixed issue where reaction wheels with unlimited torque (``useMaxTorque=False``) would end simulation prematurely - Added safety mechanism to limit excessive wheel acceleration and provide warning messages - Fixed a bug in the :ref:`SpacecraftLocation` module that prevented proper eclipse calculation in some cases. - Added support for Vizard release 2.2.2, including transition from MultiSphere to MultiShape, and SWIG structure deprecation through aliasing. - Fixed scenario name mismatch in :ref:`scenarioRerunMonteCarlo` that prevented rerunning example Monte Carlo simulation scenarios. - Fixed bug in :ref:`thrusterPlatformReference` where a DCM had an incorrect transpose operation. - Memory Leak for ``reactionWheelStateEffector`` fixed via destructor update, swig update, and removing ``.disown()`` in RW factory classes. - Removed the use of ``.disown()`` in all BSK scripts. Python code is modified to ensure required message of class instance are retained in memory if needed. This removes a memory leak issue when running lots of instances of BSK in Monte Carlo runs. - C++ wrapped sensor objects (CSS, thrusters, reaction wheels) must now be stored on the simulation object to prevent premature garbage collection. This change affects all scenarios using these components. See :ref:`bskKnownIssues` for detailed explanation and examples. Users upgrading from previous versions must update their scripts to store these objects on their simulation instance to prevent segmentation faults. Once again, this change replaces the previous use of ``.disown()`` with a more robust memory management approach. - Added comprehensive unit tests for :ref:`avsEigenSupport` including tests for vector and matrix operations and conversions. - Updated install requirements to not manually install ``cmake``, but have it installed with pip by including it in ``requirements_dev.txt``. A ``conan`` dependency requires Basilisk to use ``cmake<4.0`` for now. - Add support for python 3.13 by removing the use of ``eval()`` and most ``exec()`` methods, rewrote ``methodizeEvent()`` in ``SimulationBaseClass.py``. If you use python 3.13+ the scope of the ``eval()`` method has changed (see https://peps.python.org/pep-0667/). - Added ``lla2fixedframe()`` function in :ref:`vizSupport` which provides ability to define Locations on a parent body by providing latitude/longitude/altitude relative to reference ellipsoid. - Fixed a bug in :ref:`radiationPressure` where ``parseAndLoadXML()`` would raise a ValueError when using VS Code's debugger. The error occurred in Python 3.10.12 because numpy arrays that reference other arrays cannot be resized without setting ``refcheck=False``. This fix allows debugging scenarios that use the radiation pressure module. - Enhanced FSW effector interface modules to zero output messages in their reset methods, ensuring safe management of effector states when algorithms are disabled. This prevents potential runaway operations by clearing stale control values. - Updated :ref:`scenarioDeployingSolarArrays` to use the new ``P``-frame designation for the prescribed motion body - Deleted deprecated ``prescribedRot1DOF`` and ``prescribedTrans`` modules. They have been replaced a while ago with :ref:`prescribedRotation1DOF` and :ref:`prescribedLinearTranslation`. - :beta:`Mujoco Support`: Added a new ``DynamicObject`` for multi-body dynamics that uses the `MuJoCo `_ library. Information about using mujoco is found in :ref:`mujocoDynObject`. This is a work in progress, and is not yet ready for general use. This system will be expanded to include more features and capabilities in future releases. - Added support for showing ``QuadMap`` quadrilateral surface meshes in Vizard, with scenario :ref:`scenarioQuadMaps` detailing usage. Allows users to draw quads on celestial bodies and spacecraft. - Added ``fixedframe2lla()`` function in :ref:`vizSupport` which is useful for computing QuadMap mesh interpolations - Added QuadMap mesh support functions (:ref:`quadMapSupport`) for displaying camera FOV boxes as projected on the surface of a reference ellipsoid, and drawing rectangular latitude/longitude defined regions. - Updated ``THRSimConfig`` to use a shared pointer to avoid duplication of configuration data across the simulation and to enable access and updates to the parameters during simulation. This change has been implemented in both the ``thrusterDynamicsEffector`` and ``thrusterStateEffector`` modules. - :beta:`Mujoco Support`: Added ``StatefulSysModel`` for models in the dynamics task of ``MJScene`` that need to declare continuous-time states. Modified :ref:`scenarioDeployPanels` to illustrate the use of ``StatefulSysModel``.