Commit Graph

48 Commits (release/4.3a0)

Author SHA1 Message Date
Varun Agrawal e4fff74690 update gtsamAddExamplesGlob and gtsamAddTimingGlob to take an additional argument rather than using a global variable 2023-10-08 12:16:24 -04:00
kartik arcot 9347f35ae5 replace boost::format 2023-02-04 12:21:32 -08:00
Frank Dellaert 6743c4f6bc Fixed some stragglers in timing 2023-01-21 20:26:06 -08:00
Frank Dellaert 9b5321ce03 Remove unused boost::assign headers 2023-01-07 23:58:35 -08:00
HViktorTsoi 27ddedfc63 Replace the usage of Rot3::quaternion to Rot3::toQuaternion in 'timeShonanAveraging.cpp' 2022-06-08 16:42:50 +08:00
acxz ad7d8f183a use size_t variable type 2021-06-14 16:25:15 -04:00
Frank dellaert 9f345bb703 Fixed compilation and removed absolute path. 2020-08-21 11:01:28 -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
acxz 93b4081c7f update timing to use internal timing.h api 2020-05-09 21:29:08 -04:00
Frank Dellaert 8e81890f9b eradicated last vestiges of boost/random in gtsam_unstable 2020-02-28 07:21:54 -08:00
Duy-Nguyen Ta b2e5dadcdb Merge branch 'develop' of https://bitbucket.org/gtborg/gtsam into fix/trailing_whitespaces
# Conflicts:
#	gtsam/symbolic/tests/testVariableIndex.cpp
#	gtsam_unstable/gtsam_unstable.h
#	gtsam_unstable/linear/RawQP.cpp
#	gtsam_unstable/linear/RawQP.h
2019-05-12 09:26:28 -04:00
Frank Dellaert 140c666c41 Moved DSFMap to gtsam 2019-04-04 09:22:22 -04:00
Duy-Nguyen Ta 1cdc228d6a remove trailing spaces 2019-02-11 10:58:34 -05:00
Yao Chen 3b7c57aedf Replaced BOOSE_FOREACH with for in gtsam_unstable folder. 2016-05-20 23:41:41 -04:00
dellaert 6eeeb3fef1 Fixed forgotten compose 2016-02-08 18:58:43 -08:00
dellaert a454327e7b Moved include file 2014-12-28 16:44:32 +01:00
dellaert 111b9511ac Moved timing files 2014-12-28 16:40:40 +01:00
dellaert 3ebcfc5ce0 make timing compiles 2014-12-28 16:37:54 +01:00
cbeall3 a7b61373a9 Fix include path for moved Autodiff stuff 2014-12-05 13:52:49 -05:00
cbeall3 003e7a06ab 3rdparty/ceres include paths 2014-12-03 23:11:54 -05:00
Richard Roberts 3ba9e8f405 Updated some usages that were missed 2014-11-23 15:24:55 -08:00
Richard Roberts f9ca07e610 Converted Vector(2|3) << ... to Vector2(...) or Vector3(...) syntax 2014-11-23 10:22:25 -08:00
Richard Roberts 77254900f2 Updated timing scripts for comma initializer 2014-11-22 18:07:27 -08:00
Richard Roberts aa093a35da Updated all comma initializer usages to use .finished() 2014-11-22 16:35:27 -08:00
Zhaoyang Lv 87ef601b66 changes revertted to 502a745 2014-11-13 21:26:33 -05:00
Zhaoyang Lv ee3ea5bfad reverse to previous MKL_BLAS defined order 2014-11-13 21:14:07 -05:00
Zhaoyang Lv c4f3a48bc9 Revert "Fixed remaining compile issues in "make timing""
This reverts commit 502a7459f9.
2014-11-13 21:07:27 -05:00
dellaert 502a7459f9 Fixed remaining compile issues in "make timing" 2014-11-14 02:30:10 +01:00
dellaert c2c1de1761 Fix compile errors in issue #147 2014-11-14 02:19:48 +01:00
dellaert b5327673fb Get rid of LieVector 2014-11-03 11:02:15 +01:00
dellaert 8a6d8bfc82 Back to single 2014-11-02 14:35:32 +01:00
dellaert 7aaf4dae8c Merge remote-tracking branch 'origin/feature/BAD_VerticalBlockMatrix' into feature/BAD_WriteableJacobianFactor
Conflicts:
	gtsam_unstable/nonlinear/ExpressionFactor.h
2014-11-01 17:45:23 +01:00
dellaert 48a6777935 Some refactoring 2014-10-22 16:26:40 +02:00
dellaert 0f53c8d5ec Timing of Ceres AutoDiff adaptor 2014-10-22 12:49:18 +02:00
dellaert 4a854f7e22 No using namespace in headers 2014-10-15 11:01:27 +02:00
dellaert 898c06ccbb New multi-threaded, realistic SFM example (1M factors, not 1M calls on same factor) 2014-10-15 11:01:02 +02:00
dellaert 5cfe761f27 Timing multi-threaded code 2014-10-10 17:17:20 +02:00
dellaert 563c4d214c Renamed BADFactor -> ExpressionFactor 2014-10-09 13:00:56 +02:00
dellaert 31c138d0d6 Profile Bin(Leaf,Un(Bin(Leaf,Leaf))) by default 2014-10-08 17:52:46 +02:00
dellaert 4ac065fab4 Show explanation of timing 2014-10-08 17:27:46 +02:00
dellaert d7022a21c7 More samples to average 2014-10-07 20:11:19 +02:00
dellaert 982dc29d2f Time ternary version as well 2014-10-07 18:10:53 +02:00
dellaert 83d77271d9 Ternary now fixed 2014-10-07 13:04:04 +02:00
dellaert 613cb0bb12 Binary functions now take fixed Jacobians 2014-10-07 01:01:46 +02:00
dellaert 51eab1068f Time the most common SFM expression 2014-10-06 13:57:37 +02:00
dellaert 3f017bf51f An optimized version 2014-10-03 14:35:39 +02:00
dellaert c20b588fe0 timing, is pretty bleak for Expressions 2014-10-03 14:19:23 +02:00
Richard Roberts fe235b1209 Building timing scripts using new timing script support in GtsamTesting.cmake. Fixed compile errors in timing scripts but disabled a couple. 2014-06-07 19:02:11 -07:00