Commit Graph

256 Commits (1fd0404ec9c81d105d84f93a3a237a9d113e1211)

Author SHA1 Message Date
Frank Dellaert 17aaae42d8 Refactoring of weightedPseudoInverse, emul, sum 2009-11-13 06:14:55 +00:00
Frank Dellaert 2178589263 Debug printout and variable names 2009-11-13 06:13:58 +00:00
Alex Cunningham 67c2ea8263 NonlinearEquality factor is now working for generic configs. Currently, the feasible point must be specified in the form of a full config with the point in it, but this avoid needing to increase the requirements on the configs. 2009-11-13 02:06:52 +00:00
Viorela Ila cba4a536bb includes Ordering.h 2009-11-13 01:56:09 +00:00
Chris Beall 6252ff2497 added testVSLAMGraph unit test. will fail until we can add a constraint to either one of the two cameras. 2009-11-12 18:55:03 +00:00
Chris Beall ef0fc9fbac added testVSLAMGraph unit test. will fail until we can add a constraint to either one of the two cameras. 2009-11-12 18:54:46 +00:00
Frank Dellaert 03f865d4b1 Used typedefs with similar naming convention. 2009-11-12 18:33:14 +00:00
Alex Cunningham 5857635ca1 Fixed renaming error with NonlinearFactors sometimes becoming NonGaussianFactors 2009-11-12 16:47:12 +00:00
Alex Cunningham c7b86cec97 Renamed ConditionalGaussian -> GaussianConditional 2009-11-12 16:41:18 +00:00
Alex Cunningham 77a1754b69 Renamed LinearFactor -> GaussianFactor, LinearFactorGraph -> GaussianFactorGraph 2009-11-12 16:16:32 +00:00
Frank Dellaert 1ae6bb4030 Added push_fron convenience method to add ConditionalGaussians into a Bayes net with much less clutter. Modernized some very old tests in the process. 2009-11-12 06:09:03 +00:00
Frank Dellaert f677341108 Moved inference methods to new compilation unit. Added [factor], and [marginalize] now returns a factor graph. 2009-11-12 04:56:30 +00:00
Frank Dellaert c85f5445db Re-organized makefile 2009-11-12 04:54:31 +00:00
Frank Dellaert 81a353dd2c eliminate is now const 2009-11-12 04:53:28 +00:00
Frank Dellaert a38ebece1e New compilation unit that collects generic, templated inference methods that go between factor graphs and Bayes nets. These used to be in BayesNet-inl.h and FactorGraph-inl.h 2009-11-12 04:52:40 +00:00
Viorela Ila 4a7e05fffa change all print() to print(string s) and create SymbolicFactor 2009-11-11 22:45:08 +00:00
Chris Beall 70efccefbc VSLAMFactor Testable 2009-11-11 21:09:43 +00:00
Alex Cunningham 8c695a778c Implemented a rank deficient constraint test in testLinearFactor: note that it is possible to reorder elimination to make a system solvable or rank-deficient 2009-11-11 19:00:39 +00:00
Eohan George ab65dfb4dd Adding include file stdio.h to resolve compiling issue when upgrading to Ubuntu 9.10. The printf() compiles on ubuntu 9.04 and mac machines. 2009-11-11 17:15:17 +00:00
Alex Cunningham f51614813e Improved weighted eliminate to handle arbitrary linear equality constraints 2009-11-11 14:42:09 +00:00
Frank Dellaert d585a329dc Added MATLAB-friendly versions of eliminate and optimize in LinearFactorGraph (with trailing underscore). Also fixed some MATLAB code. 2009-11-11 07:14:13 +00:00
Frank Dellaert ac840d6f0a 1) DCVectorConfig I believe was obsolete as well as any conversion from and to Vectors, which I removed
2) load and flush are gone. 
3) I made a VSLAMConfig "Testable". 
4) I added an explicit template instantiation to avoid having to include -inl.h files
5) I added some more test code in testVSLAMFactor
2009-11-11 05:14:03 +00:00
Frank Dellaert 00ff066b33 Fixed compile error 2009-11-11 05:13:25 +00:00
Frank Dellaert 8d2d48d252 made removeAndCombineFactors a function, not a method 2009-11-11 05:12:45 +00:00
Chris Beall 710d396d0b cleaned up a few includes to make VSLAMGraph work properly after the move into gtsam. 2009-11-10 22:49:22 +00:00
Chris Beall dc3b85e43d Todo: make wrapper for GaussianBayesNet. For now eliminate returns void in gtsam.h 2009-11-10 21:15:28 +00:00
Chris Beall 08c9718b12 Moving VSLAMConfig into gtsam. VSLAMFactor lived there already, but was using VectorConfig directly... now using VSLAMConfig. 2009-11-10 20:19:00 +00:00
Manohar Paluri 0d928035e0 added empty constructors for serialization, also made sure SymbolicConditional.h was installed 2009-11-10 14:55:07 +00:00
Manohar Paluri 1f15650da0 Added serialization of base class 2009-11-10 14:44:53 +00:00
Alex Cunningham ddc0173671 Basic handling of constraints now works in factor graphs, assuming there is only one constraint on any given variable. 2009-11-10 04:36:07 +00:00
Alex Cunningham a7b711db37 Removed constraint variations on graphs/factors 2009-11-10 04:33:39 +00:00
Alex Cunningham 2c37c94b5d Replaced the householder transform with the weighted system
Removed constrained components from makefile, they will disappear shortly
2009-11-09 21:34:20 +00:00
Alex Cunningham 03985d16f6 Fixed equality checking with NaNs in Matrix
removed extraneous print statement in Vector
2009-11-09 16:57:30 +00:00
Chris Beall 01ee9246d7 fix Matlab toolbox to work with Frank's recent changes to gtsam. 2009-11-09 16:53:13 +00:00
Alex Cunningham 1ae81b59d8 Fixed vector comparisons that will erroneously return true when there are NaN values. 2009-11-09 16:47:37 +00:00
Frank Dellaert a3de1964d7 BIG CHANGE:
1) eliminate methods no longer return a shared pointer. Shared pointers are good for Factors and Conditionals (which are also non-copyable), because these are often passed around under the hood. However, a BayesNet is simple a list of shared pointers and hence does not cost a lot to return as an object (which is compiler-optimized anyway: there is no copy). So, the signature of all eliminate methods changed to simply return a BayesNet<> object (not a shared pointer).

