Commit Graph

688 Commits (59c7ce7e295abe1cb1cc7d3c60e14c934b62c46c)

Author SHA1 Message Date
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
Alex Cunningham f577b27f52 Small optimizations on Matrix::collect(), additional timing capabilities, and now collect() can have dimensions specified to avoid need for lookup. 2010-01-19 21:49:22 +00:00
Alex Cunningham 67878830a6 Added timeMatrix.cpp to test specific matrix operations 2010-01-19 20:59:22 +00:00
Frank Dellaert 3cdbaf81c7 Factorgraph-specific QR factorization now done by the NoiseModel: slow Gram-Schmidt for Constrained, fast Housholder for any other (Gaussian) model. 2010-01-19 19:06:02 +00:00
Frank Dellaert 6f2b5a904a save on fabs 2010-01-19 19:04:37 +00:00
Frank Dellaert 9f4da004c2 got rid of verbose printing 2010-01-19 19:04:18 +00:00
Alex Cunningham fb0ca07bf1 Added and tested whitening parameter for matrix() and matrix_augmented() 2010-01-19 16:52:01 +00:00
Alex Cunningham fbee0bd749 Fixing compile issue in SubgraphPreconditioner.h 2010-01-19 13:29:40 +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
Alex Cunningham 2eac3b7235 minor typo - comment only 2010-01-19 05:46:04 +00:00
Alex Cunningham 306ac0a4b2 Fixed clobbered checkin 2010-01-19 05:45:25 +00:00
Alex Cunningham 88e465910a SQP tests and implementation now use the new Key system 2010-01-19 05:33:44 +00:00
Frank Dellaert 2a57a04ba6 get_model 2010-01-19 05:29:31 +00:00
Frank Dellaert 6dcc275432 small comment/print 2010-01-19 04:39:54 +00:00
Frank Dellaert b01c111a1d GaussianFactor now uses noiseModel internally - not yet externally 2010-01-19 04:39:28 +00:00
Frank Dellaert 81aaceb890 Whiten now class-specific, access to sigmas 2010-01-19 04:38:58 +00:00
Kai Ni ebbdfc79aa comment out overflow exception 2010-01-19 04:18:59 +00:00
Michael Kaess ef2fb243c2 fixed unit test after colamd change 2010-01-19 03:43:10 +00:00
Richard Roberts 2507b6aaca Cleaned up commented line after fix to use the colamd ordering. 2010-01-19 03:16:09 +00:00
Richard Roberts 0311d2a2a2 Very very small change :-) 2010-01-19 02:57:08 +00:00
Frank Dellaert 0769af6f20 comment 2010-01-19 01:41:44 +00:00
Michael Kaess a45893a434 selective incremental linearization works; bug fix in landmark initialization (frank01 again much faster) 2010-01-19 01:18:28 +00:00
Michael Kaess a2bce15c4b selective update of linearization point 2010-01-19 00:15:46 +00:00
Michael Kaess 0e6607d160 relinearization working, but currently applied to all variables 2010-01-18 22:37:44 +00:00
Richard Roberts 5e15564525 Speedups: Matrix mult. in Gaussian NoiseModel. Removed size check in operator* in Matrix.h - ublas does this check when in debug mode. 2010-01-18 21:45:44 +00:00
Frank Dellaert e935f1745e stop copying matrices... 2010-01-18 21:17:25 +00:00
Michael Kaess f8ef284b30 fixed bearing/range, large speedup for batch; incremental creation of Config works 2010-01-18 20:17:31 +00:00
Richard Roberts 1f0de30a62 Removed unnecessary headers, now only included when GTSAM_MAGIC_KEY is defined 2010-01-18 19:36:02 +00:00
Frank Dellaert e523b148cf Moved tree stuff to graph, removed ordering-inl.h 2010-01-18 19:11:22 +00:00
Michael Kaess 8e3a8f08c8 incremental processing of planarSLAM; bug fix in ISAM2-inl 2010-01-18 18:13:53 +00:00
Alex Cunningham dfeacb218e Added tests for Keys, Added TypedLabeledSymbol class to allow for runtime symbols on keys 2010-01-18 16:18:02 +00:00
Kai Ni bbf6cabe9d generate ordering and pose config in the initialization stage 2010-01-18 09:24:38 +00:00
Michael Kaess 18414b1286 VectorConfig/Config confusion resolved; planarSLAM integrated 2010-01-18 08:05:33 +00:00
Kai Ni eb3e0067ef simplify covariance formulation 2010-01-18 07:11:34 +00:00
Kai Ni 6a163d1a84 fix compilation error caused by new covariance type 2010-01-18 06:17:01 +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
Frank Dellaert a4a6e002e5 NOISE MODEL.
This is a big edit but with no templates involed, so it should not be a big deal.

