Commit Graph

6097 Commits (a7c0d108621607c18cf3630a34f7a1ef4984703c)

Author SHA1 Message Date
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 075817b31a add build dir to GTSAM_INCLUDE_DIR so projects built with gtsam build tree can find <gtsam/config.h> 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
Vadim Indelman bcab483574 Changed norm to determinant. 2014-08-01 21:51:52 +03:00
Vadim Indelman 89410fe1ee added updateNoiseModels_givenCovs to BetweenFactorEM. 2014-08-01 21:11:19 +03:00
dellaert fc58bf36fb changed test names 2014-07-28 11:57:42 +02:00
Luca 1548c8e34e added comments and fixed warning 2014-07-25 14:13:27 -04:00
Jing Dong b5b1bbfba0 improve TransBtwRobotEM factor's preformance by removing redundant unwhitenedError calc 2014-07-18 17:11:21 -04:00
Jing Dong e06c2cfacc change few function parameters to const reference to improve preformance of TransformBtwRobot factors 2014-07-18 15:59:14 -04:00
cbeall3 f4dc6a3a95 Fix metis linking in tests 2014-07-16 14:45:12 -04:00
cbeall3 5db01f98eb Change mex_command to uppercase to match INSTALL documentation. Reported by GTSAM user. 2014-07-08 09:01:30 -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
dellaert 87ba9384e0 warning in release 2014-07-01 11:21:23 -04:00
Vadim Indelman 991906181b Updating EM factor (to accout for uncertainty in states) 2014-06-30 20:43:25 +03: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
Yong-Dian Jian c93c9f1863 fix namespace 2014-06-22 23:52:59 -04:00
dellaert d8a8d459ae Moved test and timing targets to their correct locations 2014-06-22 18:51:35 -04:00
Frank Dellaert 33d2b4d683 Merged in feature/timing_scripts_build (pull request #17)
Fix and re-enable building of timing scripts
2014-06-22 18:43:01 -04:00
dellaert 96e8dfaf66 Simplified this example a bit 2014-06-22 18:39:11 -04:00
Richard Roberts 873283c522 Fixed broken timing script and fixed logic for building/excluding examples and timing scripts 2014-06-21 16:26:48 -07: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