2) GaussianBayesNet::optimize is now replaced by optimize(GaussianBayesNet) and returns a VectorConfig and not a shared pointer

3) GaussianBayesNet and SymbolicBayesNet are now simply typedefs, not derived classes. This is desirable because the BayesTree class uses templated methods that return BayesNet<Conditional>, not a specific BayesNet derived class.
2009-11-09 07:04:26 +00:00
Frank Dellaert 7bd40e836d Cleaned up and added test for VSLAMFactor 2009-11-09 04:46:34 +00:00
Frank Dellaert e340178de5 Easy constructor 2009-11-09 04:46:08 +00:00
Frank Dellaert dd1b023ca9 Fixed special case for root 2009-11-09 04:45:38 +00:00
Frank Dellaert cc22e82ca6 Joint densities (covariances) now done. Was exceedingly easy :-) 2009-11-09 00:13:44 +00:00
Frank Dellaert 3464c6a36f Create from a single string 2009-11-08 22:51:29 +00:00
Frank Dellaert 86173b66af Clique marginal and dramatically simplified single variable marginal. 2009-11-08 22:51:12 +00:00
Frank Dellaert 10e618f360 New function marginals. Also: combine entire Bayes nets with push_back and push_front. And finally: some convenience constructors in GaussianBayesNet. 2009-11-08 22:50:26 +00:00
Frank Dellaert 58007a8167 Working recursive (but not cached) shortcut. 2009-11-08 04:41:01 +00:00
Frank Dellaert d1b8925617 Construct symbolic version of any Bayes net 2009-11-08 04:39:54 +00:00
Frank Dellaert 532be063f9 new templated function combine 2009-11-08 02:50:19 +00:00
Frank Dellaert 93da9e0f2c pop_front 2009-11-08 02:49:18 +00:00
Frank Dellaert cc5a2c3183 Renamed double-templated functions to _eliminate and _eliminateOne, and created FactorGraph-specific eliminateOne methods to make life easier 2009-11-07 21:03:30 +00:00
Frank Dellaert df3e5f2416 BIG: eliminate and eliminateOne now doubly templated functions, not methods.
Minor: Standardized on new shared_ptr naming convention:
shared_factor -> sharedFactor
conditional_ptr -> sharedConditional
node_ptr -> sharedClique
2009-11-07 19:31:39 +00:00
Frank Dellaert f5d186522e Standardized on new shared_ptr naming convention 2009-11-07 17:24:05 +00:00
Frank Dellaert 6339b5d19d Made Node public 2009-11-07 15:58:45 +00:00
Alex Cunningham 7ef9ed950b Improved performance of matrix scaling in LinearFactor::matrix_augmented
Added matrix scaling functions to scale either the rows or columns by values from a vector
2009-11-06 13:43:39 +00:00
Frank Dellaert cd313e2f82 operator[] to retrieve clique 2009-11-06 05:55:29 +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
Alex Cunningham fb74ef03b2 Added to LinearFactor a matrix_augmented() function to get a single augmented matrix [A b]
Removed extra copying in LinearFactor::eliminate()
2009-11-05 15:08:58 +00:00
Alex Cunningham 6c5603de0c Fixed remaining LinearFactor unit tests
Added equality check for Variable
2009-11-05 13:52:12 +00:00
Frank Dellaert d9289d14b3 marginals on any scalar now work 2009-11-05 08:06:32 +00:00
Frank Dellaert beabb62f29 More informative print 2009-11-05 08:05:54 +00:00
Frank Dellaert bd54c39a73 Fixed bug in smoother example 2009-11-05 08:05:34 +00:00
Frank Dellaert e87c19ed7a ConditionalGaussian now stores sigmas 2009-11-05 06:59:59 +00:00
Frank Dellaert 88b8f4e16b fixed unit test 2009-11-05 06:34:43 +00:00
Frank Dellaert cabcda5a96 marginal compiles and runs for frontal node in clique 2009-11-05 06:30:50 +00:00
Frank Dellaert 7f516394df Added dummy argument to work around compile conundrum 2009-11-05 06:30:10 +00:00
Frank Dellaert 06f07420d1 back() 2009-11-05 06:29:32 +00:00
Frank Dellaert 11fcd5a69d KISS: just a map of pointers in BayesTree now 2009-11-05 05:29:47 +00:00
Frank Dellaert 3d334401f5 Constructor from BayesNet now in FactorGraph base class
FactorGraph::eliminate
Removed eliminate_partially
2009-11-05 04:56:59 +00:00
Frank Dellaert e650676da7 Moved header to .h to fix MATLAB toolbox compilation 2009-11-05 03:51:08 +00:00
Chris Beall 3b258be8c4 about a dozen changes to make Matlab toolbox work again, but one error remains having to do with the forward declaration of class GaussianBayesNet. 2009-11-05 03:26:04 +00:00
Manohar Paluri 0ef7fe4a01 changed case of foreach ( it was capitals before and will not compile on linux ) 2009-11-04 22:19:16 +00:00
Richard Roberts e2414561be Merged r895:900 from branch weightedQR - LinearFactorGraph now has sigmas and ConditionalGaussian now has precisions 2009-11-04 20:59:16 +00:00
Frank Dellaert 4865edb883 Removed debug code, added marginal function 2009-11-04 03:22:29 +00:00
Frank Dellaert e9d942f81e BayesNet is now list-based for fast bi-directional access
SLOW O(n) random access operator[key] provided 
(should maybe be called [at] as it does bounds checking)
I also fixed a bug in equals.
2009-11-03 06:29:56 +00:00
Frank Dellaert eab038651e Renamed BayesNet::insert -> push_back. BayesTree now uses Bayes nets as nodes. 2009-11-02 05:17:44 +00:00
Frank Dellaert a8d267c4ca Small change necessitating lots of edits: Conditionals now include key of random variable
This simplifies Bayes nets quite a bit. Also created a Conditional base class, derived classes ConditionalGaussian and SymbolicConditional
Finally, some changes were needed because I moved some headers to .cpp
2009-11-02 03:50:30 +00:00
Frank Dellaert 943b692a6b BIG CHANGE: I got rid of the BayesChain/ChordalBayesNet classes and we now simply have a BayesNet class. It will just happen to be chordal when it is the result of an elimination. This will simplify a lot of things.
The main renaming that happened is