New namespace gtsam::noiseModel collects all noise models, which provide efficient whitening and chain-rule implementation needed for optimization. The class hierarchy gives us the ability to use models from full covariances to i.i.d. unit variance noise with a single interface, where the latter will be much cheaper. 

From now on, all non-linear factors take a shared_ptr to a Gaussian noise model. This is done through the parameter (const sharedGaussian& model). The use of a shared pointer allows us to share one noise models for thousands of factors, if applicable.

Just like Richard's Symbol change, there is a compile flag GTSAM_MAGIC_GAUSSIAN which allows you to use doubles, vectors, or matrices to created noise models on the fly. You have to set it to the correct dimension. Use of this is *not* encouraged and the flag will disappear after some good soul fixed all unit tests.
2010-01-18 05:38:53 +00:00
Michael Kaess 6b2190159d restored lost changes 2010-01-18 04:53:17 +00:00
Michael Kaess 42f4ff228b code cleanup, recovering estimate while dealing with incremental adding of factors, planar with new SLAM 2010-01-18 04:32:45 +00:00
Richard Roberts 9ac1622514 Removed obsolete files that reappeared after svn crash 2010-01-18 03:00:00 +00:00
Richard Roberts 149e6cef36 Added an explicit instantiation to fix a link error that was only detected on Linux 2010-01-18 02:23:10 +00:00
Richard Roberts aef0b42562 Refactoring to use a new Symbol key instead of strings in Bayes*, Gaussian*, Ordering, Symbolic*, VectorConfig. Renamed existing type-checking key Symbol<C,T> to TypedSymbol<C,T> 2010-01-17 19:34:57 +00:00
Frank Dellaert ea14959835 NoiseModel inhertance structure reversed, all constructors protected, new static "factories" 2010-01-17 17:47:23 +00:00
Frank Dellaert 87f7e05c15 Identity model 2010-01-17 15:10:10 +00:00
Frank Dellaert 5c6cfec7ab restored reset 2010-01-17 15:09:28 +00:00
Michael Kaess 80b3813a16 binary files should not be in repository 2010-01-17 06:09:25 +00:00
Michael Kaess fbe425b966 relinearizing part of a BayesTree, requiring caching of intermediate results during elimination 2010-01-17 06:06:20 +00:00
Frank Dellaert a3fa194ca1 Noisemodel works in PriorFactor 2010-01-17 03:56:42 +00:00
Frank Dellaert 8967027198 Testing R and Whiten 2010-01-17 03:29:23 +00:00
Frank Dellaert 9ddeb569b5 GaussianNoiseModel 2010-01-17 01:28:15 +00:00
Frank Dellaert 3a83e0678d KISS refactor of NoiseModel 2010-01-17 00:37:34 +00:00
Frank Dellaert 4518069218 2010-01-17 00:35:49 +00:00
Manohar Paluri 09d2cb9101 added numericalDerivative.h to headers 2010-01-16 23:10:38 +00:00
Kai Ni 0e17310e23 remove the printf 2010-01-16 22:56:57 +00:00
Richard Roberts 2174057578 Commented out another NoiseModel unit test 2010-01-16 20:40:47 +00:00
Richard Roberts e4eaa22378 Comment out unit test for broken function only used in NoiseModel, working on fixing 2010-01-16 20:18:45 +00:00
Frank Dellaert 049cea6964 3D Pose SLAM + removed obsolete Urban files that somehow re-appeared in CitySLAM 2010-01-16 19:37:17 +00:00
Frank Dellaert c051be9edf did not compile 2010-01-16 19:35:50 +00:00
Kai Ni 6714ba59f4 delete binary file testPose2Prior 2010-01-16 19:09:13 +00:00
Richard Roberts f0ae2c064e Merging in NoiseModel, not yet used though 2010-01-16 18:39:39 +00:00
Frank Dellaert 99db4c37d8 2D Pose SLAM: created a new templated factor to accommodate GPS measurements, and as part of the refactor I consolidated all Pose2 SLAM classes in pose2SLAM.h. For backwards compatibility it contains
typedef pose2SLAM::Prior Pose2Prior;
	typedef pose2SLAM::Odometry Pose2Factor;
	typedef pose2SLAM::Constraint Pose2Constraint;
	typedef pose2SLAM::Config Pose2Config;
	typedef pose2SLAM::Graph Pose2Graph;
