Skip to content

Release 4.3a1

Pre-release
Pre-release

Choose a tag to compare

@dellaert dellaert released this 19 Nov 00:53
· 749 commits to develop since this release

🚀 GTSAM 4.3a1 is a major incremental release featuring:
• Significant documentation expansion and new docs site
• New Lie groups, kernels, and IMU EKF infrastructure
• Strong Hybrid, Discrete, and Navigation improvements
• Broad Python wrapping advances
• A large number of bug fixes, CI upgrades, and toolchain improvements
• We removed GeographicLib as a 3rd party vendor

🧰 Core Features & New Math
• Matrix Lie Group infrastructure (MatrixLieGroup, traits, kernels) and SO(3) kernels.
• New Lie groups: Gal3, SL4, major updates to Similarity2/3.
• ExtendedPriorFactor, ConcentratedGaussian, FrobeniusBetweenFactorNL.
• Exact Zero-Order Hold IMU integration, centripetal-accel tests, and NavState + IMU EKF.
• Gal3 IMU EKF implementation.
• Constrained optimizers added.
• Discrete-Continuous Smoothing and Mapping.
• DiscreteScenario framework.

📚 Documentation & Examples
• Major docs refresh: navigation, discrete, geometry (Cal3_S2, Cal3DS2_Base, Cal3_S2Stereo, StereoCamera), concepts, IMU EKF, Invariant EKF draft.
• New notebooks: LQR, iLQR, discrete examples, Python examples, standardized formats.
• Ported StereoVOExample (small & large), added small bearing-range example.
• Many contributions from new authors throughout.

🧩 Wrapping & Python
• Large set of wrap updates: HybridValues, HybridBayesNet/HybridConditional, Cal3DS2_Base, Gal3, SL4, Similarity2/3, more.
• Added GTSAM_USE_SYSTEM_PYBIND, updated to pybind11 3.0.1.
• Added templates for IMU backend selection (no compiler flags).
• Improved custom wrapper extension instructions.
• Fixed python wheel building.

🔧 Bug Fixes & Cleanup
• Removed static identity matrices in LAGO (memory-safety fix).
• Fixed memory bugs in Hybrid tests.
• Fixed constructor reset issues, bias handling, IMU factors example, preintMeasCov reset.
• Many compile-warning cleanups across GCC/Clang/MSVC.
• Fixed shadowed operators, size_t misuse for Key, Eigen5 compatibility, and misc timing issues.
• Removed obsolete fields in Cal3, dimensional cleanup.
• Numerous link and doc fixes (Pose2 docs, README, notebooks).
• Eliminated outdated brew taps, cephes linking issues, and boosted robustness of discrete modules.

🏗️ CI, Build, and Tooling
• Massive CI overhaul: vcpkg improvements, sccache for Windows, Docker-based CI, faster pipelines.
• Added vcpkg CI, fixed macOS build, improved cache, reinstated eigen3.
• Windows: /permissive- enabled, excluded flaky tests, fixed single-exe linking.
• Removed dependency on Boost in ROS package.xml.
• Introduced QP tests without Boost.
• Better timing with TBB and GCC fixes.
• Added logs-on-failure, fixed merge CI, updated INSTALL docs.

Full change list

New Contributors

Full Changelog: 4.3a0...4.3a1