thduynguyen
c6d541741b
more comments and debug info
2014-08-06 11:10:36 -04:00
thduynguyen
47ed9f3687
matlab code to reproduce test results
2014-08-06 11:10:36 -04:00
thduynguyen
cc2ba1792d
add detailed comments for the new EliminatePreferCholesky
2014-08-06 11:10:35 -04:00
thduynguyen
a7c0d10862
disable two warning options in METIS which are not understood by my clang compiler.
2014-08-06 11:10:35 -04:00
thduynguyen
2895b0515c
Support non positive definite Hessian factors while doing EliminatePreferCholesky with some constrained factors.
...
Currently, when eliminating a constrained variable, EliminatePreferCholesky converts every other factors to JacobianFactor before doing the special QR factorization for constrained variables. Unfortunately, after a constrained nonlinear graph is linearized, new hessian factors from constraints, multiplied with the dual variable (-lambda*\hessian{c} terms in the Lagrangian objective function), might become negative definite, thus cannot be converted to JacobianFactors.
Following EliminateCholesky, this version of EliminatePreferCholesky for constrained var gathers all unconstrained factors into a big joint HessianFactor before converting it into a JacobianFactor to be eliminiated by QR together with the other constrained factors.
Of course, this might not solve the non-positive-definite problem entirely, because (1) the original hessian factors might be non-positive definite and (2) large strange value of lambdas might cause the joint factor non-positive definite [is this true?]. But at least, this will help in typical cases.
2014-08-06 11:09:25 -04:00
thduynguyen
2fd3cf1bd0
unittest for QPSolver without initial point
2014-08-06 11:08:43 -04:00
thduynguyen
882a1fe22f
first unittest finding QP's feasible initial point works
2014-08-06 11:08:43 -04:00
thduynguyen
c91ab4a276
fix bugs in variable's columnNo index when passing to lpsolve. Obviously lpsolve modifies the raw buffer we pass to it!
2014-08-06 11:08:43 -04:00
thduynguyen
c637a75ebf
add lp_solve and the gtsam LPSolver interface
2014-08-06 11:08:43 -04:00
thduynguyen
e16efaab2c
QPSolver now returns dual values after solving. This can be used as a guessed dual value for the nonlinear level
2014-08-06 10:55:27 -04:00
thduynguyen
cb7153a9d2
move detailed comments to the cpp file. An important comment about an Eigen's exception when converting a jacobian to a hessian factor, probably due to a bug in clang compiler.
2014-08-06 10:55:27 -04:00
thduynguyen
fc63f540db
remove support for embedded lagrangian part to constraint's jacobian matrices. It's very hacky!
2014-08-06 10:55:27 -04:00
thduynguyen
db93f4137c
dexp and dexpInv for Point2 and Rot2
2014-08-06 10:55:26 -04:00
thduynguyen
ba870a1998
create VectorValues with all 1.0
2014-08-06 10:55:26 -04:00
thduynguyen
b56a3426ad
important bug fix in building dual graph when finding the variable dimension from its first factor in the factor indices.
2014-08-06 10:55:25 -04:00
thduynguyen
b8a2223572
make Jacobian/Hessian cast functions static to use them in other places. TODO: move them to GaussianFactor
2014-08-06 10:55:25 -04:00
thduynguyen
416111b0ef
size() should return size_t not Key
2014-08-06 10:55:24 -04:00
thduynguyen
4681c05063
build dualgraph supports least-squares multipliers
2014-08-06 10:55:24 -04:00
thduynguyen
bb7522c947
Fix gtsam's old segfault bug in JacobianFactor::isConstrained: return false if it has no noisemodel. Test Nocedal06book, example 16.4, pg 475 passed.
2014-08-06 10:55:23 -04:00
thduynguyen
37079417d1
Test with Matlab's QP example
2014-08-06 10:55:23 -04:00
thduynguyen
befe397f7a
disable printing
2014-08-06 10:55:22 -04:00
thduynguyen
f88c928ca0
refactor QPSolver into its own class
2014-08-06 10:55:22 -04:00
thduynguyen
c0e201f06c
Detailed comments for choosing the step size
2014-08-06 10:55:22 -04:00
thduynguyen
f00d673646
Detailed comments about the lambda<0 condition for good ineq <=0 constraints, wrt the Lagrangian L = f(x) - lambda*c(x)
2014-08-06 10:55:21 -04:00
thduynguyen
9fd78faf4b
first ineq QP test passed!
2014-08-06 10:55:21 -04:00
thduynguyen
cb02a95f94
fix bug in weightedPseudoInverse dealing with negative weights of ineq constraints
2014-08-06 10:55:21 -04:00
thduynguyen
cb37b025e9
small improvement on negative weights
2014-08-06 10:55:20 -04:00
thduynguyen
ba1273ae6b
fix bug in NoiseModel signs for ineq weights. Unittest dual graph
2014-08-06 10:55:20 -04:00
thduynguyen
a31e9568a1
QPSolver in progress. Finish building dual graph, but not tested.
...
Use mixed constrained noise with sigma < 0 to denote inequalities.
Working set implements the active set method, turning inactive inequalities
to active one as equality constraints by setting their corresponding sigmas to 0
and vice versa. Dual graph now has to deal with mixed sigmas.
2014-08-06 10:55:20 -04:00
Luca
1548c8e34e
added comments and fixed warning
2014-07-25 14:13:27 -04:00
Nathan Michael
a84ba5c677
Moving ValueCloneAllocator to Values.h to address forward declared template argument issue.
2014-07-07 12:18:15 -04:00
dellaert
c8c25b16ab
Added epipoles
2014-07-01 11:21:58 -04:00
dellaert
d6ffef89e6
Return pointer to cached basis
2014-07-01 11:21:43 -04:00
Yong-Dian Jian
1a9ab972a9
make verbosityTranslator public static functions
2014-06-29 13:08:17 -04:00
dellaert
b698e30acb
Small speedup in project (result of Visual SLAM slides :-))
2014-06-24 23:30:39 -04:00
Richard Roberts
946cc5338a
Merge branch 'develop' into feature/timing_scripts_build
...
Conflicts:
gtsam_unstable/CMakeLists.txt
2014-06-21 08:55:49 -07:00
balderdash-devil
921a18ae27
fixed windows build issues with chris
2014-06-20 18:43:08 -04:00
balderdash-devil
f5b3c75133
Fixes for windows
...
Seems like a default constructor for KeyInfoEntry() is needed
2014-06-20 14:28:30 -04:00
cbeall3
a34dff1397
Merge remote-tracking branch 'origin/feature/new_imu_factors' into develop
2014-06-20 13:32:34 -04:00
cbeall3
a7cd94c9dc
Fix struct vs. class mismatch warning
2014-06-20 12:07:28 -04:00
cbeall3
de63d1981c
Windows: Fix for discarding const qualifiers
2014-06-20 11:57:48 -04:00
dellaert
8ce541f05f
Separated out DK component
2014-06-19 12:19:02 -04:00
dellaert
12897a2c29
A small saving
2014-06-19 11:58:08 -04:00
dellaert
0e64c9495e
Two static functions save on copy/paste
2014-06-19 09:46:55 -04:00
dellaert
6ecc32a311
Fixed comments
2014-06-18 14:38:47 -04:00
dellaert
ea0dbf05ef
Name change from k3,k4 to p1,p2 as in OpenCV
2014-06-18 14:36:09 -04:00
Yong-Dian Jian
0a7fd40b6c
fix matlab toolbox compilation error
2014-06-17 13:47:43 -04:00
Yong-Dian Jian
78fcfdc5ef
Merge branch 'develop' of git@bitbucket.org:gtborg/gtsam.git into develop
2014-06-16 00:46:36 -04:00
Yong-Dian Jian
38dc807f32
Merge remote-tracking branch 'origin/feature/pcg' into develop
...
Conflicts:
gtsam/nonlinear/NonlinearOptimizer.cpp
2014-06-16 00:41:34 -04:00
Yong-Dian Jian
17426d0076
subgraph preconditioner revised
2014-06-15 23:14:06 -04:00
cbeall3
ed507cf4f6
add tolerances on unit expect to make quaternion mode pass
2014-06-10 16:10:47 -04:00
Yong-Dian Jian
67398f0f13
add BlockJacobiPreconditioner class and unit test
2014-06-08 16:15:00 -04:00
Yong-Dian Jian
e8d3809917
add new generic pcgsolver and preconditioner classes
...
add a unit test for the PCGSolver class
2014-06-08 00:34:23 -04: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
Frank Dellaert
996517916c
I commented out thread stuff as did not compile on my mac.
2014-06-07 16:29:21 -04:00
Yong-Dian Jian
c844ab19e3
move blas_kernel_ up
2014-06-04 23:23:17 -04:00
dellaert
21490eadd6
Comments w Yong-Dian
2014-06-04 14:57:22 -04:00
Yong-Dian Jian
a0c77dcc1c
remove unused variables in iterative solvers and rename accordingly.
2014-06-03 23:52:35 -04:00
cbeall3
e60f21a22f
Missed before: Frank's typedef fix actually needs another include on Linux
2014-06-01 16:02:24 -04:00
dellaert
e748088c06
Merge branch 'origin/fix/wrapper'
2014-06-01 14:40:55 -04:00
dellaert
ba67b1ce12
Possible fix for Clang 5.1 issue, for Chris to try on other platforms
2014-06-01 14:06:09 -04:00
Chris Beall
e66cd56bf5
Windows fixes. Made global test variables static
2014-06-01 13:49:19 -04:00
cbeall3
07772b011a
fix formatting
2014-06-01 13:04:47 -04:00
Chris Beall
c56b56a178
bizarre fix for issue 101
2014-06-01 13:00:11 -04:00
dellaert
c6de457a4b
Moved LAGO to slam
2014-06-01 12:25:23 -04:00
dellaert
7119d0c3c2
Sanitized G2o I/O interface to conform to what we had before. No sense in having many different styles, and this works better for MATLAB (now wrapped, as well).
...
BAL reading/writing should be similarly cleaned up.
2014-06-01 11:46:23 -04:00
Chris Beall
470527ff99
fix warnings on Windows. No need to create variable in catch statement if you're not going to use it. It generates unreferenced variable warnings.
2014-06-01 11:30:04 -04:00
Chris Beall
351e9ace72
add GTSAM_EXPORT
2014-06-01 11:28:20 -04:00
dellaert
a95cf7c71b
Load VERTEX_SE2
2014-05-31 23:15:11 -04:00
dellaert
3e532a5160
Fourth case: sensible order, but covariance matrix
2014-05-31 22:42:14 -04:00
dellaert
9ea155dee2
Get default smart flag
2014-05-31 22:11:15 -04:00
dellaert
8f493d6ee5
Formatting only
2014-05-31 22:10:51 -04:00
dellaert
f32968cc03
Added extra test case
2014-05-31 21:57:36 -04:00
dellaert
0f2d983190
More principled handling of noise parameters
2014-05-31 21:57:29 -04:00
dellaert
89e6e27301
Additional unit test
2014-05-31 20:29:00 -04:00
dellaert
10d19c6832
resurrected test
2014-05-31 19:15:43 -04:00
dellaert
ac3d1ea8b6
Remove timeLago from tests that are run....
2014-05-31 19:02:41 -04:00
dellaert
0e1b52150d
Switch from optional to (possibly empty) shared_ptr
2014-05-31 19:01:54 -04:00
dellaert
204ddbee5e
Formatting
2014-05-31 18:08:02 -04:00
dellaert
bc69c0a94e
Finish timeLago
2014-05-31 17:15:50 -04:00
dellaert
76297ea2cc
Adding noise does not help much
2014-05-31 17:15:29 -04:00
dellaert
16c28b2e9c
Formatting only
2014-05-31 16:31:48 -04:00
dellaert
42edec1066
Properly read w10000
2014-05-31 16:24:50 -04:00
dellaert
7e6a333b1a
Constrain orientation
2014-05-31 16:24:40 -04:00
dellaert
5aa9f42875
Better exception
2014-05-31 16:24:25 -04:00
balderdash-devil
19b7734a97
Removed unnecessary file
2014-05-31 16:21:55 -04:00
balderdash-devil
cd1b503985
comments explaining the funtion
2014-05-31 16:13:29 -04:00
balderdash-devil
34962d4669
removed debug statement
2014-05-31 16:03:25 -04:00
balderdash-devil
afcddf823a
unit test now works
2014-05-31 15:53:41 -04:00
dellaert
a74d82ac71
Convenience add functions...
2014-05-31 15:49:21 -04:00
cbeall3
87f5818776
Move smart projection factor
2014-05-31 15:33:19 -04:00
dellaert
385dfd8ad6
use non underscore functions
2014-05-31 15:18:45 -04:00
dellaert
3425a8a37c
use namespace std
2014-05-31 15:18:21 -04:00
dellaert
8fe24183eb
Lago timing
2014-05-31 14:37:29 -04:00
dellaert
8d54460d2c
Made three helper functions static (not directly called in testLago)
2014-05-31 13:44:23 -04:00
dellaert
970d49f60b
Standard formatting and some BOOST_FOREACH uses
2014-05-31 13:37:10 -04:00
dellaert
e5344d3d92
Doxygen documentation
2014-05-31 13:26:13 -04:00
dellaert
dfb620b5de
Header discipline
2014-05-31 13:21:34 -04:00
dellaert
9b8af1bf6e
Use namespace explicitly
2014-05-31 13:15:51 -04:00
dellaert
1d43a1f206
removed redundant "Lago" from several function names
2014-05-31 13:13:14 -04:00
dellaert
fe33c80b5f
Introduced namespace
2014-05-31 13:04:15 -04:00
dellaert
acdc3304e0
Cleaned up headers
2014-05-31 13:00:08 -04:00
dellaert
732409faf3
Changed filenames
2014-05-31 12:51:37 -04:00
cbeall3
f0257ee619
renamed testSphere2 ->testUnit3
2014-05-30 19:24:48 -04:00
cbeall3
7f32fe3ea0
fix warning
2014-05-30 16:30:46 -04:00
dellaert
e48fa756c0
Fixed bug in the n==0 case
2014-05-28 22:31:20 -04:00
dellaert
0c95959510
Changed to size_t, still fails some assertion
2014-05-28 22:31:20 -04:00
Chris Beall
432fce817e
Fixes for Windows. Everything compiles and passes again.
2014-05-28 21:29:23 -04:00
Luca
515b612ca0
Merge branch 'develop'
...
Conflicts:
.cproject
2014-05-28 18:59:04 -04:00
cbeall3
14d9855c53
Fix memory error uncovered by valgrind
2014-05-28 18:57:00 -04:00
Luca
386ed2e510
Merge branch 'develop'
...
Conflicts:
gtsam_unstable/slam/SmartFactorBase.h
2014-05-28 18:11:39 -04:00
Luca
48ec78bb40
cleaned up code and added comments
2014-05-28 13:39:22 -04:00
Luca
a805034273
cleaning code
2014-05-28 13:22:09 -04:00
Luca
461047b242
first working version
2014-05-28 13:14:49 -04:00
dellaert
8dba25f532
Rationalized some cholesky-related code as I was looking at it.
2014-05-28 10:36:26 -04:00
dellaert
e730da95c4
Smarter noise models: Diagonal::Sigmas is now actually smart, and Gaussian::SqrtInformation now has a smart flag (default is true)
2014-05-28 09:17:31 -04:00
Luca
cf7dd88916
minor comment
2014-05-28 02:38:01 -04:00
Luca
de64d29e6a
working unit test for 2nd stage: M3500 is not working yet
2014-05-28 02:09:38 -04:00
Luca
7aa0678720
added comment
2014-05-28 00:14:08 -04:00
Luca
b5de397747
fixed typos
2014-05-28 00:13:59 -04:00
Luca
61495b83d8
added extra unit tests to LAGO
2014-05-27 22:38:26 -04:00
Luca
8a1c6fe77f
added comment
2014-05-27 18:23:57 -04:00
dellaert
f4cad73b73
Fixed a problem with initialization (exposed by victoria_park.txt) and cleaned up a bit. Also fixed variances -> std deviation.
2014-05-26 23:29:14 -04:00
Natesh Srinivasan
b088945641
In response to Chris's comment
2014-05-22 13:33:02 -04:00
Natesh Srinivasan
814b01a995
Added a fix to install unsupported Eigen
2014-05-22 12:09:31 -04:00
Luca
bf8acfda9a
single GN iteration now
2014-05-21 14:28:39 -04:00
Luca
054b0ec03a
deleted useless cout
2014-05-20 18:01:26 -04:00
Luca
16571a9a95
added many unit test for g2o read/write
2014-05-20 17:59:49 -04:00
Luca
a668b2a8e4
Merge branch 'outlierRejectionTest'
...
Conflicts:
.cproject
2014-05-20 16:58:57 -04:00
Luca
78fe603933
re-established previous function
2014-05-20 16:56:01 -04:00
Luca
2430b0bbf0
added functions to read/write g2o files
2014-05-20 16:53:37 -04:00
Luca
0453310726
adding functions to read/write g2o files
2014-05-20 16:35:45 -04:00
Luca
1b5f9e7f02
split .h and .cpp for LagoInitializer
2014-05-20 15:49:58 -04:00
Luca
569f7bb292
created class LagoInitialized with working unit test
2014-05-20 15:38:20 -04:00
Luca
f6ad0a1920
fixes with Frank
2014-05-16 19:22:35 -04:00
Luca
0fad251355
added example reading g2o file
2014-05-16 10:03:18 -04:00
Luca
a93299f2dc
simplified code findMinimumSpanningTree
2014-05-15 13:49:57 -04:00
Chris Beall
d0a2db6646
Fix for infinite loop on 32-bit Linux.
2014-05-14 19:14:38 -04:00
Luca
b8300c3b0a
Improved function findMinimumSpanningTree to cope with general graphs (and added comments)
2014-05-14 17:39:59 -04:00
Luca
0d957084c0
fixed unit test on findMinimumSpanningTree
2014-05-14 17:21:32 -04:00
Chris Beall
e1c0ad8335
Changed 1e-20 to 1e-16. 1e-20 was cutting it too close on 32-bit system, resulting in divide by zero later
2014-05-14 14:11:23 -04:00
Luca
6f58269b0b
adding unit test for LAGO initializer
2014-05-14 11:57:46 -04:00
thduynguyen
4730527481
testSerializationLinear passes. Fill in the lower triangle part of matrix_ so that boost::serialization won't throw the input_stream exception due to uninitialized data
2014-05-08 11:49:21 -04:00
djensen3
0f03cd736c
added comments
2014-05-08 11:08:43 -04:00
Richard Roberts
d725dd4816
Renamed unit tests that still had 'Unordered' in the name
2014-05-07 18:19:11 -07:00
cbeall3
fec73365d7
Warning for Clang 5.0+
2014-05-07 10:42:15 -04:00
Chris Beall
b108e1c94f
Upgrade to Eigen 3.2.1 - minor fixes, Richard's patches carried forward
2014-05-07 00:04:22 -04:00
cbeall3
842554a230
Unit test fixes for quaternion mode and also rotation matrix + full expmap mode.
2014-05-06 20:03:45 -04:00
dellaert
2649b0fd7a
print variants for KeyList, KeyVector
2014-05-06 13:21:49 -04:00
cbeall3
9395bb0913
typos
2014-05-06 12:31:03 -04:00