Commit Graph

85 Commits (2f0bff14b78c245fa7eca3e070c3bd901a79f291)

Author SHA1 Message Date
Frank Dellaert 63257bcf19 Rot2::vec, Rot3::vec, Pose2::vec, Pose3::vec 2025-03-10 21:32:31 -04:00
Frank Dellaert 5e3f798c12 MatrixLieGroup in geometry 2025-03-08 15:25:59 -05:00
Frank Dellaert e0c3be9ab7 Hat and Vee in geometry 2025-03-08 14:16:19 -05:00
Matt Morley fd2f39e271 Add misc explicit operators 2025-01-09 07:21:21 -07:00
Matt 846c29fa2e Fix deperecated copies and redundant moves 2024-12-29 15:58:32 -08:00
Varun Agrawal ae213dd464 replace #ifdef with #if for GTSAM_ENABLE_BOOST_SERIALIZATION 2024-12-26 23:44:00 -05:00
Varun Agrawal 4c8e4973bf update Rot2::fromCosSin docstring 2024-01-08 08:52:47 -05:00
kartik arcot a5b6968cbf serialization function comment moved 2023-01-22 22:14:28 -08:00
kartik arcot 4b235103cf ifdefs for gtsam folder on serialize 2023-01-22 22:12:16 -08:00
kartik arcot 8181b50de3 remove optional headers 2023-01-21 09:27:20 -08:00
kartik arcot 9329bddd8a OptionalJacobian 2023-01-21 09:27:20 -08:00
Varun Agrawal 1f6816d974 Merge branch 'develop' into fix/doxygen 2022-08-22 17:37:03 -04:00
Varun Agrawal 55ae901d45 change from addtogroup to ingroup 2022-07-26 16:39:09 -04:00
Varun Agrawal fd839e71b6 fix latex symbol warnings 2022-07-26 16:38:51 -04:00
Varun Agrawal c31298d367 Capitalize Identity trait since it is static 2022-07-07 12:31:27 -04:00
Varun Agrawal 784bdc64c5 minor fixes to Pose2 and Rot2 2022-02-06 00:08:31 -05:00
John Lambert dfb9497d81
add Rot2.ClosestTo() 2021-12-07 11:53:34 -07:00
Jay Elrod 7c358aae4c Add user-defined copy constructor for Rot2 2021-06-29 17:07:15 -04:00
Frank Dellaert 84afc94458
Feature/shonan averaging (#473)
Shonan Rotation Averaging.

199 commit messages below, many are obsolete as design has changed quite a bit over time, especially from the earlier period where I thought we only needed SO(4).

* prototyping weighted sampler

* Moved WeightedSampler into its own header

* Random now uses std header <random>.

* Removed boost/random usage from linear and discrete directories

* Made into class

* Now using new WeightedSampler class

* Inlined random direction generation

* eradicated last vestiges of boost/random in gtsam_unstable

* Added 3D example g2o file

* Added Frobenius norm factors

* Shonan averaging algorithm, using SOn class

* Wrapping Frobenius and Shonan

* Fixed issues with <<

* Use Builder parameters

* Refactored Shonan interface

* Fixed << issues as well as MATLAB segfault, using eval(), as discussed in issue #451

* ShonanAveragingParameters

* New factor FrobeniusWormholeFactorP computes |Rj*P - Ri*P*Rij|

* Fixed broken GetDimension for Lie groups with variable dimension.

* Removed all but Shonan averaging factor and made everything work with new SOn

* Just a single WormholeFactor, wrapped noise model

* Use std <random>

* comments/todos

* added timing script

* add script to process ShonanAveraging timing results

* Now producing a CSV file

* Parse csv file and make combined plot

* Fixed range

* change p value and set two flags on

* input file path, all the csv files proceeses at the same time

* add check convergence rate part

* csv file have name according to input  data name

* correct one mistake in initialization

* generate the convergence rate for each p value

* add yticks for the bar plot

* add noises to the measurements

* test add noise

* Basic structure for checkOptimalityAt

* change optimizer method to cholesky

* buildQ now working. Tests should be better but visually inspected.

* multiple test with cholesky

* back

* computeLambda now works

* make combined plots while make bar plot

* Calculate minimum eigenvalue - the very expensive version

* Exposed computeMinEigenValue

* make plots and bar  togenter

* method change to jacobi

* add time for check optimality, min_eigen_value, sub_bound

* updated plot min_eigen value and subounds

* Adding Spectra headers

* David's min eigenvalue code inserted and made to compile.

* Made it work

* Made "run" method work.

* add rim.g2o name

* Fixed bug in shifting eigenvalues

* roundSolution which replaces projectFrom

* removed extra arguments

* Added to wrapper

* Add SOn to template lists

* roundSolution delete the extra arguement p

* only calculate p=5 and change to the correct way computing f_R

* Fixed conflict and made Google-style name changes

* prototype descent code and unit test for initializeWithDescent

* add averaging cost/time part in processing data

* initializewithDescent success in test

* Formatting and find example rather than hardcode

* Removed accidentally checked in cmake files

* give value to xi by block

* correct gradient descent

* correct xi

* }

