Version 2.4 Release Notes

Version 2.4.0 (August 23, 2024)

  • Added a new example scenario scenarioConstrainedDynamics demonstrating post-docked spacecraft dynamics

  • Created a C++ Module: constraintDynamicEffector dynamics module to couple separate spacecraft motion using holonomic constraints.

  • Removed the depreciated manner of creating python modules

  • Created a new example scenario 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 C++ Module: spinningBodyNDOFStateEffector. This is an expansion of C++ Module: spinningBodyOneDOFStateEffector and C++ Module: 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 C++ Module: dynamicEffector and C++ Module: 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 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 C++ Module: spinningBodyNDOFStateEffector module. scenarioRoboticArm simulates a robotic arm that changes orientation through the use of the C++ Module: prescribedRotation1DOF profiler module. 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 Setting and Recording Module Variables to discuss how to log private C++ module variables that have a getter method

  • Updated C++ Module: cppModuleTemplate to make user configurable variables private, accessed via setter and getter methods

  • Updated makeDraftModule to make C++ modules with private module variables using setter/getter methods

  • Updated Module Header File 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 C++ Module: magneticFieldWMM model.

  • Added ability to run the GitHub pull_request.yml action on a select branch

  • Fixed mass depletion rate bug in C++ Module: thrusterStateEffector previously fixed at 100%

  • Enhanced C Module: 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.