Commit Graph

282 Commits (a5515d9d577fd2895c388634d30c8cd064ad0d84)

Author SHA1 Message Date
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
Richard Roberts cb22a0bc52 Renamed variables in linearFactorN unit test 2009-10-27 15:13:13 +00:00
Alex Cunningham 37bc303492 Added weighted Householder transforms that use precisions perform QDR factorization. Functions create a weighted vector pseudoinverse, and then use the pseudoinverse to substitute a solution into system. 2009-10-27 14:21:22 +00:00
Frank Dellaert 626d06905c Removed obsolete optimize call and documented better 2009-10-27 14:14:36 +00:00
Frank Dellaert 4d9ff77249 moved timing example here from EasySLAM 2009-10-27 13:34:36 +00:00
Frank Dellaert 422169873c moved [symbol] function to LinearFactor 2009-10-27 13:33:44 +00:00
Brian Law 11f0d04cb6 made all classes that currently have an assert_equal "Testable"
- derive from testable as in class Point2 : Testable<Point2>
- moved print and equal declarations in .h right after the constructor
- similarly, moved implementations after constructors in .cpp file
- removed obsolete assert_equal
2009-10-26 19:26:51 +00:00
Frank Dellaert 3b30fe50b0 Moved print and equals to -inl.h 2009-10-25 22:27:18 +00:00
Frank Dellaert 7a968962db Order of arguments = expected, then actual 2009-10-25 22:26:56 +00:00
Frank Dellaert 57bc102548 Equals now checks for NULLs 2009-10-25 14:25:17 +00:00
Frank Dellaert f54ba387fe FactorGraph, ChordalBayesNet, and ConditionalGaussian now Testable 2009-10-24 23:14:14 +00:00
Frank Dellaert 3792c79706 Fixed NonlinearFactor2 equals and added some unit tests for equals 2009-10-24 20:01:47 +00:00
Frank Dellaert 563abc2b3f formatting only 2009-10-24 04:07:32 +00:00
Chris Beall baef89ccf0 updated find_factors_and_remove to use map of factor indices to gather factors connected to a variable. factors are set to null instead of being erased. also updated size() to count non-NULL factors, and print() to only print non-NULL factors. added new unit test which tries to remove the same variable twice. 2009-10-23 00:56:40 +00:00
Chris Beall 52bedcad3a order 1 factors by using map 2009-10-22 21:33:00 +00:00
Frank Dellaert cd3e3d8a86 Fairly substantial change: Factor now Testable, MutableLinearFactor gone
The latter was prompted by the fact that assert_equal did not like mixing LinearFactor and MutableLinearFactor
But MutableLinearFactor always was a bit of a kluge. We should eradicate all non-const on LinearFactor some other way.
2009-10-22 17:23:24 +00:00
Richard Roberts 0d580032c5 Added unit test for creating an n-ary LinearFactor 2009-10-22 15:52:39 +00:00
Frank Dellaert 2aec16d3cf Combined evaluation/derivatives now return the function value instead of using a pointer 2009-10-22 14:44:27 +00:00
Frank Dellaert 6c8531ed9c Point2 now Testable, removed obsolete assert_equal, as every testable class can use the template version in Testable.h 2009-10-22 14:43:36 +00:00
Frank Dellaert 9a579fcdaf No need for Testable constructors 2009-10-22 14:42:19 +00:00
Richard Roberts e52c574e46 Added an empty virtual destructor to fix a compile warning 2009-10-22 14:27:44 +00:00
Richard Roberts ae57441c3d Added a constructor to create an n-ary factor from an std::vector of key/A-matrix pairs 2009-10-22 14:27:03 +00:00
Frank Dellaert c3b8a20b5c Added new test for find_factors_and_remove and deleted obsolete one 2009-10-22 13:28:37 +00:00
Frank Dellaert 1b199a4d3b Added a "factors" function that returns indices to all factors connected to a variable. 2009-10-22 05:02:31 +00:00
Viorela Ila 3e6739f2fd Now Matlab toolbox compiles!! 2009-10-20 20:41:45 +00:00
Viorela Ila 019a05d93d mex: compile of ' "eliminate.cpp"' error fixed. but still not compiling 2009-10-20 18:57:33 +00:00
Frank Dellaert 543ad1409f Changing from set to vector: insert -> push_back 2009-10-20 15:22:06 +00:00
Frank Dellaert 19bdb5c2f9 Better name for delta: linearizeAndOptimizeForDelta 2009-10-19 19:12:48 +00:00
Frank Dellaert d8c04ecfcb Fixed serialization include header. 2009-10-18 17:35:15 +00:00
Frank Dellaert ed616a26ed Finally gave in and made LinearFactorSet into a vector. Pragmatism wins. 2009-10-18 16:49:10 +00:00
Frank Dellaert 0d66ee8f72 comments only 2009-10-15 14:56:40 +00:00
Alex Cunningham 485f8d003b Added notes concerning the ordering issue when handling sets of LinearFactor::shared_ptrs 2009-10-14 21:06:44 +00:00
Alex Cunningham 7d0a30c20f Renamed FGConfig to VectorConfig in gtsam, easylib, EasySLAM, and mast. 2009-10-14 20:39:59 +00:00
Alex Cunningham 8f20523e7f ConstrainedLinearFactorGraphs now handles multiple constraints on a node properly.
smallExample was changed to include two of the examples used in testConstrainedLinearFactorGraph
ConditionalGaussian was changed to make solve() virtual, as this is necessary for ConstrainedConditionalGaussian
2009-10-14 15:32:05 +00:00
Chris Beall 92b920cb48 updated to be templated on Config. 2009-10-13 20:55:07 +00:00
Alex Cunningham 66dac8a52f Generalized constraint handling to create a LinearConstraint which implements linear equality constraints that can be eliminated as a part of a ConstrainedLinearFactorGraph. DeltaFunction has been changed to be a ConstrainedConditionalGaussian, which has a more robust solve() function. The new tests no longer use the "constrained" example from smallExample, so those functions have been commented.
''Limitations: ''
 * Any given node can only have one constraint on it, but constraints can be of arbitrary size
 * Constraints can only be specified as a blockwise system, where each block must be square and invertible to support arbitrary elimination orderings.  
  * ConstrainedNonlinearFactorGraph is disabled until a better solution for handling constraints in the nonlinear case is determined.
