Kai Ni
2236f75527
linearPrepare for GaussianNewton
2010-06-06 17:42:56 +00:00
Kai Ni
9ddeaa91c6
linking to SparseQR as a shared library results in a performance hit. The proper way is to link the static library.
...
add prepareLinear to NonlinearOptimizer so that some computation can be cached and does not happen every time.
2010-06-05 20:46:16 +00:00
Kai Ni
d6267c0440
a preliminary version of SparseQR routines that passes the unit tests but has slightly different results as the old method when optimizing large nonlinear problems.
2010-05-31 02:21:37 +00:00
Kai Ni
5f7b2ef2ee
return immediately if maxIterations is zero
2010-04-28 21:35:01 +00:00
Kai Ni
1483de5479
mute the messages that has no verbosity level checking
2010-03-31 17:43:28 +00:00
Alex Cunningham
a1273a91fc
Integrated blas into gtsam using autotools
2010-03-15 18:17:43 +00:00
Richard Roberts
d149afbec2
Adding lambdaMode flag - defaults to BOUNDED (bounds lambda at 1e5), CAUTIOUS is currently broken.
2010-03-10 16:27:38 +00:00
Frank Dellaert
920d86ce35
Both GaussNewton and LM now exit immediately if initial error<absoluteThreshold, and pront out a messsage saying that if verbisty>=ERROR
2010-03-07 17:51:46 +00:00
Frank Dellaert
5ef0400e06
put Factorization class in its own file, and added checks in constructors that take shared pointers, so we get some more meaningful output rather than *segmentation error*
2010-03-05 15:09:09 +00:00
Alex Cunningham
d6c2b415a5
Added a check to NonlinearOptimizer to short circuit optimization if the initial error is below the absolute threshold.
2010-03-04 22:46:27 +00:00
Alex Cunningham
a46dc4cea0
Added threshold for lambda in NonlinearOptimizer so that if lambda has gotten unreasonably large, optimization will throw a runtime exception to prevent infinite loops where lambda goes to infinity.
2010-03-01 16:31:05 +00:00
Frank Dellaert
807cffbd61
Pose2SLAMOptimizer prototype for use in MATLAB
2010-01-23 00:57:54 +00:00
Kai Ni
490791cd48
add writer module to dump the errors and time
2010-01-22 08:13:54 +00:00
Kai Ni
3bf15333af
move ordering into the solver, and the nonlinear optimizer is now exact <G, T, L>
2010-01-20 02:28:23 +00:00
Kai Ni
3806125096
add linear system as a template parameter in nonlinear optimizer
...
fixed a nasty bug and change the internal data type of subgraph preconditioner from reference to boost shared pointer. reference is not a good idea for class members, because no type checking will happen
2010-01-19 10:46:12 +00:00
Kai Ni
ebbdfc79aa
comment out overflow exception
2010-01-19 04:18:59 +00:00
Kai Ni
05b07d443e
add linear system solver as a template class parameter in nonlinear optimizer.
2010-01-18 05:51:19 +00:00
Kai Ni
f5a6a10feb
debug hard constraint and make pose2prior work
2010-01-16 05:08:29 +00:00
Chris Beall
a956c1a8be
svn restored from 1733.
...
this commit updates gtsam to version 1774, which now appears as 1734.
2010-01-16 01:16:59 +00:00
Richard Roberts
2c8d8dbde4
NonlinearOptimizer constructor now requires shared_ptr to prevent storing pointers to stack and temporary variables. Code that uses it will need to be modified, but CitySLAM is already done.
2010-01-11 20:17:28 +00:00
Richard Roberts
19a3e228d7
Large refactoring - made several Lie group functions global, which used to be member functions, to treat Lie groups more uniformly. Also created Lie.h, and a preprocessor flag in numericalDerivative to change the coordinate frame derivatives are reported in. gtsam and easylib build and pass unit tests, but this will probably break other projects, which will require a few small changes to work again. Email coming in a few minutes to describe the changes.
2010-01-08 00:40:17 +00:00
Richard Roberts
971b575715
Fix duplicate definition error by adding 'inline' to checkConvergence
2009-12-14 06:10:51 +00:00
Alex Cunningham
a3ce3f31c8
Cleanup with NonlinearConstraints to make the active() function do thresholding for inequality constraints, rather than constraint function itself.
...
testSQP now has all tests active and passing.
Added greaterThanOrEqual() for vector comparison.
2009-11-30 17:36:34 +00:00
Alex Cunningham
77a1754b69
Renamed LinearFactor -> GaussianFactor, LinearFactorGraph -> GaussianFactorGraph
2009-11-12 16:16:32 +00:00
Frank Dellaert
e1716a39cd
Two changes: LinearFactor::sparse and LinearFactorGraph:sparse, and renamed VariableSet -> Dimensions, which is now a map from keys to integer variable dimensions. Merged in from the "sparse" branch created with Viorela.
2009-11-06 05:43:03 +00:00
Frank Dellaert
19bdb5c2f9
Better name for delta: linearizeAndOptimizeForDelta
2009-10-19 19:12:48 +00:00
Alex Cunningham
7d0a30c20f
Renamed FGConfig to VectorConfig in gtsam, easylib, EasySLAM, and mast.
2009-10-14 20:39:59 +00:00
Frank Dellaert
989f290c99
'''BIG CHANGE''': avoid converting back and to FGConfigs by templating on configuration type. Details:
...
* Factors are now templated on the configuration type. Factor Graphs are now templated on the factor type and configuration type.
* LinearFactor is a factor on an FGConfig.
* LinearFactorGraph uses LinearFactor and FGConfig.
* NonLinearFactor is still templated on Config.
* NonLinearFactorGraph uses NonLinearFactors, but is still templated on Config.
* Tests and VSLAMFactor have been updated to reflect those changes.
2009-10-06 18:25:04 +00:00
Frank Dellaert
68e20eec2c
2 BIG changes:
...
(1) FactorGraph and NonlinearOptimizer now no longer have a .cpp file, but a -inl.h file as in [http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml Google's C++ Style Guide]. This means if you expect to instantiate one of the functions in a cpp file, you have to include the -inl.h file.
(1) getOrdering is now in FactorGraph, and the non-linear version does *not* take a config anymore.
Long version: I made this change because colamd works on the graph structure alone, and should not depend on the type of graph. Instead, because getOrdering happened to implemented in LinearFactorGraph first, the non-linear version converted to a linear factor graph (at the cost of an unnecessary linearization), and then threw all that away to call colamd. To implement this in a key-neutral way (a hidden agenda), i had to modify the keys_ type to a list, so a lot of changes resulted from that.
2009-09-13 04:13:03 +00:00