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
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