2010-01-16 18:01:16 +00:00
Frank Dellaert 3c9c8bcfe5 Pose2Prior is now a typedef, improved some derivatives 2010-01-16 16:46:57 +00:00
Frank Dellaert 4914091c87 Pose2Prior test 2010-01-16 15:39:39 +00:00
Frank Dellaert 2605d18152 removed obsolete tests 2010-01-16 14:59:22 +00:00
Kai Ni b0f27c5d4b set sigma to 1 in pose2prior 2010-01-16 07:50:14 +00:00
Frank Dellaert a4d61d2f23 Little performance twiddles that make little difference 2010-01-16 07:22:34 +00:00
Frank Dellaert a8afe0da7c Forgot pre-multiply of error vector 2010-01-16 07:00:07 +00:00
Frank Dellaert 91a0fb23df Weighted pseudo-inverse now takes weights (1/sigma^2). Does not make a lot of performance difference. 2010-01-16 06:25:11 +00:00
Kai Ni fce2a668bb uncomment the commented out unit tests during debugging 2010-01-16 05:10:07 +00:00
Kai Ni f5a6a10feb debug hard constraint and make pose2prior work 2010-01-16 05:08:29 +00:00
Frank Dellaert fb3e38b161 25% performance increase by improving weighted_eliminate 2010-01-16 04:57:58 +00:00
Frank Dellaert 26246188af Added planar graph to timing script 2010-01-16 04:46:35 +00:00
Frank Dellaert a4ed0a191d Forgotten header numericalDerivative.h 2010-01-16 04:22:41 +00:00
Frank Dellaert 07c7c4c0bd print size with ordering 2010-01-16 04:22:21 +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
Frank Dellaert 5c0cd093fd moved relative_bearing to Rot2, changed derivatives to new-style 2010-01-14 16:57:48 +00:00
Frank Dellaert 53a03a0021 Changed signature of tree insert 2010-01-14 16:05:04 +00:00
Frank Dellaert f645b560ea Added constructor body 2010-01-14 15:35:23 +00:00
Frank Dellaert c7e0fe9fd8 fixed template instantiation 2010-01-14 15:32:14 +00:00
Frank Dellaert e7bf219498 removed .cpp 2010-01-14 15:31:58 +00:00
Frank Dellaert 25372aaa12 c_str 2010-01-14 15:31:42 +00:00
Kai Ni e1388c0f0d add Ordering-inl.h 2010-01-14 07:56:03 +00:00
Frank Dellaert dd697a838d added TupleConfig.h as header 2010-01-14 06:20:34 +00:00
Frank Dellaert df62213619 RangeFactor works 2010-01-14 06:00:17 +00:00
Frank Dellaert a552ba4539 Comments/formatting only 2010-01-14 05:59:33 +00:00
Frank Dellaert 8088aea598 Added double as Lie type, needed to remove Lie.h include from Vector.h 2010-01-14 05:58:58 +00:00