Commit Graph

12155 Commits (cded12e6c8e6a5b74ff08ea231e38ddd2c7d01d3)

Author SHA1 Message Date
Fan Jiang cded12e6c8 Add script to update the wrap subtree 2020-08-20 10:31:40 -04:00
Varun Agrawal 77a6ed4320
Merge pull request #481 from borglab/feature/special-ci
CI For Special Cases
2020-08-20 09:10:58 -04:00
Frank Dellaert 84df33878f
Merge pull request #482 from cttdev/readme-link
Fix "Wrapper" heading anchor link in README.
2020-08-19 16:39:12 -04:00
Claudius Tewari cb3ca6b25d
Fix "Wrapper" heading anchor link in README. 2020-08-19 12:07:56 -07:00
Varun Agrawal 90cf8d74dd comment out python ubuntu-gcc-9 completely 2020-08-19 13:59:59 -04:00
Varun Agrawal 7c44d9ee66 updated step name 2020-08-19 13:54:16 -04:00
Varun Agrawal 21988f399e reduce special cases to only Ubuntu+GCC, disable Python CI for Ubuntu GCC9 2020-08-19 11:49:27 -04:00
Fan Jiang ac35670728
Merge pull request #477 from borglab/temp/copy_python
Mega change: New Wrapper (Python & MATLAB)
2020-08-19 11:34:39 -04:00
Varun Agrawal 88e393ec60 CI for special cases 2020-08-19 11:30:08 -04:00
Frank Dellaert 905a13c940
Merge pull request #480 from borglab/fix/shonan_unit_tests
Fix/shonan unit tests
2020-08-19 10:29:18 -04:00
Frank dellaert 5e803e917e Fixed example printing 2020-08-19 09:29:09 -04:00
Frank Dellaert cb2a8cd950 Added Shonan Averaging unit tests 2020-08-18 23:19:56 -04:00
Frank Dellaert fc7944b42d Recreated initializeRandomlyAt 2020-08-18 23:19:56 -04:00
Frank Dellaert 5a6bfed42c Fix override warning 2020-08-18 23:19:56 -04:00
Fan Jiang 8154dfd10b Add dependency for python-install 2020-08-18 22:39:13 -04:00
Frank Dellaert b09a6c98f9
Merge pull request #478 from borglab/fix/warnings-in-3rdparty
Include 3rdparty libraries as 'system' headers to avoid warnings
2020-08-18 12:45:57 -04:00
Varun Agrawal 1df0dd3551
Improve Github Actions (#476)
* remove make_verbose flag

* add Actions badges and minor improvements to README

* only run CI for legitimate PRs

* Revert "only run CI for legitimate PRs"

This reverts commit 5825797333576c538635a81d661c8ef67be0023a.

* fix cmake flag typo V41

* added Actions workflow for special build cases

* fix typo in CMake flag

* add build_type and minor fixes

* use run for each step

* debugging runs-on error

* debugging some more

* major strip down to help debugging

* run ubuntu-gcc combo only

* remove special CI for later
2020-08-18 12:44:48 -04:00
Fan Jiang 949f02a0f5 Fix CI Script for Pybind11 2020-08-18 12:21:24 -04:00
Fan Jiang bc748243cb Add MATLAB root prompt 2020-08-18 11:49:42 -04:00
Fan Jiang 3d846ef7a8 Reformat CMake files 2020-08-18 11:47:38 -04:00
Fan Jiang cbddcd0f51 Add docs for preamble and specialization.h 2020-08-18 11:32:05 -04:00
Fan Jiang 0c3b08ef4c Document tricks to allow direct import from xxx 2020-08-18 11:29:13 -04:00
Fan Jiang 09c1e3b3f4 Add documentation to the templates 2020-08-18 11:26:34 -04:00
Fan Jiang 7378fe73b7 Disable unstable MATLAB by default 2020-08-18 11:17:00 -04:00
Fan Jiang 60e0293511 update readme 2020-08-18 11:13:55 -04:00
Fan Jiang d790f235a7 Add supplimentary files used by the new pybind11 wrapper 2020-08-18 11:03:51 -04:00
Fan Jiang 03306cba9c Migrated all examples and tests 2020-08-18 11:02:35 -04:00
Fan Jiang 8a130c1a54 Remove eigency 2020-08-18 11:00:11 -04:00
Fan Jiang 6604b4f45b Renamed cython to python 2020-08-18 10:56:08 -04:00
Fan Jiang bb6aea3b8f Remove python folder temporarily 2020-08-18 10:55:45 -04:00
Fan Jiang e87fd24df1 Remove offending include 2020-08-18 10:51:15 -04:00
Jose Luis Blanco-Claraco 18cb761309
Include 3rdparty libraries as 'system' headers to avoid warnings 2020-08-18 08:49:37 +02:00
Fan Jiang 1d4cd41da7 No submodules 2020-08-17 19:27:20 -04:00
Fan Jiang c532cb03bb Change build target 2020-08-17 19:22:58 -04:00
Fan Jiang 723d00a40a Small fixes 2020-08-17 19:21:06 -04:00
Fan Jiang 0901237ec0 Fix some unstable MATLAB examples 2020-08-17 19:20:47 -04:00
Fan Jiang 28fc35af3c Merging 'master' into 'wrap' 2020-08-17 17:17:56 -04:00
Fan Jiang dc9ed2bfbd Squashed 'wrap/' changes from 21ee82f75..49d831588
49d831588 Disable verbose

git-subtree-dir: wrap
git-subtree-split: 49d83158872a0897e65fe99aa36353f7a54472c7
2020-08-17 17:17:56 -04:00
Fan Jiang 6436ad1962 Fixes the specialization order 2020-08-17 17:16:35 -04:00
Fan Jiang 1d6392dc88 Initial migration 2020-08-17 17:13:10 -04:00
Fan Jiang 8e2d5a10e4 Squashed 'wrap/' content from commit 21ee82f75
git-subtree-dir: wrap
git-subtree-split: 21ee82f7542033a9a91891669490da0e364a357b
2020-08-17 14:44:43 -04:00
Fan Jiang 7f8371aad7 Merging 'master' into 'wrap' 2020-08-17 14:44:43 -04:00
Fan Jiang c7eb02969a Remove old wrap 2020-08-17 14:44:14 -04:00
Fan Jiang b0d100b8fb Python supplementary files 2020-08-17 14:38:00 -04:00
Fan Jiang 840831b62b Ported MATLAB Examples 2020-08-17 14:37:12 -04:00
Fan Jiang 37f42b82fa Merge branch 'develop' into temp/copy_python 2020-08-17 14:32:20 -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
Frank Dellaert ae4968328d
Merge pull request #472 from borglab/feature/actions_ci_add
Minimal PR to add GitHub Actions CI to develop
2020-08-16 23:40:47 -04:00
Frank Dellaert 42e1af5358 Merge branch 'develop' into feature/actions_ci_add
# Conflicts:
#	.travis.yml
2020-08-16 23:21:18 -04:00
Frank Dellaert aceaa139ab
Merge pull request #471 from borglab/feature/dataset-refactor
Refactoring dataset.h/.cpp
2020-08-16 23:15:02 -04:00