* Fix wrapper

* Make Hat/Vee have alternating signs

* MakeATangentVector helpder function

* Fixed cmake files

* changed sign

* add line search

* unit test for line search

* test real data with line search

* correct comment

* Fix boost::uniform_real

* add save .dat file

* correct test case

* add explanation

* delete redundant cout

* add name to .dat output file

* correct checkR

* add get poses_  in shonan

* add Vector Point type for savig data

* Remove cmake file which magically re-appeared??

* Switched to std random library.

* Prepare Klaus test

* Add klaus3.g2o data.

* fix comment

* Fix derivatives

* Fixed broken GetDimension for Lie groups with variable dimension.

* Fix SOn tests to report correct dimension

* Added tests for Klaus3 data

* Add runWithRandomKlaus test for shonan.

* Finish runWithRandomKlaus unittest.

* Correct datafile.

* Correct the format.

* Added measured and keys methods

* Shonan works on Klaus data

* Create dense versions for wrappers, for testing

* Now store D, Q, and L

* Remove another cmake file incorrectly checked in.

* Found and fixed the bug in ComputeLambda !

* Now using Q in Lambdas calculation, so Lambdas agree with Eriksson18cvpr.

* Make FrobeniusFactor not use deprecated methods

* FrobeniusWormholeFactor takes Rot3 as argument

* Wrapped some more methods.

* Wrapped more methods

* Allow creating and populating BetweenFactorPose3s in python

* New constructors for ShonanAveraging

* add function of get measurements number

* Remove option not to use noise model

* wrap Use nrMeasurements

* Made Logmap a bit more tolerant of slightly degenerate rotations (with trace < -1)

* Allow for Anchor index

* Fix anchor bug

* Change outside view to Rot3 rather than SO3

* Add Lift in SOn class

* Make comet working

* Small fixes

* Delete extra function

* Add SOn::Lift

* Removed hardcoded flag

* Moved Frobenius factor to gtsam from unstable

* Added new tests and made an old regression pass again

* Cleaned up formatting and some comments, added EXPORT directives

* Throw exception if wrongly dimensioned values are given

* static_cast and other throw

* Fixed run-time dimension

* Added gauge-constraining factor

* LM parameters now passed in, added Gauge fixing

* 2D test scaffold

* Comments

* Pre-allocated generators

* Document API

* Add optional weight

* New prior weeights infrastructure

* Made d a template parameter

* Recursive Hat and RetractJacobian test

* Added Spectra 0.9.0 to 3rdparty

* Enabling 2D averaging

* Templatized Wormhole factor

* ignore xcode folder

* Fixed vec and VectorizedGenerators templates for fixed N!=3 or 4

* Simplifying constructors
Moved file loading to tests (for now)
All unit tests pass for d==3!

* Templated some methods internally

* Very generic parseToVector

* refactored load2d

* Very much improved FrobeniusWormholeFactor (Shonan) Jacobians

* SO(2) averaging works !

* Templated parse methods

* Switched to new Dataset paradigm

* Moved Shonan to gtsam

* Checked noise model is correctly gotten from file

* Fixed covariance bug

* Making Shonan wrapper work

* Renamed FrobeniusWormholeFactor to ShonanFactor and moved into its own compilation unit in gtsam/sfm

* Fixed wrong include

* Simplified interface (removed irrelevant random inits) and fixed eigenvector test

* Removed stray boost::none

* Added citation as suggested by Jose

* Made descent test deterministic

* Fixed some comments, commented out flaky test

