4.1.1
Release 4.1.1
Why this release
This is the last maintenance release before 4.2.0
. It is cut now because #933 breaks the API for discrete
.
Some Notable Changes
Super Contributors:
Major internal contributor is @varunagrawal. Thanks Varun! Besides him, here are some super-contributors below:
@jlblancoc
- refactor cmake scripts into smaller files by @jlblancoc in #557
- Add alternativeName() for symbols by @jlblancoc in #572
- Avoid redundant calls to error() in NonLinearOptimizer by @jlblancoc in #585
- User-provided hook within the internal loop of non-linear optimizers by @jlblancoc in #586
- SymbolGenerator: add chr() and made constexpr-capable by @jlblancoc in #629
- CMake scripts compatible with gtsam as git submodule by @jlblancoc in #674
- Avoid target collision if gtsam used as submodule by @jlblancoc in #691
- fix missing verbosityLMTranslator case by @jlblancoc in #716
- Avoid potential wrong memory access by @jlblancoc in #758
- add expressions for cross() and dot() by @jlblancoc in #793
- Add missing getter in ProjectionFactor by @jlblancoc in #842
- Use METIS system library if so selected by @jlblancoc in #570
- Fix warnings raised by GCC -Wpedactic by @jlblancoc in #915
@lucacarlone
- Gnc by @lucacarlone in #617
- Feature/robust shonan by @lucacarlone in #547
- changed barcsq to a vector to allow each factor to have a different inlier threshold by @lucacarlone in #684
- Gnc enhancements by @lucacarlone in #765
- smart factors with extrinsics calibration by @lucacarlone in #696
- Feature/rolling shutter smart factors by @lucacarlone in #827
- Smart Factors for arbitrary cameras by @lucacarlone in #862
@acxz
- use size_t variable type by @acxz in #795
- use size_t variable type by @acxz in #798
- update timeLago.cpp with newer Sampler interface by @acxz in #797
- replace deprecated tbb functionality by @acxz in #800
- update boost::bind usage by @acxz in #796
- Revert "replace deprecated tbb functionality" by @acxz in #823
Community Additions:
- Added Jacobians for Rot3::RzRyRx and related named constructors by @Eskilade in #499
- Fixed issue with Coriolis acceleration by @tsetterf in #505
- Added Jacobians for Rot3::xyz and related conversions to euler angles by @Eskilade in #520
- correct coefficients of approximated SE3 Q_r by @JzHuai0108 in #507
- adding additional Unit3 support in the wrapper: PriorFactorUnit3, Values::insert/update/at(Unit3) by @tmcg0 in #576
- Fix issues with maths in docs at gtsam.org by @martinvl in #596
- Adding BearingFactor3D to the wrapper definition. by @cttdev in #646
- Add getters to Line3 by @dwisth in #668
- Fix GTSAM_EXPORT by @RamadanAhmed in #670
- Cleaning SmartStereoProjectionPoseFactor by @ToniRV in #673
- Adds unit test for imu preintegration of a single step by @raabuchanan in #633
- Fix/plane factor dwisth by @dwisth in #680
- Fix OrientedPlane3Factor jacobian by @dwisth in #362
- typo in numericalGradient test hidden by duplicate test values by @ptrmu in #687
- Fix can be marked override warning by @ToniRV in #688
- Fix/shonan averaging dense to sparse by @ToniRV in #690
- Update LieGroups.lyx by @melhashash in #693
- Constant Velocity Constraint between NavStates by @asa in #701
- Unit tests for Jacobian of PartialPriorFactor by @miloknowles in #721
- Fix/boost issue #713 again by @Alevs2R in #732
- fix: UnaryFactor Jacobian by @nmahabadi in #724
- Remove unused body_P_sensor param by @asa in #744
- Add a MagPoseFactor for using magnetometer measurements with Pose2/Pose3 by @miloknowles in #752
- Bugfix: correct SO(3) logmap when theta small by @tmcg0 in #780
- Move MagPoseFactor into gtsam by @miloknowles in #788
- Correct ImuFactorExamples frame description by @hmellor in #771
- Add user-defined copy constructor for Rot2 by @jaelrod in #806
pull/817 - Python fisheye interface by @roderick-koehle in #811
- Fix serialization of ISAM2 class by @ScottMcMichael in #816
- rolling shutter projection factor by @shteren1 in #826
- Small clarification and md cleanup by @FranzEricSchneider in #853
- rolling shutter projection factor by @shteren1 in #751
- Better Error message for TBB handling with versions greater than 2021.1 on OS X by @akashsharma02 in #876
- Fix dangling reference in static allocation. by @iwanders in #900
- Pose SLAM Python examples using iSAM2 by @jerredchen in #891
- Add namespace to ambiguous placeholders by @duembgen in #929
- Use FastDefaultAllocator for Values to adhere allocation compile flags by @beetleskin in #936
- Fix cal3 fisheye jacobian by @roderick-koehle in #902
- Minor fixes to fix some warnings by @bricerebsamen in #945
- Make mEstimator variable names consistent with math by @michaelbosse in #188
New Contributors
- @Ellon made their first contribution in #130
- @jingwuOUO made their first contribution in #495
- @Eskilade made their first contribution in #499
- @tsetterf made their first contribution in #505
- @johnwlambert made their first contribution in #534
- @JzHuai0108 made their first contribution in #507
- @tmcg0 made their first contribution in #576
- @swarrier246 made their first contribution in #569
- @RamadanAhmed made their first contribution in #670
- @raabuchanan made their first contribution in #633
- @melhashash made their first contribution in #693
- @asa made their first contribution in #701
- @miloknowles made their first contribution in #721
- @Alevs2R made their first contribution in #732
- @nmahabadi made their first contribution in #724
- @danbarla made their first contribution in #781
- @hmellor made their first contribution in #771
- @jaelrod made their first contribution in #806
- @roderick-koehle made their first contribution in #811
- @ScottMcMichael made their first contribution in #816
- @shteren1 made their first contribution in #826
- @FranzEricSchneider made their first contribution in #853
- @akashsharma02 made their first contribution in #876
- @iwanders made their first contribution in #900
- @jerredchen made their first contribution in #891
- @duembgen made their first contribution in #929
- @beetleskin made their first contribution in #936
Detailed PR list (this was a massive release!)
- Refactor MakeATangentVector by using VectorValues and fix testcase failure by @jingwuOUO in #495
- Linting and getAnchor wrap by @dellaert in #494
- Added Jacobians for Rot3::RzRyRx and related named constructors by @Eskilade in #499
- Example Datasets with Python Package by @varunagrawal in #501
- General check for null pointer in saveGraph by @varunagrawal in #503
- Update NavState Printing by @varunagrawal in #502
- Fixed issue with Coriolis acceleration by @tsetterf in #505
- New readBal function by @varunagrawal in #506
- Update minimum Boost version required by @varunagrawal in #509
- Wrap the DSFMap class so SFM can use them by @ProfFan in #511
- Wrap translation averaging by @akshay-krishnan in #513
- Fix typo in numerical derivative by @dellaert in #516
- Wrapper fixes by @varunagrawal in #510
- Added Jacobians for Rot3::xyz and related conversions to euler angles by @Eskilade in #520
- Wrap upgrade by @varunagrawal in #525
- TranslationRecovery Fixes by @varunagrawal in #527
- Minor typo fix by @varunagrawal in #529
- Minimum Feedback Arc Set (MFAS) for 1dsfm by @akshay-krishnan in #387
- Replace outdated Cython reference in readme by @johnwlambert in #534
- Adding logmap API which takes the object to the function argument by @ayushbaid in #532
- Update cmake printing by @varunagrawal in #531
- Automatically find Python3 version by @varunagrawal in #526
- Expose 3d point attribute p of SfmTrack in wrapper by @johnwlambert in #537
- Remove logmap function from LieVector and LieMatrix by @varunagrawal in #538
- ImuFactorExample minor fixes by @varunagrawal in #540
- correct coefficients of approximated SE3 Q_r by @JzHuai0108 in #507
- Wrap update by @varunagrawal in #541
- Add numericalDerivative Dimension Template Parameter by @varunagrawal in #536
- Wrapper fixes by @varunagrawal in #528
- Update Simitary3 with Align feature by @Alexma3312 in #464
- ISAM2 Evaluate Nonlinear Error by @varunagrawal in #518
- Point3 mean to throw an exception when input size=0 . by @Alexma3312 in #542
- Add calibrate with jacobians for Cal3Bundler by @varunagrawal in #539
- Minor fixes by @varunagrawal in #545
- Rename mean to means + some refactoring by @dellaert in #549
- Find python if using Default by @varunagrawal in #553
- LP/QP Style Update by @dellaert in #546
- Remove all Cython references by @varunagrawal in #551
- Wrapping MFAS and 1dsfm python example by @akshay-krishnan in #535
- Normalize rotations after composition by @varunagrawal in #555
- Fix Python serialization by @ProfFan in #558
- refactor cmake scripts into smaller files by @jlblancoc in #557
- Fix LLVM repo keys by @ProfFan in #560
- Fix inteminent sks keyserver failure by @ProfFan in #567
- Add python equivalent for SFMExample_bal.cpp by @johnwlambert in #556
- update list of C++ examples that have been ported to Python by @johnwlambert in #571
- Add alternativeName() for symbols by @jlblancoc in #572
- Fix warning on clang by @dellaert in #563
- Homebrew latest boost has buggy boost.serialization by @ProfFan in #577
- Consistent interface for pixel center by @varunagrawal in #579
- adding additional Unit3 support in the wrapper: PriorFactorUnit3, Values::insert/update/at(Unit3) by @tmcg0 in #576
- Minor typo fixes by @varunagrawal in #583
- Avoid redundant calls to error() in NonLinearOptimizer by @jlblancoc in #585
- Feature/wrap sfm data by @swarrier246 in #569
- Fix python discovery for MATLAB wrapper by @varunagrawal in #584
- Ubuntu+GCC9 CI stage by @varunagrawal in #593
- Fix issues with maths in docs at gtsam.org by @martinvl in #596
- Github Actions Environment Files by @varunagrawal in #587
- Cayley Rot3 fixes by @varunagrawal in #597
- New print assertions by @varunagrawal in #601
- Use KeyVector for proper wrapping with TBB by @varunagrawal in #603
- User-provided hook within the internal loop of non-linear optimizers by @jlblancoc in #586
- Flag for relative error by @varunagrawal in #580
- Enforce constant term in QP to be default 0 by @varunagrawal in #607
- Publish GTSAM artifacts by @varunagrawal in #602
- Check for MEX Compiler by @varunagrawal in #554
- Deprecate SimpleCamera properly by @varunagrawal in #622
- Miscellaneous fixes by @varunagrawal in #616
- Mark Values::at return type as const by @varunagrawal in #608
- Added test for subgraph preconditioner in shonan and refined error message by @jingwuOUO in #611
- Jacobians for Camera models by @varunagrawal in #623
- IMU Parameters Documentation by @varunagrawal in #624
- Handling edges with pure rotation in translation averaging by @akshay-krishnan in #619
- Cal3 Base Class by @varunagrawal in #626
- SymbolGenerator: add chr() and made constexpr-capable by @jlblancoc in #629
- Cal3_S2Stereo Calibrate and Uncalibrate by @varunagrawal in #630
- vector of cameras and triangulation function wrapped by @swarrier246 in #615
- NonlinearFactorGraph saveGraph by @varunagrawal in #632
- Explicitly initialize Point3 by @varunagrawal in #635
- Wrap Symbol class and methods by @varunagrawal in #642
- Minor formatting by @varunagrawal in #643
- Wrapping prior factor and general sfm factor or Cal3Bundler by @ayushbaid in #644
- Adding BearingFactor3D to the wrapper definition. by @cttdev in #646
- Pose3 interpolateRt method by @varunagrawal in #647
- Remove Build Upload by @varunagrawal in #651
- Gnc by @lucacarlone in #617
- Adding serialization support to be used for GT-SFM by @ayushbaid in #650
- Updates to use the new version of wrap by @varunagrawal in #654
- Fix/warnings by @dellaert in #656
- Fix warnings by @varunagrawal in #657
- Adding default point color to
SfmTrack
to fix equality check by @ayushbaid in #659 - CMake Install Destination by @varunagrawal in #660
- Documentation for compiling on Windows by @varunagrawal in #652
- Feature/robust shonan by @lucacarlone in #547
- Update wrapper by @varunagrawal in #664
- Update wrapper by @varunagrawal in #665
- Add getters to Line3 by @dwisth in #668
- add robust shonan updates to python wrapper by @johnwlambert in #669
- Fix GTSAM_EXPORT by @RamadanAhmed in #670
- FunctorizedFactor2 by @varunagrawal in #671
- CMake scripts compatible with gtsam as git submodule by @jlblancoc in #674
- Cleaning SmartStereoProjectionPoseFactor by @ToniRV in #673
- changing robust noise model to Gaussian by @ayushbaid in #675
- additional
sparseJacobian
functions (new) by @gchenfc in #677 - Miscellaneous fixes by @varunagrawal in #679
- Better printing by @varunagrawal in #678
- Adds unit test for imu preintegration of a single step by @raabuchanan in #633
- Added accelerated power method to compute eigenpair fast by @jingwuOUO in #533
- Fix/plane factor dwisth by @dwisth in #680
- Fix OrientedPlane3Factor jacobian by @dwisth in #362
- Fix Pose2 print by @varunagrawal in #685
- Improve
sparseJacobianEigen()
by @gchenfc in #682 - typo in numericalGradient test hidden by duplicate test values by @ptrmu in #687
- Known Issues Section by @varunagrawal in #681
- Update CMake Variables and TBB build type by @varunagrawal in #683
- Fix can be marked override warning by @ToniRV in #688
- changed barcsq to a vector to allow each factor to have a different inlier threshold by @lucacarlone in #684
- Fix/shonan averaging dense to sparse by @ToniRV in #690
- Update LieGroups.lyx by @melhashash in #693
- Fix GTSAM MATLAB Wrapper by @ProfFan in #698
- Fix/plane factor by @dellaert in #564
- Use brew's boost, instead of Fan's version by @johnwlambert in #707
- Fixing translation averaging for the panorama case by @akshay-krishnan in #706
- Avoid target collision if gtsam used as submodule by @jlblancoc in #691
- Adding pickle support by using serialization by @ayushbaid in #709
- Constant Velocity Constraint between NavStates by @asa in #701
- temporarily turn off Python + tbb in CI because of OOM by @johnwlambert in #712
- add Sim(3)-based alignment to the wrapper by @johnwlambert in #702
- Fix/boost issue by @dellaert in #713
- Use wrap to perform Matlab wrapping by @varunagrawal in #711
- Fix the Similarity3 export declarations and wrapper by @varunagrawal in #719
- Fix CI with separate boost install by @varunagrawal in #720
- fix missing verbosityLMTranslator case by @jlblancoc in #716
- Fix numpy deprecation warnings by @varunagrawal in #726
- Wrapper Update by @varunagrawal in #727
- Unit tests for Jacobian of PartialPriorFactor by @miloknowles in #721
- Wrapper Update + Operator Overloading by @varunagrawal in #729
- addPriorDouble by @dellaert in #730
- Double + NavState in the wrapper by @varunagrawal in #731
- Disable Wrapper CI for GCC 5 until we optimize the wrapper by @varunagrawal in #734
- KeyFormatter - boost::function to std::function by @varunagrawal in #735
- Bunch of minor fixes by @varunagrawal in #736
- Fix/boost issue #713 again by @Alevs2R in #732
- Wrapper update by @gchenfc in #739
- fix: UnaryFactor Jacobian by @nmahabadi in #724
- Wrapper update by @varunagrawal in #743
- Remove unused body_P_sensor param by @asa in #744
- Remove redundant stuff by @varunagrawal in #745
- Wrapper Update by @varunagrawal in #747
- Wrapper Update by @varunagrawal in #749
- Wrapper Update by @varunagrawal in #750
- Fix printing of preintegration params by @varunagrawal in #754
- Avoid potential wrong memory access by @jlblancoc in #758
- Update "print" function arguments by @gchenfc in #738
- Override print methods by @varunagrawal in #760
- Update boost download link by @varunagrawal in #763
- Fix warnings by @varunagrawal in #761
- Interface file updates by @varunagrawal in #762
- Gnc enhancements by @lucacarlone in #765
- smart factors with extrinsics calibration by @lucacarlone in #696
- Fix rekey of LinearContainerFactor by @varunagrawal in #777
- Added destructor for
CameraSet
to remove warning by @varunagrawal in #779 - Add a MagPoseFactor for using magnetometer measurements with Pose2/Pose3 by @miloknowles in #752
- Bugfix: correct SO(3) logmap when theta small by @tmcg0 in #780
- Fix initial guess for Cal3Bundler
calibrate
by @varunagrawal in #775 - Added Range to Point2 by @dellaert in #783
- Custom Factors in Python by @ProfFan in #767
- Fix bug in LinearContainerFactor and warnings about Point3 by @varunagrawal in #785
- Move MagPoseFactor into gtsam by @miloknowles in #788
- Basic Documentation for KF test by @danbarla in #781
- Correct ImuFactorExamples frame description by @hmellor in #771
- Fix docstrings for NonlinearEquality by @varunagrawal in #774
- Add transformFrom() to wrapper, for Point3 in Similarity3 by @johnwlambert in #791
- add expressions for cross() and dot() by @jlblancoc in #793
- use size_t variable type by @acxz in #795
- use size_t variable type by @acxz in #798
- Remove separate function for double in wrapper by @varunagrawal in #794
- Wrap Update by @varunagrawal in #799
- update timeLago.cpp with newer Sampler interface by @acxz in #797
- Adding factor which considers the essential matrix and camera calibration as variable by @ayushbaid in #753
- Switching to squared sampson point-line error by @ayushbaid in #792
- Update the pgp servers to get the LLVM GPG key by @varunagrawal in #802
- replace deprecated tbb functionality by @acxz in #800
- Add user-defined copy constructor for Rot2 by @jaelrod in #806
- update boost::bind usage by @acxz in #796
- Miscellaneous fixes by @varunagrawal in #814
- Tests for BetweenFactor by @varunagrawal in #813
- Improve docs about compiling without TBB by @johnwlambert in #818
- Replace boost with std by @varunagrawal in #819
- Add ShonanAveraging2 interface to wrapper with BetweenFactorPose2s, that does not require g2o files by @johnwlambert in #817
- Python fisheye interface by @roderick-koehle in #811
- Break interface file into multiple files by @varunagrawal in #822
- Revert "replace deprecated tbb functionality" by @acxz in #823
- Fix serialization of ISAM2 class by @ScottMcMichael in #816
- refactor Expression tests and add comments by @yetongumich in #766
- rolling shutter projection factor by @shteren1 in #826
- ShonanAveraging Covariance fixes by @johnwlambert in #829
- Wrap Update by @varunagrawal in #830
- Wrapping triangulateNonlinear from triangulation.h by @akshay-krishnan in #828
- Add Windows export symbols for PinholeCamera by @varunagrawal in #835
- CI Speedup by @varunagrawal in #839
- Add missing getter in ProjectionFactor by @jlblancoc in #842
- Wrap GNC by @johnwlambert in #843
- Add python type annotations to some older python files by @johnwlambert in #844
- Fix utilities and add tests by @varunagrawal in #851
- Expand DSF map unit tests by @johnwlambert in #854
- Small clarification and md cleanup by @FranzEricSchneider in #853
- clean up SFMdata python module by @johnwlambert in #855
- Some Cleanup by @varunagrawal in #850
- Wrap NonlinearEquality2 by @varunagrawal in #856
- Add missing import of Pose3 by @varunagrawal in #858
- Basis functions by @varunagrawal in #403
- Feature/rolling shutter smart factors by @lucacarlone in #827
- rolling shutter projection factor by @shteren1 in #751
- Fix Python Tests Cmake by @varunagrawal in #863
- Basis - Python unit test by @gchenfc in #860
- Docs and formatting by @dellaert in #865
- add Pose2.align() to wrapper by @johnwlambert in #866
- ImuFactor Fixes by @varunagrawal in #869
- Add section about Boost version requirement by @varunagrawal in #857
- Added virtual destructor and re-formatted constructors by @dellaert in #870
- Docker update -> borglab by @dellaert in #871
- Jacobian Factor Wrapping by @varunagrawal in #873
- Use METIS system library if so selected by @jlblancoc in #570
- Start wrapping the verbosity options for GNC by @johnwlambert in #845
- Fix bug in HandleTBB.cmake by @varunagrawal in #877
- Better Error message for TBB handling with versions greater than 2021.1 on OS X by @akashsharma02 in #876
- Wrapper Update by @varunagrawal in #880
- Add constructor for OptionalJacobian by @gchenfc in #884
- Run tests for C++ CI by @varunagrawal in #888
- add failing unit test on axisAngle for Rot3 in c++ by @johnwlambert in #887
- Add unit tests where angle of (axis,angle) repr. exceeds 180 degrees by <0.5 deg by @johnwlambert in #892
- Clean up the init by @varunagrawal in #893
- Feature/logmap expression by @yetongumich in #898
- BetweenFactor Jacobian CMake flag by @varunagrawal in #867
- Fix dangling reference in static allocation. by @iwanders in #900
- IMUKittiExampleGPS Python Example by @varunagrawal in #836
- add LAGO (for Pose2) to python wrapper by @johnwlambert in #899
- Fixup Python Examples by @varunagrawal in #903
- Wrap VectorValues constructor by @varunagrawal in #905
- Generate GTSAM_UNSTABLE CMake exports by @varunagrawal in #906
- Wrap Update by @varunagrawal in #909
- Add tests for Lie::interpolate jacobians by @varunagrawal in #910
- Revert @acxz's TBB revert by @ProfFan in #901
- Pose SLAM Python examples using iSAM2 by @jerredchen in #891
- Imu Examples Refactor by @varunagrawal in #872
Pose3::Adjoint(xi)
Jacobians by @gchenfc in #885- enable expression double multiply by @yetongumich in #913
- Add printErrors method to GaussianFactorGraph by @varunagrawal in #916
- Use Eigen expressions more effectively and kill & in code. by @dellaert in #917
- Smart Factors for arbitrary cameras by @lucacarlone in #862
- Fix warnings raised by GCC -Wpedactic by @jlblancoc in #915
- Fix minor stuff by @varunagrawal in #920
- CMake fix for Python Tests by @varunagrawal in #921
- Add Jacobian of second argument to
adjoint
andadjointTranpsose
by @gchenfc in #922 - Proper Deprecation of Eliminate Methods by @varunagrawal in #925
- Add namespace to ambiguous placeholders by @duembgen in #929
- Formatting with Google style by @dellaert in #930
- Wrap KeyVector methods by @varunagrawal in #932
- Use FastDefaultAllocator for Values to adhere allocation compile flags by @beetleskin in #936
- Add deprecations by @ProfFan in #934
- Fix cal3 fisheye jacobian by @roderick-koehle in #902
- Enable pickling by @varunagrawal in #942
- Fix deprecations by @varunagrawal in #943
- Eigen Serialization Fix by @varunagrawal in #944
- Wrap additional ISAM2 methods by @varunagrawal in #941
- Minor fixes to fix some warnings by @bricerebsamen in #945
- Make mEstimator variable names consistent with math by @michaelbosse in #188
Full Changelog: 4.1.0...4.1.1