BayesChain -> BayesNet
ChordalBayesNet -> GaussianBayesNet == BayesNet<ConditionalGaussian>
SymbolicBayesChain -> SymbolicBayesNet == BayesNet<SymbolicConditional>
2009-10-31 19:53:20 +00:00
Frank Dellaert 921cb0a8fc Got rid of (defunct) "dump" methods 2009-10-31 17:13:36 +00:00
Frank Dellaert c046fed37c Bayes tree constructor implemented and tested with ASIA, as well as smoother example from frankcvs meeting 2009-10-31 16:57:36 +00:00
Frank Dellaert 1e5a2d692a const 2009-10-31 16:56:06 +00:00
Frank Dellaert 040f407b0b Removed constructor, use eliminate 2009-10-31 16:55:44 +00:00
Frank Dellaert 0f688302ad Fixed bug in [parents] 2009-10-31 16:55:17 +00:00
Frank Dellaert 68d2f81f0a Smoother now creates x1...xT, not x0 anymore 2009-10-31 16:54:38 +00:00
Frank Dellaert fd5f43092f Ordering is now a list and Testable 2009-10-31 15:24:22 +00:00
Frank Dellaert e1f14b34c3 Implemented [equals] using binary predicate and STL's equal 2009-10-31 14:12:41 +00:00
Frank Dellaert b9ceca7dc6 Templated binary predicate [equals] for use with STL's equal(...) 2009-10-31 14:11:48 +00:00
Frank Dellaert 53890c4ba6 Symbolic Bayes Tree successfully constructed 2009-10-31 05:12:39 +00:00
Frank Dellaert cefeca149b Moved template definitions to BayesTree-inl.h 2009-10-30 13:03:38 +00:00
Frank Dellaert 0d7d0e2161 Explicit template instantiation in .cpp files, so we can link with the code without having to include -inl.h everywhere... 2009-10-30 05:45:22 +00:00
Frank Dellaert 83e5286710 ChordalBayesNet is now derived from BayesChain
Explicit template instantiations
2009-10-30 04:54:11 +00:00
Frank Dellaert dd3795ad5a Symbolic eliminate now works, new compilation unit SymbolicFactor 2009-10-30 03:48:32 +00:00
Alex Cunningham 65b949c008 Fixed flaw in pseudoinverse calculation, and updated tests for Matrix and Vector 2009-10-29 20:12:07 +00:00
Frank Dellaert 80b162a412 LinearFactorGraph::eliminate_one is now FactorGraph::eliminateOne<ConditionalGaussian>
Symbolic version FactorGraph::eliminateOne<SymbolicConditional> also implemented and tested
2009-10-29 14:34:34 +00:00
Alex Cunningham 4c48bb08e1 Vector and Matrix updated with improved weighted householder operations and more tests. 2009-10-29 12:52:27 +00:00
Frank Dellaert a513ae0287 Changed names and moved two LinearFactorGraph functions to FactorGraph
Added SymbolicFactorGraph compiulation unit and unit tests
Added symbolic combine constructor
2009-10-29 05:39:13 +00:00
Frank Dellaert f0c23a2828 Moved [factors] to FactorGraph 2009-10-29 04:49:13 +00:00
Frank Dellaert b6cee73571 Significant change: Made FactorGraph templated on Factor only, and moved error and probPrime to derived classes
Moved find_and_remove_factors to base class
Added and tested symbolic factor graph constructor and conversion from any factor graph type
2009-10-29 04:11:23 +00:00
Frank Dellaert 1f792a53ea Made some progress on symbolic analysis 2009-10-28 02:57:38 +00:00
Frank Dellaert 50763ef764 Prototype for Bayes nets for Manohar 2009-10-27 20:44:40 +00:00
Frank Dellaert bb15697cf9 Prototype framework for Bayes chain (new name for Chordal Bayes net) and Bayes tree class hierarchy 2009-10-27 20:23:19 +00:00
Frank Dellaert 94da98411c Fixed NULL problem 2009-10-27 20:22:02 +00:00
Richard Roberts e37e771c8e My last commit broke the linearFactorN unit test, fixed now. 2009-10-27 15:31:45 +00:00