Commit Graph

72 Commits (release/4.3a0)

Author SHA1 Message Date
jenniferoum 593beed1e1 Add EqFData.csv to examples/Data 2025-03-11 22:36:07 -07:00
Varun Agrawal 97ae9fde87 matlab script to plot results for City10000 2025-01-22 19:56:40 -05:00
Varun Agrawal 671184068f simple ISAM2 based example for City10000 dataset 2025-01-22 19:55:50 -05:00
Frank Dellaert 088332978b Check issue 1452 2025-01-13 13:02:39 -05:00
Frank Dellaert e2260b7ee1 Fix serialized test files for testSerializationSlam.cpp 2023-02-05 18:09:44 -08:00
Frank Dellaert bac5d4f120 Fix serialization class name 2022-02-16 20:59:26 -05:00
Akshay Krishnan 14f8b8aa62 removing Sampson error + some tests cleanup 2021-06-14 01:30:00 +00:00
Varun Agrawal e54ef580f7 add simulation data 2020-12-14 14:32:36 -05: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
Frank Dellaert b1e3b5495c Some behavior changes.
- maxIndex now does what it says
- id = size_t, Key is only for Values and Graph)
- re-admitted methods needed for wrapper.
2020-08-15 13:05:58 -04:00
Varun Agrawal 8a210188f3 test for readG2o 2020-07-24 03:10:14 -05:00
Frank dellaert dc65a0a1d9 Added g2o test files 2020-07-09 16:27:32 -04:00
Martin Brossard b925142b98
Create pose3Localizationexample.txt
pose3example.txt without loop closure
2019-08-02 17:13:02 +02:00
dellaert a450ba1e55 Merge remote-tracking branch 'origin/develop' into feature/LPSolver
# Conflicts:
#	gtsam_unstable/linear/QPSVisitor.h
#	gtsam_unstable/linear/RawQP.cpp
2019-04-24 16:08:50 -04:00
Frank Dellaert 18d26d12af Added some xml test files 2019-04-07 13:15:05 -04:00
Nghia Ho 937cdcf4d9 shorten parameter values 2018-12-14 12:12:33 -08:00
Nghia Ho 224af650bb add test code 2018-12-13 17:28:52 -08:00
= f8c13a862d Remove Unused Tests and QPS Files. 2018-11-05 16:45:43 -05:00
= c98c772017 [TEST] added QPTest. Showcases failure to work on indeterminate linear systems. 2016-07-01 15:42:23 -04:00
= 15c6aa210b [TEST] Added Remaining Failing Tests AUG2D CONT-050 HS118 HS268 HS51 HS51 HS53 HS76 2016-07-01 13:02:59 -04:00
= ac1a02337e [TEST] Added Test HS35MOD
[FEATURE] Added support for FX bounds for QPS Parsing format.
2016-06-29 15:38:00 -04:00
= 4ba87c59e7 [TEST] Add HS35
[TEST] Disabled HS118
2016-06-29 15:24:27 -04:00
= c9efb4bbda [TEST] QP Now correctly handles negative constant values on hessian factors. 2016-06-28 19:51:51 -04:00
ivan 6bafe9932e Merge branch 'develop' into feature/LPSolver 2016-06-12 19:44:19 -04:00
Luca c9e383e644 added IMU example, still debugging 2016-06-07 19:57:34 -04:00
ivan 7ebe12b4a7 Added missing QP Example Data 2016-05-15 16:44:23 -04:00
dellaert f639ae0d7c Ignore generated files 2015-02-26 13:55:32 +01:00
cbeall3 f1bd12155f Remove intermediate file for dataset I/O test, commit f833472 was undone by merge of BAD 2014-11-13 21:03:09 -05:00
dellaert a94835a2e4 Merge remote-tracking branch 'origin/develop' into feature/BAD
Conflicts:
	.cproject
	gtsam/geometry/Cal3DS2.cpp
	gtsam/geometry/Cal3DS2.h
	gtsam/geometry/Cal3Unified.h
	gtsam/navigation/CombinedImuFactor.h
	gtsam/navigation/ImuFactor.h
	gtsam/nonlinear/NonlinearFactor.h
	gtsam/slam/tests/testPoseRotationPrior.cpp

Modified: testGaussMarkov1stOrderFactor.cpp, testPoseRotationPrior.cpp
2014-11-04 17:04:57 +01:00
cbeall3 f833472898 Remove intermediate file for dataset I/O test 2014-10-25 20:18:55 -04:00
Luca d57ca93b7a Merge branch 'develop'
Conflicts:
	.cproject
	examples/Pose3SLAMExample_g2o.cpp
	examples/Pose3SLAMExample_initializePose3Chordal.cpp
	examples/Pose3SLAMExample_initializePose3Gradient.cpp
	gtsam/slam/InitializePose3.cpp
	gtsam/slam/InitializePose3.h
	gtsam/slam/tests/testInitializePose3.cpp
2014-10-06 17:02:08 -04:00
Luca 7322a74bbd nice and clean unit tests for gradient initialization 2014-09-11 12:05:36 -04:00
Luca aacd3484c7 bug fix: different pose covariance structure between g2o (t,R) and gtsam (R,t) 2014-09-04 10:07:28 -04:00
Luca 330fbd730e fix failing unit test (mac) 2014-08-22 10:40:16 -04:00
Luca 889bbea8d4 finished and tested initializer 2014-08-19 21:09:51 -04:00
Luca fdb31dbd8d Merge branch 'develop' 2014-08-19 20:51:16 -04:00
Luca f5cc247b1c added pose initializer 2014-08-19 20:50:48 -04:00
Luca bc205cf6a4 extended g2o parser to nondiagonal noise 2014-08-19 20:10:42 -04:00
Luca 358c978f00 added 3D version of readG2o with unit test 2014-08-18 20:40:52 -04:00
cbeall3 67e0e71802 First script to experiment with Concurrent calibration estimation 2014-06-13 12:17:45 -04:00
balderdash-devil 19b7734a97 Removed unnecessary file 2014-05-31 16:21:55 -04:00
balderdash-devil afcddf823a unit test now works 2014-05-31 15:53:41 -04:00
balderdash-devil bdeeb48c6e removed rewritten file 2014-05-31 15:52:40 -04:00
balderdash-devil 6e0c2f8560 merge changes 2014-05-31 15:52:06 -04:00
balderdash-devil 0e40be46ae removed the rewritten file 2014-05-30 16:39:21 -04:00
Luca fdc6e70978 added small datasets for unit tests 2014-05-28 13:39:33 -04:00
Luca 16571a9a95 added many unit test for g2o read/write 2014-05-20 17:59:49 -04:00
Luca 51248072f9 fixed bug in hessianDiagonal (raw access) 2014-04-03 17:50:52 -04:00
Luca 87687ff887 added simplest BAL file 2014-02-24 13:07:53 -05:00
Frank Dellaert 707c745aad Created second example 2013-12-24 16:47:30 -05:00