Commit Graph

13 Commits (fea5beb63819085e52e96a58314dda55a02690ca)

Author SHA1 Message Date
Frank Dellaert fea5beb638 Re-organization: moving all files.
I re-organized into original cpp directory and 4 additional directories: base, geometry, slam, and tests.
cpp will be further renamed/sub-divided and contains the core library.
I wanted it not depend on geometry or slam, which necessitated moving complicated tests to a dedicated directory.
2010-07-12 07:16:31 +00:00
Richard Roberts 9b89a32880 Fixed errors introduced by previous changes 2010-07-10 22:59:50 +00:00
Alex Cunningham d2d51d9f68 Added single-element update function to TupleConfigs 2010-05-04 13:41:46 +00:00
Alex Cunningham 3df1f69e6c Added a single-element update() for LieConfig 2010-05-03 18:07:27 +00:00
Kai Ni f81519b046 fixed a bug in update 2010-04-29 02:16:18 +00:00
Frank Dellaert e10938688e removed dim_ (which was buggy) and added zero 2010-03-10 00:20:12 +00:00
Alex Cunningham badc7b6ee6 Added keys() function to LieConfig to return an ordered list of keys 2010-03-04 13:21:48 +00:00
Alex Cunningham 74787df3fc Added ability to insert whole configs at a time to LieConfig and TupleConfig 2010-02-25 02:50:01 +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 93465945e9 Large gtsam refactoring
To support faster development *and* better performance Richard and I pushed through a large refactoring of NonlinearFactors.

The following are the biggest changes:

1) NonLinearFactor1 and NonLinearFactor2 are now templated on Config, Key type, and X type, where X is the argument to the measurement function.

2) The measurement itself is no longer kept in the nonlinear factor. Instead, a derived class (see testVSLAMFactor, testNonlinearEquality, testPose3Factor etc...) has to implement a function to compute the errors, "evaluateErrors". Instead of (h(x)-z), it needs to return (z-h(x)), so Ax-b is an approximation of the error. IMPORTANT: evaluateErrors needs - if asked - *combine* the calculation of the function value h(x) and the derivatives dh(x)/dx. This was a major performance issue. To do this, boost::optional<Matrix&> arguments are provided, and tin EvaluateErrors you just  says something like

	if (H) *H = Matrix_(3,6,....);

3) We are no longer using int or strings for nonlinear factors. Instead, the preferred key type is now Symbol, defined in Key.h. This is both fast and cool: you can construct it from an int, and cast it to a strong. It also does type checking: a Symbol<Pose3,'x'> will not match a Symbol<Pose2,'x'>

4) minor: take a look at LieConfig.h: it help you avoid writing a lot of code bu automatically creating configs for a certain type. See e.g. Pose3Config.h. A "double" LieConfig is on the way - Thanks Richard and Manohar !
2010-01-13 22:25:03 +00:00
Richard Roberts 1dcc864d97 Comment cleanup to /** style and adding global print functions 2010-01-10 22:41:23 +00:00
Richard Roberts 33ba34a1f6 Minimized headers included in Lie.h, removed print from testLieConfig 2010-01-10 17:26:44 +00:00
Richard Roberts 4fa53a1f79 Merging lieconfig branch - LieConfig works but currently requires Lie objects to have a global print function. 2010-01-10 06:35:16 +00:00