Kai Ni
490791cd48
add writer module to dump the errors and time
2010-01-22 08:13:54 +00:00
Kai Ni
4b778a4e82
fixed a bug in matrix solve function
2010-01-22 06:45:01 +00:00
Michael Kaess
1d093e388d
changed main algorithm to allow recovery of exact solution
2010-01-22 06:28:12 +00:00
Frank Dellaert
75e29dc015
failing test
2010-01-22 05:45:59 +00:00
Richard Roberts
5367e5a157
All std::map<Symbol,T> are now SymbolMap<T>, which is just a thin wrapper around std::map. at(Key) is used instead of first checking with find when an exception should be thrown for non-existent keys. This does not change any behavior or timing currently. This check-in also includes some functions in BayesTree for gathering clique statistics.
2010-01-22 04:41:40 +00:00
Frank Dellaert
41a6e64bbb
Fixed insert to use IndexTable, a new class
2010-01-22 02:27:26 +00:00
Frank Dellaert
2cc777228b
coments and variables only
2010-01-21 20:15:52 +00:00
justinca
7575996d52
Remove leftover commented out unused code
2010-01-21 19:49:36 +00:00
justinca
f89a53ed91
Bugfix in Rot3::logmap. The function checked for a trace of 3, but the check could fail due to rounding errors, causing the function to try to take acos(something larger than 1) resulting in NaNs being returned.
2010-01-21 19:49:12 +00:00
Alex Cunningham
ac746ccead
Improved performance of updateAb in NoiseModel with GSL/ATLAS. Various other small optimizations were made.
2010-01-21 18:51:59 +00:00
Michael Kaess
2183e09c67
fluid relinearization works
2010-01-21 17:41:54 +00:00
Michael Kaess
523c8630d3
works at least on already solved data...
2010-01-21 16:09:57 +00:00
Frank Dellaert
0dc4f417e9
sampling from NoiseModel
2010-01-21 08:31:18 +00:00
Michael Kaess
8fd0c2ae72
new fluid relinearization algorithm, in sync with lyx
2010-01-21 07:38:37 +00:00
Alex Cunningham
9db7623f80
Improved instructions for GSL/ATLAS
2010-01-21 01:03:34 +00:00
Alex Cunningham
063aa14118
Reimplemented matrix::householder_update using GSL and BLAS, you'll need to edit Makefile.am to enable the new version -- see email
2010-01-21 00:59:33 +00:00
Michael Kaess
188561d925
removeTop/Path now returns a BayesNet to avoid converting the conditionals to a factor graph
2010-01-21 00:38:22 +00:00
Richard Roberts
eb03f78e7d
Removing dependency hack speeds up compilation
2010-01-20 20:47:15 +00:00
Alex Cunningham
588c119bf3
Added timing script for Matrix::householder_()
2010-01-20 18:52:31 +00:00
Alex Cunningham
5f588031bc
Merged NoiseQR back into trunk
2010-01-20 18:32:48 +00:00
Alex Cunningham
9c9007920a
Changed the interface on Matrix::column() so that it uses the one in our library (now called column_() ) rather than the boost default. Currently, our implementation just uses the boost default, but this may change due to timing results.
2010-01-20 16:08:14 +00:00
Alex Cunningham
98b143cd22
Switched all loop indices in Matrix/Vector to size_t, with improved results in timeGaussianFactorGraph
2010-01-20 14:42:05 +00:00
Alex Cunningham
b4f9163296
Added more labels and results (with higher numbers of repetitions) for timeGaussianFactorGraph
2010-01-20 14:31:24 +00:00
Alex Cunningham
8db99db57e
Small performance improvement for matrix_augmented, with accompanying test in timeGaussianFactor
2010-01-20 14:09:44 +00:00
Alex Cunningham
6bc0462669
Checked Matrix::collect() with different timing metric, and memcpy has approx 25% speedup over original version. Matrix_range is slower or the same speed as the original version.
2010-01-20 13:45:22 +00:00
Kai Ni
977a97eacf
rename variable
2010-01-20 09:47:09 +00:00
Michael Kaess
aae49e43f0
code factorization, speedup
2010-01-20 06:49:19 +00:00
Kai Ni
ae908316e0
add comments
2010-01-20 06:34:25 +00:00
Richard Roberts
19dc8bf4b1
Fixed size() crash when BayesTree empty, added clear() function to BayesTree, added and removed #includes to fix link errors
2010-01-20 04:23:35 +00:00
Michael Kaess
e767996b45
same bug fix as in ISAM2
2010-01-20 03:54:20 +00:00
Alex Cunningham
55e414cbdd
Tried noalias() for collect(), but no real improvement
2010-01-20 03:25:55 +00:00
Kai Ni
3bf15333af
move ordering into the solver, and the nonlinear optimizer is now exact <G, T, L>
2010-01-20 02:28:23 +00:00
Alex Cunningham
03ec3e3e62
Implemented a version of collect() using matrix_range, but it had worse performance than memcpy. New version of vector_scale[column] with new pointer arithmetic implementation for approx 20% improvement.
2010-01-20 02:28:25 +00:00
Alex Cunningham
820ae5682d
Optimized row version of vector_scale with approx 20% improvement
2010-01-20 02:04:25 +00:00
Michael Kaess
ecde508318
incremental nonlinear working
2010-01-20 01:52:40 +00:00
Alex Cunningham
b860f06614
Switched Matrix::collect() over to a memcpy, but the results weren't actually an improvement
2010-01-20 01:42:36 +00:00
Michael Kaess
d2291a38d1
bug fixes after COLAMD activiation: BayesTree::insert was wrong, BayesTree::removeTop/Path fixed and simplified
2010-01-20 01:24:32 +00:00
Alex Cunningham
66607897a5
Added vector_scale timing benchmarks
2010-01-20 01:05:40 +00:00
Alex Cunningham
ff83a7b18e
Fixed compile error in testNoiseModel
2010-01-20 01:05:18 +00:00
Frank Dellaert
b47438a86c
Smart named constructors Covariance/Variances/Variance
2010-01-20 00:26:49 +00:00
Alex Cunningham
f577b27f52
Small optimizations on Matrix::collect(), additional timing capabilities, and now collect() can have dimensions specified to avoid need for lookup.
2010-01-19 21:49:22 +00:00
Alex Cunningham
67878830a6
Added timeMatrix.cpp to test specific matrix operations
2010-01-19 20:59:22 +00:00
Frank Dellaert
3cdbaf81c7
Factorgraph-specific QR factorization now done by the NoiseModel: slow Gram-Schmidt for Constrained, fast Housholder for any other (Gaussian) model.
2010-01-19 19:06:02 +00:00
Frank Dellaert
6f2b5a904a
save on fabs
2010-01-19 19:04:37 +00:00
Frank Dellaert
9f4da004c2
got rid of verbose printing
2010-01-19 19:04:18 +00:00
Alex Cunningham
fb0ca07bf1
Added and tested whitening parameter for matrix() and matrix_augmented()
2010-01-19 16:52:01 +00:00
Alex Cunningham
fbee0bd749
Fixing compile issue in SubgraphPreconditioner.h
2010-01-19 13:29:40 +00:00
Kai Ni
3806125096
add linear system as a template parameter in nonlinear optimizer
...
fixed a nasty bug and change the internal data type of subgraph preconditioner from reference to boost shared pointer. reference is not a good idea for class members, because no type checking will happen
2010-01-19 10:46:12 +00:00
Alex Cunningham
2eac3b7235
minor typo - comment only
2010-01-19 05:46:04 +00:00
Alex Cunningham
306ac0a4b2
Fixed clobbered checkin
2010-01-19 05:45:25 +00:00
Alex Cunningham
88e465910a
SQP tests and implementation now use the new Key system
2010-01-19 05:33:44 +00:00
Frank Dellaert
2a57a04ba6
get_model
2010-01-19 05:29:31 +00:00
Frank Dellaert
6dcc275432
small comment/print
2010-01-19 04:39:54 +00:00
Frank Dellaert
b01c111a1d
GaussianFactor now uses noiseModel internally - not yet externally
2010-01-19 04:39:28 +00:00
Frank Dellaert
81aaceb890
Whiten now class-specific, access to sigmas
2010-01-19 04:38:58 +00:00
Kai Ni
ebbdfc79aa
comment out overflow exception
2010-01-19 04:18:59 +00:00
Michael Kaess
ef2fb243c2
fixed unit test after colamd change
2010-01-19 03:43:10 +00:00
Richard Roberts
2507b6aaca
Cleaned up commented line after fix to use the colamd ordering.
2010-01-19 03:16:09 +00:00
Richard Roberts
0311d2a2a2
Very very small change :-)
2010-01-19 02:57:08 +00:00
Frank Dellaert
0769af6f20
comment
2010-01-19 01:41:44 +00:00
Michael Kaess
a45893a434
selective incremental linearization works; bug fix in landmark initialization (frank01 again much faster)
2010-01-19 01:18:28 +00:00
Michael Kaess
a2bce15c4b
selective update of linearization point
2010-01-19 00:15:46 +00:00
Michael Kaess
0e6607d160
relinearization working, but currently applied to all variables
2010-01-18 22:37:44 +00:00
Richard Roberts
5e15564525
Speedups: Matrix mult. in Gaussian NoiseModel. Removed size check in operator* in Matrix.h - ublas does this check when in debug mode.
2010-01-18 21:45:44 +00:00
Frank Dellaert
e935f1745e
stop copying matrices...
2010-01-18 21:17:25 +00:00
Michael Kaess
f8ef284b30
fixed bearing/range, large speedup for batch; incremental creation of Config works
2010-01-18 20:17:31 +00:00
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
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
Frank Dellaert
5fbb820341
fixed comments and tolerances
2010-01-09 02:27:49 +00:00
Frank Dellaert
6851b31fad
Added static methods to construct rotations, coded up convention for yaw-pitch-roll, modernized RQ
2010-01-09 00:03:47 +00:00
Kai Ni
d4f92c7bb6
pass FactorGraph as reference into split
2010-01-08 20:27:10 +00:00
Kai Ni
06b7f8ee04
add split to FactorGraph
2010-01-08 19:07:46 +00:00
Frank Dellaert
5dc237eeea
BetweenFactor is a template that models the measurement between two Lie types e.g. Pose2 or Pose3. Pose2Factor and Pose3Factor are now simply typedefs.
2010-01-08 15:32:45 +00:00
Kai Ni
215ff24d0f
generate ordering by breadth-first-search, a lot faster than before
2010-01-08 04:12:23 +00:00
Frank Dellaert
8d22b3aca2
Just refactoring
2010-01-08 03:38:05 +00:00
Frank Dellaert
f684becf1f
Fixed Dbetween1
2010-01-08 03:06:03 +00:00
Richard Roberts
19a3e228d7
Large refactoring - made several Lie group functions global, which used to be member functions, to treat Lie groups more uniformly. Also created Lie.h, and a preprocessor flag in numericalDerivative to change the coordinate frame derivatives are reported in. gtsam and easylib build and pass unit tests, but this will probably break other projects, which will require a few small changes to work again. Email coming in a few minutes to describe the changes.
2010-01-08 00:40:17 +00:00
Kai Ni
a845b3d30a
generate ordering from the spanning tree
2010-01-07 08:00:54 +00:00
Kai Ni
6298a45050
use prim algorithm instead of kruskal for finding MST, which yields the parent map.
2010-01-07 06:25:54 +00:00
Alex Cunningham
20c6f29823
Moved control-related components to separate library
2010-01-06 20:01:34 +00:00
Frank Dellaert
b20ed42134
log and between
2010-01-06 19:29:41 +00:00
Frank Dellaert
f77da96caf
Modernized and tested RQ and added Rot3::ypr. Note this yaw-pitch-roll is different from ML version, which is focused on cameras. Let the fun begin...
2010-01-06 15:52:43 +00:00
Kai Ni
9845a5ae37
add findMinimumSpanningTree to FactorGraph
2010-01-06 11:15:37 +00:00
Frank Dellaert
cd644e75a5
GaussianBayesNet::matrix now properly divides in sigmas
2010-01-05 14:14:49 +00:00
Frank Dellaert
22d66df766
added manifold test
2010-01-05 14:13:51 +00:00
Richard Roberts
39334ea9e0
Update MATLAB wrapper for earlier Pose2* changes
2010-01-04 18:07:24 +00:00
Kai Ni
46cc85e351
added size and clear to pose2config
2010-01-03 07:25:59 +00:00
Michael Kaess
052149771a
relinearizing factors corresponding to contaminated cliques
2010-01-03 04:57:35 +00:00
Kai Ni
cade0e7780
fix timing test linking problem by using noinst_PROGRAMS
2010-01-03 00:23:16 +00:00
Manohar Paluri
68159fb5e4
corrected SubgraphPreconditioner case
2010-01-02 20:24:59 +00:00
Frank Dellaert
f82b46f96c
Sped up rodriguez and replaced slow implementation with call to fast implementation. Also moved some functions to cpp.
2010-01-02 14:28:18 +00:00
Frank Dellaert
a1c55b9f62
Updated Pose2Config to expected coding standard
2010-01-02 10:33:33 +00:00
Frank Dellaert
ff06cd757f
moved all "Urban" factors and tests to (cmake-based) CitySLAM project
2009-12-31 16:54:23 +00:00
Frank Dellaert
a1d14ba2ae
Added Bayes Net and Subgraph preconditioners to gtsam (developed in CitySLAM project)
2009-12-31 12:56:47 +00:00
Frank Dellaert
730f4a546f
Added planar graph with easy subtree
2009-12-31 12:55:51 +00:00
Frank Dellaert
07cc95e4c4
Comments and formatting
2009-12-31 12:55:16 +00:00
Frank Dellaert
eaa8176de1
correct behavior when entire columns are zero
2009-12-31 10:30:44 +00:00
Frank Dellaert
46a65d89df
using ediv_ where needed
2009-12-31 10:30:06 +00:00
Frank Dellaert
f7d5b517a4
ediv_ is same as ediv except returns 0 for 0/0 division, needed for dealing with constraints
2009-12-31 10:29:25 +00:00
Frank Dellaert
3fbc857a9e
fixed behavior of error for sigma==0
2009-12-31 10:28:43 +00:00
Frank Dellaert
9b327d1a9d
added reset
2009-12-31 10:27:39 +00:00
Frank Dellaert
bf85f10de7
subtraction
2009-12-31 10:27:16 +00:00
Michael Kaess
b4e65e9631
progress in ISAM2, but unit test still disabled
2009-12-31 05:35:08 +00:00
Richard Roberts
afc3028ad5
Fixed bug in testPose2Factor optimize unit test where only the first expected value was checked.
2009-12-30 18:41:33 +00:00
Frank Dellaert
793a9d58ae
Errors is now a list
2009-12-30 17:13:36 +00:00
Frank Dellaert
f80ac5d7d5
backSubstitute functions (unit-tested in CitySLAM) for preconditioning
2009-12-30 17:13:24 +00:00
Frank Dellaert
2368f3605a
getReference
2009-12-30 14:53:40 +00:00
Frank Dellaert
15bb00683a
transpose backsubstitute on upper-triangular matrix
2009-12-30 13:20:16 +00:00
Michael Kaess
42fca8c399
nonlinear update, all but rhs/config
2009-12-30 04:27:14 +00:00
Richard Roberts
0b9451bc4b
Initializing libtool correctly in gtsam (see email to frankcvs with same subject)
2009-12-29 20:01:38 +00:00
Michael Kaess
737a2f1e05
unit test enabled again and working
2009-12-29 14:54:45 +00:00
Frank Dellaert
c43cd425ab
new back-substitution functions that can do unit triangular solves
2009-12-29 13:59:34 +00:00
Michael Kaess
75ab62a729
ISAM2 (nonlinear ISAM) partially there, unit test currently disabled
2009-12-29 05:57:05 +00:00
Frank Dellaert
8d4a029665
rhs method
2009-12-28 18:46:01 +00:00
Frank Dellaert
543d3fcd65
System now a class (gradient is method)
2009-12-28 17:28:48 +00:00
Frank Dellaert
0c0b73042b
template now exposed in iterative.h, and has its own implementation file
2009-12-28 16:26:16 +00:00
Frank Dellaert
5ac304aff3
correct convergence criterion, verbose flag
2009-12-28 16:15:26 +00:00
Frank Dellaert
674ae9d030
steepest descent now all implemented in iterative.h/cpp
2009-12-28 12:37:34 +00:00
Frank Dellaert
bc27afc49f
CGD method now uses CGD template in iterative.cpp
2009-12-28 10:48:48 +00:00
Frank Dellaert
863ee58c0f
new iterative.h/cpp compilation unit
2009-12-28 09:56:58 +00:00
Frank Dellaert
d9fd502656
moved CG tests from testGFG to testIterative
2009-12-28 09:44:30 +00:00
Frank Dellaert
1fac98b4cb
Errors:dot, VectorConfig::operator*/-, as a result Conjugate Gradient Descent template now works for factor graphs
2009-12-28 08:15:09 +00:00
Michael Kaess
5dfd1921e1
template nightmare resolved, all tests working
2009-12-27 23:15:36 +00:00
Frank Dellaert
266fc56dea
Gradient using new operator^ and errors method
2009-12-27 12:13:31 +00:00
Frank Dellaert
7d1428de60
Added Errors class and operator* for GaussianFactor and GaussianFactorGraph. Also moved a few functions to cpp.
2009-12-26 22:48:41 +00:00
Frank Dellaert
6614434b83
System version of CG
2009-12-26 21:25:45 +00:00
Richard Roberts
8d3918e7f9
Typo made testPose2Factor not build on Linux
2009-12-26 19:31:02 +00:00
Frank Dellaert
f3965b07ca
Conjugate Gradient Descent template (in progress)
2009-12-26 15:06:54 +00:00
Frank Dellaert
886c7dcdcc
formatting and comments
2009-12-26 15:06:21 +00:00
Frank Dellaert
8dbf79706e
commented out two broken tests
2009-12-26 15:05:55 +00:00