.. Copyright (c) 2026, Autonomous Vehicle Systems Lab, University of Colorado at Boulder Version 2.4 Release Notes ========================= .. _bsk-release-2-4-0: Version 2.4.0 (August 23, 2024) ------------------------------- - Added a new example scenario :ref:`scenarioConstrainedDynamics` demonstrating post-docked spacecraft dynamics - Created a :ref:`constraintDynamicEffector` dynamics module to couple separate spacecraft motion using holonomic constraints. - Removed the depreciated manner of creating python modules - Created a new example scenario :ref:`scenarioTempMeasurementAttitude` demonstrating the use of tempMeasurement module and generating random noise in the measurement. - Uncaught exceptions raised in Python modules are now printed to ``stderr`` before the program is terminated. - Updated Basilisk and Vizard logos and provided download links - Updated ``News and Discussions`` menu tab to be ``External Links`` to Basilisk related web sites - Added a new N-axis spinning effector :ref:`spinningBodyNDOFStateEffector`. This is an expansion of :ref:`spinningBodyOneDOFStateEffector` and :ref:`spinningBodyTwoDOFStateEffector` to any number of degrees of freedom. - Update the Windows build to automatically include the Math library defines. This avoids having to include them in BSK source code files individually. - Added support for arrays and 2D arrays of 16 and 64 bit integers in message definitions - Fixed bug where 2D arrays of 32 bit integers would have elements of type ``float`` in python. - Fixed the ``Identity()`` method in avsEigenMRP library. - Fixed the ``SpiceInterface::initTimeData()`` method to write epoch strings with microsecond precision instead of 0.1 second precision to prevent SPICE errors when epochs ending with seconds higher than 59.95 seconds got rounded up to 60.0 seconds - Update :ref:`dynamicEffector` and :ref:`stateEffector` classes to be able to pull the state engine names of the spacecraft hub object - The fuel tank module is refactored to remove the limitation of a only being able to have a single instance of a specific tank model type. - Update Basilisk documentation build system to use latest version of ``sphinx`` and ``sphinx_rtd_theme`` - Added time tag to :ref:`CSSArraySensorMsgPayload` - updated Eigen library to 3.4.0 - updated OpenCV library to 4.5.5 - Added support for Vizard 2.2.0 - Added documentation on using pre-commit formatters and clang formating - Added two new scenarios that use the :ref:`spinningBodyNDOFStateEffector` module. :ref:`scenarioRoboticArm` simulates a robotic arm that changes orientation through the use of the :ref:`prescribedRotation1DOF` profiler module. :ref:`scenarioFlexiblePanel` simulates a flexible panel that has torsional and bending modes, which are approximated though a lumped-mass approach and discretized to as many subpanels as needed. - Fixed ``protectAllClasses`` method in ``Basilisk.architecture.swig_common_model`` so that it actually protects the classes in the given module (prevents code from setting unknown attributes). This might impact user code that depended on adding additional attributes to python classes generated by SWIG. - Updated install instructions to specify python version 3.8 to 3.11 are required. Python 3.12 does yet work. - Updated :ref:`bskPrinciples-6` to discuss how to log private C++ module variables that have a getter method - Updated :ref:`cppModuleTemplate` to make user configurable variables private, accessed via setter and getter methods - Updated :ref:`makeDraftModule` to make C++ modules with private module variables using setter/getter methods - Updated :ref:`cppModules-1` to discuss the new expectation that C++ modules are all private. This enables graceful module variable depreciation if needed. - Added support for numpy 2.0. - Fixed use of spherical coordinate system in :ref:`magneticFieldWMM` model. - Added ability to run the GitHub ``pull_request.yml`` action on a select branch - Fixed mass depletion rate bug in :ref:`thrusterStateEffector` previously fixed at 100% - Enhanced :ref:`solarArrayReference` with a mode that can compute the reference for the solar arrays that maximizes SRP torque opposed to current RW net momentum. - (Beta) Added PEP-517-compliant project specification, providing initial support for installation via ``pip install .``. - NOTE: This is primarily intended to support pre-compiled releases in the future. All users are recommended to continue using ``python conanfile.py`` installation for now. - The ``cmake`` command now downloads large Spice data files automatically from the JPL server. - Updated Conan/CMake build system to avoid unnecessary recompilations and greatly speed up rebuilds.