Commit Graph

873 Commits (0eed38c7a0ac559c6de78ffe840d0cea4bb5a87d)

Author SHA1 Message Date
Frank Dellaert cd5c281c76 Added get and set 2010-02-18 14:30:16 +00:00
Frank Dellaert ede0a8c874 Added unit test 2010-02-18 14:29:40 +00:00
Frank Dellaert 3247751b5d Major check-in: there are now two interchangeable implementations of VectorConfig.
VectorMap uses a straightforward stl::map of Vectors. It has O(log n)
insert and access, and is fairly fast at both. However, it has high overhead
for arithmetic operations such as +, scale, axpy etc...

VectorBTree uses a functional BTree as a way to access SubVectors
in an ordinary Vector. Inserting is O(n) and much slower, but accessing,
is O(log n) and might be a bit slower than VectorMap. Arithmetic operations
are blindingly fast, however. The cost is it is not as KISS as VectorMap.

Access to vectors is now exclusively via operator[]
Vector access in VectorMap is via a Vector reference
Vector access in VectorBtree is via the SubVector type (see Vector.h)

Feb 16 2010: FD: I made VectorMap the default, because I decided to try
and speed up conjugate gradients by using Sparse FactorGraphs all the way.
2010-02-17 03:29:12 +00:00
Kai Ni cb5d4c3127 instantiate SymbolicConfig 2010-02-16 23:20:39 +00:00
Alex Cunningham d895cb90dc Added a static dim function to Point3 for generic detection of dimension 2010-02-16 20:21:03 +00:00
Alex Cunningham 529fc5536b Fixed templating problem with visualSLAM::ProjectionFactor 2010-02-16 02:09:07 +00:00
Frank Dellaert 30893b33eb some small details to work it work with NewVectorConfig 2010-02-15 23:54:10 +00:00
Frank Dellaert 5d33eb185c added SubVector type and some related routines 2010-02-15 23:53:16 +00:00
Frank Dellaert e4691a1594 BTree refactored, Node is now an inner class, find is non-recursive 2010-02-15 23:52:46 +00:00
Manohar Paluri 39708194a3 added TrifocalTensor test and changed DLT to use non-sorted version. 2010-02-15 23:45:53 +00:00
Frank Dellaert 341c4d9250 Deleted debug print 2010-02-15 21:38:33 +00:00
Manohar Paluri 8691d633a7 added testTensors to the tests 2010-02-15 20:25:38 +00:00
Alex Cunningham 17706d4ebd Added key template parameters to visualSLAM::projectionFactor without changing the interface. Added dimension checking function for Point2 type. 2010-02-15 16:37:37 +00:00
Manohar Paluri 6f0d23cdaf forgot to change comments in previous checkin 2010-02-14 07:26:53 +00:00
Manohar Paluri 1cc5bf748b make file changes and added make targets to the cproject 2010-02-14 07:26:10 +00:00
Manohar Paluri c16e6fc0d5 Moved Tensor related Files from CitySLAM 2010-02-14 07:25:03 +00:00
Manohar Paluri 1923778750 Moved Tensor related Files from CitySLAM 2010-02-14 07:24:37 +00:00
Frank Dellaert 44094b494e fixed maxIteration bug 2010-02-14 07:14:42 +00:00
Frank Dellaert 1f165a9f85 Made CG state a class 2010-02-14 05:52:20 +00:00
Manohar Paluri 43f9baf77a added test to check singular value ordering for a sample homography case 2010-02-14 04:56:29 +00:00
Manohar Paluri 693e13ef88 added default bool option to svd to sort the singular values and V. the default is true so pass false to avoid sorting 2010-02-14 04:54:39 +00:00
Kai Ni f9c2000847 save graph to graphviz format 2010-02-13 07:09:56 +00:00
Kai Ni d0a93ad9dd insert bayes net as a clique 2010-02-13 07:09:27 +00:00
Richard Roberts 4408eaf6f4 Added FactorGraph::checkGraphConsistency() to check for consistency between the variables->factors and factors->variables maps, and a unit test that tests the replace function including checking consistency. 2010-02-13 01:29:19 +00:00
Alex Cunningham f1988513fe Fixed bug in print function of TypedLabeledSymbol 2010-02-10 21:03:49 +00:00
Alex Cunningham dde0626e5c Added a constructor for TypedLabeledSymbol from Symbol that decodes the index to split out a label 2010-02-10 15:27:21 +00:00
Alex Cunningham d0aed559b5 TypedLabeledSymbols now convert properly to Symbols, so they can be used to add a runtime label to a TypedKey to express "Pose 1 of robot A" 2010-02-10 14:39:58 +00:00
Kai Ni 31999ecb1f added 4-way symbolic factor
fixed a bug in the bayes tree to graphviz routine
2010-02-09 22:59:18 +00:00
Richard Roberts e83b6c3b84 Normalizing rotation matrix to fix numerical instability when composing many poses 2010-02-09 22:44:02 +00:00
Kai Ni 31fc894a4a added 4-way symbolic factor
fixed a bug in the bayes tree to graphviz routine
2010-02-09 21:32:14 +00:00
Alex Cunningham d2a4bdae3c Made simulated2D factors more generic - can now specify key types 2010-02-09 19:47:39 +00:00
Alex Cunningham 8ff64793f1 Apparently, expmap != exmap. TupleConfigN's are no longer broken now. 2010-02-09 19:27:28 +00:00
Alex Cunningham 942e2b9c6d static chr() function for TypedSymbol, and another version of Symbol (don't use) 2010-02-09 03:59:45 +00:00
Alex Cunningham 0c74e0c309 Ensured that constraints add keys to keys_ 2010-02-09 01:52:36 +00:00
Alex Cunningham 8aa440a679 Fixed the instantiation macros and exmap global functions for TupleConfigN 2010-02-09 01:24:41 +00:00
Alex Cunningham 18d7fcc299 Added instantiation macros for TupleConfigs and NonlinearConstraints 2010-02-08 22:29:00 +00:00
Richard Roberts fbef948254 Bug fix in replace() 2010-02-08 22:22:38 +00:00
Richard Roberts ea9b44ea15 Fixed indentation 2010-02-08 22:21:56 +00:00
Alex Cunningham ed338300a1 Instantiation script for TupleConfig 2010-02-08 20:53:18 +00:00
Alex Cunningham ea3b8083b0 Fixed more tests for NonlinearConstraints, inequality constraints now work. 2010-02-07 01:18:17 +00:00
Chris Beall 814fb949ba fixed critical bug relating to height of tree 2010-02-06 17:45:40 +00:00
Chris Beall 675b30d1c1 updates to BTree 2010-02-06 15:53:31 +00:00
Alex Cunningham f88438bab4 Removed SQP optimizer and moved remaining SQP optimizer tests into testSQP. All equality constraints should be fully functional now. Inequality constraints still to come. 2010-02-06 14:48:46 +00:00
Alex Cunningham 219dfd262d SQP now works with single configs using the TupleConfigs, without needing a separate optimizer. 2010-02-06 05:14:52 +00:00
Alex Cunningham d8a8575d26 Removed a fixme comment 2010-02-06 05:12:09 +00:00
Alex Cunningham d1267d1ef3 Added more constructors, print functionality and formatting for TupleConfig 2010-02-06 05:10:25 +00:00
Alex Cunningham bb74b5c882 Added a config template parameter for ProjectionFactors 2010-02-06 05:08:52 +00:00
Alex Cunningham af9f45ff24 Used template parameters in simulated2D to make it possible to template factors on a config type with typedefs for the previous usage so no other code needs to change 2010-02-05 14:49:40 +00:00
Alex Cunningham 040d45cb45 Added wrapper classes for TupleConfig for ease of use. 2010-02-05 01:33:33 +00:00
Chris Beall 8fe0795dd0 BTree moved into gtsam 2010-02-04 21:02:05 +00:00
Alex Cunningham 5c1c8ee76f Changed PairConfig interface so that the internal configs need to be accessed with first() and second(). This is in anticipation of switching PairConfig to TupleConfig2. 2010-02-04 17:15:09 +00:00
Alex Cunningham 2068477e32 Added pragma once to LieConfig to prevent errors if included multiple times 2010-02-04 16:08:59 +00:00
Alex Cunningham 67744a5f07 Changed NonlinearConstraint to correctly use new keys 2010-02-04 16:08:11 +00:00
Alex Cunningham 01bbd3cf8d Disabling SQP tests while transitioning config types and SQP implementation 2010-02-04 16:07:20 +00:00
Alex Cunningham 843f11678b Recursive TupleConfig now has typedefs for 2-6 configs 2010-02-04 03:40:03 +00:00
Alex Cunningham 4e70f14097 The recursive TupleConfig should be ready for use now. 2010-02-04 02:04:45 +00:00
Kai Ni 550121013f fix const string problem in print 2010-02-03 20:12:16 +00:00
Alex Cunningham e5a7d4c878 More functionality in TupleConfigs 2010-02-03 14:08:09 +00:00
Alex Cunningham 94d50ddfb9 Added a liberal sprinkling of 'typename' to make TupleConfig work better 2010-02-03 13:57:34 +00:00
Alex Cunningham a66a405dd5 Partially implemented version of a recursive TupleConfig that is still very much under testing. 2010-02-03 13:47:13 +00:00
John Rogers 2f16d8f6a1 Changed the order of constructor initializers in GaussianFactor to remove compiler warnings 2010-02-01 16:04:14 +00:00
Frank Dellaert 5554f6fc7e Faster non-GSL versions of BLAS 2-style calls 2010-01-31 22:56:06 +00:00
Alex Cunningham efe51c8419 Fixed typo in function name 2010-01-31 21:09:03 +00:00
Alex Cunningham 2889a25aeb Fixed autotools files for GSL inclusion so that they don't include the wrong BLAS implementation when ATLAS is enabled 2010-01-31 18:26:18 +00:00
Alex Cunningham c266012dcd Added GSL/ATLAS version of multiplyAdd() and transposeMultiplyAdd() 2010-01-31 18:25:03 +00:00
justinca 74dd7128ac Fixup cholesky decomposition - rename to LLt and RtR to make convention clear 2010-01-31 18:07:29 +00:00
Alex Cunningham 87cc573d34 Added a new combine process for GaussianFactors that allocates only one matrix when combining, rather than using append factor to make a large number of smaller matrices. There is a flag to switch between these modes, which currently defaults to the older approach. Currently, there does not appear to be a performance improvement, however. 2010-01-31 17:49:33 +00:00
Alex Cunningham 9f16d7b07f Added in-place sub insert function to Vector 2010-01-31 17:24:01 +00:00
Alex Cunningham 48d2dabe43 Added in-place insertion functions to Matrix, as well as a #define flag to enable or disable GSL code without a reconfigure. 2010-01-31 17:21:07 +00:00
Alex Cunningham b5ca322d21 Added default tolerance value to equals in Key classes so that equals() works properly 2010-01-31 17:00:27 +00:00
Frank Dellaert fa6a515bfd SAM was substantially sped up by inlining VectorConfig::insert 2010-01-31 16:05:16 +00:00
Frank Dellaert 5e4b23df59 Matrix::multiplyAdd and transposeMultiplyAdd are "level 2" BLAS and speed up the numeric part of the code substantially. Alex might be able to speed them up even more by making them use real BLAS code within Matrix.cpp. 2010-01-31 16:04:24 +00:00
Frank Dellaert 3b6c4917a9 GaussianBayesNet::backSubstituteInPlace 2010-01-31 04:39:41 +00:00
Frank Dellaert ac870bce4c GaussianFactor::transposeMultiplyAdd 2010-01-31 03:33:53 +00:00
Frank Dellaert 4f998e5ecd Matrix::transposeMultiplyAdd 2010-01-31 02:53:03 +00:00
Frank Dellaert 9b4ff5e099 transposeMultiplyAdd provied BLAS-style call for iterative speed 2010-01-30 23:59:29 +00:00
Frank Dellaert 6ef09583b9 multiplyInPlace shaves a few seconds off but is fairly dangerous - I feel ambivalent.... 2010-01-30 17:31:05 +00:00
Frank Dellaert 161a47caa7 2010-01-30 05:22:17 +00:00
Frank Dellaert 881d739371 BLAS level 1 style "scal" saves even more time in PCG 2010-01-30 04:01:49 +00:00
Frank Dellaert 4913326c22 BLAS level 1 style axpy calls in Vector and VectorConfig shave some seconds off PCG 2010-01-30 02:04:37 +00:00
Frank Dellaert 65bc90bf15 timing VectorConfig to speed up iterative 2010-01-29 13:57:45 +00:00
Alex Cunningham eb88a149a1 NonlinearFactors handle constrained noise models properly now, as before they would try to whiten and fail 2010-01-28 17:21:24 +00:00
Viorela Ila 06a062c931 Added special lines for static variables needed for template classes 2010-01-27 19:45:31 +00:00
Kai Ni ed45d436be add gsl and atlas to configure 2010-01-27 05:15:52 +00:00
Alex Cunningham bc2a25385f Added updated timing results. 2010-01-27 05:08:54 +00:00
Alex Cunningham 59c7ce7e29 Integrated householder-based QR into NoiseModel. Note that the examples for GFG have changed to ensure that they are actually a linearized version of the nonlinear example. 2010-01-27 04:39:35 +00:00
Frank Dellaert 98b825ddbd Fixed loading of datasets 2010-01-27 03:41:23 +00:00
Frank Dellaert ae073c0120 Comments, and better test of composePoses 2010-01-27 02:49:58 +00:00
Frank Dellaert 8b87eebba6 commented GSl bit 2010-01-27 01:03:49 +00:00
Richard Roberts 02210cc7e0 Argument order of load changed 2010-01-26 20:31:25 +00:00
Richard Roberts 9b62b326c9 One more fix, inverse was actually needed in one case. 2010-01-26 20:10:45 +00:00
Richard Roberts b82d054aaa Definitions of Lie::between, Pose2::compose, expmap, and derivatives were not correct. Fixed, but changes some behavior (iSAM and CitySLAM already fixed), will send email about this change. 2010-01-26 20:00:17 +00:00
Manohar Paluri a0b96e7684 corrected case of Pose2SLAMoptimizer 2010-01-25 14:50:25 +00:00
Kai Ni 1685920d52 fixed Ab2 bug 2010-01-23 05:29:04 +00:00
Frank Dellaert afa964b8db Fixed sparse bug 2010-01-23 05:16:29 +00:00
Kai Ni 744269343f add print 2010-01-23 04:46:00 +00:00
Kai Ni b092fee64b pose2slamoptimizer unit tests worked 2010-01-23 03:49:05 +00:00
Richard Roberts 21c1af2b9f Collecting more statistics in isam2, logmap for configs 2010-01-23 01:53:04 +00:00
Kai Ni 4491db99be add beijing data set 2010-01-23 01:10:12 +00:00
Frank Dellaert 7644ff0080 optimize returns Vector, does not update 2010-01-23 01:08:42 +00:00
Frank Dellaert ada844300d Fixed compile issue in tests 2010-01-23 01:03:47 +00:00
Frank Dellaert 807cffbd61 Pose2SLAMOptimizer prototype for use in MATLAB 2010-01-23 00:57:54 +00:00
Michael Kaess 7bc4ee65da allow pure linear steps (disabled) 2010-01-23 00:21:34 +00:00
Manohar Paluri 80d335ed77 added saveGraph function to BayesTree which writes out a dot file which can be visualized using graphviz dot command 2010-01-22 23:52:56 +00:00
Kai Ni e87faa078d write correct information matrix to data file 2010-01-22 23:20:12 +00:00
Frank Dellaert 2150b24e29 Fixed memory hog problem with Alex's help. SAM marginally faster (3-4% with 1000 poses, might be bigger effect for full dataset) 2010-01-22 23:00:35 +00:00
justinca 16c55975c1 Fix inverse_square_root, add cholesky decomposition options 2010-01-22 22:28:03 +00:00
Kai Ni e88ae4a944 add dataset.h/cpp 2010-01-22 20:18:40 +00:00
Michael Kaess ab155999cf simplified alg, but no measureable speed improvement 2010-01-22 18:29:27 +00:00
Frank Dellaert 351cdd18c2 case change: SharedGaussian and SharedDiagonal are now classes with their own header file. Needed for MATLAB TORO hail Mary 2010-01-22 17:36:57 +00:00
Kai Ni 490791cd48 add writer module to dump the errors and time 2010-01-22 08:13:54 +00:00
Kai Ni 4b778a4e82 fixed a bug in matrix solve function 2010-01-22 06:45:01 +00:00
Michael Kaess 1d093e388d changed main algorithm to allow recovery of exact solution 2010-01-22 06:28:12 +00:00
Frank Dellaert 75e29dc015 failing test 2010-01-22 05:45:59 +00:00
Richard Roberts 5367e5a157 All std::map<Symbol,T> are now SymbolMap<T>, which is just a thin wrapper around std::map. at(Key) is used instead of first checking with find when an exception should be thrown for non-existent keys. This does not change any behavior or timing currently. This check-in also includes some functions in BayesTree for gathering clique statistics. 2010-01-22 04:41:40 +00:00
Frank Dellaert 41a6e64bbb Fixed insert to use IndexTable, a new class 2010-01-22 02:27:26 +00:00
Frank Dellaert 2cc777228b coments and variables only 2010-01-21 20:15:52 +00:00
justinca 7575996d52 Remove leftover commented out unused code 2010-01-21 19:49:36 +00:00
justinca f89a53ed91 Bugfix in Rot3::logmap. The function checked for a trace of 3, but the check could fail due to rounding errors, causing the function to try to take acos(something larger than 1) resulting in NaNs being returned. 2010-01-21 19:49:12 +00:00
Alex Cunningham ac746ccead Improved performance of updateAb in NoiseModel with GSL/ATLAS. Various other small optimizations were made. 2010-01-21 18:51:59 +00:00
Michael Kaess 2183e09c67 fluid relinearization works 2010-01-21 17:41:54 +00:00
Michael Kaess 523c8630d3 works at least on already solved data... 2010-01-21 16:09:57 +00:00
Frank Dellaert 0dc4f417e9 sampling from NoiseModel 2010-01-21 08:31:18 +00:00
Michael Kaess 8fd0c2ae72 new fluid relinearization algorithm, in sync with lyx 2010-01-21 07:38:37 +00:00
Alex Cunningham 9db7623f80 Improved instructions for GSL/ATLAS 2010-01-21 01:03:34 +00:00
Alex Cunningham 063aa14118 Reimplemented matrix::householder_update using GSL and BLAS, you'll need to edit Makefile.am to enable the new version -- see email 2010-01-21 00:59:33 +00:00
Michael Kaess 188561d925 removeTop/Path now returns a BayesNet to avoid converting the conditionals to a factor graph 2010-01-21 00:38:22 +00:00
Richard Roberts eb03f78e7d Removing dependency hack speeds up compilation 2010-01-20 20:47:15 +00:00
Alex Cunningham 588c119bf3 Added timing script for Matrix::householder_() 2010-01-20 18:52:31 +00:00
Alex Cunningham 5f588031bc Merged NoiseQR back into trunk 2010-01-20 18:32:48 +00:00
Alex Cunningham 9c9007920a Changed the interface on Matrix::column() so that it uses the one in our library (now called column_() ) rather than the boost default. Currently, our implementation just uses the boost default, but this may change due to timing results. 2010-01-20 16:08:14 +00:00
Alex Cunningham 98b143cd22 Switched all loop indices in Matrix/Vector to size_t, with improved results in timeGaussianFactorGraph 2010-01-20 14:42:05 +00:00
Alex Cunningham b4f9163296 Added more labels and results (with higher numbers of repetitions) for timeGaussianFactorGraph 2010-01-20 14:31:24 +00:00
Alex Cunningham 8db99db57e Small performance improvement for matrix_augmented, with accompanying test in timeGaussianFactor 2010-01-20 14:09:44 +00:00
Alex Cunningham 6bc0462669 Checked Matrix::collect() with different timing metric, and memcpy has approx 25% speedup over original version. Matrix_range is slower or the same speed as the original version. 2010-01-20 13:45:22 +00:00
Kai Ni 977a97eacf rename variable 2010-01-20 09:47:09 +00:00
Michael Kaess aae49e43f0 code factorization, speedup 2010-01-20 06:49:19 +00:00
Kai Ni ae908316e0 add comments 2010-01-20 06:34:25 +00:00
Richard Roberts 19dc8bf4b1 Fixed size() crash when BayesTree empty, added clear() function to BayesTree, added and removed #includes to fix link errors 2010-01-20 04:23:35 +00:00
Michael Kaess e767996b45 same bug fix as in ISAM2 2010-01-20 03:54:20 +00:00
Alex Cunningham 55e414cbdd Tried noalias() for collect(), but no real improvement 2010-01-20 03:25:55 +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
Alex Cunningham 03ec3e3e62 Implemented a version of collect() using matrix_range, but it had worse performance than memcpy. New version of vector_scale[column] with new pointer arithmetic implementation for approx 20% improvement. 2010-01-20 02:28:25 +00:00
Alex Cunningham 820ae5682d Optimized row version of vector_scale with approx 20% improvement 2010-01-20 02:04:25 +00:00
Michael Kaess ecde508318 incremental nonlinear working 2010-01-20 01:52:40 +00:00
Alex Cunningham b860f06614 Switched Matrix::collect() over to a memcpy, but the results weren't actually an improvement 2010-01-20 01:42:36 +00:00
Michael Kaess d2291a38d1 bug fixes after COLAMD activiation: BayesTree::insert was wrong, BayesTree::removeTop/Path fixed and simplified 2010-01-20 01:24:32 +00:00
Alex Cunningham 66607897a5 Added vector_scale timing benchmarks 2010-01-20 01:05:40 +00:00
Alex Cunningham ff83a7b18e Fixed compile error in testNoiseModel 2010-01-20 01:05:18 +00:00
Frank Dellaert b47438a86c Smart named constructors Covariance/Variances/Variance 2010-01-20 00:26:49 +00:00