Co-authored-by: Jing Wu <jingwu@gatech.edu>
Co-authored-by: jingwuOUO <wujing2951@gmail.com>
Co-authored-by: swang <swang736@gatech.edu>
Co-authored-by: ss <ss>
Co-authored-by: Fan Jiang <prof.fan@foxmail.com>
2020-08-17 07:43:10 -04:00
Duy-Nguyen Ta 1cdc228d6a remove trailing spaces 2019-02-11 10:58:34 -05:00
Frank Dellaert 2584d421b8 Weird alignment issue -> changed to static 2018-11-06 00:29:02 -05:00
Alex Hagiopol b021ccef36 Global replace of Vector::Ones(1) and Matrix::Ones(1,1) with I_1x1 2016-04-16 12:32:48 -04:00
Alex Hagiopol b6728ef620 Deprecated Vector ones(size_t n). All unit tests pass. 2016-04-15 17:30:54 -04:00
dellaert 9d522c72f3 internal::LieGroup needed if you also want Testable traits 2015-05-25 22:04:04 -07:00
Thomas Schneider 0f23958c62 Fix some more warnings. 2015-03-06 16:44:08 +01:00
Thomas Schneider ebf5746987 Fix some serialization warnings. 2015-03-06 16:12:09 +01:00
balderdash-devil be37e1ed05 Fix for Issue #201
It seems like MSVC was unable to identify the template specialization
for the 'const' keyword. So added a specialization in each of these
files for that
2015-01-21 13:02:35 -05:00
dellaert e5017984a1 traits_x -> traits 2014-12-26 16:47:51 +01:00
dellaert 78386ad144 Merge ExmapeDerivative/LogmapDerivative changes from 'origin/develop' into feature/tighteningTraits
Conflicts:
	gtsam/base/LieScalar.h
	gtsam/geometry/Point2.h
	gtsam/geometry/Point3.h
	gtsam/geometry/Rot3.h
	gtsam/geometry/Rot3M.cpp
	gtsam/geometry/Rot3Q.cpp
	gtsam/geometry/tests/testRot3.cpp
2014-12-24 13:55:15 +01:00
dellaert e0a767e7fd Renamed all dexpL/dexpInvL, merged Luca/Duy versions in Rot3 2014-12-24 12:25:53 +01:00
dellaert f22c922600 The great Lie group heist: LieGroup CRTP class that defines both Manifold and Lie Group methods for a class, using AdjointMap as its main weapon. For the retract/localCoordinates, a ChartAtOrigin struct needs to be defined that can be switched at compile time (example Pose2). Rot3, Pose3 soon to follow. 2014-12-24 01:37:30 +01:00
dellaert 3d15868ece Renamed internal::LieGroup -> internal::LieGroupTraits 2014-12-24 01:34:33 +01:00
dellaert b9de4a6f47 AdjointMap 2014-12-23 21:37:28 +01:00
dellaert c6ae119414 Tightened what is needed for Lie, i.e., fewer versions of retract/localCoordinates 2014-12-22 23:42:52 +01:00
dellaert 06c3696176 Fixed more problems so everything compiles now after splitting up concepts into Group/Manifold/Lie/VectorSpace. Still 25 tests that fail. 2014-12-22 02:52:31 +01:00
dellaert 99a50a2f87 Split up concepts into Group/Manifold/Lie/VectorSpace. Also fixed some implementations and put in exceptions elsewhere, rather than CONCEPT_NOT_IMPLEMENTED macro. 2014-12-22 02:50:52 +01:00
dellaert 00b374c9e9 Merge remote-tracking branch 'origin/develop' into feature/tighteningTraits
Conflicts:
	gtsam/base/LieScalar.h
	gtsam/geometry/Point2.h
2014-12-21 14:39:23 +01:00
Mike Bosse 263d4e163c more progress, need to fix testSO3.cpp and testManifold.cpp 2014-12-17 22:53:56 +01:00
Mike Bosse 3dc9a7c852 group_flavor in internal::LieGroup template 2014-12-15 23:48:30 +01:00
Paul Furgale 58cb47a3f0 Started converting types. Into the ChartValue now. 2014-12-13 22:20:59 +01:00
thduynguyen e12add2739 Merged in develop (pull request #71). Resolve conflicts. 2014-12-12 15:34:53 -05:00
cbeall3 971a53cfb5 Fixed size vectors for all Logmap, localcoordinates and vector methods 2014-12-07 13:51:17 -05:00
nsrinivasan7 bd6f210b87 changed << to =. gives error because range() was removed from PinholeCamera.h ? 2014-12-04 09:36:00 -05:00
Natesh Srinivasan aad0b2876b Changed Matrix.h to correct return values amd impleemnted rectangular matrix types.
Also changed block operations to <<
2014-12-03 15:16:55 -05:00
nsrinivasan7 7116661a2e changed naming convention of const matrices to _DxD. @dellaert 2014-12-03 10:58:09 -05:00
Natesh Srinivasan 4e557d38e6 updated Matrix.h with commonly used matrices. 2014-12-03 09:59:10 -05:00
nsrinivasan7 bee32cc472 Rot2 done, make check works 2014-11-30 18:01:15 -05:00
nsrinivasan7 ca9c66073f Rot2 rotate() and unrotate() changes to OptionalJacobians 2014-11-30 16:09:46 -05:00
nsrinivasan7 9137123f5f added OptionalJacobian to relativeBearing 2014-11-30 11:59:32 -05:00
nsrinivasan7 bbe657d19d Fixed REturn Value of Matrix() in Rot3 2014-11-30 08:32:52 -05:00