Commit Graph

625 Commits (ff83a7b18e9c20704f0313eec1d12463ea816bcb)

Author SHA1 Message Date
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
Kai Ni 1519d029dc use PredecessorMap instead of map<Key,Key> 2010-01-14 05:24:20 +00:00
Richard Roberts 8562c00a52 Explicit instantiation to fix link error on Linux, also header to install that was missing from Makefile.am 2010-01-14 05:01:40 +00:00
Frank Dellaert 9bf6409b16 BearingFactor works 2010-01-14 04:35:18 +00:00
Michael Kaess 32626b3391 bug fix (only worked on Mac) 2010-01-14 03:42:34 +00:00
Kai Ni 68d90772e6 ordering is fixed 2010-01-14 03:21:07 +00:00
Richard Roberts ac10c440e1 PairConfig is implemented, VSLAMConfig is now a typedef! 2010-01-14 02:58:29 +00:00
Frank Dellaert 6b3e8cf49c simulated2D now reduced to one .h and .cpp, in its own namespace, better naming, and new-style functions to serve as example 2010-01-14 02:50:06 +00:00
Kai Ni fca2de8f95 fix unit test 2010-01-14 02:21:14 +00:00
Kai Ni 7ad114c72f problem with predecessorMap2Graph 2010-01-14 02:16:29 +00:00
Kai Ni 63440f937f almost fixed oredering except one function call 2010-01-14 02:07:14 +00:00
Frank Dellaert 5a02b36723 Solved some linking problems 2010-01-14 01:44:00 +00:00
Kai Ni 6c7dfabe5b remove template class G and V from predecessorMap2Graph as Frank suggested 2010-01-14 01:25:40 +00:00
Kai Ni 3c66861790 fix the graph related functions in FactorGraph as well as its unit tests 2010-01-13 23:59:46 +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
John Rogers 22b4912d5e adding #include<boost/shared_ptr.hpp> to graph-inl.h because this dependency doesnt seem to be working without it on gcc 4.3.3 2010-01-13 19:36:52 +00:00
Kai Ni c0bc7e6c10 fix a bug in composePoses that switched the order of compose parameters 2010-01-13 06:02:18 +00:00
Kai Ni 2a094b7491 return shared_ptr in composePoses 2010-01-13 02:09:16 +00:00
Richard Roberts 8d28763339 Vector and Matrix initialization optimization 2010-01-12 16:12:31 +00:00
Kai Ni 4369cd2d92 1) add a compose function that compose all the poses in a factor graph given the spanning tree
2) add a new graph-inl.h which takes care of all the boost graph related functions to prevent the copy and paste across several classes
2010-01-12 16:12:25 +00:00
Richard Roberts bea55b5f5b Fixed double map lookup 2010-01-12 16:11:24 +00:00
Frank Dellaert fcb7c024a7 bearing functions and derivatives 2010-01-12 02:10:42 +00:00
Frank Dellaert 4b459c45c3 return identity 2010-01-12 02:09:43 +00:00
Frank Dellaert 5163684077 norm 2010-01-12 02:09:03 +00:00
Frank Dellaert 1aed18717b combined evaluation and derivatives 2010-01-12 02:08:41 +00:00
Richard Roberts 2c8d8dbde4 NonlinearOptimizer constructor now requires shared_ptr to prevent storing pointers to stack and temporary variables. Code that uses it will need to be modified, but CitySLAM is already done. 2010-01-11 20:17:28 +00:00
Kai Ni 40889e8f50 added an absolution threshold $epsilon_abs$ to conjugateGradients. added utility functions to several class to have the same interface which can be used by template functions 2010-01-11 08:32:59 +00:00
Manohar Paluri 1b53a240b9 removed prints 2010-01-11 01:09:07 +00:00
Frank Dellaert e9b0bade03 Access to keys 2010-01-11 00:53:53 +00:00
Frank Dellaert 71fe372fb3 test successive iterates 2010-01-11 00:53:43 +00:00
Richard Roberts aa2aa4149c Special case for trace==1 in Rot3 logmap 2010-01-10 23:36:37 +00:00
Richard Roberts b0fd5396ad Bug fix in Rot3 for logmap(identity) 2010-01-10 22:58:30 +00:00
Richard Roberts 1dcc864d97 Comment cleanup to /** style and adding global print functions 2010-01-10 22:41:23 +00:00
Kai Ni 78a579a24a add the missing #pragma once 2010-01-10 22:15:34 +00:00
Viorela Ila f8be2c2626 dim, expmap, logmap works 2010-01-10 21:53:38 +00:00
Frank Dellaert 64eca2d550 addConstraint 2010-01-10 19:25:19 +00:00
Frank Dellaert d11b2e6bd5 Added omitted headers 2010-01-10 18:37:55 +00:00
Richard Roberts 88ae5380a8 Removed Vector-specific versions of NumericalDerivative, instead Vector is now a Lie object 2010-01-10 18:23:47 +00:00
Frank Dellaert 1a96ef41cf Created Pose3Config, Pose3Graph, and tested loop closure optimization. 2010-01-10 18:21:20 +00:00
Frank Dellaert 2fe02dbaa7 Moved optimization tests to testPose2Graph 2010-01-10 18:20:10 +00:00
Richard Roberts edb68b3b60 Fixed typo in LieConfig expmap(Vector) 2010-01-10 17:48:55 +00:00
Richard Roberts 33ba34a1f6 Minimized headers included in Lie.h, removed print from testLieConfig 2010-01-10 17:26:44 +00:00
Frank Dellaert 8d84078036 Loop closure tested 2010-01-10 17:02:49 +00:00
Frank Dellaert 12caabb667 Method to add a factor without having to do shared factor dance 2010-01-10 17:02:35 +00:00
Frank Dellaert 120f1301c2 operator[] 2010-01-10 17:01:48 +00:00
Frank Dellaert 710bce5cc4 Pose2Config is now simply a typedef (note that for linking specific template instantiations were needed). 2010-01-10 16:17:55 +00:00
Frank Dellaert 4a21fb9387 Fixed 2nd expmap template, which now creates a VectorConfig and calls the first template 2010-01-10 16:16:03 +00:00
Frank Dellaert 65e4dc1342 pose2Circle 2010-01-10 15:46:18 +00:00
Frank Dellaert 43b2facd10 Now Pose3Config == LieConfig 2010-01-10 14:59:39 +00:00
Frank Dellaert 92c58e50a1 Small changes, mainly const correctness 2010-01-10 14:59:22 +00:00
Frank Dellaert c957672656 Small to change to work well with LieConfig 2010-01-10 14:55:19 +00:00
Frank Dellaert 794ffd3b2f Fixed significant bug in Pose2Factor, where we forgot to multiply the error with the square root inverse covariance. 2010-01-10 13:55:55 +00:00
Frank Dellaert 8061f29ec5 added test clarifying Ax-b \approx h(x)-z 2010-01-10 13:54:34 +00:00
Frank Dellaert f1f21a8589 inverted sign of square root to make inv sqrt positive for simple covariance matrices 2010-01-10 13:53:31 +00:00
Frank Dellaert bf315781af defined global functions in Lie.h rather than here 2010-01-10 12:35:41 +00:00
Frank Dellaert 6bcb9d08d6 Unit tests for correct "Agrawal06iros" versions: they are indeed correct. 2010-01-10 12:26:31 +00:00
Frank Dellaert 30367e35fb Much faster compund rotation using Justin's (indeed correct) formula 2010-01-10 12:25:46 +00:00
Frank Dellaert d5eade62ef Moved expmap and logmap to .cpp, also tested correct "Agrawal06iros" versions, and they are indeed correct (see testPose3). 2010-01-10 12:24:31 +00:00
Frank Dellaert ec1b57ed08 Added Lie required functions (trivial) for Vector. Not in Vector.h as this becomes circular. 2010-01-10 12:22:59 +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
Kai Ni 6a7987fa91 fix Pose2Prior problem and adding prior factor when splitting factor graph 2010-01-09 23:39:11 +00:00
Richard Roberts 2b82ff65e7 Deriving Lie objects from a base class Lie<T>, which provides member functions to access global functions, for use in MATLAB. 2010-01-09 23:15:06 +00:00
Kai Ni d015b31799 more meaningful error messages for matrix operations 2010-01-09 07:06:29 +00:00
Frank Dellaert cc358fb2ce removed print statements 2010-01-09 02:37:58 +00:00