Commit Graph

1328 Commits (a2e1cedaec2fca903decafa9d716edc0ab7ed80c)

Author SHA1 Message Date
alexma3312 a2e1cedaec Merge remote-tracking branch 'upstream/develop' into sim3 2020-09-20 11:47:14 -04:00
Christian Berg ceeb1142ec Throw exception in Rot3::RQ for derivatives close to singularity
Also added more tests and a TODO to investigate a more efficient method of
getting the jacobian of Rot3::xyz
2020-09-15 21:05:02 +02:00
alexma3312 470862e42c Merge remote-tracking branch 'upstream/develop' into sim3 2020-09-14 00:22:45 -04:00
Christian Berg 4566321a99 Added Jacobians for Rot3::xyz and related conversions to euler angles 2020-09-12 12:19:48 +02:00
alexma3312 41921c3173 Refactor mean and mean_pair test case. 2020-09-08 22:45:32 -04:00
alexma3312 a1b73b3776 document and use std::tie 2020-09-08 22:42:09 -04:00
alexma3312 8fa76865cb remove commented out code 2020-09-08 21:31:54 -04:00
Christian Berg 63327a7c9d Also add jacobians to Rot3::RzRyRx for when quaternions are selected 2020-08-31 18:49:18 +02:00
Christian Berg 62098fb584 Added Jacobians for Rot3::RzRyRx and related named constructors 2020-08-30 18:51:43 +02:00
alexma3312 9fd5c66a24 Add mean function into Point3 class. 2020-08-23 20:32:16 -04:00
alexma3312 e3bf43856d Merge remote-tracking branch 'upstream/develop' into sim3 2020-08-21 21:13:59 -04:00
Frank Dellaert 30ee2b9409
Merge branch 'develop' into feature/ShonanCLI 2020-08-21 09:46:04 -04:00
Fan Jiang 43816e5cd1 Remove GTSAM_DEFINE_POINTS_TO_VECTORS 2020-08-21 09:08:34 -04:00
Frank dellaert dd9bc7b2a3 Remove distinction between Typedef and Point3. 2020-08-21 08:49:48 -04:00
Frank dellaert a2d5730c30 Fixed test 2020-08-20 13:22:02 -04:00
Frank dellaert a3ac89b0fb Transpose translation when printing 2020-08-19 16:30:27 -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
alexma3312 aa2d0f3dec Change typedef into using. 2020-08-12 13:14:18 -04:00
ss 8425957e3f Finish Sim3 align and transformFrom functions. 2020-08-09 21:53:35 -04:00
ss ccdd1471ed Fix pose2 align bug. 2020-08-06 14:26:22 -04:00
Frank Dellaert 269dea3a24
Merge pull request #422 from borglab/dellaert/issue420
Dellaert/issue420
2020-08-02 16:16:01 -04:00
Frank Dellaert 458a33dade VectorizedGenerators 2020-08-01 15:41:19 -04:00
Frank Dellaert 09bb25498f
Merge branch 'develop' into dellaert/issue420 2020-07-31 16:45:03 -04:00
Varun Agrawal 08df535cba fix indentation of macro guard 2020-07-29 11:35:02 -05:00
Varun Agrawal ca88ac568b fixed tests 2020-07-28 15:57:15 -05:00
Varun Agrawal 2fbdd27f15 Merge branch 'develop' into feature/rot-print 2020-07-27 11:14:13 -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
acxz e993afe2bf replace boost random with std random 2020-07-23 14:05:23 -04:00
Frank dellaert 30703ccb6a Removed all deprecated code w Stephanie... 2020-07-22 17:32:25 -04:00
Varun Agrawal 61b1a9e88d Merge branch 'develop' into feature/rot-print 2020-07-21 18:07:52 -05:00
Frank dellaert 6192f90de5 Some more name changes and documentation 2020-07-21 11:37:23 -04:00
Frank dellaert d672e7eb87 Unit test for transformPoseFrom 2020-07-21 11:37:08 -04:00
Frank dellaert 2605e10c27 Fixed conventions for Jacobians 2020-07-21 11:04:36 -04:00
Mike Sheffler 94bb08ed34 Missing BOOST_SERIALIZATION_NVP wrapper macro for an argument to be serialized 2020-07-14 13:03:21 -07:00
Varun Agrawal 5dd1c8e3dc
Merge pull request #379 from borglab/fix/smartfactor_body_P_sensor
Test body_P_sensor in SmartFactor
2020-07-10 19:39:26 -04:00
Varun Agrawal f23587fafd Add indentation 2020-07-09 20:02:09 -04:00
Frank Dellaert f280aec428
Merge pull request #334 from martinvl/fix/unit3-copy-assign
Fix Unit3 copy assign
2020-07-09 15:19:35 -04:00
Mike Sheffler 283999b017 Unnecessary include statement 2020-07-08 11:52:51 -07:00
Mike Sheffler 00106ba360 Second attempt at a wrapper fix.
1) Some serialization code was missing from SOn.SOn.h (not sure why this wouldn't have been a problem before building the MATLAB toolbox ...)

2) FrobeniusFacotor stuff needed a couple GTSAM_EXPORT statements
2020-07-08 02:30:19 -07:00
Fan Jiang fb21c553a0 Switch to the new alignment marker type 2020-06-24 17:15:00 -04:00
Fan Jiang 37673771ae Fixed all alignment problems 2020-06-22 15:24:14 -04:00
Varun Agrawal e4b30fd580 use static_cast for Rot3 matrix 2020-06-19 16:06:33 -05:00
Varun Agrawal d7522ab970 moved matlab-style matrix format definition back to cpp, updated all formatters 2020-06-19 16:03:40 -05:00
Varun Agrawal 7815a27e21 Cleaned up printing of Pose3 2020-06-18 11:10:24 -05:00
Varun Agrawal 0e42a96294 Cleaned up printing of Rot3 2020-06-18 11:09:37 -05:00
Varun Agrawal f7141f4333 fix print tests for Rot3 and Pose3 2020-06-17 14:55:52 -05:00
Frank Dellaert 23d97af76a
Merge pull request #307 from borglab/fix/fisheye
Fix/fisheye
2020-06-17 11:53:45 -04:00
Varun Agrawal f235aaf8c4 use Eigen formatting for Rot3 ostream 2020-06-16 18:18:55 -05:00
Binit Shah 3bdc6d36cd Better explanation of Rot3 Logmap Lund unit test 2020-06-12 00:08:06 -04:00
Binit Shah 7c362c3e92 Conditioned logmap test on rotation format 2020-06-11 04:55:55 -04:00