2009-10-08 13:57:22 +00:00
Alex Cunningham 3efe95abee Removed ConstrainedChordalBayesNet and associated test. It may return if ConstrainedConditionalGaussians need more involved processing in future versions, but for all versions of LinearConstraint, there is no need for a special Constrained CBN. 2009-10-08 13:43:43 +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 34c1bb6f29 Small comment on exmap correctness 2009-10-06 18:02:33 +00:00
Frank Dellaert 7e77ae5f53 formatting only, clear by default 2009-10-06 18:01:40 +00:00
Kai Ni 354f9de64e fixed round off error in Rot3.rodriguez 2009-09-16 02:20:57 +00:00
Kai Ni 7fb691183d make simulation2D work 2009-09-15 22:32:34 +00:00
Frank Dellaert 768befbd85 Faster inverse by avoiding matrix intermediate 2009-09-14 04:39:36 +00:00
Frank Dellaert d5dc9ab9d1 Composition is faster, composeTransform is trivial (and should probably go) 2009-09-14 04:38:17 +00:00
Manohar Paluri 3285d88181 Added few utility functions required to check if Marker is facing the Camera 2009-09-13 20:07:00 +00:00
Kai Ni 100b9b2eec added a safe projection method to Calibrated and SimpleCamera. added a positiveDepth property to ARToolkitMeasurement so that the visibility can be checked 2009-09-13 16:09:54 +00:00
Manohar Paluri 571c0da8d1 removed unit test for scalar operator overloading 2009-09-13 04:23:31 +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
Manohar Paluri d141cdab8c rolling back + operator overload for scalars ( Not approved by FD ) 2009-09-13 03:43:15 +00:00
Manohar Paluri bc93a9c314 overloaded + operator for scalar 2009-09-12 21:52:13 +00:00
Frank Dellaert 7b0c69da2d getOrdering uses [keys] now 2009-09-12 04:15:41 +00:00
Frank Dellaert 14102e259e new method [keys] 2009-09-12 03:50:44 +00:00
Frank Dellaert 78ac705d05 Isolated main colamd call in function templated on key type. 2009-09-12 03:38:55 +00:00
Frank Dellaert a5ae9c12ef re-factored and commented getOrdering 2009-09-12 01:50:47 +00:00
Kai Ni 597af891cb add comments 2009-09-11 20:51:49 +00:00
Kai Ni bc7717d5ab Forward declarations and comments 2009-09-11 20:51:03 +00:00
Kai Ni 49e6e0c63f Add operator / 2009-09-11 20:49:28 +00:00
Kai Ni b76a029ad8 Added principalPoint 2009-09-11 20:48:02 +00:00
Manohar Paluri 0ac12dfcbf changed config() to const 2009-09-11 18:33:05 +00:00
Alireza Fathi 5e713551b3 get it run on the mac 2009-09-10 22:50:06 +00:00
Alex Cunningham 65df85125d Fixed NonlinearOptimizer to return a shared pointer to a config 2009-09-10 22:08:47 +00:00
Alireza Fathi 5e1c719c17 the getConfig function is so dangerous and it should not exist... 2009-09-10 20:32:27 +00:00
Frank Dellaert ead3d03866 BIG: replaced optimize in NonlinearFactorGraph with specialized NonlinearOptimizer object. This does away with the artificial ErrorVectorConfig and the like as NonlinearOptimizer is templated and can use "exmap", the exponential map defined for any differentiable manifold. 2009-09-09 04:43:04 +00:00
Frank Dellaert ff12101945 serialization 2009-09-07 04:19:03 +00:00
Frank Dellaert 5ca7ab9053 equals 2009-09-07 03:35:32 +00:00
Frank Dellaert ff9a89c81b unit tests in meter 2009-09-05 20:35:09 +00:00
Frank Dellaert 482d7fe73f exposed two internal functions 2009-09-04 14:59:17 +00:00
Alireza Fathi ba676a7a95 removed a printing thing 2009-09-03 18:11:26 +00:00
Alireza Fathi 214637cee9 fixed rodriguez in Rot3 2009-09-03 17:43:02 +00:00
Frank Dellaert 012437c573 keys now returns const references 2009-09-03 17:24:46 +00:00
Alireza Fathi 2357e8aefc There was a serious mistake in rodriguez, instead of R was returning R' 2009-09-03 17:08:52 +00:00
Frank Dellaert 24c8242782 added print as virtual method 2009-09-03 16:51:31 +00:00
Kai Ni 0c590c513e enable debug options 2009-09-03 15:15:20 +00:00
Frank Dellaert 5d41f5bdfa Calibration load gone, now constructor takes path 2009-09-01 15:09:41 +00:00
Kai Ni f7bcb8dad7 add comments 2009-09-01 03:45:37 +00:00
Kai Ni 07f940be57 add -g to unit tests 2009-09-01 03:32:11 +00:00
Frank Dellaert 92dbc8910e correct serialization of base classes
moved all serialize functions to bottom of class declaration
2009-08-31 04:13:57 +00:00
Frank Dellaert c69d8d9b36 Factor Graph serialization, and renaming of factors -> factors_ 2009-08-31 02:40:26 +00:00
Manohar Paluri 00fd3cebcf changed const string to const string & in load 2009-08-30 21:49:48 +00:00
Manohar Paluri adabafa9f0 changed load function argument to const 2009-08-30 06:34:43 +00:00
Frank Dellaert 34d80b6a2b moved some implementations to cpp to avoid some weird conflict involving stack 2009-08-30 04:51:46 +00:00
Frank Dellaert 6311dd0147 SimpleCamera::level now works 2009-08-29 07:39:20 +00:00
Frank Dellaert 179b5c09ae static members for creating "level" cameras as we find on idealized robots 2009-08-29 06:54:10 +00:00
Frank Dellaert 5eb9a4d182 More efficient transform_to using unrotate 2009-08-29 04:10:52 +00:00
Frank Dellaert 3432b6c50f new Pose2 class 2009-08-29 01:24:26 +00:00
Frank Dellaert 6e23d61221 Formatting, and moved print to cpp. 2009-08-29 01:22:40 +00:00
Frank Dellaert ea0e16caf5 Formatting only 2009-08-29 01:22:37 +00:00
Frank Dellaert 8d54086f92 const begin and end 2009-08-28 20:06:29 +00:00
Manohar Paluri fe8870a5f0 changed functions begin, end and get_names to const 2009-08-28 15:38:27 +00:00
Manohar Paluri e2a05b37d8 changed parameter to const in function eq_combine_and_eliminate 2009-08-28 15:15:05 +00:00
Manohar Paluri 1ce50a8258 changed get_delta to const ( using find operator of a map instead of [] ) 2009-08-28 14:55:33 +00:00
Manohar Paluri 017ad6a66f error checking for find operation on map 2009-08-28 14:35:02 +00:00
Manohar Paluri b530c97b08 error checking for find operation on map 2009-08-28 14:33:19 +00:00
Manohar Paluri 630bc9144f changed get and operator functions to const ( using find operator of a map instead of [] ) 2009-08-27 20:04:10 +00:00
Manohar Paluri b70f081ebc changed optimize functions to const ( using find operator of a map instead of [] ) 2009-08-27 02:00:26 +00:00
Frank Dellaert af6d98253f solve is now const 2009-08-27 01:23:05 +00:00
Manohar Paluri 6a3d64c896 Added const verifiers for member functions of the class which are compatible 2009-08-26 18:04:52 +00:00
Manohar Paluri 0b1b5eca67 Added const verifiers for member functions of the class which are compatible 2009-08-26 15:25:47 +00:00
Alex Cunningham 725f5624c3 Added Serialization to Cal3_S2 2009-08-25 14:58:40 +00:00
Frank Dellaert 6e35e34ee4 const return value does not make sense for anything but references 2009-08-25 02:36:30 +00:00
Kai Ni b8a5501670 A much more clean fix for colamd and cppunitlite compilation problem. 2009-08-24 21:55:36 +00:00
Kai Ni f6da0bf0cb fix include files not installed problem 2009-08-24 20:06:42 +00:00
Frank Dellaert 72fbc569a5 const correctness for combine (it is not const but takes a const argument) 2009-08-24 16:54:22 +00:00
Frank Dellaert 6dd31fd8c3 getOrdering is const !!!! It matters ! 2009-08-23 06:56:54 +00:00
Frank Dellaert fd11a1e2c7 Changed setBCN to take a reference 2009-08-22 22:01:17 +00:00
Kai Ni 5780b39816 Complete - # 3: Fix gtsam colamd problem
http://trac.research.cc.gatech.edu/borg/ticket/3
2009-08-22 07:00:11 +00:00
Richard Roberts d80fa24a9f Fixing directory structure 2009-08-21 22:23:24 +00:00