Commit Graph

612 Commits (7eeed6dc14c61f7eeeda35a642bafb1df5888aad)

Author SHA1 Message Date
Varun Agrawal e54ef580f7 add simulation data 2020-12-14 14:32:36 -05:00
Varun Agrawal d8fc330be4 Assign pointer to prevent errors 2020-11-27 19:35:12 -05:00
Varun Agrawal 32943df612
Merge pull request #365 from borglab/imu-examples
Reworked IMU examples
2020-08-24 13:54:39 -04:00
Varun Agrawal 9e1c4fc2fb Merge branch 'develop' into imu-examples 2020-08-21 11:25:39 -04:00
Frank dellaert 12d18343b9 Shonan C++ CLI 2020-08-19 23:13:28 -04:00
Frank dellaert 5e803e917e Fixed example printing 2020-08-19 09:29:09 -04:00
Varun Agrawal 5a85494f33 replace atof/atoi with standardized stof/stoi 2020-08-17 13:12:40 -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
Varun Agrawal be70d1785c Merge branch 'develop' into imu-examples 2020-08-17 00:38:14 -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 a1f6e1585a use boost program_options for command line parsing 2020-08-11 01:32:58 -05:00
Varun Agrawal 4949f8bb9d reworked basic ImuFactorsExample 2020-08-11 01:32:44 -05:00
Varun Agrawal 3bc109de53 renamed ImuFactorExample2 to be more consistent with naming 2020-08-11 00:26:34 -05:00
Varun Agrawal aae9c19d0f example using CombinedImuFactor 2020-08-11 00:25:42 -05:00
Varun Agrawal 5da2108cd4 Merge branch 'develop' into imu-examples 2020-07-27 20:37:29 -05:00
Jose Luis Blanco Claraco 0198c648e3
Fix all new gcc warnings/errors: make explicit virtual/override methods.
Rules are:
- use "virtual" in base classes only.
- use "override" in all derived classes.
2020-07-26 11:20:42 +02:00
Varun Agrawal 6897ddc8aa Merge branch 'develop' into feature/g2o-vertices 2020-07-24 11:29:54 -05:00
Varun Agrawal 8a210188f3 test for readG2o 2020-07-24 03:10:14 -05:00
acxz e993afe2bf replace boost random with std random 2020-07-23 14:05:23 -04:00
Frank Dellaert 18b705835b
Merge pull request #263 from kvmanohar22/isam2_imu_example
adding functionality to use ISAM2 for imu preintegration example
2020-07-15 18:03:43 -04:00
Frank dellaert 4b4a0e532f Add BayesNet-inst.h at end of BayesNet.h 2020-07-14 08:50:20 -04:00
Frank Dellaert 954741093c
Merge branch 'develop' into isam2_imu_example 2020-07-13 21:06:24 -04:00
Frank dellaert 621e79f06c Add explicit HMM example 2020-07-12 23:25:26 -04:00
Frank dellaert 7dba3023d6 New discrete example 2020-07-12 23:25:26 -04:00
Varun Agrawal 48b0b2b76e Explicit type definition to handle warning 2020-07-10 23:01:18 -04:00
Varun Agrawal e41dbfc26c fix init issues with Vector3, use static matrices where possible 2020-07-10 21:45:01 -04:00
Varun Agrawal cd843f646f
Merge pull request #390 from borglab/fix/discrete_examples
Formatted and fixed discrete examples
2020-07-10 05:43:52 -04:00
Frank dellaert 3dcff34b46 Formatted and fixed discrete examples 2020-07-09 20:46:12 -04:00
Frank dellaert dc65a0a1d9 Added g2o test files 2020-07-09 16:27:32 -04:00
Frank Dellaert d0318172af
Merge pull request #249 from mindThomas/feature/isam2-kitti-example
Added ported C++ version of ISAM2 Kitti example
2020-07-09 15:17:18 -04:00
Thomas Jespersen e3712772cb ISAM2 Kitti example: Addressed review comments 2020-07-08 09:09:37 +08:00
Varun Agrawal 561218ae82 updated file docstring for ImuFactorExample2.cpp 2020-06-29 16:34:05 -05:00
Varun Agrawal 52a8dde6a7 updated filename in brief 2020-06-17 13:47:43 -05:00
Frank dellaert 0cd1e777bc Reformatted some and use of auto 2020-05-09 19:08:31 -04:00
Frank dellaert ff5a14831b Reformatted and refactored 2020-05-09 19:08:17 -04:00
Frank Dellaert 6a23c476a1
Merge pull request #279 from ghaggin/camera_mods
Fisheye Calibration
2020-05-09 16:44:54 -04:00
acxz 222e767e8d fix uninitialized variable Key first_pose 2020-05-06 23:49:51 -04:00
Frank Dellaert b4eb0c233d
Merge pull request #209 from acxz/tbb_fix
TBB deprecation fix (partial)
2020-05-06 18:52:56 -04:00
acxz e0cbc76456 change to more efficient call of threaded functions 2020-05-06 16:47:16 -04:00
acxz df9cf86cb0 replace task_scheduler_init with task arena/group 2020-04-13 11:30:57 -04:00
alescontrela 6c964a5a41 Fix Pose2SLAMExample_g2o example 2020-04-12 19:10:03 -04:00
alescontrela 93ba522582 Remove any unnecessary PriorFactor.h includes 2020-04-12 13:42:02 -04:00
alescontrela 211119b00e Replace addPrior<> with addPrior 2020-04-12 13:10:09 -04:00
acxz b4b487695d replace task_scheduler_init with task arena/group 2020-04-12 12:48:25 -04:00
alescontrela aa3ac32235 Change all old cases of graph.emplace_shared<PriorFactor<...>>(...) and graph.add(PriorFactor<...>(...)) to graph.addPrior<...>(...). Removed unnecessary PriorFactor.h includes. 2020-04-11 20:09:54 -04:00
alescontrela f4525b51e4 Change PriorFactor includes from gtsam/slam to gtsam/nonlinear 2020-04-10 22:26:22 -04:00
Glen Haggin 3ee552c7c6 Changed cacheing in jac func and fixed comments per PR discussion 2020-04-09 13:24:32 -04:00
Glen Haggin a488888d40 Added example with fisheye camera using the SFM data 2020-04-09 09:49:34 -04:00
Jose Luis Blanco Claraco 76b29b78af
Prefer C++11 nullptr 2020-04-06 23:31:05 +02:00
kvmanohar22 221dcaa13a adding functionality to use ISAM2 for imu preintegration example 2020-03-30 22:16:30 +05:30