thduynguyen
0dcb3e209d
add macro TEST_DISABLED for disabling tests without commenting them out
2014-09-13 01:29:25 -04:00
thduynguyen
6d697f2c92
heuristic in EliminationPreferCholesky to work around the Indeterminant exception while solving linear constrained systems.
...
Instead of turning Hessian factors into Jacobian factors -- so that they can be eliminated with constrained Jacobian factors using the special QR in Constrained's noise model -- we combine all Hessian factors, eliminate the variable first to have a conditional and a new factor 1, then combine the constrained Jacobians with this conditional (also a Jacobian) to eliminate again, producing the final conditional, and a new factor 2. The two new factors are then combined into a new Hessian factor to be returned.
2014-09-11 14:51:35 -04:00
thduynguyen
f8126dbf78
fix .cproject after rebasing
2014-08-06 22:41:35 -04:00
thduynguyen
af54d39b13
ignore build folder
2014-08-06 11:10:36 -04:00
thduynguyen
779a21c2c4
A small example showing that Hessian matrices in Lie groups might not be symmetric
2014-08-06 11:10:36 -04:00
thduynguyen
3778e3c928
constructors for JacobianFactor up to 6-ary for testing in matlab
2014-08-06 11:10:36 -04:00
thduynguyen
ecb896ef03
move Adjoint to cpp and enable EXP_MAP
2014-08-06 11:10:36 -04:00
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
4037d1ec1a
wrap QPSolver
2014-08-06 11:10:35 -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
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